U-boot分析第1章------------------Makefile(配置过程)
2014-03-10 13:44
351 查看
【说明】
前面一小节我们体验了一下U-BOOT,并把它烧到了我们的开发板中,还记得我们的步骤吗?解压,配置,编译,烧写。这节我们来讲讲U-BOOT的配置原理,下一节介绍其编译的过程。
【配置命令分析】
我们再来看看配置的命令
显然 ,后面那个 mini6410_nand_config-ram256 肯定是一个Makefile 的 target 。我们肯定可以在Makefile中找到它
我们搜索后发现了这个
其中用到了一个变量MKCONFIG,我们来查查它是什么
再一路看看SRCTREE
一猜就知道是当前目录了。那原来的配置命令就变成了
!说明其实配置是使用了mkconfig 这个脚本,然后后面带了那么些个参数。
【mkconfig】
二话不说,打开这个文件看看到底它是怎么配置的。
我们先把命令行参数的编号标出来
注意下面生成的文件都会在INCLUDE 目录下边
判断一些附带的参数,我们都没有,所以这个部分可以忽略
这个是设置 BOARD_NAME = mini6410 (因为$1就是第一个参数)
判断参数个数是否正确,
打印出刚才我们配置的时候的那句话
这个分支我们会执行else 里面的部分
效果是建立一个连接 asm指向asm-arm
这个作用是源代码中对文件asm的引用都会引用到asm-arm
源码就不需要理会到底ASM是哪个架构的
为什么呢,因为Makefile 里面有这么一句,而BUILD_DIR没有定义
所以OBJTREE = CURDIR = SRCTREE
下面这个和上面是一个原理,就不多说了
我们的参数$6并不是NULL,所以会建立链接 asm-arm/arch 指向 arch-S3c6410
又是这样
建立一个regs.h 指向 S3C6410.h
建立一个asm-arm/arch文件指向 arch-S3c64xx
建立一个asm-arm/proc 文件指向 proc-armv
往config.mk 文件里面写东西
我们看看config.mk 里面是不是有这么写东西呢
这里的APPEND = no 所以执行 else 即新建文件 config.h
为什么呢?因为APPEND初始化为NO,只有在调用mkconfig 的时候传入了 -a 才为YES
不信看看我们第一个截图,判断参数的那里
然后往config.h 里面写东西。
最终成为一个单板相关的头文件给源文件用
【总结】
1】当我们进行 配置的时候实际上是调用了一个写在Makefile 里面的命令
2】这个命令就是以一些参数来执行 mkconfig 脚本。该脚本执行完以后我们得到了如下结果
1) BOARD_NAME = mini6410
2)建立一个连接 asm指向asm-arm
3)asm-arm/arch文件指向 arch-S3c64xx
4)建立一个asm-arm/proc 文件指向 proc-armv
5)建立一个regs.h 指向 S3C6410.h
6)建立一个文件config,mk 内容如图
7)建立一个文件 config.h 内容如图
前面一小节我们体验了一下U-BOOT,并把它烧到了我们的开发板中,还记得我们的步骤吗?解压,配置,编译,烧写。这节我们来讲讲U-BOOT的配置原理,下一节介绍其编译的过程。
【配置命令分析】
我们再来看看配置的命令
显然 ,后面那个 mini6410_nand_config-ram256 肯定是一个Makefile 的 target 。我们肯定可以在Makefile中找到它
我们搜索后发现了这个
其中用到了一个变量MKCONFIG,我们来查查它是什么
再一路看看SRCTREE
一猜就知道是当前目录了。那原来的配置命令就变成了
!说明其实配置是使用了mkconfig 这个脚本,然后后面带了那么些个参数。
【mkconfig】
二话不说,打开这个文件看看到底它是怎么配置的。
我们先把命令行参数的编号标出来
注意下面生成的文件都会在INCLUDE 目录下边
判断一些附带的参数,我们都没有,所以这个部分可以忽略
这个是设置 BOARD_NAME = mini6410 (因为$1就是第一个参数)
判断参数个数是否正确,
打印出刚才我们配置的时候的那句话
这个分支我们会执行else 里面的部分
效果是建立一个连接 asm指向asm-arm
这个作用是源代码中对文件asm的引用都会引用到asm-arm
源码就不需要理会到底ASM是哪个架构的
为什么呢,因为Makefile 里面有这么一句,而BUILD_DIR没有定义
所以OBJTREE = CURDIR = SRCTREE
下面这个和上面是一个原理,就不多说了
我们的参数$6并不是NULL,所以会建立链接 asm-arm/arch 指向 arch-S3c6410
又是这样
建立一个regs.h 指向 S3C6410.h
建立一个asm-arm/arch文件指向 arch-S3c64xx
建立一个asm-arm/proc 文件指向 proc-armv
往config.mk 文件里面写东西
我们看看config.mk 里面是不是有这么写东西呢
这里的APPEND = no 所以执行 else 即新建文件 config.h
为什么呢?因为APPEND初始化为NO,只有在调用mkconfig 的时候传入了 -a 才为YES
不信看看我们第一个截图,判断参数的那里
然后往config.h 里面写东西。
最终成为一个单板相关的头文件给源文件用
【总结】
1】当我们进行 配置的时候实际上是调用了一个写在Makefile 里面的命令
2】这个命令就是以一些参数来执行 mkconfig 脚本。该脚本执行完以后我们得到了如下结果
1) BOARD_NAME = mini6410
2)建立一个连接 asm指向asm-arm
3)asm-arm/arch文件指向 arch-S3c64xx
4)建立一个asm-arm/proc 文件指向 proc-armv
5)建立一个regs.h 指向 S3C6410.h
6)建立一个文件config,mk 内容如图
7)建立一个文件 config.h 内容如图
相关文章推荐
- U-boot分析第1章------------------Makefile(编译过程)
- u-boot 2014-10 Makefile 配置过程分析
- u-boot-1.1.6的配置编译过程分析.doc
- 二、uboot的配置过程分析 (2011-03-10 19:41)
- u-boot-2016.09 make配置过程分析
- uboot配置和启动过程1(主Makefile分析)
- u-boot-2012.04.01的配置编译过程分析.doc
- 初学u-boot之源码配置编译过程分析
- u-boot的配置过程分析2
- 【imx6ul】U-Boot 2016.03的make xxx_defconfig配置过程分析
- (二) u-boot 配置、编译过程分析
- bootloader---4.分析u-boot Makefile最后连接的过程
- u-boot配置过程分析(ARM)
- U-Boot编译过程完全分析 makefile
- u-boot-2016.09 make配置过程分析
- u-boot2013.01 sdmk2410 配置和编译过程分析
- U-Boot的配置过程分析
- u-boot-2012.10分析一配置过程