这里只贴出Makefile、config.mk、u-boot.lds中关键的部分,不会全部列出,因为uboot中的Makefile、config.mk、u-boot.lds实在是太长了,仅仅是uboot的顶层Makefile就接近3200行....
在编译uboot之前,需要对uboot做的配置(make x210_sd_config),到底这一步做了什么呢?下面是我在Makefile中搜索目标后找到的相关的语句:
2589 x210_sd_config : unconfig
2590 @$(MKCONFIG) $(@:_config=) arm s5pc11x x210 samsung s5pc110
2591 @echo "TEXT_BASE = 0xc3e00000" > $(obj)board/samsung/x210/config.mk
执行命令传入6个参数,分别是x210_sd、arm s5pc11x x210 samsung s5pc110,其中$# = 6 、$1=arm、$2=s5pc11x、$3=x210、$4=samsung、$5=s5pc110这几个参数会被写入include/comfig.mk配置脚本中。
还有"TEXT_BASE = 0xc3e00000"这个地址被创建并追加到board/samsung/x210/config.mk这个配置文件中....
这里是uboot的24~42行,主要是定义了uboot版本、主机架构主机系统等信息,可以描述信息。
VERSION = 2017
PATCHLEVEL = 7
SUBLEVEL = 10
EXTRAVERSION = acer
U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL).$(EXTRAVERSION) ## u-boot版本:2017.7.10.acer
VERSION_FILE = $(obj)include/version_autogenerated.h ## uboot/include/version_autogenerated.h
HOSTARCH := $(shell uname -m | \ #在linux命令行执行 uname -m 命令可查看主机架构
sed -e s/i.86/i386/ \
-e s/sun4u/sparc64/ \
-e s/arm.*/arm/ \
-e s/sa110/arm/ \
-e s/powerpc/ppc/ \
-e s