标题:
U-boot工程的结构分析
[打印本页]
作者:
yuyang911220
时间:
2015-2-26 14:40
标题:
U-boot工程的结构分析
U-boot
工程的结构分析
我们使用的源码是
u-boot-1.1.6
1
、源代码的组织
对于
ARM
来说主要的目录如下
Board
平台依赖
存放电路板相关的目录文件,每一套板子对应于一个目录如
smdk2410
(
arm920t
)
Cpu
平台依赖
存放
CPU
相关的目录文件,每款
CPU
对应一个目录,如
arm920t
、
xscale
、
i386
等目录
Lib_arm
平台依赖
存放
ARM
体系结构通用的文件,主要用于实现
arm
平台通用的函数。
Common
通用
通用的多功能函数实现,如环境,命令和控制台相关的函数实现的地方
Include
通用
头文件和开发板的配置文件,所有开发板的配置文件都在该目录下的
configs
目录下
Lib_generic
通用
通用的库函数实现
Net
通用
网络协议的实现
Drivers
通用的
各类具体设备的驱动程序,有以太网,
nand
驱动等。
2
、
u-boot
的配置、编译和连接过程
所有目录的编译和连接的工作都是由顶层目录的
makefile
来确定的。
如果你需要使用
board
目录下的某一款开发板(
board_name
),在
make
之前需要先执行
make $(board_name)_config
的命令进行配置,然后
make all
就可以生成所需要的该开发板的二进制可执行文件
u-boot.bin
u-boot
u-boot.srec
由于
u-boot-1.1.6
还不支持
s3c2440
芯片,所以使用
2410
的板子进行修改得到适合
2440
使用的
u-boot
。
2.1 u-boot
的配置过程
执行
make $(board_name)_config
来对工程进行配置,用以确定目标板的各个子目录和头文件
在顶层
Makefile
文件可以看到如下的代码形式
SRCTREE
:
= $(CURDIR)
…
MKCONFIG
:= $(SRCTREE)/mkconfig
…
Smdk2410_config:
unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
在
u-boot
的根目录下编译的时候,
MKCONFIG
就是根目录下的
mkconfig
,
make smdk2410_config
命令相当于执行如下命令:
./mkconfig smdk2410 arm arm920t smdk2410 NULL s3c24x0
Mkconfig
的参数如下:
# Parameters:
Target
Architecture
CPU
Board [VENDOR] [SOC]
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0