9th.U-boot——初识Bootloader
Bootloader简介:
一个系统要运行之前,需要一段初始化程序,简单理解,这段程序就称之为BootLoader。
一个Linux系统从软件角度,会分为四个层次。
-
- 引导加载程序:即BootLoader。
- Linux内核:一些启动参数,一般是默认或由BootLoader传递给它。
- 文件系统
- 用户应用程序
Bootloader启动过程可以分为单阶段,或多阶段。大多数Bootloader都是两阶段的启动过程。
第一阶段使用汇编实现,完成一些依赖于CPU体系结构的初始化,并调用第二阶段代码。第二阶段用C语言实现,一般为一些较为复杂的功能。
第一阶段:
-
- 硬件设备初始化
- 为加载BootLoader第二阶段代码准备RAM空间
- 复制BootLoader第二阶段代码到Ram中
- 设置栈
- 跳转到第二阶段入口
第二阶段:
-
- 初始化本阶段的硬件设备
- 检测系统内存映射
- 将内核映像和根文件系统映像从Flash上读到Ram空间中
- 为内核设置启动参数
- 调用内核
U-boot是Bootloader其中一种,见下文。