複製鏈接
請複製以下鏈接發送給好友

NVIC

鎖定
NVIC,提供中斷控制器,用於總體管理異常,稱之為“內嵌向量中斷控制器:Nested Vectored Interrupt Controller (NVIC)”。NVIC和處理器內核緊密相連.
中文名
內嵌向量中斷控制器
外文名
NVIC
優    點
提高了實時性
作    用
提供中斷控制器

目錄

NVIC主要介紹

Cortex ‐ M3在內核水平上搭載了一顆中斷控制器——嵌套向量中斷控制器NVIC(Nested Vectored Interrupt Controller)。它與內核有很深的“私交”——與內核是緊耦合的。NVIC 提供如下的功能:
z 可嵌套中斷支持
z 向量中斷支持
z 動態優先級調整支持
z 中斷延遲大大縮短
z 中斷可屏蔽

NVIC特徵

[1] 
支持嵌套和向量中斷
自動保存和恢復處理器狀態
動態改變優先級
簡化的和確定的中斷時間
NVIC 依照優先級處理所有支持的異常,所有異常在“處理器模式”處理。NVIC 結構支持32(IRQ[31:0]) 個離散中斷,每個中斷可以支持 4 級離散中斷優先級。所有的中斷和大多數系統異常可以配置為不同優先級。當中斷髮生時,NVIC 將比較新中斷與當前中斷的優先級,如果新中斷優先級高,則立即處理新中斷。當接受任何中斷時,ISR的開始地址可從內存的向量表中取得。不需要確定哪個中斷被響應,也不要軟件分配相關中斷服務程序(ISR)的開始地址。當獲取中斷入口地址時,NVIC 將自動保存處理狀態到棧中,包括以下寄存器“PC, PSR, LR, R0~R3, R12” 的值。在ISR結束時,NVIC 將從棧中恢復相關寄存器的值,進行正常操作,因此花費少量且確定的時間處理中斷請求。NVIC 支持末尾連鎖 ”TailChaining”,有效處理背對背中斷 ”back-to-back interrupts”,即無需保存和恢復當前狀態從而減少在切換當前ISR時的延遲時間。NVIC 還支持遲到 “Late Arrival”,改善同時發生的ISR的效率。當較高優先級中斷請求發生在當前ISR開始執行之前(保持處理器狀態和獲取起始地址階段),NVIC 將立即處理更高優先級的中斷,從而提高了實時性。
參考資料
  • 1.    (英國) 姚文詳 (Joseph Yiu) .ARM Cortex-M3權威指南:北京航空航天大學出版社,2009年7月1日