_中断的并发、嵌套与优先级.ppt

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

********感谢聆听:等线72加粗文字阴影欢迎你:等线24不加粗校训:等线32号加粗文字阴影*务本崇实修德精业目录Content01020304湖南生物机电职业技术学院欢迎你!感谢聆听务本崇实修德精业目录Content《单片机技术应用》模块三单元一中断的并发、嵌套与优先级知识点1:中断的并发、嵌套与优先级机电工程学院中断的并发、嵌套与优先级单个中断的响应过程 有些中断是应用程序通过API有意发起的,如:软中断、串口的发送中断,发起后CPU将跳转到相关中断服务程序中运行;更多的中断不是应用程序直接发起的,而是人机接口、某些模块或外部设备触发的。中断触发后,CPU一旦执行完当前的机器指令,就开始从软硬件上响应该中断。 先是硬件上的响应(由ARM内核自动完成): 1.保存断点地址到专用的断点寄存器中。 2.保存CPU的断点状态到专用的状态备份寄存器中。 3.切换到中断模式;对于IRQ、FIQ来说,还要关闭相应IRQ或FIQ总中断控制位(位于状态寄存器中)。 4.固定地跳转到相应的中断服务程序首句。中断的并发、嵌套与优先级 之前总结了第一层次上ARM共有7类中断,“固定地”意味着每类中断都规定着一个唯一的中断服务程序首句地址,不可由软件来重设置和更改,该地址上只能存放相应中断服务程序的首个语句,不能作其它任何用途。这一点是ARMCPU的特有固定规则。中断的并发、嵌套与优先级 可见,中断向量表是从0地址开始顺序存放的,有7个可用的,另外1个保留未用的。 特别提请注意和区别,ARM的中断向量表中不像其他CPU那样是存放中断服务程序的入口地址,而是存放的语句;由于对每个中断均只有一个语句的空间,不可能把中断服务程序的整体放进来,故存放的语句只能是跳转语句。例如,复位中断对应的汇编语句为:LDRPC,ResetHandler这句话等同于C语言中的:ResetHandler();其中,ResetHandler()是复位中断的服务函数名中断的并发、嵌套与优先级 接着,软件上的响应即是中断服务程序的执行过程,一般有如下内容: 1.对于IRQ来说,打开相应IRQ总中断控制位(位于状态寄存器中),便于更高子优先级的IRQ中断能被响应。对于FIQ来说,在该服务期间相应FIQ总中断控制位一直处于关闭状态、不会打开。 2.执行数据的搬移,操作对象为:数据缓冲区、模块寄存器等。 3.对于IRQ和FIQ来说,响应和确认中断,以便从中断控制器中解除该中断的挂置(Pending)状态、确定本次中断服务结束。 4.从中断服务中跳回到断点。对于FIQ来说,相应FIQ总中断控制位会同时被复原和打开。中断的并发、嵌套与优先级并发中断的响应 对于任何CPU来说,可以执行的最小指令单位是一条机器指令,机器指令好比一个原子,不可再切分,即使中断也无法切分它。 这意味着,中断可以切割和打断一个进程的执行、一个函数的执行、一条高级语言语句的执行,但是,当一条机器码正在执行时,中断也只能眼睁睁地等着它执行完毕后才能被响应。 在CPU执行一条机器码的期间,也许有两个中断源先后(例如相差0.5个纳秒)触发了中断,我们认为这样的两个中断源相对于一个机器指令的整体来说是并发的。 ARM规定,对并发的中断先响应固定级别更高的中断。以下是ARM规定的优先响应级别(从高到低排列):中断的并发、嵌套与优先级这里,7种中断只有6个优先级,是因为未定义中断和软中断是不会同时发生的中断。中断的并发、嵌套与优先级中断的抢占与嵌套 当一个中断正在响应尚未结束时,另一个中断是否可被响应?注意,这里仅从第一层为着眼点来考虑。 有如下两种情况需要考虑: 不同中断源 一个中断正响应时,另一不同的中断是否可被响应? 一个中断响应时,另一更高优先级的中断会被响应,而同等和更低优先级的中断不会被响应。中断的并发、嵌套与优先级同一中断源 一个中断正响应时,同一中断是否可再被响应?对于7种中断中除IRQ和FIQ之外的其它5种中断,正响应时,同一中断源不会再引起触发。对于IRQ,由于它包含32个通道的子中断请求、且这些子中断也有优先级,故在相应IRQ总中断控制位被开启后,更高优先级的子中断会被响应、同等和更低的不会被响

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档