滿足以下幾個指標將會使軟體設計比較簡潔高效。
裝置依賴性劃分:主要是對於一些輸入輸出裝置進行劃分,輸入輸出裝置分為主動型和被動性。主動型有乙個盡可能短的中斷服務程式和乙個與之關聯的任務組成;被動性任務由於不能主動觸發,必須有其他任務通過通訊機制向該裝置發出請求,啟用該裝置的相關任務。此類任務有鍵盤任務、顯示任務、資料採集任務、控制輸出任務和通訊任務等。
發現關鍵功能,將其最關鍵部分剝離出來,用乙個獨立任務(或isr)完成,剩餘的部分用另外乙個任務去實現,兩者之間採用通訊機制進行溝通。(關鍵任務是指:此任務對系統影響較大,如果少執行一次都會對系統造成重大影響)
發現緊迫任務,將其最緊迫部分剝離出來,用乙個獨立的高優先順序的任務(或isr)完成,剩餘的部分用另外乙個任務去實現,兩者之間採用通訊機制進行溝通。(緊迫性任務是指:此任務必須在規定時間內得到運權,並在規定時間之內執行完畢)
對於又關健又緊迫的功能,按緊迫功能處理。
將耗時較多的資料處理功能劃分出來,封裝為低優先順序任務。(例如各種資料處理單元)
將關係密切的若干功能組合為乙個任務,達到功能聚合的效果,省去任務之間負責的通行資料。
將相同事件觸發的若干功能組合成為乙個任務,從而免除事件分方法機制。
將若干週期相同的功能組合成為乙個任務,避免乙個時間事件觸發幾個任務,免除時間事件分發機制。
將若干按固定順序執行的功能組合為乙個任務,從而免除同步接力通訊的麻煩。
uCOS II任務之延時函式
1.在ucos ii裡,系統也提供了這樣的延時函式。乙個是大眾版的ostimedly 乙個是精緻版的ostimedlyhmsm 蘿蔔青菜,各有所愛,隨你怎麼選。這兩者的區別是,ostimedly 的延時時間是以節拍數來衡量的,ostimedlyhmsm 的延時時間則是以具體時間大小來衡量的。這兩個函...
UC OS II任務管理(1)之任務控制塊
任務狀態 ucosii任務狀態一共有睡眠 就緒 阻塞 執行 以及中斷掛起五種狀態。睡眠態 dormant 任務已經在記憶體中裝入,但是還沒有進行任務執行的所需要的條件。就緒態 ready 是任務已經做好執行的一切準備了,就只差排程程式排程,將cpu讓給執行。阻塞態 waiting 當任務因為需要某些...
uCOS II任務機制
1 任務是乙個無返回的無窮迴圈。uc os ii總是執行進入就緒狀態的最高優先順序的任務。2 任務是如何排程 切換 的?因為uc os ii總是執行進入就緒狀態的最高優先順序的任務。所以,確定哪個任務優先順序最高,下面該哪個任務執行,這個工作就是由排程器 scheduler 來完成的。任務級的排程是...