ARM微处理器对异常中断的响应过程

处理器/DSP

891人已加入

描述

ARM微处理器对异常中断的响应过程如下:

●当异常中断发生时,程序将当前执行指令的下一条指令的地址存入新的异常模式的链接寄存器LR中(R14_),以便程序在异常处理完后,能正确返回原程序。

●保存当前的CPSR值,即将CPSR复制到新的异常模式的SPSR中。

●根据异常类型,重新设置CPSR的运行模式位CPSR[4:0],使微处理器进入相应的工作模式。

●强制给PC赋值,即将表2.4中相应的向量地址赋给PC,从而跳转到相应的异常处理程序处执行程序。

●设置CPSR中的中断禁止位,以禁止中断发生。

上述过程用伪码可以描述为:

R14_ = Return Link
SPSR_ = CPSR
CPSR[4:0] = Exception Mode Number
CPSR[5] = 0
If< Exception_Mode> == Reset or FIQ then
CPSR[6] = 1 ;当响应FIQ或复位异常时,禁止新的FIQ中断
CPSR[7] = 1 ;禁止IRQ中断
PC = Exception Vector Address

如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。

异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:

●由链接寄存器LR的值恢复PC,返回到发生异常中断的指令的下一条指令处执行程序。

●将SPSR复制回CPSR中。

●若在进入异常处理时设置了中断禁止位,要在此清除。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分