zoukankan      html  css  js  c++  java
  • ARM体系的异常中断

    在ARM体系中,通常有3种方式控制处理器的流程

       1:在正常执行过程中,每执行一条ARM指令,程序计数器寄存器PC的值加四个字节,在每执行一条Thumb指令,程序计数器寄存器PC的值加两个字节,整个过程是按照顺序执行的  

       2:通过跳转指令,程序可以跳转到指定的地址标号进行执行,或者跳转到特定的子程序进行执行,其中B指令用于执行跳转操作,BL指令用于执行跳转操作的同时,保存子程序相应的返回地址,BX在执行跳转操作的同时,分居目标地址的最低位,可以将程序切换到THumb状态,BLX执行上述三个操作

       3:当异常中断发生时,系统执行当前指令后,将跳转到相应的异常中断处理程序进行执行,当异常处理中断执行完成之后,程序返回到发生中断的下一条指令出继续执行,在进入异常中断处理程序的时候,要保存被中断程序的执行现场,在从异常中断程序退出时,要恢复被中断的程序的执行现场

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

      1保存处理器当前的状态,中断屏蔽位,以及各条件标志位,这是通过当前程序状态寄存器CPSR的内容保存到要自信的异常中断对应的SPSR寄存器中实现的

      2设置当前程序状态寄存器的相应的位,包括CPSR中的位,是处理器进入相应的执行模式,设置CPSR中的位,进制IRQ中断,但进入FIQ是,进制FIQ中断

      3将寄存器设置成返回地址

      4将程序计数器PC,设置长异常中断的中断向量地址,从而跳转到相应的异常中断进行处理

    从异常中断处理中返回

      1恢复被中断的程序的处理器后状态,讲SPSR_mode寄存器内容复制到CPSR

      2返回到发生异常中断的指令的下一条指令执行,讲IR_MODE中的内容复制到PC

      3复位和异常中断不需要返回,程序计数器PC所指向的不同的异常中断是不同的

    转载请注明链接地址:http://www.cnblogs.com/fengdashen/p/3724801.html

  • 相关阅读:
    INT 21H 指令说明及使用方法 (转载)
    数织等逻辑游戏网站推荐
    常见文件格式(转载)
    我有一个通信梦 我收集的通信基础的资源
    MATLAB信号处理常用函数(转载)
    来自我的Moments-实用学习资源或网站
    三角形中的等量关系 一些等式
    【公式编辑测试】三角形中线垂线角平分线长度公式
    【备忘录】麦克斯韦速率分布
    【备忘录】转动惯量张量(转载和再补充一些东西)
  • 原文地址:https://www.cnblogs.com/fengdashen/p/3724801.html
Copyright © 2011-2022 走看看