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

一種基于SylixOS的多任務(wù)間數(shù)據(jù)通信方法探究

2021-03-18 06:53:32
科學(xué)與信息化 2021年7期
關(guān)鍵詞:嵌入式

南京科瑞達電子裝備有限責(zé)任公司 江蘇 南京 211100

引言

隨著芯片制造工藝的持續(xù)進步和計算機技術(shù)的快速發(fā)展,嵌入式操作系統(tǒng)作為信息社會很重要的基礎(chǔ)支撐已被廣泛用于各類電子設(shè)備中,并發(fā)揮了極其重要的作用。嵌入式實時操作系統(tǒng)是一類特殊的嵌入式操作系統(tǒng),它能夠在外界事件或數(shù)據(jù)產(chǎn)生時迅速反應(yīng),并以足夠快的速度處理事件,以保證系統(tǒng)能夠在確定的時間內(nèi)對處理結(jié)果做出快速響應(yīng),同時控制所有實時任務(wù)協(xié)調(diào)一致運行。目前在工業(yè)控制、軍事設(shè)備、航空航天等對系統(tǒng)響應(yīng)時間有嚴苛要求的領(lǐng)域中都有著非常廣泛的應(yīng)用。

在一個中大型嵌入式軟件應(yīng)用中,通常需要建立一個復(fù)雜的多任務(wù)環(huán)境,系統(tǒng)運行時通過任務(wù)間交換消息來實現(xiàn)某些特定的系統(tǒng)功能。在這些任務(wù)信息交互過程中,普遍存在一個任務(wù)往多個任務(wù)發(fā)送消息的場景,同時也存在某一個任務(wù)會接收來自多個其他任務(wù)發(fā)送過來的消息的場景。這些任務(wù)間數(shù)據(jù)通信交錯復(fù)雜,并且任務(wù)間通信的數(shù)據(jù)長度各不相同。因此需要研究一種高效的、實時的、通信數(shù)據(jù)可變長的,且無任何中轉(zhuǎn)機制的多任務(wù)間點對點的數(shù)據(jù)通信方法。

1 嵌入式實時操作系統(tǒng)SylixOS簡介

SylixOS操作系統(tǒng)是一種基于搶占式多任務(wù)硬實時操作系統(tǒng),兼容IEEE1003(ISO/IEC9945)操作系統(tǒng)接口規(guī)范,兼容POSIX 1003.1b(ISO/IEC 9945-1)實時編程的標準,具有優(yōu)秀的實時性能,能夠支持無限多任務(wù),搶占式調(diào)度支持256個任務(wù)優(yōu)先級,支持虛擬進程,支持優(yōu)先級繼承及防止優(yōu)先級反轉(zhuǎn)功能。同時支持二進制信號量、計數(shù)型信號量、互斥信號量、消息隊列等資源共享方式。由于兼容POSIX標準,同樣一個Linux下的符合POSIX標準的應(yīng)用程序,無須任何修改可以在SylixOS下完美運行。另外,VxWorks也是一款符合POSIX標準的實時操作系統(tǒng),因此,SylixOS可以使VxWorks開發(fā)者能夠很快地適應(yīng)SylixOS的程序開發(fā),并提供了VxWorks兼容接口。

SylixOS是一款大型嵌入式實時操作系統(tǒng),經(jīng)過多年開發(fā),目前已經(jīng)成為一個功能完善、性能卓越、可靠穩(wěn)定的嵌入式系統(tǒng)軟件開發(fā)平臺,在設(shè)計思路上借鑒了眾多實時操作系統(tǒng)的設(shè)計思想,使得SylixOS在功能和具體性能上達到或超過了眾多實時操作系統(tǒng)的水平,成為國內(nèi)實時操作系統(tǒng)的最優(yōu)秀代表之一,目前在工業(yè)自動化、軍事、通信、民用等領(lǐng)域都有較為廣泛的應(yīng)用[1]。

2 傳統(tǒng)多任務(wù)間通信方式存在的問題

SylixOS作為大型實時操作系統(tǒng),支持的多任務(wù)間通信方式主要有以下幾種:共享內(nèi)存、信號量和消息隊列。同時為了實現(xiàn)多任務(wù)對臨界資源的互斥訪問,SylixOS也提供了很多種方法,主要包括讀寫鎖、條件變量、自旋鎖、原子量及信號量等。

在一個大型的嵌入式軟件應(yīng)用中,可能同時運行有十幾個甚至幾十個軟件任務(wù),并且任務(wù)之間的消息交互非常頻繁,通信的數(shù)據(jù)長度較大。共享內(nèi)存的方式需要開辟很大一個內(nèi)存空間來存儲中間數(shù)據(jù),同時需要對共享區(qū)域數(shù)據(jù)的讀寫操作做好互斥。一方面,雖然操作系統(tǒng)內(nèi)核提供了讀寫鎖、信號量等機制可以在一定條件下解決共享資源的互斥訪問問題,但是在一些任務(wù)間通信較為復(fù)雜的多任務(wù)環(huán)境中,勢必會引起數(shù)據(jù)發(fā)送端的任務(wù)大量排隊等待的現(xiàn)象,從而降低了系統(tǒng)的運行效率。另一方面,消息隊列機制雖然可以通過異步消息傳送模型來避免由于信號量引起的排隊問題,但是當任務(wù)數(shù)較多時,需要的消息隊列個數(shù)將會非常多,而且消息隊列中單個消息的數(shù)據(jù)長度將會要求很大,勢必會造成大量的系統(tǒng)內(nèi)存資源耗費。下面介紹的多任務(wù)間通信方法在克服這些問題方面有著一定的優(yōu)勢。

3 基于SylixOS的多任務(wù)間數(shù)據(jù)通信設(shè)計

在SylixOS操作系統(tǒng)環(huán)境下,每一項系統(tǒng)功能的完成往往由多個任務(wù)或者多個任務(wù)與中斷服務(wù)程序共同完成。鑒于此,本文設(shè)計了一種新的任務(wù)間數(shù)據(jù)交互方式,采用的是點對點的消息機制,每個任務(wù)都有一個類似地址的代號(ID),發(fā)送的數(shù)據(jù)被封裝為一個消息,發(fā)送消息的任務(wù)(信源)指定接收消息任務(wù)(信宿)的代號后將消息發(fā)出,可以直接通過互斥信號量保護機制將數(shù)據(jù)壓入到信宿的環(huán)形隊列中,再計數(shù)信號量同步機制由消息接收任務(wù)進行數(shù)據(jù)處理。

第一步,由于任務(wù)間通信的消息長度和內(nèi)容都是用戶自己定義,可以是數(shù)據(jù)、指令或指針等,因此,我們在創(chuàng)建每一個任務(wù)時,需要創(chuàng)建一個與之關(guān)聯(lián)的用于存儲消息的環(huán)形隊列,環(huán)形隊列緩沖區(qū)總大小由用戶根據(jù)實際任務(wù)交互的消息大小和數(shù)量來確定,環(huán)形隊列的結(jié)構(gòu)如下圖 1所示。同時為保證任務(wù)間通信時的同步與互斥,需要分別創(chuàng)建一個與任務(wù)相關(guān)聯(lián)的二進制信號量與計數(shù)信號量[2]。

圖1 任務(wù)的環(huán)形隊列示意圖

每個任務(wù)的環(huán)形隊列和信號量的創(chuàng)建過程如下:

以上程序段在系統(tǒng)中創(chuàng)建并啟動Task1、Task2、Task3,Task1建立一個緩存大小為RNG_SIZE1的環(huán)形隊列,同時創(chuàng)建一個二進制信號量和一個計數(shù)信號量,名稱分別為“semB1”和“semC1”。Task2建立一個緩存大小為RNG_SIZE2的環(huán)形隊列,同時創(chuàng)建一個二進制信號量和一個計數(shù)信號量,名稱分別為“semB2”和“semC2”。Task3建立一個緩存大小為RNG_SIZE3的環(huán)形隊列,同時創(chuàng)建一個二進制信號量和一個計數(shù)信號量,名稱分別為“semB3”和“semC3”。

第二步,需要發(fā)送消息的任務(wù)將消息送入接收任務(wù)的消息環(huán)形隊列中。消息發(fā)送任務(wù)對需要發(fā)送的數(shù)據(jù)進行消息頭封裝,消息結(jié)構(gòu)如下表 1所示。在發(fā)送數(shù)據(jù)時,根據(jù)接收方ID獲取接收任務(wù)ID,然后發(fā)送任務(wù)直接將數(shù)據(jù)消息壓入接收任務(wù)的環(huán)形隊列中,同時釋放同步信號量[3]。任務(wù)消息發(fā)送處理流程圖如下圖 2所示:

表1 任務(wù)間通信消息結(jié)構(gòu)表

表2 消息控制字定義表

圖2 任務(wù)消息發(fā)送處理流程圖

第三步,消息接收任務(wù)獲取同步信號量之后首先讀取消息長度,然后根據(jù)消息長度讀取環(huán)形隊列緩沖區(qū)的消息內(nèi)容進行相對應(yīng)的處理[4]。任務(wù)消息接收處理流程圖如下圖3所示:

圖3 任務(wù)消息接收處理流程圖

4 實驗證明

在CSP2020雙核處理器上,創(chuàng)建一個基于SylixOS的軟件應(yīng)用。按照上述任務(wù)間數(shù)據(jù)通信的方法,應(yīng)用中分別創(chuàng)建并激活三個軟件任務(wù),任務(wù)名分別為Task1、Task2、Task3。測試三個任務(wù)之間互相發(fā)送和接收不同數(shù)據(jù)長度(128字節(jié)、1K字節(jié)、4K字節(jié))的消息(消息格式按照上述表1進行封裝),分別測試1000次,最后計算得到數(shù)據(jù)從發(fā)送到成功接收的最大時間、最小時間和平均時間[5]。測試結(jié)果如下所示:

5 結(jié)束語

上述基于SylixOS的多任務(wù)間數(shù)據(jù)通信方法,解決了大型復(fù)雜嵌入式系統(tǒng)中任務(wù)間一對多、多對一的數(shù)據(jù)通信問題,滿足其對于嵌入式實時操作系統(tǒng)中多任務(wù)間通信效率高、實時性強、通信數(shù)據(jù)可變長等要求,目前該方法已經(jīng)在某型電子對抗裝備應(yīng)用軟件中得到了成功的應(yīng)用。

猜你喜歡
嵌入式
Focal&Naim同框發(fā)布1000系列嵌入式揚聲器及全新Uniti Atmos流媒體一體機
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
電子制作(2019年7期)2019-04-25 13:17:14
基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計
嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
電子制作(2018年18期)2018-11-14 01:48:16
嵌入式PLC的設(shè)計與研究
電子制作(2018年16期)2018-09-26 03:27:18
搭建基于Qt的嵌入式開發(fā)平臺
基于嵌入式系統(tǒng)Windows CE的應(yīng)用程序開發(fā)
嵌入式單片機在電機控制系統(tǒng)中的應(yīng)用探討
電子制作(2017年8期)2017-06-05 09:36:15
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
Altera加入嵌入式視覺聯(lián)盟
主站蜘蛛池模板: 天天躁夜夜躁狠狠躁图片| 中文字幕中文字字幕码一二区| 99久久免费精品特色大片| 91小视频版在线观看www| 国产免费福利网站| 在线国产毛片手机小视频| 亚洲精品无码AⅤ片青青在线观看| 欧美综合区自拍亚洲综合天堂| 亚洲精品视频免费| 国产男人天堂| 人妻丰满熟妇啪啪| 国产成人免费视频精品一区二区 | 亚洲男人的天堂网| 日韩中文欧美| 日韩免费无码人妻系列| AV片亚洲国产男人的天堂| 九九视频在线免费观看| 亚洲视频a| 欧美午夜视频| 日韩无码视频播放| 沈阳少妇高潮在线| 免费观看成人久久网免费观看| 亚洲性视频网站| 99热国产在线精品99| 九九九久久国产精品| 综合久久久久久久综合网| 青青热久免费精品视频6| 色综合天天操| 国产白浆在线| 国产成人综合久久精品尤物| 亚洲欧美国产视频| 国产污视频在线观看| 亚洲综合亚洲国产尤物| 999精品在线视频| 天堂岛国av无码免费无禁网站| 91精品啪在线观看国产| 国产成人a在线观看视频| 国产一二视频| 成人综合在线观看| 婷婷六月综合| 一区二区三区国产精品视频| 19国产精品麻豆免费观看| 国产无码在线调教| 九色视频线上播放| 波多野结衣视频一区二区| 色老二精品视频在线观看| 日本免费一级视频| 国产成人精品一区二区三在线观看| 国产精品久久久精品三级| 亚洲大学生视频在线播放| 国产啪在线91| 国产精品片在线观看手机版| 女同久久精品国产99国| 久久精品国产91久久综合麻豆自制| 亚洲AⅤ无码日韩AV无码网站| 国产在线专区| 热这里只有精品国产热门精品| 亚洲第一黄片大全| 国产老女人精品免费视频| 欧美日韩在线成人| 国产青榴视频| 亚洲精品动漫| 国产精品.com| 日本一区高清| 色有码无码视频| 精品伊人久久久久7777人| 欧美综合成人| 性欧美久久| 亚洲国产精品无码久久一线| 国产精品青青| 日韩欧美中文字幕在线精品| 毛片三级在线观看| 国内熟女少妇一线天| 91精品人妻一区二区| 国产玖玖视频| 凹凸国产熟女精品视频| 在线欧美日韩| 国产在线视频二区| 美女内射视频WWW网站午夜| 国模粉嫩小泬视频在线观看| 国产麻豆精品久久一二三| 欧美a√在线|