STM32/STM8技术论坛
直播中

张婷婷

7年用户 179经验值
私信 关注
[问答]

请问如何在keil中观测各中断的优先级顺序

[tr]各位前辈,我设置了个中断的优先级,想在KEIL中观测程序运行后,各中断优先级的顺序,如何查看?是在Peripherals中的NVIC窗口中看吗??其中的   E   P   A   Priority各代表什么意思呢??谢谢
[/tr]


回帖(7)

张倩

2018-10-25 08:39:55
引用: naiztycheng 发表于 2018-10-25 12:44


creep大神也但是优先级怎么还有208.这是甚意思



1、首先STM32的优先级只使用8个bit中的高4bit来表达中断源优先级,低四个bit总是为0.类似如下(下面的情况使用了高3个bit):


2、其次是中断优先级进行了分组:


3、假设我们使用优先级组2话那就是2个bit的抢占优先级和2个bit的相应优先级,同时我们设置抢占优先级为3,响应优先级为1。
     也就是对应的优先级寄存器Bit7为1,Bit6为1,Bit5为0,Bit4为1 ,bit3到bit0默认为0,那么中断源优先级的值就是208(1101 0000)
然后将这个值写到对应中断源的寄存器中:

具体的参考《CM3权威指南》异常和中断控制部分:

以及内核编程手册NVIC寄存器部分:
举报

张倩

2018-10-25 08:46:14
E表示 enable    使能中断
P表示 pending 有中断挂起
A表示active     有中断激活
Priority    中断优先级

猜的,不一定对
举报

李开心

2018-10-25 08:57:04
creep大神也但是优先级怎么还有208.这是甚意思
举报

朱梁贡

2018-10-25 09:12:56
应该无法观测吧。还是看代码推算。
举报

李开心

2018-10-25 09:34:15
引用: 亲爱的娜娜 发表于 2018-10-25 13:11
本帖最后由 creep 于 2016-2-27 11:53 编辑

1、首先STM32的优先级只使用8个bit中的高4bit来表达中断源优先级,低四个bit总是为0.类似如下(下面的情况使用了高3个bit):

谢谢了。我知道有主优先级和sub-priority但是不确定208(0xD0)到底是几位子优先级,几位是主优先级。
此外还应看到的是,小于0的优先级是内核使用的优先级。所以那张图片的细节还是蛮多的。

再次谢谢
举报

张倩

2018-10-25 09:39:51
引用: naiztycheng 发表于 2018-10-25 13:21
谢谢了。我知道有主优先级和sub-priority但是不确定208(0xD0)到底是几位子优先级,几位是主优先级。
此外还应看到的是,小于0的优先级是内核使用的优先级。所以那张图片的细节还是蛮多的。

优先级分组可以从下面的红框中看出,应该是优先级分组2,2个bit的主优先级2个bit的子优先级。
举报

李开心

2018-10-25 09:57:09
引用: 亲爱的娜娜 发表于 2018-10-25 13:26
优先级分组可以从下面的红框中看出,应该是优先级分组2,2个bit的主优先级2个bit的子优先级。

谢谢了,我回头细细看一下
举报

更多回帖

发帖
×
20
完善资料,
赚取积分