ARM处理器中,引起异常的原因是什么?

 我来答
浪荡0小子
2012-05-17
知道答主
回答量:9
采纳率:0%
帮助的人:3.9万
展开全部
异常和中断 1.ARM 处理器复位后,处理器硬件将进行如下操作: (1) 强制进入管理模式; (2) 强制进入到 ARM 状态; (3) 跳转到绝对地址 PC=0x00000000 出执行; (4) 禁止 IRQ 中断和 FIQ 中断。 复位后 CPSR 中最后 4 位状态为 0011,并且进入管理模式,执行操作系统程序, 一般用做对系统的初始化,然后切换到用户模式,开始执行正常的用户程序,切 换到用户模式可以使用如下程序: MRS R0,CPSR ;读程序状态寄存器 BIC R0,R0,#03 ;把末两位清零 MSR CPSR_c ,R0 ;把修改后的值加载给状态寄存器,切换结束 ADD R1,R2,R3 ;用户程序 2.未定义异常 . ARM 处理器中有很多没有定义的代码,因为 ARM 使用 32 位代码,包含 2 的 31 次幂种。所以 ARM 指令集不能用尽所有的代码。 ARM 的未定义异常有两种情况: (1) 遇到一条无法执行的指令,此指令没有定义; (2) 执行一条协处理器的操作指令,在正常情况下,协处理器应该应答,但是 没有,可能是因为干扰等原因。 当 发 生 此 异 常 时 , 处 理 器 硬 件 响 应 中 断 ,
但是一般情况下是不希望产生异常的,如果是由于干扰引起的异常,那么在 异常中断处理中有一段专门的程序,让程序返回再重新执行该条指令,以判 断异常是否是由干扰引起。 当然也要注意哪种单片机应该使用哪种合适的指令集版本,因为还是约 有差异的,否则某些编译通过的指令也不能执行。 3. 软件中断异常 软件中断异常是由指令 SWI 引起的, 程序执行这一条指令后, 进入异常中断。 处理器响应中断,硬件执行图如下:
软件中断处理程序完成后,使用下列返回指令返回到原中断处: MOVS PC , R14 软件中断异常把程序导入管理模式,而子程序调用属于用户模式。 4. 预取指中断异常 。。。 。。 预取指中断异常和未定义指令异常都是由于不正常的指令国产引起,但是也 有区别: (1) 未定义指令异常是内部异常中断,而他是外部信号引起的异常中断; (2) 他并没有成功地取得一条指令。 他中断返回时,应该执行指令:SUBS PC , R14 , #4 5.数据中止异常 . 。。。 。。。 6.中断请求(IRQ)异常 . 在 ARM 处理器中,有一个输入逻辑 nIRQ 称为中断请求信号,这个输入信
号是由 ARM 处理器外围控制模块(片内)控制,当有满足中断条件的事件发生 时, 外围控制模块向 ARM 处理器发错 IRQ 信号, ARM 处理器进入异常, 使 IRQ 中断是常用的中断,就像 51 系列单片机中定时器中断、串口中断、外部中断等。 中 断 可 以 通 过 CPSR[7] 来 屏 蔽 。 IRQ
完成中断处理后, 程序应该执行下列指令返回到原中断处: SUBS
PC , R14 , #4
7. 快速中断(FIQ)请求异常 在 ARM 处理器中,有一个输入逻辑 nFIQ 称为中断请求信号,这个输入信 号是由 ARM 处理器外围控制模块(片内)控制,当有满足中断条件的事件发生 时, 外围控制模块向 ARM 处理器发错 FIQ 信号, ARM 处理器进入异常。 使 FIQ 中断可以通过 CPSR[6]来屏蔽。
注意:进入异常会引起处理器模式转换。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式