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