《Cortex-M0權威指南》之體系結構---嵌套中斷控制器(NVIC)

轉載請註明來源:cuixiaolei的技術博客


   爲了管理中斷請求的優先級並處理其餘異常,Cortex-M0處理器內置了嵌套中斷控制器(NVIC)。NVIC的一些可編程控制器控制着中斷管理功能,這些寄存器被映射到系統地址空間裏,它們所處的區域被稱爲系統控制空間(SCS)。編程

  NVIC有如下特性:ui

  • 靈活的中斷管理;
  • 支持嵌套中斷;
  • 向量化的異常入口
  • 中斷屏蔽

 


 

 

靈活的中斷管理

  Cortex-M0處理器中,每個外部中斷均可以被使能或者禁止,而且能夠被設置爲掛起狀態或者清除狀態。處理器的中斷能夠是信號級的(在中斷服務程序清除中斷請求之前,外設的請求會一直保持),也能夠是脈衝形式的(最小一個始終週期),這樣中斷控制器就能夠處理任何中斷源。調試

 


 

支持嵌套中斷  

  Cortex-M0處理器的任何中斷都有一個固定或者可編程的中斷優先級。當外部中斷之類的異常發生時,NVIC將該異常的優先級與當前的優先級進行比較,若是新的優先級更高,當前的任務會被暫定,一些寄存器的值被壓棧處理,而後處理器開始處理新的異常程序,這個過程也被稱爲「搶佔」。高優先級的中斷完成後,異常返回就會執行,處理器自動進行出棧操做恢復剛纔寄存器的值,並繼續運行剛纔的任務。這種機制並無帶來軟件開銷。blog

 


 

 

向量化的異常入口

  異常發生時,處理器須要定位異常對用的程序入口。傳統的處理方式須要軟件去完成。而M0處理器會從存儲器的向量表中,自動定位異常的程序入口。從異常到異常的處理事件會被縮減。事件

 


 

 

中斷屏蔽

  NVIC經過PRIMASK特殊寄存器提供了一種中斷屏蔽機制,NVIC除了硬件錯誤和NMI以外,能夠屏蔽全部的異常。有些操做,好比對時間敏感的控制任務或實時多媒體解碼任務,不該該被打斷,此時中斷屏蔽的做用就表現了出來。get

  


 

 

系統控制塊(SCB)

  除了NVIC,系統控制空間也包含了許多系統管理的寄存器,這些寄存器被稱爲系統控制塊。其中有些寄存器控制休眠模式和系統異常配置,另外還有兩個寄存器包含了處理器的識別代碼(調試器可以使用該代碼識別處理器的類型)。博客

相關文章
相關標籤/搜索