U-boot官方提供的命令有很多,并且支持自定义命令。但在实际开发中,即落实到具体某一款开发板时,并不需要那么多的命令,所以半导体厂商或开发板生产厂商会配置自己的uboot
1.查询命令
1.1 bdinfo
查看芯片中各设备使用的地址
使用方式:bdinfo
1.2 printenv
查看芯片中的环境变量,注意:uboot中的环境变量都是字符串
使用方式:printenv
1.3 version
查看uboot版本号
使用方式:version
2.环境变量相关命令
2.1 setenv
设置环境变量的值,此时值存放在 DRAM 中
使用方式:1)单一赋值 setenv XXX 000
2)多值赋值 setenv bootargs 'console=ttySTM0,115200 root=/dev/mmcblk2p2 rootwait rw' (单引号内的四组值都属于XXX,值之间用空格分开)
3)删除环境变量 setenv XXX //即赋空值,重启 uboot 此变量消失
2.2 saveenv
保存环境变量的值,将值保存到外部 flash 中(一般环境变量存放在外部 flash 中,uboot启动时会将环境变量从外部 flash 读取到 DRAM 中)
使用方式:saveenv //紧跟 setenv 后
3.内存(DRAM)相关命令
3.1 md
查看内存里的值
使用方式:md[.b .w .l] address [# of objects]
.b .w .l 分别表示 byte word long,即用 1 字节 2 字节 4 字节为度,显示内存
address 表示要查看的 内存的起始地址
[# of objects]表示要显示多少个度,注意:uboot命令中的数字都是十六进制的,且不用加 0x 前缀
如:想看 0xc0100000 往后的20个字节 md.b c0100000 14
3.2 nm
设置内存里的值
使用方式:第一步. nm[.b .w .l] adress
第二步. 0x12
第三步. q
如:修改 0xc0100000 地址的值为 0x12
3.3 mm
设置内存里的值,且会连续询问下个度的内存地址是否更改值
使用方式:第一步. mm[.b .w .l] adress
第二步. 0x12345678
地址递增,重复询问
第三步. q
如:修改 0xc0100000 ,度=四字节 的值为0x12345678
3.4 mw
使用指定数据填充一段内存
使用方式:mw[.b .w .l] address value [count]
value = 要填充的值,count = 度的个数
如:想用 0x12345678 填充 0xc0100000 往后的20个字节 mw.l c0100000 12345678 5
3.5 cp
数据复制
使用方式:cp[.b .w .l] source target count
source = 源地址,target = 目标地址,count = 度的个数
如:cp.l c0100000 c0100100 10
3.6 cmp
比较两段内存里的值是否相等
使用方式:cmp[.b .w .l] addr1 addr2 count
add1 和 add2 = 内存首地址,count = 度的个数
如:cmp.l c0100000 c0100100 10
4.网络相关命令
4.1 ipaddr
开发板 ip 地址,可以不设置,用 dhcp 命令从路由器获取
使用方式:setenv ipaddr 192.168.1.250
4.2 ethaddr
开发板 MAC 地址
使用方式:setenv ethaddr b8:ae:1d:01:01:00
4.3 gatewayip
网关地址
使用方式:setenv ga