微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM 体系的异常中断

ARM 体系的异常中断

时间:11-21 来源:互联网 点击:

6.1 ARM 体系的异常中断

6.1.1 异常中断的种类

当ARM 系统正常的程序执行流程发生暂时的停止时,称之为异常,ARM 系统对异常的

响应过程称之为异常中断。例如当ARM 系统检测到外部的复位信号有效,ARM 系统的程

序就会跳转到复位处理程序。在处理异常之前,ARM 内核保存当前的处理器状态,这样当

处理程序结束时可以恢复执行原来的程序。当然ARM 体系的产生异常中断后,会按照一定

的程序进行中断处理。下面我们分别介绍ARM 系统异常,ARM 体系异常中断包括复位、

未定义的指令、软件中断,指令预取中断等。

●复位(Reset ):当处理器的复位引脚有效时,系统产生复位异常中断,程序跳转到复位异

常中断处理程序处执行。复位异常中断通常用在下面两种情况:①系统加电时 ②系统复位

时。

●未定义的指令(undefined instruction):当ARM 处理器或者时系统中是协处理器认为当前指

令未定义时,产生未定义指令异常中断。可以通过该异常中断机仿真浮点向量的运算。

●软件中断(Soft interrupt SWI):这时有用户定义的中断指令。可用于用户模式下的程序调

试特权操作指令。在实际的操作中可以通过该机制实现系统功能的调用。

●指令预取中止(Prefech Abort) :如果处理器预取的指令的地址不存在,或者该地址不允许

当前指令访问,当该预取的指令执行时,处理器产生指令预取中止异常中断。

数据访问中止(Data Abort):如果数据访问指令的目标地址不存在,或许该地址不允许当前

指令访问,处理器产生。

●外部中断请求(IRQ):当处理器的外部中断请求引脚有效,而且 CPSR 寄存器的 1 位控

制位被清除时,处理器产生外部中断请求(IRQ)异常中断。系统中个外设通常通过该异常

中断请求处理器服务。

●快速中断请求(FIQ ):当处理器外部快速中断请求引脚有效,而且 CPSR 寄存器的 F

制位被清除时,处理器产生外部中断请求(FIQ )异常中断。

6.1.2 处理异常中断的寄存器

中止模式(Abort abt ) 用于虚拟存储及存储保护

未定义指令模式(Undefined und ) 用于支持通过软件仿真硬件的协处理器

系统模式(System sys) 用于运行特权级的操作系统

各种不同的处理器模式可能有对应于该处理器的物理寄存器组,如表 6.2 所示。其中,

R13_svc 表示特权模式下的R13 寄存器,R_13abt 表示中止模式下的R13 寄存器,其余的各

寄存器名称含义类推。

表 6.2 各处理器模式物理寄存器组

用户模式 系统模式 特权模式 中止模式 未定义指令模式 外部中断模式 快速中断模式

R0 R0 R0 R0 R0 R0 R0

R1 R1 R1 R1 R1 R1 R1

R2 R2 R2 R2 R2 R2 R2

R3 R3 R3 R3 R3 R3 R3

R4 R4 R4 R4 R4 R4 R4

R5 R5 R5 R5 R5 R5 R5

R6 R6 R6 R6 R6 R6 R6

R7 R7 R7 R7 R7 R7 R7

R8 R8 R8 R8 R8 R8 R8_fiq

R9 R9 R9 R9 R9 R9 R9_fiq

R10 R10 R10 R10 R10 R10 R10_fiq

R11 R11 R11 R11 R11 R11 R11_fiq

R12 R12 R12 R12 R12 R12 R12_fiq

R13 R13 R13_svc R13_abt R13_und R13_irq R13_fiq

R14 R14 R14_svc R14_abt R14_und R14_irq R14_fiq

PC PC PC PC PC PC PC

CPSR CPSR CPSR CPSR CPSR CPSR CPSR

SPSR_svs SPSR_abt SPSR_und SPSR_irq SPSR_fiq

如果异常中断处理程序中使用它自己的物理寄存器之外的其他寄存器,异常中段处理程序

必须保存和恢复这些寄存器。

上表中各物理寄存器的名称在ARM 汇编语言中并没有被预定义。用户使用这些寄存器时,

必须使用伪操作RN 来定义这些名称。例如我们要使用寄存器R13_abt 可以使用下面的语句。

R13_abt RN R13

当几个异常中断同时发生时,就必须按照一定的次序来处理这些异常中断。在ARM 中通

过给各异常中断赋予一定的优先级来实现这种处理次序。当然有些异常中断时不可能同时发

生的,如指令预取中止异常中断和阮籍异常中断时由同一条指令的执行触发,它们时不可能

同时发生的。处理器执行一个特定的异常中断的过程中,称为处理器处于特定的中断模式。

各异常中断的中断向量地址以及中断的处理优先级如表 6.3 所示。

表 6.3 各异常中断的中断向量地址以及中断的处理优先级

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top