FreeRTOS遇到的問題彙總(持續更新)

1、STM32運行FreeRTOS出現prvTaskExitError錯誤死機

工程報錯位置:文件port.c

prvTaskExitError();任務退出錯誤,一個可能在任務裏面寫了return,另一個可能任務切換退出問題,入棧和出棧的時候出了問題。

任務退出的時候調用了prvTaskExitError函數,但是正常任務是個死循環,就算刪除,也是調用刪除函數,因此有兩種情況可能出現

1. 任務沒有 while(1)的死循環。

2. while(1)裏面有break函數。

經過排查是2的問題,最終解決問題。

總結:任務中儘量用  for( ; ; ) { } 代替while死循環,防止while(函數)函數中帶有返回值在任務切換時出錯。

​​​2、FreeRTOS創建多個任務時,後創建的任務不能執行

創建任務時分配內存太少,創建時正常運行時報錯。開啓任務堆棧監測是非常重要的,可以仔細的調整一下,有的任務分配的多,有的任務分配的少

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章