U-boot
基础
现在为
Linux
开放源代码
Bootloader
有很多,
blob
、
redboot
及
U-BOOT
等,
其中
U-BOOT
是目前用来开发嵌入式系统引导代码使用最为广泛的
Bootloader
。
它支持
POWERPC
、
ARM
、
MIPS
和
X86
等处理器,支持嵌入式操作系统有
Linux
、
Vxworks
及
NetBSD
等。
2.1 U-boot
源代码目录结构
|-- board
平台依赖,存放电路板相关的目录文件
|-- common
通用多功能函数的实现
|-- cpu
平台依赖,存放
cpu
相关的目录文件
|-- disk
通用。硬盘接口程序
|-- doc
文档
|-- drivers
通用的设备驱动程序,如以太网接口驱动
|-- dtt
|-- examples
应用例子
|-- fs
通用存放文件系统的程序
|-- include
头文件和开发板配置文件,所有开发板配置文件放在其
configs
里
|-- lib_arm
平台依赖,存放
arm
架构通用文件
|-- lib_generic
通用的库函数
|-- lib_i386
平台依赖,存放
x86
架构通用文件
|-- lib_m68k
平台依赖
|-- lib_microblaze
平台依赖
|-- lib_mips
平台依赖
|-- lib_nios
平台依赖
|-- lib_ppc
平台依赖,存放
ppc
架构通用文件
|-- net
存放网络的程序
|-- post
存放上电自检程序
|-- rtc rtc
的驱动程序
`-- tools
工具
详细实例:
board
:
开发板相关的源码
,不同的板子对应一个子目录,内部放着主板相
关代码。
Board/at91rm9200dk/at91rm9200.c, config.mk, Makefile,
flash.c ,u-boot.lds
等
都和具体开发板的硬件和地址分配有关。
common
:与体系结构无关的代码文件,实现了
u-boot
所有命令,其中内置
了一个
shell
脚本解释器
(hush.c, a prototype Bourne shell grammar
parser), busybox
中也使用了它。
cpu
:与
cpu
相关代码文件,其中的所有子目录都是以
u-boot
所
支持的
cpu
命名
。