close

今天咱們來聊聊嵌入式系統的主要成員之一,也是系統在開機啟動時最先執行的程式,我們稱之為Boot Loader

(X86平台上有LILO、GRUB等,ARM平台上則有U-boot、VIVI等。)

 

1. BootLoader的作用:

     PC中的引導載入程式由BIOS和位於硬碟MBR中的OS Boot Loader一起組成。BIOS在完成硬體檢測和資源分配後,將硬碟MBR中的Boot Loader讀到系統的RAM中,然後將控制權交給OS Boot LoaderBoot Loader的主要執行任務就是將核心映像從硬碟上讀到RAM中,然後跳轉到核心的入口點去執行,也即開始啟動作業系統。

     嵌入式系統中,通常並沒有像BIOS那樣的硬體程式,因此整個系統的載入啟動任務完全由BootLoader來完成。BootLoader是在作業系統執行之前執行的一段小程式。它在系統上電時開始執行,可以初始化硬體設備、建立記憶體空間的映像表,從而建立適當的系統軟硬體環境,為最終呼叫作業系統核心做準備。

BootLoader 的主要作用:

(1)   初始化硬體設備

(2)   建立記憶體空間的映射圖

(3)   完成核心的載入,為核心設定啟動參數

 

2. BootLoader程式結構框架:

        嵌入式系統中的BootLoader的實現完全依賴於CPU的體系結構,因此大多數BootLoader都分為第一階段和第二階段兩大部分,依賴於CPU體系結構的程式,比如設備初始化程式等,通常都放在階段1中,而且通常都用組合語言來實現,以達到高效能的目的。而階段2則通常用C語言來實現,這樣可以實現一些複雜的功能,而且程式會具有更好的可讀性和可攜性。

(1) BootLoader的階段通常主要包括以下步驟:

 @ 硬體設備初始化

 @ 複製 BootLoader的程式到RAM空間中

   @ 設定好堆疊

   @ 跳轉到階段2C入口點

(2) BootLoader的階段通常主要包括以下步驟:

   @ 初始化本階段要使用到的硬體設備

@ 系統記憶體映射(memory map)

   @ kernel映射和根檔案系統映射從Flash讀到RAM空間中

   @ 為核心設定啟動參數

  @ 調用核心

 

以上內容是從網路上收集整理而來的,如有錯誤還請各位前輩多多指導,謝謝。

arrow
arrow
    創作者介紹
    創作者 小瓜子的天地 的頭像
    小瓜子的天地

    小瓜子的天地

    小瓜子的天地 發表在 痞客邦 留言(0) 人氣()