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


你可能感兴趣的:(ARM架构)