- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式操作系统第四章 中断管理
戚隆宁longn_qi@seu.edu.cn主要内容
1. 中断管理
2. 时间管理
1. 中断管理
1.1 中断的缘由
1.2 中断的概念
1.3 中断的分类
1.4 中断的处理
1.5 uC/OS II的中断管理
1.1 中断的缘由
缘起:CPU高速的处理能力与慢速的I/O设备的矛盾
早期CPU采用轮询方式(polling)与I/O设备交互。CPU必须不停的查询I/O设备的状态,直到状态有效才进行通信。
串行处理,只能按照固定顺序逐个查询和依次处理,无法做到并发;
等待状态有效的过程中,CPU不能去做其他复杂耗时的事情,否则会延误处理。
解决方案:允许打断正常执行流程,转而处理其他事务
1.2 中断的概念
定义(广义)
(动词)打断正常执行流程,转而处理其他事务的过程
(名词)导致正常执行流程被打断的事件或信号
1.3 中断的分类
根据中断来源划分
外部中断/异步中断
(外部硬件)中断
可屏蔽中断
不可屏蔽中断(non-maskable interrupt, NMI)
内部中断/同步中断
软陷(trap)/软中断(software interrupt, SWI)
异常(exception)/内部硬件中断
外部中断
特征
中断信号由外部硬件产生
可以在任何时间内发生,包括指令执行期间,具有不确定性,是一个异步过程
例如
键盘、鼠标
串口、并口、网口
实时时钟
外部中断的可屏蔽性
当程序的正常执行流程不允许被打断的情况下,需要屏蔽外部中断的干扰,即需要有可屏蔽的中断。
外部设备的中断请求信号一般需要先通过CPU外部的中断控制器,再与CPU的中断引脚相连;
需要通过软件进行中断的识别;
中断控制器可以通过软件进行控制,以禁止或是允许中断。
有一些中断十分重要(如:掉电),必须立即处理,任何时候都不允许屏蔽,即需要非屏蔽的中断
连接CPU另一个中断引脚,与可屏蔽中断信号区分开;
无需软件识别;
硬件决定,无软件控制。
内部中断
特征
由 CPU 控制单元产生
只能在指令执行完毕后产生,因此是一个同步过程
包括
软陷
异常
软陷
概念:通过处理器的软件指令、可预期地使处理器正在执行的程序的执行流程发生变化,以执行特定的程序。
Intel 80x86中的INT指令
ARM中的SWI指令
Motorola 68000系列中的Trap指令
特征
需要调用处理器指令,是显式的事件
需要无条件地执行
用途
系统调用
异常
概念:由处理器内部硬件自动产生的信号,使处理器正在执行的程序的执行流程发生变化,执行特定的处理程序。
被0除
执行非法指令
内存保护故障
特征
无需处理器指令
需要无条件执行
用途
故障恢复
内存保护
1.4 中断处理
中断检测
中断响应
中断处理
中断检测
中断检测在每条指令结束时进行,检测是否有中断请求或是否满足异常条件。
为满足中断处理的需要,在指令周期中使用了中断周期。
在中断周期中,处理器检查是否有中断发生,即是否出现中断信号。
没有中断信号:处理器继续运行,并通过取指周期取当前程序的下一条指令;
有中断信号:将进入中断响应,对中断进行处理。
中断和指令周期
中断检测
中断的触法方式
边沿触发
电平触发
中断响应
概念:从中断发生到程序开始处理中断的过程
中断响应过程(处理器自动完成)
保护断点(保存寄存器、设置标志位)
x86: EFLAGS、CS、EIP?Stack
ARM:PC+4?LR、CPSR?SPSR
获得中断类型号
采用直接中断方式或向量中断方式转入中断服务程序
直接中断
中断服务程序首址固定,直接根据中断类型号跳转到对应的中断服务程序
特点
可快速识别中断源,但灵活性差
每个中断源拥有独立的中断服务程序,适合中断源较少的系统
向量中断
中断硬件设备的硬件中断线(也称为中断请求IRQ)被中断控制器汇集成中断向量(interrupt vector),每个中断向量对应一个中断服务程序
中断向量表(interrupt vector table):由对应不同中断类型号的中断服务程序首址或第一条指令构成
一般存放在内存地址0是0xFFFF0000处
X86:256个入口,每个中断向量四个字节(中断服务程序首址)。
ARM 7/9:7个入口,Reset、Undefined Instruction、SWI、Prefetch Abort、Data Abort、Reserved、IRQ、FIQ
ARM 11/Cortex:64个入口,VIC
中断服务程序首址可由软件设置,需要根据中断类型号查找中断向量表获得对应的中断服务程序首址或第一条指令,然后自动跳转到对应的中断服务程序
中断响应
影响中断响应的主要因素
最长指令执行时间
文档评论(0)