显示
概述
Ameba 显示架构采用 LVGL 作为 GUI 引擎。LVGL 是目前最流行的免费开源嵌入式图形库,可为任何 MCU、MPU 和显示类型创建精美用户界面。该架构不仅提供 LVGL 的参考移植方案和多种参考驱动程序,还提供了强大的 Wi-Fi/Bluetooth 通信能力,内置智能语音算法模块,各种通用的网络协议帧等等,广泛应用于消费电子和家电领域。
应用层
应用层的作用是用户交互入口,包含预定义应用场景。
模块名称 |
功能描述 |
---|---|
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 |
输入设备 |
处理各种输入设备事件,提供读取输入事件的接口 |