<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一種改進(jìn)嵌入Linux實(shí)時(shí)性的新型方案

一種改進(jìn)嵌入Linux實(shí)時(shí)性的新型方案

作者: 時(shí)間:2010-12-16 來(lái)源:網(wǎng)絡(luò ) 收藏

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

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í)的實(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對嵌入式的功能驗證


圖4 嵌入式遠程監控體系結構

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>