ARM的異常及向量表

2021-08-19 13:35:24 字數 1114 閱讀 2667

arm具有7種異常,分別為:

1、復位

2、未定義指令

3、軟中斷

4、預取指令終止

5、資料終止

6、中斷請求(irq)

7、快速中斷請求(fiq)

用一句通俗的話去表達arm的運**況,那就是arm總會在執行在以上7種異常情況的某一種之下。初初了解arm時總會難於去了解這個"異常"是什麼樣的乙個意思,到了現在對arm有了一點膚淺的理解後,其實可以將這個"異常"理解為"環境",或其他表達arm運**況的乙個形容詞就行了。

向量表。現在平時所謂的「表」就是由多項內容構成的乙個文字模式,arm向量表其實也是這樣,向量表就是由以上arm的7種異常的入口位址所構成的。如下表簡單示意,

異常型別             偏移位址(低)       偏移位址(高)

復  位               0x00000000            0xffff0000

未定義指令           0x00000004            0xffff0004

軟中斷               0x00000008            0xffff0008

預取指令終           0x0000000c            0xffff000c

資料終止             0x00000010            0xffff0010

保留                 0x00000014            0xffff0014

中斷請求(irq)      0x00000018            0xffff0018

快速中斷請求(fiq)  0x0000001c            0xffff001c

在arm的彙編啟動檔案中,會發現向量表的組合語言體現形式如下,

ldr     pc, resetaddr

ldr     pc, undefinedaddr

ldr     pc, swi_addr

ldr     pc, prefetchaddr

ldr     pc, dataabortaddr

nopldr     pc, irq_addr

ldr     pc, fiq_addr

ARM初始化及異常向量表

今天玩zynq的freertos時,扒啟動時又忘記arm是怎麼啟動的了,應該是這樣 arm啟動時首先找.vectors區間,而該區間就包含了 vector table 異常向量表 arm的異常向量表構造如下 異常型別 復 位 未定義指令 軟中斷 預取指令終 資料終止 保留 中斷請求 irq 快速中斷...

異常向量表

1.1異常 exceptions 異常 因為內部或者外部的一些事件,導致處理器停下正在處理的工作,轉而去處理這些發生的事件。1.2異常型別 arm處理器支援7種型別的異常 1.3異常向量 當一種異常發生的時候,arm處理器會跳轉到 對應該異常的固定位址去執行異常處理程式,而 這個固定的位址,就稱之為...

設定異常向量表

異常 因為內部或者外部的一些事件,導致處理器停下正在處理的工作,轉而去處理這些發生的事件。arm處理器支援的異常型別為 由圖可知,arm處理器支援7種異常型別,分別是重新啟動,未定義指令,軟中斷,預取異常,資料異常,中斷,快速中斷。異常向量 當一種異常發生的時候,arm處理器會跳轉到對應該異常的固定...