一、环境介绍

开发平台: wsl+Ubuntu 20.04
适用平台:创龙 RK3562 + Ubuntu 20.04 SDK,7寸mipi屏幕800*1280
LVGL 版本:v8.3(与 GUI Guider 兼容)
参考:https://blog.csdn.net/weixin_44550536/article/details/131714105
参考:LVGL 官方文档


二、 源码准备

在LVGL 的 Github 主页(https://github.com/lvgl )中有一个LVGL配置为与标准的Linux帧缓冲区一起工作的一个工程,接下来的移植则建立在工程之上,在主页中搜索Linux 选择lv_port_linux。
在这里插入图片描述
选择8.3这个版本然后下载,并放入到开发机Ubuntu中并解压
在这里插入图片描述
解压lv_port_linux_frame_buffer-release_v8.3.zip命令如下:

unzip lv_port_linux_frame_buffer-release_v8.3.zip 

解压完成以后只需要关注以下文件及文件夹

文件名 主要作用
Makefile 控制编译与链接流程
lv_conf.h LVGL 核心功能配置
lv_drv_conf.h 底层硬件驱动使能
main.c 程序入口与初始化
lv_drivers(空文件夹) 通用驱动抽象层
lvgl(空文件夹) 核心图形库

解压完成以后lv_drivers和lvgl这两个文件夹是空的,接下需要将这两个空文件夹补齐
在这里插入图片描述
接下来补全lvgl这个空文件夹,主页中点击lvgl 下载lvgl8.3这个版本
在这里插入图片描述
在这里插入图片描述
解压核心图形库源码lvgl-8.3.11.tar.gz到lv_port_linux_frame_buffer-release-v8.3/lvgl文件夹中,命令如下

tar -xzf lvgl-8.3.11.tar.gz -C lv_port_linux_frame_buffer-release-v8.3/lvgl --strip-components=1

在主页中搜索另外一个文件夹的名字lv_drivers 下载8.3这个版本
在这里插入图片描述
在这里插入图片描述
解压驱动文件lv_drivers-v8.3.0.tar到lv_port_linux_frame_buffer-release-v8.3/lv_drivers/中,命令如下

tar -xf lv_drivers-v8.3.0.tar -C lv_port_linux_frame_buffer-release-v8.3/lv_drivers --strip-components=1

到此两个空文件夹已经补齐了,可以进行后面的配置及编译步骤了

小结:总共需要下载的3个资源如下图所示
在这里插入图片描述
下载地址如下

组件 作用 下载地址
lvgl 核心图形库(控件、渲染引擎、事件系统) https://github.com/lvgl/lvgl/tree/release/v8.3
lv_drivers 通用驱动抽象层(fbdev/evdev/SDL 等接口) https://github.com/lvgl/lv_drivers/tree/release/v8.3
lv_port_linux_frame_buffer Linux 平台移植示例(main.c + Makefile) https://github.com/lvgl/lv_port_linux/tree/release/v8.3

三、编译

编译前需要下载好交叉编译工具链。
修改/lv_port_linux_frame_buffer-release-v8.3目录下的 Makefile(适配交叉编译)

# 注释掉默认编译器
# CC ?= gcc

# 添加 RK3562 交叉编译工具链
CC = aarch64-none-linux-gnu-gcc
AR = aarch64-none-linux-gnu-ar
LD = aarch64-none-linux-gnu-gcc

在这里插入图片描述
修改lv_drv_conf.h中 define EVDEV_NAME “/dev/input/event1” 为对应开发板的触摸事件源,不使用触摸可以不用修改
在这里插入图片描述
make clean      清除
make -j20      编译
file demo      查看是否使用交叉编译工具链编译

通过scp命令将可执行文件发送到目标板中
scp demo root@192.168.137.112:~
在开发板中执行
在这里插入图片描述
观察屏幕,可以显示及触摸
在这里插入图片描述
在这里插入图片描述

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐