LXR | KVM | PM | Time | Interrupt | Systems Performance | Bootup Optimization

嵌入式Linux GUI收集

 关键词:QT、Nano-X、MiniGUI、Wayland、LVGL等等。

QT

QT框架结构

QT支持的平台

Desktop Platforms

Linux/X11

DistributionArchitectureCompilerNotes
openSUSE 15.1 x86_64 GCC 5 or later, GCC 7, ICC 19.1  
SUSE Linux Enterprise Server x86_64 GCC 5 or later, GCC 10  
Red Hat Enterprise Linux 8.4 x86_64 GCC 10.1 via gcc-toolset-10  
Red Hat Enterprise Linux 7.6 x86_64 GCC 5.3.1 via devtoolset-4  
Ubuntu 20.04 x86_64 GCC 5 or later, GCC 9  
Ubuntu 18.04 x86_64 GCC 5 or later, GCC 9  
Generic Linux x86 and x86_64 GCC (5 or later), ICC 18.x  

macOS

Target PlatformArchitectureBuild Environment
macOS 10.13, macOS 10.14, macOS 10.15, macOS 11, macOS 12 x86_64 and x86_64h and arm64 Xcode 11 or Xcode 12 or Xcode 13 (12 SDK)

Windows

Operating SystemArchitectureCompilerNotes
Windows 11 21H2 x86 and x86_64    
Windows 10 21H2 x86 and x86_64 MSVC 2022, MSVC 2019, MSVC 2017, MSVC 2015, MinGW 8.1  
Windows 8.1 x86 and x86_64 MSVC 2019, MSVC 2017, MinGW 8.1  
Windows 7 x86 and x86_64 MSVC 2019, MSVC 2017, MinGW 8.1 MinGW-builds GCC 8.1.0 (x86)

Mobile Platforms

Android

Platform VersionArchitectureCompilerBuild Environment
Android 5.0 or later (that is, API Level 21 and up) armv7a and x86arm64-v8 and x86_64 Clang as provided by Google, MinGW 8.1 RHEL 8.x (x86_64), RHEL 7.x (x86_64), macOS 10.15, Windows 10 21H2 (x86_64)

iOS/tvOS/watchOS

Target PlatformArchitectureBuild EnvironmentNotes
iOS 12, iOS 13, iOS 14, iOS 15 armv8 (arm64) Xcode 11 (iOS 13.2 SDK), Xcode 12 (iOS 14 SDK), Xcode 13 (iOS 15 SDK)  
tvOS 12, tvOS 13 armv8 (arm64) Xcode 11 (tvOS 13 SDK) Technology Preview
watchOS 5, watchOS 6 armv7k Xcode 11 (watchOS 6 SDK) Technology Preview. No UI.

Universal Windows Platform (UWP)

Platform VersionArchitectureCompilerBuild Environment
Universal Windows Platform 10 x86x86_64, and armv7 MSVC 2019, MSVC 2017 Windows 10

Qt for WebAssembly

Target BrowserDevice
Chrome Desktop
FireFox Desktop
Safari Desktop, Mobile
Edge (Chrome) Desktop
Android Browser Mobile


Embedded Platforms

For embedded platform support, including Embedded LinuxINTEGRITYQNX, and VxWorks, please consult the Qt for Device Creation documentation.

官方代码仓库:《Qt · GitHub》《Qt for Embedded Linux | Qt 5.15》。

Nano-X

Nano-X Windlow System是一个为小型设备提供可视化窗口功能的开源项目。

Nano-X允许在Linux桌面环境中进行编译和测试应用,然后移植到目标设备。

Nano-X提供3中API实现,分别是:X11 API、Win32 API、Xlib-like API。

官方代码仓库:《GitHub - ghaerr/microwindows: The Nano-X Window System》。

MiniGUI

MiniGUI是一个自由软件项目。其目标是提供一个快速、稳定、跨操作系统的图形用户界面(GUI)支持系统,尤其是基于 Linux/uClinux、eCos 以及其他传统 RTOS(如 VxWorks、ThreadX、uC/OS-II、Nucleus 等)的实时嵌入式操作系统。

官方代码仓库:《GitHub - VincentWei/MiniGUI》。

Wayland

Wayland作为X11的替代,更加易于开发、扩展和维护。

关于Wayland和X的差异的理解,以一个事件从输入设备到显示屏幕的体现能更好说明问题。

下面是X和Waylaynd对比架构图:

 

更多参考:《Wayland》《wayland · GitLab》。

LVGL

特性

  • 丰富且强大的模块化图形组件:按钮 (buttons)、图表 (charts)、列表 (lists)、滑动条 (sliders)、图片 (images) 等
  • 高级的图形引擎:动画、抗锯齿、透明度、平滑滚动、图层混合等效果
  • 支持多种输入设备:触摸屏、 键盘、编码器、按键等
  • 支持多显示设备
  • 不依赖特定的硬件平台,可以在任何显示屏上运行
  • 配置可裁剪(最低资源占用:64 kB Flash,16 kB RAM)
  • 基于UTF-8的多语种支持,例如中文、日文、韩文、阿拉伯文等
  • 可以通过类CSS的方式来设计、布局图形界面(例如:FlexboxGrid
  • 支持操作系统、外置内存、以及硬件加速(LVGL已内建支持STM32 DMA2D、SWM341 DMA2D、NXP PXP和VGLite)
  • 即便仅有单缓冲区(frame buffer)的情况下,也可保证渲染如丝般顺滑
  • 全部由C编写完成,并支持C++调用
  • 支持Micropython编程,参见:LVGL API in Micropython
  • 支持模拟器仿真,可以无硬件依托进行开发
  • 丰富详实的例程
  • 详尽的文档以及API参考手册,可线上查阅或可下载为PDF格式

硬件要求

要求 最低要求 建议要求
架构 16、32、64位微控制器或微处理器
时钟 > 16 MHz > 48 MHz
Flash/ROM > 64 kB > 180 kB
Static RAM > 16 kB > 48 kB
Draw buffer > 1 × hor. res. pixels > 1/10屏幕大小
编译器 C99或更新

更多参考:《LVGL · GitHub》。

Buildroot下支持的几种GUI

Buildroot下的GUI框架:

  • cegui06:Crazy Eddie的GUI系统是一个免费的库,为图形API/引擎提供窗口和小部件。
  • efl:Enlightenment Foundation Libraries,一个开源UI工具包。Getting started with EFL (enlightenment.org)
  • QT5
  • tekui:一个轻量、独立、可移植的GUI工具包, 用lua和C开发。tekUI : About (neoscientists.org)
  • X.org Window System:支持X11R7的库、服务器、驱动程序和应用程序

posted on 2023-03-26 23:59  ArnoldLu  阅读(599)  评论(0编辑  收藏  举报

导航