测试关于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,即在不同分组,怎么去比较抢占优先级和从优先级。