目錄
1、優先級的定義
2、優先級構成
1、優先級的定義
CM3 允許的最少使用位數為3 個位,亦即至少要支援8 級優先級。
例如:
STM32: 支援16級優先級
見《【野火_】零死角玩轉STM32—F103指南者.pdf》 page148
S32K: 支援16級優先級
見《S32K1xx Series Reference Manual》 page116
2、優先級構成
按位分成高低兩段,分别是搶占優先級和響應優先級
搶占優先級決定了搶占行為:當系統正在響應某異常L 時,如果來了搶占優先級更高的
異常H,則H 可以搶占L。
響應優先級則處理“内務”:當搶占優先級相同的異常有不止一個懸起時,就優先響應優先級最高的異常。
預設分組如下:優先級分組 在 SCB配置(系統控制塊中優先級分組配置寄存器)
例子:
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, 也是為沒有搶斷的,都為同一搶斷優先級,不同響應優先級。