Fork me on GitHub

分析uboot中 make xxx_config过程

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中的语句是:

 

 

posted @ 2017-06-27 19:16  yooooooo  阅读(3196)  评论(0编辑  收藏  举报