STM32 NVIC 搶占優(yōu)先級和響應(yīng)優(yōu)先級
STM32 的中斷向量具有兩個屬性,一個為搶占屬性,另一個為響應(yīng)屬性,
其屬性編號越小,表明它的優(yōu)先級別越高。
搶占,是指打斷其它中斷的屬性,即因為具有這個屬性,會出現(xiàn)嵌套中斷
(在執(zhí)行中斷服務(wù)函數(shù) A 的過程中被中斷 B 打斷,執(zhí)行完中斷服務(wù)函數(shù) B 再繼續(xù)
執(zhí)行中斷服務(wù)函數(shù) A),搶占屬性由 NVIC_IRQChannelPreemptionPriority 的參
數(shù)配置。
而響應(yīng)屬性則應(yīng)用在搶占屬性相同的情況下,當(dāng)兩個中斷向量的搶占優(yōu)先
級相同時,如果兩個中斷同時到達(dá),則先處理響應(yīng)優(yōu)先級高的中斷,響應(yīng)屬性
由 NVIC_IRQChannelSubPriority 的參數(shù)配置。
例如,現(xiàn)在有三個中斷向量:
中斷向量 搶占優(yōu)先級 響應(yīng)優(yōu)先級
A 0 0
B 1 0
C 1 1
若內(nèi)核正在執(zhí)行 C 的中斷服務(wù)函數(shù),則它能被搶占優(yōu)先級更高的中斷 A 打
斷,由于 B 和 C 的搶占優(yōu)先級相同,所以 C 不能被 B 打斷。但如果 B 和 C 中斷
是同時到達(dá)的,內(nèi)核就會首先響應(yīng)響應(yīng)優(yōu)先級別更高的 B 中斷。