"ARM 异常处理机制参考1" ARM 异常处理机制是 ARM 处理器中的一种机制,当正常的程序流被暂时中断时,处理器就会进入异常模式。例如响应一个来自外设的中断。在处理异常之前,ARM 内核保存当前的处理器状态,这样当处理程序结束时可以恢复执行原来程序。 ARM 支持的异常种类有多种,例如 IRQ 异常、SWI 异常等。异常处理机制的步骤包括: 1. 将 CPSR 保存到相应异常模式下的 SPSR 中 2. 将 PC 寄存器保存到相应异常模式下的 LR 中 3. 将 CPSR 设置成相应的异常模式 4. 设置 PC 寄存器的值为相应处理程序的入口地址 在 ARM 处理器中,异常向量表可以存放在以 0x00000000 或 0xffff00000 开始的地址,默认是以零地址开始存放的。异常向量表中存放的都是跳转指令,目的是跳到一个地方对异常进行处理。 例如,在 ARM 处理器正在执行指令时,外部硬件产生了一个中断。此时将产生 IRQ 异常,然后 ARM 核心就会自动完成上面的 4 步。完成前 3 步后,ARM 核心会强制将 PC 的值修改为 0x18。修改完成后,处理器就开始从 0x18 这个地址取指令执行。 在 Cortex-A 系列的处理器中,可以将异常向量表放在任何位置,通过协处理指令告诉 ARM 核心异常向量表的位置。例如,在 Cortex-A8 上,可以操作如下协处理指令,来告诉 ARM 核心异常向量表的位置: ldr r0,=0x20008000 mcr p15,0,r0,c12,c0,0 异常处理程序结束时,需要恢复到异常产生之前的场景继续运行。这需要将 LR 中的值减去偏移量后存入 PC,偏移量根据异常的类型而有所不同;然后将 SPSR 的值复制回 CPSR;最后清零中断禁用标志。 异常处理机制是 ARM 处理器中的一种机制,用于处理各种异常事件,例如外部中断、软件中断等。通过异常向量表和异常处理程序,可以对异常进行处理,并恢复到异常产生之前的场景继续运行。
- 粉丝: 3
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 上课教材ppt-数据库系统原理及MySQL应用教程(第二版)课件.zip
- usb gadget 学习资料
- 智能毕设项目开发基础教程
- 实用脚本工具:自动化编程基础教程
- LabVIEW编程入门与实践基础教程
- 嵌入式开发入门与实践基础教程
- JFinal-Python资源
- 胆小菇 Python Selenium 爬虫入门:批量将豆瓣书影标记设置为"仅自己可见"
- bboss-plugins-kafka
- iotucy-websocket
- 胆小菇 Python Selenium 爬虫入门:批量将豆瓣书影标记设置为"仅自己可见"
- StudentManageSystem-建立学生信息链表
- Sa-Token-java
- 基于Atlas 200I DK A2研究的机械臂目标检测系统-注意力机制
- ga_network_reconfiguration-遗传算法
- tomcat-tomcat