加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

第十三章 GUI和文件系统

发布时间:2020-12-15 06:45:22 所属栏目:百科 来源:网络整理
导读:1 嵌入式设备对GUI的限制 ? CPU速度相对来说较慢,一般不具备浮点运算功能或浮点运算功能较弱。 ? 内存,外存容量小,电量有限。 2 嵌入式系统GUI设计包括三个方面 ? 硬件设计:通过LCD控制器把LCD显示器和开发系统连接起来。 ? 驱动程序设计:为输入输出设
1 嵌入式设备对GUI的限制
? CPU速度相对来说较慢,一般不具备浮点运算功能或浮点运算功能较弱。
? 内存,外存容量小,电量有限。

2 嵌入式系统GUI设计包括三个方面
? 硬件设计:通过LCD控制器把LCD显示器和开发系统连接起来。
? 驱动程序设计:为输入输出设备如LCD设计驱动程序,使硬件能驱动起来。
? 用户界面程序设计:使用嵌入式系统提供的函数库进行图形化程序设计。

3 嵌入式GUI模块
? GUI用户接口模块:为上层应用软件开发人员提供方便,易用的API接口函数,屏蔽了GUI的设备实现细节。
? GUI对象模块:对窗口环境中的逻辑对象进行组织管理。如窗口切换,焦点切换,对象的隐藏和恢复等操作引发的对象属性的更新。还有对不同控件的各种事件的响应。
? GUI基本图形模块:实现对显示输出设备的操作,如画线,画点,画矩形等基本功能
? GUI消息驱动模块:负责GUI的消息接受和与其它任务的通讯以及消息队列的维护。

4 嵌入式GUI的特点
? 可移植性,较高的稳定性和可靠性,系统开销小,较高的可配置性。

5 目前在嵌入式系统比较流行的GUI
? Qt/Embedded 是一个C++函数库,支持真正的组件编程。
? MicroWindows:开放源代码,C/S结构,三层,LGPL。
? Tiny-X:是标准X-windows系统的简化版。
? OpenGUI:适合于x86,可移植性比较差。
? MiniGUI:中国的自由软件项目,LGPL。

6
Tiny-X系统框架
? 标准X-windows系统的简化版。设计目标:在小容量内存的环境下运行。适合用作嵌入式linux的GUI系统。

7 QT
? Qt是一种跨平台的GUI工具包,软件能非常方便地应用于绝大多数操作系统。
? 面向对象,构件支持,方便性,国际化,丰富的API,完整地组件,优越的绘图功能。
? Linux上流行的桌面环境KDE是基于Qt开发出来的。
?
8 Qt与X11的关系
? 硬件平台,操作系统,X-windows系统/Xlib,Qt库,KDE。

9 Qt基础
? QObject:它是所有能够处理signal,slot和事件的Qt对象的基类。Qt为对象的通信以及signal/slot连接提供了强大的机制,signal/slot机制比传统的回调规则更先进。所有的Qt组件都继承QObject和使用signal/slot机制。
? QApplication:负责GUI应用程序的控制流程和主要的设置,它包含主事件循环体,负责处理和调度所有来自窗口系统和其他资源的事件,并且处理应用程序的开始,结束以及会话管理,还包括应用程序方面的设置。
?? QApplication主要的功能:
?? 1)初始化应用程序,并设置用户桌面的一些特性。如字体设置等。
?? 2)执行事件处理,从当前的窗口系统接受事件并将其送给目标组件。
?? 3)解析命令行的变元和设置相应的内部状态。
?? 4)定义应用程序的外观和感受。
?? 5)指明应用程序如何分配颜色。
?? 6)指明默认的文本编码。
?? 7)管理应用程序的鼠标,光标。
?? 8)提供完善的会话管理,使用户注销时终止应用程序。
? QWidget:是所有用户接口对象的基类,它继承QObject类的属性。
?? 组件是用户界面的单元组成部分,它接收鼠标,键盘和其他从窗口系统来的事件,并把它自己画在屏幕上。
?? 一个不能移植到其父组件的组件成为顶层组件,QWidget类有很多成员函数,但是一般不直接使用,而是由其子类继承,使用函数功能。
?? 所有的组件都继承QWidget类,因此它的属性其他组件都可以用。组件通常以QWidget类的抽象子类作为基类,利用基类的属性并加上自己的特征作为它自己特有的属性。如QPushButton以QButton为基类,而QButton是QWidget的抽象子类,它的属性可以被子类所继承,而它却不能自己使用,即一般构建的是QButton的子类。

10 KDE简介
?? KDE是一种图形桌面集成环境,使一套使Unix系统拥有图形操作继承环境的软件。
?? KDE为用户提供了方便且全面的服务,并有专门的KDE小组维护这套软件。

11 Qt Embedded结构
? 从上层到下层:Applications,Qt API,QT for Embedded Linux,Linux Kernel/Framebuffer。

12 Qtopia结构
?? 从上层到下层:Qtopia,Qt/Embedded,Frame Buffer,Linux。

13 嵌入式手持设备向移动多媒体终端发展
? 存储容量越来越大,待机时间越来越长。合理利用电池的容量,延长电池的使用时间已经是制约嵌入式设备发展的一个重要问题。

14 常见的嵌入式存储介质
? ROM,PROM,EPROM,EEPROM
? ROM:只读,存储内容出场时烧成
? PROM:可编程性ROM,支持一次编程。
? EPROM:支持使用紫外线进行擦除。
? EEPROM:支持使用专用电路就可以擦除。

15 常见的嵌入式存储介质-可移动存储介质
? 分两大类:晶体管快闪存储器,旋转的磁性媒体。

16 常见的嵌入式存储介质-Flash闪存
? 特点:非易失性,高存储密度,体积小,容量大,成本低。它一共分两类:Nor Flash 和 Nand Flash。
? NorFlash:线性随机访问,支持XIP。存储密度低。擦写模式是逐字节编程。主要用途是ROM的替代产品。它存代码比较合适。
? NandFlash:页式访问,每页有16个字节的额外管理数据,不支持XIP。存储密度高。擦写模式:整页或者部分编程。主要用途:海量存储器。

17 嵌入式文件系统可靠性设计
? 嵌入式文件系统中的Flash存储器两大类不稳定因素:Flash存储器本身可能出现物理性的损坏。嵌入式系统面对较多的突发掉电与重启动,造成Flash存储器写操作的异常终止。
?
18 日志结构的文件系统
? 采用了数据库系统中的日志的概念,对数据的更新采用前向写入。不直接进行耗时较高的擦除操作,数据的写入速度将较大提高。日志结构文件系统更适合于在闪存设备中的应用。日志结构需要进行垃圾回收以创建空白存储区。?

19 日志闪存文件系统(JFFS2)
?用于嵌入式设备的原始闪存芯片的实际文件系统。
?在扇区级别上执行闪存擦除/写/读操作。提供了比Ext2fs更好的奔溃/掉电安全保护。
?缺点:当文件系统已满或接近满时,JFFS2会大大放慢运行速度。还有垃圾收集的问题。

? MTD(Memory Technology Device)
? MTD在硬件上和上层之间提供一个抽象接口。支持NOR和NAND。

20 YAFFS2
? 是针对NAND Flash的日志文件系统。YAFFS自带了NAND芯片驱动,并且自带了文件系统的API。
? 文件是以固定大小的数据块进行存储。相对JFFS2速度更快,对内存的占用率较小。

21 其他文件系统:Extfs是Linux事实上的标准文件系统。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读