当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 学习笔记 > ARM的中断处理详细过程

ARM的中断处理详细过程 时间:2018-07-30      来源:未知

ARM有七种异常中断类型,优先级、工作模式(有七种工作模式)、地址、功能都不一样。如其中软件中断SWI优先级为6,工作模式管理模式,异常向量地址为0x00000008,功能是用户定义的中断指令,可用于用户模式下的程序调用特权操作。

当中断产生后,除了复位中断立即中止当前指令外,其余情况都是处理器完成当前指令后,才去执行异常处理程序。

(1)将CPSR的值保存到将要执行的异常中断对应的各自SPSR中,以实现对处理器当前状态、中断屏蔽及各标志位的保护。

(2)设置当前状态寄存器CPSR的相应位。设置CPSR中的M4~M0的5位,进入相应工作模式,设置I=1禁止IRQ中断,如果进入复位模式或FIQ模式,还要设置F=1以禁止FIQ中断。

(3)将引起异常指令的下一条地址(断点地址)保存到新异常工作模式的LR(R14)中,使异常处理程序执行完后正确返回原来程序处继续向下执行。

(4)给程序计数器PC强制赋值,转入向量地址,以便执行相应的处理程序。

每种中断异常模式对应两个寄存器SP和LR。

从中断返回。如果是复位异常,系统自动从0x00000000开始重新执行程序,无需返回。

(1)首先恢复原来被保护的用户寄存器。

(2)将SPSR寄存器复制到CPSR中,使得原来CPSR状态从相应的SOSR中恢复,一恢复被中断的程序状态。

(3)根据异常类型将PC值恢复成断点地址,以继续执行用户原来运行着的程序。

(4)清除CPSR中的中断禁止标志I和F,开放外部中断和快速中断。

注意:(1)程序状态寄存器及断点地址的恢复必须同时进行。

(2)由于异常随机发生,所以要对异常向量进行初始化,即在异常向量的地址处放置一条跳转指令,跳转到异常处理程序。

上一篇:linux基础知识总结

下一篇:串口基本知识及串口协议详解

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部