U-Boot命令之环境变量操作命令

Posted 行稳方能走远

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了U-Boot命令之环境变量操作命令相关的知识,希望对你有一定的参考价值。

参考:U-Boot命令之环境变量操作命令
作者:一只青木呀
发布时间: 2020-10-20 11:55:00
网址:https://blog.csdn.net/weixin_45309916/article/details/109177707

1、修改环境变量

环境变量的操作涉及到两个命令: setenv 和 saveenv

命令描述
setenv用于设置或者修改环境变量的值
saveenv用于保存修改后的环境变量

一般环境变量是存放在外部 flash 中的,uboot 启动的时候会将环境变量从 flash 读取到 DRAM 中。所以使用命令 setenv 修改的是 DRAM中的环境变量值,修改以后要使用 saveenv 命令将修改后的环境变量保存到 flash 中,否则的话uboot 下一次重启会继续使用以前的环境变量值。

命令 saveenv 使用起来很简单,格式为:

saveenv

比如我们要将环境变量 bootdelay 改为 4,就可以使用如下所示命令:

setenv bootdelay 4
saveenv

查看当前环境变量bootdelay的值:

此时把他修改成为4:

setenv bootdelay 4
saveenv

在上图中,当我们使用命令 saveenv 保存修改后的环境变量的话会有保存过程提示信息,根据提示可以看出环境变量保存到了 MMC(0)中,也就是 SD卡 中。因为我用的 SD卡启动, 所以会保存到MMC(0)中,如果是NAND版本核心板的话就会提示保存到NAND中。

修改 bootdelay 以后,重启开发板, uboot 就是变为 4 秒倒计时,如图下所示

有时候我们修改的环境变量值可能会有空格, 比如 bootcmd、 bootargs 等, 这个时候环境变量值就得用单引号括起来,比如下面修改环境变量 bootargs 的值:

setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'
saveenv

上面命令设置 bootargs 的值为“console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw”,其中“console=ttymxc0,115200”、“root=/dev/mmcblk1p2”、“rootwait”和“rw”相当于四组“值”,这四组“值”之间用空格隔开,所以需要使用单引号‘’将其括起来,表示这四组“值”都属于环境变量 bootargs。

2、新建环境变量

命令 setenv 也可以用于新建命令,用法就是修改环境变量一样,比如我们新建一个环境变量 author, author 的值为我的名字拼音: qingmu,那么就可以使用如下命令:

setenv author qingmu
saveenv

新建命令 author 完成以后重启 uboot,然后使用命令 printenv 查看当前环境变量,如下图所示:

从上图可以看到新建的环境变量: author,其值为: qingmu

3、删除环境变量

既然可以新建环境变量,那么就可以删除环境变量,删除环境变量也是使用命令 setenv,要删除一个环境变量只要给这个环境变量赋空值即可,比如我们删除掉上面新建的 author 这个环境变量,命令如下:

setenv author
saveenv


上面命令中通过 setenv 给 author 赋空值,也就是什么都不写来删除环境变量 author。重启uboot 就会发现环境变量 author 没有了。

以上是关于U-Boot命令之环境变量操作命令的主要内容,如果未能解决你的问题,请参考以下文章

u-boot常用命令

u-boot常用命令

U-Boot命令之内存操作命令

U-Boot命令之网络操作命令

U-Boot命令之NANDBOOT操作命令

U-Boot 中的未知命令“saveenv”错误