PXA255上的嵌入式Linux應(yīng)用平臺
PXA255是Intel繼PXA250后的第二代XScale處理器,也是一款高檔的Intel個人互聯(lián)網(wǎng)架構(gòu)(PCA)網(wǎng)絡(luò)處理器,它提供更高的性能和更低的耗電量。Linux操作系統(tǒng)高效穩(wěn)定,實(shí)現(xiàn)了真正的多任務(wù)、多用戶環(huán)境,有著強(qiáng)大的網(wǎng)絡(luò)功能,更由于其開放源碼、定制方便而在嵌入式系統(tǒng)領(lǐng)域獲得了飛速的發(fā)展。
本平臺針對諸如銀行、稅控、商業(yè)POS等行業(yè)的應(yīng)用,為業(yè)界提供非常豐富的功能和一整套嵌入式交叉開發(fā)工具鏈,二次開發(fā)用戶可以根據(jù)實(shí)際需要選擇使用其中某一部分或全部的組件來進(jìn)行有關(guān)嵌入式系統(tǒng)產(chǎn)品的應(yīng)用開發(fā)。平臺提供了4M/16M/32M/64M/128M可選的SDRAM和4M/16M/32M/64M/128M可選的Flash存儲器,給予應(yīng)用程序開發(fā)工程師較大的選擇空間
。同時采用JFFS2文件系統(tǒng)用于管理非易失性存儲中的結(jié)構(gòu)化文件數(shù)據(jù),為掉電等突發(fā)事件提供很好的數(shù)據(jù)保護(hù)機(jī)制。提供了用于創(chuàng)建連接各類設(shè)備的集成化驅(qū)動程序和協(xié)議堆棧,如10M以太網(wǎng)接口、USB接口、JTAG接口、多達(dá)6個的串口、并口和可選的IrDA接口等,給予工程師極其豐富的選擇。顯示采用單色/彩色TFT LCD,提供了友好的人機(jī)界面。
平臺系統(tǒng)設(shè)計(jì) 本應(yīng)用平臺由硬件系統(tǒng)和軟件系統(tǒng)構(gòu)成,其中軟件系統(tǒng)包括嵌入式操作系統(tǒng)(EOS)、圖形用戶接口(GUI)和應(yīng)用程序接口(API)。同時提供一套在PC機(jī)上構(gòu)建交叉開發(fā)環(huán)境的開發(fā)工吡矗?詿私徊嬋?⒒肪誠驢?⒌撓τ貿(mào)絳蚩梢栽諂教ㄉ銜薹煸誦校?傭?迪腫鈧詹?返墓δ堋?硬件系統(tǒng) 硬件系統(tǒng)分為核心電路系統(tǒng)和各外圍設(shè)備,前者是由微處理器PXA255和Flash/SRAM存儲器加上各種外圍接口模塊構(gòu)成的;后者包括10.4′TFT LCD、標(biāo)準(zhǔn)101鍵盤和鼠標(biāo)等,同時可以通過串/并口連接諸如打印機(jī)等各類設(shè)備。
PXA255采用RISC結(jié)構(gòu),內(nèi)部集成了RAM、LCD、USB(client)和AC97等大量的功能模塊,具有很強(qiáng)的擴(kuò)展能力,提供200MHz外頻,最高時鐘頻率提供200/300/400MHz等多種選擇。采用1.3V的工作電壓,耗電量低。PXA255支持JTAGT調(diào)試,這樣不需要ICE而大大降低了開發(fā)成本。
SDRAM 選用Winbond的W981216(16MB), Flash選用Intel的E28F128(16MB),用戶可以根據(jù)不同應(yīng)用采用多片來進(jìn)行擴(kuò)大存儲容量。同時考慮到行業(yè)應(yīng)用對串口的需要,利用W83977EF進(jìn)行了擴(kuò)展,可使用的總串口可多達(dá)6個,同時提供1個打印并口,應(yīng)用程序可以分別通過設(shè)備名ttyS00~ttyS04、ttyS1和lp0來進(jìn)行訪問控制。 軟件系統(tǒng) 軟件系統(tǒng)由嵌入式Linux操作系統(tǒng)、嵌入式圖形用戶界面和相應(yīng)的支持API庫構(gòu)成。嵌入式Linux操作系統(tǒng)包括Linux 2.4.18內(nèi)核、JFFS2文件系統(tǒng)、busybox工具集等,具有高度模塊化、易于定制、可移植性好等優(yōu)點(diǎn)。
由于Linux 2.4.18內(nèi)核提供Framebuffer的支持,這樣就不需要對顯示芯片進(jìn)行直接的硬件編程,而是由FrameBuffer系統(tǒng)通過打開/dev/fb0,使用mmap()映射顯存到內(nèi)存中的線性緩沖區(qū)的方式來工作。這樣,考慮在商業(yè)POS等領(lǐng)域還使用單色的顯示而不需要用到GUI,平臺提供了兩套圖形應(yīng)用庫:一個是基于Framebuffer運(yùn)行于虛擬控制臺方式下的嵌入式圖形應(yīng)用庫,另一個是基于GTK+1.2運(yùn)行于多任務(wù)GUI下的嵌入式多任務(wù)圖形應(yīng)用庫。前者支持屏幕和鍵盤驅(qū)動,其中屏幕驅(qū)動支持1 、2 、4 、8 、16 、32 位每像素(bpp),能進(jìn)行相應(yīng)的西文和中文顯示。具有強(qiáng)大的繪圖功能,包括畫線、區(qū)域填充、畫多邊形、剪貼和圖形模塊等。提供大量的圖形應(yīng)用編程接口,該庫只有100KB左右,特別適合用在嵌入式系統(tǒng)上開發(fā)控制臺圖形用戶界面的應(yīng)用程序。后者支持彩色LCD、鼠標(biāo)等,支持五筆和拼音中文輸入,并且具有智能記憶功能,即可以自動記憶到用戶詞庫中。
運(yùn)行時系統(tǒng)提供Linux常用的命令,并提供網(wǎng)絡(luò)和Shell等必備的工具,支持FTP、Telnet以及遠(yuǎn)程登錄Win2000 Server,能自動實(shí)現(xiàn)IP地址沖突的檢測并進(jìn)行相應(yīng)的提示。 交叉開發(fā)工具鏈 交叉開發(fā)工具鏈由一套用于編譯、匯編和鏈接內(nèi)核及應(yīng)用程序的組件組成,它們自身運(yùn)行于一個平臺(如PC Linux)下,而利用它們開發(fā)出來的應(yīng)用程序是運(yùn)行在另一個平臺(如嵌入式應(yīng)用平臺)下。這些組件包括用于操作二進(jìn)制文件的實(shí)用程序集合Binutils、Gcc編譯器和鏈接運(yùn)行庫Glibc等三部分。
嵌入式系統(tǒng)本身沒有自舉開發(fā)功能,必須有一套開發(fā)工具并且要在PC機(jī)中建立起相應(yīng)的開發(fā)環(huán)境。一般有三種選擇:一是PC機(jī)的操作系統(tǒng)只用Windows,但是要安裝cgywin來提供Windows下的Linux開發(fā)環(huán)境,同時要安裝適合于cgywin的交叉開發(fā)工具鏈(本平臺不提供);也可只用Linux,但需要對Linux環(huán)境以及vi等文本編輯器非常熟悉;而最常用的方式是采用Linux服務(wù)器、Windows工作站的開發(fā)方式,這樣可只需要在一臺Linux服務(wù)器上建立交叉開發(fā)環(huán)境,多臺Windows工作站通過telnet客戶端遠(yuǎn)程登錄協(xié)同開發(fā)。這樣,一方面節(jié)省了內(nèi)存和硬盤等資源,還可以使用Windows的一些軟件來加快編輯開發(fā)速度。
這種嵌入式Linux的開發(fā)模式一般叫做主從模式。在PC機(jī)的交叉編譯環(huán)境下,編譯鏈接通過后的應(yīng)用程序可以通過串行口或以太網(wǎng)口從PC機(jī)下載到應(yīng)用平臺上,通過GDB服務(wù)器進(jìn)行聯(lián)機(jī)調(diào)試及運(yùn)行。很顯然,用戶在本平臺的基礎(chǔ)上只需要專注于自己應(yīng)用程序開發(fā)就可以實(shí)現(xiàn)項(xiàng)目系統(tǒng)的功能。 結(jié) 語 本平臺目前已經(jīng)應(yīng)用于POS系統(tǒng)。利用開發(fā)工具開發(fā)出運(yùn)行于平臺上的相應(yīng)應(yīng)用程序,通過串口將平臺和商場POS服務(wù)器相連,通過以太網(wǎng)接口和通訊服務(wù)器相連并最終連接到銀行主機(jī)系統(tǒng),這樣構(gòu)成了一個完整的商業(yè)POS系統(tǒng)。平臺在該系統(tǒng)中就相當(dāng)于一個高檔的網(wǎng)絡(luò)終端,或者說更類似一臺標(biāo)準(zhǔn)PC機(jī),搭建系統(tǒng)只需要從應(yīng)用程序著手。