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