μC/OS-Ⅱ在應用系統(tǒng)中任務劃分方法的研究
在一些較復雜的嵌入式應用系統(tǒng)中,個別任務代碼會包含繁瑣的計算算法,運行時占用大量的CPU處理時間和資源,嚴重影響μC/OS-Ⅱ系統(tǒng)的實時性。對于這樣的任務,可將其按照不同的內部功能劃分為多個模塊,每個模塊即為一個相對獨立的小任務,相互之間通過任務通信機制協(xié)調工作。由于需要占用CPU較多的處理時間,這些任務幾乎沒有實時性要求,所以通常將其優(yōu)先級設低,以確保強實時任務的正常運行。
例如:當前的μC/OS-Ⅱ系統(tǒng)中有一任務在調度執(zhí)行時會占用較長時間,導致其運行過程頻繁被強實時任務打斷,這樣CPU就需要“犧牲”大量時間和空間用于保存被打斷的任務現(xiàn)場,而整個系統(tǒng)的實時性就會大大降低,執(zhí)行效率也大打折扣。該任務的描述如下:首先根據(jù)算法1處理數(shù)據(jù)X,其次利用算法2處理數(shù)據(jù)Y,最后將數(shù)據(jù)X和數(shù)據(jù)Y通過算法3得到數(shù)據(jù)Z。在這種情況下,應將不同的算法處理部分劃分為獨立的子任務,并根據(jù)執(zhí)行順序逐次遞減任務優(yōu)先級。由于縮短了單個任務的執(zhí)行時間,任務的響應時間也隨之變短,整個系統(tǒng)的實時性得到了提高。
3 應用實例
作者在參與開發(fā)的一個項目網(wǎng)絡數(shù)據(jù)采集系統(tǒng)中使用了μC/OS-Ⅱ進行多任務的管理。該項目基于Freescale公司1994年推出的微處理器MC9S12NE64,主要功能要求網(wǎng)絡數(shù)據(jù)采集系統(tǒng)通過光敏傳感器采集工廠生產(chǎn)設備的多個狀態(tài)指示燈,以獲取當前設備的工作狀態(tài)信息,隨后通過UDP包將信息發(fā)送至局域網(wǎng)中PC服務器處理。此外,技術人員還能夠通過串行通信方式對采集系統(tǒng)進行測試和維護。該采集系統(tǒng)劃分的主要任務及其優(yōu)先級設定如表1所示。
生產(chǎn)設備狀態(tài)信息采集及處理任務優(yōu)先級最高,因為該任務屬于強實時性任務,無法及時執(zhí)行會使采集系統(tǒng)處于癱瘓狀態(tài)。而同樣屬于實時任務的系統(tǒng)測試維護功能由于實時要求并不高,所以優(yōu)先級次之。
A/D模塊驅動程序、網(wǎng)絡模塊通信程序、串口通信程序和FIASH模塊操作程序與各自硬件單元關系密切,故將它們劃分為獨立的硬件相關任務。
采集系統(tǒng)中耗時最多、處理最復雜的部分是局域網(wǎng)內的數(shù)據(jù)通信。由于受到芯片存儲空間的限制,作者并沒有移植現(xiàn)有源碼公開的TCP/IP協(xié)議棧,取而代之的是自主研發(fā)了簡易TCP/IP協(xié)議,并將該協(xié)議棧中每一層分割成為1個獨立的任務存在。
4 結語
μC/OS-Ⅱ是一個公開源碼、搶占式、多任務的嵌入式實時操作系統(tǒng),自1992年面世以來,已應用于上百種產(chǎn)品。與一些商用嵌入式操作系統(tǒng)相比,它源代碼結構清晰,易于移植和裁剪,具有很大的發(fā)展空間。本文在分析μC/OS-Ⅱ任務管理機制的基礎上,對μC/OS-Ⅱ的任務劃分進行了初步探究,闡述了一些任務劃分的方法:“劃分與硬件模塊相關的任務”、“劃分強實時性任務”、“分割耗時較多的任務”。最后,結合開發(fā)實踐給出了基于μC/OS-Ⅱ應用系統(tǒng)的任務劃分實例。
評論