Uboot
Uboot是德国DENX小组开发的用于多种嵌入式CPU( MIPS、x86、ARM、XScale等)的bootloader程序,UBoot不仅支持嵌入式Linux系统的引导,还支持VxWorks, QNX等多种嵌入式操作系统。
源码:ftp://ftp.denx.de/pub/u-boot/(一直在更新)
目录结构:
Board
和开发板有关的文件。每一个开发板都以一个子目录出现在当前目录中,比如:SMDK2410,子目录中存放与开发板相关的文件。
Common
实现Uboot支持的命令。
Cpu
与特定CPU架构相关的代码,每一款Uboot下支持的CPU在该目录下对应一个子目录,比如有子目录arm920t等。
Disk
对磁盘的支持。
Doc
文档目录。Uboot有非常完善的文档,推荐大家参考阅读。
Drivers
Uboot支持的设备驱动程序都放在该目录,比如各种网卡、支持CFI的Flash、串口和USB等。
Fs
文件系统的支持。
Include
Uboot使用的头文件。该目录下configs目录有与开发板相关的配置头文件,如smdk2410.h。该目录下的asm目录有与CPU体系结构相关的头文件。
Net
与网络协议栈相关的代码,例如:TFTP协议、RARP协议的实现。
Tools
生成Uboot的工具,如:mkimage, crc等等。
Uboot的Makefile从功能上可以分成两个部分:
1、执行每种board相关的配置
2、编译生成uboot.bin文件
Uboot.bin的生成也分为两步:
1. 选择要使用的board:
$make smdkxxx_config
2. 编译生成u-boot.bin:
$make CROSS_COMPILE=arm-linux
Uboot命令:
尽管UBOOT提供了丰富的命令集,但不同的单板所支持的命令并不一定一样(可配置),help 命令可用于察看当前单板所支持的命令。
后面将介绍Uboot移植!