内核中断服务程序出口函数.ppt

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内核中断服务程序出口函数

第5章 中断管理 中断的基本概念 中断处理过程 中断评价指标 μC/OS-II的中断和中断服务程序 关于任务切换 OSIntExit (void) void OSIntExit (void) {#if OS_CRITICAL_METHOD==3 OS_CPU_SR cpu_sr; #endif OS_ENTER_CRITICAL(); if ((--OSIntNesting | OSLockNesting) == 0) { OSIntExitY = OSUnMapTbl[OSRdyGrp]; OSPrioHighRdy = (INT8U)((OSIntExitY 3) + OSUnMapTbl[OSRdyTbl[OSIntExitY]]); if (OSPrioHighRdy != OSPrioCur) { OSTCBHighRdy = OSTCBPrioTbl[OSPrioHighRdy]; OSCtxSwCtr++; OSIntCtxSw(); } } OS_EXIT_CRITICAL();} 要不要切换到其它任务? 中断级任务切换 中断级的任务切换函数OSIntCtxSwt() OSIntCtxSw() { OSTCBCur=OSTCBHighRdy; //任务控制块TCB的切换 OSPrioCur=OSPrioHighRdy; SP=OSTCBHighRdy-OSTCBStkPtr; //使SP指向带运行任务堆栈 用出栈指令把R1,R2…弹出CPU的通用寄存器; RETI; //中断返回,使PC指向待运行任务 } μC/OS-II允许中断嵌套 进入μC/OS-II中断的函数是OSIntEnter(),退出μC/OS-II中断的函数是OSIntExit()。 μC/OS-II是内核抢占式中断,允许中断返回时调度到更高优先级任务,中断级的任务切换函数OSIntCtxSwt() μC/OS-II的中断服务程序的工作通常是由中断激活一个任务来完成的。 小结 * * * * * * 单击此处编辑母版标题样式 第5章 中断管理 中断的基本概念 中断处理过程 中断评价指标 μC/OS-II的中断和中断服务程序 1. 中断概念 所谓中断是指某个事件 发生时,系统中止现行程序的运行、引出处理事件程序对该事件进行处理,处理完毕后返回断 点,继续执行。 继续执行 中断进入 中断 返回 中断信号 正在执行 的程序 中断处 理程序 中断源,可以来源于CPU的内部,也可以来源于CPU的外部 中断分为三个阶段 中断检测 中断响应 中断处理 硬件做 OS做 中断检测:每条指令结束的时候做 PC:程序计数器 PS:程序状态寄存器  中断处理程序的PC 中断处理程序的PS 中断向量表 PC PS PC PS 堆栈 堆栈栈 顶指针 (4) (1) (2) (3) 中断响应的实质: --将被中断程序的PC和PS存起来! --将中断处理程序的PC和PS 放入CPU  内存 CPU 中断响应做什么 第5章 中断管理 中断的基本概念 中断处理过程 中断评价指标 μC/OS-II的中断和中断服务程序 中断处理程序的工作 保留被中断程序的现场 进入相应的中断服务例程 恢复被中断程序的现场 中断 返回 中断进入 k+0 现行程序 k+1 由操作系统做 除了PC、PS以外的寄存器 中断的处理方式 非抢占的式内核 抢占式内核 中断是否允许嵌套 不允许: 处理中断的时候,将屏蔽所有其他的中断请求。 允许: 中断被划分为多个优先级,中断服务程序只屏蔽那些比当前中断优先级低或是与当前中断优先级相同的中断 中断嵌套需要解决的问题:需要专门的中断栈? 第5章 中断管理 中断的基本概念 中断处理过程 中断评价指标 μC/OS-II的中断和中断服务程序 中断延迟 中断响应时间 中断恢复时间 中断处理时间 抢占式调度内核的中断时序图 中断服务 程序 任务 A B 时间 中断请求(1) 任务或内核程序(2) 中断延迟 中断响应 获取中断向量(3) CPU上下文保存(4) 内核中断服务程序入口函数(5) 用户中断服务子程序代码(6) 内核中断服务程序出口函数(10) 内核中断服务程序出口函数(7) CPU上下文恢复(11) 中断返回(12) CPU上下文恢复(8) 中断返回(9) 任务 任务响应 中断恢复 中断恢复 抢占式调度内核的中断时序图 中断服务 程序 任务 A

您可能关注的文档

文档评论(0)

magui + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档