999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于μC/OS?Ⅲ的多任務(wù)間郵箱機制分析與應(yīng)用

2013-04-12 00:00:00業(yè)葦渡宋軍趙明忠
現(xiàn)代電子技術(shù) 2013年6期

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

關(guān)鍵字: 嵌入式系統(tǒng); 任務(wù)間通信; μC/OS?Ⅲ; 郵箱

中圖分類號: TN311?34 文獻標識碼: A 文章編號: 1004?373X(2013)06?0042?03

0 引 言

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

1 μC/OS?Ⅲ簡介

2 任務(wù)間通信與郵箱的應(yīng)用

由于嵌入式系統(tǒng)軟件通常由基于操作系統(tǒng)的若干個任務(wù)實現(xiàn),因此,不可避免的需要任務(wù)之間或中斷服務(wù)子程序與任務(wù)間的通信,這種信息傳遞機制稱為任務(wù)間的通信。μC/OS?Ⅲ任務(wù)間的通信可以通過共享內(nèi)存、信號量、任務(wù)內(nèi)建消息隊列、外部消息隊列、事件標志組實現(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ù)共同等待的消息,事件標志組則用于多個任務(wù)間的同步[6?7]。

總結(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è)計帶來了一定的難度,為避免這種情況,常用的解決方法是采用郵箱[1]。

典型的消息郵箱(Message Mail Box)也稱作交換消息,即用一個指針型變量,一個任務(wù)或一個中斷服務(wù)子程序通過內(nèi)核,可以把一則消息(一個指針)放到郵箱中。同樣,一個或多個任務(wù)通過內(nèi)核,可以接收這則消息。發(fā)送消息的任務(wù)和接收消息的任務(wù)約定,某個指針指向的內(nèi)容就是它們要傳送的消息,如發(fā)送消息用指針*Txmsg,而接收消息用指針*Rxmsg。這種消息傳送的過程與通過郵箱收發(fā)郵件頗為相似,故稱消息郵箱,或簡稱郵箱。

下述代碼給出了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 用郵箱作為二值信號量

4 結(jié) 語

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

參考文獻

[1] 張皓,伍云,周志杰.基于VxWorks的任務(wù)間通信模型設(shè)計[J].計算機工程,2007(2):131?135.

[2] 曾蜀芳,郭兵,沈艷.統(tǒng)一優(yōu)先級軟/硬件任務(wù)協(xié)同調(diào)度下的任務(wù)間通信機制[J].單片機與嵌入式系統(tǒng)應(yīng)用,2009(4):21?24.

[3] LABROSSE J J, TORRES Freddy. μC/OS?Ⅲ: the real?time kernel for the NXP LPC1700 [M]. [S.l.]: Micrium, 2010.

[4] 李承創(chuàng),陳躍斌.μC/OS?Ⅲ在Cortex?M3處理器上的移植[J].昆明冶金高等專科學校學報,2012,28(1):37?40.

[5] 邵貝貝.淺談μC/OS 任務(wù)調(diào)度算法的硬件實現(xiàn)[J].單片機與嵌入式系統(tǒng)應(yīng)用,2010(9):5?7.

[6] 屈環(huán)宇,陳麗萍.μC/OS?Ⅲ任務(wù)間通信的研究[J].電腦知識與技術(shù),2012(1):306?309.

[7] 邵貝貝.嵌入式操作系統(tǒng)μC/OS?Ⅲ[EB/OL].[2011?08?30].http://www.hqew.com/tech/news/373642.html.

主站蜘蛛池模板: 精品一区二区久久久久网站| 日韩高清成人| 99热国产这里只有精品9九| 伊人久综合| 国产99欧美精品久久精品久久| 99福利视频导航| 亚洲精品桃花岛av在线| 日韩第八页| 久久精品娱乐亚洲领先| 曰韩人妻一区二区三区| 手机精品福利在线观看| 国产精品无码翘臀在线看纯欲| 91精品国产情侣高潮露脸| 国产十八禁在线观看免费| 亚洲成a人片| 一级毛片免费不卡在线| 亚洲视频免| 色视频久久| 国产91久久久久久| 精品一区国产精品| 69视频国产| 免费国产一级 片内射老| 亚洲av无码片一区二区三区| 黄色免费在线网址| 亚洲系列无码专区偷窥无码| 丁香婷婷综合激情| 亚洲人在线| 蜜桃臀无码内射一区二区三区| 97精品国产高清久久久久蜜芽| 亚洲国产理论片在线播放| www精品久久| 国产玖玖视频| 一级黄色网站在线免费看| 亚洲中文精品人人永久免费| 免费观看国产小粉嫩喷水| 国产精品国产三级国产专业不| 亚洲天堂视频在线观看免费| 国产高清在线丝袜精品一区| 欧美精品成人| 国产精品欧美在线观看| 久久免费视频6| 奇米影视狠狠精品7777| 一级毛片免费高清视频| 天天躁夜夜躁狠狠躁躁88| 国产丝袜无码一区二区视频| 日韩成人在线网站| 伊人色在线视频| 熟女成人国产精品视频| 麻豆国产原创视频在线播放 | 成人国内精品久久久久影院| 久久夜夜视频| 999在线免费视频| 日韩亚洲综合在线| 丰满少妇αⅴ无码区| 丁香六月综合网| 日本在线国产| 国产香蕉国产精品偷在线观看| 91网在线| 萌白酱国产一区二区| 免费看av在线网站网址| 国产美女一级毛片| 国产一区三区二区中文在线| 日韩视频免费| 无码人妻热线精品视频| 久久午夜影院| 91亚洲精选| 亚洲性网站| 激情影院内射美女| 99视频有精品视频免费观看| 欧美成人看片一区二区三区| 在线免费不卡视频| 亚洲无码高清视频在线观看| 日韩高清欧美| 久久香蕉国产线| 国产在线麻豆波多野结衣| 92午夜福利影院一区二区三区| 熟妇无码人妻| 人禽伦免费交视频网页播放| 久久99国产综合精品1| 亚洲欧美另类视频| 色香蕉网站| 91久久精品国产|