第一阶段主要包含依赖于微处理器体系结构的硬件初始化代码,通常采用汇编语言实现,这个阶段的任务有:- 硬件初始化(屏蔽所有的中断、关闭处理器内部命令/数据 Cache 等)。
- 为第二阶段准备 RAM 空间。
- 设置堆栈。
- 跳转到第二阶段的 C 程序入口点。
第二阶段的代码一般是采用 C 语言编写的,既可以实现更复杂的功能,也可以使程序有更好的可读性和可移植性。这个阶段的任务有:- 初始化本阶段用到的硬件设备。
- 检测系统内存映射。
- 将内核映像和根文件系统映像从 Flash 读到 RAM。
- 为内核设置启动参数。
- 调用内核
|