您的位置 首页 产品

ARM 中止处理进程

1.寄存器R16用作CPSR(CurrentProgramStatusRegister,当前程序状态寄存器),CPSR可在任何运行模式下被访问,它包括条件标志位、中断

1.寄存器R16用作CPSR(Current Program Status Register,当时程序状况寄存器),CPSR可在任何运转形式下被拜访,它包含条件标志位、间断制止位、当时处理器形式标志位,以及其他一些相关的操控和状况位。
每一种运转形式下又都有一个专用的物理状况寄存器,称为SPSR(Saved Program Status Register,备份的程序状况寄存器),当反常产生时,SPSR用于保存CPSR的当时值,从反常退出时则可由SPSR来康复CPSR。
因为用户形式和体系形式不属于反常形式,他们没有SPSR,当在这两种形式下拜访SPSR,结果是不知道的
当间断产生的时分,把CPSR保存在SPSR是主动完结的。

对反常的呼应

当一个反常呈现今后,ARM微处理器会履行以下几步操作:(主动处理的)
1、将下一条指令的地址存入相应衔接寄存器LR,以便程序在处理反常回来时能从正确的方位重新开端履行。若反常是从ARM状况进入,LR寄存器中保存的是下一条指令的地址(当时PC+4或PC+8,与反常的类型有关);若反常是从Thumb状况进入,则在LR寄存器中保存当时PC的偏移量,这样,反常处理程序就不需求确认反常是从何种状况进入的。例如:在软件间断反常SWI,指令MOV PC,R14_svc总是回来到下一条指令,不论SWI是在ARM状况履行,仍是在Thumb状况履行。
2、将CPSR仿制到相应的SPSR中。
3、依据反常类型,强制设置CPSR的运转形式位。
4、强制PC从相关的反常向量地址取下一条指令履行,然后跳转到相应的反常处理程序处。
还能够设置间断制止位,以制止间断产生。
假如反常产生时,处理器处于Thumb状况,则当反常向量地址加载入PC时,处理器主动切换到ARM状况

从反常回来(手动处理的)

反常处理完毕之后,ARM微处理器会履行以下几步操作从反常回来:
1、将衔接寄存器LR的值减去相应的偏移量后送到PC中。
2、将SPSR仿制回CPSR中。
3、若在进入反常处理时设置了间断制止位,要在此铲除。
能够以为应用程序总是从复位反常处理程序开端履行的,因而复位反常处理程序不需求回来。

几种CPU作业形式

用户形式(User,usr) 正常程序履行的形式
快速间断形式(FIQ,fiq) 用于高速数据传输和通道处理
外部间断形式(IRQ,irq) 用户一般的间断运用
特权形式(Supervisor,sve) 供操作体系运用的一种保护形式
数据拜访间断形式(Abort,abt) 用于虚拟存储及存储保护
未定义指令间断形式(Undefin- ed,und) 用于支撑经过软件仿真硬件的协处理器
体系形式(System,sys) 用于运转特权级的操作体系使命

除用户形式外都是特权形式(恣意地进行处理器形式的切换)。。
除用户形式和体系形式外都是反常形式。

对不同的间断形式都有独立的仓库和独立的仓库指针(SP)和(LR)

从SWI和Undef反常回来时运用
movs pc,LR

从FIQ,IRQ和预取停止回来时运用
SUBS PC, LR, #4

从数据反常回来时运用
SUBS PC, LR, #8

在运用上述指令反常回来时,假如LR之前被压栈的话运用LDM
LDMFD SP! {PC}^

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/chanpin/276764.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部