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