cortex-m3内核中断

m3内核中有一个R/W“中断寄存器阵列”,该阵列记录了外部从0到239个中断的名字PRI_0-239,中断寄存器地址,中断的优先级(8位,stm32用了其中的高4位,复位之后是0)。如下:cortex-m3内核中断
另外还有一个应用中断控制与复位寄存器R/W“aircr”,这里面记录了优先级分组方法[10:8],对应着前面阵列寄存器的8位优先级大小分配方式。
[10:8]:有八种值,对应阵列寄存器[7:0]的分配方式。

[10:8]={0,1,2,3,4,5,6,7}:8种分配方式

[7:0]=假如
方法0: 无抢占优先级 ,7:0全部表示子优先级
方法1:第0位表示抢占,。 则第7:1位表示子优先级
方法2:第1:0表示抢占。 ,则第7:2表示子优先级
.
.
方法7:第6:0表示抢占优先级,则第7表示子优先级
方法8:7:0全部表示抢占 无子优先级

stm里面只用到7:4位,五种方法;则
方法0:无抢占。 第7:4全部表示子
方法1:第4位表示抢占,第7:5表示子优先级
方法2:第5:4表示抢占, 第7:6子
方法3: 6:4抢占,。 第7表示子
方法4:7:4全部表示抢占。 无子优先级

复位阵列寄存器10:8位0,则表示分组方式是:
方法0:0抢占,7:4全部位子优先级(0-0xFF16个优先级)

比如,[10:8]=1,表示阵列寄存器中[7:0]中的高4位有效位[7:6:5:4]中的是以一位表示子优先级数目(一位可以表示2种优先级),另外三位表示抢占优先级数目(三位可以表示8种抢占优先级)。
cortex-m3内核中断