BootLoader的流程

初学嵌入式驱动,分享一些自己的理解吧!

BootLoader的启动过程可分为单阶段(Single-Stage)和多阶段(Multi-Stage)两种,通常多阶段的BootLoader具有更复杂的功能,更好的可移植性。

从固态存储设备上启动的BootLoader大多数采用两阶段,即启动过程可以分为stage1(汇编写的)和stage2(C语言写的):

stage1完成初始化硬件,为stage2准备内存空间,并将stage2复制到内存中,设置堆栈,然后跳转到stage2。

 

BootLoader的stage1通常包括以下步骤:

  1. 硬件设备初始化;

  2.为加载BootLoader的stage2准备RAM空间;

  3. 拷贝BootLoader的stage2到RAM空间中;

  4.设置好堆栈;(为下面C语言的运行提供必要环境)

  5.跳转stage2的C入口。

 

BootLoader的stage2通常包括以下步骤:

   1.初始化本阶段要使用到的硬件设备;

   2.将内核映像和根文件系统映像从flash上读到RAM中;

   3.调用内核;

BootLoader的流程_第1张图片

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(嵌入式)