打印
[STM32F0]

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

[复制链接]
1821|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
又东风|  楼主 | 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一定可以抢占外设中断。还有在一个工程项目中关于优先级怎么设置最好,方便管理,不会因为优先级的问题导致系统错乱。有不足的地方欢迎大家指正或补充)
评论
又东风 2019-3-7 12:38 回复TA
还有一个中断优先级是分组1,一个是分组2,即在不同分组,怎么去比较抢占优先级和从优先级。 
沙发
二九结狐六体| | 2019-3-7 13:37 | 只看该作者
可以的啊!!!!!!!

使用特权

评论回复
板凳
whtwhtw| | 2019-3-7 15:57 | 只看该作者
@又东风 :一个内核只能一个分组,如果系统不同外设定义不同分组,以最后定义的分组为准。

大神来指导一下是不是这样理解的

使用特权

评论回复
地板
又东风|  楼主 | 2019-3-11 09:06 | 只看该作者
whtwhtw 发表于 2019-3-7 15:57
@又东风 :一个内核只能一个分组,如果系统不同外设定义不同分组,以最后定义的分组为准。

大神来指导一下 ...

如果定义多次,以最后一次为准。突然发现一篇**说的很详细,可以学习一下。百度搜索:关于STM32中断优先级分组的科普,初学者常见问题解答。

使用特权

评论回复
5
whtwhtw| | 2019-3-11 09:35 | 只看该作者
不错,借花献佛。
http://www.openedv.com/thread-275496-1-1.html

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

40

帖子

0

粉丝