如何在keil中观测各中断的优先级顺序
各位前辈,我设置了个中断的优先级,想在KEIL中观测程序运行后,各中断优先级的顺序,如何查看?是在Peripherals中的NVIC窗口中看吗??其中的 E P A Priority各代表什么意思呢??谢谢
E表示 enable 使能中断
P表示 pending 有中断挂起
A表示active 有中断激活
Priority 中断优先级
猜的,不一定对:lol 本帖最后由 watershade 于 2016-2-26 22:30 编辑
creep大神也但是优先级怎么还有208.这是甚意思
应该无法观测吧。还是看代码推算。 本帖最后由 creep 于 2016-2-27 11:53 编辑
watershade 发表于 2016-2-26 22:29
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寄存器部分:
creep 发表于 2016-2-27 11:52
1、首先STM32的优先级只使用8个bit中的高4bit来表达中断源优先级,低四个bit总是为0.类似如下(下面的情况 ...
谢谢了。我知道有主优先级和sub-priority但是不确定208(0xD0)到底是几位子优先级,几位是主优先级。
此外还应看到的是,小于0的优先级是内核使用的优先级。所以那张图片的细节还是蛮多的。
再次谢谢 watershade 发表于 2016-2-27 20:42
谢谢了。我知道有主优先级和sub-priority但是不确定208(0xD0)到底是几位子优先级,几位是主优先级。
此 ...
优先级分组可以从下面的红框中看出,应该是优先级分组2,2个bit的主优先级2个bit的子优先级。
creep 发表于 2016-2-27 22:56
优先级分组可以从下面的红框中看出,应该是优先级分组2,2个bit的主优先级2个bit的子优先级。
...
谢谢了,我回头细细看一下
页:
[1]