历史上的今天
返回首页

历史上的今天

今天是:2025年03月08日(星期六)

2019年03月08日 | STM32之中断嵌套控制器

2019-03-08 来源:eefocus

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位用于指定抢占式优先级

推荐阅读

史海拾趣

Dionics Inc公司的发展小趣事

为了进一步拓展国际市场,Dionics Inc开始寻求与国际知名企业的战略合作。经过多次洽谈,公司最终与一家国际知名电子企业达成战略合作协议,共同开发新一代智能穿戴设备。通过这一合作,Dionics Inc不仅获得了宝贵的技术支持和市场资源,还成功将其产品推向了国际市场。

Crowd Supply公司的发展小趣事

Crowd Supply的创立源于几位麻省理工大学的毕业生对于硬件创新的热情与追求。他们意识到,许多优秀的硬件项目因缺乏资金和市场渠道而无法实现商业化。于是,他们决定创建一个平台,专门服务于这些创新项目,帮助它们从原型设计走向市场。这就是Crowd Supply的初心,也是其使命所在——将原创、有用、受人尊敬的硬件带入生活。

EF Johnson Technologies Inc公司的发展小趣事

在电子通信技术的浪潮中,EF Johnson Technologies Inc公司凭借其卓越的研发团队,成功开发出一款新型无线通信设备,该设备在信号稳定性和传输距离上均取得了重大突破。这一技术突破不仅让EF Johnson在市场上获得了显著的竞争优势,也推动了整个行业的技术进步。随着产品的广泛应用,EF Johnson逐渐确立了其在无线通信领域的领先地位。

GS Yuasa Battery Sales UK Ltd.公司的发展小趣事

在电子行业中,技术创新是企业持续发展的关键。EF Johnson公司深知这一点,始终将研发作为公司发展的核心驱动力。公司不断加大对研发的投入,积极引进高端人才,并与高校和研究机构建立紧密的合作关系。这些举措让EF Johnson在技术上始终保持领先地位,不断推出具有竞争力的新产品和解决方案。

ETA Electric Industry Co Ltd公司的发展小趣事

近年来,ETA Electric Industry Co Ltd积极响应全球环保倡议,致力于实现可持续发展。他们优化了生产流程,减少了废弃物和污染物的排放。同时,公司还加大了对环保型电子元器件的研发力度,推出了一系列节能、环保的新产品。这些举措不仅提升了公司的社会形象,也为其在激烈的市场竞争中增添了新的优势。

上述五个故事,讲述了ETA Electric Industry Co Ltd在电子行业的发展历程。从起步之初的艰难,到技术创新的突破,再到市场拓展和质量管理的成功,最后到对环保和可持续发展的追求,每一步都体现了公司的成长和进步。

EOREX公司的发展小趣事

在电子产品质量参差不齐的市场环境下,EOREX公司始终坚持品质至上的原则。他们严格把控生产过程中的每一个环节,确保产品的质量和性能达到最高标准。同时,EOREX还建立了完善的售后服务体系,为客户提供及时、专业的技术支持和解决方案。这些举措使得EOREX的产品在市场上赢得了良好的口碑和信赖度,为公司的发展奠定了坚实的基础。

问答坊 | AI 解惑

如何在火线零线间点亮发光二级管?

火线、零线两之间,我用一只红色发光二极管串接一个100K电阻并在火线零线之间后,发光二极管正常工作; 可是我用一蓝色发光二极管串接一个100K电阻并在火线零线之间后,为什么就不能正常工作了呢? 着急啊?请教各位大侠,用蓝灯如何接才能正常、 ...…

查看全部问答>

全球最古怪的“双面”车

据金鹰网报道 现年39岁的Vasyl Lazarenko是一位来自乌克兰西部的工匠。由于女友非常喜欢坐敞篷车去兜风,而他自己又觉得硬顶车篷很实用,于是突发奇想,决定自己打造一款世界上独一无二的“双面车”。 这辆车的左边是现代轿车的造型,而右边则 ...…

查看全部问答>

请教 华为 和 ST-Ericsson 这两个公司哪个好点啊?

请教各位前辈:     我刚刚走出校门,不清楚每个公司情况     请问做研发的话(底层驱动)     华为 和 ST-Ericsson(T3G) 这两个公司哪个好点啊?…

查看全部问答>

PCB制板说明-2010

PCB厂 发过来的制板说明 ,里面是他们关注的参数,大家可参考下。…

查看全部问答>

DEC2812与凌华CAN接口卡7841的通信

我用两根线将DEC2812的CAN接口与凌华CAN接口卡相连。两者都设置成1M波特率。 但是2812总是信息发送不出去,相应的CANTA位总不能置位。 但是,单独DEC2812自测试模式下工作正常,单独凌华接口卡CAN自己通信(双口)也正常。 请问是什么原因,应该 ...…

查看全部问答>

鑫海金工实习报告

答应过大家的要把我的实习报告给大家看看,索性传上来了嘿嘿 下面是封皮 [ 本帖最后由 鑫海宝贝 于 2011-4-13 21:17 编辑 ]…

查看全部问答>

我的24lc01的程序

我使用的是msp430f169。在SCL和SDA上加10K上拉电阻。 A2=A1=A0=0; SCL = BIT4; SDA = SDA; 本程序已经条是通过了。多谢在此过程中指教的各位。 #include "msp430x16x.h" unsigned int adjg; unsigned char ack,ctlbyte; void ysh(unsig ...…

查看全部问答>

端口没有反应

小弟近日用如下程序测试我的MSP430F149做的一个板子,本来应该输出一个方波,但是没有反应。请各位高手帮看看! #include <msp430x14x.h> void main( void ) { WDTCTL = WDTPW+WDTHOLD; P4DIR |= 0x02; for(;;) { ...…

查看全部问答>

关于MBI5024使用中的问题

不知道大家谁使用过MBI5024,使用的时候出现了什么问题?大家一起来讨论一下吧…

查看全部问答>