目录
1 代码结构
1. 1 arch\arm\cpu\u-boot.lds
ENTRY(_start)
可以看到:大小端格式,结构 和入口。
1.2 arch/arm/cpu/armv7/start.S
1. 设置CPU为SVC模式
2. 关闭MMU
3. 关闭Cache
4. 跳转到lowlevel_init.S low_level_init
1.3 board/arch/arm/lowlevel_init.S
5. 初始化时钟
6. 初始化内存
7. 初始化串口
8. 关闭看门狗
9. 跳转到crt0.S _main
1.4 arch/arm/lib/crt0.S
代码重定位------------BL2的最后的工作, 执行完就进入DRAM执行BL2
1. 设置栈
2. 初始化C运行环境
3. 调用board_init_f()
1.5 u-boot\arch\arm\cpu\armv7\omap-common\hwinit-common.c
board_init_f
1.6 \u-boot\common\spl\spl.c
board_init_r
本文详细解析了U-Boot的启动过程,包括从加载器(Loader)阶段到内核初始化(Kernel Init)前的各个关键步骤。涵盖了大小端格式设定、CPU模式配置、MMU与Cache管理、时钟与内存初始化、串口配置、栈设置及C运行环境初始化等核心内容。

714

被折叠的 条评论
为什么被折叠?



