基于Linux的Qtopia移植在ARM平台上的实现

时间:2022-10-10 01:51:17

摘 要:基于Linux嵌入式GUI在当今嵌入式图形界面开发中占有一定市场。其开源,易于移植的特点使其更加被广泛的应用。Qtopia手机平台移植时,需要注意移植前的准备,移植中注意的问题和在具体移植过程的分析及实现等。

关键词:Linux;ARM平台;Qtopia手机平台移植

1 引言

QT是Trolltech公司有名的产品,最初是作为一个跨平台的C++ GUI库开发,但随着它的发展增加了一系列与GUI库无关的库,现在QT已经成为一个通用的C++跨平台类库。Qt针对不同操作系统不同的版本,它们所定义的提供给应用程序开发人员的API其实是相同的,在应用程序开发人员看来,它们不必关心当前操作系统是哪一种,只需要调用同一套API来实现它们的应用程序即可。

2 移植前准备

本文Qtopia版本是Qtopia-opensource-4.2.4版本的,带有手机桌面环境,移植的交叉编译器版本为arm-linux-gcc 4.1.2,内核版本为:Linux-2.6.31,操作系统平台为:Linux Red Hat 9.0,开发板平台为:TX2440A。在移植前首先要先建好一个基本的根文件系统,改名为qtopia_root,然后再将Tslib移植入根文件系统中,以保证在移植完成Qtopia后能够正常的运行。

3 Qtopia手机平台移植

3.1 开始移植

由于Qtopia不能在源码目录下编译,在将Qtopia解压到source目录下后,要在同目录下再建立一个target目标文件,然后就可以在该目录下编译源码。建这个目录是为了和qtopia进行交互。再在虚拟机下建一个执行make install时的安装目录,也要在根文件系统中创建这个目录,做为qpe的启动目录。以下的操作都是在source中进行。

1)进入qconfig-qpe.h:首先注释掉关于鼠标光标的宏定义,使得程序运行时触摸屏中央有光标出现;

2)将qconfig-qpe.h拷贝到global目录,并注释掉其他文件里光标的定义;

3)关于时区问题。一种方法是把虚拟机目录下/usr/share/zoneinfo中的所有文件拷到在根文件系统上建立的zoneinfo文件中。第二种方法是修改源代码,使它指向自己的文件夹。

3.2 配置

由于配置代码一般较长,因此可以事先写好一个相应的配置文件,在target目录下执行该配置文件即可。主要配置选项说明如下:

1)-xplatform linux-arm-g++ -arch arm,目标平台为arm-linux,体系结构为arm;

2)-extra-qtopiacore-config,为Qtopia core配置选项。

如果没有错误,就可以执行make和make install,这个时间比较长,2小时左右。Qtopia会被安装到/usr/local/qtopia目录下。

3.3 两种文件系统启动方式

⑴用挂载NFS方式启动

1)配置网络,确保挂载NFS正常;

2)配置启动脚本,新建一个名为qtopia文件,加入可执行权限,并把它放到根文件系统中;

3)然后在/etc/init.d/rcS 文件中加入一句开机自动运行qtopia脚本;

4)将触摸屏校正程序放到根文件系统/usr/bin目录下;

5)创建qtopia文件夹,用于挂载NFS;

6)制作文件系统,烧入开发板,启动系统。

⑵U盘传输文件

1)与NFS挂载方式的2)到5)步相同;

2)将qtopia目录放到根文件系统的/usr/local下,再将启动程序qpe放到根文件系统/usb/bin下;

3)裁剪文件系统:将文件系统中的部分文件分离出来,制作成压缩包,存入U盘中,制作文件系统镜像,下载到开发板中,系统启动后,将U盘插入开发板,挂载U盘,传输被分离出的文件到相应的目录下。

3.4 运行系统

首次运行系统,会先运行触摸屏校正程序,依次用触摸笔点击屏幕上出现的五个十字光标的中心,再进入qtopia。正常启动后,屏幕中心就会出现鼠标光标,然后出现启动LOGO,再进入主界面。当执行过触摸屏校正程序,下次开机时就会直接进入qtopia。

[参考文献]

[1]施威铭研究室.Linux C语言实务[M].北京:机械工业出版社,2002.

[2]田家林,陈利学,寇向辉.LINUX嵌入式操作系统在ARM上的移植[J].中文核心期刊《微计算机信息》(嵌入式与SOC),2007年第23卷第4-2期.

[3]倪继利.Qt及Linux操作系统窗口设计[M].北京:电子工业出版社,2006.

上一篇:无线宽带多业务网络接入组网方案研究 下一篇:扩展卡尔曼体系下的SLAM算法计算框架