首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

U-boot工程的结构分析

U-boot工程的结构分析

U-boot工程的结构分析
我们使用的源码是u-boot-1.1.6
1、源代码的组织

对于ARM来说主要的目录如下
Board
平台依赖
存放电路板相关的目录文件,每一套板子对应于一个目录如smdk2410arm920t
Cpu
平台依赖
存放CPU相关的目录文件,每款CPU对应一个目录,如arm920txscalei386等目录
Lib_arm
平台依赖
存放ARM体系结构通用的文件,主要用于实现arm平台通用的函数。
Common
通用
通用的多功能函数实现,如环境,命令和控制台相关的函数实现的地方
Include
通用
头文件和开发板的配置文件,所有开发板的配置文件都在该目录下的configs目录下
Lib_generic
通用
通用的库函数实现
Net
通用
网络协议的实现
Drivers
通用的
各类具体设备的驱动程序,有以太网,nand驱动等。
2u-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就是根目录下的mkconfigmake smdk2410_config命令相当于执行如下命令:
./mkconfig smdk2410 arm arm920t smdk2410 NULL s3c24x0
Mkconfig的参数如下:
# Parameters:
Target
Architecture
CPU
Board [VENDOR] [SOC]
继承事业,薪火相传
返回列表