QTE/Qtopia在Liod-270上的移植

一、Qt、Liod-270平台简介 
            
  Qt/Embedded是著名的Qt库开发商TrollTech(http://www.trolltech.com/)发布的面向嵌入式系统的Qt版本。因为Qt是KDE等项目使用的GUI支持库,所以有许多基于Qt的X Window程序可以非常方便地移植Qt/Embedded版本上。自从Qt/Embedded发布以来,就有大量的嵌入式Linux开发商转到了Qt/Embedded系统上,并且有多种免费版本可以使用。本次2006年"英特尔杯"全国大学生电子竞赛所用的Liod-270平台,除了可以使用TinyX以外也可以选择Qt。本文将以亿道电子提供的Liod-270平台为例,详细说明QTE/Qtopia的移 植过程。
Trolltech提供三大Qtopia版本:Qtopia手机版,Qtopia PDA版本和Qtopia消费电子产品平台。本文采用的是Qtopia PDA版的免费版本。
 
此次竞赛平台Liod是亿道电子设计、生产并捐赠的。武耀博德信息技术有限公司( www.51board.com )是 亿道电子 旗下全资控股的嵌入式方案设计公司,其前身是亿道电子的嵌入式研发中心。武耀博德专业提供基于英特尔嵌入式处理器的ODM/OEM项目设计、测试、生产服务,涉及从高校实验平台、导航系统、数字家庭、多媒体终端、行业PDA、监控项目、工业控制、RFID物流项目等等领域。

二、移植过程
1.编译准备
在编译QTE和QPE之前,我们先要下载QTE和QPE的源代码。 
上述的软件都可以在"英特尔杯"全国大学生电子竞赛的支持网站(www.xsbase.com )上下载得到。解压上述的源代码包。
2.安装Toolchain
使用cp命令将 Xsbase-arm-linux-qt.tar.gz文件拷贝到PC上/usr/local/下,然后进入到/usr/local/目录下,解压该文件。
为了之后在任何目录下面都能够使用Toolchain,必须要对路径进行设置。打开/root/.bash_profile文件来设置路径,用VI编辑器打开/root/.bash_profile文件并添加下述的路径: 
 
保存并退出该文件,使用source命令来使其路径起作用。 

3. 编译Qt/X11
编译qt-x11的唯一目的就是为编译QTE提供uic(用户接口编译器)uic用来把.ui文件转成.h和.cpp文件.uic是for x86的文件。 
   
 
4. 编译QTE的库 
 
拷贝qconfig-qpe.h文件到QTE中。 
 
进入到qt-2.3.7文件夹里面,并进行configure。 
 
configure 选项中:-qconfig qpe是编译qtopia的配置参数。执行configure的话会问到如下几个问题:
- 是否同意license?选择yes。
- 选择colordepth时选择16。 
- 是否支持Qt Virtual Framebuffer?在ARM上用,可以选择 no。Qt Virtual Framebuffer(qvfb)程序在X上实现Framebuffer。
环境设置结束后弹出如下信息,因为是设置为ARM用,最下面一行的Build Type中会出现linux-arm-g++ -share。

然后就可以执行make sub-src。
编译结束后查看Qt/Embedded 库来确认编译是否正常。确认各个库文件的连接关系。
利用file命令确认生成的执行文件是否适合目标平台即生成ARM平台的二进制文件。 
 
前面将QT/E编译了目标板上,但我们发现还不能进行操作,那是因为板子的触摸屏设备驱动和QT/E的readMouseData()函数不匹配,需要修改QT/E源代码。利用vi工具打开管理触摸屏的QT/E源代码/root/qt-2.3.7/src/kernel/qwsmouse_qws.cpp,并参考ARMLinux系统的触摸屏ADS7843驱动代码(/driver/char/ads7843_ts.c)中的读函数来适当地修改参数值。
下面是修改好的readMouseData()的代码。 
5编译工具库
编译Qtopia的时候需要用到jpeg和libuuid的库。这两个库需要编译到我们的交叉编译工具中。
首先编译e2fsprogs。 
 
进入 到e2fsprogs-1.32/lib/uuid文件夹里面,打开uuidP.h文件,把#include <ext2_types.h>改成#include "ext2_types.h"。修改e2fsprogs-1.32/lib/uuid下面的Makefile文件。 
   
编译后会生成我们需要的库文件libuuid.a。
我们需要把它拷贝到我们的工具链中。 
 
Qtopia里面的BMP和JPEG格式的图片的显示需要调用到JPEG的库函数,因此我们需要编译jpeg的库。 

Configure后生产Makefile文件,我们需要编译jpeg for ARM的库,编译前需要修改Makefile。 
 
然后进行make 就可以了。

6 编译Qtopia
所有的准备工作就完成了,就可以开始编译QT的图形用户界面Qtopia了。先解压。 
        
  先configure一下。 
然后直接make一下就开始编译Qtopia了。
编译完成后,我们可看到以下的文件夹是我们需要的。包括文件夹目录apps , bin , etc , li8n , lib , pics , plugins ,include共八个文件夹。
7运行Qtopia
在文件系统的/usr目录下新建一个qpe文件夹,把上面编译好的Qtopia文件夹拷贝到这个qpe文件夹里面,同时把qt-2.3.7/lib下面的库文件和font文件夹一起拷贝到文件系统的/usr/qpe/lib下面。
运行Qtopia。运行后,首先可以看到Welcom to Qtopia,然后一些语言和时间的设置,最后就可以看到类似下面的界面,至此就移植全部完成了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值