嵌入式ARM啟動程式碼的工作
阿新 • • 發佈:2018-11-16
嵌入式ARM啟動程式碼的工作
(1)定義程式碼的初始入口點:初始入口點是指程式碼執行時的起始點,它在每個映像檔案中是唯一的,也是每個可執行的映像檔案 所必須含有的,而且必須位於映像檔案的可執行域內。
(2)設定中斷向量表,連結到包括復位、未定義指令,軟體中斷、取指中斷、取數中斷、IRQ和FIQ等異常或中斷的處理程式。
(3)初始化儲存系統。
(4)初始化ARM各個模式下的堆疊:根據應用程式使用資源的情況,設定每種或者某些ARM處理器模式下的堆疊區域。
(5)始化關鍵的I/O裝置:用於防止在使能中斷時產生不必要的開銷。
(6)初始化中斷時需要使用的一些變數。
(7)中斷使能。
(8)根據情況切換處理器的模式和狀態:ARM在執行啟動程式碼時處於特權模式,使用者在進入應用程式之前,可以將其切換到使用者 模式,也可以進行ARM狀態和Thumb狀態的切換。
(9)初始化高階程式執行時用到的儲存區,例如將RW屬性的資料和ZI屬性的資料移動到ARM等可以寫的儲存器,因為這些資料
在程式載入時是儲存在ROM等儲存介質內的。
(10)進入高階應用程式。