zoukankan      html  css  js  c++  java
  • ARM中断深入分析几点

    ARM中断深入分析几点

    1.程序发生中断后,是如何跳转到中断程序里面的?

    2.执行完中断后,如何返回到原来被打断的地方接着执行呢?

    3.ARM处理器的流水线结构对中断返回地址的计算有什么影响?

    4.ARM7,ARM9处理器流水线结构一个是3级一个是5级,为什么中断返回地址是相同的?

    5.ARM启动后是SVC模式,发生中断后进入什么模式?

    6.发生中断后,哪些事情是需要ARM自动完成?哪些是需要编程实现的?

      读书留痕,思考留果

    1.程序发生中断后,是如何跳转到中断程序里面的?

      首先要执行完当前指令!然后自动完成以下事情:

      CPSR---->SPSR_irq(IRQ模式)(逆过程不能自动完成)

      PC-4  ----> R14_irq

      PC <---- 0X00000018(irq中断向量表的入口地址)

    程序员需要补充做的事情有:

        R0----R12,和LR的值入栈。

       用户处理函数放在irq中断向量表的入口地址,以供跳转。

    2.执行完中断后,如何返回到原来被打断的地方接着执行呢?

      恢复R0--R12,出栈;

      R14-4 ----> PC

      SPSR_irq---->CPSR

    3.ARM处理器的流水线结构对中断返回地址的计算有什么影响?

      pc始终指向当前正在执行指令的下两条指令处(PC-8).执行完当前的,就变为PC-4。保存的就是PC-4.

    4.ARM7,ARM9处理器流水线结构一个是3级一个是5级,为什么中断返回地址是相同的?

      因为:pc始终指向当前正在执行指令的下两条指令处(PC-8),不管是几级流水线。

    5.ARM启动后是SVC模式,发生中断后进入什么模式?

      IRQ模式

    6.发生中断后,哪些事情是需要ARM自动完成?哪些是需要编程实现的?

    ARM自动完成:

     CPSR---->SPSR_irq(IRQ模式)(逆过程不能自动完成)

      PC-4  ----> R14_irq

      PC <---- 0X00000018(irq中断向量表的入口地址)

    需要编程实现的:

       R0----R12,和LR的值入栈。

         用户处理函数放在irq中断向量表的入口地址,以供跳转。

    今天的学习就到这里了。

      

  • 相关阅读:
    MOCK服务小结
    微信收款「商业版」与「个人版」有什么区别?看完这篇你就懂!
    LB 负载均衡的层次结构
    中兴应用之星携手天翼开放平台:让APP开发更简单
    常见面试题之二叉树
    【深入JAVA EE】Spring配置文件解析
    spring-struts-mybatis整合错误集锦
    Redis安装
    Atitit.ati&#160;dwr的原理and设计&#160;attilax&#160;总结&#160;java&#160;php&#160;版本号
    Android UI开发神兵利器之Icon
  • 原文地址:https://www.cnblogs.com/zhihui-3669/p/11695542.html
Copyright © 2011-2022 走看看