uuboot 系列之-----uboot配置流程分析

    

        uboot 系列之-----uboot配置流程分析             

     1822人阅读     评论(6)     收藏     举报    

uboot系列的版本是uboot-2010.12,基于samsung4412芯片

Uboot里面的字母u代表了“通用”的意思,因此,为了编译出符合特定CPU,特定电路板的启动代码,就必须首先进行配置,告诉编译器需要编译成什么样的体系架构,什么样的cpu等等。

下面以4412为例,讲述配置过程

配置命令为make  smdk4412_config,我们来看这条命令是如何执行的。

首先进入到顶层Makefile文件,找到伪目标%_config

%_config::        unconfig

         @$(MKCONFIG) -A $(@:_config=)

Makefile112行有定义如下:

MKCONFIG       := $(SRCTREE)/mkconfig此处$(SRCTREE)为空

-A是参数

$(@:_config=)表示把make   xxx_config 命令里面的_config去掉,保留xxx

 

所以@$(MKCONFIG) –A $(@:_config=) 分解出来就是 mkconfig –A smdk4412,它的意思就是进入当前目录下的mkconfig文件并且传递两个参数(-A smkd4412)给它。

下面进入到mkconfig文件,看它做了写什么事情:

在文件的开头有如下语句

if [ $# -eq 2 -a "$1"="A"  ] ; then

                  # Automatic mode

                  line=`egrep -i "^[[:space:]]*${2}[[:space:]]" boards.cfg` || {

                            echo "make: *** No rule to make target \`$2_config'.  Stop." >&2

                  exit 1

         }

如果参数的个数为两个,并且第一个参数为-A就执行then后面的语句,根据命令所提供的参数,我们知道所提供的参数符合这个if语句,then语句的意思就是从boards.cfg文件中寻找第二个参数(此处为smdk4412),如果没有找到,就显示make: *** No rule to make target smdk4412_config  如果有,程序就继续往下执行(此篇文章不接着往下讨论mkconfig的其他内容,下一篇将做详细的分析)。

接着进入boards.cfg文件,在里面可以找到smdk4412标号,可见配置成功!

smdk4412     arm         armv7       smdk4212            samsung        exynos

 

 

 

总结:以上只是对配置的流程做了个大概的分析,详细的配置过程见下一篇文章

你可能感兴趣的:(uuboot 系列之-----uboot配置流程分析)