uboot是bootloader的一种,主要是用于引导内核启动.
uboot除此功能外, 还带有很多其它功能. 功能是通过命令来调用.
uboot的命令:
help //列出当前uboot所有支持的命令
help 命令 //查看指定命令的帮助
reset //重启uboot
bootm //用于启动内核
用法: bootm 0x42000000 //从内存地址0x42000000启动内核, 启动前需把内核镜像uImage存放到指定的内存地址
printenv //打印所有环境变量的值
printenv 环境变量名 //查看指定的环境变量值
常用环境变量:
bootdelay // uboot启动后, 倒计时多少秒后自动执行环境变量bootcmd的语句
bootcmd // 倒计时到0后,自动执行里面的语句
bootargs // 是用于提供给内核的启动参数语句
setenv //设置/修改/删除环境变量的值
用法:
setenv 环境变量名 //删除指定的环境变量
setenv myargs "hello" //设置环境变量myargs=hello, 如果环境变量没有会创建出来,如果已存则会修改它的值
saveenv //保存环境变量,环境变量修改过后必须执行此命令才可以保存起来,否则重启后环境变量就恢复了.
loady //用于从uart线下载文件到板上内存里(loadb, loads, loadx基本一样)
用法:
loady 0x40008000 //把下载的文件从内存地址0x40008000开始存放
执行"loady 0x40008000"后, uboot就会进入等待状态,等着接收数据
minicom具有通过uart传输文件的功能.
按"ctrl+a", 松手后再按"s", 选择"ymodem", 在弹出的界面里按空格键选中要传的文件.
md 内存地址 //用于查看内存地址上的值
用法:
md.b 0x40008000 100 //从内存地址0x40008000开始,查看0x100个字节并输出值
md.w 0x40008000 100 //从内存地址0x40008000开始,查看0x100个16位值并输出值
md.l 0x40008000 100 //从内存地址0x40008000开始,查看0x100个32位值并输出值
mw //用于修改内存地址上的值
用法:
mw.b 0x40008000 0xab 100 //从内存地址0x40008000开始的0x100字节空间,设值为0xab
mw.w 0x40008000 0xabcd 100 //从内存地址0x40008000开始的0x200字节空间,每16位值设为0xabcd
mw.l 0x40008000 0xabcdef88 100 //从内存地址0x40008000开始的0x400字节空间,每32位值设为0xabcdef88
go //执行指定内存地址上的指令
用法:
go 0x40008000
mmc // sd/mmc接口设备(sd卡, emmc)操作命令, 按扇区操作(每扇区512字节)
用法:
mmc read addr blk cnt //从mmc设备上的第blk个扇区开始,共读出cnt个扇区到内存地址addr上
mmc write addr blk cnt //把内存地址addr上的数据写入mmc设备的第blk个扇区,共cnt个扇区大小
mmc dev //用于当看当前的mmc设备是第几个
mmc erase blk cnt //把mmc设备的第blk个扇区开始清零,共清除cnt个扇区大小
mmc part //列出当前mmc设备的分区信息
mmc list //列出所有的mmc设备信息
ext4ls //查看存储设备的ext2/3/4分区里的内容
用法:
ext4ls mmc 0:2 //查看第0个存储设备的第二个分区
ext4load //从ext2/3/4分区里读出文件到指定的内存地址
用法:
ext4load mmc 0:2 0x40008000 /uImage //从第0个存储设备的第2个分区的根目录读出uImage文件到内存地址0x40008000
fatls //查看存储设备的fat分区里的内容
用法:
fatls mmc 0:1 //查看第0个存储设备的第1个分区(fat分区)
fatload //从fat分区里读出文件到指定的内存地址
用法:
fatload mmc 0:1 0x40008000 /uImage //从第0个存储设备的第1个分区的根目录读出uImage文件到内存地址0x40008000
fatwrite //把内存上的数据存储到fat分区的一个文件里
用法:
fatwrite mmc 0:1 0x40008000 /my.txt 0x35 //把内存地址0x40008000开始的0x35个字节数据写入到第0个设备的第1个分区里,文件名为my.txt
run //执行指定的环境变量里的语句
用法:
run bootcmd //执行环境变量bootcmd里的语句
//如uboot上已驱动好网络设备并环境变设好IP及PC端IP,还可以使用以下命令:
tftpboot 0x40008000 文件名 // 通过网络下载文件到内存地址0x40008000, PC端需配置好tftp服务器
nfs 0x40008000 pc端IP:/带路径的文件名 //pc端需配置好nfs服务器
ping ip //检测网络是否通