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

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

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

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

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

中圖分類號(hào): TN311?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2013)06?0042?03

0 引 言

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

1 μC/OS?Ⅲ簡(jiǎn)介

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

由于嵌入式系統(tǒng)軟件通常由基于操作系統(tǒng)的若干個(gè)任務(wù)實(shí)現(xiàn),因此,不可避免的需要任務(wù)之間或中斷服務(wù)子程序與任務(wù)間的通信,這種信息傳遞機(jī)制稱為任務(wù)間的通信。μC/OS?Ⅲ任務(wù)間的通信可以通過(guò)共享內(nèi)存、信號(hào)量、任務(wù)內(nèi)建消息隊(duì)列、外部消息隊(duì)列、事件標(biāo)志組實(shí)現(xiàn)。共享內(nèi)存方式使用全局變量或緩存,對(duì)大型而復(fù)雜的程序,多個(gè)任務(wù)同時(shí)對(duì)一個(gè)變量進(jìn)行讀寫(xiě)操作會(huì)引起沖突或緩存區(qū)的溢出,因此共享內(nèi)存用于共享一些對(duì)數(shù)據(jù)安全性不高的通用數(shù)據(jù)。信號(hào)量的通信模型雖然可以很好地起到互斥的作用,但在多個(gè)任務(wù)同時(shí)與某一任務(wù)通信是就會(huì)產(chǎn)生對(duì)信號(hào)量的競(jìng)爭(zhēng),引起通信發(fā)起端的排隊(duì),降低系統(tǒng)的效率。任務(wù)內(nèi)建消息隊(duì)列一般用于接收少量消息(如中斷服務(wù)程序發(fā)送過(guò)來(lái)的消息)、外部消息隊(duì)列主要面向于多個(gè)任務(wù)共同等待的消息,事件標(biāo)志組則用于多個(gè)任務(wù)間的同步[6?7]。

總結(jié)來(lái)說(shuō),μC/OS?Ⅲ任務(wù)間通信有2個(gè)途徑:通過(guò)全局變量或發(fā)消息給另一個(gè)任務(wù)。用全局變量時(shí),必須保證每個(gè)任務(wù)或中斷服務(wù)子程序獨(dú)享該變量。中斷服務(wù)中保證獨(dú)享的惟一辦法是關(guān)中斷。如果2個(gè)任務(wù)共享某變量,各任務(wù)實(shí)現(xiàn)獨(dú)享該變量的辦法可以使關(guān)中斷,再開(kāi)中斷,或使用信號(hào)量。需要注意的是,任務(wù)只能通過(guò)全局變量與中斷服務(wù)子程序通信,而任務(wù)并不知道什么時(shí)候全局變量被中斷服務(wù)子程序修改了,除非中斷服務(wù)子程序以信號(hào)量方式向任務(wù)發(fā)信號(hào),或者是該任務(wù)以查詢方式不斷周期地查詢變量的值。這樣就不可避免地給程序設(shè)計(jì)帶來(lái)了一定的難度,為避免這種情況,常用的解決方法是采用郵箱[1]。

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

下述代碼給出了2個(gè)郵箱TxMbox和RxMbox的建立方法,同時(shí)TaskOne和TaskTwo兩個(gè)任務(wù)使用郵箱實(shí)現(xiàn)了全雙工的應(yīng)答式通信。

從代碼可以看出,使用內(nèi)核提供的郵箱服務(wù)實(shí)現(xiàn)任務(wù)間通信方便、簡(jiǎn)單,這也是郵箱作為任務(wù)間通信最常用手段的原因。此外,在實(shí)際應(yīng)用中,通過(guò)分析郵箱的功能特點(diǎn),還可以將其應(yīng)用到其他場(chǎng)合以實(shí)現(xiàn)一些靈活的功能。

3 郵箱的靈活應(yīng)用

3.1 用郵箱作為二值信號(hào)量

4 結(jié) 語(yǔ)

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

參考文獻(xiàn)

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

[2] 曾蜀芳,郭兵,沈艷.統(tǒng)一優(yōu)先級(jí)軟/硬件任務(wù)協(xié)同調(diào)度下的任務(wù)間通信機(jī)制[J].單片機(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].昆明冶金高等專科學(xué)校學(xué)報(bào),2012,28(1):37?40.

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

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

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

主站蜘蛛池模板: 成人亚洲天堂| 97超级碰碰碰碰精品| hezyo加勒比一区二区三区| 久久99国产综合精品1| 综合社区亚洲熟妇p| 在线观看无码a∨| 99热线精品大全在线观看| 亚洲综合经典在线一区二区| 午夜精品国产自在| 日本一本正道综合久久dvd| 深爱婷婷激情网| 久久午夜夜伦鲁鲁片不卡| 又粗又硬又大又爽免费视频播放| 91亚洲精选| V一区无码内射国产| 亚洲a级毛片| 曰韩人妻一区二区三区| 一级高清毛片免费a级高清毛片| 日韩不卡高清视频| 欧美亚洲一二三区| 高清乱码精品福利在线视频| 国内精自线i品一区202| 中文字幕丝袜一区二区| 亚洲人成网站观看在线观看| 欧美区一区二区三| 爱爱影院18禁免费| 又大又硬又爽免费视频| 日本91在线| 日韩精品无码免费专网站| 在线免费看片a| 久久99热66这里只有精品一| 久久久亚洲色| 免费一级大毛片a一观看不卡| 91精品最新国内在线播放| 亚洲人成亚洲精品| 亚洲国产av无码综合原创国产| 亚洲精品视频免费观看| 欧美精品在线视频观看| 免费在线a视频| 国产日韩欧美在线视频免费观看| 日本一区中文字幕最新在线| 精品国产电影久久九九| AV在线麻免费观看网站| 国产91高清视频| 欧美精品亚洲日韩a| 亚洲无线观看| 波多野结衣无码中文字幕在线观看一区二区| 麻豆精品在线播放| 亚洲Av激情网五月天| 欧美激情视频在线观看一区| 国产99视频精品免费观看9e| 第一区免费在线观看| 亚洲视频四区| 国产欧美精品午夜在线播放| 国产va免费精品| 免费人成视网站在线不卡| 一本大道在线一本久道| 91精品最新国内在线播放| 欧美亚洲一区二区三区在线| 无码高潮喷水专区久久| 久久网综合| 黄色网在线| 欧美va亚洲va香蕉在线| 最新精品国偷自产在线| 欧美精品成人| 亚洲日韩久久综合中文字幕| 国产精品va| 特级毛片免费视频| 中日无码在线观看| 国产在线拍偷自揄观看视频网站| 亚洲国产天堂久久综合| 亚洲欧美自拍一区| 午夜日本永久乱码免费播放片| 久久成人18免费| 一本综合久久| 欧美午夜久久| 一本综合久久| 国产精品九九视频| 国产小视频a在线观看| 欧美成人怡春院在线激情| 欧美日韩国产在线观看一区二区三区| 亚洲国产成人精品无码区性色|