ARM 体系的异常中断
6.1.1 异常中断的种类
响应过程称之为异常中断。例如当ARM
序就会跳转到复位处理程序。在处理异常之前,ARM
处理程序结束时可以恢复执行原来的程序。当然ARM 体系的产生异常中断后,会按照一定
的程序进行中断处理。下面我们分别介绍ARM
未定义的指令、软件中断,指令预取中断等。
●复位(Reset ):当处理器的复位引脚有效时,系统产生复位异常中断,程序跳转到复位异
常中断处理程序处执行。复位异常中断通常用在下面两种情况:①系统加电时 ②系统复位
时。
●未定义的指令(undefined instruction):当ARM 处理器或者时系统中是协处理器认为当前指
令未定义时,产生未定义指令异常中断。可以通过该异常中断机仿真浮点向量的运算。
●软件中断(Soft
试特权操作指令。在实际的操作中可以通过该机制实现系统功能的调用。
●指令预取中止(Prefech Abort)
当前指令访问,当该预取的指令执行时,处理器产生指令预取中止异常中断。
数据访问中止(Data
指令访问,处理器产生。
●外部中断请求(IRQ):当处理器的外部中断请求引脚有效,而且 CPSR
制位被清除时,处理器产生外部中断请求(IRQ)异常中断。系统中个外设通常通过该异常
中断请求处理器服务。
●快速中断请求(FIQ ):当处理器外部快速中断请求引脚有效,而且 CPSR
制位被清除时,处理器产生外部中断请求(FIQ )异常中断。
6.1.2 处理异常中断的寄存器
中止模式(Abort abt )
未定义指令模式(Undefined und )
系统模式(System sys)
R13_svc 表示特权模式下的R13 寄存器,R_13abt 表示中止模式下的R13 寄存器,其余的各
寄存器名称含义类推。
用户模式 系统模式
CPSR
必须保存和恢复这些寄存器。
必须使用伪操作RN 来定义这些名称。例如我们要使用寄存器R13_abt 可以使用下面的语句。
过给各异常中断赋予一定的优先级来实现这种处理次序。当然有些异常中断时不可能同时发
生的,如指令预取中止异常中断和阮籍异常中断时由同一条指令的执行触发,它们时不可能
同时发生的。处理器执行一个特定的异常中断的过程中,称为处理器处于特定的中断模式。
各异常中断的中断向量地址以及中断的处理优先级如表 6.3 所示。
ARM体系异常中 相关文章:
- ARM体系的异常中断(11-09)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)