摘 要:隨著當(dāng)前計(jì)算機(jī)技術(shù)的不斷發(fā)展,嵌入式系統(tǒng)應(yīng)用領(lǐng)域越來越廣泛,尤其是Linux操作系統(tǒng)在產(chǎn)業(yè)發(fā)展中起著舉足輕重的作用。Linux操作系統(tǒng)內(nèi)核具備進(jìn)程管理、文件管理、儲(chǔ)存管理以及內(nèi)核調(diào)度等功能,同時(shí)基于Linux應(yīng)用環(huán)境前提下,在不同系統(tǒng)芯片硬件平臺(tái)上,嵌入式Linux操作系統(tǒng)能夠?qū)崿F(xiàn)運(yùn)行,通過進(jìn)程調(diào)度以及文件設(shè)計(jì)等模塊滿足不同開發(fā)板與應(yīng)用需求。本文主要通過介紹嵌入式Linux操作系統(tǒng)的基本功能,從而具體闡述嵌入式Linux操作系統(tǒng)的設(shè)計(jì)。
關(guān)鍵詞:操作系統(tǒng);Linux;嵌入式操作系統(tǒng)
中圖分類號(hào):TP316
嵌入式操作系統(tǒng)作為嵌入式系統(tǒng)的關(guān)鍵內(nèi)容,通過控制系統(tǒng)資源,提供開發(fā)應(yīng)用程序,體現(xiàn)了嵌入式系統(tǒng)的外在功能。筆者綜合自身多年來的實(shí)踐經(jīng)驗(yàn),結(jié)合嵌入式Linux操作系統(tǒng)的功能以及機(jī)理,詳細(xì)研究與分析其在嵌入式領(lǐng)域應(yīng)用的完善方法。
1 嵌入式Linux操作系統(tǒng)概述
1.1 嵌入式系統(tǒng)內(nèi)涵。嵌入式系統(tǒng)在發(fā)展初期主要是以微處理器的形式而存在的,隨著科學(xué)技術(shù)的不斷發(fā)展,嵌入式系統(tǒng)已經(jīng)滲透到了人們的工作、生活以及娛樂等方方面面。從本質(zhì)上來講,嵌入式系統(tǒng)將復(fù)雜的軟件與硬件進(jìn)行緊密耦合,從而形成一個(gè)全新的計(jì)算機(jī)系統(tǒng)。“嵌入式”即在各個(gè)完整的系統(tǒng)中吸納一部分優(yōu)越系統(tǒng),將這些系統(tǒng)進(jìn)行整合。而就這些嵌入的系統(tǒng)本身而言,一般存在多種嵌入式系統(tǒng)。在現(xiàn)階段,隨著微處理器制造技術(shù)的深入發(fā)展,嵌入式處理器制造取得了巨大的發(fā)展。在系統(tǒng)硬件上,主要考慮價(jià)格、性能以及能耗等因素,其關(guān)鍵部分是應(yīng)用軟件與系統(tǒng)軟件。但是由于儲(chǔ)存空間存在局限性,因此嵌入式系統(tǒng)對(duì)實(shí)時(shí)性要求越來越嚴(yán)格。
1.2 嵌入式Linux操作系統(tǒng)。Linux主要是指開放源代碼,一般包括四個(gè)方面:一是內(nèi)核,二是系統(tǒng)工具,三是開發(fā)環(huán)境,四是Unix類操作系統(tǒng)。Linux作為一個(gè)現(xiàn)代操作系統(tǒng),其性能可靠、穩(wěn)定,主要具備七個(gè)特征:第一,滿足國際通用標(biāo)準(zhǔn)規(guī)范;第二,具有可移植性,靈活性強(qiáng);第三,整個(gè)系統(tǒng)性能卓越;第四,在某種程度上動(dòng)態(tài)鏈接能力強(qiáng);第五,系統(tǒng)網(wǎng)絡(luò)特征鮮明;第六,兼容性強(qiáng)大;第七,系統(tǒng)能夠包容大容量用戶,任務(wù)能力優(yōu)越。從整體上來看,嵌入式Linux操作系統(tǒng)的開放源代碼在一定程度上使用戶自由限度得到了進(jìn)一步的拓展,由于軟件資源豐富,因此開發(fā)工作量少、開發(fā)時(shí)間短,同時(shí)網(wǎng)絡(luò)支持功能強(qiáng)大、使用成本低。
2 嵌入式Linux操作系統(tǒng)設(shè)計(jì)
2.1 進(jìn)程管理分析。在進(jìn)程管理過程中,主要可以從兩個(gè)方面來進(jìn)行:一是創(chuàng)建新進(jìn)程,主要利用Fork系統(tǒng)來實(shí)現(xiàn)調(diào)用,根據(jù)硬件環(huán)境,定義語義,進(jìn)而創(chuàng)建子進(jìn)程。由于硬件沒有內(nèi)存管理單元,缺乏數(shù)據(jù)保護(hù)機(jī)制以及地址映射機(jī)制,因此在同一地址空間,父子進(jìn)程同時(shí)運(yùn)行,嵌入式應(yīng)用可移植性高;二是調(diào)度進(jìn)程運(yùn)行,通過schedule函數(shù)與調(diào)度時(shí)機(jī)來實(shí)現(xiàn)。
2.2 文件管理分析。嵌入式系統(tǒng)利用核心線程加載任務(wù),理論上不需要設(shè)置文件系統(tǒng)。嵌入式系統(tǒng)常用存儲(chǔ)設(shè)備主要以Flash存儲(chǔ)設(shè)備為主,主要有兩種,即NORF lash設(shè)備與NAND Flash設(shè)備。從實(shí)際角度出發(fā),這兩種設(shè)備不能適應(yīng)Flash設(shè)備發(fā)展要求,因此基于嵌入式Linux操作系統(tǒng)下,開發(fā)了嵌入式文件系統(tǒng)。這種嵌入式文件系統(tǒng),可以對(duì)文件信息進(jìn)行整理,實(shí)時(shí)性強(qiáng)。比如采用Unix實(shí)時(shí)文件系統(tǒng)設(shè)計(jì),安全性高。同時(shí),為了保證其他同類系統(tǒng)用戶訪問秘密數(shù)據(jù)的使用特權(quán),一般采用加密文件系統(tǒng),利用loop設(shè)備實(shí)現(xiàn)保密性,尤其是在移動(dòng)設(shè)備中,其使用簡易性能好。
2.3 內(nèi)存管理分析。在內(nèi)存管理過程中,主要依據(jù)其硬件是否存在內(nèi)存管理單元來進(jìn)行具體管理。如MCF5272處理器,主要采用存儲(chǔ)器來實(shí)現(xiàn)分頁管理。當(dāng)系統(tǒng)啟動(dòng)時(shí),將應(yīng)用程序進(jìn)行分頁加載,但在實(shí)際應(yīng)用中缺乏內(nèi)存管理單元管理,基于嵌入式系統(tǒng)外存容量較小的情況,實(shí)行實(shí)存儲(chǔ)器管理策略可靠性低,因此要綜合考慮外存設(shè)備特點(diǎn),實(shí)現(xiàn)改良。如利用Flash設(shè)備,將只讀數(shù)據(jù)存入內(nèi)存中,在設(shè)備上進(jìn)行直接訪問Flash作為只讀數(shù)據(jù)塊與代碼的直接內(nèi)存設(shè)置,有助于節(jié)省內(nèi)存空間,改變內(nèi)存布局,提高操作系統(tǒng)文件處理能力。
2.4 網(wǎng)絡(luò)模塊分析。網(wǎng)絡(luò)模塊設(shè)計(jì)目的是為了滿足兩個(gè)方面的需求,即嵌入式系統(tǒng)中有限計(jì)算要求以及內(nèi)存資源要求,運(yùn)用拷貝技術(shù),最大程度地促進(jìn)TCP中層與層之間數(shù)據(jù)拷貝次數(shù)的減少,節(jié)省系統(tǒng)資源。其次,采用緊急緩沖區(qū)預(yù)留技術(shù),實(shí)現(xiàn)緊急數(shù)據(jù)的處理。在應(yīng)用這種處理技術(shù)的過程中,要注意將緊急數(shù)據(jù)與其它數(shù)據(jù)區(qū)分開來,提高操作的便捷性。
2.5 bootloader固件分析。bootloader固件作為嵌入式Linux操作系統(tǒng)硬件運(yùn)行程序,對(duì)系統(tǒng)任務(wù)的完成起著重要的促進(jìn)作用。bootloader固件通過固化目標(biāo)板ROM,啟動(dòng)RAM嵌入式軟件程序或ROM嵌入式軟件程序,基于CPU支持的情況下,實(shí)現(xiàn)其在RAM中的正常運(yùn)行。在嵌入式Linux操作系統(tǒng)開發(fā)中,實(shí)現(xiàn)bootloader程序的開發(fā),主要有四個(gè)方面的任務(wù):第一,初始化處理器結(jié)合了bootloader程序中MMU等配置寄存器;第二,初始化必備硬件的設(shè)置主要運(yùn)用bootloader初始化上的必備硬件,如硬件板使用以嵌入式系統(tǒng)映像文件,bootloader使用客戶端程序通訊,完成下載工作;第三,bootloade提供系統(tǒng)映像下載,通過提供命令并接收映像服務(wù)端程序,明確內(nèi)核映像、文件系統(tǒng)映像下載位置,發(fā)送數(shù)據(jù)包動(dòng)作,成功下載映像;第四,初始化操作系統(tǒng)執(zhí)行使用bootloader,提供具體啟動(dòng)地址,從而下載完成系統(tǒng)。
2.6 嵌入式圖像處理系統(tǒng)硬件設(shè)計(jì)。嵌入式圖像處理系統(tǒng)硬件設(shè)計(jì)主要目的是處理、分析圖像信息任務(wù)。通常情況下,嵌入式數(shù)字圖像處理系統(tǒng)主要包括五個(gè)方面的內(nèi)容:一是圖像輸入設(shè)備,二是微處理器,三是輸出設(shè)備,四是圖像數(shù)據(jù)庫,五是圖像處理程序庫。在平臺(tái)總體硬件結(jié)構(gòu)設(shè)計(jì)中,嵌入式圖像處理系統(tǒng)的核心主要是S3C2410處理器。在圖像采集模塊上,圖像采集媒介是網(wǎng)眼PC350攝像頭。USB圖像采集主要由三部分構(gòu)成,即CMOS圖像傳感器、256K RAM以及USB Camera控制器OV511。OV511將數(shù)字圖像數(shù)據(jù)傳輸給ARM處理板,ARM板結(jié)合USB實(shí)現(xiàn)OV511的配置,而OV511配置圖像傳感器控制字。在嵌入式圖形處理系統(tǒng)中,采用圖像采集以及處理多線程設(shè)計(jì)來實(shí)現(xiàn)同步線程,通過建立互斥鎖圖像緩存區(qū),結(jié)合條件變量,形成圖像數(shù)據(jù)交換公共緩沖區(qū),圖像采集速度與圖像處理速度快。
2.7 基于TI達(dá)芬奇系列的軟硬件設(shè)計(jì)。TI達(dá)芬奇軟硬件設(shè)計(jì)作為嵌入式Linux操作系統(tǒng)中的關(guān)鍵部分,表明設(shè)計(jì)接口為應(yīng)用程序與算法庫間的API,其目標(biāo)主要包括三個(gè)方面:第一,進(jìn)行ARM端應(yīng)用開發(fā);第二,開發(fā)DSP端的自主知識(shí)產(chǎn)權(quán)算法;第三,實(shí)現(xiàn)ARM與DSP雙核間集成開發(fā)等。從本質(zhì)上來講,基于TI達(dá)芬奇系列的軟硬件設(shè)計(jì)屏蔽了應(yīng)用與算法間的交互數(shù)據(jù)。在同一處理器內(nèi)核上,由于不同軟件模塊之間存在大容量數(shù)據(jù)傳輸問題,因而TI達(dá)芬奇系列的軟硬件設(shè)計(jì)無法滿足該要求?;谶@種情形,數(shù)據(jù)傳輸技術(shù)一定程度上彌補(bǔ) TI 達(dá)芬奇平臺(tái)軟硬件設(shè)計(jì)的缺陷,這種軟件框架技術(shù)主要通過整合底層算法,從而實(shí)現(xiàn)其與應(yīng)用程序之間的對(duì)接。由于算法接口采用標(biāo)準(zhǔn)化設(shè)計(jì),因而開發(fā)者不需要思考算法,以標(biāo)準(zhǔn)算法接口為媒介,就能調(diào)用算法庫。
3 結(jié)論
綜上所述,隨著微處理器技術(shù)的不斷發(fā)展,嵌入式Linux操作系統(tǒng)應(yīng)用領(lǐng)域越來越廣泛,作為一個(gè)嵌入式應(yīng)用軟件開發(fā)信息平臺(tái),能夠運(yùn)用于多種硬件平臺(tái),實(shí)時(shí)處理能力強(qiáng)大。Linux作為嵌入式系統(tǒng)軟件部分,為嵌入式軟件的開發(fā)提供了更為便捷的途徑,應(yīng)用前景廣闊。
參考文獻(xiàn):
[1]周文杰,趙婧,趙力.基于ARM9和Linux的FPGA驅(qū)動(dòng)設(shè)計(jì)[J].電子元器件應(yīng)用,2010(03).
[2]王榮,張少坤.基于ARM9微處理器的實(shí)時(shí)Linux嵌入式數(shù)控系統(tǒng)的設(shè)計(jì)[J].電工電氣,2009(01).
[3]楊建武.國內(nèi)外數(shù)控技術(shù)的發(fā)展現(xiàn)狀與趨勢(shì)[J].制造技術(shù)與機(jī)床,2008(12).
[4]楊占璽,韓秋實(shí).智能數(shù)控系統(tǒng)發(fā)展現(xiàn)狀及其關(guān)鍵技術(shù)[J].制造技術(shù)與機(jī)床,2008(12).
[5]蘇蕊.基于ARM芯片的嵌入式運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008(11).
作者單位:中國航空工業(yè)集團(tuán)公司洛陽電光設(shè)備研究所,河南洛陽 471000