ARM中断异常及其处理器模式
1.复位(包括上电)
2.FIQ(快速中断)
3.IRQ(一般中断)
4.SWI(软件中断)
5.预取址中止
6.数据中止
7.未定义指令异常
ARM核发生以上异常时,便会进入相应的处理器模式进行相应的异常处理。
其中ARM的处理器模式有以下7种:
1.管理模式(SVC):Supervisor也是处理器上电默认的运行模式,可由复位(包括上电)和SWI(软件中断)触发进入
2.快速中断模式(FIQ):由快速中断异常异常触发进入进行相应的中断处理子程序
3.一般中断模式(IRQ):由一般中断异常触发进入进行相应的中断处理
4.中止模式(abort):由预取址中止异常和数据中止异常触发进入的
5.未定义模式:由未定义指令异常触发进入
6.用户模式(user):用户软件修改CPSR进入
7.系统模式(system):用户软件修改CPSR进入
由此可见,处理器模式是相应的处理器异常的处理模式,但是用户模式和系统模式并不能由异常触发进入,而必须是由软件修改CPSR的值进入的。此外系统模式和用户模式共用15个寄存器和CPSR。总结处理器异常和处理器模式的关系为:7 TO 5。
当一个异常触发触发模式的改变时,CPU内核自动(硬件)做如下动作:
1.把CPSR保存到相应的异常模式下的SPSR(除了系统模式和用户模式没有自己的SPSR)
2.把PC保存到相应的异常模式下的LR(各个模式都有自己的LR寄存器,系统模式和用户模式共用)
3.设置CPSR为相应的异常模式。
4.设置PC为相应的异常处理程序的入口地址。
值得注意的是所有的处理器模式都可以通过修改CPSR来进入(即使没有发生处理器异常),但是仅仅是进入模式而已,并没有发生上面的三个步骤即:把CPSR保存到SPSR中,把PC保存到LR中,设置PC为相应的异常处理向量,这些都没有发生,而仅仅是处于该模式而已。这可以用来在系统初始化时给各个模式的堆栈指针(R13)进行初始化.
ARM中断异常处理器模 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)