首页 > 其他分享 >嵌入式 GUI 简介

嵌入式 GUI 简介

时间:2024-04-05 19:30:24浏览次数:23  
标签:Qt 简介 GUI 嵌入式 MiniGUI Server Microwindows

目前的桌面机操作系统大多有着美观、操作方便、功能齐全的 GUI(图形用户界
面),例如 KDE 或者 GNOME。GUI(图形用户界面)是指计算机与其使用者之间的
对话接口,可以说,GUI 是当今计算机技术的重大成就。它的存在为使用者提供了友
好便利的界面,并大大地方便了非专业用户的使用,使得人们从繁琐的命令中解脱出
来,可以通过窗口、菜单方便地进行操作。
而在嵌入式系统中,GUI 的地位也越来越重要,但是不同于桌面机系统,嵌入式
GUI 要求简单、直观、可靠、占用资源小且反应快速,以适应系统硬件资源有限的条
件。另外,由于嵌入式系统硬件本身的特殊性,嵌入式 GUI 应具备高度可移植性与可
裁减性,以适应不同的硬件条件和使用需求。总体来讲,嵌入式 GUI 具备以下特点:
n 体积小;
n 运行时耗用系统资源小;
n 上层接口与硬件无关,高度可移植;
n 高可靠性;
n 在某些应用场合应具备实时性。
UNIX 环境下的图形视窗标准为 X Window System,Linux 是类 UNIX 系统,所以
顶层运行的 GUI 系统是兼容 X 标准的 XFree86 系统。X 标准大致可以划分 X Server、
Graphic Library(底层绘图函数库)、Toolkits、Window Manager 等几大部分。其好处
是具有可扩展性、可移植性等优点,但对于嵌入式系统而言无疑太过庞大、累赘、低
效。目前流行的嵌入式 GUI 与 X 思路不同,这些 GUI 一般不局限于 X 标准,更强调
系统的空间和效率。
12.1.1 Qt/Embedded
表 12.1 归纳了 Qt/Embedded 的一些优缺点。

表 12.1Qt/Embedded 分析
Qt/Embedded 分析

以开发包形式提
包括了图形设计器、Makefile 制作工具、字体国际化工具、Qt 的 C++类
库等
优点
跨平台支持 Microsoft Windows 95/98/2000、Microsoft Windows NT、MacOS X、
Linux、Solaris、HP-UX、Tru64 (Digital UNIX)、Irix、FreeBSD、BSD/OS、
SCO、AIX 等众多平台
类库支持跨平台Qt 类库封装了适应不同操作系统的访问细节,这正是 Qt 的魅力所在
模块化可以任意裁减
缺点结构也过于复杂
臃肿,很难进行
底层的扩充、定
制和移植

例如:
· 尽管 Qt/Embedded 声称,它最小可以裁剪到几百 KB,但这时的
Qt/Embedded 库已经基本失去了使用价值
· 它提供的控件集沿用了 PC 风格,并不太适合许多手持设备的操作
要求
· Qt/Embedded 的底层图形引擎只能采用 framebuffer,只是针对高端
嵌入式图形领域的应用而设计的
· 由于该库的代码追求面面俱到,以增加它对多种硬件设备的支持,

造成了其底层代码比较凌乱,各种补丁较多的问题

12.1.2 MiniGUI


          提起国内的开源软件,就肯定会提到 MiniGUI,它由魏永明先生和众多志愿者开
发,是一个基于 Linux 的实时嵌入式系统的轻量级图形用户界面支持系统。
     MiniGUI 分为最底层的 GAL 层和 IAL 层,向上为基于标准 POSIX 接口中 pthread
   库的 Mini-thread 架构和基于 Server/Client 的 Mini-Lite 架构。其中前者受限于 thread 模式
对于整个系统的可靠性——进程中某个 thread 的意外错误可能导致整个进程的崩溃,该
架构应用于系统功能较为单一的场合。Mini-Lite 应用于多进程的应用场合,采用多进程
运行方式设计的 Server/Client 架构能够较好地解决各个进程之间的窗口管理、Z 序剪切等
问题。MiniGUI 还有一种从 Mini-Lite 衍生出的 standalone 运行模式。与 Lite 架构不同的
是,standalone 模式一次只能以窗口最大化的方式显示一个窗口。这在显示屏尺寸较小的
应用场合具有一定的应用意义。
      MiniGUI 的 IAL 层技术 SVGA lib、LibGGI、基于 framebuffer 的 native 图形引擎
以及哑图形引擎等,对于 Trolltech 公司的 QVFB 在 X Window 下也有较好的支持。IAL
层则支持 Linux 标准控制台下的 GPM 鼠标服务、触摸屏、标准键盘等。
MiniGUI 下丰富的控件资源也是 MiniGUI 的特点之一。当前 MiniGUI 的最新版
本是 1.3.3。在该版本的控件中已经添加了窗口皮肤、工具条等桌面 GUI 中的高级控
件支持。对比其他系统,“Mini”是 MiniGUI 的特色,轻量、高性能和高效率的 MiniGUI
已经应用在电视机顶盒、实时控制系统、掌上电脑等诸多场合。


12.1.3 Microwindows、Tiny X 等


      Microwindows Open Source Project 成立的宗旨在于针对体积小的装置,建立一套
先进的视窗环境,在 Linux 桌面上通过交叉编译可以很容易地制作出 Microwindows
的程序。Microwindows 能够在没有任何操作系统或其他图形系统的支持下运行,它能
对裸显示设备进行直接操作。这样,Microwindows 就显得十分小巧,便于移植到各种
硬件和软件系统上。
然而 Microwindows 的免费版本进展一直很慢,几乎处于停顿状态,而且至今为
止,国内没有任何一家对 Microwindows 提供全面技术支持、服务和担保的专业公司。
Tiny X Server 是 XFree86 Project 的一部分,由 Keith Pachard 发展起来的,而他本身
就是 XFree86 专案的核心成员之一。一般的 X Server 都过于庞大,因此 Keith Packard 就
以 XFree86 为基础,精简而成 Tiny X Server,它的体积可以小到几百 KB,非常适合应用
于嵌入式环境。
    就纯 X Window System 搭配 Tiny X Server 架构来说,其最大的优点就是具有很好
的弹性开发机制,并能大大提高开发速度。因为与桌面的 X 架构相同,因此相对于很
多以 Qt、GTK+、FLTK 等为基础开发的软件可以很容易地移植过来。
虽然移植方便,但是却有体积大的缺点,由于很多软件本来是针对桌面环境开发
的,因此无形之中具备了桌面环境中很多复杂的功能。因此“调校”变成采用此架构
最大的课题,有时候重新改写可能比调校所需的时间还短。

12.2 总结了常见 GUI 的参数比较。
 

标签:Qt,简介,GUI,嵌入式,MiniGUI,Server,Microwindows
From: https://blog.csdn.net/2302_78663693/article/details/137379057

相关文章

  • 嵌入式Linux驱动开发-第一个驱动程序hello
    前言,没事就碎碎念以前跟着正点原子的文档做过一两个简单驱动程序实验,但是总感觉思路不够清晰,后面看韦东山的视频,发现二者结合起来刚好合适,其中韦东山视频理论和框架讲的清楚,正点原子的更像是他们开发板的使用手册。一开始学习驱动,我感觉比较合适的路线是先简单过一遍裸机,跟着正......
  • `.gitattributes` 文件中的 *.js linguist-language=ts *.tsx linguist-language=ts
    .jslinguist-language=ts和.tsxlinguist-language=ts是针对特定文件类型的元数据标记,它们的作用是在特定的上下文中指示这些文件的实际编程语言类型,而非其扩展名所暗示的语言。具体来说:.jslinguist-language=ts表示尽管文件以.js扩展名结尾,但实际上它应该被视为TypeScr......
  • STM32入门篇(LED、蜂鸣器和面包板简介)
    LED·LED:发光二极管,正向通电点亮,反向通电不亮·引脚长的一端为正极,短的一端为负极·以下两张图,是用STM32GPIO口驱动LED灯 R1作用:①防止LED因为电流过大而烧毁 ②调整LED的亮度           低电平驱动的电路(低点亮)      ......
  • 上位机图像处理和嵌入式模块部署(qmacvisual并发执行)
    【 声明:版权所有,欢迎转载,请勿用于商业用途。联系信箱:[email protected]】    类似于qmacvisual这样的软件,其实价格并不便宜。比如大家熟知的halcon、visionpro、visionmaster这样的软件,最便宜的版本一般都要几万人民币。而且,这些license,是根据项目和pc编号来......
  • 消息队列简介
    1.什么是消息队列定义消息队列:一般我们会简称它为MQ(MessageQueue)。MessageQuery(MQ),消息队列中间件,很多初学者认为,MQ通过消息的发送和接受来实现程序的异步和解耦,mq主要用于异步操作,这个不是mq的真正目的,只不过是mq的应用,mq真正的目的是为了通讯。他屏蔽了复杂的通讯协议......
  • m基于深度学习的肉类新鲜度检测系统matlab仿真,带GUI操作界面
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要       数据采集:获取肉类样品在不同新鲜度阶段的图像数据,通常使用高分辨率相机拍摄并标注对应的新鲜度等级。       GoogleNet模型因其独特的“inception”模块而得名,这种模块设计......
  • 如何在 Ubuntu 服务器上安装桌面环境 (GUI)
    先以VNC方式远程登录服务器执行命令sudoaptupdate&&sudoaptupgrade#选择1---使用tasksel安装sudoaptinstall-ytaskselsudotaskselinstall-yubuntu-desktop#选择2---使用apt安装sudoaptinstallubuntu-desktopsudoaptinstalllightdm安装lightdm......
  • Python八字教程1简介&快速入门
    1简介&快速入门1.1简介https://github.com/china-testing/bazi是基于Python的八字排盘工具。它清晰看出冲刑合会、阴阳等关系,并有凝聚大师多年经验的评判。另有合婚、风水等功能。是目前市面功能最强大的免费开源八字排盘工具,适合具有编程基础者在电脑上使用。1.1.1帮助pyt......
  • 前端学习<四>JavaScript基础——01-编程语言和JavaScript简介
    计算机语言概念计算机语言:人与计算机之间通信的语言。它是人与计算机之间传递信息的媒介,它通过特定的语法规则和语义约定,将人类可理解的指令转化为计算机可以执行的机器指令。计算机程序:就是计算机所执行的一系列的指令集合,程序全部都是用我们所掌握的语言来编写的,如果我们......
  • NMS 系列:soft,softer,weighted,iou-guided, Diou, Adaptive
    系列文章目录IOU系列:IOU,GIOU,DIOU,CIOU文章目录系列文章目录一、NMS简介(一)为什么要使用NMS(二)NMS的算法流程(三)NMS的置信度重置函数(四)NMS的局限性(五)改进思路二、Soft-NMS概述(一)Soft-NMS的思想(二)Soft-NMS的置信度重置函数三、softerNMS(一)提出背景(二)softerNMS的核心......