本帖最后由 sunmeat 于 2015-7-12 20:11 编辑
GD32 的中断向量具有两个属性,一个为抢占属性,另一个为响应属性,其属性编号越小,表明它的优先级别越高。
抢占,是指打断其他中断的属性,即因为具有这个属性会出现嵌套中断(在执行中断服务函数 A 的过程中被中断 B 打断,执行完中断服务函数 B 再继续执行中断服务函数A),抢占属性由 NVIC_IRQPreemptPriority的参数配置。
而响应属性则应用在抢占属性相同的情况下,当 两个中断向量的抢占优先级相同时,如果两个中断同时到达 , 则先处理响应优先级高的中断,响应属性由NVIC_IRQSubPriority 参数配置。例如,现在有三个中断向量,如下
中断向量 抢占优先级 响应优先级
A 0 0
B 1 0
C 1 1
若内核正在执行 C 的中断服务函数,则它能被抢占优先级更高的中断 A 打断,由于 B和 C 的抢占优先级相同,所以 C 不能被 B 打断。但如果 B 和 C 中断是同时到达的,内核
就会首先响应响应优先级别更高的 B 中断。
|