搜档网
当前位置:搜档网 › 嵌入式下Qt的开发

嵌入式下Qt的开发

嵌入式下Qt的开发
嵌入式下Qt的开发

题目:嵌入式系统下的Qt开发

学生姓名:

专业:计算机科学与技术

班级:

指导教师:

2012年12 月 7 日

摘要 (2)

Linux和Qt简介 (3)

Linux主要特性 (3)

Qt开发工具简介 (4)

Qt主要特性 (4)

Qt编程机制 (4)

Qt/Embedded开发环境的建立 (6)

应用程序的开发一个小的Qt实例-简单计算 (8)

界面设计 (9)

具体界面设计效果如下 (9)

辅助数据成员及函数 (10)

calculat.cpp中辅助函数的实现 (11)

main.cpp文件 (12)

结束语 (13)

附录 (13)

摘要

越来越多的嵌入式终端需要一个图形化的人机接口界面(GUI),良好的人机交互界面是嵌入式系统设计的一个关键技术,尤其是在嵌入式手持设备中,对嵌入式终端的实用性、美观性和视听娱乐性提出了更高的要求。而基于嵌入式Qt编程界面美观、功能丰富、交互性好,具有一定的实用意义和价值。本文通过实例,介绍了Linux的优点和Qt开发环境的搭建,分析了Qt在软件开发中的编程机制,并简单介绍Qt/Embedded图形系统的移植。

关键词:Qt ,Linux,嵌入式,图形界面,计算器

Linux和Qt简介

Linux主要特性

Linux是个和Unix相似、以Unix核心为基础、完全内存保护、多任务多进程的操作系统。支持广发的计算机硬件,包括X86,Alpha,Sparc,MIPS,PPC,ARM,NEC等现有的大部分芯片。程式源码全部公开,任何人可以修改并在GNU通用公共许可证(GNU General Public License)下发行(陈英和梁建武,2008),这样,开发人员可以对操作系统进行定制,再也不必担心像MS windows操作系统中"后门"的威胁。同时由于有GPL的控制,大家开发的东西大都相互兼容,不会走向分裂之路。Linux用户遇到问题时可以通过Internet向网上成千上万的Linux开发者请教,这使最困难的问题也有办法解决。Linux带有Unix用户熟悉的完善的开发工具,几乎所有的Unix系统的应用软件都已移植到了Linux上。Linux还提供了强大的网络功能,有多种可选择窗口管理器(X windows)。其强大的语言编译器gcc、g++等也可以很容易得到。不但成熟完善、而且使用方便,为嵌入操作系统提供了一个极有吸引力的选择。

Linux已经被移植到多种硬件平台,这对受开销、时间限制的研究与开发项目是很有吸引力的。原型可以在标准平台上开发然后移植到具体的硬件上,加快了软件与硬件的开发过程。

Linux还有以下优点:

(1)Linux可以随意地配置,不需要任何的许可证或商家的合作关系。

(2)它是免费的,源代码可以得到。这是最吸引人的。毫无疑问,这会节省大量的开发费用。

(3)它本身内置网络支持。

(4)Linux的高度模块化使添加部件非常容易。

(5)Linux在台式机上的成功,使大家看到了linux在嵌入式系统中的辉煌前景。

嵌入式产品中选择什么样的操作系统极为重要,嵌入式Linux由于其开源特性、实时性好、可移植、内置网络支持等优点在嵌入式领域成为主力军。如今,业界已经达成共识:即嵌入式linux是大势所趋,其巨大的市场潜力与酝酿的无限商机必然会吸引众多的厂商进入这一领域。

Qt开发工具简介

Qt主要特性

QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象、易于扩展、真正的组件编程等特点,更为引人注目的是目前Linux 上最为流行的 KDE 桌面环境就是建立在 QT 库的基础之上。QT 支持下列平台:MS/WINDOWS-95、98、NT 和 2000;UNIX/X11-Linux、Sun Solaris、HP-UX、Digital Unix、IBM AIX、SGI IRIX;EMBEDDED- 支持 framebuffer 的Linux 平台。伴随着 KDE 的快速发展和普及,QT 很可能成为 Linux 窗口平台上进行软件开发时的 GUI 首选。

Qt编程机制

信号和槽机制是 QT 的核心机制,要精通 QT 编程就必须对信号和槽有所了解。信号和槽是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性,也是 QT 区别于其它工具包的重要地方。信号和槽是 QT 自行定义的一种通信机制,它独立于标准的 C/C++ 语言,因此要正确的处理信号和槽,必须借助一个称为 moc(Meta Object Compiler)的 QT 工具,该工具是一个 C++ 预处理程序,它为高层次的事件处理自动生成所需要的附加代码。

在我们所熟知的很多 GUI 工具包中,窗口小部件 (widget) 都有一个回调函数用于响应它们能触发的每个动作,这个回调函数通常是一个指向某个函数的指针。但是,在 QT 中信号和槽取代了这些凌乱的函数指针,使得我们编写这些通信程序更为简洁明了。信号和槽能携带任意数量和任意类型的参数,他们是类型完全安全的,不会像回调函数那样产生 core dumps。

所有从 QObject 或其子类 ( 例如 Qwidget) 派生的类都能够包含信号和槽。当对象改变其状态时,信号就由该对象发射 (emit) 出去,这就是对象所要做的全部事情,它不知道另一端是谁在接收这个信号。这就是真正的信息封装,它确保对象被当作一个真正的软件组件来使用。槽用于接收信号,但它们是普通的对象成员函数。一个槽并不知道是否有任何信号与自己相连接。而且,对象并不了解具体的通信机制。

你可以将很多信号与单个的槽进行连接,也可以将单个的信号与很多的槽进行连接,甚至于将一个信号与另外一个信号相连接也是可能的,这时无论第一个信号什么时候发射系统都将立刻发射第二个信号。总之,信号与槽构造了

一个强大的部件编程机制。

信号和槽的连接原理图

信号:当某个信号对其客户或所有者发生的内部状态发生改变,信号被一个

对象发射。只有定义过这个信号的类及其派生类能够发射这个信号。当一个信号被发射时,与其相关联的槽将被立刻执行,就象一个正常的函数调用一样。信号 - 槽机制完全独立于任何 GUI 事件循环。只有当所有的槽返回以后发射函数(emit)才返回。如果存在多个槽与某个信号相关联,那么,当这个信号被发射时,这些槽将会一个接一个地执行,但是它们执行的顺序将会是随机的、不确定的,我们不能人为地指定哪个先执行、哪个后执行。

信号的声明是在头文件中进行的,QT 的 signals 关键字指出进入了信号声明区,随后即可声明自己的信号。例如,下面定义了三个信号:

signals:

void mySignal();

void mySignal(int x);

void mySignalParam(int x,int y);

在上面的定义中,signals 是 QT 的关键字,而非 C/C++ 的。接下来的一行void mySignal() 定义了信号 mySignal,这个信号没有携带参数;接下来的一行 void mySignal(int x) 定义了重名信号 mySignal,但是它携带一个整形参数,这有点类似于 C++ 中的虚函数。从形式上讲信号的声明与普通的 C++ 函数是一样的,但是信号却没有函数体定义,另外,信号的返回类型都是void,不要指望能从信号返回什么有用信息。

信号由 moc 自动产生,它们不应该在 .cpp 文件中实现。

槽:槽是普通的 C++ 成员函数,可以被正常调用,它们唯一的特殊性就是很

多信号可以与其相关联。当与其关联的信号被发射时,这个槽就会被调用。槽可以有参数,但槽的参数不能有缺省值。

既然槽是普通的成员函数,因此与其它的函数一样,它们也有存取权限。槽的存取权限决定了谁能够与其相关联。同普通的 C++ 成员函数一样,槽函数也分为三种类型,即 public slots、private slots 和 protected slots。

?public slots:在这个区内声明的槽意味着任何对象都可将信号与之相连接。这对于组件编程非常有用,你可以创建彼此互不了解的对象,将

它们的信号与槽进行连接以便信息能够正确的传递。

?protected slots:在这个区内声明的槽意味着当前类及其子类可以将信号与之相连接。这适用于那些槽,它们是类实现的一部分,但是其界面

接口却面向外部。

?private slots:在这个区内声明的槽意味着只有类自己可以将信号与之相连接。这适用于联系非常紧密的类。

槽也能够声明为虚函数,这也是非常有用的。

槽的声明也是在头文件中进行的。例如,下面声明了三个槽:

public slots:

void mySlot();

void mySlot(int x);

void mySignalParam(int x,int y);

Qt/Embedded开发环境的建立

Qt是一个全面的C++应用程序开发框架。它包含一个类库,和用于跨平台开发及国际化的工具。由挪威Trolltech公司推出,主要通过汇集C++类的形式来实现提供开发应用程序用户界面部分的需求。Qt/Embedded是一个为嵌入式设备上的图形用户接口和应用程序开发而定做的C++工具开发包。是一组用于访问嵌入式设备的QtC++API。它可以运行在多种不同的处理器上部署的嵌入式Linux操作系统上。Qtopia是Trolltech公司为采用Linux操作系统的消费电

子设备而开发的综合应用平台。Qtopia包括完整的应用层、灵活的用户界面、窗口操作系统、应用程序启动程序以及开发框架。

准备以下源码包和文件

○1tmake211111tar1gz(用于生成Makefile文件辅助工具)

②qt2embedded2213171tar1gz(Qtopia建立的基础)

③qt2x112213121tar1gz(用于生成moc和uic两个工具)

④qtopia2free2117101tar1bz2(Qtopia源代码包)

⑤cross2313121tar1bz2(交叉编译器)

开发环境建立过程

新建一个目录:/usr/local/arm/QT,并将上面的5个源码包放到/usr/local arm/QT? 目录下

① tmake的安装

#tarzxvftmake-1.11tar.gz

#cdtmake-1.11

建立shell文件,在文件中添加如下内容,操作为打开端。输入:

#vienv.sh

exportTMAKED IR=$PWD

exportTMA KEPA TH=$TMAKED IR/lib/qws/linux-arm-g++

exportPATH=$TMAKEDIR/bin:$PATH

保存退出。并添加环境变量如下

#sourceenv.sh

②QtX11的安装

#tar-vxzfqt-x11-2.3.2.tar.gz

#cdqt-2.3.2

#vienv.sh(操作同上上制env1sh文件方法)

exportQTDIR=$PWDexportPATH=$QTDIR/bin:$PATH

exportLDLIBRARYPATH=$QTDIR/lib:$LDLIBRARYPATH

保存退出。并添加环境变量

#sourceenv.sh

生成Makefile后,就可以进行安装

#make

安装成功后,将会有以下打印信息:

Enjoy!-theTrolltechteam

编译生成qvfb、qembed工具

#make-Ctools/qvfb

#make-Ctools/qembed

③Qt/Embedded安装

#cdusr/local/arm

#mkdir3.3.2

#tarzxvfcross-3.3.2.tar.bz2

#cdusr/local/arm/QT

#tarzxvfqt-embedded-2.3.7.tar.gz

进入软件包中并设置一些环境变量:

#cdqt-2.3.7

#exportPATH=/usr/local/arm/3.3.2.bin:$PATH

#exportQTDIR=$PWD

#exportQTEDIR=$QTDIR

在qconfiglocal.h文件中添加一行:

#defineQT_QWS_IPAQ_RAW

添加完之后将该文件拷贝到src/tools/目录

#cp/qconfig2local1hsrc/tools

将qt-2.3.2源码编译后的uic工具拷贝到bin目录

#cp qt-2.3.2/bin/uic1/bin

交叉编译,设置编译选项:

#./configure-xplatformlinux-arm-g++-shared-qconfiglocal-qvfb-depths4,8,16,32-gif-system-jpeg

生成Makefile之后,就可以进行编译了:

#make

④qtopia的安装

#tarzxvfqtopia-free-1.7.0.tar.gz

设置环境变量:

#exportQTDIR=$QTEDIR#exportQPEDIR=$PW #exportPATH=$QPEDIR bin/:$PATH

接下来就可以配置了:

#cdsrc/#1/configure-platformlinux-arm-g++

生成Makefile之后,就可以进行编译了:

#make

以上过程编译通过后,Qt/Embedded开发环境已经建立,并且Qt/Embedded 和Qtopia面向目标机的交叉编译环境也构建完成,设置环境变量set-env,就可以使用Qt来进行应用程序开发了

应用程序的开发一个小的Qt实例-简单计算

界面设计

界面设计我们是使用Qt creator进行设计的,首先创建一QMainWindow.ui,这个界面为QWidget。然后在左侧的Widget Box找相应的控件添加到QMainWindow里。首先提出一个lineEdit控件作为算式显示窗口和结果显示窗口,在提取出30个QpushButton为0到9按键和加减乘除按键,小数点按键、等于按键。然后再把各个pushButton名字改成相应的符号,并且改对应pushbutton的属性,保存后取Qt creator编译QMainWindow.ui,运行程序就可以显示相应界面。

具体界面设计效果如下

为符合人们的使用习惯,将lineEdit空间的属性更改,使得输入的数字和符号出现在空间的右边起。如图:

对于button exit退出程序,这样简单的响应,直接在设计器中通过添加信号和槽来完成,如图:

辅助数据成员及函数

为了区分每一次计算和保存操作数、操作符,和辅助函数(如:输出函数),在calculator.h的类中设定数据成员以及成员函数:

private slots:

void on_but_0_clicked();

void on_but_1_clicked();

void on_but_2_clicked();

void on_but_3_clicked();

void on_but_4_clicked();

void on_but_5_clicked();

void on_but_6_clicked();

void on_but_7_clicked();

void on_but_8_clicked();

void on_but_9_clicked();

void on_butadd_clicked();

void on_butsub_clicked();

void on_butmul_clicked();

void on_butdiv_clicked();

void on_buteq_clicked();

void on_bbut_clicked();

void on_abut_clicked();

void on_butp_clicked();

void on_butcls_clicked();

private:

Ui::calculatorClass ui;

bool finishedOne;//是否完成了一趟计算

bool haveDian;//是否已经输入了点

bool haveOpera;//是否已经输入过操作符

bool newInput;//清屏后的标志

double num1;//操作数

double num2;//操作数

char opera;//运算符

QString str;//用来进行double和string之间转换

void clear_lineEdit();//每输入一个操作数或操作符的小清屏

void input(char ch);//向lineEdit进行输入

void inputCheck();//输入前的检查

calculat.cpp中辅助函数的实现

void calculator::input(char ch) //输入函数

{

if (newInput) //如果是新开始的输入,则先清空

{

ui.lineEdit->clear();

}

ui.lineEdit->setText(ui.lineEdit->text()+ch); //lineEdit内容等于原有的加上输入的字符

newInput = false;

}

void calculator::inputCheck()//输入前判断是否是新的一次计算,并更新数据{

if (finishedOne)

{//标志新的一轮计算,和小数点,操作符,新输入的标志量重置

finishedOne = false;

haveDian = false;

haveOpera = false;

newInput = true;

//并清空lineEdit

clear_lineEdit();

}

}

//小清零,为的是在输入完操作数后,要输入操作符的时候,要清屏void calculator::clear_lineEdit()

{

ui.lineEdit->clear();

haveDian = false;

newInput = true;

ui.butDian->setEnabled(true);//小数点按钮可用

}

main.cpp文件

#include "calculator.h"

#include

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

calculator w;

w.show();

return a.exec();

}

结束语

目前,嵌入式系统是近年来发展很快的计算机方面的学科方向,并迅速渗透到控制、自动化、仪器仪表等学科。随着嵌入式处理器运算能力的不断提高以及对外设支持的不断丰富,嵌入式Linux系统的应用逐渐增多。嵌入式终端需要一个图形化的人机接口界面,良好的人机交互界面是嵌入式系统设计的一个关键技术,尤其是在嵌入式手持设备中,对嵌入式终端的实用性、美观性、视听娱乐性以及人机交互方面提出了更高的要求。而Qt/Embedded延续了Qt在桌面系统的所有功能,丰富API接口和给予组件的编程模型使得嵌入式Linux系统中的应用程序开发更加方便。由于Qt/Embedded本身面向高端的手持式设备和移动设备,将成为未来嵌入式系统的主流。这些应用的关键在于人机交换技术的体现,所以一个十分友好的图形用户界面(GUI)是必不可少的。本文简单介绍了Qt/Embedded开发环境的建立过程和基于Qt开发应用程序的方法。希望对他人具有一定的实用意义和价值

附录

参考文献:[1]赵宏王小牛任学惠 .嵌入式应用系统教程北京:人民邮电出版社 2009

[2]闫锋欣曾泉人张志强译C++ GUI QT4(第二版)北京:电子

工业出版社

[3]蔡志明精通Qt4编程北京:电子工业出版社

[4]王浩南刘益成基于嵌入式Linux下的Qt开发 2010

[5] 韦东山嵌入式Linux应用开发完全手册北京:人民邮电出版

社2008

[6]Linux标准学习教程(第2版)北京:人民邮电出版社2009

[7]陈英,梁建武.Linux基础及应用教程.水利水电出版社2008

[9]刘峥嵘.嵌入式Linux应用开发详解.机械工业出版社,2004

[10]唐新华 Qt 的信号与槽机制介绍

https://www.sodocs.net/doc/be2943458.html,/developerworks/cn/linux/guitoolkit/qt/si

gnal-slot/

Qt嵌入式开发环境的建立

Qt/Embedded嵌入式开发环境的建立 一.开发环境 (1)Red Hat Linux 9 (2)Linux Kernel 2.6.14 (3)qt-x11-2.3.2.tar.gz (Qt开发包) (4)qt-embedded-2.3.10-free.tar.gz (Qt/Embedded开发包) (5)tmake-1.13.tar.gz (自动创建Makefile文件的工具) (6)gcc-2.95 (C编译器,RH9自带) 二.解压安装包并设置环境变量 (如下均假设在/root/qte目录下进行) (1)安装tmake: #cd ~/qte #tar zxvf tmake-1.13.tar.gz #export TMAKEDIR=$PWD/tmake-1.13 (2)安装qt: #cd ~/qte #tar zxvf qt-x11-2.3.2.tar.gz #export QT2DIR=$PWD/qt-2.3.2 (3)安装qte: #cd ~/qte #tar zxvf qt-embedded-2.3.10-free.tar.gz #export QTEDIR=$PWD/qt-2.3.10 三.编译Qt和Qt/Embedded (1)编译Qt: #cd $QT2DIR //设置环境变量 #export TMAKEPA TH=$TMAKEDIR/lib/linux-g++ #export QTDIR=$QT2DIR #export PATH=$QTDIR/bin:$PA TH //将Qt库加入到系统共享库中 #ldconfig $QTDIR/lib //开始编译 #make clean //configure命令对Qt进行编译设置,其包含很多选项,可通过./configure –help //来获取详细的帮助信息。 #./configure -no-xft –system-jpeg #make //将uic工具复制到Qt/Embedded目录中,可覆盖原文件 #cp bin/uic $QTEDIR/bin/ (2)编译qvfb: //qvfb工具用来生成Virtual Frame Buffer,它可以模拟在嵌入式开发板上的显示 //状况,如果在qvfb中模拟运行没有问题的话,就可以直接通过交叉编译在

嵌入式Linux开发环境搭建

第一章Ubuntu 8.10的安装和网络配置 1.安装虚拟机软件Vmware 6.0.2 虚拟机安装版本Vmware 6.0.2的版本 在winxp操作系统下用鼠标双击VMware-workstation-6.0.2-59824图标,开始安装虚拟机Vmware,如下图所示: 双击VMware-workstation-6.0.2-59824图标,出现vmware的安装界面,所有的选项都采用默认值,用鼠标点【下一步】,然后出现安装进度条,系统开始安装vmware,等待安装完成后,出现如下安装完成界面: 用鼠标点【Finish】,虚拟机安装完成。系统提示重新启动计算机,选择【是】重新启动计算机,电脑重新启动后,虚拟机安装完成。 2.新建虚拟机 打开Vmware虚拟机软件,选【File】->【New】->【Virtual Machine】,弹出新建虚拟机向导对话框,注意以下几个重要的选项,其他都采用默认选项即可。 选择操作系统和版本,如下图所示:

选择虚拟机名称和存放的路径,如下图所示: 设置虚拟机硬盘大小为20G ,如下图所示:

点击【完成】按钮,这样我们就新建了一个虚拟机,下面我们设置一下虚拟机的内存,步骤如下: 点击虚拟机Vmware的【VM】->【settings】时菜单,弹出虚拟机设置对话框,设置虚拟机使用的内存为512M或1024M,如下图所示:

点击【OK】按钮,这样我们就新建了一个虚拟机,该虚拟机的硬盘为20G, 内存为512M .接着我们就可以在该虚拟机上安装ubuntu操作系统了。 注: 键盘和鼠标控制权在虚拟机和Windows系统之间的切换是通过组合键【Ctrl】+【Alt】来实现的。 3 安装Linux操作系统ubuntu Ubuntu安装版本ubuntu 8.10 点击vmware软件工具栏上的【绿色箭头】启动虚拟机,如下图所示:

实验三 搭建嵌入式系统开发环境

实验三搭建嵌入式系统开发环境 一、实验目的: 1.掌握嵌入式开发环境的配置; 2.掌握开发工具链的安装与配置; 3.掌握嵌入式系统内核和根文件系统的烧写的过程。 二、实验内容: 1)安装配置嵌入式开发环境; 2)安装与配置工具链; 3)内核和根文件系统的烧写 三、实验设备及工具: 硬件:UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G以上、内存大于256M。 软件:PC机操作系统Red Hat Enterprise Linux 4、MINICOM 、AMRLINUX开发环境。 四、实验步骤: 1.共享windows下内核文件至linux环境下,并将文件复制至个人开发目录中 2.进入目录,输入make menuconfig,对内核进行裁剪配置 3.编译内核之前输入make clean清理编译环境 4.输入make dep 编译相关依赖文件 5.输入make zImage 输出最终编译后的镜像文件 6.将镜像文件共享至windows环境下 7.在windows打开超级终端,进入vivi,将镜像文件烧录至实验箱开发板中 五、实验总结: 通过本次实验,熟悉了Linux 开发环境,学会了如何进行linux内核的烧写。在实验

过程中了解到Linux内核模块的组成结构,通过本次实验,初步了解嵌入式开发的基本过程。 实验四嵌入式驱动程序设计 一、实验目的: 1.学习在LINUX 下进行驱动设计的原理 2.掌握使用模块方式进行驱动开发调试的过程 二、实验内容: 在PC 机上编写简单的虚拟硬件驱动程序并进调试,实验驱动的各个接口函数的实现,分析并理解驱动与应用程序的交互过程。 三、实验设备及工具: 硬件:UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G以上、内存大于256M。 软件:PC机操作系统Red Hat Enterprise Linux 4、MINICOM 、AMRLINUX开发环境。 四、预备知识: 1.有 C 语言基础。 2.掌握在Linux 下常用编辑器的使用。 3.掌握Makefile 的编写和使用。 4.掌握Linux 下的程序编译与交叉编译过程。 5.有驱动开发的基本知识。 五、实验步骤: 1.进入/arm2410cl/exp/drivers/01_demo,使用vi 编辑器或其他编辑器阅读理解源代码 2.使用makefile编译驱动模块与测试程序,编译器采用armv4l-unknown-linux-gcc 3.将编译后的驱动模块demo.o和测试程序test_demo挂载到实验箱上 4.插入驱动模块demo.o 执行命令insmod demo.o 5.查看驱动是否插入成功,执行命令lsmod demo.o 6.运行测试程序,查看执行结果

嵌入式开发环境搭建步骤

嵌入式开发,通常都是在Linux环境下编译Uboot、Linux和android代码。编译uboot/Linux可以选择任何的Linux发行版,如redhat,suse,ubuntu,fedora,debian等,只要你配置好ARM交叉工具编译工具就可以了。 编译android,搭建环境最容易的就是ubuntu。google的官方网站上,也有搭建编译android的简单介绍,可以搜索下,网络上有相当多这方面的说明。 考虑到我们学习嵌入式的平台是Fast Models,以及自动的Realview EB模型硬件平台。而ARM官方推荐是在Redhat Enterprise(4,5,6)下安装Fast Models。所以,我们采用Redhat Enterprise 6作为开发环境。我们可以直接在电脑上安排RHEL6,也可以先安装vmware,然后在vmware中创建一个虚拟机,在虚拟机上安装RHEL6。在这里,小编是采用后者方式。 搭建Redhat Enterprise 6开发环境,建议做以下配置: 1)设置静态IP。在之前使用vmware的经历,发现如何网站采用dhcp方式,那么rhel6的IP地址有可能会发现改变。而我们需要网络IP最好是固定的,所以需要设置静态IP。RHEL6的静态IP的设置方法,可以搜索到。 2)开启ssh,samba服务 ARM嵌入式开发,基本上都是在命令(shell)方式下进行的,不需要图形界面。所以,在windows上运行vmware,vmware上虚拟机再运行rdel6的情况下,为了不增加windows系统的负荷,可以把vmware放在后台运行,使用ssh服务登陆到rdel6就可 以进行嵌入式开发了。 小编在开发嵌入式时,通常都是使用sourceinsight阅读、修改代码,然后在shell运 行命令进行编译。所以,开通samba服务,然后使用windows已安装的sourceinsight 工具,阅读放在rdel6上的Linux/uboot代码。 在Redhat发行版下,有关服务器的开启或关闭,可以在root用户下,使用setup命 令进入配置选项的“System Services”菜单下进行设置。 samba服务在菜单选项为:“smb”;ssh服务在菜单选项为:“sshd” 需要注意的是:windows下,要使用ssh服务/samba服务登陆vmware虚拟机上的rhel6,必须把rhel6上的防火墙关掉。setup命令--->Firewall Configuration--->去掉Enable。

嵌入式系统之基于QT的简单计算器

嵌入式系统课程设计报告 题目:基于QT的简单计算器 专业:计算机科学与技术 班级: 姓名: 学号: 指导老师: 日期:2012-12-26 第一章前言 设计背景 计算器(calculator;counter)一般是指“电子计算器”,计算器是能进行数学运算的手持机器,拥有集成电路芯片,其结构简单,比现代电脑结构简单得多,可以说是第一代的电子计算机(电脑)。计算器这一小小的程序机器实际上是从计算机中割裂出来的衍生品,虽然功能较单一,但因其操作模式的方便快捷和价格的低廉,携带方便等特点,已经被广泛应用于工程、学习、商业贸易等日常生活中,极大的方便了人们对于数字的整合运算,成为人们生活和办公中的必备品之一,深得使用者的青睐。 设计目的 本程序是基于linux下的嵌入式开发,所用软件为QT Creator,程序虽然简单,但是通过本程序的设计,可以进一步了解嵌入式系统开发工具以及熟悉linux环境下的常用命令,为以后进入嵌入式领域打下一定的基础。 通过该计算器程序软件的设计,培养独立思考、综合运用所学有关相应知识的能力,更好地巩固《C++程序语言设计》和《高级程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,体验理论与实践相结合的过程。

第二章功能需求分析 功能描述 本次设计的计算器在功能上大致与Windows系统自带的计算器程序相似,对于所设计的科学计算器,其功能大致为可以进行加(+)、减(-)、乘(*)、除(/)、简单算术计算。由于接触QT时间还不太久,所以目前只能简单地实现这些功能,相信随着以后逐步的了解,本程序将实现更多的功能。 第三章开发工具简介 QT简介 由于本次设计的小程序是用QT Creator所设计的,所以我觉得有必要先介绍下QT开发工具的背景。 Qt是一个1991年由奇趣科技开发的跨平台C++图形界面应用程序开发框架。它既可以开发GUI程式,也可用于开发非GUI程式,比如控制台工具和服务器。Qt是面向对象语言,易于扩展,并且允许组件编程。 QT所具有的优势是:优良的跨平台特性,Qt支持下列操作系统: Microsoft Windows 95/98,Microsoft Windows NT,Linux,Solaris,SunOS,HP-UX,Digital UNIX (OSF/1,Tru64),Irix,FreeBSD,BSD/OS,SCO,AIX,OS390,QNX 等等。 面向对象:Qt 的良好封装机制使得Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。Qt 提供了一种称为signals/slots 的安全类型来替代callback,这使得各个元件之间的协同工作变得十分简单。 丰富的API:Qt 包括多达250 个以上的C++ 类,还提供基于模板的collections,serialization,file,I/O device,directory management,date/time 类。甚至还包括正则表达式的处理功能。支持2D/3D 图形渲染,支持OpenGL大量的开发文档。 第四章详细设计过程 开发环境的搭建 本次所用系统环境为Ubuntu LTS,内核为Ubuntu搭建QT环境大致过程为: 1.安装g++,ubuntu默认是不带g++的,如果不安装的话,后面是无法进行桌面版的qt应用程序进行编译的,在终端中执行以下命令: sudo apt-get install g++ 2. Qt桌面版的安装 3.安装arm-linux-gcc (配置环境变量gedit /.bashrc 添加路径 export PATH=$PATH:/opt/FriendlyARM/toolschain/) 使配置文件立即生效:source /.bashrc或者注销logout 最好重启

基于QT和ARM的嵌入式点菜系统

基于QT和ARM的嵌入式点菜系统 摘要:餐饮企业的传统点菜方式既费时又增加开销,而且经常会出现丢单,漏单的情况的发生。最近流行的点菜宝等系统一方面采用Wince操作系统,增加额外开销,令一方面它们都是服务员手持,顾客面对的还是纸质菜单,虽然说是电子点菜,但是它为我们解决的无非是客人点完菜后服务员不用往厨房跑。从某种意义上说,这些不能称之为真正的电子点菜。在总结以往电子电子点菜的基础上,我们利用S3C2440芯片开发了基于Linux 操作系统和Arm9处理器的电子点菜系统。该系统利用QT进行图形界面设计,利用Sqlite 数据库进行数据存储,依赖TCP/IP网络进行数据传输。 关键词:嵌入式ARM 点菜系统Linux Qt 嵌入式点菜系统是利用计算机技术、网络通信技术、Sqlite数据库,QtGui图形界面设计等,根据当今餐饮企业的需求而设计的餐饮企业智能控制和管理的一种嵌入式系统。 一、嵌入式系统 目前,在嵌入式系统应用领域中,不少人对什么是嵌入式系统不甚了解。有些人搞了十多年的单片机应用,不知道单片机就是一个最典型的嵌入式系统;也有些人在解释什么是嵌入式系统时,不是从定义出发,而是列举了嵌入式系统的一些特点,往往不知所云。因此,有必要从现代计算的发展历史,了解嵌入式系统的由来,从学科建设的角度来探讨嵌入式系统较为准确的定义。 嵌入式系统诞生于微型机时代,嵌入式系统的嵌入性本质是将一个计算机嵌入到一个对象体系中去,这些是理解嵌入式系统的基本出发点。由于嵌入式计算机系统要嵌入到对象体系中,实现的是对象的智能化控制,因此,它有着与通用计算机系统完全不同的技术要求与技术发展方向。 通用计算机系统的技术要求是高速、海量的数值计算;技术发展方向是总线速度的无限提升,存储容量的无限扩大。而嵌入式计算机系统的技术要求则是对象的智能化控制能力;技术发展方向是与对象系统密切相关的嵌入性能、控制能力与控制的可靠性。

用QT Designer快速开发嵌入式系统gui概要

用QT Designer快速开发嵌入式系统 gui 用QT Designer快速开发嵌入式系统gui 类别:嵌入式系统 用QT Designer快速开发嵌入式系统guiRAD(快速应用程序开发)是一种高效的软件开发形式,可以让用户在极短的时间里创建一个图形化的用户界面。通常情况下,在一张空白的表单上,开发人员可以通过拖拉或点击的方式,在窗口的适当位置上添加一些输入框和按钮等窗口组件。这时,RAD工具 会自动编写和维护代码。而用户所要做的只是确定当点击按钮或选择选单选项时将要发生什么事件。在Linux下,一个非常流行的RAD工具就是Qt Designer。它是嵌入式公司Trolltech的Qt软件包的一个组成部分。如果用户使用的是KDE桌面,那么Qt已经自动安装上了,Qt Designer也很有可能已经被安装好。如果用户的系统没有安装,那么针对不同的版本,可以很方便地找到KDE Development Tools,并安装之。以Red Hat 9.0为例,用户可以从主 选单→系统设置→添加/删除应用程序中选择KDE软件开发,即可完成Qt Designer的安装(如图1所示)。图1 安装Qt Designer创建为了快速地向大家展示一下Qt Designer功能,先创建一个简单的摄氏温度和华氏温度的转换程序。本文里将设计一个简单的GUI,并且添加一些简单的代码来实现温度 的转换。因为是为了展示一下快速的开发过程,而不是一个严谨的软件项目的开发,所以这里不会进行任何的错误检查,也不进行输入检验(也就是检查用户的输入是否为合法的温度形式)、缓冲溢出检查等在日常软件开发中一定要做的步骤。如果用户使用的是KDE,那么选单上应该已经有Qt Designer的图标。不同的发行版,图标的位置会有所不同。如果用户的发行版没有Qt Designer图标,那么可以在命令行模式下输入“designer”命令来启动该开发工具。在Red Hat 9.0中,可以通过点击主选单→编程→更多编程工具→Qt Designer来启动(如图2)。图2 启动Qt DesignerQt Designer首先呈现给用户的是一个New/Open对话框(如图3所示)。因为这里要创建一个C++程序,所以在此选择C++ Project,点击“OK”继续。图3 New/Open对话框选 择一个想要保存文件的位置,并且给出一个文件名,在此使用的文件名是cfconv。注意这里文件名的扩展名一定要是.pro。点击“Save”后,返回到了Project Settings对话框(见图4)。图4 保存文件图5 Qt Designer主窗口现在就已经在Qt Designer主窗口上了(见图5),确保Property Editor 可见。如果它是不可见的,用户可以通过Windows→Views→Property Editor/Signal Handlers选单选项来使其可见(缺省情况下是可见的)。图6 创建一个新的表单图7 更改表单的属性通过选择File→New选单,然后选择Dialog来创建一个新的对话框。这时Qt Designer会创建一个新的空白表单(见图6),用户可以在其上放置输入框和按钮。打开Property Editor(见图7),把name的值改为“cfconvMainForm”,把caption的值改为

搭建嵌入式QT开发环境

搭建嵌入式QT开发环境 网上看了好多关于Qt开发平台搭建的帖子,但发现上面的帖子都比较旧,是针对Qt旧版本而写的。本人喜欢用较新版的东西,相信新版的东西肯定比旧版的东西好用,果不其然Qt的新版本真的很好用,而且搭建起来更加容易。刚开始接触的时候,Qt的众多版本搞的自己头昏脑涨,什么Qt/x11,Qt /win, Qt/embedded ,Qtopia core,Qtopia等等,真的是丈二和尚摸不着头脑,幸好有网络,上网总能找到自己想要的东西,而且又不需要给予别人回报,当然自己也有些责任共享自己的资料,看来共产主义在互联网已经开始萌芽了,哈哈。先看看Qt的各个版本简介: 1.什么是QT Qt是一个完整的C++应用程序开发框架。它包含一个类库,和用于跨平台开发及国际化的工具。Qt API在所有支持的平台上都是相同的,Qt工具在这些平台上的使用方式也一致,因而Qt应用的开发和部署与平台无关。 2.什么是Qtopia Qtopia 是一个面向嵌入式Linux的全方位应用程序开发平台,同时也是用于基于Linux的PDA(个人数字助理),智能电话(Smartphone)以及其他移动设备的用户界面。简单地说,Qtopia实质上是一组关于PDA和智能电话的应用程序结合,如果需要开发这类产品可以在这组程序的基础上迅速构建出 PDA或者智能电话。Qtopia实质上依赖Qt/Embedded。 3.什么是Qt/Embedded Qt/Embedded 是一个完整的自包含GUI和基于Linux的嵌入式平台开发工具。这个开发工具的名字好像最容易混淆,当然Qt/Embedded是最熟悉的名字,好像Qtopia Core说的也是它。最近,奇趣公司又该名字了,它的新名字叫做 qt-embedded-linux-xxxx,看来这个Qt/Embedded的马甲还很多哈。 下面就是搭建Qt开发平台了,我的平台是fedora core 7,需要的Qt版本有两个: qt-x11-opensource-src-4.3.2.tar.gz qt-embedded-linux-opensource-src-4.4.0-rc1.tar.bz2 qt-x11版本可以产生Qt开发工具,如designer等等,最重要的是可以得到qvfb,嵌入式的开发有了qvfb,就可以不需要实际的开发板,也可以开发Qt应程序。qt-embedded版本就是专门用于嵌入式方面的版本。下面是安装步骤: 1. 解压这两个qt包 a) tar –jxvf qt-x11-opensource-src-4.3.2.tar.gz

ubuntu10.10下嵌入式QT开发环境搭建手记

【前言:由于我也是第一次搭建这个环境,整个所用时间不止一周,以及以前用java觉得还要配置环境变量,好麻烦,但那不过是几分钟的事,后来手动配置php,最快半天,一般我都要用一天的时间,个人比较笨;现在配置个嵌入式qt环境的时间不止一周的时间,真的是整个人都被整疯了,而且到此刻,我还不确定我的环境是否已经配置的完全正确,以下是一些环境搭建过程中碰到的问题,稍微整理了一下,建议在配环境的时候,多看几篇比较完整的环境搭建的文章,准备好前期工作(很多与编译有关的软件包提前装好),对比着做,然后出现错误了再上百度或谷歌去找答案,不要急,慢慢来,一周时间不算很长(经常错了从头再来)】 首先,去QT的官网(https://www.sodocs.net/doc/be2943458.html,/downloads)下载文件:直接下载 Qt SDK for Linux/X11 32-bit** (422 MB)(这样比较简便,虽然可能占的空间要大一点) 2,第二步就是安装刚刚下载的二进制文件: chmod u+x qt-sdk-linux-x86-opensource-2010.05.1.bin ./qt-sdk-linux-x86-opensource-2010.05.1.bin(这一步需要注意已经安装了gcc,g++,并且版本足够高,因为我一开始在red hat9的系统里 装完之后,发现red hat自带的gcc版本太低,导致了很多麻烦,最终也没有解决好) 3 下载coss tools包: https://www.sodocs.net/doc/be2943458.html,/crosstool/crosstool-0.43.tar.gz 4。安装cross tools mkdir ~/downloads 在用户主目录下建立一个下载文件夹,之后安装过程中下载的包都会 自动放到这个文件夹下 sudo apt-get install bison sudo apt-get install flex 以下4步是必须的,gcc的版本既不能太高也不能太低,只能是3.4;因为要用这个版本来编译内核。sudo apt-get install gcc-3.4 cd /usr/bin sudo ln -s gcc-3.4 gcc sudo rm gcc 正式安装 sudo mkdir /opt/crosstool sudo chown 当前登录的用户名 /opt/crosstool tar -zxvf crosstool-0.43.tar.gz cd crosstool-0.43 vi demo-arm.sh 注释掉#eval `cat arm.dat gcc-4.1.0-glibc-2.3.2-tls.dat` sh all.sh --notest 在其后,加上eval `cat arm.dat gcc-4.1.1-glibc-2.3.2.dat` sh all.sh --notest 注意:cat arm.dat gcc-4.1.1-glibc-2.3.2.dat而不是默认的gcc-4.1.1-glibc-2.3.6-tls.dat 修改linux内核版本,linux内核可以自己选择,我的linux内核是linux-2.6.24(前面下载的那个) lingd@ubuntu:~/downloads/crosstool-0.43$ vi gcc-4.1.1-glibc-2.3.2.dat BINUTILS_DIR=binutils-2.16.1 GCC_CORE_DIR=gcc-3.3.6

基于RT_Linux和QT_Embedded的工控机实时嵌入式系统设计

基于RT_Linux和QT_Embedded的工控机实时嵌入式系统设计 嵌入式系统,一般指非PC系统,以应用为中心,以计算机技术为基础,软件硬件可以裁减,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专用计算机系统,包括硬件和软件两部分。硬件包括处理器/微处理器,存储以及外设器件和I/O端口,图形控制器等,软件部分包括实时操作系统,应用程序编程。在本嵌入式系统中,由以下部分组成:微处理器PCI9054;外围接口;嵌入式操作系统RT_Linux;应用软件包括UI界面和socket通信等;集成开发环境是RT_Linux和QT_Embedded系统。 一,分别介绍这几大组成部分 1,微处理器,微处理器是嵌入式系统的核心,嵌入式微处理器一般具有较高的集成度,PC处理器一般仅仅具有中央处理单元,包括控制器和运算器,而本次系统的微处理器PCI9054不仅包括CPU核心,也包括片内外设部分。PCI9054处理器包含了内存管理器,中断控制器,定时器,芯片组的北桥包含了内存管理单元,南桥包含了中断控制器,定时器等单元。

2,外围接口,外围硬件是嵌入式系统处理器以外的硬件,它为系统提供了运行条件和部分功能。在运行条件方面,最基础的是时钟和电源部分,它们不可能集成到处理器内部,但它们对处理器的正常运转时必要的。外围硬件也将提供在系统中的需要,但是微处理器内部不具有的功能,如内存,各种通信接口。在PC系统中,处理器之外的外围硬件是标准化的,而在此嵌入式系统中,系统的外围硬件则是灵活的,而且在很大程度上都取决于核心微处理器的结构,同时嵌入式的外围硬件也会影响到系统程序的编写。 3,嵌入式实时操作系统,本系统中应用RT_Linux实时多任务操作系统,它为应用程序的运行提供了必要的运行环境,任务调度,任务通信,内存管理等功能,因为嵌入式系统和硬件关系非常紧密,在本系统中,需要对实时操作系统进行移植和配置才能使用。构建一个实时嵌入式系统的时候,传统的开发方法一般是采用一个前台/后台循环系统,一个应用软件由一个无穷的循环构成,该循环调用一些模块函数来处理异步事件,按这种方式构造的系统有如下几个主要缺点: 1)系统响应时间难以确定,它的响应时间依赖于后台循环所花费的时间,而这个执行时间并不是一个常数; 2)系统灵活性差,不易维护,如果想向其中添加新的功能,则必须重新安排整个系统;

嵌入式Linux下用Qt Designer开发及实例

嵌入式Linux用Qt Designer快速开发 RAD(快速应用程序开发)是一种高效的软件开发形式,可以让用户在极短的时间里创建一个图形化的用户界面。通常情况下,在一张空白的表单上,开发人员可以通过拖拉或点击的方式,在窗口的适当位置上添加一些输入框和按钮等窗口组件。这时,RAD工具会自动编写和维护代码。而用户所要做的只是确定当点击按钮或选择选单选项时将要发生什么事件。 在Linux下,一个非常流行的RAD工具就是Qt Designer。它是嵌入式公司Trolltech 的Qt软件包的一个组成部分。如果用户使用的是KDE桌面,那么Qt已经自动安装上了,Qt Designer也很有可能已经被安装好。如果用户的系统没有安装,那么针对不同的版本,可以很方便地找到KDE Development Tools,并安装之。以Red Hat 9.0为例,用户可以从主选单→系统设置→添加/删除应用程序中选择KDE 软件开发,即可完成Qt Designer的安装(如图1所示)。 图1 安装Qt Designer 创建 为了快速地向大家展示一下Qt Designer功能,先创建一个简单的摄氏温度和华氏温度的转换程序。本文里将设计一个简单的GUI,并且添加一些简单的代码来实现温度的转换。因为是为了展示一下快速的开发过程,而不是一个严谨的软件项目的开发,所以这里不会进行任何的错误检查,也不进行输入检验(也就是检查用户的输入是否为合法的温度形式)、缓冲溢出检查等在日常软件开发中一定要做的步骤。

如果用户使用的是KDE,那么选单上应该已经有Qt Designer的图标。不同的发行版,图标的位置会有所不同。如果用户的发行版没有Qt Designer图标,那么可以在命令行模式下输入“designer”命令来启动该开发工具。在Red Hat 9.0中,可以通过点击主选单→编程→更多编程工具→Qt Designer来启动(如图2)。 图2 启动Qt Designer Qt Designer首先呈现给用户的是一个New/Open对话框(如图3所示)。因为这里要创建一个C++程序,所以在此选择C++ Project,点击“OK”继续。 图3 New/Open对话框 选择一个想要保存文件的位置,并且给出一个文件名,在此使用的文件名是cfconv。注意这里文件名的扩展名一定要是.pro。点击“Save”后,返回到了Project

嵌入式qt编程环境和程序设计方法

基于Qt界面系统设计 姓名:张恒 学号:1145532229 班级:计算机科学与技术二班 2014年4月12号

一.实验要求: 1.基于qt的嵌入式系统界面设计 功能要求: (1)移植sqlite数据库到嵌入式系统平台 (2)自己学习qt编程环境和程序设计方法 基于Qt设计界面,实现对数据库的增删改查操作 二.实验目的: (1)基本掌握qt界面设计的方法与操作流程。 (2)熟练qt语言的编写命令。 (3)熟练掌握linux下的基本命令。 三.实验过程: 1.将实验目录拷贝到/home下,执行install.sh脚本,该脚本会自动搭建系统开发环境,安装交叉编译器。 2.Image 目录中CP210x_VCP_Win2K_XP_S2K 3.exe文件是USB转232驱动,需首先安装。安装后查看设备管理器中添加的串口是cmo。这个可以自行修改。但是不能占用其他串口。 3.打开超级终端,选择设备管理器中已有的串口设备,设置115200 8 N 1 无(跟之前2410一样,win7可以在网上下载安装) 4.上电开发板,若终端中有系统启动,则表明系统已经启动。 5.在home目录下建立/QT目录,再次目录下有三个子目录src,x11,arm,src用于存放未解压的压缩文件,x11是qt-x11-opensource-src-4.4.0.tar的解压目录,arm是qt-embedded-linux-opensource-src-4.4.0.tar的解压目录。 Src目录: 解压文件 Tar xzvf /home/QT /src/qt-x11-opensource-src-4.4.0.tar.gz -C /home/QT/x11 Tar xjvf /home/QT/src/qt-embedded-linux-opensource-src-4.4.0.tar.bz2 -C /home/QT/arm Tar xjvf /home/QT/src/tslib-1.4.tar.bz2 -C /home/QT/arm 安装x11环境: 进入x11目录:

嵌入式开发环境搭建

第一章开发环境搭建 要想进行嵌入式开发,首先,必须搭建一套完整的嵌入式开发环境。本章讲解在windows xp + Vmware虚拟机(安装Ubuntu10.04)环境下嵌入式开发环境的搭建。 1.1 交叉编译工具链的安装 嵌入式开发必须使用交叉编译工具链。你可以使用里仁提供的交叉编译工具(arm-linux-gcc-3.4.5和arm-linux-gcc-4.3.2),也可以使用crosstool-0.43或crosstool-ng自己编译交叉编译工具链。如何用工具自己编译交叉编译工具链,请参考其他资料。本节只讲解如何使用里仁提供的交叉编译工具链。 交叉编译工具链的安装步骤主要包括拷贝、解压和设置环境变量三部分。 1)拷贝 在主目录中建立工作目录liren,将交叉编译工具链拷贝到该目录下。 在/opt目录下建立virt.arm目录,将交叉编译工具解压到该目录下。操作时注意权限问题,需要加sudo执行命令。 其中,-C参数是制定解压后的存放目录。若不制定默认为当前目录。 查看/opt/virt.arm目录下的交叉编译工具。 arm-linux-gcc-3.4.5和arm-linux-gcc-4.3.2是两个版本的交叉编译器,以备以后使用。其中,arm-linux-gcc-3.4.5将在编译U-boot、文件系统及应用程序时使用;arm-linux-gcc-4.3.2将在编译内核时使用。 2)设置环境变量 把交叉编译工具解压到/opt/virt.arm目录后,编译程序时需要制定交叉编译工具的全路径。例如,在~/liren/test目录下编译“helloworld”。

不能够像gcc那样,直接使用arm-linux-gcc来编译,这是因为还没有设置环境变量。 在~/liren/sh/目录下创建两个脚本文件arm-linux-gcc-3.4.5.sh和arm-linux-gcc-4.3.2.sh。 分别为以下内容: arm-linux-gcc-3.4.5.sh arm-linux-gcc-4.3.2.sh 这两个脚本文件是用来设备环境变量的。 例如,执行source arm-linux-gcc-3.4.5.sh就会把交叉编译器arm-linux-gcc-3.4.5的路径加到PATH环境中。这样,就可以直接使用使用arm-linux-gcc编译程序了。 但是,用这种方法只能临时改变环境变量,退出终端后就失效,因此,在下次使用时需要重新设置。要想让设置长期生效,可以修改/etc/profile文件,在最后一行加上“export PATH=$PATH:/opt/virt.arm/arm-linux-gcc-x.x.x/bin”保存退出即可。不用重启系统,在终端运行“source /etc/profile”设置立即生效。 2.2 网络服务器的安装 在进行嵌入式开发时常常需要目标板和宿主机进行通信。因此,就会用到宿主机的网络服务。常用的网路服务有TFTP和NFS。下面介绍在Ubuntu10.04环境下安装TFTP和NFS 的方法。 2.2.1 安装配置TFTP服务 安装TFTP服务的步骤为: 安装tftp-hpa(客户端)和tftpd-hpa(服务器); 修改配置文件; 根据配置文件的路径,建立tftp目录,并修改目录权限; 重启tftp服务; 本地传输测试。

嵌入式Linux用Qt Designer快速开发

嵌入式Linux用Qt Designer快速开发时间:2005-12-01 10:34:32??来源:??作者: ? RAD(快速应用程序开发)是一种高效的软件开发形式,可以让用户在极短的时间里创建一个图形化的用户界面。通常情况下,在一张空白的表单上,开发人员可以通过拖拉或点击的方式,在窗口的适当位置上添加一些输入框和按钮等窗口组件。这时,RAD工具会自动编写和维护代码。而用户所要做的只是确定当点击按钮或选择选单选项时将要发生什么事件。? 在Linux下,一个非常流行的RAD工具就是Qt?Designer。它是嵌入式公司Trolltech的Qt 软件包的一个组成部分。如果用户使用的是KDE桌面,那么Qt已经自动安装上了,Qt?Designer 也很有可能已经被安装好。如果用户的系统没有安装,那么针对不同的版本,可以很方便地找到KDE?Development?Tools,并安装之。以Red?Hat?9.0为例,用户可以从主选单→系统设置→添加/删除应用程序中选择KDE软件开发,即可完成Qt?Designer的安装(如图1所示)。? ? 图1 安装Qt Designer 创建 为了快速地向大家展示一下Qt Designer功能,先创建一个简单的摄氏温度和华氏温度的转换程序。本文里将设计一个简单的GUI,并且添加一些简单的代码来实现温度的转换。因为是为了展示一下快速的开发过程,而不是一个严谨的软件项目的开发,所以这里不会进行任何的错误检查,也不进行输入检验(也就是检查用户的输入是否为合法的温度形式)、缓冲溢出检查等在日常软件开发中一定要做的步骤。 如果用户使用的是KDE,那么选单上应该已经有Qt Designer的图标。不同的发行版,图标的位置会有所不同。如果用户的发行版没有Qt Designer图标,那么可以在命令行模式下输入“designer”命令来启动该开发工具。在Red Hat 9.0中,可以通过点击主选单→编程→更多编程工具→Qt Designer来启动(如图2)。 图2 启动Qt Designer Qt Designer首先呈现给用户的是一个New/Open对话框(如图3所示)。因为这里要创建一个C++程序,所以在此选择C++ Project,点击“OK”继续。 图3 New/Open对话框 选择一个想要保存文件的位置,并且给出一个文件名,在此使用的文件名是cfconv。注意这里文件名的扩展名一定要是.pro。点击“Save”后,返回到了Project Settings对话框(见图4)。

实验一 ARM嵌入式系统开发环境搭建

实验一ARM嵌入式系统开发环境搭建 一、虚拟机安装配置 ARM嵌入式系统开发需要linux环境,为了在windows下使用linux,需要安装虚拟机。虚拟机软件采用Virtualbox,linux操作系统的版本使用lubuntu。lubuntu系统已制成镜像文件,只需导入到virtulbox即可。 1. 安装VirtualBox虚拟机软件。采用默认安装。 2. 运行Virtualbox虚拟机软件,导入lubuntu虚拟机。 在“管理”菜单中,选择“导入虚拟电脑”项,在后续对话框中选择镜像文件,其余参数按照默认。 3. 启动lubuntu虚拟电脑进入linux界面。 二、建立交叉编译环境 1. 查看arm gcc 编译工具 # cd /opt/host/armv4l # ls bin 列出的以“armv4l-unkown –linux-”开头的系列文件就是gcc编译工具软件。 #armv4l-unknown-linux-gcc –v 应该显示以下信息:

如果没有出现该信息,则检查~/.bashrc文件,在其中加入“PATH=$PATH:$HOME/bin:/opt/host/armv4l/bin/”。 2. 建立桥接网络 当使用tftp下载程序时,为了使开发板能够访问虚拟机中的数据,需要对网络加以设置。开发板的IP为192.168.0.115;虚拟机的IP 设为:192.168.0.100 (1) 在lubuntu虚拟机的网卡配置中,选择“桥接网卡”, (2) 在windows操作系统网络配置界面中,将本地网卡和虚拟机的网卡桥接起来。桥接参数如下: IP设置为:192.168.0.2 掩码:255.255.255.0 网关:192.168.0.2 (3)lubuntu虚拟机的IP设置: 虚拟机IP:192.168.0.100 掩码:255.255.255.0 网关:192.168.0.2 3. 配置minicom参数 minicom程序用于在linux环境下通过串口和开发板通信。串口在烧写boot代码、操作系统内核及文件系统时使用。

基于嵌入式QT平台下GISGPS电子定位系统设计

基于嵌入式QT平台下GIS(GPS)电子定位系统设计

————————————————————————————————作者:————————————————————————————————日期:

基于嵌入式QT平台下GIS/GPS电子定位系统设计 兰见春 三明学院物理与机电工程学院 08电子科学与技术 [摘要]:本设计主要由三星ARM9芯片s3c2440、nand flash、nor flash、sdram、群创7寸触摸屏、GPS模块等硬件组成,使用linux2.6.30.4内核,QT4.5嵌入式开发环境,mitab 源码,madplay源码等等软件组成,软硬件组合搭建好嵌入式环境,实现电子地图的显示和定位、语音提示功能。具有精简、高效、调试简单的特点 [关键字]:linux 嵌入式 QT mitab GPS/GIS 第一章引言 1.1背景意义 GPS 是英文Global Positioning System(全球定位系统)的简称,GIS 是在地理学、地图学、测量学和计算机科学等学科基础上发展起来的一门学科,目前市面上的导航仪大部分都是使用WinCE系统,界面很漂亮,支持很多PPC版的导航软件。但是WinCE不开源,对于嵌入式开发不利。本系统采用了开源linux做为系统内核,很好的支持了开发者的开发,同时也支持大量的开源软件。满足嵌入式开发者的各种需求。 系统使用开源的mitab和QT4.5,解决了电子地图图形界面要求,搭配GIS开发软件mapinfo制作的基于WGS84坐标系的电子地图,与sirf第三代的GPS模块,共同实现了电子定位,同时调用madplay MP3播放器,实现语音播报功能。 目前国内关于GPS/GIS的研究已经很火热了,关于GPS的周边学科也得到迅速发展,地图数据公司群雄崛起,导航软件也很出色,往嵌入式发展的趋势已经很明显。Linux平台下的开源导航软件很少,但是支持GPS的源码和工具还是很多,像GPSd,GPSdriver等,这些开源的工具软件给开发者提供很好的开发思路。同时QT4也是linux开发的利器,这几年QT发展迅猛,已超越MFC,仅次与java 。 最近Android(一种以Linux为基础的开放源码操作系统)操作系统很热门,大部分的导航软件的开发都有往安卓发展的趋势。当下苹果的mac操作系统和谷歌的Android系统竞争手持智能设备终端,已经趋于白热化了。 综合上述信息,使用Linux内核+QT4+mitab+mapinfo地图制作嵌入式电子地图,是一种比较精简的做法,满足嵌入式平台小内存、小体积的要求,程序设计过程中,采用尽量压缩地图数据内存的方法,以提高嵌入式平台的反应速度与工作效率。 1.2嵌入式发展和QT介绍 1.2.1嵌入式的发展 近几年,嵌入式系统产品日臻完善,并在全世界各行业得到广泛应用。嵌入式系统产品的研制和应用已经成为我国信息化带动工业化、工业化促进信息化发展的新的国民经济增长

相关主题