版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2020年7月16日 1,教学内容,第一章 嵌入式系统概述 第二章 学习板硬件及开发环境的建立 第三章 构建嵌入式Linux系统 第四章 嵌入式Linux设备驱动 第五章 嵌入式Linux串口和网络编程 第六章 嵌入式Linux图形编程,2020年7月16日 2,嵌入式GUI编程,课程目的 了解嵌入式图形系统 掌握QT/E开发环境、关键技术 通过实例熟悉基于Qt/E的嵌入式GUI设计,2020年7月16日 3,1 嵌入式图形系统简介,Linux图形系统的发展史 linux本身没有图形界面, linux现在的图形界面的实现只是linux下的应用程序实现 图形界面并不是linux 的一部分,lin
2、ux只是一个基于命令行的操作系统,linux和Xfree的关系就相当于当年的DOS和 WINDOWS 3.0一样,2020年7月16日 4,6.1 嵌入式图形系统简介,常用Linux图形系统 X Window:业界标准 Open Look:来自SUN与AT echo yes ) |./configure -platform linux-generic-g+ -qconfig qpe -depths 16,24,32 make -C src,2020年7月16日 27,6.2.4 QTE开发环境搭建,QPE编译 tar xfvz qtopia-free-1.7.0.tar.gz mv qtopi
3、a-free-1.7.0 qtopia cd qtopia/src ./configure -platform linux-generic-g+ make,2020年7月16日 28,6.2.4 QTE开发环境搭建,运行,2020年7月16日 29,当在PC上模拟Qtopia的运行时,需要用到对应Qt版本的库文件,因此需要修改/etc/ld.so.conf 文件以适应刚刚安装的Qt(Redhat安装时带有Qt库,但不适合我们最新安装的版本),修改后的ld.so.conf文件内容如下: /sbc2410/x86-qtopia/qt/lib /sbc2410/x86-qtopia/qtopia/l
4、ib /usr/kerberos/lib /usr/X11R6/lib /usr/lib/sane 修改完此文档后,为了让刚刚安装的库生效,必须运行ldconfig。 至此Qt的开发平台已经建立。,2020年7月16日 30,(1)设置环境变量 export QTDIR=$PWD/qt export QPEDIR=$PWD/qtopia export TMAKEDIR=$PWD/tmake export TMAKEPATH=$TMAKEDIR/lib/qws/linux-generic-g+ export PATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$P
5、ATH (2)启动虚拟帧缓存 “$ qvfb int value() const return val; void setValue( int ); private: int val; ;,2020年7月16日 37,信号与插槽,一个小的Qt类如下: class Foo : public QObject Q_OBJECT public: Foo(); int value() const return val; public slots: void setValue( int ); signals: void valueChanged( int ); private: int val; ;,20
6、20年7月16日 38,信号与插槽,槽可以由应用程序的编写者来实现。这里是Foo:setValue()的一个可能的实现: void Foo:setValue( int v ) if ( v != val ) val = v; emit valueChanged(v); ,2020年7月16日 39,信号与插槽,把两个对象连接在一起的一种方法: Foo a, b; connect(,2020年7月16日 40,6.2.6 实例一,一、代码编辑 二、程序编译,2020年7月16日 41,#include #include int main(int argc, char * argv) QAppli
7、cation a(argc, argv); QPushButton hellobtn(Hello world!, 0); hellobtn.resize(100, 20); a.setMainWidget( ,2020年7月16日 42,#include #include int main(int argc, char * argv) QApplication a(argc, argv); QPushButton hellobtn(Hello world!, 0); hellobtn.resize(100, 20); a.setMainWidget( ,2020年7月16日 43,#inclu
8、de #include int main(int argc, char * argv) QApplication a(argc, argv); QPushButton hellobtn(Hello world!, 0); hellobtn.resize(100, 20); a.setMainWidget( ,2020年7月16日 44,#include #include int main(int argc, char * argv) QApplication a(argc, argv); QPushButton hellobtn(Hello world!, 0); hellobtn.resiz
9、e(100, 20); a.setMainWidget( ,2020年7月16日 45,#include #include int main(int argc, char * argv) QApplication a(argc, argv); QPushButton hellobtn(Hello world!, 0); hellobtn.resize(100, 20); a.setMainWidget( ,2020年7月16日 46,#include #include int main(int argc, char * argv) QApplication a(argc, argv); QPu
10、shButton hellobtn(Hello world!, 0); hellobtn.resize(100, 20); a.setMainWidget( ,2020年7月16日 47,#include #include int main(int argc, char * argv) QApplication a(argc, argv); QPushButton hellobtn(Hello world!, 0); hellobtn.resize(100, 20); a.setMainWidget( ,2020年7月16日 48,#include #include int main(int
11、argc, char * argv) QApplication a(argc, argv); QPushButton hellobtn(Hello world!, 0); hellobtn.resize(100, 20); a.setMainWidget( ,2020年7月16日 49,#include #include int main(int argc, char * argv) QApplication a(argc, argv); QPushButton hellobtn(Hello world!, 0); hellobtn.resize(100, 20); a.setMainWidg
12、et( ,2020年7月16日 50,6.2.6 实例一,程序编译 1 生成工程文件 progen o 2 生成Makefile tmake o Makefile 3 编译 make,2020年7月16日 51,6.2.7 Qt/Embedded开发模型,嵌入式软件开发通常都采用交叉编译的方式进行,基于Qt/Embedded和Qtopia的GUI应用开发也采用这样的模式。先在宿主机上调试应用程序,调试通过后,经过交叉编译移植到目标板上。 Qt/Embedded直接写入帧缓存,在宿主机上则是通过qvfb(virtual framebuffer)来模拟帧缓存。q
13、vfb是X窗口用来运行和测试Qtopia应用程序的系统程序。qvfb使用了共享内存存储区域(虚拟的帧缓存)来模拟帧缓存并且在一个窗口中模拟一个应用程序来显示帧缓存,显示的区域被周期性的改变和更新。,2020年7月16日 52,6.2.7 Qt/Embedded开发模型,交叉编译: export QTDIR=$PWD/qt export QPEDIR=$PWD/qtopia export TMAKEDIR=$PWD/tmake export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g+ export PATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATH cd qt make cle
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年河北省张家口市辅警考试试题及答案
- 2026年高校双节期间爱国主义主题讲座实施方案
- 2026年事业单位招聘历史专业知识冲刺押题试卷
- 2026年初中级职称教师招聘考试综合素质试题汇编
- 2026年司法鉴定管理人员业务能力测试真题及答案
- 2025年研招比武笔试真题及答案
- 甘肃省定西市临洮县2025-2026学年七年级上学期1月期末生物试题(无答案)
- 2026年秋季新北师大版八年级物理上册每课核心知识点清单
- 2026年消防部队党员思想报告范文(3篇)
- 月经不调的5个日常照护细节
- 1.2.2生物学中的科学探究课件-鲁科版生物六年级上册
- 医疗器械收货员培训课件
- 薪酬调整申请报告范文
- 桥架基础知识培训课件
- 视光科进修汇报
- 电信资产管理办法
- 保健艾灸师试题及答案
- 高职单招英语词汇表
- (完整版)高考英语词汇3500词(精校版)
- 婴幼儿粗大运动发育04
- 人教版三年级数学下册第五单元大单元教学任务单
评论
0/150
提交评论