1. 程式人生 > >Bootloader學習-01 2018-11-02

Bootloader學習-01 2018-11-02

作用

初始化硬體,準備軟體環境,呼叫作業系統核心

啟動方式

  • boot loading 模式
  • Downloading 模式

啟動過程

大多采用兩階段的啟動過程。第一階段使用匯編實現,完成依賴於CPU體系結構的初始化,並呼叫第二階段程式碼。第二階段通常使用C語言實現,以便完成更為複雜的功能。

第一階段

硬體裝置初始化

為載入Bootloader的第二階段程式碼準備RAM空間

複製Bootloader的第二階段程式碼到RAM空間中

設定堆疊

跳轉到第二階段程式碼的入口點

第二階段

初始化本階段要使用到硬體裝置

檢測系統記憶體對映

將核心映像和根檔案系統映像從Flash上讀到RAM空間

為核心設定啟動引數

呼叫核心

Bootloader與核心的互動

方向:單向互動

方法:

  • 約定地址:bootloader將需要傳遞的內容存放在約定的儲存空間,核心啟動後從該約定空間中讀取。
  • 約定資料結構:tag tag_header (有待補充原始碼說明)