任務(wù)設(shè)計(jì)技術(shù)設(shè)計(jì)任務(wù)函數(shù),和相關(guān)的數(shù)據(jù)結(jié)構(gòu)。 1.任務(wù)函數(shù)的結(jié)構(gòu) 在用戶任務(wù)函數(shù)中,必須包含至少一次對操作系統(tǒng)服務(wù)函數(shù)的調(diào)用,否則比其優(yōu)先級低的任務(wù)將無法得到運(yùn)行的機(jī)會。 創(chuàng)建后只執(zhí)行一次,結(jié)束后自行刪除。
用創(chuàng)建任務(wù)的方式啟動任務(wù) 通常是鼓勵任務(wù),不和其他任務(wù)通信。只使用共享資源來獲取信息和輸出信息。

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

等待另外一個任務(wù)(ISR)發(fā)出信息,取得這個信息前處于等待狀態(tài),當(dāng)另一個任務(wù)(ISR)發(fā)出相關(guān)信息時(調(diào)用系統(tǒng)的提供的通信函數(shù)),os使該任務(wù)進(jìn)入就緒態(tài)。例子: 用信號量觸發(fā)任務(wù) 用消息觸發(fā)的任務(wù):觸發(fā)任務(wù)時需要傳遞參數(shù)


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