當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]一種改進(jìn)嵌入Linux實(shí)時性的新型方案

    對嵌入式Linux進(jìn)行實(shí)時性改進(jìn)是嵌入式操作系統(tǒng)領(lǐng)域的一個研究熱點(diǎn)。本文在分析了現(xiàn)有嵌入式操作系統(tǒng)實(shí)時性不足的基礎(chǔ)上,提出了一種新型的改進(jìn)方案(將RTAI和uClinux相結(jié)合),并給出具體的工控應(yīng)用實(shí)例,進(jìn)一步對這種系統(tǒng)的功能進(jìn)行有效驗(yàn)證。


圖1 雙內(nèi)核實(shí)時系統(tǒng)嵌入式實(shí)時Linux架構(gòu)
  嵌 入式Linux以代碼開放、價格低廉、功能強(qiáng)大又易于移植的特性正在被廣泛應(yīng)用,為嵌入式操作系統(tǒng)提供了一個極具吸引力的選擇。但許多實(shí)際應(yīng)用,譬如多媒 體通信、生產(chǎn)過程控制、在線事務(wù)處理等等都要求對外部事件在限定的時間內(nèi)做出反應(yīng)。因而嵌入式系統(tǒng)實(shí)時性問題越來越受到關(guān)注,對嵌入式Linux進(jìn)行實(shí)時 性改進(jìn)也成為嵌入式操作系統(tǒng)領(lǐng)域的一個研究熱點(diǎn)。

  本文提出了一種基于uClinux的嵌入式實(shí)時操作系統(tǒng)方案。將RTAI和 uClinux相結(jié)合,既滿足了嵌入式應(yīng)用的需求,同時又保證了系統(tǒng)的硬實(shí)時性。此外,還有強(qiáng)大的網(wǎng)絡(luò)功能、易升級性、易移植性等優(yōu)點(diǎn)。最后結(jié)合基于這一 操作系統(tǒng)開發(fā)的重大裝備遠(yuǎn)程監(jiān)控系統(tǒng)的應(yīng)用案例,進(jìn)一步從功能和性能上對其進(jìn)行驗(yàn)證。

現(xiàn)有嵌入式操作系統(tǒng)應(yīng)用中存在的問題

   一個優(yōu)秀的嵌入式操作系統(tǒng)是嵌入式系統(tǒng)成功的關(guān)鍵。它除了具備一般操作系統(tǒng)最基本的功能,如任務(wù)調(diào)度、同步機(jī)制、中斷處理、文件功能等,還需要具有以下特點(diǎn):

1. 更好的硬件適應(yīng)性,也就是良好的移植性;

2. 占有更少的硬件資源;

3. 高可靠性;

4. 提供強(qiáng)大的網(wǎng)絡(luò)功能,支持TCP/IP協(xié)議及其他協(xié)議;

5. 有些應(yīng)用要求具有實(shí)時性能。
[!--empirenews.page--]
   現(xiàn) 有的嵌入式操作系統(tǒng)大致可分為商用型和免費(fèi)型兩類:商用型操作系統(tǒng)由于功能穩(wěn)定、可靠,有完善的技術(shù)支持和售后服務(wù),在嵌入式市場占有一定的份額。但它同 時也存在價格昂貴、需要版權(quán)、源代碼不公開等一系列問題;免費(fèi)型操作系統(tǒng)(如Linux)源碼公開,有價格方面的優(yōu)勢,但在嚴(yán)格滿足嵌入式實(shí)時應(yīng)用需求方 面還有欠缺。


圖2 實(shí)時內(nèi)核實(shí)現(xiàn)機(jī)理


RTAI對Linux的實(shí)時性改進(jìn)

現(xiàn)有幾種針對Linux的實(shí)時系統(tǒng)解決方案,實(shí)現(xiàn)方法主要包括兩種:

1)直接修改Linux內(nèi)核、增加實(shí)時性,如:Montavista;

2)在普通Linux內(nèi)核之上增加實(shí)時模塊、雙內(nèi)核結(jié)構(gòu),如:RTLinux或RTAI。

    Montavista 可以滿足用戶的軟實(shí)時要求,RTLinux或RTAI著重增強(qiáng)Linux的硬實(shí)時特性。軟實(shí)時系統(tǒng)的時限是柔性靈活的,它可以容忍偶然的超時錯誤。失敗造 成的后果并不嚴(yán)重,僅僅是輕微地降低了系統(tǒng)的吞吐量。硬實(shí)時系統(tǒng)有一個剛性的、不可改變的時間限制,它不允許任何超出時限的錯誤。超時錯誤會帶來損害甚至 導(dǎo)致系統(tǒng)失敗、或者導(dǎo)致系統(tǒng)不能實(shí)現(xiàn)它的預(yù)期目標(biāo)。

   RTAI采用雙內(nèi)核方法,不直接使用Linux的任何功能,而是把需要高度時間精度的 工作寫成一個驅(qū)動程序的形式,然后直接用PC時序芯片所產(chǎn)生的中斷調(diào)用這個驅(qū)動程序。RTAI與NMT RT-Linux的最大不同之處在于,它在Linux上定義了一組實(shí)時硬件抽象層(RTHAL)。RTHAL將RTAI需要在Linux中修改的部分定義 成一組程序界面,RTAI只使用這組界面和Linux溝通。這樣做的好處在于,用戶可以將直接修改的Linux核心程序代碼減至最小,這有可能使得將 RTHAL移植到新版Linux的工作量減至最低。

但是,RTAI雖然滿足了硬實(shí)時性要求,卻沒有被裁減為足夠小且適用于嵌入式系統(tǒng)。

RTAI+uClinux的實(shí)時方案

    uClinux 是為嵌入式應(yīng)用設(shè)計的,它本身并沒有更多地關(guān)注實(shí)時問題。uClinux經(jīng)過小型化改造,形成了一個高度優(yōu)化、代碼緊湊的嵌入式Linux,并保留了 Linux大多數(shù)的優(yōu)點(diǎn)。它專門針對無MMU的CPU,去除了普通Linux內(nèi)核中的虛擬內(nèi)存管理部分。更重要的是,uClinux提供了完整的 TCP/IP協(xié)議棧,并支持大量其他的網(wǎng)絡(luò)協(xié)議,為嵌入式系統(tǒng)提供了強(qiáng)大的網(wǎng)絡(luò)支持。
[!--empirenews.page--]
   而從前面的分析可以看出,RTAI是基于普通Linux內(nèi)核,相對于嵌入式應(yīng)用其內(nèi)核過于龐大;而uClinux本身并沒有更多地關(guān)注實(shí)時問題。因此,可以將RTAI和uClinux相結(jié)合,采用雙內(nèi)核的設(shè)計方案,既滿足了嵌入式應(yīng)用的需求,又保證了系統(tǒng)的硬實(shí)時性。

1.硬件抽象層


圖3 系統(tǒng)中斷處理流程圖

    系統(tǒng)的實(shí)現(xiàn)基礎(chǔ)是硬件抽象層,通過硬件抽象層進(jìn)行硬件管理,把基本內(nèi)核和實(shí)時內(nèi)核結(jié)合在一起,其中一個內(nèi)核的改變,不會影響另一個內(nèi)核的執(zhí)行。

硬 件抽象層定義了本系統(tǒng)同硬件之間的抽象接口,主要用來截取硬件中斷,并且依據(jù)實(shí)時內(nèi)核調(diào)度器的需求,重定向?yàn)榛緝?nèi)核任務(wù)或是實(shí)時任務(wù)。RTHAL包含一 個關(guān)鍵的組件:中斷描述符表(IDT,Interrupt Descriptor Table),它定義了一套指針用來處理中斷例程。RTHAL本身定義了一個結(jié)構(gòu),使得基本內(nèi)核中斷處理函數(shù)能夠很容易地被實(shí)時處理函數(shù)所替代。這樣,當(dāng) 實(shí)時內(nèi)核通過RTHAL激活后,新的IDT表為合法。在以上控制下,基本內(nèi)核作為實(shí)時系統(tǒng)的任務(wù)提供服務(wù)。

2.雙內(nèi)核結(jié)構(gòu)

雙內(nèi)核實(shí)時系統(tǒng)的總體結(jié)構(gòu)模型如圖1所示,主要包含了基本內(nèi)核、實(shí)時內(nèi)核、硬件抽象層、硬件部分。

其 中基本內(nèi)核(uClinux)和實(shí)時內(nèi)核(RTAI)分別處理非實(shí)時和實(shí)時任務(wù)的調(diào)度和執(zhí)行,而實(shí)時任務(wù)和非實(shí)時任務(wù)之間信息的交換要通過管道 (FIFO)或共享內(nèi)存(MBUFF)來實(shí)現(xiàn)。當(dāng)實(shí)時任務(wù)運(yùn)行時,基本內(nèi)核被硬件抽象層屏蔽。即實(shí)時內(nèi)核將基本內(nèi)核作為優(yōu)先級最低的一個任務(wù)來運(yùn)行,只有 在沒有實(shí)時任務(wù)運(yùn)行的時候才予以調(diào)度。

3.實(shí)時內(nèi)核動態(tài)加載

嵌入式實(shí)時Linux的實(shí)時內(nèi)核是動態(tài)加載的。實(shí)時任務(wù)被激活前,實(shí)時內(nèi)核并沒有啟動,基本內(nèi)核通過RTHAL透明訪問硬件,就像RTHAL不存在一樣。當(dāng)實(shí)時任務(wù)被激活時,RTHAL結(jié)構(gòu)發(fā)生變化,基本內(nèi)核被實(shí)時內(nèi)核接管,圖2表明了實(shí)時內(nèi)核啟動前后,系統(tǒng)發(fā)生的變化。

4.調(diào)度處理

當(dāng) 中斷到來時,實(shí)時內(nèi)核判斷它是基本內(nèi)核中斷還是屬于實(shí)時中斷,分別進(jìn)行處理。若是基本內(nèi)核中斷,如果當(dāng)前有實(shí)時任務(wù)正在運(yùn)行,則只是設(shè)置一下中斷標(biāo)志位, 懸掛此中斷,如果沒有實(shí)時任務(wù)運(yùn)行,則調(diào)用基本內(nèi)核的中斷處理程序;如果此中斷是實(shí)時中斷,就直接調(diào)用相對應(yīng)的實(shí)時中斷處理程序。注意,實(shí)時中斷可以搶先 基本內(nèi)核任務(wù)的執(zhí)行。系統(tǒng)的中斷處理流程如圖3所示。

應(yīng)用案例

工業(yè)控制是嵌入式實(shí)時操作系統(tǒng)的傳統(tǒng)應(yīng)用領(lǐng)域,需要嚴(yán)格的實(shí)時處理功能、高可靠性和良好的開放性,對開發(fā)環(huán)境、可操作性、成本等也有特別的要求。因此本項研究以重大裝備的遠(yuǎn)程監(jiān)控系統(tǒng)作為其應(yīng)用之一。

1.嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)結(jié)構(gòu)

應(yīng) 用針對工業(yè)生產(chǎn)中使用的大型設(shè)備在連續(xù)運(yùn)轉(zhuǎn)狀態(tài)下的遠(yuǎn)程監(jiān)控問題,研究用于重大裝備遠(yuǎn)程監(jiān)控的嵌入式裝置。系統(tǒng)主要包括輸入/輸出模塊(NetIO)和輸 入/輸出上位模塊(NetWeb),前者用于實(shí)現(xiàn)現(xiàn)場數(shù)據(jù)的采集(輸入),或用于現(xiàn)場裝置的控制(輸出),后者集成了Web功能,使得用戶可以通過互聯(lián)網(wǎng) 對輸入/輸出模塊進(jìn)行訪問。兩類模塊通過網(wǎng)絡(luò)相連接,在本系統(tǒng)中為通過串行485總線。嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)結(jié)構(gòu)如圖4所示。

2.NetWeb對嵌入式Linux的功能驗(yàn)證


圖4 嵌入式遠(yuǎn)程監(jiān)控體系結(jié)構(gòu)[!--empirenews.page--]


NetWeb的開發(fā)基于前面介紹的嵌入式實(shí)時Linux操作系統(tǒng)。特殊的雙內(nèi)核操作系統(tǒng)結(jié)構(gòu)決定了應(yīng)用開發(fā)的特殊性。

1)任務(wù)管理功能

系統(tǒng)中的任務(wù)可以分為實(shí)時性任務(wù)和非實(shí)時性任務(wù),實(shí)時任務(wù)包括實(shí)時數(shù)據(jù)采集、處理等方面,這部分的功能要在實(shí)時內(nèi)核RTAI之上進(jìn)行實(shí)現(xiàn);另外,非實(shí)時任務(wù)主要包括數(shù)據(jù)存儲、遠(yuǎn)程通訊的實(shí)現(xiàn),這部分功能要在基本內(nèi)核uClinux之上實(shí)現(xiàn)。

嵌入式實(shí)時Linux將實(shí)時任務(wù)與非實(shí)時任務(wù)分開管理,實(shí)施不同的調(diào)度策略和任務(wù)間通信方式,至于實(shí)時任務(wù)與非實(shí)時任務(wù)之間的通信可以通過實(shí)時的FIFO或共享內(nèi)存實(shí)現(xiàn)。這樣的功能使應(yīng)用的編寫簡潔清晰、功能明確、調(diào)度靈活,方便了用戶。

2)網(wǎng)絡(luò)功能

嵌入式實(shí)時Linux實(shí)現(xiàn)了嵌入式互聯(lián)網(wǎng)技術(shù),將Web服務(wù)器引入到現(xiàn)場測試和控制設(shè)備中,在相應(yīng)的硬件平臺和軟件系統(tǒng)的支持下,使傳統(tǒng)的測試和控制設(shè)備轉(zhuǎn)變?yōu)榫邆淞艘訲CP/IP為底層通信協(xié)議,Web技術(shù)為核心的基于互聯(lián)網(wǎng)的網(wǎng)絡(luò)測試和控制設(shè)備。

嵌 入式Web與傳統(tǒng)Web應(yīng)用相比,簡化了系統(tǒng)結(jié)構(gòu),將信息采集和信息發(fā)布都集成到現(xiàn)場的測控設(shè)備中。由于有了標(biāo)準(zhǔn)的接口形式和通信協(xié)議,內(nèi)嵌于設(shè)備的 Web服務(wù)器可以向任何接入它所在網(wǎng)絡(luò)的合法用戶提供統(tǒng)一的基于瀏覽器方式的操作和控制界面,瀏覽器成了設(shè)備的前端控制板。

3)實(shí)時性

嵌 入式實(shí)時Linux是硬實(shí)時的嵌入式操作系統(tǒng)。當(dāng)中斷到來時,若是基本內(nèi)核中斷,如果當(dāng)前有實(shí)時任務(wù)正在運(yùn)行,則只是設(shè)置一下中斷標(biāo)志位,懸掛此中斷;如 果此中斷是實(shí)時中斷,就直接調(diào)用相對應(yīng)的實(shí)時中斷處理程序。這樣的調(diào)度機(jī)制可以保證遠(yuǎn)程監(jiān)控系統(tǒng)中實(shí)時任務(wù)在確定的時間限度內(nèi)完成,為系統(tǒng)故障的實(shí)時預(yù) 報、診斷、控制提供了強(qiáng)有力的支持。

此外,系統(tǒng)還從時間管理、內(nèi)存管理、中斷管理、同步、互斥管理以及設(shè)備管理等方面對這一操作系統(tǒng)的功能進(jìn)行評估驗(yàn)證。

本文小結(jié)

盡管將Linux進(jìn)行嵌入式實(shí)時性改進(jìn)的方案很多,但是采用RTAI+uClinux的還未見到成型的產(chǎn)品。這一方案既符合嵌入式系統(tǒng)的需求,又達(dá)到硬實(shí)時性標(biāo)準(zhǔn),同時還有強(qiáng)大的網(wǎng)絡(luò)功能、易升級性、易移植性等優(yōu)點(diǎn)。

同時,在其上進(jìn)行應(yīng)用編程時實(shí)時任務(wù)(基于RTAI)和非實(shí)時任務(wù)(基于uClinux)是分開編寫的,清晰簡潔,但由于用戶需要直接在內(nèi)核空間編程,從系統(tǒng)的安全性角度存在很大隱患。希望可以通過進(jìn)一步討論研究使其更加完善。

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(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)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

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

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(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 手機(jī) 衛(wèi)星通信

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

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

北京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ù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

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