env_init定义在commen/env_movi.c中 函数中实际执行的就是把default_environment的地址赋值给全局变量gd中的env_addr 和env_valid两个值; 1 int env_init(void) 2 { 3 #if defined(ENV_IS_EMBEDDED) 4 #else /* ENV_IS_EMBEDDED */ 5 gd->env_addr = (ulong)&default_environment[0]; 6 gd->env...
env_init定义在commen/env_movi.c中 函数中实际执行的就是把default_environment的地址赋值给全局变量gd中的env_addr 和env_valid两个值; intenv_init(void) {#ifdefined(ENV_IS_EMBEDDED)#else/* ENV_IS_EMBEDDED */gd->env_addr = (ulong)&default_environment[0]; gd->env_valid =1;#endif/* ENV_...
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...
•(2)遍历调用函数指针数组init_sequence中的初始化函数 •(3)初始化uboot的堆管理器mem_malloc_init •(4)初始化SMDKV210开发板的SD/MMC控制器mmc_initialize •(5)环境变量重定位env_relocate •(6)将环境变量中网卡地址赋值给全局变量的开发板变量 •(7)开发板硬件设备的初始化devices_init •(...
介绍u-boot启动流程中和具体版型(board)有关的部分,也即board_init_f/board_init_r所代表的、board有关初始化过程。该过程将持续u-boot的整个生命周期,直到main_loop(即传说中的命令行)。 注1:由于u-boot后初始化过程,基本上涉及到了所有的软件模块,因此本文不能一一分析,基本原则就是捡看着顺眼的、熟的下手...
timer_init():初始化定时器 env_init():设置gd的成员变量 init_baudrate():设置波特率 dram_init():设置gd->ram_size= 0x04000000(64MB) 3)继续来看board_init_f(): addr = CONFIG_SYS_SDRAM_BASE + gd->ram_size; // addr=0x34000000
uboot中env实现 通过搜素比对字符串保存env。 所有的env都保存在一起,每个环境变量字段都以“\0\0”结束,最后一个命令字段以“\0\0\0”结束。 每次uboot启动时,先读出环境变量。当设置新数据时,遍历整个env,确认是否有重复的, 有重复的删除掉,并把新数据设置到环境变量最后。
} env_t; 这两个类型变量记录了刚启动时的信息,还将记录作为引导内核和文件系统的参数,如 bootargs 等,并且将来还会在启动内核时,由 uboot 交由 kernel 时会有所用。 二、启动流程 1、init_sequence start_armboot 首先为全局数据结构和板级信息结构分配内存,代码如下: ...
env_init, /* 初始化环境变量 */ init_baudrate, /* 初始化波特率设置 */ serial_init, /* serial通信相关初始化 */ console_init_f, /* console初始化的第一部分 */ display_banner, /* say that we are here */ // ...根据配置,还有一些其它的初始化 ...
env_init():设置gd的成员变量 init_baudrate():设置波特率 dram_init():设置gd->ram_size= 0x04000000(64MB) 代码语言:javascript 复制 addr=CONFIG_SYS_SDRAM_BASE+gd->ram_size;// addr=0x34000000// CONFIG_SYS_SDRAM_BASE: SDRAM基地址,为0X30000000// gd->ram_size: 等于0x04000000#if!(defined(...