基于S3C的QT移植与编程实现Word文件下载.doc
- 文档编号:1463603
- 上传时间:2023-04-30
- 格式:DOC
- 页数:26
- 大小:1.39MB
基于S3C的QT移植与编程实现Word文件下载.doc
《基于S3C的QT移植与编程实现Word文件下载.doc》由会员分享,可在线阅读,更多相关《基于S3C的QT移植与编程实现Word文件下载.doc(26页珍藏版)》请在冰点文库上搜索。
嵌入式系统;
QT;
嵌入式linux;
S3C2440
TransplantationandprogrammingofQTbasedonS3C2440
Abstract
ThispaperintroducestheQT/Embeddedlinuxembeddedsystemdevelopmentenvironmenttoestablishandtransplant.Throughalotofsourcecodeanalysis,buildQt/developmentenvironmentinthelinuxhostands3c2410transplant,andthenontheQT/Eprograms.
Qt/EmbeddedisTrolltechlaunchedLinux-basedembeddedplatformdevelopmenttools,embeddedversionofQt.ItinheritstheQt'
sstandardAPIs,provideamorecompactthanXlibandXWindowswindowgenerationsystemFrameBufferdirectoperations(seeFigure1).Thefullymodulardesignandefficientbuildsystemtoreducememoryconsumption,theseQt/Embeddedastheembeddedenvironment,powerfulandcomprehensiveGUIdevelopmenttools.KDEandotherprojectsusingQtasthesupportlibrary,somanyQt-basedX-WindowsprogramcanbeeasilyportedtoQt/Embeddedversion.Qt/Embeddedwiththeadvantagesofobject-oriented,cross-platformandinterfacedesign,convenientandaesthetic,havebeenwidelyused.
KEYWORD:
Embedded;
TransplantAndProgram;
Qt/Embedded;
linux;
第一章 前言 4
1.1嵌入式系统概述 4
1.2图形开发 7
1.3本文章节安排 8
第二章QT编程环境 9
2.1Qt概述 9
2.2Qt开发环境搭建 9
2.2.1安装Qt对系统的要求 10
2.2.2Qt开发环境及工具 10
2.2.3Qt-Embedded-Linux安装 10
2.2.4嵌入式Linux中Qt环境变量 11
2.2.5Qt/X11安装 12
2.2.6Qt/Embedded安装 12
2.3Qt在嵌入式Linux的应用 13
2.3.1在嵌入式Linux上运行Qt程序 13
2.3.2嵌入式LinuxQt显示管理 14
2.3.3输入设备键盘和鼠标的设置于管理 15
第三章Qt应用程序开发实例 17
3.1软硬件平台 17
3.1.1硬件平台 17
3.1.2软件平台 18
3.2Qt开发流程 19
3.3应用程序实现 20
第四章总结 25
参考文献 26
致谢 27
第一章前言
1.1嵌入式系统概述
嵌入式系统的出现最初是基于单片机的。
70年代单片机的出现,使得汽车、家电、工业机器、通信装置以及成千上万种产品可以通过内嵌电子装置来获得更佳的使用性能:
更容易使用、更快、更便宜。
这些装置已经初步具备了嵌入式的应用特点,但是这时的应用只是使用8位的芯片,执行一些单线程的程序,还谈不上“系统”的概念。
从80年代早期开始,嵌入式系统的程序员开始用商业级的“操作系统”编写嵌入式应用软件,这使得可以获取更短的开发周期,更低的开发资金和更高的开发效率,“嵌入式系统”真正出现了。
确切点说,这个时候的操作系统是一个实时核,这个实时核包含了许多传统操作系统的特征,包括任务管理、任务间通讯、同步与相互排斥、中断支持、内存管理等功能。
嵌入式系统的分类如下:
(1)嵌入式系统的硬件
从硬件方面来讲,嵌入式系统的核心部件是嵌入式处理器。
据不完全统计,全世界嵌入式处理器的品种数量已经超过1000多种,流行体系结构有30多个,其中8051体系占大多数。
生产8051单片机的半导体厂家有20多个,共350多种衍生产品,仅Philips就有近100种。
目前嵌入式处理器的寻址空间可以从64KB到256MB,处理速度从0.1MIPS到2000MIPS。
近年来嵌入式微处理器的主要发展方向是小体积、高性能、低功耗。
专业分工也越来越明显,出现了专业的IP(IntellectualPropertyCore,知识产权核)供应商,如ARM、MIPS等,他们通过提供优质、高性能的嵌入式微处理器内核,由各个半导体厂商生产面向各个应用领域的芯片。
一般可以将嵌入式处理器分成4类,即嵌入式微处理器(MicroProcessor
Unit,MPU)、嵌入式微控制器(MicroControllerUnit,MCU单片机)、嵌入式DSP处理器(Digital
SignalProcessor,DSP)和嵌入式片上系统(SystemOnChip,SOC)。
(2)嵌入式系统的软件
嵌入式系统的软件一般由嵌入式操作系统和应用软件组成。
操作系统是连接计算机硬件与应用程序的系统程序。
嵌入式系统的特点:
1)系统内核小
由于嵌入式系统一般是应用于小型电子装置,系统资源相对有限,所以内核较之传统的操作系统要小得多。
比如ENEA公司的OSE分布式系统,内核只有5KB而Windows的内核则要大得多。
2)专用性强
嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植,即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。
同时,针对不同的任务,往往需要对系统进行较大更改;
程序的编译下载要和系统相结合,这种修改和通用软件的“升级”是完全不同的概念。
3)系统精简
嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能的设计及实现过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。
4)高实时性
高实时性的操作系统软件是嵌入式软件的基本要求。
而且软件要求固化存储,以提高速度。
软件代码要求高质量和高可靠性。
5)多任务的操作系统
嵌入式软件开发要想走向标准化,就必须使用多任务的操作系统。
嵌入式系统的应用程序可以没有操作系统而直接在芯片上运行;
但是为了合理地调度多任务,利用系统资源、系统函数以及专家库函数接口,用户必须自行选配RTOS(RealTimeOperatingSystem)开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。
6)专门的开发工具和环境
嵌入式系统开发需要专门的开发工具和环境。
由于嵌入式系统本身不具备自主开发能力,即使设计完成以后,用户通常也不能对其中的程序功能进行修改,因此必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。
开发时往往有主机和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。
1.2嵌入式系统图形用户界面现状
由于受到硬件条件等的限制,现在许多嵌入式设备的用户界面仍然非常简单。
看习惯了PC机上华丽美观的用户界面,总希望在这些设备上也能得到同样美的享受。
随着嵌入式设备的硬件条件提高,对于嵌入式系统中轻量级图形用户界面的需求也越来越迫切。
这些系统一般不希望建立在庞大累赘的、非常消耗资源的操作系统和图形用户界面之上,比如Windows。
同时,嵌入式系统对图形用户界面轻量型和可定制方面有较高的要求,它们希望图形用户界面占用资源少、性能高、可靠性高、易移植、可配置。
本论文的选题正是结合Linux操作系统和嵌入式系统研究这两个热点领域,选择适合于嵌入式特点的图形用户界面QT来进行应用程序开发。
1.3本文章节安排
论文的结构安排如下:
第一章,前沿,分析并阐述了本课题研究背景及意义。
第二章,QT编程环境,首先介绍了QT的概述,QT环境的搭建以及要求。
第三,QT应用程序开发实例,介绍了QT应用程序开发所涉及的软、硬件平台,完成应用程序实例,并移植到GT2440开发板。
第四章,总结,对已完成的工作进行了简要总结,并指出了其中的不足,并对今后的做了展望。
第二章QT编程环境
2.1Qt概述
Qt是一个跨平台的C++图形用户界面库,由挪威TrollTech公司于1995年底出品。
Trolltech公司在1994年成立,但是在1992年,成立Trolltech公司的那批程序员就已经开始设计Qt了,Qt的第一个商业版本于1995年推出。
2008年1月31日,Nokia公司宣布通过公开竞购的方式收购TrollTech公司,旗下包括Qt在内的技术都归入Nokia旗下。
并且Nokia针对自己的移动设备平台规划的需要,将Qt按不同的版本发行。
Qt的良好封装机制使得Qt的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。
Qt提供了一种称为signals/slots的安全类型来替代callback,这使得各个元件之间的协同工作变得十分简单。
Qt包括多达250个以上的C++类,还提供基于模板的collections,serialization,file,I/Odevice,directorymanagement,date/time类。
还包括下列功能:
(1)支持2D/3D图形渲染,支持OpenGL大量的开发文档;
(2)XML支持;
(3)Webkit引擎的集成,可以实现本地界面与Web内容的无缝集成。
2.2Qt开发环境搭建
Qt/Embedded是基于Qt的嵌入式GUI和应用程序开发的工具包,它可运行多种嵌入式设备上,主要运行在嵌入式Linux系统上,并且需要C++编译器的支持,并为嵌入式应用程序提供Qt的标准API。
Qt/Embedded的API是基于面向对象技术的。
在应用程序开发上使用与Qt相同的工具包,只需在目标嵌入式平台上重新编译即可。
使用所熟悉的桌面开发工具,来编写和保存一个嵌入式应用程序的源代码树,在移植到多种嵌入式平台时,只需要重新编译代码。
Qt/Embedded提供自身的轻量级窗口系统,比使用Xlib和XWindow更加紧凑;
Qt/Embedded的设计原则是不依赖于Xserver或者Xlib,而是直接访问帧缓存,同其他解决方案如Qt/X11相比这样做最显著的效果是减少了内存消耗。
只需要一个Qt/Embedded动态链接库就足以替代Xserver、Xlib库和其他嵌入式解决方案的图形工具包
2.2.1安装Qt对系统的要求
安装qt的过程在不同的平台上会有所不同,主要在嵌入式linux平台上安装。
若需要提供对OpenSSL的支持,需要通过单独安装OpenSSLToolkit,来获得SecureSocketsLayer(SSL)。
对于不同的平台上,会有不同的要求。
如果要在qt上对QtWebKit模块的支持,必须使用uClibc0.9.29或者更高的版本,以对pthread的支持。
在内存方面的要求主要取决于体系架构以及在编译过程中使能的QT选项。
2.2.2Qt开发环境及工具
Qt/Embedded的应用程序也可以使用标准工具在用户熟悉的环境下的工具开发,如Window平台下的VisualC++和BorlandC++Builder,Unix平台下的KDevelop等。
在Unix平台下编译Qt/Embedded应用程序,可以在独立的控制台模式,也可以用X11应用程序虚拟的帧缓存。
通过指定目标设备的长、宽和色深,虚拟帧缓存可以点对点的模拟物理设备,免除了调试过程中反复擦写闪存,加快了编译、链接、运行的环节。
Qt/Embedded提供许多支持嵌入式开发的工具,其中两个非常重要的Qt工具qmake和QtDesigner。
Qmake可以为Qt/Embedded链接库和应用程序生成makefile文件。
Qmake可以从项目文件(.pro)为多种平台生成makefile文件,通过不同设置可以使应用程序方便的在多种平台间移植。
QtDesigner可以使用可视化的方式设计对话框、窗口的,替代了设计代码手工编写。
在QtDesigner中还可以使用布局管理器来平滑的设置窗口部件的布局,使用代码编写器编写代码,并且整合了qmake。
2.2.3Qt-Embedded-Linux安装
(1)下载源码包,解压;
qtnews:
qtdownloads:
qtQuarterly:
qtbugs:
qtSupportedPlatforms:
qtVersionChanges:
qtbooks:
(2)建立支持库
通过./configure来设置,主要配置可以通过--help来获得帮助;
之后用make命令,然后用makeinstall命令。
将库安装到指定的路径下面。
其中的设置包括指定安装的路径;
未配置的话,默认的路径是/usr/local/Trolltech/QtEmbedded-4.5.0;
(3)设置环境变量
为了能够使用QtforEmbeddedLinux,必须导出的PATH变量有qmake,moc以及其他QtforEmbeddedLinux的工具,以及LD_LIBRARY_PAT。
执行:
PATH=/usr/local/Trolltech/QtEmbedded-4.5.0/bin:
$PATH
exportPATH
(4)建立虚拟的frambuffer。
建立虚拟的frambuffer,需要安装X11Platforms。
2.2.4嵌入式Linux中Qt环境变量
QT环境变量如下:
POINTERCAL_FILE:
指定文件包含的数据,用来校准触摸笔设备。
同时可以参考QWSCalibratedMouseHandlerandQtforEmbeddedLinuxPointerHandling.
QT_ONSCREEN_PAINT:
如果定义了的话,可以用来将控件显示在屏幕上。
如果没有其他控件在同一个区域的话,该设备响应的区域将不会随着屏幕设备驱动的改变而改变。
设置这个环境变量相当于在控件中应用程序中设置Qt:
:
WA_PaintOnScreen。
QWS_SW_CURSOR:
如果定义了的话,软件鼠标的光标将一直是可用的。
(即使使用硬件加速驱动器来支持硬件光标)
QWS_DISPLAY:
指定显示形式和framebuffer.例如:
exportQWS_DISPLAY=<
driver>
[:
<
driverspecificoptions>
]...[:
displaynum>
]
QWS_SIZE:
指定嵌入式linuxqt窗口在屏幕上的大小。
exportQWS_SIZE=<
width>
x<
height>
QWS_MOUSE_PROTO:
xportQWS_MOUSE_PROTO=<
],<
参数可以是MouseMan,IntelliMouse,Microsoft,VR41xx,LinuxTP,Yopy.Tslibandkeys。
/dev/mouse指的是鼠标设备,/dev/tsfortouchpanels。
QWS_KEYBOARD为输入设备指定输入设备和驱动。
比如:
exportQWS_KEYBOARD=<
]。
参数可以是SL5000,Yopy,VR41xx,TTY,USBandkeys,指定的是一个标准设备。
2.2.5Qt/X11安装
QT/X11安装步骤如下:
#cd/usr/local
#tarxvfzqt-x11-free-3.3.4.tar.gz
#mvqt-x11-free-3.3.4qtx
#cdqtx
#exportQTDIR=$PWD//设置环境变量,在编译的时候要用到
#exportPATH=$QTDIR/bin:
#exportLD_LIBRARY_PATH=$QTDIR/lib
#./configure-depths4,8,16-no-ipv6-no-cups-no-pch–qvfb-depths4,8,16,32//配置,可以通过./configure-help来获得帮助信息
#make//编译
#makeinstall
2.2.6Qt/Embedded安装
编译并安装Qt/Embedded主要是为了生成基于ARM内核的Qt/E库文件,将这些库文件移植到ARM平台中就可以运行通过QT开发出来的GUI程序了,下面列出其安装步骤:
#tarxvzfqt-embedded-free-3.3.5.tar.gz
#mvqt-embedded-free-3.3.5qte
#cdqte
#exportQTDIR=$PWD//设置环境变量
#exportLD_LIBRARY_PATH=$QTDIR/lib:
$LD_LIBRARY_PATH
接着拷贝jpeg库头文件到Qt/E的include中,因为在编译的时候要用到。
#cp/usr/include/jpeglib.h$QTDIR/include/
#cp/usr/include/jconfig.h$QTDIR/include/
#cp/usr/include/jerror.h$QTDIR/include/
#cp/usr/include/jmorecfg.h$QTDIR/include/
#cp/usr/local/qtx/bin/uic$QTDIR/bin/
#./configure-shared-embeddedarm-qt-gif-no-exceptions-thread-no-nis-no-cups-no-stl-qt-imgfmt-mng-qt-imgfmt-png-qt-imgfmt-jpeg-qt-sql-sqlite-qvfb-depths4,8,16,32
#make//编译,最终生成基于ARM平台的Qt/E库文件:
libqte-mt.so、libqte-mt.so.3、libqte-mt.so.3.3、libqte-mt.so.3.3.5
到此,整个Qt/Embedded的开发环境全部建立起来了
2.3Qt在嵌入式Linux的应用
QT在嵌入式Linux中应用需要完成这几个方面:
字体库移植,设置环境变量以及Framebuffer的支持。
字体库的支持:
是在qt的/lib/fonts目录下。
由于程序运行的时候是到这个文件夹下面来调用,因此需要将字体库复制到这个目录下。
环境变量的设置:
通常情况下,与默认的环境变量不同,因此需要设置的有QWS_MOUSE_PROTO,QWS_KEYBOARD以及QWS_DISPLAY,用来指定鼠标、键盘以及显示设备管理。
在./configure的时候需要加入的选项是-qt-kbd-<
keyboarddriver>
and-qt-mouse-<
mousedriver>
,这样才能使能这些设备驱动。
但是还需要指定一个具体的设备,因此需要通过设置环境变量来完成。
framebuffer的支持:
没有特殊需求的情况下,要求在目标设备上使能fram
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 S3C QT 移植 编程 实现
![提示](https://static.bingdoc.com/images/bang_tan.gif)