嵌入式系统启动加载器与内核配置构建全解析
1. 启动加载器概述
每个系统都需要一个启动加载器来激活硬件并加载内核。U - Boot 受到许多开发者的青睐,因为它支持多种硬件,并且相对容易移植到新设备上。近年来,嵌入式硬件的复杂性和多样性不断增加,引入了设备树来描述硬件。设备树是系统的文本表示,编译成设备树二进制文件(dtb),在加载内核时传递给内核,由内核解读设备树并加载和初始化相应设备的驱动程序。
2. Barebox 代码结构
Barebox 的代码布局与 U - Boot 类似,主要目录及其功能如下:
- arch :包含每个支持架构的特定代码,涵盖所有主要的嵌入式架构。SoC 支持代码位于 arch/[architecture]/mach - [SoC]
,单个板级支持代码位于 arch/[architecture]/boards
。
- common :包含核心功能,包括 shell。
- commands :包含可从 shell 调用的命令。
- Documentation :包含文档文件模板。要构建文档,输入 make docs
,结果将放在 Documentation/html
中。
- drivers :包含设备驱动程序的代码。
- include :包含头