嵌入式 中断管理.pptVIP

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式 中断管理.ppt

μC/OS-Ⅱ中,中断服务子程序要用汇编语言来编写,然而,如果用户使用的C语言编译器支持在线汇编语言的话,用户可以直接将中断服务子程序代码放在C语言的程序文件中。 * * * * * * * * * 嵌入式实时操作系统 及应用开发 第七章 中断管理 中断 中断:由于某种事件的发生而导致程序流程的改变。产生中断的事件称为中断源。 CPU响应中断的条件: 至少有一个中断源向CPU发出中断信号; 系统允许中断,且对此中断信号未予屏蔽。 中断服务程序ISR 中断一旦被识别,CPU会保存部分(或全部)运行上下文(context,即寄存器的值),然后跳转到专门的子程序去处理此次事件,称为中断服务子程序(ISR)。 中断服务程序的主要内容: 保存上下文:保存中断服务程序将要使用的所有寄存器的内容,以便于在退出中断服务程序之前进行恢复; 如果中断向量被多个设备所共享,为了确定产生该中断信号的设备,需要轮询这些设备的中断状态寄存器; 获取中断相关的其他信息; 对中断进行具体的处理; 恢复保存的上下文; 执行中断返回指令,使CPU的控制返回到被中断的程序继续执行。 中断服务程序ISR 中断服务程序ISR 非预料事件是指事件发生的时间无法预知 即中断源何时产生中断不确定,是随机的。 但事件的性质及处理方法则是已知的,确定的 即中断服务程序是事先编写好的,只是何时执行未知。 中断源产生中断的随机性使中断服务程序的执行也具有随机性 即何时执行中断服务程序不是在程序中安排好的。 在实际应用中,广义的中断通常被分为中断、自陷和异常(exception)等类别。 中断是由于CPU外部的原因而改变程序执行流程的过程,属于异步事件,又称为硬件中断。自陷和异常则为同步事件; 自陷表示通过处理器所拥有的软件指令、可预期地使处理器正在执行的程序的执行流程发生变化,以执行特定的程序。自陷是显式的事件,需要无条件地执行; 异常为CPU自动产生的自陷,以处理异常事件。 异常没有对应的处理器指令,当异常事件发生时,处理器也需要无条件地挂起当前运行的程序,执行特定的处理程序。 中断 中断的分类 分类方式 硬件中断是否可以被屏蔽: 可屏蔽中断和不可屏蔽中断 中断源: 硬件中断和软件中断 中断信号的产生: 边缘触发中断和电平触发中断 中断服务程序的调用方式: 向量中断、直接中断和间接中断 向量中断 中断硬件设备的硬件中断线(也称为中断请求IRQ)被中断控制器汇集成中断向量(interrupt vector); 每个中断向量对应一个中断服务程序,用来存放中断服务程序的入口地址或是中断服务程序的第一条指令。 系统中通常包含多个中断向量,存放这些中断向量对应中断服务程序入口地址的内存区域被称为中断向量表。 取指令 执行指令 检查中断 处理中断 开始 停止 取周期 执行周期 中断周期 允许中断 中断和指令周期 不允许 中断 中断和指令周期 中断系统的功能 中断过程 B E C D A 中断请求 中断判优 中断响应 中断返回 中断服务 中断响应、服务及返回流程图 程序 中断服务程序A 中断服务程序B 中断的非嵌套顺序处理 中断非嵌套 程序 高优先级中断服务程序B 中断服务程序A 中断的嵌套处理 中断嵌套 实时内核的中断管理 中断服务程序通常包括三个方面的内容: 中断前导: 保存中断现场,进入中断处理。 用户中断服务程序: 完成对中断的具体处理。 中断后续: 恢复中断现场,退出中断处理。 中断向量号0 物理中断向量表 中断向量号1 中断向量号2 中断向量号3 …… 中断向量号n 中断接管程序 中断向量号0 虚拟中断向量表 中断向量号1 中断向量号2 中断向量号3 …… 中断向量号m 用户中断服务程序0 用户中断服务程序1 用户中断服务程序2 用户中断服务程序3 用户中断服务程序m 用户中断服务程序 实时内核的中断管理 中断栈的分布 用户栈 堆 静态数据 代码 中断栈 中断向量表 (A) 中断向量表 用户栈 堆 静态数据 代码 中断栈 (B) 内存高端 内存低端 实时内核通常提供如下中断管理功能: 挂接中断服务程序。把一个函数(用户中断服务程序)同一个虚拟中断向量表中的中断向量联系在一起。当中断向量对应中断发生的时候,被挂接的用户中断服务程序就会被调用执行; 获得中断服务程序入口地址。根据中断向量,获得挂接在该中断向量上的中断服务程序的入口地址; 获取中断嵌套层次。在允许中断嵌套的处理中,获取当前的中断嵌套层次信息; 开中断; 关中断。 实时内核的中断管理 中断时序 中断时序 时间 后台程序 CPU上下

文档评论(0)

zhoubingchina + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档