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