env会从flash等存储设备重定位到RAM中,在env的不同实现版本(env_xxx.c)中定义了env_ptr,它指向env在RAM中的位置。u-boot在重定位env后对环境变量的操作都是针对env_ptr。 env_embedded.c---env和uboot存储于同一块区。 env_nand.c---env存储在nandflash中。 env_dataflash.c --env存储在dataflash中。...
10 env_ptr = (env_t *)malloc (CFG_ENV_SIZE); 11 DEBUGF ("%s[%d] malloced ENV at %p\n", __FUNCTION__,__LINE__,env_ptr); 12 #endif 13 14 if (gd->env_valid == 0) { 15 16 } 17 else { 18 env_relocate_spec (); 19 } 20 gd->env_addr = (ulong)&(env_ptr->data...
env命令--common/cmd_nvedit.c common/env_common.c供uboot调用的通用函数接口,隐藏了env的不同实现方式。 common/env_flash.c,env存储在flash的实现。 env_init()完成环境变量初始化工作,不同存储介质不同。 初始化流程 start.s _start lib_arm/board.c start_armboot() ---env_init() ---env_relocate...
env会从flash等存储设备重定位到RAM中,在env的不同实现版本(env_xxx.c)中定义了env_ptr,它指向env在RAM中的位置。u-boot在重定位env后对环境变量的操作都是针对env_ptr。 env_embedded.c---env和uboot存储于同一块区。 env_nand.c---env存储在nandflash中。 env_dataflash.c --env存储在dataflash中。...
env 分两部分处理:1,init_sequence_f 中添加 env 指针,添加 env_valid 标记 2,init_sequence_r ...
UBOOT:env(环境变量)UBOOT:env(环境变量)env包含以下⽂件:cmd/nvedit.c common/env_common.c common/env_flags.c common/env_common.c env_htab 为环境变量的哈希表。uchar env_get_char(int index)返回(gd->env_addr+index)的字符串指针。common/env_flags.c int env_flags_validate(const ENTRY...
静态存储。根据查询信息得到,Uboot环境变量的设计逻辑是在启动过程中将env从静态存储器中读出放到RAM中。
ENV_FLAGS_VAR "=" CONFIG_ENV_FLAGS_LIST_DEFAULT "\0" #endif #ifdef CONFIG_USE_BOOTARGS "bootargs=" CONFIG_BOOTARGS "\0" #endif #ifdef CONFIG_BOOTCOMMAND "bootcmd=" CONFIG_BOOTCOMMAND "\0" #endif … #ifdef CONFIG_EXTRA_ENV_SETTINGS ...
printenv #打印uboot环境变量 setenv name value #设置环境变量 md addr #查看内存指令 nm addr #修改内存值 mm addr #自增修改内存值 mmc dev id #选择mmc卡 mmc rescan #扫描卡 echo $name #打印环境变量 更多指令使用,可以见文末整理的文档
Uboot环境变量的设计逻辑是在启动过程中将env从静态存储器中读出放到RAM中,之后在uboot下对env的操作(如printenv editenv setenv)都是对RAM中env的操作,只有在执行saveenv时才会将RAM中的env重新写入静态存储器中。 这种设计逻辑可以加快对env的读写速度。