make xxx_config實質上就是調用了 首先看MKCONFIG: 【註意】SRCTREE=源文件下的目錄 之後的語句: @$(MKCONFIG) $(@:_config=) arm arm920t EmbedSky NULL s3c2440就相當於執行 #mkconfig xxx arm a ...
make xxx_config實質上就是調用了
首先看MKCONFIG:
【註意】SRCTREE=源文件下的目錄
之後的語句:
@$(MKCONFIG) $(@:_config=) arm arm920t EmbedSky NULL s3c2440就相當於執行
#mkconfig xxx arm arm920t EmbedSky NULL s3c2440
#$0 $1 $2 $3 $4 $5 $6
於是乎就開始執行mkconfig;
[ "${BOARD_NAME}" ] 就是指明xxxx,上面的實例為100ask24x0
這裡就會執行echo “Configuring for 100ask24x0 board...”
(1)建立軟鏈接
之後就會執行:
ln -s asm-arm asm
【註意】
建立一個鏈接文件,為什麼這麼做呢?
在源文件中調用:
#include <asm/type.h> //就相當於 include <asm-arm/type.h>
-------------------------------------------------------------------------
繼續往下看:
同樣生成asm-arm/proc文件。
(2)生成config.mk文件
生成config.mk文件:
echo "ARCH = $2" > config.mk //重定向
echo "CPU = $3" >> config.mk //追加到config.mk
echo "BOARD = $4" >> config.mk
之後由於$5等於NULL,$6 = s3c2440,所以:
SOC = s3c24x0會定向到config.mk文件中;
config.mk內容:(在include文件夾中)
ARCH = arm
CPU = arm920t
BOARD = 100ask24x0
SOC = s3c24x0
(3)生成config.h
在uboot中APPEND = no
所以執行else分支的語句;
config.h也是在include文件夾中;
所以在config.h中的語句是: