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

    今天的学习就到这里了。

      

  • 相关阅读:
    Netty指定分隔的字符
    Netty解决TCP粘包/拆包问题
    TCP粘包/拆包问题
    Netty5-应答服务器
    线程池中的线程的排序问题
    Java NIO 概述
    在windows中,如何使用cmd命令行窗口正确显示编码为utf-8格式的文字
    OXM
    Mysql event时间触发器,实现定时修改某些符合某一条件的某一字段
    linux 环境 tomcat 莫名奇妙挂掉
  • 原文地址:https://www.cnblogs.com/zhihui-3669/p/11695542.html
Copyright © 2011-2022 走看看