uboot概述
uboot源码获取:
uboot的特点:
代码结构清晰
支持丰富的处理器与开发板,易于移植
支持丰富的用户命令
支持丰富的网络协议
支持丰富的文件系统
支持丰富的设备驱动
更新活跃、用户较多、资料丰富
开放源代码
较高的稳定性
不具有通用性 (不同的处理器、开发板 uboot 不可通用)
uboot源码结构:
平台相关代码:
即与 CPU 架构或开发板硬件相关的源码,硬件的改动对应的代码也需要进行修改
arch: 与CPU 架构相关的源代码
board: 与开发板相关的源代码,包含各种官方评估板对应的源码
平台无关代码:
api :应用接口
common :uboot 命令源码
disk: 对磁盘设备的支持
drivers: 设备驱动源码
include: 头文件
fs:对文件系统的支持
lib:库
net:对网络协议的支持
post:上电自检程序
。。。
配置文件、帮助文档、示例程序、工具等:
README:说明文档
doc:帮助文档
Makefile: 编译管理
CREDITS:开发者
COPYING:版权
examples:示例程序
tools:工具
。。。
uboot配置与编译
make clean :清除中间文件
make distclean:清除编译生成的所有文件
uboot使用
Uboot模式
uboot帮助命令
help:查看uboot支持的所有命令
help + 命令 :查看当前命令的使用方法
uboot环境变量命令
printenv:打印uboot中所有的环境变量
setenv:设置指定的环境变量(保存在RAM中)设置完环境变量因为是保存在RAM中,断电会丢失,如果要长久保存的话要用saveenv命令保存到EMMC中
格式:setenv 环境变量 环境变量的值
saveenv:保存所有环境变量到EMMC中
uboot常用环境变量
ipaddr:uboot的IP地址
serverip:服务器的IP地址(即ubuntu的IP)
bootdelay:进入自启动模式之前倒计时的秒数
uboot网络传输命令
loadb:通过Kermit协议下载文件到指定的内存地址
格式: loadb 地址
tftp:通过tftp协议下载文件到指定的内存地址
格式: tftp 地址 文件名
注:使用tftp之前要配置好网络及tftp服务器,文件要在tftp工作目录里,文件要给上最高权限,不然有可能下载不下来
uboot存储器访问命令
mmc read:将EMMC中指定扇区中的内容读取到内存中指定的地址
mmc read 0 <addr> <blk#> <cnt>
0:表示是要读EMMC
addr:内存地址
blk#:EMMC中的扇区编号
cnt: 读取的扇区的个数
mmc write:将内存中指定地址中的内容写入到EMMC中指定的扇区
mmc wirte 0 <addr> <blk#> <cnt>