第六章嵌套向量中断-课件(PPT-精).ppt

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

嵌套向量中断 中断的概念 CPU正在执行程序时,单片机外部或内部发生的某一事件,请求CPU迅速去处理。 CPU暂时中止当前的工作,转到中断服务处理程序处理所发生的事件。 处理完该事件后,再回到原来被中止的地方,继续原来的工作,这称为中断。 CPU处理事件的过程,称为CPU的中断响应过程。 能够实现中断处理功能的部件称为中断系统 能实现中断响应、中断处理(服务)、中断返回和中断屏蔽。这是中断系统最基本的功能。 能实现中断优先级管理。即当有多个中断源同时申请中断时,CPU能够优先响应最紧急的中断申请。 能实现中断嵌套。即当CPU正在为优先级较低的中断源服务时,具有较高优先级的中断源提出中断申请,此时中断系统应当允许较高优先级的中断源中断较低优先级的中断源,待较高优先级的中断处理完成后,再接着处理较低优先级的中断。这种中断服务程序再被中断的过程称为中断嵌套。一般的中断系统应能够处理多级中断嵌套 产生中断的请求源称为中断请求源。 常见的中断源有: 一般的I/O设备,如键盘、打印设备。 数据通道中断源,如AD等。 实时时钟。 故障源 中断源向CPU提出的处理请求,称为中断请求(或中断申请)。 进入中断→保护现场→中断处理恢复现场 →中断返回 首先,CPU应收到一个可靠的中断请求信号,且该中断请求信号应一直保持到它被响应为止。如果中断请求信号中途撤销,则CPU将不再响应。 其次,在中断请求的同时,没有更高级的请求信号发生。如果它们同时发生,CPU将先处理优先级别较高的请求。 第三,CPU内部应处在开中断(允许中断)状态。 第四,CPU至少要在当前指令执行完成时才可能响应中断。 异常/中断 系统异常是Cortex-M3内核自带的一些异常,比如复位、总线Fault和SysTick等等 外设中断是指制造CPU的厂家加入的,比如串口、定时器中断等等 异常和中断都可以“中断”正常执行的代码流 区别在于: 异常是Cortex-M3内核产生的“中断”信号,在执行指令或访问存储器时产生的,对Cortex-M3 内核来说是“同步”的 而中断是Cortex-M3内核外部(片上外设或外部中断信号)产生的“中断”信号中断请求信号一般来自内核的外部——片上外设或外扩的设备等,对Cortex-M3 内核来说是“异步”的。 NVIC(Nested Vectored Interrupt Controller) Cortex-M3 处理器在内核水平上搭载了一个中断控制器——嵌套向量中断控制器 NVIC 功能: 1. 可嵌套中断支持 所有异常都可被赋予不同的优先级,当前异常的优先级被存储在特殊功能寄存器PSRs的专用字段中,当一个新的异常发生时,硬件会自动进行优先级比较,若发现最新异常的优先级较高,处理器则会中断当前的服务例程(或者是普通程序),而响应新来的异常——即抢占了低优先级异常。 NVIC 功能 2.向量中断支持 当开始响应一个中断后,Cortex-M3 会自动定位一张向量表,根据中断号从表中找出相应中断的入口地址,然后跳转过去执行 3.动态优先级调整支持 优先级在中断运行期间可以通过软件进行修改。在中断服务例程执行完成前,中断是被锁定的,无法进行深度激活,避免了意外重入的风险。 4.中断延迟大大缩短 Cortex-M3 为了缩短中断延迟,引入了多个新特性。包括中断现场的自动保护与恢复,“咬尾中断”和“晚到中断”机制的支持 5 中断可屏蔽 通过设置BASEPRI、PRIMASK 和FAULTMASK 等寄存器, 既可屏蔽优先级低于某个阈值的中断,也可以屏蔽所有中断,保证时间关键的任务能在最后期限前完成。 异常类型 Cortex-M3 在内核水平上搭载了一个异常响应系统,支持11 种系统异常和240 个外部中断输入,如表2.9 所列。其中,编号1~15 对应的是系统异常,大于等于16 的则全是外部中断。除了个别异常有固定的优先级外,其它异常的优先级都是可编程的。系统异常和外部中断通过不同的寄存器组进行控制。 系统异常是Cortex-M3 内核支持的基本异常,与具体的芯片无关,而外部中断则是与芯片相关的,芯片厂商会根据需要和用途设计中断源数目(1-240)和优先级的位数。LPC1700 系列Cortex-M3 支持35 个外部中断和32 个中断优先级。 异常向量表 当有中断发生并得到响应时,处理器首先将定位其中断服务函数的入口地址,以便进行相应的处理。中断向量即是指中断服务程序的入口地址,在Cortex-M3 中,规定内存储器的最低一部分区域用来存放中断向量(共256 个),称这一片内存区为向量表。缺省情况下,Cortex-M3中的向量表位于Flash 空间的零地址处,表中每个向量占用4 个字节 中断的具体行为 一个

文档评论(0)

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

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

1亿VIP精品文档

相关文档