打印
[其他ST产品]

STM32的中断优先级说明(抢占式与响应式优先级)

[复制链接]
804|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
注:查看寄存器请看《ARM Cortex-M4权威指南》,由于本人采用库开发,所以就不深究寄存器了。总结资料来源于原子的《STM32F4库开发指南》,总结于此,方便查找。

        STM32F4 的中断分组:STM32F4 将中断分为 5 个组,组 0~4。该分组的设置是由 SCB->AIRCR 寄存器的 bit10~8 来定义的。如下图:


使用特权

评论回复
沙发
纠结的那些年|  楼主 | 2022-11-17 14:45 | 只看该作者
通过这个表,我们就可以清楚的看到组 0~4 对应的配置关系,例如组设置为 3,那么此时所有的 82 个中断,每个中断的中断优先寄存器的高四位中的最高 3 位是抢占优先级,低 1 位是响应优先级。每个中断,你可以设置抢占优先级为 0~7,响应优先级为 1 或 0。

        抢占优先级的级别高于响应优先级。而数值越小所代表的优先级就越高。

      高的抢占式优先级可以打断低的抢占式优先级,故名抢占;而在抢占式优先级相同的情况下,响应优先级越高,同时发生则先响应它,但是不能打断低响应优先级,响应表达的是响应速度。

      

使用特权

评论回复
板凳
纠结的那些年|  楼主 | 2022-11-17 14:47 | 只看该作者
       在解释一下这里的两点:第一,如果两个中断的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行;第二,高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。而抢占优先级相同的中断,高优先级的响应优先级不可以打断低响应优先级的中断。

使用特权

评论回复
地板
纠结的那些年|  楼主 | 2022-11-17 14:49 | 只看该作者
结合实例说明一下:假定设置中断优先级组为 2,然后设置中断 3(RTC_WKUP 中断)的抢占优先级为 2,响应优先级为 1。中断 6(外部中断 0)的抢占优先级为 3,响应优先级为 0。中断 7(外部中断 1)的抢占优先级为 2,响应优先级为 0。那么这 3 个中断的优先级顺序为:中断 7>中断 3>中断 6。

使用特权

评论回复
5
OKAKAKO| | 2024-6-25 15:35 | 只看该作者
ST的抢占式非常适用不同等级的中断

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

43

主题

675

帖子

0

粉丝