如果cpu没有中断,你能想象是什么情况吗? 就是一个while循环,且不能中断处理及时的任务,更别说有现在的rtos了(rtos也是需要中断才能实现)。 下面就来说说关于cortex-m中断在rtos应用及注意事项。
关于cortex-m处理器
这里先介绍一点cortex-m处理器相关的内容,本文结合内核为cortex-m3的stm32来讲述。
stm32属于arm中cortex-m系列处理器,比如:stm32f1数据cortex-m3,stm32f7数据cortex-m7。
可以参看我之前分享文章《从cortex-m到cortex-a认识arm处理器》,了解一下关于arm处理器的种类。 本文主要结合cortex-m3下面stm32f1系列处理器为例来讲述中断控制相关内容。而cortex-m其它系列,或者说stm32其它系列关于中断的内容类似。
cortex-m3只是stm32f1的一个内核。反过来说stm32f1是在cortex-m3基础上增加了一些外设(如:usart、ad等)的芯片。
cortex-m中断控制
nvic:nested vectored interrupt controller,即嵌套向量中断控制器。
stm32中nvic我们比较熟悉,编程的时候使用中断都会对nvic进行配置。 而stm32f1中的nvic是属于cortex-m3中的一部分,而不是stm32增加的外设。 nvic向量中断控制器是cortex‐m3不可分离的一部分,它与 cm3 内核的逻辑紧密耦合,有一部分甚至水乳交融在一起。 所以,nvic相关的寄存器位于cortex-m手册中。讲述stm32的中断控制,还得从cortex-m3的nvic讲起, 1.中断输入向量表 cortex-m3的nvic支持1至240个中断输入,比如stm32中xxxirqs,也就是中断向量表,具体的数值由芯片厂商在设计芯片时决定。 比如stm32f1的中断和异常向量表:
2.中断和异常区别
很多初学的朋友不知道什么是中断?什么是异常?甚至有人直接把中断和异常笼统称为“中断”。 中断和异常其实有差异,也有关联,我们常说的中断其实是包含了异常。异常可以理解为mcu,或者程序处于了某种异常状态。 这么区分吧,看上面向量表,上部分有灰色背景的为异常,下部分白色的为中断。
异常属于cortex‐m3内核的一部分,而中断属于mcu(stm32)的一部分(由厂家决定)。 所以: 1.站在cortex‐m3内核角度,像stm32中usart这类中断,属于外部中断。 2.站在stm32角度,exti外部引脚中断才属于中断。 3.优先级 对于cortex-m3来说,每个外部中断都有一个对应的优先级寄存器。 每个寄存器占用8位,但是允许最少只使用最高3位,在stm32f1中使用了高4位。(也就是我们可以分16个优先级) 优先级可以被分为高低两个位段,分别是抢占优先级和亚(响应)优先级。
提示: 1.stm32中断优先级数值越小,优先级越大。 2.优先级分组:cortex-m3,m4具有分组功能,即存在抢占优先级和响应优先级,如下图:
而有的内核就没有,如cortex-m0就没有。 3.参考资料 可以参看《cortex-m3权威指南》 stm32的内核编程手册: http://www.st.com/stonline/products/literature/pm/15491.pdf
rtos中断优先级配置
本节内容讲述一下freertos最大中断优先级配置问题,也就是freertosconfig.h配置文件中的:
configmax_syscall_interrupt_priority
你们知道配置数值的含义吗?这里就需要结合nvic相关的内容来理解。 上面说了,在stm32中,使用了nvic优先级的高4位,而我们配置时需要对高4位进行配置(低4位未使用)。
看上图,明白了吗,上面这个数值就是95,但代表的优先级为5。 这个配置数值的含义,大概意思是:你代码中使用的中断(比如usart1_irqn)优先级需要大于5才可行。 如下面配置,优先级为2就不行(当然,有分组的还牵涉到分组问题)。
关于freertos最大优先级配置的内容可以参考: https://www.freertos.org/rtos-cortex-m3-m4.html 最后再次提示: freertos任务优先级是数值越大,优先级越高,需要和cm3中断优先级区分开来。
介质滤波器是什么材质做的_介质滤波器结构
Cortex-M0中断向量重定位的高效方法
源创通信SinoV-MIDSPAN-16-G-AT中跨设备介绍
不同仪表类型的安装方式有哪些
AR智能眼镜设计方案:AR眼镜芯片平台、光学方案
Cortex-M的RTOS中断优先级配置方案
什么是加密货币银行World Bit Bank
IBM沈丽琴:用开放的心态拥抱多元化,感受一个更多彩的世界
趁着第三代半导体的东风,紫外LED要做弄潮儿
内部人士:很多华为员工想去荣耀
人像拍摄为何如此火爆,徕卡镜头给你答案
为什么云服务的门槛越来越高
软件工程师应该怎样培养
随着量子纠缠的发展,或将促使瞬间移动成真
关键系统中的COTS软件:自由许可开源软件的案例
熊蓉在机器人方面硕果累累 “绝影”机器人已具备上下台阶的能力
OnePlus Nord即将推出AMOLED显示屏,将可能配置90Hz面板
任正非:华为有意向出售5G技术制造一个未来能跟华为分庭抗礼的对手
李秀川与中国移动彼此陪伴的这20载时光
魅族新机曝光:超声波指纹+MBack多级操作!