- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式实时操作系统
及应用开发
第七章 中断管理
中断: 由于某种事件的发生而导致程序流程
的改变。产生中断的事件称为中断源。 CPU响应中断的条件:
n至少有一个中断源向CPU发出中断信号;
n系统允许中断,且对此中断信号未予屏蔽。
中断
中断一旦被识别, CPU会保存部分(
或全部)运行上下文(context,即寄存器 的值),然后跳转到专门的子程序去处理 此次事件,称为中断服务子程序(ISR)。
中断服务程序ISR
§ 中断服务程序的主要内容:
– 保存上下文:保存中断服务程序将要使用的所有寄存 器的内容,以便于在退出中断服务程序之前进行恢复;
– 如果中断向量被多个设备所共享,为了确定产生该中 断信号的设备,需要轮询这些设备的中断状态寄存器;
– 获取中断相关的其他信息;
– 对中断进行具体的处理;
– 恢复保存的上下文;
– 执行中断返回指令,使CPU的控制返回到被中断的程序 继续执行。
中断服务程序ISR
非预料事件是指事件发生的时间无法预知
即中断源何时产生中断不确定,是随机的。
但事件的性质及处理方法则是已知的,确定的
即中断服务程序是事先编写好的,只是何时
执行未知。
中断源产生中断的随机性使中断服务程序的执行也 具有随机性
即何时执行中断服务程序不是在程序中安排好
的。
中断服务程序ISR
§ 在实际应用中,广义的中断通常被分为中断、自陷和异常 (exception)等类别。
– 中断是由于CPU外部的原因而改变程序执行流程的过程, 属于异步事件,又称为硬件中断。自陷和异常则为同步 事件;
– 自陷表示通过处理器所拥有的软件指令、可预期地使处 理器正在执行的程序的执行流程发生变化,以执行特定 的程序。自陷是显式的事件,需要无条件地执行;
– 异常为CPU自动产生的自陷,以处理异常事件。
§ 异常没有对应的处理器指令,当异常事件发生时, 处理器也需要无条件地挂起当前运行的程序,执行
特定的处理程序。
中断
§ 分类方式
– 硬件中断是否可以被屏蔽:
§ 可屏蔽中断和不可屏蔽中断
– 中断源:
§ 硬件中断和软件中断
– 中断信号的产生:
§ 边缘触发中断和电平触发中断
– 中断服务程序的调用方式:
§ 向量中断、直接中断和间接中断
中断的分类
§ 中断硬件设备的硬件中断线(也称为中断请求 IRQ)被中断控制器汇集成中断向量 ( interrupt vector);
§ 每个中断向量对应一个中断服务程序,用来存 放中断服务程序的入口地址或是中断服务程序 的第一条指令。
§ 系统中通常包含多个中断向量,存放这些中断 向量对应中断服务程序入口地址的内存区域被 称为中断向量表。
向量中断
中断和指令周期
检查中断 处理中断
取周期 执行周期 中断周期
执行指令
取指令
中断和指令周期
不允许 中断
允许中断
停止
中断系统的功能
中断判优
中断请求
中断服务
中断返回
中断响应
E
中断响应、服务及返回
流程图
中断服务程序B
中断非嵌套
中断的非嵌套顺序处理
中断服务程序A
程序
中断嵌套
高优先级中断服
务程序B
中断的嵌套处理
中断服务程序A
程序
§ 中断服务程序通常包括三个方面的内容:
– 中断前导:
§ 保存中断现场,进入中断处理。
– 用户中断服务程序:
§ 完成对中断的具体处理。
– 中断后续:
§ 恢复中断现场,退出中断处理。
实时内核的中断管理
实时内核的中断管理
中断向量号0
中断向量号1
中断向量号2
中断向量号3
……
中断向量号m
中断向量号0
中断向量号1
中断向量号2
中断向量号3
……
中断向量号n
中断接管 程序
物理中断向量表 虚拟中断向量表 用户中断服务程序
用户中断服务程序0
用户中断服务程序1
用户中断服务程序3
用户中断服务程序2
用户中断服务程序m
中断栈
用户栈
堆
静态数据
代码
中断向量表
用户栈
堆
静态数据
代码
中断栈
中断向量表
中断栈的分布
内存高端
内存低端
(A)
(B)
§ 实时内核通常提供如下中断管理功能:
– 挂接中断服务程序。把一个函数(用户中断服务程序) 同一个虚拟中断向量表中的中断向量联系在一起。当 中断向量对应中断发生的时候,被挂接的用户中断服 务程序就会被调用执行;
– 获得中断服务程序入口地址。根据中断向量,获得挂 接在该中断向量上的中断服务程
您可能关注的文档
- 安全、文明施工方案.docx
- 统编版语文六年级上册《夏天里的成长》优质观摩课配套ppt课件-教学设计.pptx
- 部编人教版高中语文-梦游天姥吟留别ppt课件.pptx
- chap3供应链战略管理课件.pptx
- 阅读习惯班会+读书主题班会课件.pptx
- SOHO住宅模式的探讨.docx
- 新人教必修二Unit3Computers-WarmingupandPre-readingppt课件.pptx
- 鄂教版六年级下册科学探索动物的发展史课件.pptx
- 光合农场陈艺军大神殿堂级企划文案香飘飘企划总执行文案课件.pptx
- 《认识小数》课件.pptx
- 重庆新速达物业服务集团股份凯里公司招聘笔试题库2024.pdf
- 浙江杭州千岛湖泰众肉类食品有限公司招聘笔试题库2024.pdf
- 陕西新华出版传媒集团新华书店分公司招聘笔试题库2024.pdf
- 宁夏海原县肉牛产业发展集团有限公司招聘笔试题库2024.pdf
- 浙江温岭市化工轻工建筑材料有限公司招聘笔试题库2024.pdf
- 中航飞机汉中航空零组件制造有限公司招聘笔试题库2024.pdf
- 山东海阳市海昇矿产资源开发有限公司招聘笔试题库2024.pdf
- 山东潍坊寿光市公共交通运输有限公司招聘笔试题库2024.pdf
- 内蒙古察右前旗农业投资开发有限公司招聘笔试题库2024.pdf
- 线上清明祭英烈活动策划.pptx
文档评论(0)