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

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]近年來,實時操作系統(tǒng)在多媒體通信、在線事務(wù)處理、生產(chǎn)過程控制、交通控制等各個領(lǐng)域得到廣泛的應(yīng)用,因而越來越引起人們的重視。

近年來,實時操作系統(tǒng)在多媒體通信、在線事務(wù)處理、生產(chǎn)過程控制、交通控制等各個領(lǐng)域得到廣泛的應(yīng)用,因而越來越引起人們的重視。

1.引言

從上世紀(jì)八十年代開始,開始出現(xiàn)各種各樣的商用嵌入式操作系統(tǒng),這些操作系統(tǒng)大部分都是為專用或通用系統(tǒng)而開發(fā),如VxWorks、Windows CE、pSOS、Palm OS、OS-9、LynxOS、QNX、LYNX 等,它們的優(yōu)點是為用戶提供良好的開發(fā)環(huán)境,提高了應(yīng)用系統(tǒng)的開發(fā)效率,運行效率高、實時性好,缺點是價格昂貴且源代碼封閉。這就不僅影響了開發(fā)者的積極性,而且使得整個產(chǎn)品的成本急劇上升。

結(jié)合國內(nèi)實情,嵌入式系統(tǒng)需要的是一套高度簡練、界面友好、質(zhì)量可靠、應(yīng)用廣泛、易開發(fā)、多任務(wù)、價格低廉的實時操作系統(tǒng)。

在嵌入式產(chǎn)品的開發(fā)中,有必要尋找一種廉價的嵌入式實時操作系統(tǒng),以降低產(chǎn)品的開發(fā)成本和系統(tǒng)復(fù)雜度。由于Linux的具備的諸多優(yōu)點,對Linux進(jìn)行適當(dāng)?shù)母脑旌笞鳛榱畠r的嵌入式實時操作系統(tǒng)是一個值得探討的、具有實際意義的問題。

2.Linux的特點

Linux是個與生俱來的網(wǎng)絡(luò)操作系統(tǒng),成熟而且穩(wěn)定。Linux是源代碼開放軟件,不存在黑箱技術(shù),任何人都可以修改它,或者用它開發(fā)自己的產(chǎn)品。 Linux系統(tǒng)是可以定制的,系統(tǒng)內(nèi)核目前已經(jīng)可以做得很小。一個帶有中文系統(tǒng)及圖形化界面的核心程序也可以做到不足1MB,而且同樣穩(wěn)定。Linux作為一種可裁減的軟件平臺系統(tǒng),是發(fā)展嵌入式產(chǎn)品的絕佳資源,遍布全球的眾多Linux愛好者又能給予Linux開發(fā)者強(qiáng)大的技術(shù)支持。因此,Linux作為廉價的嵌入式實時操作系統(tǒng)的選擇,是非常有發(fā)展前途的。

(1)與硬件芯片的緊密結(jié)合

嵌入式Linux的一大特點是:與硬件芯片(如SOC等)的緊密結(jié)合。它不是一個純軟件的Linux系統(tǒng),而比一般操作系統(tǒng)更加接近于硬件。嵌入式Linux的進(jìn)一步發(fā)展,逐步地具備了嵌入式RTOS的一切特征:實時性及與嵌入式處理器的緊密結(jié)合。

(2)開放的源代碼

嵌入式Linux的另一大特點是:代碼的開放性。代碼的開放性是與后PC時代的智能設(shè)備的多樣性相適應(yīng)的。代碼的開放性主要體現(xiàn)在源代碼可獲得上,Linux代碼開發(fā)就像是“集市式”開發(fā),任意選擇并按自己的意愿整合出新的產(chǎn)品。

對于嵌入式Linux,事實上是把BIOS層的功能實現(xiàn)在Linux的driver層。目前,在Linux領(lǐng)域,已經(jīng)出現(xiàn)了專門為Linux操作系統(tǒng)定制的自由軟件的BIOS代碼,并在多款主板上實現(xiàn)此類的BIOS層功能。

3.RT-Linux的實現(xiàn)機(jī)理

在Linux內(nèi)核和硬件中斷的地方,加上了一個RT-Linux內(nèi)核的控制。Linux的控制信號都要先交給RT-Linux內(nèi)核先進(jìn)行處理。在RT-Linux內(nèi)核中實現(xiàn)了一個虛擬中斷機(jī)制,Linux本身永遠(yuǎn)不能屏蔽中斷,它發(fā)出的中斷屏蔽信號和打開中斷信號都修改成向RT- Linux發(fā)送一個信號。如在Linux里面使用“sti”和“cli”宏指令來屏蔽和使能中斷,是通過向x86處理器發(fā)送一個指令,而RT-Linux 修改了這些宏指令,使得只是讓RT-Linux里面的某些標(biāo)記做了修改而已。對所有的中斷,分成Linux中斷和實時中斷兩類,如果RT-Linux內(nèi)核收到的中斷信號是普通Linux中斷,那就設(shè)置一個標(biāo)志位;如果是實時中斷,就繼續(xù)向硬件發(fā)出中斷。在RT Linux中執(zhí)行sTI將中斷打開之后,那些設(shè)置了標(biāo)志位表示的Linux中斷就繼續(xù)執(zhí)行。因此,cli并不能禁止RT Linux內(nèi)核的運行,卻可以用來中斷Linux。Linux不能中斷自己,而RT-Linux可以。

RT-Linux的設(shè)計原則:在實時內(nèi)核模塊中的工作盡量少,如果能在Linux中完成而不影響實時性能的話,就盡量在Linux中完成。因此,RTLinux內(nèi)核盡量做的簡單,在 RT-Linux內(nèi)核中,不應(yīng)該等待資源,也不需要使用共享旋轉(zhuǎn)鎖(SpinLock),實時任務(wù)和Linux進(jìn)程間的通信也是非阻塞的,從來不用等待進(jìn)隊列和出隊列的數(shù)據(jù)。

RT-Linux將系統(tǒng)和設(shè)備的初始化交給了Linux完成,對動態(tài)資源的申請和分配也交給了Linux。RT-Linux使用靜態(tài)分配的內(nèi)存來完成硬實時任務(wù),因為在沒有內(nèi)存資源的時候,被阻塞的線程不可能具有硬實時能力。

4.改變Linux內(nèi)核的體系結(jié)構(gòu)

Linux的內(nèi)核體系采用的是Monolithic,在這種體系結(jié)構(gòu)中,內(nèi)核的所有部分都集中在一起,而且所有的部件在一起編譯連接。這樣雖然能使系統(tǒng)的各部分直接溝通,有效地縮短任務(wù)之間的切換時間,提高了系統(tǒng)的響應(yīng)速度,實時性好并提高了CPU的利用率,但在系統(tǒng)比較大的時候體積也比較大,與嵌入式系統(tǒng)容量小、資源有限的特點不符合。而另外一種內(nèi)核體系結(jié)構(gòu) MicroKernel, 在內(nèi)核中只包括了一些基本的內(nèi)核功能如創(chuàng)建和刪除任務(wù)、任務(wù)調(diào)度、內(nèi)存管理和中斷處理等部分,而文件系統(tǒng)、網(wǎng)絡(luò)協(xié)議棧等部分都是在用戶內(nèi)存空間運行。這種結(jié)構(gòu)雖然執(zhí)行效率不如Monolithic內(nèi)核,但大大減小了內(nèi)核的體積,同時也極大地方便了整個系統(tǒng)的升級、維護(hù)和移植,因此更能滿足嵌入式系統(tǒng)的特點需要。為此,為使嵌入式Linux的應(yīng)用更加廣泛,可以考慮將Linux目前的Monolithic內(nèi)核結(jié)構(gòu)中的部分結(jié)構(gòu)改造成MicroKernel體系結(jié)構(gòu)。通過這種折中辦法,可以使得到的Linux既具有很好的實時性,又能滿足嵌入式系統(tǒng)體積小的要求。

5.RT-Linux的編程接口(API)及編程方法示例

(1)RTLinux的編程和控制接口(API)。

通過使用RTLinux的編程和控制接口(API),可以提供對實時任務(wù)的創(chuàng)建和刪除、任務(wù)的調(diào)度和控制等功能。API函數(shù)主要有如下幾類:

1)中斷控制API函數(shù);2)時鐘控制和獲取;3)線程的創(chuàng)建和刪除;4)POSIX方式的驅(qū)動接口;5)FIFO設(shè)備驅(qū)動程序;6)串口驅(qū)動程序的API函數(shù);7)mbuff驅(qū)動API函數(shù);8)浮點運算API函數(shù)。

(2) RTLinux的編程方法示例

該程序的原理是測出在RT-Linux中進(jìn)行實時任務(wù)調(diào)度過程中調(diào)度需要花費時間的多少。算法如下:

/*實時任務(wù)端*/

對于每500個周期

等待上一個周期的任務(wù)完成

獲得當(dāng)前時間和上次周期任務(wù)完成時間的差,就是調(diào)度的時間

循環(huán)

向FIFO輸出500個周期中完成的最大值和最小值。

/*應(yīng)用程序端*/

讀取FIFO設(shè)備,獲取最大值和最小值

在屏幕上打印出來

6.開發(fā)嵌入式RT-Linux的幾個問題

(1)Linux的移植。如果Linux不支持選用的平臺,就需要把Linux內(nèi)核中與硬件平臺相關(guān)的部分改寫,使之支持所選用的平臺。

(2)內(nèi)核的裁剪。嵌入式產(chǎn)品的可用資源比較少,所以它的內(nèi)核相對嵌入式系統(tǒng)來說就顯得有點大,需要進(jìn)行剪裁到可利用的大小。

(3)桌面系統(tǒng)?,F(xiàn)代的操作系統(tǒng)如果沒有一個友好的界面是沒有說服力的?,F(xiàn)在的臺式機(jī)Linux系統(tǒng)使用了傳統(tǒng)的X-Window系統(tǒng)的模式— Client/Server結(jié)構(gòu)。和硬件有關(guān)的部分即是Server端,實現(xiàn)一個標(biāo)準(zhǔn)的顯示接口;應(yīng)用程序通過對Server的服務(wù)請求,實現(xiàn)程序的顯示。在此之上,實現(xiàn)窗口的管理功能。但X Window對于嵌入式系統(tǒng)來說顯得很龐大?,F(xiàn)在國內(nèi)有MiniGUI,國外有MicroWindow,都在致力于嵌入式Linux GUI的開發(fā)。適用于嵌入式Linux上的X-Window的工作也在進(jìn)行。

(4)驅(qū)動程序的開發(fā)。Linux內(nèi)核更新的很快,許多最新的硬件驅(qū)動很快就被支持。但嵌入式系統(tǒng)應(yīng)用領(lǐng)域是多種多樣的,所選用的硬件設(shè)備也不同,并且不可能都有Linux的驅(qū)動程序,因此,設(shè)備驅(qū)動程序的開發(fā)也是重要的工作。

7.結(jié)束語

嵌入式系統(tǒng)的開發(fā)是剪裁與移植相結(jié)合的過程,開發(fā)者自己編寫的代碼并不多。筆者在智能交通監(jiān)控系統(tǒng)的設(shè)計中,通過對Linux適當(dāng)?shù)募舨?,選擇了RT- linux作為系統(tǒng)的開發(fā)平臺,對于提高系統(tǒng)的開發(fā)效率和降低開發(fā)成本取得較好的實效。當(dāng)然,嵌入式系統(tǒng)的發(fā)展對嵌入式操作系統(tǒng)提出了更高的要求,因此,對嵌入式操作系統(tǒng)的結(jié)構(gòu)、設(shè)計、用戶界面等諸多方面進(jìn)行深入研究,將有助于嵌入式系統(tǒng)的應(yīng)用和發(fā)展。

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

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

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

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

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動電源

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

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

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

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

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

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

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

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

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

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

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

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

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

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

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

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