QTOPIA的移植报告嵌入式课程设计报告.docx

上传人:b****2 文档编号:2843065 上传时间:2023-05-04 格式:DOCX 页数:13 大小:409.39KB
下载 相关 举报
QTOPIA的移植报告嵌入式课程设计报告.docx_第1页
第1页 / 共13页
QTOPIA的移植报告嵌入式课程设计报告.docx_第2页
第2页 / 共13页
QTOPIA的移植报告嵌入式课程设计报告.docx_第3页
第3页 / 共13页
QTOPIA的移植报告嵌入式课程设计报告.docx_第4页
第4页 / 共13页
QTOPIA的移植报告嵌入式课程设计报告.docx_第5页
第5页 / 共13页
QTOPIA的移植报告嵌入式课程设计报告.docx_第6页
第6页 / 共13页
QTOPIA的移植报告嵌入式课程设计报告.docx_第7页
第7页 / 共13页
QTOPIA的移植报告嵌入式课程设计报告.docx_第8页
第8页 / 共13页
QTOPIA的移植报告嵌入式课程设计报告.docx_第9页
第9页 / 共13页
QTOPIA的移植报告嵌入式课程设计报告.docx_第10页
第10页 / 共13页
QTOPIA的移植报告嵌入式课程设计报告.docx_第11页
第11页 / 共13页
QTOPIA的移植报告嵌入式课程设计报告.docx_第12页
第12页 / 共13页
QTOPIA的移植报告嵌入式课程设计报告.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

QTOPIA的移植报告嵌入式课程设计报告.docx

《QTOPIA的移植报告嵌入式课程设计报告.docx》由会员分享,可在线阅读,更多相关《QTOPIA的移植报告嵌入式课程设计报告.docx(13页珍藏版)》请在冰点文库上搜索。

QTOPIA的移植报告嵌入式课程设计报告.docx

QTOPIA的移植报告嵌入式课程设计报告

课程设计报告

课程名称嵌入式系统

课题名称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和XWindows窗口系统保持兼容,提供了相对完善的图形功能。

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-zxvftslib-1.4.tar.gz

第二步:

进入解压过的目录

cdtslib-1.4

第三步:

执行tslib-1.4目录下的autogen.sh

./autogen.sh

这一步需要安装一些工具:

sudoapt-getinstallautomake

第四步:

执行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是你执行makeinstall的时候编译后生成的可执行文件和库文件以及配置文所安装的目录;

configure文件下还有好多选项;你可以执行./configure--help来进行选择其他项,不过在这里这些选项就够了。

第五步:

执行make

第六步:

执行makeinstall

第七步:

把指定安装目录下的tslib的文件都copy到你所挂载的根文件下

sudocp-rf/home/linux/tslib/*/rootfs/tslib

第八步:

修改/rootfs/tslib下的etc目录中ts.cong文件

vits.conf将第二行的#module_rawinput修改成module_rawinput注意一定要顶格写否则程序执行时会发生读取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。

(4)拷贝QT所需文件,并配置环境

(5)编译完成后,在$QTDIR/lib生成ibqte.so*,所有的应用程序在$QPEDIR/bin

(6)建立qpe文件夹,将QT所需文件拷贝到qpe文件夹底下。

(7).覆盖脚本/qpe/qpe.sh(如用USB鼠标覆盖/qpe/qpe_moush.sh),覆盖脚本/etc/inittab。

(8)用修改好的qpe文件夹替换文件系统中的qpe文件夹,制作文件系统,烧写完成后重启。

因为字体文件比较大,请删除/qpe/lib/fonts底下的没用的字体。

注意保留*.qpf文件和fontdir文件。

3、启动Qtopia

(1)目标板开机

(2)运行脚本qtopia.sh

./qtopia.sh

(3)运行qpe

/Qtopia/bin/qpe

四.程序调试

在程序过程中,Qt/Embedded只支持鼠标和键盘的操作,但在大部分嵌入式系统中利用触摸屏,所以用户必须对触摸屏的相关操作编译成共享库或静态库。

个人感觉这个过程最有难度。

 

五.总结与体会

在课程设计过程中,我们了解到课程设计不光光是埋头做设计,也是同学之间互相学习和互相交流经验和知识的机会。

也是我们大家向老师提出疑问和学以致用的机会,这让我们不会成为只知道理论而不会将理论化为实践中去的书呆子。

我觉得课程设计就是一个复习课堂上学到知识的机会,也是一个加强学生动手能力设计的机会。

更是一个让学习得到升华的过程。

六.源程序清单

Qt界面程序:

//textfinder.h

#ifndefTEXTFINDER_H

#defineTEXTFINDER_H

#include

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

#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

#include

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.综合成绩按优、良、中、及格和不及格五级评定。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2