1. 程式人生 > >嵌入式ARM啟動程式碼的工作

嵌入式ARM啟動程式碼的工作

                           嵌入式ARM啟動程式碼的工作

(1)定義程式碼的初始入口點:初始入口點是指程式碼執行時的起始點,它在每個映像檔案中是唯一的,也是每個可執行的映像檔案             所必須含有的,而且必須位於映像檔案的可執行域內。

(2)設定中斷向量表,連結到包括復位、未定義指令,軟體中斷、取指中斷、取數中斷、IRQ和FIQ等異常或中斷的處理程式。

(3)初始化儲存系統。

(4)初始化ARM各個模式下的堆疊:根據應用程式使用資源的情況,設定每種或者某些ARM處理器模式下的堆疊區域。

(5)始化關鍵的I/O裝置:用於防止在使能中斷時產生不必要的開銷。

(6)初始化中斷時需要使用的一些變數。

(7)中斷使能。

(8)根據情況切換處理器的模式和狀態:ARM在執行啟動程式碼時處於特權模式,使用者在進入應用程式之前,可以將其切換到使用者          模式,也可以進行ARM狀態和Thumb狀態的切換。

(9)初始化高階程式執行時用到的儲存區,例如將RW屬性的資料和ZI屬性的資料移動到ARM等可以寫的儲存器,因為這些資料
          在程式載入時是儲存在ROM等儲存介質內的。

(10)進入高階應用程式。