亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        跨平臺模塊化嵌入式多任務軟件框架研究

        2017-04-19 01:24:48馬若飛雷連發(fā)
        火控雷達技術 2017年4期
        關鍵詞:嵌入式軟件多任務嵌入式

        馬若飛 楊 柳 雷連發(fā)

        (西安電子工程研究所 西安 710100)

        0 引言

        嵌入式軟件相比桌面計算機應用軟件,具有更高的軟硬件結合度,是為了嵌入特定功能的硬件中,圍繞該硬件系統(tǒng)中的嵌入式微處理器和外圍硬件設備,完成對該硬件系統(tǒng)的控制、監(jiān)視,以及該系統(tǒng)要求完成的其他通信、處理類任務[1-2]。由于嵌入式軟件與硬件系統(tǒng)的這種強結合性,隨著硬件系統(tǒng)的變更,嵌入式軟件就要做相應的調整,使得嵌入式軟件在通用性、復用性、可移植性方面沒有桌面計算機軟件有優(yōu)勢。隨著嵌入式軟件功能的增強,軟件開發(fā)周期的縮短,以往定制型的軟件開發(fā)方式很難適應系統(tǒng)的要求[3]。本文通過對嵌入式實時多任務軟件的研究分析,針對嵌入式實時多任務軟件的跨平臺特性和模塊化特性,設計了一種軟件框架,實現了嵌入式實時多任務軟件通用性、復用性、可移植性方面的提高。

        1 軟件框架研究

        1.1 嵌入式實時多任務軟件特點

        隨著嵌入式微處理器性能的大幅提升,以及嵌入式系統(tǒng)對通信和處理類功能的要求越來越高,嵌入式實時多任務軟件開始發(fā)展成為主流[4]。嵌入式實時多任務軟件主要由三部分組成:嵌入式實時多任務操作系統(tǒng)(RTOS)、板級支撐軟件(BSP)、應用軟件(Application)。

        嵌入式實時多任務軟件具有以下特點:

        1)軟件對響應時間有非常嚴格的要求,必須在限定的時間內完成要求的功能,并且對外部傳來的異步事件也要具有及時響應的能力,這樣就要求系統(tǒng)本身的處理開銷小,進程調度及進程間通信處理實時有效,占用的時延要短。

        2)軟件和硬件結合度高,整個軟件系統(tǒng)都是根據已有硬件系統(tǒng)進行相應的裁剪和配置。如果硬件系統(tǒng)發(fā)生了變更,軟件系統(tǒng)也要做相應的變更,導致嵌入式實時多任務軟件的跨平臺性、通行性及復用性都沒有PC機軟件強[5]。

        1.2 跨平臺特性需求

        鑒于嵌入式實時多任務軟件的特點,目前比較常用的有以下幾種操作系統(tǒng):

        1)VxWorks:是由美國風河(WindRiver)軟件公司設計開發(fā)的一款高性能嵌入式實時多任務操作系統(tǒng)。VxWorks具有可裁剪的微內核結構、有效的任務管理、靈活的任務間通信、微秒級的終端處理能力以及對多種通信協(xié)議、任務系統(tǒng)的支持能力。由于以上優(yōu)點,該操作系統(tǒng)已經成功應用于航空航天、國防、通信、醫(yī)療等對實時性要求極高的尖端領域[6]。

        2)Linux:是一種源代碼公開的高性能嵌入式實時多任務操作系統(tǒng),其最大的特點就是源代碼公開,并且有大量優(yōu)秀免費的開發(fā)工具及應用軟件可供選擇和參考。目前Linux已經發(fā)展成為一種高性能、穩(wěn)定、設計完善、多平臺、技術支持豐富的優(yōu)勢嵌入式操作系統(tǒng)[7]。

        3)μC/OS-Ⅱ:是一種專門為了嵌入式系統(tǒng)設計,并且源代碼公開的著名實時內核, 可運行于不同處理位寬的微處理器、微控制器及數字信號處理器(DSP)上。具有結構小巧、代碼的執(zhí)行效率高、占用內存空間小、實時性強等特點,特別適合用對實時性要求高的小型嵌入式系統(tǒng)[8]。

        由于目前嵌入式系統(tǒng)的這種操作系統(tǒng)+板級支撐軟件+應用程序的結構,導致應用軟件跨平臺性和復用性較差,當選擇的操作系統(tǒng)發(fā)生了變更,甚至操作系統(tǒng)沒有變更,只是具有相同功能的硬件系統(tǒng)發(fā)生了變更也會導致板級支撐軟件發(fā)生變更,即使上層應用軟件的需求沒有變化,也會導致應用軟件為了適用新的操作系統(tǒng)或者新的板級支撐軟件做大量的修改,增加了應用軟件的復雜性和可靠性,也增加了應用軟件設計人員的工作量。所以,良好的跨平臺性對應用軟件開發(fā)具有非常重要的意義。

        1.3 模塊化特性需求

        隨著嵌入式系統(tǒng)的復雜性越來越高,嵌入式應用軟件的代碼量和復雜性也越來越高,同時軟件的可靠性也越來越受到關注。為了提高軟件開發(fā)的效率和軟件產品的可靠性,模塊化設計是一種有效通用的設計方法。將整個軟件產品按照功能、流程劃分成各個功能清晰、接口明確的軟件模塊,對各個模塊獨立開發(fā)和測試驗證,最后將模塊進行匹配合成,最終完成嵌入式系統(tǒng)對軟件的需求。按照模塊化的開發(fā)方法,可以將已經測試、驗證并且使用的軟件模塊作為成熟軟件模塊進行復用,這樣可以有效縮短軟件開發(fā)的時間,并且有效提高軟件的可靠性[9]。

        2 軟件框架設計

        2.1 軟件框架總體設計

        跨平臺模塊化嵌入式實時多任務軟件框架的設計,主要為了滿足嵌入式系統(tǒng)對嵌入式軟件開發(fā)的跨平臺特性需求和模塊化特性需求,作為軟件中間件使用。

        按照嵌入式軟件與硬件資源的耦合關系,將整個軟件劃分為圖1所示幾個層級:操作系統(tǒng)及BSP層、底層封裝層、模塊層、模塊調度層、應用軟件層、公共服務層。其中,操作系統(tǒng)及BSP層主要是嵌入式實時操作系統(tǒng)自身,以及針對具體硬件資源,根據軟件系統(tǒng)和操作系統(tǒng)的需求提供的硬件驅動程序等板級底層支撐軟件。應用軟件層主要是根據系統(tǒng)的需求,完成具體的控制、通信或者處理任務,是整個嵌入式軟件的核心。模塊層中的功能代碼是完成應用軟件層要求的具體任務的功能實現。底層封裝層、模塊層中的模塊封裝、模塊調度層、公共服務層都是軟件框架的組成部分,作為一個整體嵌入在應用軟件和硬件及操作系統(tǒng)之間,完成對兩者的隔離,以及完成兩者之間的通信聯(lián)系。

        通過對該軟件框架的應用,可以使嵌入式軟件開發(fā)人員將需要開發(fā)的軟件按照功能模塊,而不是常規(guī)意義的進程對軟件進行劃分、開發(fā)和實時在線管理,并且可以使已經經過有效驗證和使用的代碼經過適量的簡單修改就能夠進行操作系統(tǒng)的移植或者硬件平臺的移植,從而大大減輕軟件開發(fā)人員的工作量,提高軟件開發(fā)的效率和可靠性。

        2.2 底層封裝層設計

        底層封裝層主要是對操作系統(tǒng)和BSP提供的應用程序接口(API)函數的功能和接口進行分析,根據不同操作系統(tǒng)和不同硬件平臺的特性,提供對主要使用的API函數的封裝,使應用軟件不直接調用API函數,而是通過封裝的框架函數間接的調用,完成對兩者的隔離,這樣可以在操作系統(tǒng)移植或者硬件變更時,只需要根據新的操作系統(tǒng)或者BSP修改相應的封裝函數,應用軟件和框架的接口不變,最大限度的減少應用軟件的變更。

        2.3 模塊層設計

        軟件框架中的模塊層設計主要是指模塊層中的模塊封裝功能。將軟件要完成的任務按照功能獨立性劃分成若干個模塊,每個模塊都是功能完備,接口清晰。每一個模塊都要有全局唯一的模塊ID號,并且具備模塊初始化、模塊的加載、模塊的卸載等功能,并且每個功能都要有相應的調用機制,可供模塊調度層調配使用。

        模塊初始化完成對該模塊中使用到的硬件資源和軟件資源的初始化工作,并且當所有初始化功能成功完成后,生成全局唯一的模塊ID號,后續(xù)模塊調度層對該模塊的加載及卸載都要依據該模塊ID號進行,方便模塊調度層的管理。

        模塊的加載主要是根據模塊調度層的調用,將該模塊加載到整個應用軟件中,以便完成該模塊對應的任務功能。

        模塊的卸載主要是根據模塊調度層的調用,停止該模塊的運行,并且釋放該模塊使用的系統(tǒng)資源。

        2.4 模塊調度層設計

        常規(guī)的嵌入式軟件開發(fā)都是以進程作為開發(fā)或者調用的基本單元,這樣的劃分方式簡單易用,但是進程之間的關系不夠清晰,當軟件系統(tǒng)較復雜或者進程數較多時,都給軟件的開發(fā)和維護帶來了很多問題。并且由于缺乏統(tǒng)一的進程管理,經過長時間進程的啟動、刪除、進程間通信等操作,使得系統(tǒng)資源和進程的狀態(tài)都較難清晰,導致軟件的可靠性受到威脅。

        軟件框架采用功能模塊的劃分方式,將軟件按照系統(tǒng)任務需求分成若干功能模塊,每個模塊包含完成該功能需要的所有軟硬件資源及進程,并且依據模塊整體進行統(tǒng)一初始化、加載、卸載等操作。為了保證軟件的可靠性,防止模塊間出現加卸載混亂等問題,模塊的加卸載必須由模塊調度層完成,并且由模塊調度層保存各個模塊當前的狀態(tài)。當出現模塊A具有操作(啟動、刪除、掛起等)模塊B的需求時,模塊A需要向模塊調度層提出相應的申請,模塊調度層查詢當前模塊B的狀態(tài),依據模塊B當前狀態(tài)做出相應的處理,并反饋模塊A相應結果,詳細流程見圖2所示。

        2.5 公共服務層設計

        公共服務層主要是提供常用的一些基礎功能函數或者成熟功能軟件塊,如排序、查找、大小端轉換等,以便軟件開發(fā)人員可以方便地調用,減輕軟件開發(fā)人員的工作量。同時,該公共服務層是可擴展的,軟件開發(fā)人員可以根據自己的意愿和能力,將經過充分測試和驗證的軟件塊添加進來,以便自己和他人調用。

        3 軟件框架應用

        將該軟件框架應用于某試驗系統(tǒng)的數據處理器中,完成系統(tǒng)控制、通信控制及數據處理等任務。該數據處理器采用以PowerPC微處理器為核心的單板機為硬件載體,采用VxWorks作為該硬件系統(tǒng)的嵌入式操作系統(tǒng),板子BSP由單板機供應商提供。

        在底層封裝層,將由VxWorks操作系統(tǒng)和BSP提供,并且在軟件開發(fā)過程中主要用到的API函數都進行了封裝。所有封裝的操作系統(tǒng)的函數都是用“OS_”起始,如“OS_tickGet”。所有封裝的BSP的函數都是用“BSP_”起始,如“BSP_WatchDogLoad”。在封裝過程中,考慮到其他常用的嵌入式操作系統(tǒng)(Linux等)中相同或相似功能API函數的特點,對相應的接口留有擴張的余地。如系統(tǒng)函數STATUS taskDelay(int ticks),用于實現任務延時功能,輸入參數是系統(tǒng)的tick數,這樣會導致任務的延時和硬件主頻相關,為了保持通用性,將其功能封裝成只與時間有關的函數:int OS_taskDelay(int msTimes),如圖3所示。

        模塊層中,將整個數據處理軟件的任務劃分成幾個部分:RS422與主控串行數據通信模塊[10]、Pcie1與存儲器通信模塊、Pcie2與信號處理通信模塊、系統(tǒng)狀態(tài)控制模塊、數據處理模塊、周期處理模塊等。分別對每個模塊使用模塊初始化、模塊加載、模塊卸載等接口供模塊調度層使用。

        在模塊調度層中,完成對每個模塊的初始化,生成模塊ID號,再根據模塊ID號完成相應模塊的加載和卸載功能。部分模塊調用接口如圖4所示,模塊調度層調度方法及流程如圖5所示。

        在公共服務層中,提供整個數據處理軟件中需要使用的基礎函數和通用處理算法,如排序算法、大小端轉換算法、卡爾曼濾波算法等。

        在應用軟件層,完成系統(tǒng)的上電初始化,并且通過模塊調度層統(tǒng)領整個數據處理軟件的運行,完成整個系統(tǒng)對數據處理軟件的需求。

        通過在數據處理軟件中應用該軟件框架,實現了應用軟件和處理器硬件平臺的隔離,在項目開展過程中,即使處理器硬件平臺發(fā)生變更的情況下,該數據處理軟件也能通過很少的修改就能較好的適配新的處理器平臺。通過將軟件任務按照功能獨立性封裝成功能模塊并使用模塊調度層進行功能調度的處理方法,提高了軟件的模塊化程度和軟件的可靠性。

        4 結束語

        通過對嵌入式實時多任務軟件的研究分析,為了獲得嵌入式應用軟件良好的擴展性、復用性和可靠性,軟件的跨平臺特性和模塊化特性是兩個基本需求。在此分析基礎上,設計了一種跨操作系統(tǒng)平臺和硬件資源平臺,以軟件功能為模塊劃分依據和加卸載基本單元的軟件框架,實現了上層應用軟件與底層硬件、操作系統(tǒng)及BSP的隔離。在某信號偵查系統(tǒng)數據處理軟件中應用了該軟件框架,實現了數據處理軟件良好的跨平臺和模塊化特性,達到了軟件框架預期的效果。

        參考文獻:

        [1]劉天泉. 嵌入式系統(tǒng)軟件設計方法研究及應用[D]. 杭州: 浙江大學, 2004.

        [2]蔡舒祺. 嵌入式系統(tǒng)安全性分析概述[J]. 電子技術與軟件工程, 2017(03): 210-212.

        [3]劉宇傳, 張華熊, 黃海. 基于Module-MSG的嵌入式軟件框架[J]. 計算機工程與設計, 2017(07): 1798-1802.

        [4]夏一行, 曲琳, 等. 嵌入式數據分析類儀器軟件應用框架的開發(fā)[J]. 江南大學學報(自然科學版), 2008(03): 258-261.

        [5]陳瑋,顧思思. 基于組合算法的嵌入式系統(tǒng)軟硬件劃分方法[J]. 計算機應用與軟件 ,2015(10): 240-243.

        [6]宋曉麗. 基于Vxworks的數據通信及控制技術的研究與實現[D]. 西安: 西安電子科技大學, 2009.

        [7]曹玉華. 基于Linux實時擴展的嵌入式數控系統(tǒng)研究與開發(fā)[D]. 南京: 南京航天航空大學, 2011.

        [8]趙偉. 基于ARM和μC/OS-Ⅱ的功率控制系統(tǒng)軟件開發(fā)[D]. 西安: 西安電子科技大學, 2011.

        [9]羅利強, 張艷艷, 高恒. 雷達數據處理軟件模塊化研究[J]. 火控雷達技術, 2013, 42(2): 38-41.

        [10]馬若飛, 洪偉, 楊柳. 一種高效可靠的串行數據通信協(xié)議及處理算法[J]. 火控雷達技術, 2016, 45(2): 52-55.

        猜你喜歡
        嵌入式軟件多任務嵌入式
        基于中心化自動加權多任務學習的早期輕度認知障礙診斷
        實時嵌入式軟件的測試技術
        電子測試(2018年10期)2018-06-26 05:54:08
        搭建基于Qt的嵌入式開發(fā)平臺
        全景相機遙控器嵌入式軟件V1.0 相關操作分析
        電子制作(2017年17期)2017-12-18 06:40:56
        嵌入式軟PLC在電鍍生產流程控制系統(tǒng)中的應用
        基于判別性局部聯(lián)合稀疏模型的多任務跟蹤
        自動化學報(2016年3期)2016-08-23 12:02:56
        基于多任務異步處理的電力系統(tǒng)序網絡拓撲分析
        電測與儀表(2016年5期)2016-04-22 01:13:46
        基于Eclipse的航天嵌入式軟件集成開發(fā)環(huán)境設計與實現
        航天嵌入式軟件浮點運算誤差分析與控制
        Altera加入嵌入式視覺聯(lián)盟
        久亚洲精品不子伦一区| 国产成人无码免费视频在线| 欧美人与动牲猛交xxxxbbbb| 国产精品美女久久久久久大全 | 久久中文字幕久久久久| 中文字幕av久久激情亚洲精品| 偷拍偷窥在线精品视频| 青青草骚视频在线观看| 国模吧无码一区二区三区| 国产成人免费一区二区三区| 久久久国产精品福利免费| av天堂吧手机版在线观看| 三级国产高清在线观看| 久久成人成狠狠爱综合网| 免费国产黄网站在线观看可以下载| 国产精品 高清 尿 小便 嘘嘘| 黄色录像成人播放免费99网| 亚洲第一页在线免费观看| 亚洲中文字幕久久精品一区| 亚洲av无码久久精品色欲| 日韩精品无码av中文无码版| 日韩国产有码在线观看视频| 国产精品老女人亚洲av无| 亚洲精品1区2区在线观看| 国产一区内射最近更新| 亚洲国产区男人本色| 精品亚洲人伦一区二区三区| 国产色av一区二区三区| 国产爆乳无码一区二区麻豆| 无码人妻精品一区二区在线视频| 亚洲中文字幕无码卡通动漫野外| 国产一区二区三区av香蕉| 亚洲国产精品悠悠久久琪琪| 男女猛烈拍拍拍无挡视频| 中文字幕一区二区三区精华液| 亚洲无码图| 精品福利一区二区三区| 高h小月被几个老头调教| 三级4级全黄60分钟| 免费人成视频欧美| 成年人视频在线观看麻豆|