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