基于Qt/Embedded的GUI移植及无线网络功能的开发(1
2015-01-16 02:17
导读:计算机应用论文论文,基于Qt/Embedded的GUI移植及无线网络功能的开发(1样式参考,免费教你怎么写,格式要求,科教论文网提供的这篇文章不错:
摘 要 具有友好用户界面的嵌入式系统已成为当今嵌入式相关研
摘 要 具有友好用户界面的嵌入式系统已成为当今嵌入式相关研究的的热点。本文介绍了系统平台构建,分别叙述了嵌入式Linux内核的配置与编译,Qt/Embedded图形界面系统的移植与开发,以及基于嵌入式Linux的无线网络功能模块的开发与实现。运行结果表明,方案合理,运行可靠。 关键词 嵌入式Linux;Qt/Embedded;Qtopia;GPRS;无线网络1 引言 随着信息技术的发展和数字化产品的普及,嵌入式设备被广泛应用。主流的嵌入式操作系统有WinCE,Linux,VxWorks, pSOS, PalmOS等等。Linux的优势在于其完全开放的操作系统,可以给开发者一定的独立性和自由度,允许它们自己掌控自己的产品。另外,是否具有良好的人机图形界面,方便用户操作,是衡量嵌入式设备性能的重要标准。Qt/Embedded是著名的Qt库开发商Trolltech公司开发的基于嵌入式Linux系统的Qt版本,广泛应用的KDE等项目即使用Qt作为支持库,它以良好的代码结构、强大的可定制功能以及统一的API都给用户提供了极高的便利性,QT/Embedded已经逐渐成为GUI的事实标准。2 嵌入式Linux系统的移植和开发2.1 硬件开发环境

硬件系统采用的是Embest EduKit-III开发平台, 采用了SAMSUNG 公司的以ARM9 为内核的处理器S3C2410, 该处理器核心频率可达到200M,具有低功耗、低成本等卓越性能和显著优点,同时具有JTAG 调试等功能;针对掌上智能设备的功能比较复杂,消耗资源较多,选取了64M的SDRAM和128M的Nand Flash,针对此项目的开发,摒弃了一些不必要的模块,保留了USB接口模块,标准串行口模块,显示屏(触摸屏)模块,基于无线通讯功能的实现,选取了Siemens MC35为核心的GPRS无线模块,整个硬件环境如图1所示。2.2 嵌入式Linux系统内核的配置与移植 首先,嵌入式系统在运行的初期即在操作系统内核运行之前,需要一段程序初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境,这就是Boot Loader程序[1],这里我们选用了韩国Mizi公司的Vivi引导程序。 然后是Linux内核的移植,出于实际功能的需要,我们采用了普遍应用于嵌入式系统的2.4.18版的内核。这里有一个相当重要的概念——交叉编译[2]:由于宿主机与目标机的CPU一般不相同,宿主机也就是我们常用的PC机是以X86为核心的,而目标板则是ARM体系结构的,因此需要在宿主机机上建立一个用于目标机的交叉编译环境,也就是将各种二进制工具程序集成为工具链,其中包括如GNU的链接器(ld)、GNU的汇编器(as)、ar(产生修改和解开一个存档文件)、C编译器(gcc)以及C链接库(glibc)等等。这里宿主机采用Redhat9.0,工具链选择了cross-2.95.3交叉编译工具包。下列是工具和内核源文件列表及说明:--------------------------------------------◆ binutils-2.11.2 包含有ld、ar、as等一些产生或者处理二进制文件的工具。◆ gcc-core-2.95.3 包含GCC的主体部分。◆ gcc-g 2.95.3 使GCC编译C 程序。◆ glibc-2.2.4 libc是很多用户层应用都要用到的库,即C链接库。◆ glibc-linuxthreads-2.2.4 libc用于支持Posix线程单独发布的压缩包。◆ linux-2.4.18 rmk7 Linux的内核及其支持ARM的补丁包。----------------------------------------- 在交叉编译环境建立好以后,可以对内核进行配置并制作映像文件。这里需要注意的是,针对不同开发商提供的硬件要进行不同的配置,并打上相应的补丁程序。2.3 Qtopia图形用户界面文件系统的移植 在建立好内核的基础上,要完成根文件系统(root filesystem)的创建。在Linux系统启动时,首先完成内核安装及环境初始化,最后会寻找一个文件系统作为根文件系统被加载,它是Linux系统的核心部分,包含系统使用的软件和库,以及所有用来为用户提供支持架构和用户使用的应用软件,并作为存储数据读写结果的区域。这里我们选择嵌入式系统常用的CRAMFS文件系统,它是Linux创始人Linus开发的一个适用于嵌入式系统经压缩以及只读的小型文件系统[3]。 在完成无图形界面的CRAMFS文件系统的建立后,这里重点阐述一下带Qtopia图形界面文件系统开发环境的建立和移植。 Qt/Embedded是Trolltech公司开发的面向嵌入式系统的Qt版本,与X11版本的Qt在最大程度上接口兼容,采用帧缓存(framebuffer)作为底层图形接口。Qt/Embedded类库完全采用C 封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/Embedded API可用于多种开发项目。Qt/Embedded的实现结构如表1所示。表 1 Qt/Embedded的实现结构