参考文献:
- 《韦东山——嵌入式Linux应用开发完全手册》第15章
- uboot之start.s分析
DENX的u-boot是一个狠庞大的系统,研究透彻u-boot的Make的运作同样是一个狠庞大的工程,目前我仅参考以上两个参考文档对S3C2440的u-boot的编译的Make相关的文件和命令做一个简单说明。如果深入学习《嵌入式Linux应用开发完全手册》是一个很好的指引。
- 一般针对S3C2440的移植都是参照smdk2410来的,所以在smdk2410的目录,拷贝一个做为smdk2440;
- 另外,编译后,可以直接查找*.o文件查看已编译选项;
- 读Makefile可以发现u-boot.lds的用途。
- start.S是整个uboot的起始文件。
以上四项《嵌入式Linux应用开发完全手册》已经从源头说明了其组成原理。
一 make smdk2440_config的解析:
一般的,在配置u-boot的时候,我们会输入:
make smdk2440_config
从早期的u-boot版本中可以见到这样的几行:
MKCONFIG=$(SRCTREE)/mkconfig
......
smdk2410_config : unconfig
@$(MKCONFIG) smdk2410 arm arm920t smdk2410 NULL s3c24x0
由此翻译过来,make smdk2440_config就相当于:
./mkconfig smdk2410 arm arm920t smdk2410 NULL s3c24x0
二 对于./mkconfig smdk2410 arm arm920t smdk2410 NULL s3c24x0的解析:
这个mkconfig是一个shell脚本,它根据传入的参数,做了如下工作:
ln -s asm-$2 asm
ln -s arm-$6 asm-$2/arch
ln -s proc-armv arm-$2/proc
创建config.mk文件
ARCH = arm
CPU = arm920t
BOARD = smdk2410
SOC = s3c24x0
创建于开发板相关的config.h文件
#include