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

来源 :无线互联科技 | 被引量 : 0次 | 上传用户:elelyn
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:基于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.
其他文献