版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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年医学检验师资格考试历年真题
- 创意低碳环保生活动态模板
- 第7课 我是班级值日生 第二课时 课件(内嵌视频)2026-2027学年道德与法治二年级上册统编版
- 2026年检验士基础知识历年真题汇编
- 脱贫攻坚小说中的村支书形象研究-以贺享雍“时代三部曲”为例
- 2026年湖北省路桥工程专业技术职务水平能力(工程勘察与测量副高级)测试考前冲刺试题及答案
- 【备考2026】青海省西宁市中考模拟数学试卷4(含解析)
- 2026年国家级检验检测机构资质认定评审员考试试题及答案(云南省)
- 中华人民传染病防治法
- 2025山西万家寨水务控股集团所属企业校园招聘82人笔试参考题库附带答案详解
- 2025年04月中国热带农业科学院香料饮料研究所第一批公开招聘29人(第1号)笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 高中数学统计试题及答案
- 个体工商户登记备案申请书
- 氢吗啡酮西安黄文起
- 2025年重庆轨道交通集团招聘笔试参考题库含答案解析
- DB32-T 4289-2022 安全生产培训机构教学服务规范
- 2024年高考真题江苏卷化学试题(原卷版)
- 2023年广西高一学业水平合格性考试化学试卷真题(含答案详解)
- 水力发电设备防腐涂料施工合同
评论
0/150
提交评论