关于STM32中断优先级分组的科普,初学者常见问题解答(Q&A)

2019-07-20 23:41发布

CM3内核集成了强大的NVIC(可嵌套的向量中断控制器),
权威指南中介绍它就花了大量篇幅,
要把整个NVIC完全搞懂也不容易,
我也只学习了一点皮毛,
对于初学者来说,中断优先级分组及中断优先级设定这种基本问题是绕不开的,
刚接触NVIC的同学对此常有疑问,
本帖仅仅针对STM32中断优先级分组这一个方面,
给初学者科普一下这方面的常见问题,
老手请绕道,不过欢迎进来交流。
也可以提新的问题,我所知道的尽量解答。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
49条回答
warship
2019-07-21 20:08
本帖最后由 warship 于 2018-7-22 16:45 编辑

问题五:优先级分组是如何定义的?
答:前面已经明确了优先级分组的意义。那么CM3具体是如何来规定优先级分组的呢?
我们说过,全集的CM3是用8位来配置优先级的,即:给每个中断配发8位的身份证
这8位中用几位来表示抢占级,用几位来表示响应级,就由分组来进行规定。
总共8位,分成两段,只须规定从第几位分界就可以了。显然一共有8种分界方法,方法n分别对应从这8BIT的BITn处作为分界起始点。具体如下:,
方法0:从BIT0处进行分组,即BIT0代表子优先级,BIT1-7代表抢占优先级
方法1:从BIT1处进行分组,即BIT0、1代表子优先级,BIT2-7代表抢占优先级
方法2:从BIT2处进行分组,即3位子优先级,5位抢占优先级
方法3:从BIT3处进行分组,即4位子优先级,4位抢占优先级
方法4:从BIT4处进行分组,即5位子优先级,3位抢占优先级
方法5:从BIT5处进行分组,即6位子优先级,2位抢占优先级
方法6:从BIT6处进行分组,即7位子优先级,1位抢占优先级
方法7:从BIT7处进行分组,即8位子优先级,0位抢占优先级

一周热门 更多>