一、uboot模式
自启动模式
uboot启动后若没有用户介入,倒计时结束后会自动执行自启动环境变量(bootcmd)中设置的命令(一般作加载和启动内核)
交互模式
倒计时结束之前按下任意按键uboot会进入交互模式,交互模式下用户可输入uboot命令
二、uboot帮助命令(help)
help
查看uboot支持的所有命令
help 命令
查看当前命令的使用方法
三、uboot环境变量命令(printenv、setenv、saveenv)
printenv
打印uboot中所有的环境变量
setenv
设置指定的环境变量(保存在RAM中)setenv 环境变量 环境变量的值
saveenv
保存所有环境变量到EMMC中
四、uboot常用环境变量( ipaddr、serverip、bootdelay)
##ipaddr
uboot的IP地址
serverip
服务器的IP地址(即ubuntu的IP)
bootdelay
进入自启动模式之前倒计时的秒数
五、uboot网络传输命令(tftp、loadb)
loadb
通过Kermit协议下载文件到指定的内存地址loadb 地址
tftp
通过tftp协议下载文件到指定的内存地址tftp 地址 文件名
注:使用tftp之前要配置好网络及tftp服务器
使用tftp命令之前保证这五点都要配置好
-
第一点:桥接模式
参考 实验一 ubuntu 网络环境配置 -
第二点:tftp服务器的搭建,注意:每次重启Linux都要重启tftp服务器
参考 实验二 tftp 服务器环境搭建 -
第三点:开发板上面的ipaddr要和Linux同一网段,serverip要和Linux相同
-
第四点:硬件连接没有问题,如网线、串口线等。
-
第五点:开发板要在Linux上面下载的文件在tftp 服务器的工作目录,即客户端要下载的文件需要放到该 /tftpboot ’ 目录
’ /tftpboot ’ 目录怎么来的 参考 实验二 tftp 服务器环境搭建 【实验步骤】 -
接下来就是开始网络连接,连接开发板
使用网线连接开发板与电脑,然后在 uboot 交互模式下使用 ping 命令连接 ubuntu,若
显示“host xxx.xxx.xxx.xxx is alive”则表示网络已连通
详细看 实验一 ubuntu 网络环境配置
-
开发板中使用tftp命令
六、uboot存储器访问命令(mmc)
help mmc 查看mmc所有子命令
mmc write
将内存中指定地址中的内容写入到EMMC中指定的扇区mmc write <addr> <blk#> <cnt> addr: 内存地址blk#: EMMC中的扇区编号cnt: 读取的扇区的个数
例:
先把文件从Ubuntu中下载下来
0:把数据写到EMMC当中
0x40008000:内存地址
0x800:EMMC中的扇区编号
0x18:读取的扇区的个数,因为下载的文件是9148个字节,EMMC中一个扇区是512个字节,9148 / 512 = 18
mmc read
将EMMC中指定扇区中的内容读取到内存中指定的地址
mmc read <addr> <blk#> <cnt>addr: 内存地址blk#: EMMC中的扇区编号cnt: 读取的扇区的个数
例:
从EMMC(0)中 0x800 扇区中读取18个块(0x18)数据到内存中0x40008000地址中
七、uboot自启动环境变量(bootcmd)
bootcmd
自启动的环境变量
该环境变量可以设置成一到多个uboot命令的集合(若有多个使用\;分割)
自启动模式下uboot就会按照bootcmd中命令的顺序逐条执行eg1:setenv bootcmd tftp 40008000 interface.bin\;go 40008000saveenv
eg2:setenv bootcmd printenvsaveenv
eg3:setenv bootcmd mmc read 0 0x40008000 0x800 0x18 \; go 40008000saveenv