显示

概述

Ameba 显示架构采用 LVGL 作为 GUI 引擎。LVGL 是目前最流行的免费开源嵌入式图形库,可为任何 MCU、MPU 和显示类型创建精美用户界面。该架构不仅提供 LVGL 的参考移植方案和多种参考驱动程序,还提供了强大的 Wi-Fi/Bluetooth 通信能力,内置智能语音算法模块,各种通用的网络协议帧等等,广泛应用于消费电子和家电领域。

../../rst_multimedia/linux/figures/display_architecture.svg

应用层

应用层的作用是用户交互入口,包含预定义应用场景。

模块名称

功能描述

Launcher

主屏幕界面,应用启动器。

Settings

系统设置(显示、网络、声音等)。

Music

音频播放器。

Speech

语音助手交互界面。

核心组件

组件

显示(display)的核心功能组件主要有:

  • GUI 渲染: LVGL 提供丰富的 UI 组件(按钮、滑块、列表等)。lv drivers 是 LVGL 图形库的驱动集合。包含两个关键组件 drm 和 evdev。

  • 通信能力: 集成 Wi-Fi 连接管理(wpa_supplicant)、无线接入点(hostapd)、蓝牙协议栈(BlueZ)、USB 支持。

  • 多媒体支持​: 音频处理(PipeWire)、多媒体框架(Gstreamer)、图像解码(JPEG/PNG)、音视频处理(FFmpeg)。

  • 智能交互: 语音识别(AI Voice)。

应用场景

主要应用场景有:

  • 消费电子(智能家居、可穿戴设备)。

  • 工业 HMI(人机界面)。

  • 物联网终端(网关、传感器节点)。

外部库

Libdrm 是 Linux 内核中与 DRM 交互的标准库。详见

内核

Kernel 层是整个软件架构的基础,直接与硬件交互,为上层软件提供抽象和服务。具体如下所示。

设备文件

对应硬件接口

应用

/dev/dri/card0

DRM设备

显示屏初始化、像素格式设置、数据传输

/dev/Input/event

输入设备

处理各种输入设备事件,提供读取输入事件的接口