对uboot配置过程的解析,需要去分析mkconfig脚本,在顶层makefile中,向mkconfig脚本传输了以下6个参数:
- $1: x210_sd
- $2: arm
- $3: s5pc11x
- $4: x210
- $5: samsumg
- $6: s5pc110
所以,$# = 6。
[ "${BOARD_NAME}" ] || BOARD_NAME="$1"
第23行:其实就是看BOARD_NAME变量是否有值,如果有值就维持不变;如果无值就给他赋值为$1,实际分析结果:BOARD_NAME=x210_sd。
[ $# -lt 4 ] && exit 1
[ $# -gt 6 ] && exit 1
第25行:如果$#小于4,则exit 1(mkconfig脚本返回1)。
第26行:如果$#大于6,则也返回1。
所以:mkconfig脚本传参只能是4、5、6,如果大于6或者小于4都不行。
1.创建符号链接
从第33行到第118行,都是在创建符号链接。为什么要创建符号链接?这些符号链接文件的存在就是整个配置过程的核心,这些符号链接文件(文件夹)的主要作用是给头文件包含等过程提供指向性连接。根本目的是让uboot具有可移植性。
uboot可移植性的实现原理:在uboot中有很多彼此平行的代码,各自属于各自不同的架构/CPU/开发板,我们在具体到一个开发板的编译时用符号链接的方式提供一个具体的名字的文件夹供编译时使用。这样就可以在配置的过程中通过不同的配置使用不同的文件,就可以包含正确的文件。
创建的符号链接:
cd ./include
rm -f asm
ln -s asm-$2 asm
- 第一个:在include目录下创建asm文件,指向asm-arm。(46-48行)
if