(1)mkconfig脚本的6个参数
$(@:_config=) arm s5pc11x x210 samsung s5pc110 # $@指的是目标 x210_sd_config里的_config部分用空替换,得到:x210_sd,这就是第一个参数,所以:
$1: x210_sd
$2: arm
$3: s5pc11x
$4: samsumg
$5: s5pc110
所以,$# = 6
(2)第23行:其实就是看BOARD_NAME变量是否有值,如果有值就维持不变;如果无值就给他赋值为$1,实际分析结果:BOARD_NAME=x210_sd
(3)第25行:如果$#小于4,则exit 1(mkconfig脚本返回1)
(4)第26行:如果$#大于6,则exit 1(mkconfig脚本返回1)
(5)从第33行到底118行,都是在创建符号链接。为什么要创建符号链接?这些符号链接文件就是整个配置过程的核心,这些符号链接文件(文件夹)的主要作用是给头文件包含等过程提供指向性链接。根本目的是让uboot具有可移植性。
uboot可移植性的实现原理:在uboot中有很多彼此平行的代码,他们属于各自不同的架构/CPU/开发板,我们在具体到一个开发板的编译时用符号链接的方式提供一个具体的名字的文件夹提供编译使用。这样就可以在配置的过程中通过不同的配置使用不同的文件。
(6)创建的符号链接:
第一个:在include目录下创建asm文件,指向asm-arm。(46-48行)
第二个:在include/asm-arm下创建一个arch文件,指向include/asm-arm/arch-s5pc110
第三个:在include目录下创建regs.h文件,指向include/s5pc110.h删除第二个。
第四个:在include/asm-arm下创建一个arch文件,指向include/asm-arm/arch-s5pc11x
第五个:在include/asm-arm下创建一个proc文件,指向include/asm-arm/proc-armv
总结;一共创建了4个符号链接。这4个符号链接将来在写代码的过程中,头文件包含非常有用。譬如一个头文件包含可能是:#include <asm/xx.h>