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

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

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


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