嵌入式课程设计.doc_第1页
嵌入式课程设计.doc_第2页
嵌入式课程设计.doc_第3页
嵌入式课程设计.doc_第4页
嵌入式课程设计.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

嵌入式课程设计 嵌入式QT的移植 姓 名 : 揭金荣 专 业 : 信息工程班 级 : 083232 学 号 : 08323211 指导老师:高小辉2011-5-7 目录一 系统分析1二 总体设计1三 详细设计31. 从光盘的QT目录下需获得的文件32 编译Qt/Embedded的环境参数的设置33 Qt/Embedded的编译配置3四 系统实现和测试6五 心得体会6六 参考文献7一 系统分析1、QT/E简介QT/E是跨平台的C+图形用户界面(GUI)工具包,它是著名的Qt开发商TrollTech发布的面向嵌入式系统的Qt版本,Qt是目前KDE等项目使用的GUI支持库,许多基于Qt的X Window程序可以非常方便地移植到嵌入式Qt/Embedded版本上。自从Qt/Embedded发布以来,就有许多嵌入式Linux开发商利用Qt/Embedded进行嵌入式GUI应用开发。2、Qt/Embedded是一个多平台的C+图形用户界面开发工具包,它注重于能给用户提供精美的图形界面所需的所有元素,而且其开发过程是基于面向对象的编程思想,并且Qt/Embedded支持真正的组件编程。TrollTech公司所发布的面向嵌入式系统的QT/E版本只提供源代码,用户必须针对自己的嵌入式硬件平台进行裁剪、编译和移植。尽管Qt/Embedded可以裁剪到630K,但它对硬件平台具有较高的要求,目前Qt/Embedded库主要针对于手持式信息终端。本实验主要完成Qt/Embedded在XSBase270实验平台上的移植。二 总体设计Qt/Embedded是TrollTech公司在Qt的基础上开发的为嵌入式GUI和应用程序的开发而设计的C+工具包。Qt4之后,QT/Embedded改称为Qtopia-core 总体设计框架:三 详细设计一、完成QT/E的移植首先满足2个条件:1)已烧写QT内核。2)拥有不含QT窗口系统的文件系统。二、QT/E的跨平台的移植方法与步骤1. 从光盘的QT目录下需获得的文件 tslib.tar.bz2 tmake-1.11.tar.gz gqt-embedded-2.3.7.tar.gz qtopia-free-1.7.0.tar.gz用户可到TrollTech 主页上(/qt/source)下载Qt/Embedded的某个版本的源代码(本实验主要介绍qt-2.3.7),对下载后的源代码压缩文件进行解压。如:# tar xzvf qt-embedded-2.3.7.tar.gz重命名qtopia-free-1.70为qtopia-1.70在根目录新建文件夹“work”,解压后在当前目录上生成相应文件夹。2 编译Qt/Embedded的环境参数的设置在编译Qt/Embedded时,用户在PC机上应对编译时所需的环境变量进行设置(假设Qt解压后目录为/work/qt-2.3.7),主要参数包括:(1)、QTDIRQt解压后的所在的目录(2)、LD_LIBRARY_PATHQt共享库存放的目录。(3)、QPEDIRqtopia解压后的所在的目录(4)、TMAKEPATHtmake编译工具的路径(假设tmake-1.1所在的目录为/work)(5)TMAKEDIRtmake编译工具的目录(6)、PATH交叉编译工具arm-linux-gcc的路径root$export export QTDIR=/work/qt-2.3.7root$export export QPEDIR=/work/qtopia-1.7.0root$export LD_LIBRARY_PATH=/work/qt-2.3.7/lib:$LD_LIBRARY_PATHroot$export TMAKEDIR=/work/tmake-1.11root$ export TMAKEPATH=/work/tmake-1.11/lib/qws/linux-arm-g+root$ export PATH=/work/tmake-1.11/bin:$PATH3 Qt/Embedded的编译配置Qt/Embedded的编译配置主要通过configure命令进行配置。用户可通过./configure help查看配置选项,下面介绍几个主要的配置选项功能(*表示默认选项)。(1)、* -release .编译成发布版本; -debug .编译具有调试信息的版本(2)、 * -shared .编译生成和使用共享库 (libqte.so);-static . .编译生成和使用静态库(libqte.a)(3)、 * -no-thread .不支持线程编译;-thread .支持线程编译。如果在编译时选择 -thread选项,Qt/Embedded编译后生成libqte-mt.so共享库或libqte-mt.a静态库。(4)、-platform target .编译平台的选择,在编译时,对Qt的源代码编译所采用的目标平台,Qt默认为linux-x86-g+ -shared,一般情况下对该项无需进行配置。(5)、-xplatform target.交叉编译平台的选择。如果将Qt编译成不同的平台,该选项必须进行选项配置,针对ARM开发平台,该选项应配置为 linux-arm-g+ -shared。(6)-qconfig local .使用用户自定义的qconfig.h。用户可以将自定义的配置选项(主要是预编译宏的定义),文件应保存在qt-2.3.7文件夹的src/tools目录下。具体的详细配置选项内容和功能可以参考qt-2.3.7目录下的PLATFORMS文件。4 针对ARM开发平台的Qt/Embedded的编译步骤:(1)、根据编译Qt/Embedded的环境变量的设置方法设置环境变量;(2)、触摸屏共享库的编译和Qt/Embedded源代码的修改Qt/Embedded只支持鼠标和键盘的操作,但在大部分嵌入式系统中利用触摸屏,所以用户必须对触摸屏的相关操作编译成共享库或静态库。下面介绍触摸屏共享库的编译过程。(假设tslib.tar.bz2保存在/work)rootwork$cd tslibrootwork$export CC=arm-linux-gccrootwork$./autogen.shrootwork$./configure -host=arm-linuxrootwork$makerootwork$cp -a src/.libs/* ./qt-2.3.7/lib/rootwork$cp -a plugins/.libs/*.so ./qt-2.3.7/lib/编译触摸屏库, 将触摸屏相关的头文件复制到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/binexport LD_LIBRARY_PATH=/usr/local/arm-linux/qt_toolchain/qt-2.3.2/lib:$LD_LIBRARY_PATHcd $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/etccp tslib/tests/.libs/ts.calibrate /qpe/bincp /work/qpe /usr/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 -o rootfs270.img-e0x40000 -r rootfs270 -p -l四 系统实现和测试 编写一个“Hello”的程序来了解Qt程序设计Hello,Qt程序代码如下:#include #include int main (int argc,char *argv ) QApplication app (argc,argv) QLabel *label=new Qlabel (Hello Qt!,NULL) Label-show (); Return app.exec ();运行结果:五 心得体会通过此次嵌入式课程设计,让我体会到了潜入式技术入门的难度,需要经过很大的努力才能够在嵌入式这个行业里面有所发展。也知道了QT的强大,通过一个小小的程序可以完成视觉上的不同感受。同时此次课程设计对我们综合运用所学知识,发现,提出,分析和解决实际问题锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考擦过程。随着科学技术的日新月异,ARM嵌入式系统已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握嵌入式的开发技术是十分重要的。六 参考文献 1 BarabanovM, Yodaiken V. Introducing real time L inux J . L inux J , 1997, 34: 19223. 2 WolfW H. Hardware software co2design of embedded systems J . Proc IEEE, 1994, 82 (7) : 9672989. 3 谷丰. 嵌入式L inux系统平台的构建 J . 电脑与信息技术, 2003 (6) : 54257.4 符意德主编.嵌入式系统设计原理及应用. 北京:清华大学出版社,2004.5 王勇编著.嵌入式系统原理与设计. 杭州:浙江大学出版社,2007.6 马忠梅.ARM嵌入式处理器结构与应用. 北京:北京航空航天大学出版社,2002.7 周立功等编著.ARM微控制器基础与实战. 北京:北京航空航天大学出版社,2003.8 王田苗主编.嵌入式系统设计与实例开发. 北京:清华大学出版社,2002.9 周立功等编著.PXA270 & Linux 2.6 实验教程. 北京:广州致远电子有限公司,2007.评分表学生姓名:揭金荣 班级:083232 学号:08323211题目:嵌入式QT的移植项目内容满分实 评选题能结合所学课程知识、有一定的能力训练。符合选题要求(5人一题)10工作量适中,难易度合理10能力水平

温馨提示

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

评论

0/150

提交评论