ARM微处理器及其开发应用.pptVIP

  • 4
  • 0
  • 约5.06万字
  • 约 187页
  • 2017-12-27 发布于河南
  • 举报
ARM微处理器及其开发应用

2.4 ARM微处理器的编程模型 M0、M1、M2、M3、M4是运行模式位,具体含义见表2.4。 由表2.4可知,并不是所有运行模式位的组合都是有效的,其他组合结果会导致处理器进入一个不可恢复的状态。 (3)保留位 SPSR中的其余位为保留位,当改变SPSR中的条件码标志位或者控制位时,保留位不应被改变,在程序中也不要使用保留位来存储数据。保留位将用于ARM版本的扩展。 嵌入式系统及其开发应用(第二版) * 2.4 ARM微处理器的编程模型 2.4.5 异常 当正常的程序执行流程发生暂时的停止时,称为异常(Exceptions)。例如,处理一个外部的中断请求。在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。ARM体系结构中的异常,与8位/16位体系结构的中断有很大的相似之处,但异常与中断的概念并不完全等同。 1. ARM体系结构所支持的异常类型 ARM体系结构所支持的异常及具体含义见表4.5 嵌入式系统及其开发应用(第二版) * 2.4 ARM微处理器的编程模型 表2.5 ARM体系结构所支持的异常 嵌入式系统及其开发应用(第二版) 异 常 类 型 具 体 含 义 复位 当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行 未定义指令 当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常,可使用该异常机制进行软件仿真 软件中断 该异常由执行SWI指令产生,可用于用户模式下的程序调用特权操作指令,可使用该异常机制实现系统功能调用 异 常 类 型 具 体 含 义 指令预取中止 若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号。但只有当预取的指令被执行时,才会产生指令预取中止异常 数据中止 若处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常 IRQ(外部中断请求) 当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常。系统的外设可通过该异常请求中断服务 FIQ(快速中断请求) 当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常 * 2.4 ARM微处理器的编程模型 2. 对异常的响应 当一个异常出现以后,ARM微处理器会执行以下操作。 ① 将下一条指令的地址存入相应的链接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。若异常是从ARM状态进入的,则LR寄存器中保存的是下一条指令的地址(当前PC+4或PC+8,与异常的类型有关);若异常是从Thumb状态进入的,则在LR寄存器中保存当前PC的偏移量。这样,异常处理程序就不需要确定异常是从何种状态进入的。例如,对于软件中断异常SWI,指令“MOV PC,R14_svc”总是返回到下一条指令,不管SWI是在ARM状态下执行还是在Thumb状态下执行。 ② 将CPSR复制到相应的SPSR中。 ③ 根据异常类型,强制设置CPSR的运行模式位。 ④ 强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。 嵌入式系统及其开发应用(第二版) * 2.4 ARM微处理器的编程模型 还可以设置中断禁止位,以禁止中断发生。 异常发生时,如果处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态下。 ARM微处理器对异常的响应过程用伪码可以描述为: R14_Exception_Mode = Return Link SPSR_Exception_Mode = CPSR CPSR[4:0] = Exception Mode Number CPSR[5] = 0 ;当运行于ARM工作状态时 If Exception_Mode == Reset or FIQ then ;当响应FIQ异常时,禁止新的FIQ异常 CPSR[6] = 1 CPSR[7] = 1 PC = Exception Vector Address 嵌入式系统及其开发应用(第二版) * 2.4 ARM微处理器的编程模型 3. 从异常返回 异常处理完毕之后,ARM微处理器会执行以下操作从异常返回。 ① 将链接寄存器LR的值减去相应的偏移量后送到PC中。 ② 将SPSR复制回CPSR中。 ③ 若在进入异常处理时设置了中断禁止位,则要在此清除。 可以认为,应用程序总是从复位异常处理程序开始执行的,因此复位异常处理程序不需要返回。 嵌入式系统及其开发应用(第二版) * 2.4 ARM微处理器的编程模型 4. 各类异常的具体描述 现在对表2.5中的几个主要异常给出具体描述。 (1)快速中

文档评论(0)

1亿VIP精品文档

相关文档