好房网

网站首页 楼盘信息 > 正文

arm处理器异常处理过程(arm处理器进入异常时内核有何操作)

2022-07-20 07:18:34 楼盘信息 来源:
导读 想必现在有很多小伙伴对于arm处理器进入异常时内核有何操作方面的知识都比较想要了解,那么今天小好小编就为大家收集了一些关于arm处理器

想必现在有很多小伙伴对于arm处理器进入异常时内核有何操作方面的知识都比较想要了解,那么今天小好小编就为大家收集了一些关于arm处理器进入异常时内核有何操作方面的知识分享给大家,希望大家会喜欢哦。

1、异常和中断 1.ARM 处理器复位后,处理器硬件将进行如下操作: (1) 强制进入管理模式; (2) 强制进入到 ARM 状态; (3) 跳转到绝对地址 PC=0x00000000 出执行; (4) 禁止 IRQ 中断和 FIQ 中断。

2、 复位后 CPSR 中最后 4 位状态为 0011,并且进入管理模式,执行操作系统程序, 一般用做对系统的初始化,然后切换到用户模式,开始执行正常的用户程序,切 换到用户模式可以使用如下程序: MRS R0,CPSR ;读程序状态寄存器 BIC R0,R0,#03 ;把末两位清零 MSR CPSR_c ,R0 ;把修改后的值加载给状态寄存器,切换结束 ADD R1,R2,R3 ;用户程序 2.未定义异常 . ARM 处理器中有很多没有定义的代码,因为 ARM 使用 32 位代码,包含 2 的 31 次幂种。

3、所以 ARM 指令集不能用尽所有的代码。

4、 ARM 的未定义异常有两种情况: (1) 遇到一条无法执行的指令,此指令没有定义; (2) 执行一条协处理器的操作指令,在正常情况下,协处理器应该应答,但是 没有,可能是因为干扰等原因。

5、 当 发 生 此 异 常 时 , 处 理 器 硬 件 响 应 中 断 ,但是一般情况下是不希望产生异常的,如果是由于干扰引起的异常,那么在 异常中断处理中有一段专门的程序,让程序返回再重新执行该条指令,以判 断异常是否是由干扰引起。

6、 当然也要注意哪种单片机应该使用哪种合适的指令集版本,因为还是约 有差异的,否则某些编译通过的指令也不能执行。

7、 3. 软件中断异常 软件中断异常是由指令 SWI 引起的, 程序执行这一条指令后, 进入异常中断。

8、 处理器响应中断,硬件执行图如下:软件中断处理程序完成后,使用下列返回指令返回到原中断处: MOVS PC , R14 软件中断异常把程序导入管理模式,而子程序调用属于用户模式。

9、 4. 预取指中断异常 。

10、 预取指中断异常和未定义指令异常都是由于不正常的指令国产引起,但是也 有区别: (1) 未定义指令异常是内部异常中断,而他是外部信号引起的异常中断; (2) 他并没有成功地取得一条指令。

11、 他中断返回时,应该执行指令:SUBS PC , R14 , #4 5.数据中止异常 . 。

12、 6.中断请求(IRQ)异常 . 在 ARM 处理器中,有一个输入逻辑 nIRQ 称为中断请求信号,这个输入信号是由 ARM 处理器外围控制模块(片内)控制,当有满足中断条件的事件发生 时, 外围控制模块向 ARM 处理器发错 IRQ 信号, ARM 处理器进入异常, 使 IRQ 中断是常用的中断,就像 51 系列单片机中定时器中断、串口中断、外部中断等。

13、 中 断 可 以 通 过 CPSR[7] 来 屏 蔽 。

14、 IRQ完成中断处理后, 程序应该执行下列指令返回到原中断处: SUBSPC , R14 , #47. 快速中断(FIQ)请求异常 在 ARM 处理器中,有一个输入逻辑 nFIQ 称为中断请求信号,这个输入信 号是由 ARM 处理器外围控制模块(片内)控制,当有满足中断条件的事件发生 时, 外围控制模块向 ARM 处理器发错 FIQ 信号, ARM 处理器进入异常。

15、 使 FIQ 中断可以通过 CPSR[6]来屏蔽。

16、注意:进入异常会引起处理器模式转换。

本文到此结束,希望对大家有所帮助。


版权说明: 本文由用户上传,如有侵权请联系删除!


标签: