1.在uboot源码包中分析其中Makefile。因为编译流程为:
1.make mini2440_config
2.make
2.makefile中有:
mini2440_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t mini2440 tekkamanninja s3c24x0
b.$(@:_config=)中$@表示目标mini2440_config;_config= 表示将其中的_config字符串替换为空,故替换后mini2440;后面的保持不变
c.故执行make mini2440_config相当于执行命令:
mkconfig mini2440 arm arm920t mini2440 tekkamanninja s3c24x0;
3.分析脚本文件mkconfig:
[ "${BOARD_NAME}"] || BOARD_NAME="$1"
//如果BOARD_NAME定义则不执行,如果未定义则BOARD_NAME值为$1
//注意$1指的是mini2440,故BOARD_NAME=mini2440 而且:
//mkconfig mini2440 arm arm920t mini2440 tekkamanninja s3c24x0;
// $0 $1 $2 $3 $4 $5 $6
4.echo "Configuring for ${BOARD_NAME} board..."这句话在make mini2440_config之后就会打印出来。
5.生成一些链接文件
6.echo "ARCH =$2"> config.mk//"ARCH=arm"放入新建的config.mk文件中
echo "CPU =$3">>config.mk//"CPU=arm920t"追加到 config.mk文件中
echo "BOARD=$4">>config.mk//"BOARD=mini2440"追加到 config.mk文件中
7.[ "$5" ]&&[ "$5"!="NULL" ]&&echo "VENDOR=$5">>config.mk//第五个参数参数,输出并追加入config.mk文件中
8.新建一个config.h文件,内容为:
/*Automatically generated=do not edit*/
#include <configs/mini2440.h>
1.make mini2440_config
2.make
2.makefile中有:
mini2440_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t mini2440 tekkamanninja s3c24x0
//表示执行第一个make mini2440_config语句时,相当于执行@$(MKCONFIG) $(@:_config=) arm arm920t mini2440 tekkamanninja s3c24x0
a.而MKCONFIG变量定义为:MKCONFIG:=$(SRCTREE)/mkconfig 表示源码树下的mkconfig文件。b.$(@:_config=)中$@表示目标mini2440_config;_config= 表示将其中的_config字符串替换为空,故替换后mini2440;后面的保持不变
c.故执行make mini2440_config相当于执行命令:
mkconfig mini2440 arm arm920t mini2440 tekkamanninja s3c24x0;
3.分析脚本文件mkconfig:
[ "${BOARD_NAME}"] || BOARD_NAME="$1"
//如果BOARD_NAME定义则不执行,如果未定义则BOARD_NAME值为$1
//注意$1指的是mini2440,故BOARD_NAME=mini2440 而且:
//mkconfig mini2440 arm arm920t mini2440 tekkamanninja s3c24x0;
// $0 $1 $2 $3 $4 $5 $6
4.echo "Configuring for ${BOARD_NAME} board..."这句话在make mini2440_config之后就会打印出来。
5.生成一些链接文件
6.echo "ARCH =$2"> config.mk//"ARCH=arm"放入新建的config.mk文件中
echo "CPU =$3">>config.mk//"CPU=arm920t"追加到 config.mk文件中
echo "BOARD=$4">>config.mk//"BOARD=mini2440"追加到 config.mk文件中
7.[ "$5" ]&&[ "$5"!="NULL" ]&&echo "VENDOR=$5">>config.mk//第五个参数参数,输出并追加入config.mk文件中
8.新建一个config.h文件,内容为:
/*Automatically generated=do not edit*/
#include <configs/mini2440.h>