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