uboot源码获取
http://www.denx.de/wiki/U-Boot/
历代版本:ftp://ftp.denx.de/pub/u-boot/
前期:uboot-1.2.3
现在:uboot-2008.01
支持对应的硬件平台
我们要选择相对成熟的版本(网上资料更多)
下载版本不要图最新,新的uboot可能对老的芯片支持不太好。
uboot相比于其他BootLoadr的特点
uboot源码结构
平台相关代码
即与CPU架构或开发板硬件相关的源码,硬件的改动对应的代码也需要进行修改
arch:与CPU架构相关的源代码
board:与开发板相关的源代码,包含各种官方评估板对应的源码
api: 应用接口
common: uboot命令源码
disk: 对磁盘设备的支持
drivers: 设备驱动源码
fs: 对文件系统file system的支持
include: 头文件
lib: 库
net: 对网络协议的支持
post: 上电自检程序
... ...
README: 说明文档
doc: 帮助文档 (更细)
Makefile: 编译管理
CREDITS: 开发者
COPYING: 版权
examples: 提供参考的示例程序
tools: 工具
... ...
uboot配置
![](https://img-blog.csdnimg.cn/77c2c5eff440486bb0622c90e1bdfd4b.png)
make <board_name>_config
注1:<board_name>为当前使用的开发板的名字
注2:执行该命令的前提是uboot源码支持该开发板
注3:该命令必须在uboot源码的顶层目录下执行
![](https://img-blog.csdnimg.cn/956aedf5143a4a1bb58a34705d38a9da.png)
在uboot源码顶层目录下的Makefile中指定(CROSS_COMPILE变量)
uboot编译
![](https://img-blog.csdnimg.cn/2a35942e449b4984a4683d579b0e2cbf.png)
make
注1:该命令必须在uboot源码的顶层目录下执行
注2:该命令执行后在uboot源码顶层目录下生成u-boot.bin
make clean
make distclean
注1:该命令必须在uboot源码的顶层目录下执行
生成开发板可以执行的uboot文件所需的命令:
./build.sh //生成u-boot-origen.bin
sudo dd if=/dev/zero of=zero.bin count=1 //制作一个512Byte的空镜像
cat zero.bin u-boot-origen.bin > win-u-boot-origen.bin //把空镜像追加在u-boot-origen.bin后面生成可以在开发板上运行的win-u-boot-origen.bin文件
更多移植细节请见我搬运的资源《华清FS4412开发板uboot源码移植》