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

為什么你不會(huì)接開(kāi)關(guān)呢?是因?yàn)?/b>你不懂這些
工作之所以成為工作,是因?yàn)?/b>你只需要工作而不需要...
用malab GUI做的鋼琴鍵盤(pán),但是callbacks一直沒(méi)搞懂
Atmage128重啟或死機(jī),是因?yàn)?/b>電源沒(méi)處理好還是什么原因?
什么是NVIC
如何在RTOS中使用lwip庫(kù)?
電死人的原因到底是因?yàn)?/b>電壓還是電流
學(xué)STM32入門(mén)很難?那是因?yàn)?/b>你沒(méi)掌握正確的方法!

STM32F1----NVIC

錫膏不上錫是因?yàn)?/b>活性不足嗎?

你失去工作不是因?yàn)?/b>AI,而是因?yàn)?/b>使用AI的人

評(píng)論