UBOOT的环境变量原理分析

u-boot的缺省情况下会有一些基本的环境变量,当执行saveenv时,环境变量会保存到flash存储设备中。如果环境变量的值为空,则uboot会使用uboot代码中的值;如果环境变量不为空,则优先使用环境变量的值。默认环境变量在uboot源码中common/Env_common.c文件中。
uchar default_environment[CFG_ENV_SIZE] =
{
#ifdef CONFIG_BOOTARGS
“bootargs=“CONFIG_BOOTARGS”\0”
#endif
#ifde fCONFIG_BOOTCOMMAND
“bootcmd=“CONFIG_BOOTCOMMAND”\0”
#endif
#ifdef CONFIG_MTDPARTITION
“mtdpart=“CONFIG_MTDPARTITION”\0”
#endif
#ifdef CONFIG_RAMBOOTCOMMAND
“ramboot=“CONFIG_RAMBOOTCOMMAND”\0”
#endif
#ifdef CONFIG_NFSBOOTCOMMAND
“nfsboot=“CONFIG_NFSBOOTCOMMAND”\0”
#endif
#if defined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0)
“bootdelay=“MK_STR(CONFIG_BOOTDELAY)”\0”
#endif
#if defined(CONFIG_BAUDRATE) && (CONFIG_BAUDRATE >= 0)
“baudrate=“MK_STR(CONFIG_BAUDRATE)”\0”
#endif
#ifdef CONFIG_ETHADDR
“ethaddr=“MK_STR(CONFIG_ETHADDR)”\0”
#endif
#ifdef CONFIG_IPADDR
“ipaddr=“MK_STR(CONFIG_IPADDR)”\0”
#endif
#ifdef CONFIG_SERVERIP
“serverip=“MK_STR(CONFIG_SERVERIP)”\0”
#endif
#ifdef CONFIG_GATEWAYIP
“gatewayip=“MK_STR(CONFIG_GATEWAYIP)”\0”
#endif
#ifdef CONFIG_NETMASK
“netmask=“MK_STR(CONFIG_NETMASK)”\0”
#endif
#ifdef CONFIG_HOSTNAME
“hostname=“MK_STR(CONFIG_HOSTNAME)”\0”
#endif
#ifdef CONFIG_EXTRA_ENV_SETTINGS
CONFIG_EXTRA_ENV_SETTINGS
#endif
“\0”
};
环境变量存储在default_environment[CFG_ENV_SIZE]数组中,每个环境变量以"\0"结束。例如,可以定义
#define CFG_ENV_SIZE (16*1024)
所有的环境变量存储在一个16KB大小的一维数组中,每个环境变量以"\0"结束。通过调用env_relocate函数,将环境变量从Flash启动设备重定位到SDRAM中。

在对环境变量的操作中,u-boot调用的对环境变量操作的通用函数接口位于common/env_common.c文件,环境变量存储在不同的启动设备时的操作函数接口存放在不同的文件,如common/env_epprom.c、common/env_flash.c、common/env_nand.c,对环境变量的操作函数接口存放在common/env_nvedit.c。

常见的uboot环境变量:
bootargs 传递给内核的启动参数
bootcmd 自动启动时执行的命令
bootdelay 执行自动启动的等候秒数
bootfile 缺省的下载文件

ethaddr 以太网卡的网卡物理地址
ipaddr 本地ip 地址
serverip 服务器端的ip地址
netmask 以太网接口的掩码

baudrate 串口控制台的波特率
stdin 标准输入设备
stdout 标准输出设备
stderr 标准出错设备

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值