如何确定 <board_name>名字
一、方式1:如何确定 <board_name>名字
1.在uboot源码目录下执行: make fsmp1a_defconfig
2.打印如下错误信息:
***
*** Can't find default configuration "arch/../configs/fsmp1a_defconfig"!
***
3. 错误信息总结分析:
通过以上信息打印可知,不能在arch/../configs/目录下找到fsmp1a_defconfig这个文件
4.通过以上错误信息可知: <board_name>默认的配置文件存放在目录下:arch/…/configs/
5.进入arch/…/configs/下,查看配置信息
stm32mp15_basic_defconfig:非安全默认配置文件
stm32mp15_trusted_defconfig:安全默认配置文件
第二种方法通过Makefile
1.因为使用make进行编译的,所以在Makefile中通过查找对应的目标文件,也可以找到对应的默认配置文件名称(board_name)
1.在uboot源码目录下,打开Makefile文件,搜索目标:config
564 %config: scripts_basic outputmakefile FORCE
565 $(Q)$(MAKE) $(build)=scripts/kconfig $@
2.在uboot源码目录下,打开Makefile文件,搜索目标:config,使用echo命令查看各个变量打印的内容
564 %config: scripts_basic outputmakefile FORCE
565 @echo $(Q)
566 @echo $(MAKE)
567 @echo $(build)
568 @echo $@
569 $(Q)$(MAKE) $(build)=scripts/kconfig $@
3.在uboot源码顶层目录下,执行 make fsmp1a_defconfig,会打印如下信息:
@
make
-f ./scripts/Makefile.build obj
fsmp1a_defconfig
- 通过前面两步分析可知,
(
Q
)
就是
@
符,去掉
(Q)就是@符,去掉
(Q)就是@符,去掉@就可以回显执行的命令
1.在uboot源码目录下,打开Makefile文件,搜索目标:config,去掉$(Q),将执行语句回显在终端上
564 %config: scripts_basic outputmakefile FORCE
565 @echo $(Q)
566 @echo $(MAKE)
567 @echo $(build)
568 @echo $@
569 $(MAKE) $(build)=scripts/kconfig $@
2.在uboot源码顶层目录下,执行 make fsmp1a_defconfig,会打印如下信息:
make -f ./scripts/Makefile.build obj=scripts/kconfig
fsmp1a_defconfig = make obj=scripts/kconfig fsmp1a_defconfig
3.通过以上打印信息可知,需要进入到scripts/kconfig目录下,打开Makefile:搜索目标defconfig
109 %_defconfig: $(obj)/conf
110 $(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)
4. 需要进入到scripts/kconfig目录下,打开Makefile:搜索目标defconfig,将执行语句中每个变量进行打印
109 %_defconfig: $(obj)/conf
110 @echo $(Q)
111 @echo $<
112 @echo $(silent)
113 @echo $(SRCARCH)
114 @echo $@
115 @echo $(Kconfig)
116 $(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)
defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)
5.在uboot源码顶层目录下,执行 make fsmp1a_defconfig,会打印如下信息:
@
scripts/kconfig/conf
..
fsmp1a_defconfig
Kconfig
6.需要进入到scripts/kconfig目录下,打开Makefile:搜索目标defconfig,将执行语句中$(Q)去掉
109 %_defconfig: $(obj)/conf
110 @echo $(Q)
111 @echo $<
112 @echo $(silent)
113 @echo $(SRCARCH)
114 @echo $@
115 @echo $(Kconfig)
116 $< $(silent) --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)
7.在uboot源码顶层目录下,执行 make fsmp1a_defconfig,会打印如下信息:
scripts/kconfig/conf --defconfig=arch/../configs/fsmp1a_defconfig Kconfig
8.需要分析make fsmp1a_defconfig执行内容详解:
scripts/kconfig/conf:通过file命令,查看scripts/kconfig/conf文件,是一个elf可执行文件
--defconfig=arch/../configs/fsmp1a_defconfig:板子参数
Kconfig:是uboot源码顶层目录下配置文件
通过以上分析可知:conf是一个可执行文件,fsmp1a_defconfig和 Kconfig作为参数传递给conf