天天看點

ARM Cortex M3 /M4 NVIC 優先級

目錄

1、優先級的定義

 2、優先級構成

1、優先級的定義

ARM Cortex M3 /M4 NVIC 優先級
ARM Cortex M3 /M4 NVIC 優先級

     CM3 允許的最少使用位數為3 個位,亦即至少要支援8 級優先級。

例如:

STM32: 支援16級優先級

ARM Cortex M3 /M4 NVIC 優先級

見《【野火_】零死角玩轉STM32—F103指南者.pdf》 page148

S32K: 支援16級優先級

ARM Cortex M3 /M4 NVIC 優先級

見《S32K1xx Series Reference Manual》 page116

 2、優先級構成

       按位分成高低兩段,分别是搶占優先級和響應優先級

搶占優先級決定了搶占行為:當系統正在響應某異常L 時,如果來了搶占優先級更高的

異常H,則H 可以搶占L。

響應優先級則處理“内務”:當搶占優先級相同的異常有不止一個懸起時,就優先響應優先級最高的異常。

 預設分組如下:優先級分組 在 SCB配置(系統控制塊中優先級分組配置寄存器)

ARM Cortex M3 /M4 NVIC 優先級

例子:

ARM Cortex M3 /M4 NVIC 優先級

PS: 注意STM32 中的分組序号與Cortex 的分組序号不是同步的

序号 STM32分組 Cortex分組 S32K 分組 備注(以16級優先級為例)
- 16級搶斷,0級響應
1 - 1 1 16級搶斷,0級響應
2 - 2 2 16級搶斷,0級響應
3 4 3 3 16級搶斷,0級響應
4 3 4 4 8級搶斷,2級響應
5 2 5 5 4級搶斷,4級響應
6 1 6 6 2級搶斷,8級響應
7 7 7 0級搶斷,16級響應

注意:網上參考了【STM32】NVIC 中斷優先級管理,沒有了解清優先級分組 0,錯誤認為S32K 對應的 優先級分組0, 也是為沒有搶斷的,都為同一搶斷優先級,不同響應優先級。