uBoot的环境变量

uBoot支持对环境变量进行配置,环境变量是一系列由uBoot固件维护的可持久化存储的配置项。用户和固件可以通过环境变量对设备参数、状态等进行调校。这些变量同时可以传递到上层系统,作为启动和配置参数。

使用代码维护环境变量

uBoot提供了getenv()setenv()saveenv()函数,用于获取和设置环境变量的值。

获取环境变量的值:getenv()

getenv()函数的原型如下:

char *getenv(const char *name);

参数name为包含被请求变量名称的C字符串。

该函数返回一个以NULL结尾的字符串,该字符串为被请求环境变量的值。如果该环境变量不存在,则返回NULL

getenv()函数包括以下变体:

ulong getenv_hex(const char *varname, ulong default_val);
ulong getenv_ulong(const char *name, int base, ulong default_val)

设置环境变量的值:setenv()

setenv()函数的原型如下:

int setenv(const char *varname, const char *varvalue);

参数varname为包含被请求变量名称的C字符串;参数varvalue为包含被请求变量参数的C字符串,设为NULL表示删除被请求的环境变量。

返回表示成功。

setenv()函数包括以下变体:

int setenv_ulong(const char *varname, ulong value);
int setenv_hex(const char *varname, ulong value);

保存环境变量状态:saveenv()

使用saveenv()函数保存当前的环境变量状态:

int saveenv(void);

返回表示成功。

使用命令行维护环境变量

uBoot提供了printenvsetenvsaveenv命令,用于通过uBoot命令行接口获取和设置环境变量的值。

获取环境变量的值:printenv

命令printenv以键值对的形式打印当前所有的环境变量。

设置环境变量的值:setenv

setenv命令的结构如下:

setenv VARNAME value

必选参数VARNAME为被请求变量名称;可选参数value为包含被请求变量参数,留空表示删除被请求的环境变量。

保存环境变量状态:saveenv

使用saveenv命令保存当前的环境变量状态:

参考资料

https://www.runoob.com/cprogramming/c-function-getenv.html

https://wizardforcel.gitbooks.io/linux-c-api-ref/content/293.html

it
除非特别注明,本页内容采用以下授权方式: Creative Commons Attribution-ShareAlike 3.0 License