2.2.12 进入 C 代码部分
ldr pc, _start_armboot
_start_armboot: .word start_armboot
2.3 阶段 2 的 C 语言代码部分
lib_arm/board.c 中的 start armboot 是 C 语言开始的函数,也是整个启动代码中 C 语言的主函数,同时还是整个
uboot(armboot)的主函数,该函数主要完成如下操作:
2.3.1 调用一系列的初始化函数
1. 指定初始函数表:
init_fnc_t *init_sequence[] = {
cpu_init, /* cpu 的基本设置 */
board_init, /* 开发板的基本初始化 */
interrupt_init, /* 初始化中断 */
env_init, /* 初始化环境变量 */
init_baudrate, /* 初始化波特率 */
serial_init, /* 串口通讯初始化 */
console_init_f, /* 控制台初始化第一阶段 */
display_banner, /* 通知代码已经运行到该处 */
dram_init, /* 配制可用的内存区 */
display_dram_config,
#if defined(CONFIG_VCMA9) || defin
uboot 的启动过程及工作原理 进入 C 代码部分
最新推荐文章于 2022-10-29 23:35:06 发布
本文详细介绍了UBoot在启动过程中进入C语言代码的部分,包括调用的初始化函数系列,如CPU初始化、Flash配置、内存分配、NAND Flash初始化、环境变量设置、外围设备初始化、网络设备配置等。最后,文章提到了代码搬运,特别是针对NAND Flash的Steppingstone机制,确保数据有效性和启动安全性。
摘要由CSDN通过智能技术生成