本篇文章记录U-Boot命令的使用,主要记录“信息查询命令”和“环境变量操作命令”的使用。
目录
一、U-Boot命令
进入 uboot 的命令行模式以后输入“help”或者“?”,然后按下回车即可查看当前 uboot 所
支持的命令。
这些命令后面都跟有命令说明,用于描述此命令的作用,但是命令具体怎么用呢?我们输入“help(或?) 命令名”既可以查看命令的详细用法,以“bootz”这个命令为例,我们输入如下命令即可查看“bootz”这个命令的用法:
? bootz 或 help bootz
二、信息查询命令
常用的和信息查询有关的命令有 3 个: bdinfo、 printenv 和 version。
(1)、bdinfo:
此命令用于查看板子信息
从查询的信息来看,可以看到DRAM的起始地址和大小、启动参数保存起始地址、波特率、sp(堆栈指针)起始地址等信息。
(2)、printenv:
用于输出环境变量信息。uboot 也支持 TAB 键自动补全功能,输入“print”然后按下 TAB 键就会自动补全命令,直接输入“print”也可以。
在图 中有很多的环境变量,比如 baudrate、 board_rec、 boot_fdt、 bootcmd等等。 uboot 中的环境变量都是字符串,既然叫做环境变量,那么它的作用就和“变量”一样。
比如 bootdelay 这个环境变量就表示 uboot 启动延时时间,默认 bootdelay=3,也就默认延时 3秒。如果将 bootdelay 改为 5 的话就会倒计时 5s了。
(3) 、version:
用于查看 uboot 的版本号
三、环境变量操作命令
1、修改环境变量
修改环境变量涉及到两个命令:setenv和saveenv
setenv 用于设置或者修改环境变量的值。命令 saveenv 用于保存修改后的环境变量,一般环境变量是存放在外部 flash 中的,uboot 启动的时候会将环境变量从 flash 读取到 DRAM 中。所以使用命令 setenv 修改的是 DRAM中的环境变量值,修改以后要使用 saveenv 命令将修改后的环境变量保存到 flash 中,否则的话uboot 下一次重启会继续使用以前的环境变量值。
根据提示可以看出环境变量保存到了 MMC(0)中,也就是 SD 卡中。因为我们现在将 uboot
烧写到了 SD 卡里面,所以会保存到 MMC(0)中。如果烧写到 EMMC 里面就会提示保存到
MMC(1),也就是 EMMC 设备,同理,如果是 NAND 版本核心板的话就会提示保存到NAND中 。
注意:有时候我们修改的环境变量值可能会有空格, 比如 bootcmd、 bootargs 等, 这个时候环境变量值就得用单引号括起来。
2、新建环境变量
命令 setenv 也可以用于新建命令,用法和修改环境变量一样。例如新建一个环境变量author,author的值为ZXF ,使用方法如下:
setenv author ZXF
saveenv
3、删除环境变量
既然可以新建环境变量, 肯定也可以删除环境变量,删除环境变量也是使用命令 setenv,要删除一个环境变量只要给这个环境变量赋空值即可,比如我们删除掉上面新建的 author 这个环境变量,命令如下:
setenv author
saveenv
上面的命令中通过setenv给author赋空值来删除环境变量author