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

2019-07-20 23:41发布

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

问题八:如何设置系统的优先级分组?
答:一个系统,优先级分组只须设定一次,那么应该如何设定呢?
当然是根据整个系统的需求来综合考虑了。
还是以身份证为例,在发放身份证之前,我们要总体考虑全国要分多少个区域,然后确定地区需要设置几位数才够。
在4位的优先级系统中,给每个中断的身份证只有4个有效位,我们需要在这4位中,需要分成用几位表达抢占优先级,用几位表达响应优先级。总体来看,各个中断需要拉开层次,等级分化多,就让抢占位多配一些;各个中断彼此都差不多,无须分三六九等,就让抢占位少配一些;一般原子的例程中是取了折中,统一采用分组2,即抢占和响应各占2位,这里就有0-3共四级抢占,0-3共四级响应,总体设定后,对于每个具体的中断,则根据实际需要,在可选范围内分配抢占级和响应级。

一周热门 更多>