☰
Agilex系统启动
2026/10/1 15:46:46 网站建设 项目流程

1. 引言

对于系统启动可以有多种方案,本文介绍结合 Flash 和 eMMC 的启动方式。该方案兼顾了 Flash 的快速启动与 eMMC 的大容量存储优势,是嵌入式 Linux 系统中常见的启动组合。

2. 整体启动流程

系统启动分为四个阶段,各阶段分工明确:

BootROM 阶段

SPL 阶段

U-Boot 阶段

Kernel 阶段

3. BootROM 阶段

BootROM 是固化在芯片内部的只读程序,上电后首先执行。它负责从外部存储介质加载 SPL。

  • 从 Flash 中读取 SPL(因 Flash 支持 XIP,可快速加载)
  • 校验 SPL 的完整性(如 CRC 校验)
  • 将 SPL 拷贝到 SRAM 中执行

4. SPL 阶段

SPL(Secondary Program Loader)是 U-Boot 的简化版本,运行在 SRAM 中,负责初始化 DDR 并加载完整的 U-Boot。

  • 初始化 DDR 控制器
  • 从 Flash 或 eMMC 中加载 U-Boot 到 DDR
  • 跳转到 U-Boot 入口

5. U-Boot 阶段

U-Boot 是完整的引导加载程序,运行在 DDR 中,负责加载内核和设备树。

  • 初始化外设(网卡、存储控制器等)
  • 从 eMMC 中读取内核镜像(zImage/Image)和设备树(dtb)
  • 设置启动参数并跳转到内核

6. Kernel 阶段

内核接管系统后,完成剩余初始化并挂载根文件系统。

  • 解压并初始化内核
  • 挂载根文件系统(通常位于 eMMC 分区)
  • 启动 init 进程,进入用户空间

7. 方案优势与注意事项

优势:

  • Flash 启动快,适合快速加载 SPL 和 U-Boot
  • eMMC 容量大、成本低,适合存放内核和根文件系统

注意事项:

  • 需合理划分 eMMC 分区(boot、rootfs、data)
  • 建议在 U-Boot 中配置环境变量以支持灵活的启动参数
  • 生产环境建议增加启动冗余(如 A/B 分区升级)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询