
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文档详细总结了u-boot目录的结构和功能,以便于理解和使用 U-Boot 引导加载程序。
提供完整的系统功能和工具,适用于开发和调试环境:最小化设计,仅包含基本系统组件,适用于资源受限的嵌入式设备:平衡了功能和大小,适用于需要基本系统功能但资源有限的场景这些根文件系统配置为引导加载程序提供了灵活的选择,确保系统能够在各种环境下正常启动和运行。
进入 BusyBox 源码目录 cd busybox- # 配置 BusyBox make menuconfig # 编译 BusyBox make # 安装 BusyBox make installBusyBox 是一个强大的工具,特别适合嵌入式系统和资源受限的环境。它通过单一可执行文件提供了大量常用命令,大大减少了系统的体积和复杂度。在本项目的 ramdisk 中,BusyBox 作为核心组件
硬件初始化阶段:初始化 CPU、内存、时钟等基本硬件设备初始化阶段:初始化各种外设,如串口、存储设备、网络设备等引导准备阶段:加载环境变量、解析配置信息内核加载阶段:从存储设备或网络加载操作系统内核启动参数准备阶段:准备内核启动参数和设备树控制权转移阶段:将控制权转移给操作系统内核U-Boot 的引导加载流程是一个复杂但有序的过程,从硬件初始化到内核启动,每个阶段都有其特定的功能和职责。理解这个流
TFA 采用分阶段引导的方式,从 BL1 到 BL2,再到 BL31,最终跳转到 BL33(U-Boot)。BL1:从 SPI Flash 加载,初始化基本硬件,然后加载 BL2 到安全 SRAMBL2:加载 BL31(EL3 运行时)和 BL33(U-Boot,非安全)到指定内存位置BL31:初始化 EL3 运行时环境,然后跳转到 BL33(U-Boot)BL33:U-Boot 启动,继续引导操
ARM PSCI 是现代 ARM SoC 电源管理的基石。它通过定义标准的 SMC 接口,成功地将操作系统的电源管理策略与底层硬件的具体实现分离开来。这不仅简化了 Linux 内核的维护工作,也促进了 ARM 生态中固件(如 ATF)与操作系统之间的协同标准化。
方向切换机制触发方式典型场景低→高异常进入同步异常/异步异常系统调用、中断、陷阱高→低异常返回ERET指令返回用户态、返回Guestfill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;低→高高→低调用请求调用方向?✅ 允许❌ 禁止直接调用通过异常
EL3 (BL31)EL1/EL2 (调用者)EL3 (BL31)EL1/EL2 (调用者)fill:#333;important;important;fill:none;准备参数 x0=FuncID, x1-x7=Args1. 读取 x02. 解析服务类型3. 查表找到 Handler设置返回 x0=RetCode, x1-x4=Out检查 x0 判断结果SMC执行服务逻辑ERET核心规则:x0
fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;EL3想要调用 BL31 服务当前在哪个EL?必须使用 SMC 指令直接函数调用触发同步异常硬件切换到 EL3BL31 处理请求ERET 返回✅BL31 常驻 EL3,是安全世界的守门人✅SMC
断电也可能影响引导程序(如 GRUB、Windows Boot Manager),导致系统无法启动,但严格来说这不属于“文件系统异常”。这是最通用的说法,指文件系统的元数据(如超级块、inode表、目录结构等)或数据区域因非正常关机(如断电)而出现不一致或错误。特指文件系统核心管理数据(超级块、inode、位图等)的损坏,可能导致整个分区无法识别或挂载失败。强调文件系统内部结构(如元数据与实际数据







