U-boot2018.11源码分析-环境变量(一)

本文详细介绍了U-boot2018.11中的环境变量,包括系统环境变量和用户环境变量的定义、默认值、存储位置及更新方法。系统环境变量影响U-boot行为,用户环境变量则允许用户自定义。默认环境变量值在env目录的源码中定义,用户可在include/configs文件中扩展。环境变量存储于非易失性存储设备,更新可通过setenv和saveenv命令或使用boot.scr和uEnv.txt文件。
摘要由CSDN通过智能技术生成

U-boot的环境变量保存在存储器上,在U-boot启动时,从存储器加载到RAM中,环境变量用来配置对系统进行配置,决定着U-boot的行为。U-boot的环境变量分为两类:系统环境变量和用户环境变量。系统环境变量是U-boot默认定义的环境变量;用户变量是用户存放数据的环境变量。

U-boot系统环境变量

在U-boot中,有一些重要的环境变量,列举如下:

U-boot默认环境变量
变量名 描述
autoload 是否自动加载Kernel镜像
autostart  
bootargs  
bootcmd  
bootdelay  
bootfile  
ethaddr  
ipaddr  
mtdparts  
serverip  
serial  

这些是U-boot常见的一些环境变量。这些环境变量存放的值决定了U-boot的行为。

用户环境变量

除了系统环境变量,用户可以自定义环境变量,用于存放自定义的命令序列或中间值。

 

环境变量的默认值

当U-boot启动不受干预时,U-boot将根据bootargs和bootcmd的默认值加载kernel镜像,并传递参数。

默认值的由来

在U-boot中,与环境变量相关的源码目录是env。env目录中定义并实现了环境变量的存储和访问方式。

默认环境变量的值存储在include/env_default.h文件中,这里定义了一个全局变量default_environment。default_envrionment的定义如下:

#ifdef DEFAULT_ENV_INSTANCE_EMBEDDED
env_t environment __UBOOT_ENV_SECTION__(environment) = {
	ENV_CRC,	/* CRC Sum */
#ifdef CONFIG_SYS_REDUNDAND_ENVIRONMENT
	1,		/* Flags: valid */
#endif
	{
#elif defined(DEFAULT_ENV_INSTANCE_STATIC)
static char default_environment[] = {
#else
const uchar default_en
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值