uboot源码分析
分析uboot源码目录可知
arch:存放平台架构相关的文件
board:存放各个板子相关文件
README:帮助文件,存放所有源码配置编译的信息
分析README文件可知
处理器架构和板子类型的选择:
对于所有支持的板,都有现成的默认配置可用;只需输入"make <board_name>_defconfig"
示例:对于TQM823L模块类型:
cd u-boot
make TQM823L_defconfig
所以要首先确认board_name
方法一:
1.在uboot源码目录下执行:make fsmp1a_defconfig
显示不能在 arch/…/config/下找到 fsmp1a_defconfig这个文件,可知<board_name>默认的配置文件存放在arch/…/config/目录下,进入该目录查看需要的配置信息。
方法二:
通过makefile文件查找对应的目标文件。
在uboot源目录下,打开Makefile文件,搜索 config
使用echo命令打印每个变量的参数,(
(
Q
)
、
(Q)、
(Q)、(MAKE)、
(
b
u
i
l
d
)
、
(build)、
(build)、@)。
返回uboot源码目录下,执行make fsmp1a_defconfig,会打印出如下信息:
@
make
-f ./scripts/Makefile.build obj
fsmp1a_defconfig
可知$(Q)就是@符,去掉即可执行回显,去掉后再次运行make fsmp1a_defconfig,打印出:
make -f ./scripts/Makefile.build obj=scripts/kconfig fsmp1a_defconfig = make obj=scripts/kconfig fsmp1a_defconfig
如上可知,到scripts/kconfig目录下,打开Makefile文件,搜索defconfig,如上诉步骤,再次使用echo命令打印出每个变量的参数,再次去掉$(Q),去掉后再次运行make fsmp1a_defconfig,打印出:
scripts/kconfig/conf --defconfig=arch/../configs/fsmp1a_defconfig Kconfig
scripts/kconfig/conf:通过file命令,查看scripts/kconfig/conf文件,是一个elf可执行文件
–defconfig=arch/…/configs/fsmp1a_defconfig:板子参数
Kconfig:是uboot源码顶层目录下配置文件
通过以上分析可知:conf是一个可执行文件,fsmp1a_defconfig和 Kconfig作为参数传递给conf