stm32资料分析和总结.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STM32(Cortex-M3) 中 NVIC(嵌套向量中断控制 ) 的理解 一、 STM32 (Cortex-M3) 中的优先级概念 STM32(Cortex-M3) 中有两个优先级的概念:抢占式优先级和响应优先级, 也把响应优先级称作“亚优先级”或“副优先级”, 每个中断源都需要被指定这 两种优先级。 1. 何为占先式优先级 (pre-emption priority) 高占先式优先级的中断事件会打断当前的主程序 / 中断程序运行—抢断式 优先响应,俗称中断嵌套。 2. 何为副优先级 (subpriority) 在占先式优先级相同的情况下,高副优先级的中断优先被响应; 在占先式优先级相同的情况下,如果有低副优先级中断正在执行, 高副 优先级的中断要等待已被响应的低副优先级中断执行结束后才能得到响应—非 抢断式响应 ( 不能嵌套 ) 。 3. 判断中断是否会被响应的依据 首先是占先式优先级,其次是副优先级; 占先式优先级决定是否会有中断嵌套; Reset 、NMI、Hard Fault 优先级为负 ( 高于普通中断优先级 ) 且不可调整。 4. 优先级冲突的处理 具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程 中被响应, 即中断的嵌套, 或者说高抢占式优先级的中断可以嵌套低抢占式优先 级的中断。 当两个中断源的抢占式优先级相同时, 这两个中断将没有嵌套关系, 当一 个中断到来后, 如果正在处理另一个中断, 这个后到来的中断就要等到前一个中 断处理完之后才能被处理。 如果这两个中断同时到达, 则中断控制器根据他们的 响应优先级高低来决定先处理哪一个; 如果他们的抢占式优先级和响应优先级都 相等,则根据他们在中断表中的排位顺序决定先处理哪一个。 5. Cortex-M3 中对中断优先级的定义 既然每个中断源都需要被指定这两种优先级, 就需要有相应的寄存器位记 录每个中断的优先级; 在 Cortex-M3 中定义了 8 个比特位用于设置中断源的优先 级,这 8 个比特位可以有 8 种分配方式,如下: 所有 8 位用于指定响应优先级 最高 1 位用于指定抢占式优先级,最低 7 位用于指定响应优先级 最高 2 位用于指定抢占式优先级,最低 6 位用于指定响应优先级 最高 3 位用于指定抢占式优先级,最低 5 位用于指定响应优先级 最高 4 位用于指定抢占式优先级,最低 4 位用于指定响应优先级 最高 5 位用于指定抢占式优先级,最低 3 位用于指定响应优先级 最高 6 位用于指定抢占式优先级,最低 2 位用于指定响应优先级 最高 7 位用于指定抢占式优先级,最低 1 位用于指定响应优先级 这就是优先级分组的概念。 6. stm32 中对中断优先级的定义 Cortex-M3 允许具有较少中断源时使用较少的寄存器位指定中断源的优 先级,因此 STM32把指定中断优先级的寄存器位减少到 4 位,这 4 个寄存器位的 分组方式如下: 第 0 组:所有 4 位用于指定响应优先级 第 1 组:最高 1 位用于指定抢占式优先级,最低 3 位用于指定响应优先级 第 2 组:最高 2 位用于指定抢占式优先级,最低 2 位用于指定响应优先级 第 3 组:最高 3 位用于指定抢占式优先级,最低 1 位用于指定响应优先级 第 4 组:所有 4 位用于指定抢占式优先级 中断优先级分组是为了给抢占式优先级和响应优先级在中断优先级寄存器的高 四位分配各个优先级数字所占的位数

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

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

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档