天天看點

bootloader的啟動流程分析

Bootloader的啟動流程有兩個階段:stage1和stage2。

一、Stage1完成的基本工作

1、基本硬體初始化

包括屏蔽所有的中斷、設定CPU的速度和時鐘頻率、RAM初始化、初始化LED、關閉内部指令和資料cache燈。

2、為加載stage2準備RAM空間,通常為了獲得更好的執行速度,通常把stage2加載到RAM空間來執行,必須為加載Bootloader的stage2準備好一段可用的RAM空間範圍。

3、拷貝stage2到RAM中,這裡要确定兩點:

    stage2的可執行映像在固态儲存設備的存放其起始位址和終止位址

    RAM空間的起始位址

4、設定堆棧指針sp,這是為了執行stage2的C語言代碼做準備。

二、stage2完成的基本工作

1、用彙編語言跳轉至main入口函數

2、初始換本階段要使用到的硬體裝置,包括初始化序列槽、初始化計時器等。

3、檢測系統的記憶體映射

4、加載核心映像和根檔案系統映像

5、設定核心啟動參數。

繼續閱讀