[STM32F0] [STM32]关于SYSTICK中断优先级问题

[复制链接]
 楼主| 又东风 发表于 2019-3-7 12:13 | 显示全部楼层 |阅读模式
测试关于SYSTICK中断优先级问题。
1、分组0,抢占0位,从优先级4位。

    ---> systick抢占优先级最高,可以抢占外部所有中断。外部从优先级不起作用。
2、分组4,抢占4位,从优先级0位。
    ---> 外部中断抢占优先级小于15,则外部可以抢占SYSTICK。
3、分组2,抢占2位,从优先级2位。
    ---> 将SYSTICK看成2位抢占优先级级别为3和两位从优先级级别为3。
    ---> 抢占优先级高的外部中断可以抢占SYSTICK。
    ---> 在外部抢占优先级为3的情况下,SYSTICK依旧可以抢占外部中断。外部中断从优先级不起作用。SYSTICK从优先级依旧具有抢占作用。
4、设置SYSTICK优先级别为7。分组0,抢占0位,从优先级4位。
    ---> systick抢占优先级最高,可以抢占外部所有中断。外部从优先级不起作用。
5、设置SYSTICK优先级别为7。分组4,抢占4位,从优先级0位。
    ---> 外部中断抢占优先级小于7,则外部可以抢占SYSTICK。否则SYSTICK依旧抢占外部中断(包括等于7)。

综上:SYSTICK在抢占优先级相同或更高的情况下,SYSTICK抢占优先级更高。只有在外部中断抢占优先级高的情况下,才可以抢占SYSTICK中断。
(以上结果为自己测试归纳所得,证明SYSTICK内核中断不是高于所有外设。还有些地方不是很清楚,比如第3个中的第三条,SYSTICK依然能抢占,仿佛只要涉及抢占和级别有关,在抢占相同情况下涉及从优先级SYSTICK一定可以抢占外设中断。还有在一个工程项目中关于优先级怎么设置最好,方便管理,不会因为优先级的问题导致系统错乱。有不足的地方欢迎大家指正或补充)

评论

还有一个中断优先级是分组1,一个是分组2,即在不同分组,怎么去比较抢占优先级和从优先级。  发表于 2019-3-7 12:38
二九结狐六体 发表于 2019-3-7 13:37 | 显示全部楼层
可以的啊!!!!!!!
whtwhtw 发表于 2019-3-7 15:57 | 显示全部楼层
@又东风 :一个内核只能一个分组,如果系统不同外设定义不同分组,以最后定义的分组为准。

大神来指导一下是不是这样理解的
 楼主| 又东风 发表于 2019-3-11 09:06 | 显示全部楼层
whtwhtw 发表于 2019-3-7 15:57
@又东风 :一个内核只能一个分组,如果系统不同外设定义不同分组,以最后定义的分组为准。

大神来指导一下 ...

如果定义多次,以最后一次为准。突然发现一篇**说的很详细,可以学习一下。百度搜索:关于STM32中断优先级分组的科普,初学者常见问题解答。
whtwhtw 发表于 2019-3-11 09:35 | 显示全部楼层
不错,借花献佛。
http://www.openedv.com/thread-275496-1-1.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

40

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

2

主题

40

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部