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中断向量表的入口地址,以供跳转。

    今天的学习就到这里了。

      

  • 相关阅读:
    jQuery的实用技巧
    jQuery中的Ajax
    jQuery中的动画
    jQuery中的事件
    jQuery中的DOM操作
    详解jQuery的选择器
    微信小程序开发教程(九)视图层——.wxss详解
    微信小程序开发教程(八)视图层——.wxml详解
    14 组合查询
    13 创建高级联结
  • 原文地址:https://www.cnblogs.com/zhihui-3669/p/11695542.html
Copyright © 2011-2022 走看看