u-boot - environment - read&write

Read

在u-boot初始化的时候,会读取环境变量。

board_init_r() -> init_sequence_r() -> initr_env() ->
env_relocate() -> env_relocate_spec() -> read_env()

缺省值

如果在存储设备指定的地址处读不到环境变量,那么就会使用缺省的环境变量default_environment,如同CONFIG_ENV_IS_NOWHERE。

在include/env_default.h中定义了default_environment,注意到其格式:key=value之间用一个0x00分隔;整个有效数据部分的最后是两个0x00。

修改与保存

在uboot的交互模式下,或者kernel启动阶段,都可以调用saveenv()或set_default_env()来修改和保存环境变量。

几个命令

env

这个命令类似有busybox,下面包括了多个子命令。如 env default -a 用于将所有环境变量都设置成缺省值。

env -> do_env()
env default -> do_env_default() -> set_default_env()
-a: all

saveenv

将当前(修改过的)环境变量保存到存储设备中,这个函数的实现是和实际使用的存储设备有关。

猜你喜欢

转载自blog.csdn.net/u013344915/article/details/77113262