嵌入式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)進入高級應用程序。
總結
以上是生活随笔為你收集整理的嵌入式ARM启动代码的工作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: remap(地址重映射)机制
- 下一篇: 嵌入式编程C语言提高代码效率的14种方法