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