说明:只供学习交流
一,uboot简介
Uboot是德国DENX小组的开发用于多种嵌入式CPU的bootloader程序,uboot不仅支持嵌入式Linux系统的引导,当前还支持NetBSD,VxWorks, QNX,RTEMS,ARTOS,LynxOS嵌入式操作系统。Uboot除了支持PowerPC系列的处理器外,还能支持MIPS,X86,ARM,NIOS,XScale等诸多常用系列的处理器。
二,Uboot源码结构
Uboot根目录下共有26个子目录(u-boot-1.1.6),可以分为4类:
(1):平台相关的或开发板相关的。
(2):通用的函数。
(3):通用的设备驱动程序。
(4):U-boot工具、示例程序、文档。
平台或开发板相关的:
board:对应的不同配置的电路板(即使CPU相同),比如smdk2410、sbc2410x。
cpu:对应不同的CPU,比如arm920t、arm925t、i386等;在它们的子目录下仍可以进一步细分,比如arm920t下就有at91rm9200、s3c24x0。
lib_i386,lib_arm等:某一架构下通用的文件。
通用的函数相关的:
include:头文件和开发板的配置文件,开发板的配置文件都放在include/configs目录下,U-boot没有makemenuconfig类似的菜单来进行可视化配置,需要手动地修改配置文件中的宏定义。
lib_generic:通用的库函数,比如printf等
common:通用的函数,多是对下一层驱动程序的进一步封装。
通用的设备驱动程序
disk:硬盘接口程序。
drivers:各类具体设备的驱动程序,基本上可以通用,它们通过宏从外面引入平台/开发板相关的函数。
dtt:数字温度测量器或者传感器的驱动。
fs:文件系统。
nand_spl:U-boot一般从ROM、NOR Flash等设备启动,现在开始支持从NAND Flash启动,但支持的CPU种类不多。
net:各种网络协议。
post:上电自检程序。
rtc:实时时钟的驱动。
工具实例程序文档
doc:开发使用的文档
examples:一些测试程序,可以使用U-boot下载后运行
tools:制作S-Record、U-boot格式映像的工具,比如mkimage。