異常會引發程序控制的變化。在異常發生時,處理器中止當前的任務,轉而執行異常處理程序,異常處理完成後,會繼續執行剛纔的任務。異常分爲不少種,中斷是其中之一。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和硬件錯誤的優先級是固定的,而且比其餘異常的優先級高。