关于stm32优先级大小的理解

时间:2021-07-26 10:45:48

转载自:https://www.cnblogs.com/ZKeJun/p/6112591.html

关于stm32优先级大小的理解

一、 组别:0>1>2>3>4

    组别优先顺序(第0组优先级最强,第4组优先级最弱):NVIC_PriorityGroup_0>NVIC_PriorityGroup_1>NVIC_PriorityGroup_2>NVIC_PriorityGroup_3>NVIC_PriorityGroup_4

二、抢占优先级和响应优先级执行过程举例:

    关于stm32优先级大小的理解

  ①   实验现象:中断B(C)执行时,A中断到来,则A打断B(C)中断,执行A中断(即中断嵌套)。

    结果说明:0级抢占优先级>1级抢占优先级,以此类推,0>1>2.......>15

    拓展:抢占优先级最多可以嵌套15次

  ② 实验现象:中断B(C)执行时,C(B)中断到来,则执行当前的中断B(C),执行完当前中断B(C)后再执行中断C(B)。

    结果说明:当B(C)中断的抢占优先级等级相同时,执行中的中断B(C)不能被中断C(B)打断,必须等待当前中断B(C)执行完再执行中断C(B)。与响应优先级无关。

  ③  现象:当B、C中断同时到来时,首先响应中断B。

     结果说明:响应优先级大小:0>1>2......>15

  ④  如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。