U-Boot常用命令
一、信息查询命令
1. 查看开发板信息 [ bdinfo ]
2. 查看环境变量信息 [ printenv ]
STM32MP1 系列的环境变量有很多,比如baudrate、board、board_name、boot_device、bootcmd、bootdelay 等等。uboot 中的环境变量都是字符串,既然叫做环境变量,那么它的作用就和“变量”一样。比如 bootdelay 这个环境变量就表示 uboot 启动延时时间,默认 bootdelay=1,也就默认延时 1 秒。前面说的 1 秒倒计时就是由 bootdelay 定义的,如果将 bootdelay 改为 5 的话就会倒计时 5s 了。
3. 查看U-Boot版本号 [ version ]
二、环境变量操作命令
环境变量的操作涉及到两个命令:setenv 和 saveenv,setenv 命令用于设置或者修改环境变量的值。命令 saveenv 用于保存修改后的环境变量,一般环境变量存放在外部 flash 中,uboot 启动的时候会将环境变量从 flash 读取到 DRAM 中。所以使用命令 setenv 修改的是 DRAM中的环境变量值,修改以后要使用 saveenv 命令将修改后的环境变量保存到 flash 中,否则uboot 下一次重启会继续使用以前的环境变量值。
1. 修改环境变量 [ setenv ]
-
设置环境变量
将环境变量 bootdelay 改为 5
setenv bootdelay 5
-
修改环境变量
新建一个环境变量author,并赋值
setenv author 'console=ttySTM0,11520 root=/dev/mmcblk2p2 rootwait rw '
-
删除环境变量
给这个环境变量赋空值即可(下例删除上面新建的环境变量author)
setenv author
2. 保存环境变量 [ saveenv ]
直接调用 saveenv
即可将修改后的环境变量保存到 flash 中
三、内存操作命令
内存操作命令就是用于直接对 DRAM 进行读写操作的,常用的内存操作命令有 md、nm、mm、mw、cp 和 cmp。
注意:uboot 命令中的数字都是十六进制的!不是十进制的!
1. 显示内存值命令 [ md ]
用于显示对应地址的内存值
格式:md[.b, .w, .l] address [# of objects]
命令中的[.b .w .l]
对应 byte、word 和 long
address
就是要查看的内存起始地址
[# of objects]
表示要查看的数据长度。
(数据长度单位不是字节,与所选择的显示格式有关。)
例如:
查看0XC0100000 开始的 20 个字节的内存值,显示格式为.b
md.b C0100000 14
20(十进制) = 0x14(十六进制)
2. 修改指定地址的内存值命令 [ nm ]
用于修改指定地址的内存值
格式:nm [.b, .w, .l] address
命令参数含义同上
例如:
以.l 格式修改 0XC0100000 地址的数据为 0x12345678
先输入 nm.l C0100000
命令得到如下响应
ea0000b8 表示地址 0xc0100000 现在的数据
在 ‘?’ 后面就可以输入要修改后的数据 0x12345678,输入完成以后按下回车,然
后再输入‘q’即可退出
3. 自增-修改指定地址的内存值命令 [ mm ]
用法同nm命令,但修改完成后地址会自增,从而对下一个地址进行修改,直到输入q退出命令。
4. 使用一个指定的数据填充一段内存命令 [ mw ]
使用一个指定的数据填充一段内存
格式:mw [.b, .w, .l] address value [count]
address 表示要填充的内存起始地址,value 为要填充的数据,count 是填充的长度。
例如:
使用.l 格式将以 0XC0100000 为起始地址的 0x10 个内存块(0x10 * 4=64 字节)填充为 0X0A0A0A0A
mw.l C0100000 0A0A0A0A 10
5. 数据拷贝命令 [ cp ]
用于将 DRAM 中的数据从一段内存拷贝到另一段内存中,或者把
NorFlash 中的数据拷贝到 DRAM 中。
格式:cp [.b, .w, .l] source target count
source 为源地址,target 为目的地址,count 为拷贝的长度。
例如:
使用.l 格式将 0xC0100000 处的地址拷贝到 0xC0100100 处,长度为 0x10 个内存块(0x10 * 4=64 个字节)
cp.l c0100000 c0100100 10