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