• 嵌套中断处理


    1.前言

    本文主要是对 <<ARM嵌入式系统开发:软件设计与优化>> 第9.3.2节的读书总结,如下只是简单的做一记录,详细的后续补充

    2.嵌套中断处理过程

    3. 详细处理流程

    结合源码可以得出如下:

    1.首先进出中断处理函数后,禁用中断,并保存被打断任务的上下文,此时为IRQ处理器模式,相应的堆栈如下

    2. 之后将切换回SVC模式,相应的堆栈如下:

    第一步:将R4-R11入栈,这样可以有空闲的寄存器用来保存IRQ模式下的寄存器

    第二步:用R4-R9来保存IRQ模式下入栈的寄存器

    r0 -> r4

    r1-> r5

    r2 -> r6

    r3-> r7

    r12->r8

    r14->r9  

    第三步:此时由于所有的寄存器都得以保存,因此可以开中断

    第四步:构建SVC完整的栈帧结构

    其中红色为返回任务时使用,黑色为返回被打断的中断使用

    注:如果在开启中断的时候,有新的中断进来则会继续在SVC模式的堆栈基础上入栈

  • 相关阅读:
    ie条件注释
    浏览器兼容性
    ajax
    执行环境、变量对象、作用域链、闭包
    iPhone日历选择器效果
    fastclick源码分析
    zepto 事件模块源码分析
    阿拉伯数字转成中文数字 (支持1~9999)
    line-height学习
    运动的球(1)
  • 原文地址:https://www.cnblogs.com/smartjourneys/p/9028799.html
Copyright © 2020-2023  润新知