當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]嵌入式微內(nèi)核實時操作系統(tǒng)分析與測試

摘要:介紹嵌入式內(nèi)核實時操作系統(tǒng)的體系結(jié)構(gòu);針對Wolf嵌入式操作系統(tǒng),設(shè)計一套微內(nèi)核嵌入式操作系統(tǒng)測試實現(xiàn)方案。在Wolf操作系統(tǒng)支持下,已產(chǎn)業(yè)化的閱讀不耗電電子書(eBook)驗證了Wolf操作系統(tǒng)的可靠性。

    關(guān)鍵詞:嵌入式實時操作系統(tǒng)ERTOS 微內(nèi)核 Wolf 軟件測試儀 eBook

1 嵌入式實時操作系統(tǒng)概述

嵌入式實時操作系統(tǒng)(ERTOS)是操作系統(tǒng)研究的一個重要分支,它與一般商用多任務(wù)OS,如UNIX,Windows等,最大的不同之處在于:商用多任務(wù)OS的目的是追求系統(tǒng)資源最大利用率和公平對待所有的系統(tǒng)請求;而ERTPS追求的是實時性、可確定性、可靠性。

自20世紀(jì)90年代以來,ERTOS發(fā)展迅速。國外著名商用EPTOS有:Wind River公司的VxWorks、IS(Integrated Systems)公司(2000年已被Wind River公司合并)的pSOS、AC(Accelerated Technology)公司的Nucleus等等。國外ERTOS很多,大多是針對不同應(yīng)用的專用ERTOS或通用ERTOS。

與傳統(tǒng)的嵌入式系統(tǒng)軟件開發(fā)模式相比,雖然ERTOS會要求一些額外的開銷,但可以由現(xiàn)代微控制器的高速度、大存儲器以及產(chǎn)品提前進入市場的優(yōu)勢來彌補。優(yōu)秀的ERTOS可以對幾十個系列的嵌入式處理器MPU、微控制器MCU提供API接口。在此基礎(chǔ)上,可以編定出各川硬件驅(qū)動程序、產(chǎn)品庫函數(shù),與通用性的應(yīng)用程序一起作為產(chǎn)品銷售。

2 ERTOS——Wolf分析

嵌入式實時操作系統(tǒng)產(chǎn)品Wolf(南開津科ERTOS)是一個開放式的微內(nèi)核實時操作系統(tǒng)。其基本設(shè)計思想是:

*低功耗(具有間歇式工作機制,支持哈偶結(jié)構(gòu));

*支持尖端智能輸入/輸出設(shè)備;

*支持微型大容量存儲卡(SM卡、SD卡等);

*本質(zhì)安全,支持信息版權(quán)及安全保護;

*為第三方提供產(chǎn)品級的SDK。

具有以下特點:

*微內(nèi)核結(jié)構(gòu);

*支持多種CPU產(chǎn)品;

*基于優(yōu)先級的搶占式調(diào)度和輪轉(zhuǎn)調(diào)度相結(jié)合的多任務(wù)調(diào)度;

*極小的內(nèi)存開銷;

*高可用性、可靠性。

2.1 微內(nèi)核體系結(jié)構(gòu)

微內(nèi)核體系結(jié)構(gòu)是相對層次內(nèi)核體系結(jié)構(gòu)而言的。層次操作系統(tǒng)體系結(jié)構(gòu)如圖1(a)所示,大部分或全部層次功能由內(nèi)核實現(xiàn),所有的接口功能只與相鄰層有關(guān),系統(tǒng)和應(yīng)用獨立,但其每一功能層的變化都會影響整個系統(tǒng),層間安全性低。微內(nèi)核體系結(jié)構(gòu)如圖1(b)所示,其基本思想是將原來屬于傳統(tǒng)如圖1(b)所示,其基本思想是將原來屬于傳統(tǒng)操作系統(tǒng)內(nèi)核的一些功能和服務(wù)從內(nèi)核中分出,以子系統(tǒng)(組件)的形式與內(nèi)核或其它子系統(tǒng)相互作用。組件功能以服務(wù)進程的方式通過消息與微內(nèi)核和其它組件相互通信來完成。微內(nèi)核的主要功能就是消息交換:確認消息、在組件間傳送消息及準(zhǔn)許對硬件操作。微內(nèi)核結(jié)構(gòu)的主要優(yōu)點是:系統(tǒng)具有統(tǒng)一的接口,擴展性、可靠性及支持分布式系統(tǒng)。

Wolf是一個具有微內(nèi)核結(jié)構(gòu)的嵌入式操作系統(tǒng),它由一個實時多任務(wù)內(nèi)核和多個組件的集合組成。軟件組件都是獨立的標(biāo)準(zhǔn)構(gòu)件塊,可以不用變更地從一個應(yīng)用程序移到另一個應(yīng)用程序。Wolf體系結(jié)構(gòu)如圖2所示。

2.2 微內(nèi)核剖析

Wolf多任務(wù)調(diào)度是動態(tài)基于消息觸發(fā)調(diào)度機制,任務(wù)切換由臨時事件驅(qū)動,任務(wù)間是內(nèi)部同步,不同的任務(wù)能夠異步招待。Wolf內(nèi)核負責(zé)維護系統(tǒng)中的所有任務(wù)的當(dāng)前狀態(tài),所有任務(wù)具有以下四種狀態(tài)之一:

*就緒態(tài)(Ready),縮寫為R。一個就緒態(tài)任務(wù)是可運行的,等待高優(yōu)先級的任務(wù)釋放CPU。

*運行態(tài)(Run),縮寫為E。一個運行態(tài)的任務(wù)是一個正在使用CPU的就緒任務(wù)。任何時刻有且只有一個運行著的任務(wù)。

*阻塞態(tài)(Blocked),縮寫為B。一個任務(wù)被阻塞是由于任務(wù)自身的多個活動的必要手段。一個任務(wù)不能從就緒態(tài)到阻塞態(tài)。

*刮起態(tài)(Suspend)。一個掛起態(tài)的任務(wù)不能執(zhí)行,主要用于調(diào)試。

*任務(wù)調(diào)試程序維護1個或多個跟蹤每個任務(wù)狀態(tài)的內(nèi)部列表。它有一個就緒列表和每個(任務(wù)正在等待的)同步對象的一個單獨受阻列表。就緒隊列前頭的任務(wù)是下一個要運行的任務(wù)。在受阻列表中的任何任務(wù)都被掛起,每當(dāng)受阻列表中的一個任務(wù)等待的事情發(fā)生時,該任務(wù)就從受阻列表中被刪除,并被放到就緒列表中等待執(zhí)行、如圖3所示。

(1)多任務(wù)調(diào)度

任務(wù)調(diào)度是指根據(jù)一定的約束規(guī)定,將CPU分配給符合條件的任務(wù)使用。約束規(guī)則又稱為調(diào)度算法。Wolf內(nèi)核采用多種調(diào)度算法分配CPU給處于Ready態(tài)(就緒態(tài))的任務(wù)。默認基于優(yōu)先級的搶占式調(diào)度算法,也支持基于時間片的輪轉(zhuǎn)(Round-Robin)調(diào)度算法。在嵌入式系統(tǒng)實時應(yīng)用中,不是每次搶占都是合理的,非期待的搶占會導(dǎo)致系統(tǒng)出現(xiàn)無法預(yù)料的情況,Woif提供允許和禁止調(diào)度的功能調(diào)用實現(xiàn)禁止搶占機制。

(2)任務(wù)通信、同步、互斥機制

任務(wù)間通信機制是提供多任務(wù)間相互同步和通信,以協(xié)調(diào)獨立任務(wù)之間活動的機制。

①共享內(nèi)存,提供數(shù)據(jù)共享。Woif采用簡單快速的禁止中斷手段保證共享數(shù)據(jù)被互斥訪問②消息隊列實現(xiàn)一CPU內(nèi)多任務(wù)間通信和同步。Woif提供消息隊列函數(shù)庫創(chuàng)建、刪除、發(fā)送消息,消息隊列是動態(tài)建立的抽象對象,不綁定于任務(wù)一個任務(wù)。

3 微內(nèi)核測試設(shè)計方案

設(shè)計嵌入式操作系統(tǒng)軟件測試方案時,我們根據(jù)系統(tǒng)分析的基本思想,定用判定表、功能矩陣將其劃分成狀態(tài)測試、系統(tǒng)調(diào)用功能測試。

(1)多任務(wù)狀態(tài)測試

下面運用判定表設(shè)計狀態(tài)轉(zhuǎn)移測試用例。首先確定狀態(tài)轉(zhuǎn)移活動(5類活動):

①運行態(tài)到阻塞態(tài)E→B;

②阻塞態(tài)到就緒態(tài)B→R;

③阻塞態(tài)到運行態(tài)B→E;

④就緒態(tài)到就緒態(tài)E→R。

⑤執(zhí)行態(tài)到就緒態(tài)E→R。

然后列出不同活動必須遵守的狀態(tài)轉(zhuǎn)換規(guī)則并編號。這里編號形式定義為:具體活動編號+數(shù)字序列編號。例如:用轉(zhuǎn)換規(guī)則編號③2,表明該規(guī)則是活動3必須遵守的第2條規(guī)則。

以下是部分轉(zhuǎn)換規(guī)則。

◇一個運行態(tài)的任務(wù)E變成阻塞態(tài)B(E→B):

①,它從一個空消息隊列中請求一個消息;或者②,它等待一個不會即將發(fā)生的事件條件;或者③,它請求一個當(dāng)前不能提供的信號量標(biāo)志;或者④,它請求一段目前不能提供的內(nèi)存;或者⑤,它暫中止一個時間段或直到一個特殊的時刻。

◇一個阻塞態(tài)的任務(wù)B變成就緒態(tài)R(B→R):

①,B是消息等待隊列中的第一個任務(wù),它等待的消息來到消息隊列中;或者②,一個事件發(fā)送給了B,滿足了它一直等待的事件的條件;或者③,一個信號量標(biāo)志被返回,B是等待隊列中的第一個;或者④,返還的內(nèi)存區(qū)允許分配給B;或者⑤,B一直在超時等待一個事件、消息、信號量或一個內(nèi)存段(當(dāng)超過時間間隔)。

◇一個阻塞態(tài)的任務(wù)B變成運行態(tài)(B→E):

任何一個(B→R)任務(wù)條件滿足,該任務(wù)運行優(yōu)先級就高于運行態(tài)任務(wù),這個運行態(tài)任務(wù)是能被搶先的。

◇一個就緒態(tài)的任務(wù)R會變成運行態(tài)任務(wù)(R→E),在當(dāng)前運行態(tài)任務(wù)是:

①阻塞;或者②,可搶占。R有較高的優(yōu)先級。

◇一個運行態(tài)的任務(wù)R會變成就緒態(tài)任務(wù)(E→R),當(dāng):

①任何一個阻塞狀態(tài)的任務(wù)B滿足了(E→R)的發(fā)生條件(由于當(dāng)前E或一個ISR系統(tǒng)調(diào)用);或者②,滿足(R→E)的2至4條件中的任何一個條件發(fā)生。

最后,確定判定條件,建立判定表。這里有3個判定條件:當(dāng)前狀態(tài)是E,或當(dāng)前狀態(tài)是B,或當(dāng)前狀態(tài)是R。如滿足對應(yīng)規(guī)則,則填寫“Y”,不滿足對應(yīng)規(guī)則,則填寫“N”。如果在判定條件的規(guī)則下,進行的活動正確,則用“√”確認,錯誤用“×”確認,尚未測試用“□”確認,無關(guān)用“⊙”確認。

表1為任務(wù)狀態(tài)判定表(部分)。

表1 任務(wù)狀態(tài)判定表(部分)

條  件 ①1 ①2 ①3 ①4 ①5 ②1 ②2 ②3 ②4 ②5
當(dāng)前狀態(tài)E Y Y Y Y Y N N N N N
當(dāng)前狀態(tài)B N N N N N Y Y Y Y Y
當(dāng)前狀態(tài)R N N N N N N N N N N
①E→B
②B→R
③B→E
④R→E
⑤E→R × × × × ×

表1顯示了測試活動1和活動2的正確性。其中滿足條件2的活動有2個,即活動2和活動5,但由于活動5并支持對應(yīng)的規(guī)則,所以結(jié)果用“×”標(biāo)示。

由表1可以看出,使用判定表明晰測試覆蓋,能保持測試的完備性和一致性。

(2)多任務(wù)功能測試

首先,分析Wolf的微內(nèi)核功能,將其劃分成3個測試功能域:

①面向應(yīng)用層的高級系統(tǒng)服務(wù)(調(diào)用)測試域。Wolf為應(yīng)用層提供豐富的系統(tǒng)調(diào)用函數(shù),將其細分為操作系統(tǒng)服務(wù)類、內(nèi)存服務(wù)類、文件系統(tǒng)服務(wù)類、I/O服務(wù)類及調(diào)試平臺服務(wù)5類。

②面向內(nèi)核的多任務(wù)調(diào)度測試、任務(wù)通信測試及內(nèi)存測試域。

③面向低層硬件的設(shè)備驅(qū)動測試、時鐘測試、功耗測試域。

其次,將系統(tǒng)調(diào)用函數(shù)使用的數(shù)據(jù)類型分類,如表2所列。經(jīng)過數(shù)據(jù)分類,使得上百個函數(shù)測試通過20多個數(shù)據(jù)類型的測試來實現(xiàn),。提高測試效率。測試提供的統(tǒng)計數(shù)字為最后的測試失敗率、覆蓋率提供依據(jù)。(N1,N2,N3,N4,N5,N6分別代表測試的次數(shù))

表2 系統(tǒng)調(diào)用數(shù)據(jù)類型分類

數(shù)據(jù)類型 函數(shù)調(diào)用的次數(shù) 測試用例測試的個數(shù) 測試域
①String N1 N4 應(yīng)用層
②Buffer N2 N5 內(nèi)核層
③Integer N3 N6 應(yīng)用層
       

結(jié)束語

本文在嵌入式微內(nèi)核操作系統(tǒng)Wolf測試過程中設(shè)計出有效的測試方案和方法,取得良好的效果。Wolf微內(nèi)核操作系統(tǒng)研制成功以來,能夠支持多種便攜式信息處理設(shè)備,例如已產(chǎn)業(yè)化的閱讀不耗電電子書(eBook)。

Wolf作為電子閱讀應(yīng)用軟件的開發(fā)和數(shù)字圖書館閱讀終端產(chǎn)品開發(fā)的有利支持系統(tǒng),與北大方正Apabi電子書籍網(wǎng)絡(luò)出版平臺系統(tǒng)及電子出版業(yè)相結(jié)合,帶給人們一個便攜式閱讀電子書籍的新時代。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉