一種改進(jìn)嵌入Linux實(shí)時(shí)性的新型方案
而從前面的分析可以看出,RTAI是基于普通Linux內核,相對于嵌入式應用其內核過(guò)于龐大;而uClinux本身并沒(méi)有更多地關(guān)注實(shí)時(shí)問(wèn)題。因此,可以將RTAI和uClinux相結合,采用雙內核的設計方案,既滿(mǎn)足了嵌入式應用的需求,又保證了系統的硬實(shí)時(shí)性。
1.硬件抽象層

圖3 系統中斷處理流程圖
系統的實(shí)現基礎是硬件抽象層,通過(guò)硬件抽象層進(jìn)行硬件管理,把基本內核和實(shí)時(shí)內核結合在一起,其中一個(gè)內核的改變,不會(huì )影響另一個(gè)內核的執行。
硬 件抽象層定義了本系統同硬件之間的抽象接口,主要用來(lái)截取硬件中斷,并且依據實(shí)時(shí)內核調度器的需求,重定向為基本內核任務(wù)或是實(shí)時(shí)任務(wù)。RTHAL包含一 個(gè)關(guān)鍵的組件:中斷描述符表(IDT,Interrupt Descriptor Table),它定義了一套指針用來(lái)處理中斷例程。RTHAL本身定義了一個(gè)結構,使得基本內核中斷處理函數能夠很容易地被實(shí)時(shí)處理函數所替代。這樣,當 實(shí)時(shí)內核通過(guò)RTHAL激活后,新的IDT表為合法。在以上控制下,基本內核作為實(shí)時(shí)系統的任務(wù)提供服務(wù)。
2.雙內核結構
雙內核實(shí)時(shí)系統的總體結構模型如圖1所示,主要包含了基本內核、實(shí)時(shí)內核、硬件抽象層、硬件部分。
其 中基本內核(uClinux)和實(shí)時(shí)內核(RTAI)分別處理非實(shí)時(shí)和實(shí)時(shí)任務(wù)的調度和執行,而實(shí)時(shí)任務(wù)和非實(shí)時(shí)任務(wù)之間信息的交換要通過(guò)管道 (FIFO)或共享內存(MBUFF)來(lái)實(shí)現。當實(shí)時(shí)任務(wù)運行時(shí),基本內核被硬件抽象層屏蔽。即實(shí)時(shí)內核將基本內核作為優(yōu)先級最低的一個(gè)任務(wù)來(lái)運行,只有 在沒(méi)有實(shí)時(shí)任務(wù)運行的時(shí)候才予以調度。
3.實(shí)時(shí)內核動(dòng)態(tài)加載
嵌入式實(shí)時(shí)Linux的實(shí)時(shí)內核是動(dòng)態(tài)加載的。實(shí)時(shí)任務(wù)被激活前,實(shí)時(shí)內核并沒(méi)有啟動(dòng),基本內核通過(guò)RTHAL透明訪(fǎng)問(wèn)硬件,就像RTHAL不存在一樣。當實(shí)時(shí)任務(wù)被激活時(shí),RTHAL結構發(fā)生變化,基本內核被實(shí)時(shí)內核接管,圖2表明了實(shí)時(shí)內核啟動(dòng)前后,系統發(fā)生的變化。本文引用地址:http://dyxdggzs.com/article/151179.htm
4.調度處理
當 中斷到來(lái)時(shí),實(shí)時(shí)內核判斷它是基本內核中斷還是屬于實(shí)時(shí)中斷,分別進(jìn)行處理。若是基本內核中斷,如果當前有實(shí)時(shí)任務(wù)正在運行,則只是設置一下中斷標志位, 懸掛此中斷,如果沒(méi)有實(shí)時(shí)任務(wù)運行,則調用基本內核的中斷處理程序;如果此中斷是實(shí)時(shí)中斷,就直接調用相對應的實(shí)時(shí)中斷處理程序。注意,實(shí)時(shí)中斷可以搶先 基本內核任務(wù)的執行。系統的中斷處理流程如圖3所示。
應用案例
工業(yè)控制是嵌入式實(shí)時(shí)操作系統的傳統應用領(lǐng)域,需要嚴格的實(shí)時(shí)處理功能、高可靠性和良好的開(kāi)放性,對開(kāi)發(fā)環(huán)境、可操作性、成本等也有特別的要求。因此本項研究以重大裝備的遠程監控系統作為其應用之一。
1.嵌入式遠程監控系統結構
應 用針對工業(yè)生產(chǎn)中使用的大型設備在連續運轉狀態(tài)下的遠程監控問(wèn)題,研究用于重大裝備遠程監控的嵌入式裝置。系統主要包括輸入/輸出模塊(NetIO)和輸 入/輸出上位模塊(NetWeb),前者用于實(shí)現現場(chǎng)數據的采集(輸入),或用于現場(chǎng)裝置的控制(輸出),后者集成了Web功能,使得用戶(hù)可以通過(guò)互聯(lián)網(wǎng) 對輸入/輸出模塊進(jìn)行訪(fǎng)問(wèn)。兩類(lèi)模塊通過(guò)網(wǎng)絡(luò )相連接,在本系統中為通過(guò)串行485總線(xiàn)。嵌入式遠程監控系統結構如圖4所示。
2.NetWeb對嵌入式Linux的功能驗證
圖4 嵌入式遠程監控體系結構
評論