-
按照
readme
所说的
make
NAME_config
make
---------------------------
----------------------------------------------
其中
NAME_config
在根目录的
Makefile
中,其中包含了
很多
NAME_config,
代表
各个不同的板子。
如果要新添加一块板子的支持,需要在
p>
Makefile
中新添加一个
NAME_
config
比如
#######
##################################################
################
## HFRK S3C44B0
Systems
###############################
##########################################
hfrks3c44b0_config
:
unconfig
@./mkconfig $$(@:_config=) arm s3c44b0
hfrks3c44b0 hfrk
后面的几个参数依次表示
ARCH,CPU,BOARD,VENDOR
------
--------------------------------------------------
-----------------
然后跟到
mkconfig
去看看执行了什么
根据该脚本的注释知道他做了三件事情
1)
为变量赋值并输出到
./include/
文件的末尾
(
不要和根目录下面的
< br>
搞混
)
对于上面的配置项
ARCH = arm
CPU = s3c44b0
BOARD = hfrks3c44b0
/*
9G20
板子里的
ARCH
= arm
CPU
= arm926ejs
BOARD
=
at91sam9g20ek
VENDOR = atmel
SOC
= at91sam9
*/
2
)在
./include
p>
下面建立了几个链接文件
rm -f asm
ln -s asm-$$2 asm
rm -f asm-$$2/arch
ln -s
arch-$$3 asm-$$2/arch
if [
rm -f asm-$$2/proc
ln -s proc-armv asm-$$2/proc
fi
也就是
asm/ --->asm-arm
arch-s3c44b0 --->asm-arm/arch
proc-armv ---> asm-
arm/proc
3)
生产
config.h
文件
一般要编译一个软件,要有一个配置
文件和一个
makefile.u-BOOT
底下,配置文件不
是动态生成的。
而是手工编写的。文件中包含了很多
CFG_xxx
CONFIG_xxxx
这类的东西,这些在
u
-boot
的
README
中
有详细的说明。
看此步骤的脚本:
#
# Create board specific
header file
#
if [
# Append to existing config file
then
echo >>
config.h
else
>
config.h
# Create new
config file
fi
echo
echo
exit 0
就是在
./include
中生成一个
config.h
文件,该文件中包含了实际的
config
文件
如上面的配置中:
config.h
如下:
include
所以
hfrks3c44b0.h
才是
真正的配置文件,如果要添加一个新板子,要把该板子的
配置文件放入
./include/configs/
底下,名字就用
NAME_config
中的<
/p>
NAME
。
-
--------------------------------------------------
-------------------------------
下面看看根目录下面的
该文件也配置了一下常用的重要选项
包括
编译器如
AS,LD,CC
等
一些重要的
FLAGS
如
CFLAGS CPPFLAGS
LDFLAGS.....
由
*.s *.c
< br>生成
*.o
的规则
#########################################
%.s:
%.S
$$(CPP) $$(AFLAGS) -o $$@
$$(CURDIR)/$$<
%.o:
%.S
$$(CC)
$$(AFLAGS) -c -o $$@ $$(CURDIR)/$$<
%.o:
%.c