uboot环境变量

1.uboot环境变量

在linux和windows操作系统中都有相应的环境变量,在操作系统中一般被指定为操作系统运行环境的一些参数。操作系统的环境变量主要作用可以用于指明重要目录在哪里。在uboot中的环境变量可以理解为一堆变量,然后每次开机从EMMC,SPI flash 等固态存储介质中进行读取到内存DRAM中进行使用,uboot环境变量可以使用uboot命令进行相应的修改,

2. uboot环境变量的作用

uboot环境变量可以当成由一组无大小限定和无类型的变量组成,如果没有配置相应的uboot环境变量,就会去执行代码中设定的相应变量,如果相应的uboot环境变量不为空就是优先去执行uboot环境变量对应的值(命令,指定的一些参数) , uboot环境变量提供了开发性,比如uboot代码规定了启动内核的方式是从spi flash进行启动,如果要修改成从emmc启动就得对uboot代码进行修改然后重新编译烧录。有了uboot环境变量就只需要配置相应的环境变量就可以对启动内核的方式进行修改,因为系统会优先使用环境变量。

3.uboot环境变量的配置

(1)打印环境变量命令

printenv命令可以打印出uboot中所有的环境变量

 printenv

uboot环境变量

(2) 保存环境变量命令

setenv 设置指定的环境变量,保存在内存中(掉电即丢失)。

setenv

如下图所示将环境配置一个test的新环境变量

uboot环境变量
修改已经存在的环境变量也跟设置新的环境变量一样,比如我想吧上面test的环境变量从100修改成10
uboot环境变量
环境变量删除的方法是将该环境变量配置为空
setenv test

如下图所示将test环境变量进行删除

uboot环境变量

(3)保存环境变量

在上面配置完环境变量后,这时环境变量只是放置在内存中会在掉电后丢失,这是使用saveenv命令就可以将环境变量进行保存在固态存储介质中,下次开机时环境变量也可以存在。

saveenv

如下图所示,上面配置的test环境变量使用saveenv命令后,进行掉电启动,打印出环境变量,test环境变量还是在哪里。

uboot环境变量

4.uboot 环境变量的使用

下面是我当前开发板的环境变量
mtdpart :boot使用环境mtdparts 来指定mtd分区
bootdelay:uboot启动后进入linux的自动倒数秒数,
baudrate:串口波特率
ethaddr:网口MAC地址
ipaddr:网口IP地址
serverip:服务端网口地址
gatewayip:子网掩码
netmask:默认网关
boottargs:保存着uboot传递到linux内核的参数
bootcmd:保存着uboot默认的命令,uboot倒计时以后就会执行bootcmd命令

uboot环境变量
下面做一个小实验来对bootcmd自动运行命令进行修改,uboot启动后会开机自动倒数bootdelay秒,如果没有输入进行打断的话就会执行bootcmd参数中的 movi和bootm命令

下面中的movi 命令是完成从inand读取固件kernel(内核固件)读取到DDR内存地址30008000的地方,然后使用bootm命令从DDR内存地址300008000处开始启动内核

bootcmd=movi read kernel 30008000; bootm 30008000

bootcmd 环境变量实验

将bootcmd 环境变量修改成printenv,uboot开机后倒计时完后就会去执行打印环境变量的命令

setenv bootcmd printenv
saveenv

如下图所示uboot开机启动倒计时后开始就执行了printenv命令打印出环境变量

uboot环境变量
setenv bootcmd 'movi read kernel 30008000; bootm 30008000'

uboot环境变量

Original: https://blog.csdn.net/weixin_44316996/article/details/126005701
Author: share666666
Title: uboot环境变量

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/813898/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球