工作模式:
ARM有7种工作模式:
后五种为异常模式。
中断源:
中断源及其进入的对应模式:
中断优先级:
ARM中有6个优先级,如下所示:
1.复位 2.数据中止中断 3.fiq中断 4.irq中断 5.预取址中止中断 6.未定义指令中断和软件中断
标志寄存器:
ARM处理器共有37个寄存器。这37个寄存器按其在用户编程中的功能划分,可分为2类寄存器,即31个通用寄存器和6个状态寄存器。这6个状态寄存器在ARM公司文件中其名称分别为:CPSR、SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq和SPSR_fiq。后五个寄存器对应着五个异常工作模式。
处理器在进入异常和退出异常时所作的工作
进入异常时:
1.将要返回处的地址保存在对应异常模式的LR中(复位不需要保存返回地址)。
2.将CPSR的内容复制到对应异常模式的SPSR中。
3.强制修改CPSR的内容,进入到相应异常模式以及根据需要修改某些位。
4.强制PC从相应的中断向量地址处进行取值。
注:以上这些步骤都是由CPU自动完成的,也就是说,当有中断产生时,硬件就会自动完成上述步骤。
退出异常时:
1.将LR中保存的地址赋值给PC。
2.将SPSR的内容恢复给CPSR。
3.将irq中断禁止位清零。
注:只需要在异常处理程序中写一句返回指令即可实现上述步骤。