摘要: 為靈活、有效地在多任務程序設計中應用μC/OS?Ⅲ操作系統中的郵箱,采用理論分析與實例實驗相結合的方法,得到基于μC/OS?Ⅲ操作系統的郵箱機制在全雙工任務間通信、二值信號量和充當延遲函數等方面的應用技巧和方法。實驗表明,郵箱的靈活應用不僅可以實現傳統的任務間數據通信, 還可以方便地替代互斥信號量和實現延時功能。
關鍵字: 嵌入式系統; 任務間通信; μC/OS?Ⅲ; 郵箱
中圖分類號: TN311?34 文獻標識碼: A 文章編號: 1004?373X(2013)06?0042?03
0 引 言
嵌入式系統軟件通常由多個功能模塊構成,而模塊的功能一般由基于嵌入式操作系統的任務來實現。在實際應用中,常需要進行任務間通信來實現特定的功能,如變量的傳遞、資源的共享等,這就需要針對操作系統建立可靠的任務間通信,而郵箱是最常用的任務間通信機制之一[1?2]。本文基于μC/OS?Ⅲ嵌入式實時操作系統[3],研究了郵箱的使用和技巧,不僅探討了郵箱在傳統任務間通信和數據的傳遞中的應用,還通過實例研究了郵箱在二值信號量和實現延時功能中的靈活應用。
1 μC/OS?Ⅲ簡介
2 任務間通信與郵箱的應用
由于嵌入式系統軟件通常由基于操作系統的若干個任務實現,因此,不可避免的需要任務之間或中斷服務子程序與任務間的通信,這種信息傳遞機制稱為任務間的通信。μC/OS?Ⅲ任務間的通信可以通過共享內存、信號量、任務內建消息隊列、外部消息隊列、事件標志組實現。共享內存方式使用全局變量或緩存,對大型而復雜的程序,多個任務同時對一個變量進行讀寫操作會引起沖突或緩存區的溢出,因此共享內存用于共享一些對數據安全性不高的通用數據?!?br>