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