1.简介
最近对嵌入式下的GUI挺感兴趣的,MCU性能虽小,但仍能运行流畅的图形界面,在可穿戴设备上,或者一些小屏设备上,大有可一展身手之处。
不了解不要紧,一了解吓一跳。原来嵌入式GUI已经发展得如此蓬勃,生命力旺盛,让人兴奋。有大厂的介入,也有新兴公司的崛起,还有开源创作者的热爱,每一份GUI都如璀璨的明珠,或大或小,闪闪发光。
以下统计了一些,我力所能知道的一些GUI项目,仅供参考:
- LVGL 开源https://lvgl.io/
- QT for MCU 闭源https://www.qt.io/zh-cn/product/develop-software-microcontrollers-mcu
- ucGUI(emWin) 闭源https://www.segger.com/products/user-interface/emwin/
- GUIX 开源https://docs.microsoft.com/zh-cn/azure/rtos/guix/guix-studio-quick-start
- touchGFX 闭源https://www.touchgfx.com/
- μGFX 闭源http://www.ugfx.org/
- 柿饼UI 闭源https://www.rt-thread.org/page/persimmonui.html
- Embedded GUI 闭源http://www.embedded-wizard.de/
- Storyboard 闭源https://www.cranksoftware.com/
- Altia 闭源https://www.altia.com/
- AWTK 开源https://awtk.zlg.cn/docs
- 玲珑GUI 开源https://gitee.com/gzbkey/LingLongGUI
- miniGUI 开源https://github.com/VincentWei/minigui
2. QT for MCU
GUI组件好多,选了几个自己感兴趣的。首先是QT for MCU
,主要是因为QT嘛,大厂,以前主要是做高性能的硬件上的图形库,现在也在涉入MCU了。虽然在MCU领域一定不是最好的,但当我们要往高性能领域靠近的时候,确实不可或缺的一环。
3.LVGL
LVGL是我比较喜欢的开源GUI项目。
- 丰富且强大的模块化图形组件:按钮 (buttons)、图表 (charts)、列表 (lists)、滑动条 (sliders)、图片 (images) 等
- 高级的图形引擎:动画、抗锯齿、透明度、平滑滚动、图层混合等效果
- 支持多种输入设备:触摸屏、 键盘、编码器、按键等
- 支持多显示设备
- 不依赖特定的硬件平台,可以在任何显示屏上运行
- 配置可裁剪(最低资源占用:64 kB Flash,16 kB RAM)
- 基于UTF-8的多语种支持,例如中文、日文、韩文、阿拉伯文等
- 可以通过类CSS的方式来设计、布局图形界面(例如:Flexbox、Grid)
- 支持操作系统、外置内存、以及硬件加速(LVGL已内建支持STM32 DMA2D、NXP PXP和VGLite)
- 即便仅有单缓冲区(frame buffer)的情况下,也可保证渲染如丝般顺滑
- 全部由C编写完成,并支持C++调用
- 支持Micropython编程,参见:LVGL API in Micropython
- 支持模拟器仿真,可以无硬件依托进行开发
4.GUIX
要说GUIX,就不得不说说ThreadX。ThreadX 的作者是 William lamie(同样是 Nucleus RTOS 的原始作者,于 1990 年发布)。1996的时候成立了 Express Logic,并于 1997 发布首版 ThreadX RTOS。
而后,发布了它的各个关键组件。
- FileX – ThreadX 的嵌入式文件系统于 1999 年发布首版。
- NetX – ThreadX 的嵌入式 TCP / IP 网络协议栈于 2002 年发布首版。
- USBX – ThreadX 的嵌入式 USB 协议栈于 2004 年发布首版。
- GUIX – ThreadX 的嵌入式 UI 于 2014 年发布首版。
Microsoft 在 2019 年 4 月 18 日以未公开的价格购买了 Express Logic,也就是说,微软通过ThreadX完成了它的物联网闭环。所以说嘛,threadX值得了解,而他之上的GUIX组件,也仍是可以和其它图形GUI相媲美的存在。
关注&&联系
开源轻量操作系统: https://gitee.com/cmcc-oneos/OneOS-Lite
docs文档中心: https://oneos-lite.com/
知知乎乎:蓁蓁
网友评论