一、到底什么是NVIC?
NVIC(Nested Vectored Interrupt Controller)中文翻譯為:嵌套中斷向量控制器。
NVIC屬于內(nèi)核級別的外設(shè)單元,用來管理CPU的中斷。
由NVIC管理的中斷可進(jìn)行中斷嵌套,直譯為高優(yōu)先級可打斷低優(yōu)先級中斷,然后高優(yōu)先級執(zhí)行完了再轉(zhuǎn)回去執(zhí)行低優(yōu)先級中斷。
對于RTOS(實時操作系統(tǒng))類型的OS有很大的好處,所以先搞懂NVIC,再去涉獵RTOS,會更加的輕松。
二、搶占和次級優(yōu)先級說明?
NVIC的優(yōu)先級分為搶占和次優(yōu)先級,這兩種優(yōu)先級共同來管理所有中斷的響應(yīng)次序以及是否能被打斷,如下圖所示:
上圖中斷響應(yīng)分為三種情況:
第一種情況搶占優(yōu)先級不在同一級別:當(dāng)中斷源C正在被執(zhí)行時,中斷源A發(fā)生了中斷,這時會去比較搶占優(yōu)先級,因為A的搶占優(yōu)先級別比C高,所以會將C中斷掛起,轉(zhuǎn)而去執(zhí)行A中斷,當(dāng)A中斷執(zhí)行完了又回去繼續(xù)執(zhí)行C中斷。
第二種情況搶占優(yōu)先級在同一級別:當(dāng)中斷源B正在被執(zhí)行時,中斷源A發(fā)生了中斷,這時會去比較搶占優(yōu)先級,因為A的搶占優(yōu)先級別和B相等,所以不會打斷B中斷,須等待B執(zhí)行結(jié)束轉(zhuǎn)而去執(zhí)行A中斷。
第三種情況搶占優(yōu)先級在同一級別:當(dāng)中斷源A、B同時發(fā)生了中斷,因為A和B的搶占優(yōu)先級相等,轉(zhuǎn)而會繼續(xù)比較次優(yōu)先級,而A的次優(yōu)先級比B高,所以會先執(zhí)行A然后再執(zhí)行B。
NVIC的搶占優(yōu)先級和次優(yōu)先級數(shù)量是有限的,這需要自己設(shè)置有多少個搶占優(yōu)先級和一個搶占優(yōu)先級里面有多少個次優(yōu)先級。
-
RTOS
+關(guān)注
關(guān)注
22文章
809瀏覽量
119454 -
NVIC
+關(guān)注
關(guān)注
0文章
35瀏覽量
11680
發(fā)布評論請先 登錄
相關(guān)推薦
評論