摘 要:隨著科技時(shí)代的快速發(fā)展,嵌入式軟件系統(tǒng)應(yīng)用發(fā)展也是非常迅速的,然而在硬件技術(shù)發(fā)展越來(lái)越穩(wěn)定時(shí),嵌入式軟件系統(tǒng)穩(wěn)定性卻越來(lái)越差,因此嵌入式系統(tǒng)測(cè)試技術(shù)也應(yīng)運(yùn)而生了。本文通過(guò)對(duì)嵌入式軟件系統(tǒng)特點(diǎn)的分析和研究,從而對(duì)其測(cè)試提出相應(yīng)的方法。
關(guān)鍵詞:嵌入式系統(tǒng);開(kāi)發(fā)技術(shù);測(cè)試技術(shù)
中圖分類(lèi)號(hào):TP316.2
嵌入式系統(tǒng)的廣義上是指那些具有控制、監(jiān)視等功能的設(shè)備以及那些具有輔助操作的機(jī)器。而在在狹義上的嵌入式系統(tǒng)是指由計(jì)算機(jī)通信技術(shù)為基礎(chǔ),以半導(dǎo)體等多項(xiàng)電子應(yīng)用技術(shù)和具體的面向?qū)ο髴?yīng)用對(duì)象結(jié)合后的更新?lián)Q代產(chǎn)品。因此往往是技術(shù)密集、投資強(qiáng)度大、高度分散、不斷創(chuàng)新的知識(shí)密集型系統(tǒng)。不難看出嵌入式系統(tǒng)是硬件與軟件的結(jié)合體,而且嵌入式系統(tǒng)在系統(tǒng)有繁簡(jiǎn)之分,越是繁雜的系統(tǒng)越是創(chuàng)新知識(shí)的密集。
1 嵌入式系統(tǒng)的組成及發(fā)展
一般情況認(rèn)為嵌入式系統(tǒng)可以分成四個(gè)部分組成:微型處理器、存儲(chǔ)器、輸入輸出設(shè)備和應(yīng)用軟件。嵌入式行業(yè)的發(fā)展得益于嵌入式微型處理器和衛(wèi)星控制器的發(fā)展,這兩種組件的微型發(fā)展大大加速了汽車(chē)電器等的大力發(fā)展,同時(shí)也促進(jìn)了計(jì)算機(jī)等高級(jí)計(jì)算機(jī)設(shè)備的快速發(fā)展。由此看來(lái)即使是在未來(lái)嵌入式系統(tǒng)的發(fā)展也還是一個(gè)熱門(mén)話(huà)題。因此在科技發(fā)達(dá)的世界里,對(duì)嵌入式系統(tǒng)的依賴(lài)性是越來(lái)越強(qiáng),對(duì)嵌入式系統(tǒng)及其應(yīng)用的穩(wěn)定性和實(shí)時(shí)性要求也越來(lái)越高了,但是現(xiàn)在從掌握的各項(xiàng)數(shù)據(jù)上來(lái)看嵌入式系統(tǒng)表現(xiàn)出的穩(wěn)定性卻越來(lái)越令人擔(dān)憂(yōu)。
嵌入式行業(yè)是從二十世紀(jì)七十年代發(fā)展至今,經(jīng)歷了四十余年的發(fā)展,從最簡(jiǎn)單的單反機(jī)應(yīng)用到現(xiàn)在的汽車(chē),家電,通信裝置等大規(guī)模應(yīng)用,性能上也越來(lái)越突出,價(jià)格上也是越來(lái)便宜。
2 嵌入式系統(tǒng)的開(kāi)發(fā)技術(shù)
2.1 嵌入式系統(tǒng)的特點(diǎn)
嵌入式計(jì)算機(jī)系統(tǒng)是是整個(gè)嵌入式系統(tǒng)中重要的部分,主要有三個(gè)部分組成:硬件層、中間層、軟件層。嵌入式系統(tǒng)是指硬件和軟件的結(jié)合體,這是嵌入式系統(tǒng)的最基本特點(diǎn)。
嵌入式系統(tǒng)內(nèi)核小,比常見(jiàn)的windows系統(tǒng)的內(nèi)核小很多,畢竟嵌入式系統(tǒng)一般是應(yīng)用于小型電子裝置,因此所占資源小是嵌入式系統(tǒng)的一大特點(diǎn)。
嵌入式系統(tǒng)的專(zhuān)用性很強(qiáng)。嵌入式系統(tǒng)的個(gè)性化很強(qiáng),因?yàn)榍度胧较到y(tǒng)中的軟件與硬件的結(jié)合性很強(qiáng),因此即使是同種品牌的不同型號(hào)產(chǎn)品,他們使用的嵌入式系統(tǒng)都會(huì)做出一定修改。
系統(tǒng)簡(jiǎn)單,在嵌入式系統(tǒng)中一般沒(méi)有對(duì)系統(tǒng)軟件和應(yīng)用軟件的嚴(yán)格區(qū)分界線(xiàn),因?yàn)閮?nèi)存小等原因,要求嵌入式系統(tǒng)簡(jiǎn)單不復(fù)雜,容易調(diào)試等。為了提高系統(tǒng)的性能一般都是采用將軟件固化在存儲(chǔ)器芯片中。
2.2 嵌入式系統(tǒng)開(kāi)發(fā)過(guò)程
對(duì)于嵌入式系統(tǒng)的開(kāi)發(fā)一般需要先建立開(kāi)發(fā)環(huán)境,而有經(jīng)驗(yàn)的程序員一般都會(huì)選擇在使用Redhot Linux系統(tǒng),全部或定制安裝,在上網(wǎng)上下載相應(yīng)的CGG交叉編譯器,也可以是安裝廠(chǎng)家提供的相應(yīng)交叉編譯器。
在建立好編譯環(huán)境后,再要選擇開(kāi)發(fā)主機(jī),這是一項(xiàng)關(guān)鍵的選擇,開(kāi)發(fā)主機(jī)參數(shù)的一般都是那么固定的幾種,在常見(jiàn)的就是配置MINICOM,一般的參數(shù)為波特率115200 Baud/s,數(shù)據(jù)位8位,停止位為1,9,無(wú)奇偶校驗(yàn),軟件和硬件流控都設(shè)置為無(wú)。MINICOM軟件的作用是作為調(diào)試嵌入式開(kāi)發(fā)板的信息輸出的監(jiān)視器和鍵盤(pán)輸入的工具。配置網(wǎng)絡(luò)主要是配置NFS網(wǎng)絡(luò)文件系統(tǒng),需要關(guān)閉防火墻,簡(jiǎn)化嵌入式網(wǎng)絡(luò)調(diào)試環(huán)境設(shè)置過(guò)程。這些步驟都至關(guān)重要不容有錯(cuò)。
建立引導(dǎo)裝載程序BOOTLOADER,然后從網(wǎng)站上下載一些源代碼,其中包括大量嵌入式系統(tǒng)驅(qū)動(dòng)程序代碼。然后根據(jù)芯片的型號(hào)種類(lèi)進(jìn)行及源代碼的修改工作,而有些芯片沒(méi)有內(nèi)置引導(dǎo)裝載程序,這就需要程序員來(lái)編寫(xiě)開(kāi)發(fā)板上Flash的燒寫(xiě)程序。但是有的不能編寫(xiě)燒寫(xiě)程序,這就需要程序員對(duì)開(kāi)源代碼上進(jìn)行修改,使開(kāi)發(fā)板上可以編寫(xiě)相應(yīng)燒寫(xiě)程序。
下載已經(jīng)移植好的Linux,再添加定制硬件驅(qū)動(dòng)程序,然后進(jìn)行調(diào)試和修改。
建立根文件系統(tǒng),可以在網(wǎng)上下載相應(yīng)軟件進(jìn)行工裁剪,時(shí)期產(chǎn)生哪一個(gè)最基礎(chǔ)的根文件系統(tǒng),然后根據(jù)產(chǎn)品應(yīng)用的需要來(lái)添加其他的應(yīng)用程序,根文件在系統(tǒng)中存在的形式一般為只讀文件是不能修改的,因此要使用相關(guān)的軟件將修改好的根目錄系統(tǒng)燒寫(xiě)成鏡像文件。
建立應(yīng)用程序的Flash磁盤(pán)分區(qū),這是一般是采用特有的文件系統(tǒng),這需要在內(nèi)核中提供相應(yīng)的文件系統(tǒng)驅(qū)動(dòng),這個(gè)根據(jù)使用Flash的不同進(jìn)行不同的磁盤(pán)分區(qū)。
開(kāi)發(fā)應(yīng)用軟件,這個(gè)可以存放在根文件系統(tǒng)中,也可以存放相應(yīng)的Flash磁盤(pán)中,有的應(yīng)用軟件不存放在根文件系統(tǒng),而是直接將應(yīng)用程序與內(nèi)核設(shè)計(jì)在一起。
最后就是燒寫(xiě)內(nèi)核,根文件系統(tǒng)和相應(yīng)的應(yīng)用程序,再就是中的測(cè)試產(chǎn)品,調(diào)試產(chǎn)品,使用產(chǎn)品,最終就是發(fā)布產(chǎn)品。
2.3 嵌入式系統(tǒng)的開(kāi)發(fā)技術(shù)
雖然嵌入式系統(tǒng)開(kāi)發(fā)的流程在外行眼里看起來(lái)很是繁雜,我們也可以看出其中有很多的修改源代碼,燒寫(xiě)程序的過(guò)程,但是這些過(guò)程在程序員眼中是一步也不能出錯(cuò),甚至有些還可以?xún)?yōu)化,這是在開(kāi)發(fā)嵌入式系統(tǒng)原則。在開(kāi)發(fā)系統(tǒng)上,程序員必須遵守認(rèn)真負(fù)責(zé)的態(tài)度,在燒寫(xiě)程序后,必須認(rèn)真檢測(cè)燒寫(xiě)程序的真確性等。
2.4 嵌入式系統(tǒng)的廣泛應(yīng)用
在科技快速發(fā)展的現(xiàn)在,幾乎所有的電器中都應(yīng)用了嵌入式系統(tǒng)。達(dá)到航空母艦,導(dǎo)彈,小到微型處理器,微型控制器都在使用嵌入式系統(tǒng)。如今嵌入式系統(tǒng)的發(fā)展的是日新月異,不同產(chǎn)品使用嵌入式系統(tǒng)大同小異,這些嵌入式系統(tǒng)的原理大致相同但是在應(yīng)用上卻不盡相同,這是嵌入式人才需求的原因。
3 嵌入式系統(tǒng)的調(diào)試
3.1 嵌入式系統(tǒng)軟件的調(diào)試
在開(kāi)發(fā)過(guò)程就可以看出,在匹配好CPU之后,其他的一些驅(qū)動(dòng),大多是程序員們修改源程序后編寫(xiě)的相應(yīng)驅(qū)動(dòng)程序,還有有的是將應(yīng)用程序和內(nèi)核設(shè)計(jì)在一起了,因此測(cè)試,過(guò)程更是發(fā)雜。
3.2 嵌入式系統(tǒng)的調(diào)試
主要分為幾大步驟,一是驅(qū)動(dòng)調(diào)試,二是分組調(diào)試,三是整體調(diào)試,四是最終調(diào)試。對(duì)于驅(qū)動(dòng)調(diào)試,是建立在修改源代碼后程序員們編寫(xiě)的磁盤(pán)驅(qū)動(dòng),CPU驅(qū)動(dòng)等驅(qū)動(dòng)程序,這些程序都是需要調(diào)試,但是這些調(diào)試畢竟只是一種粗率的調(diào)試,并不能很好的觀(guān)測(cè)到最終的整體效果。接著就應(yīng)該進(jìn)行分組調(diào)試任務(wù),這是將所有驅(qū)動(dòng)應(yīng)用程序燒寫(xiě)在一起后的一次階段性的程序調(diào)試,這次也只能是在理論上測(cè)試嵌入式系統(tǒng)的穩(wěn)定性和實(shí)用性,還是無(wú)法真正的去了解硬件與軟件結(jié)合在一起的真實(shí)效果,但是這一步也可以檢測(cè)出一些應(yīng)用軟件與系統(tǒng)結(jié)合后的兼容性等問(wèn)題,這里也可以檢測(cè)出程序的合理性等問(wèn)題。再就是整體調(diào)試,就是將軟件與硬件結(jié)合在一起,檢測(cè)最后的整體性效果,軟件與系統(tǒng)的兼容性也是很關(guān)鍵的,這一切都是很發(fā)雜,這一步是至關(guān)重要,是重點(diǎn)監(jiān)測(cè)軟件與硬件間的兼容性和軟件開(kāi)發(fā)的合理性。最后是進(jìn)行嵌入式系統(tǒng)組裝進(jìn)預(yù)期產(chǎn)品里,只是最終檢測(cè)嵌入式系統(tǒng)是否達(dá)到了預(yù)期效果。
4 結(jié)束語(yǔ)
嵌入式系統(tǒng)的開(kāi)發(fā)技術(shù)和調(diào)試技術(shù),這兩種技術(shù)在很多時(shí)候是可以交錯(cuò)的,比如在開(kāi)發(fā)嵌入式系統(tǒng)時(shí)就有幾次的開(kāi)源代碼的修改和程序的燒寫(xiě)過(guò)程,這些過(guò)程中都是程序員調(diào)試的關(guān)鍵時(shí)期,有一句諺語(yǔ)叫做“千里之堤毀于蟻穴”,而在每一次的源代碼修改或燒寫(xiě)過(guò)程中如果出現(xiàn)了失誤,或一些bug的忘了處理,那么系統(tǒng)在以后的使用中會(huì)存在一些漏洞的。這些都是細(xì)節(jié)引起的失誤,這些也都是可以避免的,只要在調(diào)試過(guò)程中,認(rèn)真的做好了每一步,就可以就一點(diǎn)一點(diǎn)的加強(qiáng)嵌入式系統(tǒng)的穩(wěn)定性。
參考文獻(xiàn):
[1]耿玉菊.嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)分析[J].牡丹江教育學(xué)院學(xué)報(bào),2009.
[2]秦春燕,姚竹亭.嵌入式系統(tǒng)軟件測(cè)試的研究[J].機(jī)械管理開(kāi)發(fā),2008.
作者單位:湖北咸寧職業(yè)技術(shù)學(xué)院 信息工程學(xué)院,湖北咸寧 437100