1. 程式人生 > >ARM的異常及向量表

ARM的異常及向量表

  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
        NOP
        LDR     PC, IRQ_Addr
        LDR     PC, FIQ_Addr