QTOPIA的移植报告嵌入式课程设计报告.doc
《QTOPIA的移植报告嵌入式课程设计报告.doc》由会员分享,可在线阅读,更多相关《QTOPIA的移植报告嵌入式课程设计报告.doc(13页珍藏版)》请在咨信网上搜索。
课 程 设 计 报 告 课程名称 嵌入式系统 课题名称QTOPIA移植 专 业 计算机科学与技术 班 级 学 号 姓 名 指导教师 郭鹏 刘铁武 李杰君 年月 日 湖南工程学院 课 程 设 计 任 务 书 课程名称 嵌入式系统 课 题 QTOPIA移植 专业班级 计算机科学与技术 学生姓名 学 号 指导老师 郭鹏 刘铁武 李杰君 任务书下达日期 年 月 日 任务完成日期 年月日 嵌入式系统课程设计任务书 设计课题5:Qtopia移植实验 1、 问题描述: 良好的GUI界面是嵌入式产品设计中不可或缺的部分,Qt/Embedded是一个多平台的C++图形用户界面应用程序框架,其对象容易扩展,可移植性好,支持多个GUI平台的交互开发,而基于Qt/Embedded框架的Qtopia 是Trolltech 公司为采用嵌入式Linux 操作系统的消费电子设备而开发的综合应用平台。 2、 功能设计要求: 1)本系统针对xbase270实验箱,运用Redhat9搭建交叉开发环境,涉及Qt程序的设计,Qtopia平台的移植。 2)Tslib和Qt/E模块: Ø 交叉编译环境搭建 Ø 编译Tslib源码:Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。 Ø 编译带Tslib库的Qt/E源码:Qt/E库文件是Qtopia移植所必备的库文件。 3)Qtopia模块: Ø 交叉编译环境搭建 Ø Qtopia源码分析及交叉编译 Ø 运用串口或网络的程序下载。 4) Qt程序配置 Ø 用Qt的designer工具设计一个Qt界面程序 Ø 将此程序配置到Qtopia平台中 3、要求: 1)用VMware搭建Redhat9的交叉编译环境; 2)对Qtopia源码的核心部分加必要注释和说明; 3)运用正确的方法进行程序下载; 目录 一、系统介绍1 二、总体设计2 三.主要模块的实现3 四.程序调试6 五.总结与体会6 六.源程序清单6 一、 系统介绍 目前嵌入式Linux的主流GUI系统主要有MiniGUI、Microwindows、OpenGUI、Qt/Embedded,这些GUI在接口定义、体系结构、功能特性存在很大差别,采取的技术路线也有所不同。MiniGUI是建立在比较成熟的图形引擎之上,开发的重点在于窗口系统,其小巧精致并且尽量与Win32兼容。MicroWindows目前开发的重点在底层的图形引擎,窗口系统和图形接口方面功能比较欠缺,与Win32和X Windows窗口系统保持兼容,提供了相对完善的图形功能。OpenGUI基于一个用汇编实现的x86图形内核,提供了一个高层的C/C++图形/窗口接口,它的资源消耗小,可移植性差,不支持多进程。 我们这次的实验用的就是基于Qt/Embedded,它具有良好的扩展性和众多优秀的配套工具。 实验过程中,一共用到4个源代码包,下面是它们的介绍说明: · Qt/Embedded:Qt/Embedded是一个多平台的C++图形用户界面应用程序框架,其对象容易扩展,可移植性好,支持多个GUI平台的交互开发。现在,Qt/Embedded被广泛地应用于各种嵌入式产品和设备中,从消费电器(如智能手机、机顶盒)到工业控制设备(如医学成像设备、移动信息系统等)。因此本实训项目选择Qt/Embedded为系统的GUI。 · Qtopia :Qtopia 是Trolltech 公司为采用嵌入式Linux 操作系统的消费电子设备而开发的综合应用平台, 它基于Qt/Embedded框架,所以在编译Qtopia之前先要搭建好Qt/Embedded框架。另外Qtopia包含完整的应用层、灵活的用户界面、窗口操作系统、应用程序启动程序以及开发框架。 · Tslib:在采用触摸屏的移动终端中,触摸屏性能的调试是个重要问题之一,因为电磁噪声的缘故,触摸屏容易存在点击不准确、有抖动等问题。Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。 · Tmake:tmake是一个很好用的生成和管理makefile的工具,他是由Trolltech这家公司开发的,用perl写成。 二、 总体设计 移植流程图 图1 流程示意图 1、QT/E的跨平台的移植方法与步骤: 1. 从光盘的QT目录下获得以下文件并解压到 /work目录,如下图: 2. 编译Qt/Embedded的环境参数的设置 在编译Qt/Embedded时,用户在PC机上应对编译时所需的环境变量进行设置(假设Qt解压后目录为/work/qt-2.3.7),主要参数包括: (1)、QTDIR-Qt解压后的所在的目录 (2)、LD_LIBRARY_PATH-Qt共享库存放的目录。 (3)、QPEDIR-qtopia解压后的所在的目录 (4)、TMAKEPATH-tmake编译工具的路径(假设tmake-1.1所在的目录为/work) (5)TMAKEDIR-tmake编译工具的目录 (6)、PATH-交叉编译工具arm-linux-gcc的路径 3. Qt/Embedded的编译配置 4. 针对ARM开发平台的Qt/Embedded的编译 三.主要模块的实现 1、tslib移植 第一步:解压tslib-1.4.tar.gz tar -zxvf tslib-1.4.tar.gz 第二步:进入解压过的目录 cd tslib-1.4 第三步:执行tslib-1.4目录下的autogen.sh ./autogen.sh 这一步需要安装一些工具:sudo apt-get install automake 第四步:执行autogen.sh脚本所生成的Makefile文件 请打入以下命令: echo "ac_cv_func_malloc_0_nonnull=yes" >$ARCH-linux.cache ./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 的时候编译后生成的可执行文件和库文件以及配置文所安装的目录; 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 注意一定要顶格写否则程序执行时会发生读取ts.conf错误 交叉编译tslib.tar.bz2,其中截图如下: 2.ARM开发平台的Qt/Embedded的编译步骤: (1)根据编译Qt/Embedded的环境变量的设置方法设置环境变量,实验截图如下: (2)触摸屏共享库的编译和Qt/Embedded源代码的修改 Qt/Embedded只支持鼠标和键盘的操作,但在大部分嵌入式系统中利用触摸屏,所以用户必须对触摸屏的相关操作编译成共享库或静态库。编译触摸屏库, 将触摸屏相关的头文件复制到qt-2.3.7/include文件夹中;将编译好的触摸屏库文件复制qt-2.3.7/lib文件夹中; (3) 将patch底下的文件覆盖当前文件。执行configure命令生成编译时所需的Makefile。 cd $QTDIR (copy the qt_patch files to overwrite current files.) cp /work/qtopia-1.7.0/src/qt/qconfig-qpe.h /work/qt-2.3.7/src/tools/ ./configure -xplatform linux-arm-g++ -qconfig qpe (color depth: 16 ; Virtual Framebuffer: no) make sub-src (4)拷贝QT所需文件,并配置环境 cp /usr/local/arm-linux/qt_toolchain/qt-2.3.2/bin/uic /work/qt-2.3.7/bin export LD_LIBRARY_PATH=/usr/local/arm-linux/qt_toolchain/qt-2.3.2/lib:$LD_LIBRARY_PATH cd $QPEDIR/src ./configure -xplatform linux-arm-g++ make (5)编译完成后,在 $QTDIR/lib生成 ibqte.so*, 所有的应用程序在 $QPEDIR/bin arm-linux-strip -R .note -R .comment bin/* arm-linux-strip -R .note -R .comment $QTDIR/lib/libqte.so* $QTDIR/lib/libqpe.so* arm-linux-strip -R .note -R .comment plugins/*/* (6)建立qpe文件夹,将QT所需文件拷贝到qpe文件夹底下。 mkdir qpe cd qpe cp -aR ../qt-2.3.7/lib/ ./ cp -aR ../qtopia-1.7.0/lib/* ./lib cp -aR ../qtopia-1.7.0/apps ./ cp -aR ../qtopia-1.7.0/bin ./ cp -aR ../qtopia-1.7.0/plugins ./ cp -aR ../qtopia-1.7.0/i18n ./ cp -aR ../qtopia-1.7.0/pics . / cp -aR ../qtopia-1.7.0/etc . / cp tslib/etc/ts.conf /qpe/etc cp tslib/tests/.libs/ts.calibrate /qpe/bin cp /work/qpe /usr/qpe (7). 覆盖脚本/qpe/qpe.sh(如用USB鼠标覆盖/qpe/qpe_moush.sh),覆盖脚本/etc/inittab。 (8)用修改好的qpe文件夹替换文件系统中的qpe文件夹,制作文件系统,烧写完成后重启。因为字体文件比较大,请删除/qpe/lib/fonts底下的没用的字体。注意保留*.qpf文件和fontdir文件。 [root@hostlocal /]#cp -rf /work/qpe /rootfs270/qpe [root@hostlocal /]#./mkfs.jffs2 -o rootfs270.img-e0x40000 -r rootfs270 -p -l 3、启动Qtopia (1)目标板开机 (2)运行脚本qtopia.sh ./qtopia.sh (3)运行qpe /Qtopia/bin/qpe 四.程序调试 在程序过程中,Qt/Embedded只支持鼠标和键盘的操作,但在大部分嵌入式系统中利用触摸屏,所以用户必须对触摸屏的相关操作编译成共享库或静态库。个人感觉这个过程最有难度。 五.总结与体会 在课程设计过程中,我们了解到课程设计不光光是埋头做设计,也是同学之间互相学习和互相交流经验和知识的机会。也是我们大家向老师提出疑问和学以致用的机会,这让我们不会成为只知道理论而不会将理论化为实践中去的书呆子。我觉得课程设计就是一个复习课堂上学到知识的机会,也是一个加强学生动手能力设计的机会。更是一个让学习得到升华的过程。 六.源程序清单 Qt界面程序: //textfinder.h #ifndefTEXTFINDER_H #defineTEXTFINDER_H #include<QWidget> namespaceUi{ classTextFinder; } classTextFinder:publicQWidget { Q_OBJECT public: explicitTextFinder(QWidget*parent=0); ~TextFinder(); privateslots: voidon_findButtom_clicked(); private: Ui::TextFinder*ui; voidloadTextFile(); }; #endif//TEXTFINDER_H //main.cpp #include<QtGui/QApplication> #include"textfinder.h" intmain(intargc,char*argv[]) { QApplicationa(argc,argv); TextFinderw; w.show(); returna.exec(); } //textfinder.cpp #include"textfinder.h" #include"ui_textfinder.h" #include<QtCore/QFile> #include<QtCore/QTextStream> TextFinder::TextFinder(QWidget*parent): QWidget(parent), ui(newUi::TextFinder) { ui->setupUi(this); loadTextFile(); } TextFinder::~TextFinder() { deleteui; } voidTextFinder::on_findButtom_clicked() { QStringsearchString=ui->lineEdit->text(); ui->textEdit->find(searchString,QTextDocument::FindWholeWords); } voidTextFinder::loadTextFile() { QFileinputFile(":/input.txt"); inputFile.open(QIODevice::ReadOnly); QTextStreamin(&inputFile); QStringline=in.readAll(); inputFile.close(); ui->textEdit->setPlainText(line); QTextCursorcursor=ui->textEdit->textCursor(); cursor.movePosition(QTextCursor::Start,QTextCursor::MoveAnchor,1); } 计算机与通信学院课程设计评分表 课程名称: 嵌入式系统课程设计 项 目 评 价 设计方案的合理性与创造性 设计与调试结果 设计说明书的质量 答辩陈述与回答问题情况 课程设计周表现情况 综合成绩 教师签名: 日 期: (注:1.此页附在课程设计报告之后;2.综合成绩按优、良、中、及格和不及格五级评定。)- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- QTOPIA 移植 报告 嵌入式 课程设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文