全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在我们嵌入式工程应用中,中断作为最常用的异步手段是必不可少的,而且在一个应用程序中,一个中断往往是不够用的,多个中断混合使用甚至多级中断嵌套也经常会使用到,而这样就涉及到一个中断优先级的问题。 以我们最熟悉的Cortex-M系列为例,我们知道ARM从Cortex-M系列开始引入了NVIC的概念(Nested Vectors Interrupts Controller),即嵌套向量中断控制器,以它为核心通过一张中断向量表来控制系统中断功能,NVIC可以提供以下几个功能:1)可嵌套中断支持;2)向量中断支持;3)动态优先级调整支持;4)中断可屏蔽。 抛开其他不谈,这里我们只说说中断优先级的问题。我们知道NVIC的核心工作原理即是对一张中断向量表的维护上,其中M4最多支持240+16个中断向量,M0+则最多支持32+16个中断向量,而这些中断向量默认的优先级则是向量号越小的优先级越高,即从小到大,优先级是递减的。但是我们肯定不会满足于默认的状态(人往往不满足于约束,换句俗话说就是不喜欢按套路出牌,呵呵),而NVIC则恰恰提供了这种灵活性,即支持动态优先级调整,无论是M0+还是M4除了3个中断向量之外(复位、NMI和HardFault,他们的中断优先级为负数,它们3个的优先级是最高的且不可更改),其他中断向量都是可以动态调整的。 不过需要注意的是,中断向量表的前16个为内核级中断,之后的为外部中断,而内核级中断和外部中断的优先级则是由两套不同的寄存器组来控制的,其中内核级中断由SCB_SHPRx寄存器来控制(M0+为SCB_SHPR2:3,M4为SCB_SHPR1:3),外部中断则由NVIC_IPRx来控制(M0+为NVIC_IPR0:7,M4为NVIC_IPR0:59),如下图所示:M0+中断优先级寄存器:M4中断优先级寄存器:其中M4所支持的动态优先级范围为015(8位中只有高四位7:4才有效),而M0+所支持的动态优先级范围则为03(8位中只有高两位7:6才有效),而且秉承着号越小优先级越高的原则(0最高,15或3为最小),同时也间接解释了为什么复位(-3)、NMI(-2)和HardFault(-1)优先级最高的原因,很简单,人家都是负的了,谁还能比他们高,呵呵,而且这三位中复位优先级最高,NMI其次,HardFault最低(这个最低仅限于这三者)。下面给出个ARM CMSIS库中关于M0+和M4中断优先级设置的API函数NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)实现供大家来参考:M0+:NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) if(IRQn SHP_SHP_IDX(IRQn) = (SCB-SHP_SHP_IDX(IRQn) & (0xFF _BIT_SHIFT(IRQn) | (priority (8 - _NVIC_PRIO_BITS) & 0xFF) IP_IP_IDX(IRQn) = (NVIC-IP_IP_IDX(IRQn) & (0xFF _BIT_SHIFT(IRQn) | (priority (8 - _NVIC_PRIO_BITS) & 0xFF) _BIT_SHIFT(IRQn); /* set Priority for device specific Interrupts */M4:void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) if(IRQn SHP(uint32_t)(IRQn) & 0xF)-4 = (priority IP(uint32_t)(IRQn) = (priorit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 员工培训与技能提升标准化手册
- 公共卫生事件应急预案与处置指南(标准版)
- 未来的科技生活展望想象作文9篇范文
- 2026年深圳海外装饰工程有限公司招聘备考题库带答案详解
- 2025中国水电工程顾问集团有限公司中南分公司招聘5人笔试历年参考题库附带答案详解
- 头发护理课程表格页
- 2026国家开发银行秋招发布笔试历年典型考题及考点剖析附带答案详解
- 2026年陕西师范大学吴堡实验学校教师招聘备考题库及参考答案详解
- 2026年漯河工业单招职业测试题及核心答案
- 2026年光学工程核心内容模拟考试题库含答案
- 生蚝课件教学课件
- 2025年及未来5年市场数据中国机电安装工程市场调查研究及行业投资潜力预测报告
- 2025年度运营数据支及决策对工作总结
- 2025年湖南省公务员录用考试《申论》真题(县乡卷)及答案解析
- kv高压线防护施工方案
- 住建局执法证考试题库及答案2025
- 主管护师聘任述职报告
- AI搜索时代:从GEO到AIBE的品牌新蓝图
- TSGT5002-2025电梯维护保养规则
- 粉尘清扫安全管理制度完整版
- 云南省2025年高二上学期普通高中学业水平合格性考试《信息技术》试卷(解析版)
评论
0/150
提交评论