www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]摘要:為靈活、有效地在多任務(wù)程序設(shè)計中應(yīng)用μC/OS-Ⅲ操作系統(tǒng)中的郵箱,采用理論分析與實例實驗相結(jié)合的方法,得到基于μC/OS-Ⅲ操作系統(tǒng)的郵箱機制在全雙工任務(wù)間通信、二值信號量和充當(dāng)延遲函數(shù)等方面的應(yīng)

摘要:為靈活、有效地在多任務(wù)程序設(shè)計中應(yīng)用μC/OS-Ⅲ操作系統(tǒng)中的郵箱,采用理論分析與實例實驗相結(jié)合的方法,得到基于μC/OS-Ⅲ操作系統(tǒng)的郵箱機制在全雙工任務(wù)間通信、二值信號量和充當(dāng)延遲函數(shù)等方面的應(yīng)用技巧和方法。實驗表明,郵箱的靈活應(yīng)用不僅可以實現(xiàn)傳統(tǒng)的任務(wù)間數(shù)據(jù)通信,還可以方便地替代互斥信號量和實現(xiàn)延時功能。
關(guān)鍵字:嵌入式系統(tǒng);任務(wù)間通信;μC/OS-Ⅲ;郵箱

0 引言
   
嵌入式系統(tǒng)軟件通常由多個功能模塊構(gòu)成,而模塊的功能一般由基于嵌入式操作系統(tǒng)的任務(wù)來實現(xiàn)。在實際應(yīng)用中,常需要進行任務(wù)間通信來實現(xiàn)特定的功能,如變量的傳遞、資源的共享等,這就需要針對操作系統(tǒng)建立可靠的任務(wù)間通信,而郵箱是最常用的任務(wù)間通信機制之一。本文基于μC/OS-Ⅲ嵌入式實時操作系統(tǒng),研究了郵箱的使用和技巧,不僅探討了郵箱在傳統(tǒng)任務(wù)間通信和數(shù)據(jù)的傳遞中的應(yīng)用,還通過實例研究了郵箱在二值信號量和實現(xiàn)延時功能中的靈活應(yīng)用。

1 μC/OS-Ⅲ簡介
   
嵌入式實時操作系統(tǒng)(RTOS)是嵌入式系統(tǒng)的關(guān)鍵組成部分。近年來,μC/OS-Ⅲ操作系統(tǒng)以其較小的體積、開放的源碼和值得信賴的可靠性獲得了工程技術(shù)人員的青睞。2011年,μC/OS-Ⅲ的升級版μC/OS-Ⅲ發(fā)布。μC/OS-Ⅲ秉承了前一版本的優(yōu)點,是一個高度可移植、可固化、可擴展,具有優(yōu)先搶占的實時性,專為滿足當(dāng)今嵌入式系統(tǒng)的苛刻要求的多任務(wù)內(nèi)核,它的最大改進之處在于允許多個任務(wù)運行于同一優(yōu)先級上,相同優(yōu)先級的任務(wù)按時間片輪轉(zhuǎn)調(diào)度,內(nèi)核對象的數(shù)量不受限制以及接近于零的終端禁用時鐘周期。μC/OS-Ⅲ內(nèi)核為程序員提供了高效的實時任務(wù)調(diào)度、中斷管理以及任務(wù)間通信。與前期版本不同,μC/OS-Ⅲ支持無限多個任務(wù),無限多個優(yōu)先級,無限多個信號量,同時支持互斥信號量、消息郵箱等任務(wù)間通信方式。

2 任務(wù)間通信與郵箱的應(yīng)用
   
由于嵌入式系統(tǒng)軟件通常由基于操作系統(tǒng)的若干個任務(wù)實現(xiàn),因此,不可避免的需要任務(wù)之間或中斷服務(wù)子程序與任務(wù)間的通信,這種信息傳遞機制稱為任務(wù)間的通信。μC/OS-Ⅲ任務(wù)間的通信可以通過共享內(nèi)存、信號量、任務(wù)內(nèi)建消息隊列、外部消息隊列、事件標(biāo)志組實現(xiàn)。共享內(nèi)存方式使用全局變量或緩存,對大型而復(fù)雜的程序,多個任務(wù)同時對一個變量進行讀寫操作會引起沖突或緩存區(qū)的溢出,因此共享內(nèi)存用于共享一些對數(shù)據(jù)安全性不高的通用數(shù)據(jù)。信號量的通信模型雖然可以很好地起到互斥的作用,但在多個任務(wù)同時與某一任務(wù)通信是就會產(chǎn)生對信號量的競爭,引起通信發(fā)起端的排隊,降低系統(tǒng)的效率。任務(wù)內(nèi)建消息隊列一般用于接收少量消息(如中斷服務(wù)程序發(fā)送過來的消息)、外部消息隊列主要面向于多個任務(wù)共同等待的消息,事件標(biāo)志組則用于多個任務(wù)間的同步。
    總結(jié)來說,μC/OS-Ⅲ任務(wù)間通信有2個途徑:通過全局變量或發(fā)消息給另一個任務(wù)。用全局變量時,必須保證每個任務(wù)或中斷服務(wù)子程序獨享該變量。中斷服務(wù)中保證獨享的惟一辦法是關(guān)中斷。如果2個任務(wù)共享某變量,各任務(wù)實現(xiàn)獨享該變量的辦法可以使關(guān)中斷,再開中斷,或使用信號量。需要注意的是,任務(wù)只能通過全局變量與中斷服務(wù)子程序通信,而任務(wù)并不知道什么時候全局變量被中斷服務(wù)子程序修改了,除非中斷服務(wù)子程序以信號量方式向任務(wù)發(fā)信號,或者是該任務(wù)以查詢方式不斷周期地查詢變量的值。這樣就不可避免地給程序設(shè)計帶來了一定的難度,為避免這種情況,常用的解決方法是采用郵箱。
    典型的消息郵箱(Message Mail Box)也稱作交換消息,即用一個指針型變量,一個任務(wù)或一個中斷服務(wù)子程序通過內(nèi)核,可以把一則消息(一個指針)放到郵箱中。同樣,一個或多個任務(wù)通過內(nèi)核,可以接收這則消息。發(fā)送消息的任務(wù)和接收消息的任務(wù)約定,某個指針指向的內(nèi)容就是它們要傳送的消息,如發(fā)送消息用指針*Txmsg,而接收消息用指針*Rxmsg。這種消息傳送的過程與通過郵箱收發(fā)郵件頗為相似,故稱消息郵箱,或簡稱郵箱。
    為了在μC/OS-Ⅲ中使用郵箱,必須將OS_CFG.H文件中相應(yīng)的配置常數(shù)置1。具體配置項如表1所示。


    需要說明的是,由于μC/OS-Ⅲ的郵箱管理必須有函數(shù)OSMboxCreate()和OSMboxPend()的參與,所以它們不能單獨被屏蔽掉。但從表1中可以看出,將OS_MBOX_EN選項置0即可屏蔽所有郵箱函數(shù),當(dāng)然也可以屏蔽OSMboxCreate()和OSMboxPend()函數(shù)。
    μC/OS-Ⅲ的郵箱支持任務(wù)與任務(wù)之間、任務(wù)與中斷服務(wù)子程序之間進行消息傳遞,圖1給出了郵箱支持的消息傳遞過程中所用到的函數(shù)和任務(wù)、中斷服務(wù)子程序之間的關(guān)系。


    從圖1可以看出,任務(wù)或中斷服務(wù)子程序都可以調(diào)用函數(shù)OSMboxPost()和OSMboxPostOpt(),但只有任務(wù)可以調(diào)用OSMboxCreate(),OSMbo xDel(),OSMboxPend()及OSMboxQuery()函數(shù)。此外,μC/OS-Ⅲ中應(yīng)用程序可以使用多個郵箱,其最大數(shù)目由OS_CFG.H文件中的配置常數(shù)OS_MAX_EVENTS設(shè)定。
    在表1中各選項配置完畢并了解圖1中各郵箱函數(shù)的關(guān)系后,即可以使用郵箱進行消息的傳遞,其具體過程為:創(chuàng)建郵箱OSMboxCreate();郵箱內(nèi)消息的內(nèi)容初始化,此時郵箱內(nèi)是否有消息并不重要;將消息放入郵箱OSMboxPost();等待有消息進入郵箱OSMboxPend();如果郵箱內(nèi)有消息,則任務(wù)將消息從郵箱中取走;如果郵箱內(nèi)沒有消息,則內(nèi)核不將該任務(wù)掛起,返回空指針。
    下述代碼給出了2個郵箱TxMbox和RxMbox的建立方法,同時TaskOne和TaskTwo兩個任務(wù)使用郵箱實現(xiàn)了全雙工的應(yīng)答式通信。
   
   
   
    從代碼可以看出,使用內(nèi)核提供的郵箱服務(wù)實現(xiàn)任務(wù)問通信方便、簡單,這也是郵箱作為任務(wù)問通信最常用手段的原因。此外,在實際應(yīng)用中,通過分析郵箱的功能特點,還可以將其應(yīng)用到其他場合以實現(xiàn)一些靈活的功能。

3 郵箱的靈活應(yīng)用
3
1 用郵箱作為二值信號量
   
郵箱可以當(dāng)作二值信號量用,郵箱中有消息表示資源可以使用,而空郵箱表示資源已經(jīng)被其他資源占用。首先,在初始化時將郵箱設(shè)置為一個非空指針(eg.void*1),這樣,一個任務(wù)可以調(diào)用OSMboxPend()函數(shù)請求信號量,然后通過調(diào)用OSMboxPost()函數(shù)釋放信號量。若只需要二值信號量和郵箱,采用這種方法可以節(jié)省代碼空間。此時,需將OS_MBOX_EN置1,而將OS_SEM_EN清0,即只用郵箱,而不是同時使用郵箱和信號量。同樣,給出了一個郵箱傳遞二值信號量的簡單示例。
   
3.2 郵箱實現(xiàn)延時,而不使用OSTimeDly()
   
郵箱的超時等待功能可以用作延時,模仿OS-TimeDly()函數(shù)功能。示例代碼如下:
   
   
    在程序執(zhí)行過程中,若在指定的時間TIMEOUT內(nèi)沒有消息到來,則TaskC繼續(xù)執(zhí)行,這顯然與OSTimeDly(TIMEOUT)功能類似;但是,如果TaskD在指定的時間結(jié)束之前,向郵箱發(fā)送一個dummy消息,則可以中止任務(wù)1中的延時,使TaskC提前繼續(xù)執(zhí)行,這與調(diào)用函數(shù)OSTimeDly Res ume()的功能一致。

4 結(jié)語
   
本文基于嵌入式操作系統(tǒng)μC/OS-Ⅲ探討了郵箱在任務(wù)間通信中的應(yīng)用方法及注意事項,分析了各郵箱函數(shù)的關(guān)系及使能/屏蔽方法,并給出示例實現(xiàn)2個任務(wù)的全雙工通信;在此基礎(chǔ)上,還研究了郵箱在二值信號量和延時功能中的靈活應(yīng)用,并給出實例代碼驗證,這在嵌入式系統(tǒng)開發(fā)過程中有一定的參考價值。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉