uboot理解
make---》定义系统结构---》定义主机操作系统类型---》定义执行shell脚本的shell---》
make XXX_config ---》执行顶层目录的mkconfig(是一个脚本)
mkconfig这个脚本做了3件事情:1.建立软连接 2.创建include/configs.mk 3.创建include/config.h
1.软连接中连接了a:arm通用的头文件 b:特定cpu用的头文件 c:cpu用的特殊文件(结构体,汇编函数...)
2.include/config.mk文件中包含了: ARCH CPU BOARD VENDOR SOC 等
3.include/config.h中包含一些通用的头文件:config_cmd_defaults.h config_defaults.h configs/XXX.h asm/config.h
make all--->sinclude $(obj)inluce/autoconf.mk (include config.h中的include文件)--->sinclude $(obj)include/autoconf.mk.dep(include config.h|commod.h中的宏定义)--->包含include/config.mk(就是上面生成的那个)--->包含顶层的config.mk(做了3件事) 1.指定汇编工具 2.指定汇编规则 3.讲需要的config.mk包含进来
3.包含了哪些:例如: arm/config.mk smdk64XX/config.mk arm1176/config.mk $(board)/config.mk(就是他设定了text地址)
u-boot: depend $(SUBDIRS) $(objs) $(libs) ....$u-boot.lds
depend 规则就系进入每一个需要的目录进行make_depend
_depend目标在顶层的rules.mk中,rules.mk会生成当前目录下需要的目标依赖文件
ARCH CPU BOARD VENDOR SOC
mini6410中 $(MKCONFIG) mini6410 arm s3c64xx mini6410 samsung s3c6410 Nand ram256
$1 $2 $3 $4 $5 $6 $7 $8