微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32中断优先级分组

STM32中断优先级分组

时间:11-28 来源:互联网 点击:
Cortex-M3的中断优先级分组方式最多可以有有8种,因为CM3强制规定:SubPriority至少要占一个位(如果没有该强制规定,那么CM3分组方式最多有9种)。

我们知道:STM32把指定中断优先级的寄存器的MSB4位有效,共有以下5种分组方式:
第0组方式:所有4位用于响应优先级
第1组方式:最高1位用于抢占式优先级,最低3位用于响应优先级
第2组方式:最高2位用于抢占式优先级,最低2位用于响应优先级
第3组方式:最高3位用于抢占式优先级,最低1位用于响应优先级
第4组方式:所有4位用于抢占式优先级

在MISC.H里面有:

#define NVIC_PriorityGroup_0((uint32_t)0x700)
#define NVIC_PriorityGroup_1((uint32_t)0x600)
#define NVIC_PriorityGroup_2((uint32_t)0x500)
#define NVIC_PriorityGroup_3((uint32_t)0x400)
#define NVIC_PriorityGroup_4((uint32_t)0x300)

我们发现:第4组方式是“所有4位用于抢占式优先级”,那么这是不是与"SubPriority至少要占一个位"相冲突呢?

答案:当然不冲突了!因为虽然STM32的"优先级配置寄存器"没有使用bit3、bit2、bit1、bit0,但是却允许从它们中分组(分组位置由应用程序中断及复位控制寄存器(AIRCR)的[10:8]决定)。

=========================

第0组采用的分组方式是

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

第1组采用的分组方式是

bit7bit6 bit5 bit4 bit3 bit2 bit1 bit0

第2组采用的分组方式是

bit7 bit6bit5 bit4 bit3 bit2 bit1 bit0

第3组采用的分组方式是

bit7 bit6 bit5bit4 bit3 bit2 bit1 bit0

第4组采用的分组方式是

bit7 bit6 bit5 bit4bit3 bit2 bit1 bit0

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top