www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式硬件
[導讀]引言嵌入式Linux是指對Linux進行剪裁后,將其固化在單片機或者存儲器中,應用于特定場合的專用Linux系統(tǒng)。嵌入式系統(tǒng)要求實時性能高,但Linux為分時系統(tǒng)設計的操作系統(tǒng),盡

引言

嵌入式Linux是指對Linux進行剪裁后,將其固化在單片機或者存儲器中,應用于特定場合的專用Linux系統(tǒng)。嵌入式系統(tǒng)要求實時性能高,但Linux為分時系統(tǒng)設計的操作系統(tǒng),盡管最新的內(nèi)核在實時性能方面有所提高,但它仍然不是一個實時系統(tǒng),在很多場合不能滿足實時性要求。一般地,通過改造Linux的內(nèi)核以提高其實時性能有2種策略:一種是采用底層編程的方法對Linux內(nèi)核進行修改(如調(diào)度算法、時鐘修改等),典型的系統(tǒng)有Kansas大學開發(fā)的KURT。文獻提出了搶占式內(nèi)核調(diào)度算法,容易引起內(nèi)核優(yōu)先級翻轉(zhuǎn),文獻針對非搶占式內(nèi)核,增加搶占點,該方法需要優(yōu)秀的調(diào)度算法。另一種途徑是Linux的外部實時性擴展,在原有Linux基礎上再設計一個用于專門處理實時進程的內(nèi)核,典型的系統(tǒng)有RTLinux、 RTAI等。此方法的不足是RTLinux現(xiàn)在已經(jīng)停止了更新,目前的開源版本僅支持2.4內(nèi)核,RTAI的設計原理和RTLinux類似,也是一個實時性應用接口。本文采用APIC時鐘修改的方法對Linux內(nèi)核進行實時化改造,修改APIC中斷函數(shù),將APIC中斷和8254中斷排序,使得硬實時中斷的優(yōu)先級大于普通8254中斷。通過多組仿真實驗,驗證了該改造方法是有效的。

1 嵌入式Linux的實時性分析

Linux設計的初衷是系統(tǒng)吞吐量的平衡,其內(nèi)核試圖通過一種公平分配的策略來實現(xiàn)各進程平均地共享系統(tǒng)資源:

(1)內(nèi)核的不可搶占性:Linux的內(nèi)核在單處理器上不可搶占,當一個任務進入內(nèi)核態(tài)運行時,一個具有更高優(yōu)先級的進程,只有等待處于核心態(tài)的系統(tǒng)調(diào)用返回后方能執(zhí)行,這將導致優(yōu)先級逆轉(zhuǎn)。

(2)進程調(diào)度的不可搶占性:Linux作為一個分時系統(tǒng),采用多級反饋輪轉(zhuǎn)調(diào)度算法,它保證了每一個進程都有一種調(diào)度策略,但是都放在同一個隊列中運行,這也是Linux作為實時操作系統(tǒng)的一個弱點。圖1是Linux調(diào)度機制框圖。

(3)時鐘中斷的精度不高:Linux 2.4.X內(nèi)核的時鐘中斷周期為10 ms,時鐘粒度太過于粗糙,不能滿足實時性要求。

(4)Linux的虛擬存儲管理:Linux采用段和頁機制的虛擬存儲管理技術,進程在硬盤和內(nèi)存間的換入換出必然帶來額外的開銷,造成很大的延遲。

 

由此可見,要將Linux應用于嵌入式系統(tǒng),必須對其進行實時化改造,以適應嵌入式領域要求。

2 基于時鐘修改的內(nèi)核改造方案

在單CPU系統(tǒng)中,與時間有關的活動都是由8254時鐘芯片來驅(qū)動的,8254產(chǎn)生0號中斷。直接修改內(nèi)核定時參數(shù)HZ的初值就可構造細粒度定時器。這種方式實現(xiàn)起來很簡單,但是由此帶來頻繁的定時中斷使得系統(tǒng)的開銷很大,當然隨著硬件速度的提高,這種開銷會逐步降低。

簡單地修改赫茲參數(shù)HZ進行實時化的方法顯然并不可取。Linux 2.6內(nèi)核的時鐘粒度是1 ms,但仍然與嵌入式領域的實時化要求差距較遠,因此需要更高精度的時鐘。目前常見的修改時鐘系統(tǒng)達到實時化的方法都是從軟件層面著手,這方面己獲得較大進展,但是從時鐘系統(tǒng)的硬件結構分析并開展實時化工作也是一個值得注意的方向。本文利用先進的APIC時鐘實現(xiàn)一個高精度時鐘系統(tǒng),提供了高精度的中斷響應,從而以較少的改動獲得較高的實時性。

APIC以總線頻率工作,可立即執(zhí)行所有的定時器操作,目前x86都有片內(nèi)APIC,用戶可在單CPU內(nèi)使用APIC。APIC除了能提供高精度的時鐘外還具有一個重要的優(yōu)點,是由于它位于片內(nèi),對其編程只需幾個CPU指令周期,而對IntelX86的8254存取需要若干慢速的ISA總線指令。

在100MHz的CPU系統(tǒng)中,處理一個中斷的時間不到10μs,因此高速CPU完全可在更短的時間內(nèi)處理更多的APIC中斷。理論上APIC可實現(xiàn)10 ns左右的系統(tǒng)時鐘,但實際上在處理中斷時要耗費一些時間,因此中斷的響應時間要大于10 ns。

APIC本身提供了中斷處理函數(shù)apic_timer_interrupt,該函數(shù)包括 Irq_enter(),Run_realtimer_queue()和irq_exit(),其中函數(shù)irq_ exit通常負責判斷當前是否有8254產(chǎn)生的軟中斷存在,如果存在,就會觸發(fā)8254軟中斷,這樣會造成APIC硬中斷處理延遲。本文的思路就是修改 irq_exit,在其中將各軟中斷線程和硬中斷線程進行排序,使APIC硬中斷的優(yōu)先級高于軟中斷,此時硬中斷線程得到優(yōu)先處理,從而提高內(nèi)核的實時性能。Irp_exit函數(shù)的核心代碼如下:

 

上面調(diào)用invoke_softirq()函數(shù)執(zhí)行軟中斷使本文修改的重點,修改中斷向量表,對向量表中所有軟中斷和實時中斷進行排序,提前硬中斷的時間片,這樣使當前處于pending狀態(tài)的軟中斷被屏蔽和懸掛,直到硬中斷處理完成為止。將invoke_softirq()函數(shù)修改為:

 

每個處理器時間片上能夠處理的中斷只有一個,通過更新當前任務時間片,使硬中斷在第一時間獲得CPU的響應,此時軟中斷將被屏蔽,這就保證了硬中斷能夠得到實時的響應。

由于Linux采用8254完成時序分配,8254需要保留以保證系統(tǒng)的穩(wěn)定性。這樣的話,8254定時器和APIC必須共存,對于硬實時應用,可采用 APIC時鐘進行計時。在8254中斷過程中,如果產(chǎn)生APIC中斷,采用通過本文的方琺必須對優(yōu)先對APIC時鐘進行響應,會出現(xiàn)8254中斷被搶占,此時上下文切換等操作可能導致不可預料的錯誤。解決問題的方法可采取在APIC相應中斷期間,關閉軟中斷,只有當APIC中斷執(zhí)行完畢后,8254軟中斷才能夠被響應。

3 實時性能測試與分析

實驗條件1:CPU:PⅢ300 MHz,內(nèi)存為128 MB,硬盤為5 400轉(zhuǎn)的15 GB臺式機硬盤,操作系統(tǒng)為Fedora2.6.18內(nèi)核。環(huán)境一(vd-d1)采用原版內(nèi)核,環(huán)境二(vd-d2)采用改進型內(nèi)核。測試方法為通過測試內(nèi)核的上、下文切換、內(nèi)存延遲及模擬外部中斷來評價改造前后的性能。統(tǒng)計測試結果。

 

從實驗結果可知,在上、下文切換中I/0讀/寫和文件打開和關閉,改進型內(nèi)核的實時性能都有明顯提高,模擬TCP通道子項,改進型內(nèi)核性能提高了約6倍,但在對中斷響應要求不是很高的null call測試中,中斷響應時間幾乎相同。改進型內(nèi)核中斷響應速度始終穩(wěn)定在微妙級。在處理器負荷較輕時原始內(nèi)核有著良好的內(nèi)存延遲,隨著處理器負荷的進一步加重,原始內(nèi)核的內(nèi)存延遲急劇增加。在最差情況下,系統(tǒng)響應速度較慢,延遲時間達到5μs。而改進型內(nèi)核在處理器負荷變化時,系統(tǒng)的響應速度變化不明顯,而且中斷響應速度始終穩(wěn)定在2μs以下,性能穩(wěn)定。[!--empirenews.page--]

實驗條件2:采用改進型內(nèi)核,環(huán)境一(vd-d2)CPU:PIII 300 MHz,環(huán)境二(vd-d3)CPU降頻為200 MHz(接近ARM9)。統(tǒng)計測試結果,獲得它們的文件系統(tǒng)延遲結果見圖4。圖4反映了同樣采用改進型內(nèi)核,將CPU降頻前后,測試結果差距在10μs以內(nèi),可看出在文件系統(tǒng)延遲中,處理器頻率的較小差距對內(nèi)核的影響不大。如采用高主頻的處理器,實驗結果差距較大。

 

4 結語

本文通過修改APIC時鐘,可顯著地改進嵌入式系統(tǒng)的實時性能,通過對比試驗可看出改進型內(nèi)核具有良好的實時性能,滿足了系統(tǒng)實時性和穩(wěn)定性要求。本文方法使得嵌入式Linux系統(tǒng)在高實時性領域中得到實際的應用。

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

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關鍵。

關鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅(qū)動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關鍵字: LED 驅(qū)動電源 開關電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅(qū)動電源
關閉