




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
冷火實時Linux平臺設(shè)計與實現(xiàn)童湘彪(深圳市金宏威技術(shù)股份有限公司深圳518055)摘要:提出并設(shè)計了一種實時Linux平臺。該平臺利用CPU中斷可分優(yōu)先級控制的特點,采用“實時中斷+內(nèi)核線程”的應(yīng)用模式,簡化了實時Linux平臺的設(shè)計,提高了平臺的可靠性,降低了應(yīng)用的開發(fā)移植難度,非常適合在電力行業(yè)的變配電系統(tǒng)中應(yīng)用。關(guān)鍵字:實時Linux;實時中斷繼電保護配電自動化引言因為LINUX免費、源代碼開放、內(nèi)核穩(wěn)定可靠、支持眾多CPU體系架構(gòu)、具有強大的網(wǎng)絡(luò)通訊功能,所有其在嵌入式系統(tǒng)中得到廣泛應(yīng)用。但在嵌入式系統(tǒng)中,Linux也有一個較大缺陷----實時性不強,在某些嵌入式應(yīng)用領(lǐng)域中,關(guān)鍵任務(wù)對實時性有較高要求。針對此缺陷,很多嵌入式操作系統(tǒng)廠商對Linux的實時性進行了改進,誕生了許多實時Linux版本,各種版本各有優(yōu)缺點,這里不展開介紹,以下為冷火實時Linux平臺的特點:?實時性能好,在CPU主頻250Mhz的情況下,實時中斷延時<5us。?平臺設(shè)計原理和實現(xiàn)方法簡單易懂。?實現(xiàn)了實時FIFO和實時消息隊列,用于實時中斷和普通Linux進程之間的通訊。?除了實時中斷外,并沒有實現(xiàn)單獨的實時進程,大大簡化了實時平臺的設(shè)計,提高了平臺的可靠性?;谝陨咸攸c,冷火實時Linux平臺適用于高實時性和高可靠性的系統(tǒng),目前已在電力行業(yè)的變配電系統(tǒng)中得到應(yīng)用,取得良好的效果。冷火實時Linux平臺應(yīng)用場景如下:常規(guī)LINUX內(nèi)核和非實時任務(wù)非實時輸入非實時輸出非實時輸入非實時輸出實實時通訊層:實時軟中斷、實時FIFO、實時消息隊歹0實時令時輸輸入 \1/實時中斷程序(中斷級別4?6) \1/出關(guān)鍵實時任務(wù)圖1冷火Linux平臺應(yīng)用場景優(yōu)先級低應(yīng)用服務(wù)進程系統(tǒng)內(nèi)核線程DTU主應(yīng)用C內(nèi)核P線程U程序系統(tǒng)普通中斷應(yīng)用實時中斷、'卜FTPSERVERVTkthreaddV pdflush應(yīng)用服務(wù)進程系統(tǒng)內(nèi)核線程DTU主應(yīng)用C內(nèi)核P線程U程序系統(tǒng)普通中斷應(yīng)用實時中斷、'卜FTPSERVERVTkthreaddV pdflushWEBSERVER.ksoftirqd104規(guī)約網(wǎng)絡(luò)調(diào)試通訊線程 通訊線程內(nèi)核串口中斷采樣中斷內(nèi)核定時器
中斷對時中斷廣TELNETSERVERkblockdGDBSERVERevents維護命令通訊線程主循環(huán)
線程以太網(wǎng)中斷測頻中斷CAN中斷實時通訊層:■FIFO實時軟中斷保護中斷DTU主應(yīng)用程序優(yōu)先級高圖2具體應(yīng)用實例原理簡介利用某些CPU(例如Freescale的MCF5441X)中斷可以分優(yōu)先級控制的特點,將高優(yōu)先級別中斷分配給實時任務(wù),將低優(yōu)先級別中斷分配給Linux內(nèi)核;然后修改LINUX內(nèi)核中的中斷屏蔽函數(shù),使其只能屏蔽LINUX中的低優(yōu)先級別中斷,不能屏蔽實時任務(wù)中的高優(yōu)先級別中斷,這樣可以確保實時任務(wù)的及時響應(yīng)。整個冷火實時Linux平臺原理實現(xiàn)框圖如下:常規(guī)Linux內(nèi)核提供文件系統(tǒng)、網(wǎng)絡(luò)通訊、進程管理、內(nèi)核同步、內(nèi)存管理等功能。r~多個常規(guī)Linux內(nèi)核應(yīng)用進程通過實時FIFO和實時消息隊列與實時中斷通訊;通過普通Linux通訊方法和常規(guī)Linux內(nèi)核通訊。文件系統(tǒng)網(wǎng)絡(luò)通信/-A——_ ?/I—\進程管理(nV個- 1xlzJ1非實時中斷1優(yōu)先級低于實時中斷,中斷延時受Linux中斷屏蔽的影響。 |1實時通訊層:實時FIFO、實時消息隊列實時中斷優(yōu)先級最高,可以無條件中斷非實時中斷,中斷延時不受Linux中斷屏蔽影響,中斷延時<5us。實時軟中斷■,■圖3冷火實時Linux平臺原理實現(xiàn)框圖具體實現(xiàn)下面以Freescale的MCF5441X硬件平臺為例來說明冷火實時Linux平臺的具體實現(xiàn)。實時中斷實現(xiàn)1、 將低優(yōu)先級中斷級別1?3分配給LINUX中的中斷,將高優(yōu)先級中斷級別4?6分配給實時任務(wù)。2、 修改LINUX中的中斷屏蔽函數(shù),使其只能屏蔽3級和3級以下的中斷。3、 完善實時Linux中斷相關(guān)函數(shù),包括實時中斷登記、注銷、允許、屏蔽等。通過以上步驟,可以達到實時中斷延時<5us的目標值(實測<3us)。實時中斷和內(nèi)核進程之間的通訊由于實時中斷的響應(yīng)不受Linux內(nèi)核中中斷屏蔽(local_irq_save)的影響,所以在實時中斷中不能調(diào)用和Linux內(nèi)核資源相關(guān)的函數(shù)(包括通訊同步函數(shù)),否則將破壞Linux內(nèi)核資源的一致性,導(dǎo)致系統(tǒng)崩潰。為了解決實時中斷和內(nèi)核進程之間通訊這個問題,我們設(shè)計了實時軟中斷、實時FIFO、實時消息隊列3種通訊機制。其中實時軟中斷是其它2種通訊機制的基礎(chǔ)。實時軟中斷實時軟中斷是實時中斷通知內(nèi)核進程的一種基本通訊手段,其基本原理是在非實時中斷區(qū)域申請一個最低優(yōu)先級的軟中斷(實時軟中斷),當(dāng)實時中斷中有相應(yīng)事件需要通知時,觸發(fā)此軟中斷,此軟中斷在其它高優(yōu)先級的中斷(包括實時和非實時)執(zhí)行完成后,就會響應(yīng)執(zhí)行,其服務(wù)函數(shù)可以通過up函數(shù)觸發(fā)一個信號量,喚醒正在等待此信號量的內(nèi)核進程。注意在此期間,由于軟中斷服務(wù)函數(shù)的響應(yīng)執(zhí)行,受Linux內(nèi)核規(guī)則的約束,所以不會破壞內(nèi)核資源的一致性,不會影響Linux的穩(wěn)定性。其具體過程如圖:圖4實時軟中斷實時FIFO實時FIFO是以實時軟中斷為通知手段的一種先進先出的隊列,主要用于流數(shù)據(jù)的發(fā)送和接收。實時FIFO使用成熟算法,僅對實時中斷屏蔽部分進行了優(yōu)化處理,這里不再敘述。實時消息隊列實時消息隊列是以實時軟中斷為通知手段的消息隊列。通過實時消息隊列,實時中斷可以向內(nèi)核進程發(fā)送長度可變的消息,并及時喚醒等待消息的內(nèi)核進程。實時調(diào)試語句輸出在冷火實時Linux平臺中,為了全面實時了解平臺的狀態(tài),需要有大量的調(diào)試信息輸出,這些調(diào)試信息的輸出必須滿足以下幾點需求:不能影響實時中斷的性能。為了方便用戶獲取信息,必須和Linux共用同一個控制臺。為了方便用戶使用,此輸出函數(shù)應(yīng)既可在實時中斷中調(diào)用,也可在其它環(huán)境中調(diào)用。最終實時調(diào)試語句的輸出(rt_printf)通過實時FIFO和實時軟中斷配合實現(xiàn)。具體實現(xiàn)如下:圖5實時調(diào)試語句輸出
實時統(tǒng)計信息為了分析冷火實時Linux平臺的各項性能指標(例如實時中斷延時、實時中斷執(zhí)行時間、實時中斷屏蔽時間等),我們必須收集平臺的大量數(shù)據(jù)信息,為此冷火Linux平臺設(shè)計了一個實時統(tǒng)計信息模塊,統(tǒng)一了每個收集數(shù)據(jù)的內(nèi)容和顯示格式,示例顯示如下:Linux:Compiled:Jul272012-11:57:33!RESETTIME:2012-07-3017:30:211070220001UPDATETIME:2012-07-3017:32:14:744253000!nameminmaxavgsurnent[實時中斷廷時統(tǒng)計(單位:見各行)]pit_lE r(8ns)wn2^42417272RRpit_5ms_isr(128ns)32051125785422728[實時中斷屏蔽時間統(tǒng)計(單位:um)]實時中斷屏蔽□10180811641L實日寸中斷日'J間統(tǒng)計(.單位:us)Justiiner_isr-10000freq_isr□-1□0□□freq_isr1-1□0□□gps_isr22423354311364pit_5ms_isr211866150649022728pit_156us_isr832107286885727291[其它時間統(tǒng)計(單位:um)]主循環(huán)1399031361647971209other1-1□0□□□ther2-10000other3-10000other4-1□0□□other5-1□0□□other6-10000other7-1□0□□圖6實時統(tǒng)計信息實時平臺運行為了方便冷火實時Linux平臺的維護、移植,我們將冷火實時Linux平臺封裝在一個庫中,讓其和內(nèi)核應(yīng)用程序一起連接,生成一個標準的動態(tài)加載的內(nèi)核模塊,在運行時通過動態(tài)加載模式將實時Linux平臺和應(yīng)用一起加載。采用動態(tài)加載模式有如下優(yōu)勢:1、 在Freescale提供的LinuxBsp中只需要做極少量的修改,這樣當(dāng)BSP升級時,對實時平臺影響不大。2、 調(diào)試、維護方便。采用動態(tài)模塊方式編譯、下載、運行時間都很短,可以較短的時間內(nèi)完成多次代碼修改、調(diào)試工作。3、 和應(yīng)用程序一起編譯,將極大增強應(yīng)用程序員對實時Linux平臺本身的理解,將大大提高應(yīng)用系統(tǒng)的穩(wěn)定性和可靠性。運行示意圖如下:
應(yīng)用系統(tǒng)冷火實時Linux平臺應(yīng)用應(yīng)用系統(tǒng)冷火實時Linux平臺應(yīng)用BSPFreescaleMCF5441XLinuxBSP圖7冷火實時Linux平臺運行示意圖結(jié)語冷火實時Linux平臺是一個實時中斷延時低、原理和實現(xiàn)簡
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024屆吉林省長春市南關(guān)區(qū)中考數(shù)學(xué)模試卷含解析
- 2025年企業(yè)健康教育與安全管理計劃
- 臺風(fēng)來臨時的建筑防御措施
- 體育裝備采購及管理計劃
- 3 植物媽媽有辦法課件
- 語文教師職業(yè)發(fā)展與成長計劃
- 城市基礎(chǔ)設(shè)施建設(shè)的質(zhì)量與安全管理措施
- 護理部危急值管理規(guī)范
- 2025年八年級語文教學(xué)資源整合計劃
- 湖北省部分高中協(xié)作體聯(lián)考2024-2025學(xué)年高二5月月考語文試題(含答案)
- 信息系統(tǒng)監(jiān)理師(基礎(chǔ)知識、應(yīng)用技術(shù))合卷軟件資格考試(中級)試題與參考答案(2024年)
- 上海市上寶中學(xué)新初一分班(摸底)語文模擬試題(5套帶答案)
- 河南省南陽市2023-2024學(xué)年高二下學(xué)期期終質(zhì)量評估+物理試卷答案
- 食品安全與質(zhì)量檢測技能大賽考試題庫400題(含答案)
- 2024年浙江省嘉興市初三中考三模科學(xué)試卷試題(含答案詳解)
- 核心素養(yǎng)-空間觀念
- 吉林省長春市2024年中考語文真題試卷【附真題答案】
- DZ/T 0462.3-2023 礦產(chǎn)資源“三率”指標要求 第3部分:鐵、錳、鉻、釩、鈦(正式版)
- 梧州喜得寶礦業(yè)有限公司廣西梧州市金山頂金銀礦礦山地質(zhì)環(huán)境保護與土地復(fù)墾方案
- 2024年職業(yè)衛(wèi)生技術(shù)人員評價方向考試題庫附答案
- 安全管理之肉制品安全及防控措施
評論
0/150
提交評論