目录
一、uboot源码结构
1.1uboot源码获取
uboot源码下载:http://www.denx.de/wiki/U-Boot/
uboot版本命名
前期:uboot-1.2.3 现在:uboot-2008.01
uboot版本选择:支持对应的硬件平台 相对成熟的版本(资料多): 处理器和同时期的uboot的兼容性更好。
1.2uboot特点
代码结构清晰、支持丰富的处理器与开发板,易于移植(arm/x86等支持很多处理器和开发板,都可以下载,易于移植。不仅能引导Liunx系统,还能引导vxworks系统。)、支持丰富的用户命令、支持丰富的网络协议、支持丰富的文件系统(管理和访问磁盘/文件,给上层留read/write接口)、支持丰富的设备驱动、更新活跃、用户较多、资料丰富、开放源代码、较高的稳定性、不具有通用性(不同的处理器、开发板uboot不可通用)(不同处理器汇编、串口不同)
1.3 uboot源码
1>.uboot 版本:
Index of /pub/u-boot/ 这里使用的是u-boot-2013.01.tar.bz2
2.>.平台相关模式
(硬件平台)平台相关代码:即与CPU架构或开发板硬件相关的源码,硬件的改动对应的代码也需要进行修改(uboot支持丰富的处理器和开发板,但不具有通用性:把所有的代码都写一遍(X86和ARM都有),但不同的处理器和开发板,需要用到的代码不同,视情况删减。)
arch:与CPU架构相关的源代码
board:与开发板相关的源代码,包含各种官方评估板对应的源码
3>.uboot 源码
平台相关代码。arch目录下只有armv7有关
arch是不同型号的CPU,当CPU相同,开发板也会有不同,board存放的是不同开发板的代码。
开发板是芯片厂家官方的评估板。4412对应的是三星的评估板origen。
CREDITS 开发者名单和README帮助信息,doc详细的帮助信息
drivers硬件设备驱动
fs:文件系统 管理和访问磁盘的软件机制 ,fat:wins下的文件系统;ext4:Linux下的文件系统
二、uboot的配置与编译
uboot源代码下载后做两件事:
配置:在众多CPU和开发板中指定我们要编译的芯片和开发板。
编译:配置完成后生成.bin文件再下载到开发板。
2.1 uboot配置
1.指定当前使用的硬件平台
make <board_name>_config (eg:make origen_config)
注1:<board_name>为当前使用的开发板的名字(去board查看)
注2:执行该命令的前提是uboot源码支持该开发板
注3:该命令必须在uboot源码的顶层目录下执行
2.指定编译uboot源码使用的编译器
在uboot源码顶层目录下的Makefile中指定(CROSS_COMPILE变量)
2.2uboot编译
1.编译uboot :make
注1:该命令必须在uboot源码的顶层目录下执行
注2:该命令执行后在uboot源码顶层目录下生成u-boot.bin
make 编译
.srec也是二进制文件,在这里我们使用.bin文件
此时生成的u-boot是源代码编译生成的文件,为ELF格式
转换u-boot格式 ,转成.bin格式
2.清除编译过程中生成的中间文件
make clean
make distclean
注1:该命令必须在uboot源码的顶层目录下执行
删除.o这些中间文件
make distclean :编译生成 的文件全部删除