PXA255上的嵌入式Linux应用平台,
引 言
PXA255是 Intel继PXA250后的第二代XScale处理器,也是一款高档的Intel个人互联网架构(PCA)网络处理器,它提供更高的性能和更低的耗电量。Linux操作系统高效稳定,实现了真正的多任务、多用户环境,有着强大的网络功能,更由于其开放源码、定制方便而在嵌入式系统领域获得了飞速的发展。
本平台针对诸如银行、税控、商业POS等行业的应用,为业界提供非常丰富的功能和一整套嵌入式交叉开发工具链, 二次开发用户可以根据实际需要选择使用其中某一部分或全部的组件来进行有关嵌入式系统产品的应用开发。平台提供了4M/16M/32M/64M/128M 可选的SDRAM和4M/16M/32M/64M/128M可选的Flash存储器,给予应用程序开发工程师较大的选择空间 。同时采用JFFS2文件系统用于管理非易失性存储中的结构化文件数据,为掉电等突发事件提供很好的数据保护机制。提供了用于创建连接各类设备的集成化驱动程序和协议堆栈,如10M以太网接口、USB接口、JTAG接口、多达6个的串口、并口和可选的IrDA接口等,给予工程师极其丰富的选择。显示采用单色/彩色TFT LCD,提供了友好的人机界面。
平台系统设计
本应用平台由硬件系统和软件系统构成,其中软件系统包括嵌入式操作系统(EOS)、图形用户接口(GUI)和应用程序接口(API)。同时提供一套在PC 机上构建交叉开发环境的开发工具链,在此交叉开发环境下开发的应用程序可以在平台上无缝运行,从而实现最终产品的功能。
硬件系统
硬件系统分为核心电路系统和各外围设备,前者是由微处理器PXA255和Flash/SRAM存储器加上各种外围接口模块构成的;后者包括10.4′TFT LCD、标准101键盘和鼠标等,同时可以通过串/并口连接诸如打印机等各类设备。
PXA255采用RISC结构,内部集成了RAM、LCD、USB(client)和AC97等大量的功能模块,具有很强的扩展能力,提供 200MHz外频,最高时钟频率提供200/300/400MHz等多种选择。采用1.3V的工作电压,耗电量低。PXA255支持JTAGT调试,这样不需要ICE而大大降低了开发成本。
SDRAM 选用Winbond的W981216(16MB), Flash选用Intel的E28F128(16MB),用户可以根据不同应用采用多片来进行扩大存储容量。同时考虑到行业应用对串口的需要,利用 W83977EF进行了扩展,可使用的总串口可多达6个,同时提供1个打印并口,应用程序可以分别通过设备名ttyS00~ttyS04、ttyS1和 lp0来进行访问控制。
软件系统
软件系统由嵌入式Linux操作系统、嵌入式图形用户界面和相应的支持API库构成。嵌入式Linux操作系统包括Linux 2.4.18内核、JFFS2文件系统、busybox工具集等,具有高度模块化、易于定制、可移植性好等优点。
由于Linux 2.4.18内核提供Framebuffer的支持,这样就不需要对显示芯片进行直接的硬件编程,而是由FrameBuffer系统通过打开/dev /fb0,使用mmap()映射显存到内存中的线性缓冲区的方式来工作。这样,考虑在商业POS等领域还使用单色的显示而不需要用到GUI,平台提供了两套图形应用库:一个是基于Framebuffer运行于虚拟控制台方式下的嵌入式图形应用库,另一个是基于GTK+1.2运行于多任务GUI下的嵌入式多任务图形应用库。前者支持屏幕和键盘驱动,其中屏幕驱动支持1 、2 、4 、8 、16 、32 位每像素(bpp),能进行相应的西文和中文显示。具有强大的绘图功能,包括画线、区域填充、画多边形、剪贴和图形模块等。提供大量的图形应用编程接口,该库只有100KB左右,特别适合用在嵌入式系统上开发控制台图形用户界面的应用程序。后者支持彩色LCD、鼠标等,支持五笔和拼音中文输入,并且具有智能记忆功能,即可以自动记忆到用户词库中。
运行时系统提供Linux常用的命令,并提供网络和Shell等必备的工具,支持FTP、Telnet以及远程登录Win2000 Server,能自动实现IP地址冲突的检测并进行相应的提示。
交叉开发工具链
交叉开发工具链由一套用于编译、汇编和链接内核及应用程序的组件组成,它们自身运行于一个平台(如PC Linux)下,而利用它们开发出来的应用程序是运行在另一个平台(如嵌入式应用平台)下。这些组件包括用于操作二进制文件的实用程序集合 Binutils、Gcc编译器和链接运行库Glibc等三部分。
嵌入式系统本身没有自举开发功能,必须有一套开发工具并且要在PC机中建立起相应的开发环境。一般有三种选择:一是PC机的操作系统只用Windows,但是要安装cgywin来提供Windows下的Linux开发环境,同时要安装适合于cgywin的交叉开发工具链(本平台不提供);也可只用 Linux,但需要对Linux环境以及vi等文本编辑器非常熟悉;而最常用的方式是采用Linux服务器、Windows工作站的开发方式,这样可只需要在一台Linux服务器上建立交叉开发环境,多台Windows工作站通过telnet客户端远程登录协同开发。这样,一方面节省了内存和硬盘等资源,还可以使用Windows的一些软件来加快编辑开发速度。
这种嵌入式Linux的开发模式一般叫做主从模式。在PC机的交叉编译环境下,编译链接通过后的应用程序可以通过串行口或以太网口从PC机下载到应用平台上,通过GDB服务器进行联机调试及运行。很显然,用户在本平台的基础上只需要专注于自己应用程序开发就可以实现项目系统的功能。
结 语
本平台目前已经应用于POS系统。利用开发工具开发出运行于平台上的相应应用程序,通过串口将平台和商场POS服务器相连,通过以太网接口和通讯服务器相连并最终连接到银行主机系统,这样构成了一个完整的商业POS系统。平台在该系统中就相当于一个高档的网络终端,或者说更类似一台标准PC机,搭建系统只需要从应用程序着手。