第15章:多阶段启动(SPL/TPL) - 解决小SRAM限制的启动方案
在现代嵌入式系统中,由于硬件限制(特别是SRAM大小限制),U-Boot通常采用多阶段启动策略。这种策略将启动过程分为多个阶段,每个阶段负责特定的初始化任务,逐步加载更大的代码到内存中。
图1:典型的SPL/TPL多阶段启动流程
SPL是U-Boot的第一阶段加载器,主要解决小SRAM限制下的启动问题。
u-boot-spl.bin文件,与主U-Boot镜像分开。
TPL是比SPL更早的执行阶段,用于资源极其受限的环境。
| 特性 | SPL | TPL |
|---|---|---|
| 执行顺序 | 第二阶段 | 第一阶段 |
| 内存需求 | 通常32KB+ | 通常4KB-16KB |
| 功能复杂度 | 中等 | 极简 |
| 典型任务 | 加载U-Boot | 加载SPL |
-Os优化选项减小代码体积在不同阶段重用相同的内存区域:
将硬件初始化分为多个阶段,每个阶段完成后可以释放部分资源。
CONFIG_SPL_DEBUG启用调试信息objdump分析SPL二进制大小