作用
初始化硬件,准备软件环境,调用操作系统内核
启动方式
- boot loading 模式
- Downloading 模式
启动过程
大多采用两阶段的启动过程。第一阶段使用汇编实现,完成依赖于CPU体系结构的初始化,并调用第二阶段代码。第二阶段通常使用C语言实现,以便完成更为复杂的功能。
第一阶段
硬件设备初始化
为加载Bootloader的第二阶段代码准备RAM空间
复制Bootloader的第二阶段代码到RAM空间中
设置堆栈
跳转到第二阶段代码的入口点
第二阶段
初始化本阶段要使用到硬件设备
检测系统内存映射
将内核映像和根文件系统映像从Flash上读到RAM空间
为内核设置启动参数
调用内核
Bootloader与内核的交互
方向:单向交互
方法:
- 约定地址:bootloader将需要传递的内容存放在约定的存储空间,内核启动后从该约定空间中读取。
- 约定数据结构:tag tag_header (有待补充源码说明)