您的位置:首页 > 其它

U-Boot配置过程

2015-10-11 12:23 357 查看
我们通过以下两条命令对指定的开发板进行u-boot配置:

make smdkv210single_config

make all

了解这两条命令做了什么,就可以了解程序的流程,知道要修改哪些文件,在顶层Makefile文件可以看到:

smdkv210single_config : unconfig

@$(MKCONFIG) $(@:_config=) arm s5pc11x smdkc110 samsung s5pc110

@echo "TEXT_BASE = 0xc3e00000" > $(obj)board/samsung/smdkc110/config.mk

@$(MKCONFIG) $(@:_config=) arm s5pc11x smdkc110 samsung s5pc110

等价于:./mkconfig smdkv210single arm s5pc11x smdkc110 samsung s5pc110

$1         $2   $3      $4       $5      $6  

下面我们一步步展开分析mkconfig脚本的作用:

1.确定开发板的名称:

 


2.创建到平台/开发板相关的头文件链接:

(a)在include目录下创建了一个平台相关的软链接:asm->asm-arm/

 


这里我们在源码目录下编译,所以执行if语句中的else部分,因此,下面用到LNPREFIX变量时内容为空。

(b)在include/asm-arm目录下创建一个SOC相关的软链接:arch->arch-s5pc110

 


查看asm-arm目录下并没有arch-s5pc110,但是,创建符号链接和软链接时允许目标文件或目录不存在,此时若访问链接文件会得到一个“位置不可用”的提示, 若之后重新将目标文件或目录补上(路径、名称一致即可),则该链接仍然有效。

(c)在include目录下先删除后重新创建regs.h->s5pc110.h,先删除后重新创建asm-arm/arch->arch-s5pc11x

 


(d)先删除后创建asm-arm/proc->proc-armv,源码目录下的include/asm-arm/目录

 


所以总结来说一共先删除后重新创建的软连接是:

include/asm->asm-arm

include/asm-arm/arch->ardch-s5pc11x

include/regs.h->s5pc110.h

include/asm-arm/pro->pro-armv

3.创建顶层Makefile需要的包含文件:

 


因此创建的config.mk文件的内容是:

 


4.创建开发板相关的头文件:

 


APPEND默认值为”no”,所以重新创建config.h,内容为:

 


目前为止,我们看一看到mkconfig主要完成的工作是先删除后重新创建各种平台/开发板相关的头文件链接,最后创建一个开发板相关的头文件,并在里面制定了开发板的配置文件。

在配置文件中主要有两类宏构成:

(1)一类是选项,”CONFIG_”前缀的宏,用于选择CPU,SOC,开发板类型等,例如:

 


(2)一类是参数,”CFG_”前缀的宏,用于初始化中的各种设置,例如:

 


当然还有许多其他定义的宏。在大工程文件中常常用到条件编译,部分中宏的使用让我们可以选择某条语句或某组语句进行翻译或者忽略,在U-Boot中几乎所有文件都编译链接,这些宏的使用大大减轻了编译链接的工作量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息