- 對于FreeRTOS最好不去用中斷嵌套,中斷嵌套會增加堆棧空間的使用,因為每個中斷服務程序都需要保存和恢復寄存器狀態,這可能會耗盡有限的堆棧空間,從而導致系統故障。以及中斷嵌套時,不同的中斷服務程序可能會競爭訪問共享資源,從而增加死鎖的風險。這可能會導致系統出現故障或癱瘓。
- FreeRTOS的中斷的嵌套和競爭:中斷的嵌套(Interrupt Nesting)是指當一個中斷正在執行時,可以被另一個更高優先級的中斷所中斷。中斷可以打斷具有較低邏輯優先級的任何中斷,但是中斷不能打斷具有相同或更高邏輯優先級的任何中斷。
- HAL_NVIC_SetPriorityGrouping() 函數來配置優先級分組方式,就是確定不同中斷的搶占優先級與子優先級的關系。NVIC_PriorityGroup_4 的話,那 4 位優先級就都全是搶占優先級了,沒有子優先級,也就是說下面的SubPriority 子優先級都應該為0。