時間:2008-07-24 10:08:00來源:ronggang
圖1 系統(tǒng)硬件結(jié)構(gòu)圖[/align]
軟件實(shí)現(xiàn)
軟件的實(shí)現(xiàn)包括兩個方面,一個是系統(tǒng)的內(nèi)核,另一個是設(shè)備的驅(qū)動程序。
?。?)首先編譯 Kernel的源代碼:
執(zhí)行下列命令:
cd /usr/src/linux
make mrproper
make xconfig
會出現(xiàn)一個界面,可以根據(jù)自己的實(shí)際需要來選擇。在編譯內(nèi)核的過程中,最繁雜的事情就是這步配置工作。在配置過程中,大部分選項(xiàng)可以使用其缺省值,只有小部分需要根據(jù)用戶不同的需要選擇。選擇的原則是將與內(nèi)核其它部分關(guān)系較遠(yuǎn)且不經(jīng)常使用的部分功能代碼編譯成為可加載模塊,有利于減小內(nèi)核的長度,減小內(nèi)核消耗的內(nèi)存,簡化該功能相應(yīng)的環(huán)境改變時對內(nèi)核的影響;不需要的功能就不要選;與內(nèi)核關(guān)系緊密而且經(jīng)常使用的部分功能代碼直接編譯到內(nèi)核中。在選項(xiàng)Code maturity level options、Loadable module support、Processor type and features、Networking options、Network device support、ISDN subsystem、Character devices等分別選擇適合自己所需要的項(xiàng)目。File systems建議選擇相應(yīng)的項(xiàng)目,為了以后擴(kuò)充使用。
(2)為每個設(shè)備編寫程序
Linux系統(tǒng)的設(shè)備驅(qū)動程序完成的主要工作是:
?、?對每個硬件設(shè)備進(jìn)行初始化和釋放;
② 數(shù)據(jù)傳輸,將數(shù)據(jù)從內(nèi)核傳到硬件設(shè)備,或者從硬件設(shè)備傳到內(nèi)核,讀取應(yīng)用程序傳送給硬件設(shè)備的數(shù)據(jù)和回送應(yīng)用程序請求的數(shù)據(jù);
?、?檢測和處理硬件設(shè)備出現(xiàn)的錯誤和異常;
Linux系統(tǒng)的設(shè)備驅(qū)動程序的主要組成部分有:
① 自動配置和初始化子程序;
?、?服務(wù)于I/O請求的子程序;
?、?中斷服務(wù)子程序;
根據(jù)所選擇的設(shè)備和設(shè)備所要完成的功能分別進(jìn)行編寫。
4. 實(shí)時性解決辦法
實(shí)時操作系統(tǒng)是實(shí)時控制系統(tǒng)和實(shí)時處理系統(tǒng)的統(tǒng)稱。所謂實(shí)時就是要求系統(tǒng)及時響應(yīng)外部條件的要求,在規(guī)定的時間內(nèi)完成對該事件的處理,并控制所有實(shí)時設(shè)備和實(shí)時任務(wù)協(xié)調(diào)一致地運(yùn)行。實(shí)時控制系統(tǒng)實(shí)質(zhì)上是過程控制系統(tǒng)。實(shí)時操作系統(tǒng)首先考慮的是系統(tǒng)的實(shí)時性和可靠性。實(shí)時處理系統(tǒng)主要指對信息進(jìn)行及時的處理。
高實(shí)時性是許多工業(yè)控制網(wǎng)絡(luò)的基本要求,Linux 在這樣的環(huán)境下還存在許多缺陷。它不是一個真正的實(shí)時操作系統(tǒng),內(nèi)核不支持事件優(yōu)先級和搶占實(shí)時特性。那么,要將 Linux 系統(tǒng)改造成為適用于工業(yè)控制領(lǐng)域內(nèi)的嵌入式系統(tǒng)必須解決一個重要的問題——實(shí)時性。所以,在開發(fā)嵌入式 Linux 的過程中,首要問題是擴(kuò)展 Linux 的實(shí)時性能。目前把Linux改造為嵌入式實(shí)時系統(tǒng)的方法有兩個:一個方法是對Linux系統(tǒng)的內(nèi)核進(jìn)行改造;另一個方法是在 Linux 系統(tǒng)底層添加一個硬件抽象層,也就是添加一個實(shí)時內(nèi)核進(jìn)行改造。其目的都是為了保證系統(tǒng)會首先執(zhí)行優(yōu)先級更高的實(shí)時進(jìn)程然后才是優(yōu)先級低的普通進(jìn)程,并且防止別的普通進(jìn)程打斷實(shí)時進(jìn)程的運(yùn)行。
為達(dá)到系統(tǒng)實(shí)時性的要求,本文對Linux 內(nèi)核進(jìn)行改造的方法。改造方法主要是通過截取硬件底層中斷,在硬件上實(shí)現(xiàn)一個抽象層,通過抽象層來傳遞和控制 Linux 中斷。目前,為滿足實(shí)時性而進(jìn)行的系統(tǒng)改造主要集中在雙內(nèi)核、中斷和時鐘機(jī)制、內(nèi)核狀態(tài)調(diào)整、進(jìn)程間通信方式的調(diào)整和進(jìn)程搶占式調(diào)度算法這五個方面:
第一, 雙內(nèi)核技術(shù)
這種方法對于支持工業(yè)控制,數(shù)據(jù)采集等等有硬實(shí)時性要求的應(yīng)用系統(tǒng)比較合適。所謂的雙內(nèi)核主要是指,在標(biāo)準(zhǔn)的 Linux 內(nèi)核的下面再提供子內(nèi)核,這個子內(nèi)核不是一個完整的內(nèi)核,它沒有足夠的驅(qū)動程序,缺乏擴(kuò)展庫,它是標(biāo)準(zhǔn)內(nèi)核的補(bǔ)充,主要處理實(shí)時任務(wù)。而原來的 Linux 內(nèi)核作為在其上運(yùn)行的一個核心任務(wù)。在硬件中斷和原來的 Linux 內(nèi)核之間加入一個實(shí)時內(nèi)核,通過實(shí)時內(nèi)核解決原 Linux 內(nèi)核的關(guān)中斷問題,該實(shí)時內(nèi)核始終不關(guān)閉硬件中斷,可以接受所有的中斷信號,當(dāng)中斷信號需要實(shí)時進(jìn)程來處理時,由優(yōu)先級更高的實(shí)時進(jìn)程搶占Linux內(nèi)核。
第二,中斷和時鐘機(jī)制。
實(shí)時系統(tǒng)與外部中斷處理相關(guān)的一個重要的方面是“關(guān)閉中斷”處理機(jī)制,需要保證確認(rèn)硬件外部中斷時內(nèi)核不再重入,并且緊跟一個軟件中斷處理流程,實(shí)質(zhì)就是用軟中斷來代替硬中斷。實(shí)時系統(tǒng)與外部中斷處理相關(guān)的另一個重要的方面是系統(tǒng)中斷嵌套的能力,即可以指定外部事件服務(wù)的相對優(yōu)先級,并且保證關(guān)鍵的外部操作能夠提前處理。同時,可以改造時鐘機(jī)制來縮小軟中斷的切換時間。
第三,提高內(nèi)核的可搶占性。
為了提供進(jìn)程間通信和進(jìn)程搶占式調(diào)度的良好實(shí)現(xiàn),需要對進(jìn)程狀態(tài)進(jìn)行改造,完全的改造 Linux 內(nèi)核為可強(qiáng)占內(nèi)核。加一個搶占點(diǎn)來改良系統(tǒng)響應(yīng)時間長的問題,所謂的搶占點(diǎn)就是,在這個點(diǎn)的時候如果系統(tǒng)中有更高優(yōu)先級的進(jìn)程就序,系統(tǒng)提供這樣一個機(jī)會高優(yōu)先級的進(jìn)程運(yùn)行。那么就可在一個用戶進(jìn)程在核心狀態(tài)執(zhí)行時能被一個更高的優(yōu)先級的可執(zhí)行進(jìn)程搶占。將實(shí)時進(jìn)程包括在內(nèi)核里,實(shí)時內(nèi)核本身也通過內(nèi)核模塊的方式進(jìn)行裝載與卸載,其目的是為了方便進(jìn)程間通信的及時進(jìn)行,并且可以實(shí)現(xiàn)更好的進(jìn)程搶占式調(diào)度算法。
第四,進(jìn)程間通信方式調(diào)整。
用可搶占式內(nèi)核的方法實(shí)現(xiàn)進(jìn)程調(diào)度,需要采用關(guān)中斷或使用信號量機(jī)制來保護(hù)臨界區(qū),需要提供進(jìn)程間通信的若干實(shí)現(xiàn)方法。
第五,進(jìn)程搶占式調(diào)度。
實(shí)時系統(tǒng)的調(diào)度必須滿足以下條件:進(jìn)程的優(yōu)先級通過 API 指定、調(diào)度器自動選擇并執(zhí)行最高優(yōu)先級的進(jìn)程、調(diào)度在一個固定的時間周期里選擇和執(zhí)行最高優(yōu)先級的進(jìn)程。系統(tǒng)需要提供滿足要求的調(diào)度方法。
5. 系統(tǒng)測試分析
為了保證系統(tǒng)的正常運(yùn)行,在理論上通過的前提下,測試是必不可少的。限篇幅有限這里只將測試結(jié)果列表如下:
表5-1 測試結(jié)果統(tǒng)計

標(biāo)簽:
傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為傳動網(wǎng)(surachana.com)獨(dú)家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>2025-10-31
勇梅機(jī)械液壓閘門給煤機(jī)的優(yōu)點(diǎn)
2025-10-22
2025-10-17
2025-10-11
「一體機(jī)性價比王者」NK290M普及型數(shù)控...
2025-10-09
2025-09-23