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

        ?

        嵌入式系統(tǒng)平臺(tái)抽象層設(shè)計(jì)與接口實(shí)現(xiàn)①

        2020-03-18 07:54:54丁如藝李嘉偉
        關(guān)鍵詞:嵌入式定義系統(tǒng)

        丁如藝,張 激,李嘉偉

        (中國(guó)電子科技集團(tuán)公司第32 研究所,上海 201808)

        隨著嵌入式計(jì)算機(jī)的飛速發(fā)展與其技術(shù)發(fā)展的網(wǎng)絡(luò)化[1,2],一些領(lǐng)域?qū)η度胧讲僮飨到y(tǒng)的可靠性、可移植性、開發(fā)效率以及功耗等方面提出了更高的要求[3].

        在開發(fā)大規(guī)模復(fù)雜系統(tǒng)時(shí),由于不同編程語(yǔ)言和開發(fā)平臺(tái)間存在的差異,所以需要開發(fā)人員針對(duì)操作系統(tǒng)的特性對(duì)應(yīng)用程序的實(shí)現(xiàn)代碼進(jìn)行相應(yīng)的修改,這樣不僅增加了他們的工作量,也使得嵌入式產(chǎn)品的研發(fā)周期變得更長(zhǎng).在激烈的市場(chǎng)競(jìng)爭(zhēng)中,有效地進(jìn)行資源復(fù)才能對(duì)用戶的需求做出迅速的響應(yīng),高效的滿足其需求.而這種資源復(fù)用可以通過接口的標(biāo)準(zhǔn)化或者提高代碼的可移植性來實(shí)現(xiàn).

        本文對(duì)Linux 系統(tǒng)及國(guó)產(chǎn)嵌入式實(shí)時(shí)操作系統(tǒng)“銳華”進(jìn)行研究,提出了一種通用性較強(qiáng)的平臺(tái)抽象層(Platform Abstraction Layer,PAL).平臺(tái)抽象層針對(duì)不同操作系統(tǒng)和硬件平臺(tái)的應(yīng)用程序開發(fā)接口(Application Programming Interface,API)進(jìn)行抽象,為用戶提供標(biāo)準(zhǔn)化接口進(jìn)行嵌入式開發(fā).與現(xiàn)有的抽象層設(shè)計(jì)方案相比,平臺(tái)抽象層不但可以應(yīng)用于不同嵌入式操作系統(tǒng),同時(shí)還可以提高操作系統(tǒng)的通用性和應(yīng)用程序的可移植性.

        1 相關(guān)工作

        1.1 嵌入式操作系統(tǒng)

        嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),并且軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)[4].如圖1 所示,在傳統(tǒng)的嵌入式系統(tǒng)組成結(jié)構(gòu)中,嵌入式系統(tǒng)包含硬件系統(tǒng)與軟件系統(tǒng)兩部分.硬件系統(tǒng)包括處理器/微處理器、存儲(chǔ)器、I/O 接口、外設(shè)器件;軟件系統(tǒng)主要包括嵌入式操作系統(tǒng)、嵌入式應(yīng)用程序以及應(yīng)用程序開發(fā)接口.

        圖1 嵌入式系統(tǒng)結(jié)構(gòu)圖

        實(shí)時(shí)嵌入式操作系統(tǒng)(Real-Time embedded Operating Systems,RTOS)是一種實(shí)時(shí)、支持嵌入式系統(tǒng)應(yīng)用的操作系統(tǒng)軟件,在嵌入式軟件系統(tǒng)中距離硬件最近,與硬件聯(lián)系最為緊密[5].

        本文所選取的嵌入式實(shí)時(shí)操作系統(tǒng)——“銳華”是中國(guó)電子科技集團(tuán)公司第32 研究所自主研制的操作系統(tǒng).該操作系統(tǒng)的內(nèi)核采用了“十二五”核高基成果——ReWorks.ReWorks 內(nèi)核可搶占、中斷可嵌套,并且具備高效的中斷管理機(jī)制和任務(wù)調(diào)度、上下文切換算法,具有強(qiáng)實(shí)時(shí)性.其采用微內(nèi)核的體系架構(gòu)和面向?qū)ο蟮脑O(shè)計(jì)方法,具有良好的可裁剪性.ReWorks 的接口設(shè)計(jì)符合POSIX 標(biāo)準(zhǔn)[6],具有較強(qiáng)的可移植性.此外,ReWorks 作為一款自主可控的操作系統(tǒng),還具有可持續(xù)性特點(diǎn)[7].

        1.2 WindowsNT 硬件抽象層[8]

        Windows NT 是一個(gè)被廣泛應(yīng)用的搶占式多任務(wù)操作系統(tǒng).為了提高其穩(wěn)定性與兼容性,微軟公司首次提出了硬件抽象層(Hardware Abstract Layer,HAL)的概念,將大部分與硬件相關(guān)的操作放在內(nèi)核和硬件抽象層中,由內(nèi)核與硬件抽象層負(fù)責(zé)完成與硬件操作有關(guān)的細(xì)節(jié).

        硬件抽象層以動(dòng)態(tài)鏈接庫(kù)的形式(HAL.DLL)提供面向平臺(tái)的函數(shù).這些函數(shù)將Windows NT 操作系統(tǒng)與其所依賴的基本硬件進(jìn)行了分離,不需要對(duì)設(shè)備驅(qū)動(dòng)程序做任何修改就可以支持同類處理機(jī)不同平臺(tái)中的相同設(shè)備[9].

        由于硬件抽象層的優(yōu)化是針對(duì)PC 的,所以無法適用于嵌入式應(yīng)用開發(fā)環(huán)境.

        1.3 Linux 實(shí)時(shí)硬件抽象層[10]

        實(shí)時(shí)硬件抽象層(Real Time Hardware Abstract Layer,RTHAL)是Linux 操作系統(tǒng)和底層硬件之間的一個(gè)中間層.RTHAL 對(duì)硬件完全控制,為L(zhǎng)inux 屏蔽了硬件細(xì)節(jié)并禁止其對(duì)硬件直接操作,中斷管理、任務(wù)管理、時(shí)鐘管理等相關(guān)操作均由實(shí)時(shí)硬件抽象層完成.RTHAL 為硬件提供接口,Linux 和硬實(shí)時(shí)操作系統(tǒng)運(yùn)行在其之上,有效的避免了操作系統(tǒng)對(duì)Linux 內(nèi)核進(jìn)行大量的修改,減少對(duì)標(biāo)準(zhǔn)Linux 內(nèi)核可能帶來的負(fù)面影響[11].

        由于實(shí)時(shí)硬件抽象層是面向Linux 系統(tǒng)的,其結(jié)構(gòu)、功能以及定義的接口都與Linux 系統(tǒng)緊密相關(guān),所以無法為其他嵌入式系統(tǒng)所用.

        1.4 操作系統(tǒng)抽象層[12]

        文獻(xiàn)[12]利用C++的虛函數(shù)機(jī)制,提出了操作系統(tǒng)抽象層(Operating System Abstraction Layer,OSAL)的概念.OSAL 封裝具體操作系統(tǒng)實(shí)體為應(yīng)用提供所需的各種服務(wù),使開發(fā)的應(yīng)用與操作系統(tǒng)完全無關(guān),從而使應(yīng)用的兼容性更強(qiáng).

        由于文獻(xiàn)[12]使用的是面向?qū)ο蟮恼Z(yǔ)言C++,執(zhí)行過程中會(huì)引入大量臨時(shí)對(duì)象,導(dǎo)致性能方面損失較大.同時(shí)實(shí)踐證明,僅對(duì)操作系統(tǒng)進(jìn)行抽象是不夠的,還需考慮硬件平臺(tái)的特殊性,所以該方案仍有改進(jìn)空間.

        2 PAL 設(shè)計(jì)與實(shí)現(xiàn)

        2.1 體系結(jié)構(gòu)設(shè)計(jì)

        PAL 由操作系統(tǒng)抽象、硬件平臺(tái)抽象和設(shè)備驅(qū)動(dòng)抽象3 個(gè)部分構(gòu)成,如圖2 所示,對(duì)操作系統(tǒng)和硬件平臺(tái)進(jìn)行了封裝.這3 個(gè)部分可以形象的分為兩層:上層為應(yīng)用程序提供基于POSIX 標(biāo)準(zhǔn)的標(biāo)準(zhǔn)化接口,這些接口不隨宿主平臺(tái)的改變而改變,使得開發(fā)的嵌入式應(yīng)用不再拘泥于某一平臺(tái);下層是這些接口在操作系統(tǒng)與硬件平臺(tái)上的具體實(shí)現(xiàn).

        圖2 PAL 內(nèi)部結(jié)構(gòu)

        加入PAL 后,軟件體系結(jié)構(gòu)在操作系統(tǒng)與應(yīng)用程序之間多出一個(gè)獨(dú)立接口層,該接口層起到了銜接不同操作系統(tǒng)、硬件平臺(tái)與應(yīng)用程序的作用,如圖3.

        2.2 函數(shù)接口設(shè)計(jì)

        本小節(jié)對(duì)平臺(tái)抽象層中提供操作系統(tǒng)基礎(chǔ)服務(wù)的接口進(jìn)行了簡(jiǎn)單的描述,具體如下:

        任務(wù)接口:任務(wù)接口用于提供任務(wù)的注冊(cè)、創(chuàng)建、刪除、查詢以及延遲服務(wù).

        信號(hào)量接口:信號(hào)量接口與經(jīng)典操作系統(tǒng)中的設(shè)計(jì)思路一致,主要提供二進(jìn)制信號(hào)量、計(jì)數(shù)信號(hào)量、互斥信號(hào)量的創(chuàng)建、刪除、釋放、鎖操作、等待以及查詢服務(wù).

        消息隊(duì)列接口:消息隊(duì)列接口用于提供隊(duì)列的創(chuàng)建、刪除、消息獲取、消息輸入、查詢服務(wù).

        定時(shí)器接口:定時(shí)器接口用于提供定時(shí)器的初始化、創(chuàng)建、設(shè)置、查詢、刪除服務(wù).

        文件系統(tǒng)接口:文件系統(tǒng)接口除了用于提供文件和目錄的創(chuàng)建、刪除、打開、關(guān)閉服務(wù)以外,還為基于PAL 開發(fā)的應(yīng)用程序提供了從文件中讀取數(shù)據(jù)、向文件中寫入數(shù)據(jù)和在文件中查詢數(shù)據(jù)的服務(wù).

        中斷/異常處理接口:與傳統(tǒng)的中斷機(jī)制一致,該模塊接口用于提供中斷和異常的使能、關(guān)閉、關(guān)聯(lián)以及鎖操作服務(wù).

        除了上述接口,PAL 還包括用于應(yīng)用程序初始化、打印輸出、等待的空閑任務(wù)接口等.

        平臺(tái)抽象層中部分設(shè)計(jì)的接口的具體實(shí)現(xiàn)如表1所示,即PAL 上層提供給應(yīng)用程序的標(biāo)準(zhǔn)化接口.

        圖3 包含PAL 的體系結(jié)構(gòu)

        表1 PAL 部分接口及實(shí)現(xiàn)

        2.3 宏設(shè)計(jì)

        在PAL 的設(shè)計(jì)中,以宏的方式實(shí)現(xiàn)平臺(tái)抽象層對(duì)不同操作系統(tǒng)和硬件平臺(tái)的支持,來滿足一些平臺(tái)的特殊需求.例如,對(duì)于基于glibc 的Linux 系統(tǒng),定義宏“_XOPEN_SOURCE=600”來啟用X/Open 6 標(biāo)準(zhǔn).因?yàn)間libc 支持多個(gè)標(biāo)準(zhǔn)[13],所以需要添加額外的宏定義以確定編譯時(shí)采用的標(biāo)準(zhǔn);對(duì)于不同的操作系統(tǒng),定義宏“OS =”進(jìn)行系統(tǒng)選擇,這種方法的好處在于隨著需要支持的操作系統(tǒng)增多,可以通過直接修改宏的方式增加選項(xiàng),避免重復(fù)的工作.類似的,也可以通過定義宏“BSP =”來選擇不同硬件平臺(tái).

        通過使用宏并采用條件編譯的方法,可以實(shí)現(xiàn)基于程序的透明性.

        2.4 映射關(guān)系

        由于自定義標(biāo)識(shí)符可能會(huì)與C 庫(kù)提供的其他標(biāo)識(shí)符重疊,或與操作系統(tǒng)中的定義重疊,所以在設(shè)計(jì)時(shí)為自定義標(biāo)識(shí)符添加前綴,避免命名空間帶來的潛在沖突.如對(duì)于“銳華”操作系統(tǒng),添加一個(gè)“RCS_”前綴,將C 庫(kù)提供的所有標(biāo)識(shí)符映射到一個(gè)帶有“RCS_”前綴的命名空間,以避免命名時(shí)的相互影響.類似的,將枚舉型定義、類型定義、結(jié)構(gòu)體定義和函數(shù)定義都映射到帶有“RCS_”前綴的命名空間,具體舉例見表2.

        表2 PAL 中關(guān)于“銳華”系統(tǒng)的映射關(guān)系

        2.5 數(shù)據(jù)類型

        不同宿主平臺(tái)上C 語(yǔ)言對(duì)應(yīng)的數(shù)據(jù)類型存在差異,PAL 并不直接使用C 語(yǔ)言所定義的數(shù)據(jù)類型,而是重新定義一套與平臺(tái)無關(guān)的數(shù)據(jù)類型,具體如表3.

        表3 數(shù)據(jù)結(jié)構(gòu)

        2.6 實(shí)現(xiàn)

        本小節(jié)選取“銳華”操作系統(tǒng)、龍芯3a 硬件平臺(tái),以任務(wù)相關(guān)接口為例,對(duì)PAL 的實(shí)現(xiàn)進(jìn)行詳細(xì)闡述.

        在實(shí)現(xiàn)方式上,受到平臺(tái)獨(dú)立[14]的啟發(fā),PAL 對(duì)各操作系統(tǒng)共有的系統(tǒng)特性和數(shù)據(jù)進(jìn)行統(tǒng)一管理.各平臺(tái)的異構(gòu)性則主要體現(xiàn)在接口的實(shí)現(xiàn)上.

        平臺(tái)共有的定義,主要是指宏、數(shù)據(jù)結(jié)構(gòu)等.平臺(tái)定義1 定義了支持浮點(diǎn)運(yùn)算的宏,并給出了任務(wù)相關(guān)接口所需的結(jié)構(gòu)體定義以及函數(shù)接口定義.

        標(biāo)準(zhǔn)化接口OS_TaskCreate()用于創(chuàng)建任務(wù),其參數(shù)定義了任務(wù)ID、任務(wù)名、任務(wù)堆棧大小、優(yōu)先級(jí)等.算法1 為“銳華”操作系統(tǒng)任務(wù)創(chuàng)建接口的實(shí)現(xiàn)代碼,具體實(shí)現(xiàn)的不同保證了平臺(tái)的異構(gòu)性.

        3 PAL 測(cè)試與分析

        本節(jié)首先對(duì)PAL 提供的各類接口進(jìn)行功能測(cè)試.通過編寫測(cè)試?yán)?調(diào)用抽象完成的各類接口進(jìn)行正確環(huán)境和錯(cuò)誤環(huán)境測(cè)試;然后對(duì)加入PAL 之后的操作系統(tǒng)進(jìn)行兼容性測(cè)試.使用平臺(tái)抽象層提供的API 進(jìn)行嵌入式開發(fā),在不修改代碼的前提下,該應(yīng)用程序應(yīng)當(dāng)能夠同時(shí)運(yùn)行在Linux 以及“銳華”操作系統(tǒng)上;3.3 小節(jié)對(duì)加入PAL 前后的實(shí)時(shí)性能進(jìn)行比較分析.因?yàn)槿蝿?wù)調(diào)度延遲時(shí)間是評(píng)價(jià)操作系統(tǒng)實(shí)時(shí)性的重要指標(biāo)之一[15],所以選擇對(duì)其進(jìn)行測(cè)量;最后,3.4 小節(jié)對(duì)PAL 的優(yōu)勢(shì)進(jìn)行了分析與總結(jié).

        3.1 功能測(cè)試

        以任務(wù)管理接口為例,在測(cè)試?yán)坛跏蓟瓿珊?分別進(jìn)行正常情況和異常情況測(cè)試.其中正常情況包括創(chuàng)建任務(wù)、根據(jù)ID 查詢?nèi)蝿?wù)信息、刪除任務(wù)操作,而異常測(cè)試則是指創(chuàng)建超過個(gè)數(shù)限制的任務(wù),創(chuàng)建兩個(gè)同名任務(wù),刪除未創(chuàng)建任務(wù)、刪除已刪除的任務(wù)操作.測(cè)試結(jié)果表明,設(shè)計(jì)的PAL 能夠完成正常情況下的需求,并對(duì)異常情況做出符合預(yù)期的反饋.

        3.2 兼容性測(cè)試

        兼容性測(cè)試采用PAL 提供的標(biāo)準(zhǔn)化接口編寫測(cè)試?yán)?分別在Linux 系統(tǒng)與“銳華”系統(tǒng)上進(jìn)行測(cè)試,測(cè)試結(jié)果如圖4 所示.這段測(cè)試程序在兩個(gè)系統(tǒng)上均運(yùn)行成功并輸出正確,這表明PAL 的設(shè)計(jì)提高了應(yīng)用程序的代碼重用性.

        3.3 實(shí)時(shí)性測(cè)試

        在實(shí)時(shí)任務(wù)測(cè)試中,獲取測(cè)試任務(wù)執(zhí)行前的時(shí)刻t1,將實(shí)時(shí)任務(wù)休眠時(shí)間設(shè)置為T;獲取實(shí)時(shí)任務(wù)執(zhí)行完成時(shí)的時(shí)刻記為t2,t2-t1-T就是所要測(cè)量的任務(wù)調(diào)度延遲時(shí)間.

        使用上述方法對(duì)任務(wù)調(diào)度延遲時(shí)間進(jìn)行測(cè)量,共測(cè)試1000 次,對(duì)數(shù)據(jù)進(jìn)行初步處理后,得出結(jié)果如圖5.

        對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行分析得出,添加PAL 前任務(wù)調(diào)度延遲的平均值為0.875 ms,添加PAL 后任務(wù)調(diào)度延遲的平均值為1.094 ms.通過數(shù)據(jù)與圖表對(duì)比可以看出,添加PAL 后的任務(wù)調(diào)度延遲時(shí)間要比添加PAL 前略微增加.這是由于PAL 的引入致使系統(tǒng)多出了一個(gè)PAL 接口與宿主平臺(tái)接口間的函數(shù)調(diào)用,但添加PAL后的時(shí)間指標(biāo)仍可以保持在與原有指標(biāo)相同的量級(jí).

        分析以上實(shí)驗(yàn),引入PAL 的嵌入式操作系統(tǒng)在擴(kuò)展了應(yīng)用程序的代碼重用性后仍具有可靠的實(shí)時(shí)性.

        3.4 PAL 優(yōu)勢(shì)分析

        PAL 是位于嵌入式操作系統(tǒng)與應(yīng)用程序之間的獨(dú)立接口層,是一種銜接不同操作系統(tǒng)、硬件平臺(tái)與應(yīng)用程序的橋梁.

        首先,在平臺(tái)抽象層上進(jìn)行開發(fā)可以避免嵌入式應(yīng)用與操作系統(tǒng)和底層硬件的直接交互,有利于提高應(yīng)用程序的健壯性.其次,平臺(tái)抽象層可以根據(jù)具體應(yīng)用所需的系統(tǒng)調(diào)用來構(gòu)造相應(yīng)的接口,因此平臺(tái)抽象層具有良好的可裁剪性和伸縮性.最后,平臺(tái)抽象層按照系統(tǒng)的相關(guān)性對(duì)應(yīng)用程序代碼進(jìn)行分類,當(dāng)應(yīng)用適配新的宿主平臺(tái)時(shí),只需修改少量甚至無需修改代碼即可在新平臺(tái)上運(yùn)行應(yīng)用程序,大大提高了開發(fā)的效率.總的來說,PAL 有利于實(shí)現(xiàn)軟硬件協(xié)同設(shè)計(jì),促進(jìn)可移植和可重用的實(shí)時(shí)嵌入式系統(tǒng)應(yīng)用程序的創(chuàng)建.

        圖4 兼容性測(cè)試結(jié)果

        圖5 實(shí)時(shí)性測(cè)試結(jié)果

        4 結(jié)束語(yǔ)

        本文為嵌入式實(shí)時(shí)操作系統(tǒng)設(shè)計(jì)了一個(gè)平臺(tái)抽象層,著重介紹平臺(tái)抽象層的設(shè)計(jì)方案,并針對(duì)Linux 系統(tǒng)與“銳華”操作系統(tǒng)給出實(shí)現(xiàn)方案,最后對(duì)平臺(tái)抽象層的功能,兼容性和實(shí)時(shí)性給出測(cè)試方案.實(shí)驗(yàn)證明,引入本文設(shè)計(jì)的平臺(tái)抽象層不僅能提高應(yīng)用程序的可移植性,同時(shí)操作系統(tǒng)還保留有可靠的實(shí)時(shí)性.

        平臺(tái)抽象層對(duì)不同操作系統(tǒng)與硬件平臺(tái)的應(yīng)用程序開發(fā)接口進(jìn)行抽象,給用戶開發(fā)各種嵌入式應(yīng)用提供了標(biāo)準(zhǔn)化接口,極大減少移植帶來的冗余工作,并可高效重用已開發(fā)的軟件組件,有效實(shí)現(xiàn)了資源復(fù)用.

        猜你喜歡
        嵌入式定義系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        搭建基于Qt的嵌入式開發(fā)平臺(tái)
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        成功的定義
        山東青年(2016年1期)2016-02-28 14:25:25
        Altera加入嵌入式視覺聯(lián)盟
        倍福 CX8091嵌入式控制器
        修辭學(xué)的重大定義
        亚洲一区二区女优视频| 午夜dj在线观看免费视频 | 国产精品理人伦国色天香一区二区| 粉嫩av一区二区在线观看| 日韩精品中文字幕一区二区| 亚洲日韩激情无码一区| 无码专区天天躁天天躁在线| 国产亚洲精品性爱视频| 亚洲乱码av一区二区蜜桃av| 国内精品久久久久久久97牛牛 | 国产成人无码一二三区视频| 538在线视频| 日韩一区二区三区久久精品| 国产精品兄妹在线观看麻豆| 午夜国产在线| 国产精品一区二区三区黄片视频| 国产日韩厂亚洲字幕中文| 亚洲av永久精品爱情岛论坛| 99re免费在线视频| 成年人视频在线播放麻豆| 国产成人久久精品一区二区三区| 毛片大全真人在线| 亚洲精品成人av观看| 成人全部免费的a毛片在线看| 欧美老妇交乱视频在线观看| 欧美粗大无套gay| 久九九久视频精品网站| 亚洲日本一区二区三区四区| 影音先锋女人aa鲁色资源| 亚洲AV永久无码精品导航| 久久久亚洲一区二区三区| 亚洲人精品午夜射精日韩| 亚洲精品无码国模| 日韩成人精品一区二区三区| 亚洲高清三区二区一区| 最近中文字幕视频完整版在线看| 国产高清a| 亚洲一区二区三区在线看| 色噜噜狠狠综曰曰曰| 日日摸日日碰人妻无码老牲| 女同亚洲一区二区三区精品久久|