打印
[MM32生态]

GUI分类及介绍——面向MCU微控制器

[复制链接]
2223|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
saservice|  楼主 | 2024-2-24 14:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
摘要:分析嵌入式系统GUI选型时需要考虑的问题,简要介绍目前嵌入式系统使用的ToughGFX、emWin、Embedded Wizard、uGFX、LittlevGL、MiniGUI(飞漫)、AWTK(周立功)、Microwindows、OpenGUI、Qt for MCU等10款国内外的GUI。

关键字:嵌入式GUI;ToughGFX;uGFX;LittlevGL

1   GUI选型
GUI(Graphical User Interface,图形用户界面)是指采用图形方式显示的用户操作界面,小型的嵌入式系统不同于桌面级的Windows、Linux显示、也不同于移动终端(手机、平板)上的Android、IOS显示。小型嵌入式系统的GUI通常可能是定制的,要显示的内容比较有限,也没有复杂、丰富的应用。而且小型嵌入式系统的硬件平台通常是MCU(Microcontroller Unit,微控制器),显示时没有GPU、3D渲染等硬件单元,也无法运行大型操作系统,桌面级和移动端的成熟GUI无法与其适配,也无法在这类系统上运行。

笔者认为,小型嵌入式系统GUI选型时需要考虑如下几个问题:

1)   应用场景,主要需要显示什么,显示的是否复杂。

2)   与使用的操作系统的结合,移植难度。

3)   硬件平台,是否已经有现成可用的GUI与其适配。

4)   GUI的开源协议,是否收费。

2   常见的嵌入式GUI
文献[1]中将GUI分为低端(ucGUI、RTThread的柿饼UI),中端(miniGUI、OPENGUI、Microwindows),高端(桌面级的QT、Android、Windows MFC)三类。查阅了这些GUI的资料[2],简要列举如下:

1)   TouchGFX

如果是ST的硬件平台,则几乎是必选它。

2)   emWin、Embedded Wizard

emWin比较老,不支持复杂控件,收费;Embedded Wizard也收费。

3)  ugfx,LittlevGL

uGFX完全免费,LittlevGL是开源免费(MIT许可)的GUI。

4)   miniGUI(飞漫),AWTK(周立功)

这两个是国内的。

5)   Microwindows,OPENGUI,Qt forMCU。

这三个感觉一版不予考虑。

2.1 TouchGFX
非开源;以界面华丽,流畅以及强劲的 TouchGFX Designer著称;界面非常炫,堪比手机的APP界面。已经被ST收购,在ST MCU、MPU上可免费使用。视频[3]展示了TouchGFX图形界面简介,Demo展示,视频[4]展示了STM32H750B Discovery Kit,运行TouchGFX Demo例程。

使用TouchGFX开发STM32界面,有两种方法。

一是利用TouchGFX Designer软件,支持图片和控件拖拽、可快速生成在KEIL或IAR等IDE中可打开的项目工程;
另一种方法是,STM32CUBEMX 5.0版本增加了对TouchGFX的支持,可以使用CubeMX开发TouchGFX应用。
笔者曾经试图将TouchGFX的闭源库,移植到其它的操作系统上,出现点问题,移植中断了,详情参见我的另外一篇随笔《TouchGFX undefined reference to `touchgfx::HAL::blockCopy(void, void const, unsigned int)' ——记一次arm-none-eabi-g++ 链接时找不到静态库中对应的函数,学习GNU C++的符号改编机制》 。

2.2 emWin(uCGUI,STemWin)
老牌的嵌入式 GUI 了,有着十几年的历史,软件架构和功能比较成熟了。主要是SEGGER(没错就是做仿真器的那个)来开发和维护。但是做出来比较炫的效果非常麻烦,且不支持较为复杂的控件。

ucGUI是Segger公司为Micrium公司(ucos所属公司)定制的emWin,使用的时候都需要向该公司交纳版权费。

而STemWin是Segger公司为ST公司定制的emWin;如果我们使用的ST的芯片,则可以免费使用STemWin。

2.3 Embedded Wizard
德国TARA System公司开发的一个使用舒适、灵活的嵌入式系统GUI开发工具。出现较晚,在emWin和TouchGFX之后,以华丽,流畅的界面和强劲的GUIBuilder 著称。

官方号称支持几乎任意平台。也是要收费的。

视频[5]展示了在STM32F746G-DISCO开发板上,运行基于Embedded Wizard开发的界面应用。

2.4 uGFX
界面效果不像TouchGFX那么华丽,不过功能也是简单实用。同样它也有一款不错的GUIBuilder。

值得一提的是这是一款完全免费的GUI。

视频[6]展示基于chibios和ugfx开发的示波器demo演示。

2.5 Microwindows
是一个著名的开放式源码嵌入式GUI 软件,遵循MPL协议,目的是把图形视窗环境引入到运行Linux的小型设备和平台上。

2.6 OpenGUI
OpenGUI基于一个用汇编实现的x86图形内核,提供了一个高层的C/C++图形/窗口接口。

OpenGUI比较适合于基于x86平台的实时系统,跨平台的可移植性较差,目前发展较慢。

2.7 MiniGUI
开源Linux图形用户界面支持系统,跨操作系统支持,具体包括普通嵌入式 Linux/uClinux、VxWorks、eCos、uC/OS-II、pSOS、ThreadX、Nucleus、OSE 等,同时还提供 Win32 平台上的 SDK 开发包,方便嵌入式应用程序的开发和调试。

并且非常适合 eCos/uCOS-II/ThreadX 等无文件系统支持的实时嵌入式操作系统。

2.8 AWTK
AWTK[7]是ZLG集团旗下致远电子开源的GUI引,对标QT?

视频[8]展示了AWTK的一些基本控件。

在嵌入式Linux系统上也极具优势,也能能很好的解决嵌入式Linux GUI开发的大多数痛点。也支持STM32系列[9]。

2.9 Qt for MCU
Qt for MCU 将能够在没有操作系统的设备上运行,允许开发人员在具有成本效益的单片机上创建流畅的用户界面,基于 Qt 的应用程序现在可以部署在运行传统操作系统的系统以及基于 ARM Cortex M7 的微控制器上[10]。基于 ARM Cortex M7 的微控制器上,发布了1.0,目前支持如下硬件:

STM32F769i-DISCO,STM32F7508-DK
I.MX RT1050-EVKB
Renesas RH850
2.10   LittlevGL
LittlevGL是一个开源免费(MIT许可)的GUI。Flash大于64KB,RAM大于20KB的单片机都可以使用。

网址[11]和视频[12]展示了,与FreeRTOS结合,运行的一些Demo。

国内的阿里AliOS Things图形界面,也是基于LittleVGL[13]。

Zephyr OS的显示Demo,也是基于LittlevGL[14]。

使用特权

评论回复
沙发
tpgf| | 2024-3-5 14:54 | 只看该作者
越是复杂的工具 对芯片的要求是不是就越高啊

使用特权

评论回复
板凳
xiaoqizi| | 2024-3-5 15:29 | 只看该作者
我常用的就是ToughGFX、emWin这两种 用习惯了很难改用其他的了

使用特权

评论回复
地板
木木guainv| | 2024-3-5 16:17 | 只看该作者
AWTK是一款[size=0.9em]跨平台的GUI系统。目前支持的平台有 ZLG AWorks、Windows、Linux、MacOS、嵌入式 Linux,以后可能也会在浏览器 (即将公测)、各种小程序、Android 和 iOS 等平台上运行。

使用特权

评论回复
5
wowu| | 2024-3-5 16:50 | 只看该作者
这些工具之间存在不存在功能相差很大的现象呢

使用特权

评论回复
6
wakayi| | 2024-3-5 17:23 | 只看该作者
这里边有好几种工具都是咱们国 内厂商研发的

使用特权

评论回复
7
renzheshengui| | 2024-3-5 17:56 | 只看该作者
这么多种类的gui,都是可以免费使用的吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

43

主题

1278

帖子

2

粉丝