任務設計技術設計任務函數,和相關的數據結構。 1.任務函數的結構 在用戶任務函數中,必須包含至少一次對操作系統服務函數的調用,否則比其優先級低的任務將無法得到運行的機會。 創建后只執行一次,結束后自行刪除。
用創建任務的方式啟動任務 通常是鼓勵任務,不和其他任務通信。只使用共享資源來獲取信息和輸出信息。

當任務執行的周期遠大于系統時鐘節拍時,任務執行周期的相對誤差比較小。當執行周期只有幾個節拍時,相鄰兩次執行的間隔時間抖動不能忽視。 當任務執行周期只有一個時鐘節拍時,可將任務的功能放到時鐘節拍函數的鉤子函數中去執行。 當執行周期小于一個時鐘節拍或者不是時鐘節拍的整倍數時,只能再用獨立于操作系統的定時中斷來觸發。 這類任務創建后,很快獲得運行權。但任務實體代碼執行需要等待某種事件的發生,在相關事件發生前被操作系統掛起。相關事件發生一次,該任務實體代碼就執行一次。 

等待另外一個任務(ISR)發出信息,取得這個信息前處于等待狀態,當另一個任務(ISR)發出相關信息時(調用系統的提供的通信函數),os使該任務進入就緒態。例子: 用信號量觸發任務 用消息觸發的任務:觸發任務時需要傳遞參數


周期性任務也可以用這種任務函數來實現。定時中斷負責按預定的時間間隔準確發出信號量,被關聯的任務總是處于等待信號量的狀態,每得到一次信號量就執行一次。 觸發任務分為兩類 A: 信號類。作用啟動任務運行。 B:信息類。既啟動任務又給任務提供原始資料和數據。 2. 任務優先級安排 優先級一共X-7個 前4個不能用,后3個不能用 用于升級與備份。 中斷關聯性:與ISR有關聯的任務應該安排盡可能高的優先級,以便及時處理異步事件,提高系統實時性。 緊迫性:對時間有嚴格要求,越緊迫優先級越高。 關鍵性:越關鍵優先級越高。 頻繁性:越頻繁周期越短,允許耽誤的時間也越短,優先級越高。 快捷性:耗時越短優先級越高。 傳遞性:信息傳遞的上游任務優先級高于下游任務。 優先級安排時,最好要交叉開,這樣增加新任務時就比較方便。5 7 9 11 13
|