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