Bootloader多数有两个阶段的启动过程
bootloader一般都是分为两个阶段的,第一个阶段使用汇编来实现,它完成一些依赖于CPU体系结构的初始化,并调用第二阶段的代码;第二阶段则通常使用C语言来实现,这样可以实现更复杂的功能,而且代码会有更好的可读性和移植性。
两个阶段如下:
一、第一阶段功能:
(1)硬件设备初始化。
(2)为加载bootloader的第二个阶段代码准备RAM空间。
(3)复制bootloader的第二个阶段代码到RAM中。
(4)设置好栈。
(5)跳转到第二阶段代码的C入口点。
二、第二个阶段的功能:
(1)初始化本阶段要使用到的硬件设备。
(2)检测系统内存映射。
(3)讲内核映像和根文件系统从Flash上读到RAM空间中。
(4)为内核设置启动参数。
(5)调用内核。