QTOPIA的移植报告_第1页
QTOPIA的移植报告_第2页
QTOPIA的移植报告_第3页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计报告课程名称嵌入式系统课题名称QTOPIA 移植专 业计算机科学和技术班 级学 号姓 名指导教师郭鹏 刘铁武 李杰君年 月 日湖南工程学院课程设计任务书课程名称嵌入式系统课 题 QTOPIA 移植专业班级 计算机科学和技术学生姓名 学 号指导老师 郭鹏 刘铁武 李杰君任务书下达日期年 月 日任务完成日期年 月 日嵌入式系统课程设计任务书设计课题5: Qtopia移植实验1、问题描述:良好的GUI界面是嵌入式产品设计中不可或缺的部分,Qt/Embedded是一个多平台的C+图形用户界面使用程序框架,其对象容易扩展,可移植性好,支持 多个GUI平台的交互开发,而基于Qt/Embedded框

2、架的Qtopia 是Trolltech 公 司为采用嵌入式Linux操作系统的消费电子设备而开发的综合使用平台。2、功能设计要求:1) 本系统针对xbase270实验箱,运用Redhat9搭建交叉开发环境,涉及 Qt程序的设计,Qtopia平台的移植。2) Tslib 和 Qt/E 模块:交叉编译环境搭建编译Tslib源码:Tslib是一个开源的程序,能够为触摸屏驱动获得 的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的 适配层,为上层的使用提供了一个统一的接口。编译带Tslib库的Qt/E源码:Qt/E库文件是Qtopia移植所必备的 库文件。3) Qtopia 模块:交叉编译环境

3、搭建Qtopia源码分析及交叉编译 运用串口或网络的程序下载。4) Qt程序配置用Qt的designer工具设计一个Qt界面程序将此程序配置到Qtopia平台中3、要求:1)用VMware搭建Redhat9的交叉编译环境;2)对Qtopia源码的核心部分加必要注释和说明;3)运用正确的方法进行程序下载;目录一. 系统介绍3二. 总体设计1三. 主要模块的实现2四. 程序调试2五. 总结和体会 5六. 源程序清单5系统介绍目前嵌入式Linux的主流GUI系统主要有 MiniGUI、Microwindows、OpenGU、Qt/Embedded,这些GUI在接口定义、体系结构、功能特性存在很大差别

4、,采取的技术路 线也有所不同。MiniGUI是建立在比较成熟的图形引擎之上,开发的重点在于窗口系统,其小巧精致并且尽量和 Win32兼容。MicroWindows目前开发的重点在底层的图形引擎, 窗口系统和图形接口方面功能比较欠缺,和Win 32和X Win dows窗口系统保持兼容,提供了相对完善的图形功能。Ope nGU基于一个用汇编实现的x86图形内核,提供了一个高层 的C/C+图形/窗口接口,它的资源消耗小,可移植性差,不支持多进程。我们这次的实验用的就是基于Qt/Embedded,它具有良好的扩展性和众多优秀的配套工具。实验过程中,一共用到4个源代码包,下面是它们的介绍说明:* Qt

5、/Embedded: Qt/Embedded是一个多平台的 C+图形用户界面使用程序框架,其对象容易扩展,可移植性好,支持多个GUI平台的交互开发。现在,Qt/Embedded被广泛地使用于各种嵌入式产品和设备中,从消费电器(如智能手机、机顶盒)到工业控制设备(如医学成像设备、移动信息系统等)。因此本实训项目选择Qt/Embedded 为系统的GUI。* Qtopia : Qtopia是Trolltech 公司为采用嵌入式Linux操作系统的消费电子设备 而开发的综合使用平台,它基于Qt/Embedded框架,所以在编译Qtopia之前先要搭 建好Qt/Embedded框架。另外Qtopia包

6、含完整的使用层、灵活的用户界面、窗口操 作系统、使用程序启动程序以及开发框架。Tslib :在采用触摸屏的移动终端中,触摸屏性能的调试是个重要问题之一,因为 电磁噪声的缘故,触摸屏容易存在点击不准确、有抖动等问题。Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的使用提供了一个统一的接口。 Tmake tmake是一个很好用的生成和管理makefile的工具,他是由Trolltech 这家公司开发的,用perl写成。总体设计移植流程图 B X文件回删啦 査看*) 北論转到(G) 稱助宜|raotLoca Itios L w

7、ork# Lr zxvf qtopij frce-1 .7xO. tar .gz图1流程示意图1、QT/E的跨平台的移植方法和步骤:1. 从光盘的QT目录下获得以下文件并解压到/work目录,如下图:I -2 .A .7/ coni igs/ I inux- stia rp-g+ + - s la i i c-debup qi 2.3.7/configi/I inux sharp-g+ + shared ql2 .3 7/conf igs / I inux-sharp-g+-shared-debug q 1-2 t:i, 7 / conf igs/ I inux-xH6-g+-s la t i

8、c q l -2.7/conf iga/Iinux-SG-g*+ s Ulic-debugql2.3.77conf igi/ I inux-x&6-g*+-shared q 2.7/conf ngs/1 inutxfi-g+ihared-debugq l-2 h . 7 / con JI inuxX&Gr 11 i-g+-s ia t i cq i *2 .i.7/conL igs;/ I inux-x&Gr 11 i s u l ie-dcbug q l2 .:k 7/conf igs/ I inux-x3Gr Llj-g+-shared q 2 hSH 7/ronf igs/ I inux

9、-xiI I i一百+一hurEcJ-debuf q l-2 .3.7/coni igi/qnst-r lp-g+-s ta L i c qi 2 .3.7/conf igi/qnx-r tp-g+ + -s tali c debug q l-2 .3* 7/cauligs/qnx-rlp-g+-red q l27/conf ipji/qnx-r tp-g+- shared-debugq l-2 .3.7/coniLar t !i-g+ + - i ta ifq l-2 .3.7/conf igi/iio lar i s-g+ s; ta l i c-debug q2$ARCH-linux.c

10、ache./configure-host=arm-softfloat-linux-gnu-prefix=/home/linux/tslib-cache-file=$ARCH-linux.cache-host 是 指 你 的 交 叉 编 译 器 的 前 最 ;例 如 : 你 的 交 叉 编 译 器 是 arm-linux-gcc, 则 -host=arm-linux. 如果是 arm-softfloat-linux-gnu-gcc则 -host=arm-softfloat-linux-gnu-prefix 是你执行 make install 的时候编译后生成的可执行文件和库文件以及配置文所 安装

11、的目录 ;configure 文件下还有好多选项 ;你可以执行 ./configure -help 来进行选择其他项, 不过在 这里这些选项就够了。第五步:执行 make 第六步:执行 make install 第七步:把指定安装目录下的 tslib 的文件都 copy 到你所挂载的根文件下 sudo cp -rf /home/linux/tslib/* /rootfs/tslib第八步:修改 /rootfs/tslib 下的 etc 目录中 ts.cong 文件vi ts.conf 将第二行的 #module_raw input 修改成 module_raw input 注意一定要顶 格写否

12、则程序执行时会发生读取 ts.conf 错误交叉编译,其中截图如下:rco lt?a 1 ho5 ttUib# Isde luca I .irOau tdgen. sh#con 1 igure . inA e LcISkMfis r cAlTimRSGianjeLQjennf igure F in琴TA|_Lp Ins in* ie s t sau togen- c kan .s1 conf ig Lh . iinOCTY1NGMkef ile .amroo Icu Itios ti$ 1 ih cKpor I0C- i i rrr 1 inuxgecbash : expor i:OC-arn

13、r 1 inus-gee : not a va 1 id ident if krou Jilora“III,” dpor tGUarrrr 1 inux-geeroo lloca Ihoi work# cd 111 iibrnn t ca Ihn; t 1 h ! ibl . /autof D - h2. ARM开发平台的 Qt/Embedded的编译步骤:(1 )根据编译 Qt/Embedded的环境变量的设置方法设置环境变量,实验截图如下:常,bashprofiibefr Gn ilic ailiiiji裁 urkl fundioin% if -f y.bashrc 上 ihen /-ba

14、shrctl User specific cnvironmcnl End slrtup pniirjmsPATH =$l3ATH:$H()ME/binPATH SPAT! Is/u sr/loca 1/nirm-1 inux/b inBASH _KNV=$ )MK/.hashrcUSERNAME “rWcspiirl USERNAME BA&U_ENV PATJIf 11. W 3B(2 )触摸屏共享库的编译和Qt/Embedded源代码的修改Qt/Embedded只支持鼠标和键盘的操作,但在大部分嵌入式系统中利用触摸屏,所以用户必须对触摸屏的相关操作编译成共享库或静态库。编译触摸屏库,将触摸

15、屏相关的头文件复制到qt-237/include文件夹中;将编译好的触摸屏库文件复制qt-237/lib文件夹中;(3) 将patch底下的文件覆盖当前文件。执行con figure 命令生成编译时所需的Makefile。cd $QTDIR(copy the qt_patch files to overwrite curre nt files.)./c on figure-xplatform linu x-arm-g+ -qc onfig qpe(color depth: 16 ; Virtual Framebuffer: no)make sub-src(4) 拷贝QT所需文件,并配置环境ex

16、portLD LIBRARY PA TH=/usr/local/arm-linux/qt toolchain/qt-2.3.2/lib:$LD LIBRARY PAT(5) 编译完成后, 在$QTDIR/lib生成ibqte.so*,所有的使用程序在$QPEDIR/binarm-linux-strip -R .note -R .comment bin/*arm-li nu x-strip -R .n ote -R .comme nt $QTDIR/lib/libqte.so* $QTDIR/lib/libqpe.so*arm-li nu x-strip -R .n ote -R .comme

17、nt plugi ns/*/*(6) 建立qpe文件夹,将QT所需文件拷贝到qpe文件夹底下。/ /(7).覆盖脚本 /qpe/qpe.sh (如用 USB 鼠标覆盖 /qpe/qpe_moush.sh),覆盖脚本 /etc/inittab。(8)用修改好的qpe文件夹替换文件系统中的qpe文件夹,制作文件系统,烧写完成后重启。因为字体文件比较大,请删除/qpe/lib/fonts底下的没用的字体。注意保留*.qpf文件和fontdir 文件。roothostlocal /#cp -rf /work/qpe /rootfs270/qperoothostlocal /#./mkfs.jffs2

18、-o rootfs270.img-e0x40000 -r rootfs270 -p -l3、启动 Qtopia(1)目标板开机(2)运行脚本qtopia.sh./qtopia.sh(3)运行qpe/Qtopia/b in /qpe四.程序调试但在大部分嵌入式系统中利用触摸个人感觉这个过程最有难度。在程序过程中,Qt/Embedded只支持鼠标和键盘的操作, 屏,所以用户必须对触摸屏的相关操作编译成共享库或静态库。J 杆寸霁订隼r : 胡厂尹二7, “二 対I旧 腳1+隹)络殆转刮吃)rwl(a lac alhostjwcrk.-tslibd&pPils*d&ps/ts_print *Po tm

19、pdepfile=h已&ps/1s_print aTPo1 depmode=g匚uS /bin/sh B r/depcomp arm-1 inux-ge亡 一DH口HE_CIQNFIG_H -I t -I -I - - 一1 =/估广c;t -F ts.printu I I echo ./ts.print,c/biii/sh * -./Iibtool 一一irnade=lLnk arm-1 iriuLx一呂亡亡一DU曹E_INPUT口FI- ts_print t8_print Bo Zsrc/litots 1旨 -Ldl3rmi-l inux-gc匚 一DU号EIUPLITPlPI - . 1

20、 ibs/ts_print ts_print. d . L/src/ 1 ibs/1 i bts -ldl -W1 j一一rpath -U1 .p/uisr/local/lib匚resting itiake2: make2r itiak2: inakB2: ivtakeLl :_Eroot1oca1host tslib* cp -a src/,libs/*qtqt-Z 3 7 tarqt-2 3 7qtcjpia-1.7 B0尸口local host tslibj cp -a src/ .libs/cpfi 0 J !j ./qt -2 .3.7/1 i b/1 itrts-0,0 B. so

21、 epD il 訂-_cp!l cpn cpD._广口口匕超1 亡;自IH&St 甘1上匕出 Dp 占韋占/幽-专口七s_printLeaving directory /work/tsiib/testsEnterin 呂 di rec% /wnrlk/1宫 libNothing to done For all-am.Leaving di recs /work/tsl ib Leaving directory /wDrk/tslib-DUSE.INPUT.API -e tes八/qt官疋,/qt -2 .3.7/1 i b/1 ibtS-0,0 B. so. 0d ? y1 aZqt-2.3.7

22、/1ib/1ibte-01?期-.-/qt-Zr3r7/lib/libtsrlaJ D Li Ll 口 07777 y f J .a/qt-2B3A7/lib/libtsslaip? ya “./qt-2 r3r7/lib/libts rsoF y五总结和体会在课程设计过程中, 我们了解到课程设计不光光是埋头做设计, 也是同学之间互相学习 和互相交流经验和知识的机会。 也是我们大家向老师提出疑问和学以致用的机会, 这让我们 不会成为只知道理论而不会将理论化为实践中去的书呆子。 我觉得课程设计就是一个复习课 堂上学到知识的机会, 也是一个加强学生动手能力设计的机会。 更是一个让学习得到升华的 过

23、程。六源程序清单Qt 界面程序:/textfinder.h#ifndef TEXTFINDER_H#define TEXTFINDER_H#include namespace Ui class TextFinder ;class TextFinder : public QWidgetQ_OBJECTpublic :explicit TextFinder ( QWidget *parent = 0);TextFinder ();private slots :void on_findButtom_clicked();private :Ui: TextFinder *ui ;void loadTextFile();#endif / TEXTFINDER_H/main.cpp#include #include textfinder.hint main( int argc, char *argv)QApplication a(argc, argv);TextFinder w;w.show();retur na.exec();/textfinder.cpp#in elude textfi nder.h#in elude ui_textfi n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论