ARM Processor Exception

ARM Processor Exception


雖然依賴於硬件實現,當一個給定的預定義事件發生時, 大多數ARM處理器都提供了專用硬件來進入調試模式。


大多數較新的ARM處理器提供了捕捉異常的硬件單元。 如果使能該硬件單元,其效果類似於在選定的向量表入口

放置一個斷點, 這被成爲是 vector catch。 然而,


1) 一些ARM處理器, 例如 ARM7, 沒有提供向量捕捉硬件。 對於這些處理器, 調試硬件用指令斷點來模擬它。


2) 對於Cortex-M3, 其等同於在目標向量放置一個斷點。 Cortex-M3 具有一個有限的向量捕捉集合。


3) 如果異常向量位於 ROM 中, 調試硬件必須使用硬件斷點來模擬向量捕捉。

如果該處理器不具有向量捕捉支持, 這將減少能爲其他目的提供的硬件資源數量。


當調試硬件模擬一些早期的ARM處理器, 但是這些處理器又不具有向量捕捉硬件支持,

如果向量表位於 RAM 中間, 這時調試硬件使用軟件斷點。


當調試期間發生系統 RESET 時, 必須特別注意。 一些被調試目標硬件會在 RESET 後改變內存佈局,

因此含有軟件斷點的物理內存地址可能不在正確的復位地址。

(譯者注: u-boot 在運行時的重定位也類似。 因此在重定位前後, Trace32 debugger 必須手動計算一下新的地址偏移量)


如果被調試硬件使用軟件指令斷點來模擬復位向量, 下述警告信息可能被輸出到你的調試器終端:

Warning: A software breakpoint is being used to simulate reset vector catch.
This may fail to be hit if the memory is remapped when a reset occurs.


ARM 向量捕捉的精確行爲取決於處理器。 ARM9 處理器僅在特定的異常發生時菜金如調試模式。

其他處理器,比如 ARM11, 或者更老舊的使用斷點的處理器, 只要異常向量處的指令被執行, 即進入調試模式,

而無須考慮異常發生與否。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章