STM32的中断分组究竟是个什么东西?

转载---------

作者:匿名用户

链接:https://www.zhihu.com/question/36778342/answer/70571778
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


STM32的中断向量具有两个属性,一个是抢占属性,一个是响应属性,其属性编号越小,表明它的优先级越高。抢占属性,是指打断其它中断的属性,具有这个属性会出现嵌套中断(在执行中断服务函数A的过程中被中断B打断,执行完中断服务函数B再继续执行中断服务函数A)。响应属性,应用在抢占属性相同的情况下,当两个中断向量的抢占优先级相同时,如果两个中断同时到达,则先处理优先级高的中断;但如果不是同时到达,即使后来的中断的响应优先级高,也不能打断正在执行的中断。子优先级就是响应优先级。中断分组,是按照抢占优先级和响应优先级的分配方式分为不同的五组。因为抢占优先级和响应优先级的数量由一个4位的数字决定,所以只可以配置=16种中断向量的优先级,4位数字有五种分配方式:第0组:所有4位用来配置响应优先级。即16种中断向量的响应优先级别都不相同第1组:最高1位用来配置抢占优先级,低3位用来配置响应优先级。即有=2种级别的抢占优先级(0级和1级),有=8种级别的响应优先级。16种中断向量中,有8种中断的抢占优先级为0级,响应优先级为0~7,;有8种中断的抢占优先级为1级,响应优先级为0~7。第2组:2位用来配置抢占优先级,2位用来配置响应优先级。即有=4种抢占优先级,有=4种响应优先级。第3组:高3位用来配置抢占优先级,最低1位用来配置响应优先级。即有=8种抢占优先级,2种响应优先级。第4组:所有4位用来配置抢占优先级。16种中断向量有16种不同的抢占优先级,没有响应属性。

猜你喜欢

转载自blog.csdn.net/qq_38405680/article/details/80294745