stm32 nvic的理解
nvic即是中斷向量的控制!由SCB->AIRCR寄存器控制,SCB->AIRCR中目前只用到4位,也就是最高能有16級中斷嵌套,如果全使用的話可以達到256級
本文引用地址:http://cqxgywz.com/article/201611/317624.htm(1);選用優先級分組(實際就是選幾位用于主優先級幾位用于輔優先級)
group0:選0位用于主優先級,4位用于輔優先級。
group1:選1位用于主優先級,3位用于輔優先級。
group2:選2位用于主優先級,2位用于輔優先級。
group3:選3位用于主優先級,1位用于輔優先級。
group4:選4位用于主優先級,0位用于輔優先級。
(2)這樣打個比方不恰當的比方吧,如果把一個中斷比作一個人,則他的國籍就是主優先級,省籍就是輔優先級。主優先級高的可以
打斷主優先級低的中斷(如主優先級0(我們叫他美國)的中斷高于主優先級2(我們叫他伊拉克)的中斷,則主優先級為0的中斷(美國人)可以
打斷主優先級為2的中斷(伊拉克人))。而對于輔優先級,我們稱之為省籍,比如兩個人都是中國人(主優先級),一個是北京的(假設輔優先級為0
,高),一個是山西的(省籍為輔優先級,假設為2,低),則北京人不能去打斷山西人做的事,但是,如果有同一個機會,則應該先給北京人,即
當同時要響應兩個這兩個主優先級一樣的中斷時,輔助優先級高的先響應。如果兩個中斷的主,輔優先級都一樣時,則在中斷向量表中靠前的
先響應。
(3)group4可以最多執行15個嵌套和一個中斷,group3可以最多執行7個嵌套和一個中斷,依次類推。
所以,
group4可以指定主優先級的范圍為0——15,輔優先級的范圍為0
group3可以指定主優先級的范圍0———7,輔優先級的范圍為0----1
group2可以指定主優先級的范圍0———3,輔優先級的范圍為0----3
group1可以指定主優先級的范圍0———1,輔優先級的范圍為0----7
group1可以指定主優先級的范圍0,輔優先級的范圍為0----15
所謂嵌套,即是主優先級高的可以打斷主優先級低的中斷的執行(嵌套)。


評論