新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 一種改進嵌入Linux實時性的新型方案

一種改進嵌入Linux實時性的新型方案

作者: 時間:2010-12-16 來源:網(wǎng)絡 收藏

而從前面的分析可以看出,RTAI是基于普通內核,相對于式應用其內核過于龐大;而uClinux本身并沒有更多地關注實時問題。因此,可以將RTAI和uClinux相結合,采用雙內核的設計,既滿足了式應用的需求,又保證了系統(tǒng)的硬。

1.硬件抽象層


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

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

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

2.雙內核結構

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

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

3.實時內核動態(tài)加載

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

本文引用地址:http://butianyuan.cn/article/151179.htm

4.調度處理

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

應用案例

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

1.嵌入式遠程監(jiān)控系統(tǒng)結構

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

2.NetWeb對嵌入式的功能驗證


圖4 嵌入式遠程監(jiān)控體系結構

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關推薦

技術專區(qū)

關閉