ARM系統(tǒng)體系結(jié)構(gòu)
表1 系統(tǒng)硬件主要組成及其功能描述
另外,系統(tǒng)總線擴(kuò)展引出數(shù)據(jù)總線、地址總線和必需的控制總線,便于用戶根據(jù)自身的特定需求,擴(kuò)展外圍電路。在選擇嵌入式系統(tǒng)的硬件時,最重要的是要先選擇ARM處理器類型,因?yàn)锳RM處理器不僅決定整個系統(tǒng)的性能,而且影響其他硬件的選用,以及操作系統(tǒng)和軟件代碼的配置。
一個設(shè)計(jì)好的ARM核心板硬件如圖2所示。
圖2 ARM核心板硬件圖
嵌入式軟件包括與硬件相關(guān)的底層軟件、操作系統(tǒng)、圖形界面、通信協(xié)議、數(shù)據(jù)庫系統(tǒng)、標(biāo)準(zhǔn)化瀏覽器和應(yīng)用軟件等。其中,嵌入式操作系統(tǒng)是用來支持嵌入式應(yīng)用的系統(tǒng)軟件,通常包括與硬件柑關(guān)的底層驅(qū)動程序、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動接口、通信協(xié)議、圖形用戶界面(GUI)等。
1.開發(fā)環(huán)境及工具
目前流行的嵌入式操作系統(tǒng)主要有VxWorks,WindowsCE,Linux等,由于Linux的源碼開放性、內(nèi)核可裁剪性、在圖像處理、文件管理及多任務(wù)支持等諸多方面的特點(diǎn),使得它成為一款應(yīng)用比較廣泛的嵌入式操作系統(tǒng)??紤]到以上幾個方面的原因,以及應(yīng)用于對實(shí)時性要求不是很高的場合,可以選用嵌入式Linux作為此平臺的操作系統(tǒng). Linux與商業(yè)用的嵌八式操作系統(tǒng)比較,好處如表2所示。
表2 Linux作為嵌入式系統(tǒng)開發(fā)的好處
有些觀點(diǎn)認(rèn)為Linux過于龐大不宜用于嵌入式系統(tǒng),這種觀點(diǎn)比較片面。面向PC的Linux標(biāo)準(zhǔn)發(fā)行版(如Fedora,Mandrake,Debian)包括服務(wù)器、工作站版本,這些版本在功能上是一個工作站和服務(wù)器的應(yīng)用平臺的超集,許多功能大大超出了一個嵌入式操作系統(tǒng)的需求。同時,由于Linux操作系統(tǒng)的核心和應(yīng)用程序是分離的,整個系統(tǒng)有較好的模塊化設(shè)計(jì),并且它上面各種程序(包括核心本身)的源代碼是公開的。因此,可以在各個層次上,對Linux進(jìn)行精心的定制和開發(fā),以提供一個基本的運(yùn)行平臺和開發(fā)環(huán)境`以便于針對特定應(yīng)用可以開發(fā)出一個具有實(shí)用性的嵌入式應(yīng)用系統(tǒng)。
在開發(fā)環(huán)境方面,ARM ADS或SDT在沒有硬件環(huán)境的情況下,可以提供軟件模擬硬件環(huán)境進(jìn)行軟件開發(fā),即ARMulate模式在計(jì)算機(jī)上模擬調(diào)試。利用這種模式,可以在沒有仿真器的情況下,編寫MemTest匯編測試程序,然后利用簡易的JATG探頭將目標(biāo)文件下載到硬件開發(fā)板進(jìn)行調(diào)試。
如果經(jīng)過測試,核心硬件板達(dá)到設(shè)計(jì)的各方面要求,在穩(wěn)定時鐘頻率下運(yùn)行正常,數(shù)據(jù)及程序空間全部可訪問,即可滿足嵌入Linux的硬件要求。
2.硬件驅(qū)動程序
底層硬件驅(qū)動程序是嵌入式系統(tǒng)軟件開發(fā)的第一個環(huán)節(jié),它緊密地將軟硬件銜接在一起,涉及許多硬件相關(guān)的知識。對底層硬件驅(qū)動程序的了解,是深入理解嵌入式系統(tǒng)工作原理最有效的手段,同時也是進(jìn)一步開發(fā)基于嵌入式操作系統(tǒng)的設(shè)備驅(qū)動程序的基礎(chǔ)。
Linux的設(shè)備驅(qū)動程序,對于各個體系結(jié)構(gòu)而言基本框架都是一樣的,所以只需要學(xué)會如何在PC上編寫設(shè)備驅(qū)動,就可以很容易編寫基于ARM Linux的設(shè)備驅(qū)動。
評論