LAT1033
Local Application Tips
LAT1033 Rev 1.0 Jan. 2022
framebuffer 存为图片来检查内容
关键字:Framebuffer,GUI
1. 前言
客户在做 GUI 项目开发时,会碰到许多显示相关的问题。而屏幕花屏是比较严重的
题,如果产品出现花屏,会严重影响使用体验。正常的 UI 显示,包括画图和将帧缓冲传
输到屏幕两个过程。如果画图过程出错,那帧缓冲的内容就不对了,传输到屏幕后显示也
不对。而如果画图过程正确,而传输过程出错,虽然帧缓冲的内容是对的,而屏幕接收到
的数据出错了,那屏幕显示的内容自然也是错误的。因此在定位显示错乱、花屏等问
时,需要先判断是画图出错还是传输过程出错。本文会介绍一种方法,将帧缓冲内容导出
并保存为图片,来判断帧缓冲内容是否正确。
由于帧缓冲的内容为全部像素的 RGB 数据,在导出后需要借助其它工具 RGB 数据
转换为图片,方便在 PC 上直接查看。这里可以使 python pillow 包,将 RGB 转换为
JPG 图片。而读取帧缓冲的过程可以借 python pyswd 包来实现。
2. 环境安装
本机环境:Windows10 64bit
安装 python 3.9.0 (测试过 3.9.6 正常),检查系统环境变量,将 python 添加到 Path
中。下载:https://www.python.org/downloads/
1. 设置环境变量
LAT1033
LAT1033 - Rev 1.0 page 2/7
2.1. 安装 libusb
下载:https://github.com/libusb/libusb/releases
解压 libusb-1.0.24.7z,将 VS2019/MS64/dll/libusb-1.0.dll 拷贝到 python 安装目录,
python.exe 相同目录
2.2. 安装 pyusb
下载:https://pypi.org/project/pyusb/#files
打开 powershell,输入 pip install pyusb-1.2.1-py3-none-any.whl
2.3. 安装 Pillow
下载:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pil
打开 powershell,输入 pip install Pillow-8.3.1-cp39-cp39-win_amd64.whl
2.4. 安装 pyswd
下载:https://github.com/cortexm/pyswd/releases/tag/v1.0.0
解压 pyswd-1.0.0.zip,打开 powershell,进入 pyswd-1.0.0 目录,输入 python
setup.py install