NVIC寄存器的功能是设置终端优先级,是由内核提供的中断优先级机制。
内部有60个寄存器来对优先级进行设置,每个寄存器有32位,但是每个中断优先级只对应8位,也就是说,每个寄存器可以设置4个优先级,一共可以设置240个中断优先级,每个优先级有256级。
但是,由于K60的限制,限制了高四位有效,所以每个优先级只有16位!
同时,NVIC支持优先级分组和抢占式执行,具体的原理如下:
高位代表组优先级,低位代表子优先级。组优先级之间执行抢占式调度,即高组可以打断低组的中断。同一组的各个子优先级同时发生,终断号小的先执行
在执行代码的时候要和中断设置一起执行,先设置优先级分组
再设置优先级(中断号,优先级段)
优先级段=(分组方式,组优先级,子优先级)