ubbot编译准备
(1)删除无关代码
arch下只保留arm
arch/arm/cpu下只保留armv7
arch/arm/cpu/arv7下只保留s5pc1xx和s5_common
board目录下只保留samsung文件夹
board/samsung/下只保留goni、common文件夹
(2)在uboot的主目录下有makefile、mkconfig和config.mk三个文件。作用如下:
Makefile:负责管理整个工程的文件编译,会通过sinclude/include(同级目录使用include)将其他文件包含进来并原地展开。
mkconfig:
主makefile会通过命令:@$(MKCONFIG) $(@:_config=) arm(架构) s5pc11x(cpu) x210(soc) samsung(soc供应商) s5pc110(板卡名称)调用mkconfig
功能如下:
一、创建符号链接
符号链接asm:指向源码/include/asm-arm文件夹
创建asm-arm目录下的arch链接:指向arch-s5pc110
创建符号reg.h指向s5pc110.h
第二、创建include/config.mk,将arm(架构) s5pc11x(cpu) x210(soc) samsung(soc供应商) s5pc110(板卡名称)输出到其中,以便主makefile中引用这些变量和值。
第三、创建一个config.h文件,其中会包含我们指定的x210_sd.h。x210_sd.h会被用来生成autoconf.mk文件,指导编译过程.
config.mk:Makefile中通过include $(TOPDIR)/config.mk将其包含进来,在该文件中使用sinclude $(OBJTREE)/include/autoconf.mk(开发板配置文件)引入开发板配置文件,
该文件是调用mkconfig编译生成的,原材料为$(TOPDIR)/include/configs/x210_sd.h。此外,链接脚本和链接地址都是在config.mk文件中根据mkconfig生成的符号链接进行设置的。
(3)编译uboot,确保编译通过
制定链接地址的方式由两种:
1、在makefile中使用-T text 地址 的方式制定
2、在链接脚本开头使用 .=地址制定
综上,uboot的编译其实应该分为两个阶段:
一、配置,给mkconfig传入开发板的配置信息,例如arch、soc等,以产生uboot编译需要的变量
命令:make x210_sd_config
二、编译生成uboot.bin
make