boot2010.03 配置编译目标分析

该系列教程会根据uboot的编译过程进程分析,如何编译,那么将会如何分析这些流程
此处我还没有增加6410的支持,先看6400 的过程,因为还没有到增加的地方,分析完整个流程之后,会写如何移植uboot到s3c6410的。知道了工作的流程,再去移植会事半功倍的。

拿到uboot首先会修改编译的目标:

make smdk6400_config

对执行如下的目标

#########################################################################

## ARM1176 Systems

#########################################################################

smdk6400_noUSB_config \

smdk6400_config : unconfig

@mkdir -p $(obj)include $(obj)board/samsung/smdk6400

@mkdir -p $(obj)nand_spl/board/samsung/smdk6400

@echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h

@if [ -z "$(findstring smdk6400_noUSB_config,$@)" ]; then \

echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/smdk6400/config.tmp;\

$(MKCONFIG) $(@:_config=) arm arm1176 smdk6400 samsung s3c64xx; \

else \

echo "RAM_TEXT = 0xc7e00000" >> $(obj)board/samsung/smdk6400/config.tmp;\

$(MKCONFIG) $(@:_noUSB_config=) arm arm1176 smdk6400 samsung s3c64xx; \

fi

@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk

这里主要看的是如下2句

echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/smdk6400/config.tmp;\

$(MKCONFIG) $(@:_config=) arm arm1176 smdk6400 samsung s3c64xx; \

首先会将RAM_TEXT = 0x57e00000 写入到$(obj)board/samsung/smdk6400/config.tmp 这个文件内
$(obj) 是目标的编译生成的路劲或者是当前UBOOT的目录,这就要看你有没有指定编译目录了

重点分析$(MKCONFIG) $(@:_config=) arm arm1176 smdk6400 samsung s3c64xx; \
会调用$(MKCONFIG) 而 MKCONFIG := $(SRCTREE)/mkconfig
也就是说最终会变成如下形式
mkconfig smdk6400 arm arm1176 smdk6400 samsung s3c64xx

下面就得进入mkconfig的代码内进行分析。。记录上面的参数,请大家打开对应的文件,一步步的看着然后分析

首先会将RAM_TEXT = 0x57e00000 写入到$(obj)board/samsung/smdk6400/config.tmp 这个文件内
$(obj) 是目标的编译生成的路劲或者是当前UBOOT的目录,这就要看你有没有指定编译目录了

重点分析$(MKCONFIG) $(@:_config=) arm arm1176 smdk6400 samsung s3c64xx; \
会调用$(MKCONFIG) 而 MKCONFIG := $(SRCTREE)/mkconfig
也就是说最终会变成如下形式
mkconfig smdk6400 arm arm1176 smdk6400 samsung s3c64xx

下面就得进入mkconfig的代码内进行分析。。记录上面的参数,请大家打开对应的文件,一步步的看着然后分析

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/b494aacd5ed03a9b5ab9edb2417b9195.html