向量中斷就是不同的中斷有不同的入口地址,非向量中斷就只有一個入口地址,進(jìn)去了在判斷中斷標(biāo)志來識別具體是哪個中斷。向量中斷實時性好,非向量中斷簡單。 向量者,矢量也,即指方向,門路。 向量中斷——由硬件提供中斷服務(wù)程序入口地址; 非向量中斷——由軟件件提供中斷服務(wù)程序入口地址 向量中斷模式用于RESET、NMI、異常處理。當(dāng)向量中斷產(chǎn)生時,控制器直接將PC賦值,如跳到0×0000000d處,而在0×0000000d地址處通常放置ISR服務(wù)程序地址LDR PC, =ISR_HANDLER。 非向量中斷模式,有一個寄存器標(biāo)識位,跳轉(zhuǎn)到統(tǒng)一的函數(shù)地址,此函數(shù)通過判別寄存器標(biāo)識位和優(yōu)先級關(guān)系進(jìn)行中斷處理。 向量中斷模式是當(dāng)CPU讀取位于0×18處的IRQ中斷指令的時候,系統(tǒng)自動讀取對應(yīng)于該中斷源確定地址上的指令取代0×18處的指令,通過跳轉(zhuǎn)指令系統(tǒng)就直接跳轉(zhuǎn)到對應(yīng)地址函數(shù)中,節(jié)省了中斷處理時間提高了中斷處理速度。例如 ADC 中斷的向量地址為0xC0,則在0xC0處放如下代碼:ldr PC,=HandlerADC 當(dāng)ADC中斷產(chǎn)生的時候系統(tǒng)會自動跳轉(zhuǎn)到HandlerADC函數(shù)中處理中斷。 非向量中斷模式處理方式是一種傳統(tǒng)的中斷處理方法,當(dāng)系統(tǒng)產(chǎn)生中斷的時候,系統(tǒng)將INTPND寄存器中對應(yīng)標(biāo)志位置位,然后跳轉(zhuǎn)到位于0×18處的統(tǒng)一中斷函數(shù)中;該函數(shù)通過讀取INTPND寄存器中對應(yīng)標(biāo)志位來判斷中斷源,并根據(jù)優(yōu)先級關(guān)系再跳到對應(yīng)中斷源的處理代碼中處理中斷。其實,所有的非向量中斷可以看成是一個向量中斷。 轉(zhuǎn)載自阿吳網(wǎng)志|Awu's Website |