《Cortex-M0權威指南》之體系結構---異常和中斷

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


   異常會引發程序控制的變化。在異常發生時,處理器中止當前的任務,轉而執行異常處理程序,異常處理完成後,會繼續執行剛纔的任務。異常分爲不少種,中斷是其中之一。Cortex-M0處理器最多支持32個外部中斷(IRQ)和一個不可屏蔽中斷(NMI),中斷事件的處理叫作中斷服務程序(ISR),中斷通常由片上的IO口的外部輸入產生(邊沿觸發和電平觸發)。編程

  Cortex-M0處理器上可用的中斷數量不肯定,由廠商決定,最多32個外部中斷。若是系統的外設不少,因爲中斷數目有限,多箇中斷源可能使用同一個中斷鏈接。ui

  除了IRQ和NMI,M0處理系還支持不少系統異常,它們主要用於操做系統和錯誤處理。spa

 

異常類型      異常編號        描述操作系統

Reset         1         上電覆位或系統復位blog

NMI         2         不可屏蔽中斷事件

Hard fault      3         用於錯誤處理,系統檢測到錯誤後被激活get

SVCall         11         請求管理調用,在執行SVC指令被激活,主要用做操做系統博客

PendSV       14         可掛起服務(系統)調用硬件

SysTick       15         系統節拍定時器異常,通常在OS種用做週期系統節拍異常定時器

IRQ0-IRQ31      16-47        中斷,可來自於外部,也可來自片上外設

 

  每個異常都對應一個異常編號,這在包括IPSR在內的許多寄存器種都有提現,並且這個異常編號還指明瞭異常向量的地址。在設備驅動庫種,異常編號和中斷編號是相互獨立的。系統異常使用負數定義,中斷使用0-31正數定義。

  復位是一種特殊的異常,數值爲1,在IPSR中不可見。

  除了NMI,硬件錯誤和復位,其餘全部異常的優先級都是可編程的,NMI和硬件錯誤的優先級是固定的,而且比其餘異常的優先級高。

相關文章
相關標籤/搜索