STM32單片機移植ucosll程序,運行幾個小時之后跑飛。
ucsll創(chuàng)建4個任務,OSQPend()消息隊列任務,1s定時任務,2s定時任務,按鍵掃描任務。其中OSQPend()消息隊列任務優(yōu)先級最高,用于接收各中斷消息,由于消息隊列在沒有消息時會將任務掛起,所有沒有添加延時函數(shù)。
一開始懷疑堆棧溢出,將單片機棧區(qū)擴大,各任務堆棧也擴大,仍然無效。
多次測試發(fā)現(xiàn),程序跑飛后OSQPend()消息隊列任務仍然能夠接受中斷消息,懷疑優(yōu)先級有問題,將消息隊列任務的優(yōu)先級調至最低,再未遇到程序跑飛情況。
只是仍然不解為何會停留在消息隊列任務中??!