1
嵌入式系统的内核引导启动过程浅析
仲崇权 杨素英 陈宝君
大连理工大学电子与信息工程学院
摘 要 引导加载程序(Bootloader) 是嵌入式系统 CPU 加电后第一个开始运行的代码。在内核映像执行之前完成
相关的底层硬件的初始化,建立内存空间的映射图等重要工作,然后为内核提供引导参数,启动内核。通过对
Bootloader 的体系结构和工作机理进行深入研究,并结合德国 DENX 开发的具有功能强大的 Bootloader 的 U-
BOOT 启动程序,给出 U-BOOT 在基于 AT91RM9200 处理器的嵌入式系统板上的启动过程。
关键词 嵌入式系统,Bootloader,U-BOOT
Abstract Boot Load Program (Bootloader) is the first running program after powering up an Embedded Board.
Bootloader performs the specific hardware initialization and sets up the memory space map and other tasks
before the Embedded Operating System kernel image executes. After that , it provides the boot parameters for the
kernel and starts up the kernel. U-Boot is a powerful Bootloader. This paper analyses the U-Boot section the codes
of startup process in detail in an Embedded System board based on the AT91RM9200 CPU.
Keywords embedded system, Bootloader, U-BOOT
1. 引言
嵌入式系统和 Linux 的有机结合,成为后 PC 时
代计算机最广泛的应用形式。一个嵌入式 Linux 系
统从软件的角度看由四个部分组成:引导程序,
Linux 内核,文件系统和用户应用程序。Bootloader
是引导程序其作用是初始化硬件设备,为最终调用
操作系统内核做好准备。U-BOOT 就是一种
Bootloader,给操作系统提供一个标准的接口,屏蔽
了硬件的多样性,因此减少了开发周期,同时支持
ARM 体系结构和 MIPS 结构
[1]
。
2. 固态存储设备的典型空间分配结构
嵌入式系统的固态存储设备的典型空间分配结
构可以映像 Bootloader、内核启动参数、内核映像
和根文件系统为四个部分,如图 1 所示
[2]
。其中,
BootLoader 就是在操作系统内核运行之前运行的一
段小程序。通过这段小程序,可以初始化硬件设
备、建立内存空间的映射图,从而将系统的软硬件
环境引导到一个合适的状态,以便为最终调用操作
系统内核准备好正确的环境。在嵌入式系统
Bootloader 是严重地依赖于硬件而实现的,每种不
同的 CPU 体系结构以及不同的嵌入式板级设备的配
置都有不同的 Bootloader。
3. Bootloader 操作模式
大多数 Bootloader 都包含启动加载模式和下载
模式两种不同的操作模式。
启动加载模式:Bootloader 在这种模式下从目
标机上的某个固态存储设备上将操作系统加载到
RAM 中运行,整个过程并没有用户的介入。这种模
图 1. 固态存储设备的典型空间分配结构