亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于嵌入式Linux的測(cè)試系統(tǒng)軟件實(shí)現(xiàn)研究

        2008-04-12 00:00:00羅賢全馬俊濤
        現(xiàn)代電子技術(shù) 2008年6期

        摘 要:嵌入式測(cè)試系統(tǒng)具有集成度高、體積小、速度快、可靠性強(qiáng)等特點(diǎn),而嵌入式Linux源碼開(kāi)放,內(nèi)核可定制,是嵌入式測(cè)試系統(tǒng)理想的軟件系統(tǒng)平臺(tái)。對(duì)基于嵌入式Linux的測(cè)試系統(tǒng)進(jìn)行研究,對(duì)嵌入式Linux軟件系統(tǒng)各個(gè)環(huán)節(jié)的實(shí)現(xiàn)過(guò)程進(jìn)行較為全面的探討,并總結(jié)出可行的實(shí)現(xiàn)方案。

        關(guān)鍵詞:嵌入式;Linux;測(cè)試系統(tǒng);軟件實(shí)現(xiàn)

        中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A

        文章編號(hào):1004-373X(2008)06-117-03

        Research on Realization of Test System Software Based on Embedded Linux

        YANG Xue 2,LUO Xianquan MA Juntao1

        (1.Ordnance Engineering College,Shijiazhuang,050003,China;2.Shijiazhuang Vocational School,Shijiazhuang,050041,China)

        Abstract:The embedded test system has characteristics of high collectivity,small volume,fast speed and high reliability.And the embedded Linux operation system is very suited for embedded system because its source code is open and its core can be customized.This paper studies the test system based on embedded Linux,researches the realization process of embedded Linux software system and also concludes well performed ways of realization.

        Keywords:embedded;Linux;test system;software;realization

        1 引 言

        嵌入式系統(tǒng)是電腦軟件與硬件的綜合體。他是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件均可裁剪,能夠適應(yīng)實(shí)際應(yīng)用中對(duì)功能、可靠性、成本、體積、功耗等嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)是先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)以及電子技術(shù)與各個(gè)行業(yè)的具體應(yīng)用相結(jié)合的產(chǎn)物。嵌入式系統(tǒng)實(shí)現(xiàn)的功能單一,通常是面向用戶、面向產(chǎn)品、面向特定應(yīng)用的,一般只實(shí)現(xiàn)某行業(yè)的特定功能[1]。另外嵌入式系統(tǒng)的優(yōu)點(diǎn)是成本低、體積小、功耗低及可靠性高,但在運(yùn)行速度及存儲(chǔ)容量上有一定的限制。

        嵌入式系統(tǒng)的靈魂是他的軟件系統(tǒng),軟件系統(tǒng)分為簡(jiǎn)單控制程序和嵌入式操作系統(tǒng)2種。早期的嵌入式系統(tǒng)只是用簡(jiǎn)單的循環(huán)控制程序來(lái)處理外界的特定請(qǐng)求。但隨著系統(tǒng)應(yīng)用越來(lái)越復(fù)雜,功能要求越來(lái)越高,此時(shí)就必須用嵌入式操作系統(tǒng)。現(xiàn)在已經(jīng)有許多可用于嵌入式的操作系統(tǒng),但最有潛力的應(yīng)該是Linux操作系統(tǒng)。按照Linux開(kāi)發(fā)者的說(shuō)法,Linux是一個(gè)完全遵循POSIX(Portable Operating System Interface)標(biāo)準(zhǔn)的免費(fèi)操作系統(tǒng)[2]。他是一個(gè)自由、免費(fèi)、多任務(wù)的操作系統(tǒng),他對(duì)硬件配置的要求低、占用存儲(chǔ)空間小、支持的芯片種類(lèi)多,最重要的是源代碼開(kāi)放,內(nèi)核可修改與剪裁,在網(wǎng)上還有眾多免費(fèi)的資源可以利用。但一般的Linux操作系統(tǒng)并不能直接用于嵌入式系統(tǒng),主要受體積、成本、存儲(chǔ)容量等各方面的限制。要將Linux應(yīng)用于嵌入式系統(tǒng),就要對(duì)Linux操作系統(tǒng)本身進(jìn)行定制[1,3,4]。

        本文主要對(duì)基于嵌入式Linux的測(cè)試系統(tǒng)軟件的各個(gè)環(huán)節(jié)的實(shí)現(xiàn)過(guò)程進(jìn)行較為全面的探討和總結(jié),并總結(jié)出可行的實(shí)現(xiàn)方案。

        2 嵌入式Linux內(nèi)核裁減

        由于Linux操作系統(tǒng)在設(shè)計(jì)時(shí)就具有模塊化的功能,所以對(duì)其定制主要也有2種方法:一是配置內(nèi)核可裁減的模塊;二是深入內(nèi)核,修改內(nèi)核的源代碼。內(nèi)核裁減主要包括內(nèi)存模塊、進(jìn)程模塊和文件系統(tǒng)3部分。

        2.1 內(nèi)存模塊

        標(biāo)準(zhǔn)Linux采用的是虛擬內(nèi)存管理模型,Linux使用虛擬內(nèi)存的目的是為了實(shí)現(xiàn)操作系統(tǒng)的多任務(wù)性,使多個(gè)進(jìn)程可以分片獲得CPU的使用權(quán)。應(yīng)用程序使用的是虛擬地址,但是CPU執(zhí)行的指令卻取于真正的物理地址,因而涉及到內(nèi)存地址轉(zhuǎn)換的問(wèn)題。內(nèi)存地址轉(zhuǎn)換一般由操作系統(tǒng)和硬件MMU(Memory Management Unit)完成。也就是說(shuō)要使用標(biāo)準(zhǔn)的Linux,在硬件上必須支持MMU。但大部分的嵌入式硬件都沒(méi)有MMU,同時(shí)由于嵌入式系統(tǒng)的專用性,有時(shí)也沒(méi)有必要實(shí)現(xiàn)多任務(wù)的功能。故Linux經(jīng)過(guò)改造后才可以應(yīng)用到這類(lèi)嵌入式系統(tǒng)上。

        這部分工作只能對(duì)Linux內(nèi)核源代碼的內(nèi)存管理部分進(jìn)行修改,去除虛擬內(nèi)存管理的相關(guān)代碼,這些代碼主要集中在內(nèi)核的/mm,/drivers/char,/ipc,/fs,/init,/kernel等源代碼目錄下[1,3]

        2.2 進(jìn)程模塊

        Linux是一種通用的操作系統(tǒng),他采用多任務(wù)、多進(jìn)程的管理模式。雖然Linux目前的內(nèi)核在實(shí)時(shí)方面有所增強(qiáng),但他仍然不算是實(shí)時(shí)操作系統(tǒng),Linux內(nèi)核的設(shè)計(jì)關(guān)注的是應(yīng)用程序的吞吐量連同內(nèi)核整體設(shè)計(jì)的優(yōu)雅。作為提高吞吐量的要求,Linux的調(diào)度器試圖提供一種“公平分配”策略來(lái)保證所有的進(jìn)程可以均衡地享有CPU的資源。

        由于嵌入式系統(tǒng)可能不帶MMU及其存儲(chǔ)容量的限制,需對(duì)Linux進(jìn)行改造。重點(diǎn)是解決通用Linux系統(tǒng)中存在的2個(gè)缺點(diǎn):一是系統(tǒng)并不是最先執(zhí)行實(shí)時(shí)的進(jìn)程,而從普通的進(jìn)程開(kāi)始;二是系統(tǒng)執(zhí)行實(shí)時(shí)進(jìn)程的時(shí)候有可能被其他進(jìn)程打斷。解決這個(gè)問(wèn)題的辦法主要是讓系統(tǒng)一開(kāi)始就執(zhí)行實(shí)時(shí)進(jìn)程或根本就只有一個(gè)實(shí)時(shí)進(jìn)程在執(zhí)行(也就是單任務(wù)的系統(tǒng)),提高實(shí)時(shí)進(jìn)程的優(yōu)先權(quán),使一般進(jìn)程不能打斷他。修改源代碼時(shí)主要從中斷處理、進(jìn)程調(diào)度及進(jìn)程搶占3個(gè)方面入手[1,4]。

        2.3 文件系統(tǒng)

        在通用PC機(jī)中,外部存儲(chǔ)器一般用的是IDE等傳統(tǒng)的外存設(shè)備。其特點(diǎn)是容量大、速度快,但是體積和功耗都很大,不適合用于嵌入式系統(tǒng)。嵌入式系統(tǒng)的外存一般用FLASH的存儲(chǔ)器,比如說(shuō)CF卡、DOC等。由于外存的限制,決定嵌入式系統(tǒng)的文件系統(tǒng)不能照搬通用PC機(jī)的,必須另起爐灶。定制嵌入式系統(tǒng)的文件系統(tǒng)可從市場(chǎng)上選擇,也可自己通過(guò)修改Linux內(nèi)核代碼重新定制,但那樣工作量將很大。

        目前市場(chǎng)上可以選用的嵌入式文件系統(tǒng)主要有:cramfs,romfs,ext3,ext2,ReiserFS,xfs,JFFStff等等,可根據(jù)實(shí)際情況進(jìn)行選擇。

        3 嵌入式Linux運(yùn)行環(huán)境定制

        3.1 系統(tǒng)模塊配置

        對(duì)于一個(gè)專用的嵌入式系統(tǒng),他只要求操作系統(tǒng)能夠完成特定的功能。而Linux本身卻擁有一套完整的工具鏈,強(qiáng)大的網(wǎng)絡(luò)支持及提供一個(gè)基本內(nèi)核和所需要的基本用戶界面,能處理嵌入式任務(wù)和用戶界面要求??梢栽诰幾g內(nèi)核時(shí)選擇所需要的模塊,內(nèi)核沒(méi)有的可從別處移植過(guò)來(lái)。

        具體做法如下:選擇一個(gè)合適的內(nèi)核版本,通過(guò)內(nèi)核編譯前的配置命令“make menuconfig”可將不必要的內(nèi)核模塊去掉。如不要軟盤(pán)驅(qū)動(dòng)模塊,把所有的 block device(塊設(shè)備)移除,只留下old IDE device(老式IDE設(shè)備);把所有的 character device(字符設(shè)備)移除,而且不要聲卡驅(qū)動(dòng)模塊[3,4]。因?yàn)橛貌坏杰洷P(pán)、聲卡等設(shè)備,驅(qū)動(dòng)程序也可以簡(jiǎn)化,這樣之后,就可得到一個(gè)占用空間較小的內(nèi)核。另外還要用到圖形服務(wù)系統(tǒng),可選用體積較小的嵌入式圖形引擎。

        3.2 開(kāi)機(jī)畫(huà)面定制方法

        對(duì)于具有專門(mén)用途的嵌入式系統(tǒng)來(lái)說(shuō),定制特制的開(kāi)機(jī)畫(huà)面是很有很必要的。工作主要是屏蔽主板BIOS的自檢提示,屏蔽Linux啟動(dòng)時(shí)的字符畫(huà)面,并改為用戶自己的圖片[1]。以有BIOS及LILO啟動(dòng)嵌入式Linux為例,步驟如下:

        (1) 改動(dòng)BIOS設(shè)置,將默認(rèn)圖片改為用戶需要的;

        (2) 改寫(xiě)嵌入系統(tǒng)的啟動(dòng)程序LILO的配置文件/etc/lilo.conf,加入如下這行:

        append=“console=/dev/tty2 CONSOLE=/dev/tty2”;他將屏蔽啟動(dòng)字符信息。

        (3) 制作開(kāi)機(jī)顯示的畫(huà)面,支持的圖片格式為“pcx”和“tif”,可用相關(guān)工具來(lái)轉(zhuǎn)化。

        (4) 修改內(nèi)核源代碼,重新編譯。修改的內(nèi)容很少,主要集中在源文件drivers/video/fbcon.c,具體改動(dòng)內(nèi)容請(qǐng)參考文獻(xiàn)[1]。

        系統(tǒng)啟動(dòng)畫(huà)面可用1幅圖片,也可用2幅圖片,但是要盡量有專業(yè)信息并保持美觀、優(yōu)雅、大方。

        3.3 系統(tǒng)啟動(dòng)程序定制

        當(dāng)引導(dǎo)程序(如LILO)加載Linux內(nèi)核映象啟動(dòng)時(shí),他先進(jìn)行內(nèi)核的初始化工作,主要是檢測(cè)整個(gè)硬件環(huán)境。內(nèi)核初始化完成后,系統(tǒng)就啟動(dòng)init進(jìn)程,他是系統(tǒng)的第一個(gè)用戶級(jí)進(jìn)程。Linux系統(tǒng)共有7個(gè)運(yùn)行級(jí)別,他由文件/etc/inittab決定,各級(jí)別的功能如下[2]

        0:終止或停止系統(tǒng)的運(yùn)行;

        1:?jiǎn)斡脩裟J剑?/p>

        2:多用戶模式,但無(wú)網(wǎng)絡(luò)功能;

        3:多用戶模式且有網(wǎng)絡(luò)功能;

        4:保留,自定的啟動(dòng)模式;

        5:圖形界面登陸模式;

        6:重新啟動(dòng)系統(tǒng);

        init進(jìn)程運(yùn)行后,他會(huì)訪問(wèn)/etc/inittab文件,該文件確定系統(tǒng)運(yùn)行于上面的哪個(gè)級(jí)別。由于嵌入式系統(tǒng)的特性,一般要讓系統(tǒng)運(yùn)行于級(jí)別1上,即單用戶模式,這只要在/etc/inittab文件的id:3:initdefault行,將3改為1即可。

        接著init進(jìn)程又分別啟動(dòng)/etc/rc.d/rc.sysinit和與等級(jí)相對(duì)應(yīng)的/etc/rc.d/rc初始化進(jìn)程,最后init會(huì)運(yùn)行用戶登陸程序,這時(shí)在終端上就會(huì)顯示login:的登錄信息,用戶登錄成功后會(huì)啟動(dòng)shell程序,shell啟動(dòng)后,他會(huì)讀取并執(zhí)行文件/etc/profile,/etc/bashrc,和用戶主目錄下的文件.bashrc,這些文件負(fù)責(zé)建立用戶自己的環(huán)境。要定制自己的啟動(dòng)服務(wù)和程序,就從這里著手。可以增加自己的腳本程序來(lái)完成這些工作,主要步驟如下:

        (1) 仿照系統(tǒng)目錄/etc/rc.d/init.d里的任何一個(gè)腳本文件的格式自己編寫(xiě)一個(gè)啟動(dòng)服務(wù)腳本文件。

        (2) 將寫(xiě)好的腳本文件拷貝到/etc/rc.d/init.d目錄下。因?yàn)?etc/rc.d/rcn.d只是/etc/rc.d/init.d的一個(gè)鏈接,故要將真實(shí)的文件先拷到后者的目錄下。

        (3) 在相應(yīng)的運(yùn)行級(jí)別n的/etc/rc.d/rcn.d下建立該腳本文件的鏈接。如運(yùn)行級(jí)別為1,則n=1,目錄即為/etc/rc.d/rc1.d。假如該腳本名為my-comm,鏈接名定為mycommand,則鍵入如下命令即可:ln –s /etc/rc.d/init.d/my-comm /etc/rc.d /rc2.d/mycommand。

        完成以上幾步后,系統(tǒng)開(kāi)機(jī)后就會(huì)自動(dòng)執(zhí)行腳本my-comm里的服務(wù)。

        4 軟件開(kāi)發(fā)與移植

        定制好Linux內(nèi)核及配置好運(yùn)行環(huán)境后,就可以開(kāi)發(fā)用戶特定的應(yīng)用軟件及虛擬儀器程序,并移植到嵌入式Linux系統(tǒng)上。由于嵌入式系統(tǒng)自身的原因,一般開(kāi)發(fā)應(yīng)用軟件必須在開(kāi)發(fā)平臺(tái)上,調(diào)試好后再移植到嵌入式系統(tǒng)上。同時(shí),嵌入式測(cè)試系統(tǒng)包含有各種測(cè)試儀器卡,還必須編寫(xiě)控制硬件相關(guān)的驅(qū)動(dòng)程序和應(yīng)用程序,以實(shí)現(xiàn)完整的虛擬儀器功能。

        各種應(yīng)用軟件開(kāi)發(fā)好后,必須移植到嵌入式測(cè)試系統(tǒng)上才能真正使用。移植的方法主要通過(guò)網(wǎng)口或USB口,將相應(yīng)的應(yīng)用軟件及其需要的各種庫(kù)文件、文檔、圖片及其他資源安裝到嵌入式Linux系統(tǒng)上的相應(yīng)位置,并進(jìn)行聯(lián)合調(diào)試,直到能正常使用為止。整個(gè)軟件組成及開(kāi)發(fā)結(jié)構(gòu)如圖1所示:

        5 結(jié) 語(yǔ)

        本文將對(duì)基于嵌入式Linux的測(cè)試系統(tǒng)進(jìn)行研究,對(duì)嵌入式Linux軟件系統(tǒng)各個(gè)環(huán)節(jié)的實(shí)現(xiàn)過(guò)程進(jìn)行較為全面的探討;包括嵌入式Linux系統(tǒng)內(nèi)核的定制、運(yùn)行環(huán)境的配置及用戶運(yùn)用軟件的開(kāi)發(fā)與移植;并給出可行的實(shí)現(xiàn)方案,對(duì)嵌入式Linux測(cè)試系統(tǒng)的開(kāi)發(fā)者具有一定的指導(dǎo)意義。

        參考文獻(xiàn)

        [1]李善平,劉文峰,王煥龍.Linux與嵌入式系統(tǒng)\\[M\\].北京:清華大學(xué)出版社,2002.

        [2]聯(lián)想軟件超星空工作室.精通Linux系統(tǒng)管理與應(yīng)用開(kāi)發(fā)技術(shù)\\[M\\].北京:清華大學(xué)出版社,2001.

        [3]Stephen Balacco.Linux′s Future in the Embedded Systems Market.2001.http://www.linuxdevices.com/articles/AT-4705998392.html.

        [4]Rick Lehrbaum.What′s So Good about Open Source and Linux - in Embedded,2001.http://www.linuxdevices.com/articles/AT8151978006.html.

        [5]任一,楊峰.中文Linux應(yīng)用指南\\[M\\].北京:科學(xué)出版社,2000.

        [6]李主琛.Linux面向?qū)ο蟠翱诟呒?jí)編程\\[M\\].北京:科學(xué)出版社,2001.

        [7]于明儉,陳向明,方漢.Linux程序設(shè)計(jì)權(quán)威指南\\[M\\].北京:機(jī)械工業(yè)出版社,2001.

        伊人久久综合无码成人网| 丰满熟妇人妻av无码区| 亚洲国产精品成人av| 成人大片免费观看视频| 亚洲av综合a色av中文| 999久久久精品国产消防器材| 无码高潮少妇毛多水多水免费| 久久频精品99香蕉国产| 精品国产一区二区三广区| 99久久精品在线视频| 40岁大乳的熟妇在线观看| 激情五月天伊人久久| 亚洲av精品一区二区| 99噜噜噜在线播放 | 国产啪精品视频网站| 免费国产黄片视频在线观看| 日韩一级137片内射视频播放| 大地资源高清在线视频播放 | 欧美精品videosse精子| 久草热8精品视频在线观看| 特一级熟女毛片免费观看| 放荡成熟人妻中文字幕| 337p日本欧洲亚洲大胆精品| 久久国产精品国产精品日韩区| 亚洲av中文字字幕乱码| 亚洲在线视频免费视频| 特级婬片国产高清视频| 亚洲av成人在线网站| 国产三级av大全在线爽| 久久99精品久久水蜜桃| 91制服丝袜| 国产亚洲精品一区二区在线播放| 美女国产毛片a区内射| 亚洲中文字幕无码一区| 久久国产精品超级碰碰热| 亚洲国产综合在线亚洲区亚洲av| 日韩精品内射视频免费观看| 亚洲AV无码成人网站久久精品| 一区二区在线观看日本免费| 国产一区二区精品久久岳| 久久这里只精品国产免费10|