STM32单片机中抢占优先级和响应优先级的表达方式解析

发布时间:2024-06-06  

NVIC: Nested vectored interrupt controller, 嵌套中断向量控制器。

中断与异常:

所有能打断正常执行流的事件都称为异常。 异常与中断的区别在于, 中断请求是来自于Cortex内核外部, 比如各种片上外设, 外部中断请求等, 它们对于内核是”异步”的; 而异常则是由于Cortex内核在执行指令或者访问存储等操作时所产生的, 对于Cortex内核来说是属于”同步”的(可以参见Cortex M3权威指南), 异常和中断一般可以不加区分的使用。

Cortex内核可以支持多达240个外部中断, 编号16 – 255. 编号1 – 15的为系统异常, 编号0未被使用。

Cortex支行中断嵌套, 允许高优先级的中断抢占低优先级的中断。 Cortex M3/M4可支行多达256级的可编程优先级和128级的抢占, 但有3个系统异常优先级固定, 并且优先级为负数, 高于其它任何异常, 这三个异常分依次为 复位, NMI, Hard Fault.

NMI是Non-Maskable Interrupt(不可屏蔽中断)缩写, 在STM32F4中, NMI被连接到时钟安全系统CCS(Clock security system)异常上。

Hard Fault是总线fault, 存储管理fault, 用法fault所产生的结果, 详细信息可以参考Cortex M3权威指南。

优先级寄存器

如上所述, Cortex M3/M4支行多达256级的可编程优先级和128级抢占, 每个中断使用一个8位的寄存来配置优先级。 但实际一款芯片会根据情况做适当的精简, 裁剪掉表达优先级的几个低端有效位, 以减少优先级的级数。但是不管使用多少位来表达优先级, 都是以MSB对齐的, 这主要是为了避免程序在不同器件之间移植时不会出现优先级顺序的更改。

抢占优先级和响应优先级

响应优先级也叫做 亚优先级 或者 子优先级, 每一个中断都有这两种优先级属性。 当一个低优先级的中断正在执行时, 如果有更高优先级的中断请求, 系统将会响应这个中断, 即发生中断嵌套。

如果两个中断的优先级相同, 则后来的中断要等到先来的中断执行完毕后才会被响应。 但是如果两个中断同时到达(或者都在挂起状态), NVIC会根据它们响应优先级的高低来决定响应那一个。

如果它的的响应优先级也相同, 那么NVIC会根据它们在中断向量表中的排序先后来决定先响应那一个。

在STM32中使用了4bit来表达抢占优先级和响应优先级, 有以下5种分组方式:

STM32单片机中抢占优先级和响应优先级的表达方式解析

可见STM32一共提供了16级中断优先级.


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>