我有7個任務,5ms,10ms,20ms,40ms,80ms,100ms,1000ms,優先級依次降低,給每個任務創建了一個二進制信號量,并在一個5ms定時中斷函式里定時釋放信號量
程式在vxworks系統下運行測驗時偶發出現40ms任務阻塞的問題,并且該問題很難復現,有時程式運行幾十個小時都不出來。有時80ms任務和40ms任務都阻塞,有時10ms,20ms,40ms,80ms都例外,但每次40ms必例外。
請教各位大神,都什么原因可能引起任務阻塞?
uj5u.com熱心網友回復:
問題好像找到了,因為40ms里用了printf,電腦螢屏睡眠的時候問題就會復現!uj5u.com熱心網友回復:
你這個問題描述真是醉了,導致任務阻塞是單任務例外造成的,比如堆疊越界之類的,好好查一下你的任務處理就行了。如果你的40ms任務不是中斷觸發的,加列印printf也不應該出現問題。感覺你問題沒有排查清楚,還有就是電腦螢屏休眠是什么意思?你的VxWorks是跑的x86嗎?uj5u.com熱心網友回復:
高優先級任務會不會某種情況下運行時間過長導致低優先級任務沒時間執行?轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/97130.html
標籤:VxWorks開發
上一篇:怎么接收紅外線信號,或超聲波信號來確定信號源的方位,方向?
下一篇:目前有很多種物聯網的作業系統,如RT_Thread,uCos,FreeRtos等等,這些功能比較龐大的,有沒有一些個頭小一點的呀的?
