导读 Bootloader,也称为引导加载程序,是嵌入式系统在加电后执行的第一段代码。它的主要作用是在操作系统内核运行之前初始化硬件设备和建立内存...
Bootloader,也称为引导加载程序,是嵌入式系统在加电后执行的第一段代码。它的主要作用是在操作系统内核运行之前初始化硬件设备和建立内存空间映射图,为操作系统内核的启动做好准备。Bootloader通常基于特定硬件平台实现,因此几乎不可能为所有的嵌入式系统建立一个通用的Bootloader。
Bootloader有两种主要的操作模式:启动加载模式和下载模式。在启动加载模式下,Bootloader从目标机的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。这种模式是Bootloader的正常工作模式,因此在嵌入式产品发布时,Bootloader必须工作在这种模式下。在下载模式下,目标机上的Bootloader将通过串口或网络等通信手段从开发主机上下载内核映像和根文件系统映像等到RAM中,然后可再被Bootloader写到目标机上的固态存储媒质中,或者直接进行系统的引导。这种模式多用于开发人员在前期开发的过程中。
Bootloader的启动过程大多分为两个阶段。第一阶段主要包含依赖于CPU的体系结构硬件初始化的代码,通常都用汇编语言来实现。第二阶段通常用C语言完成,以便实现更复杂的功能,也使程序有更好的可读性和可移植性。常见的Bootloader包括Redboot、ARMBoot、PPCBoot、U-Boot、Blob、Vivi等。