【嵌入式Linux系统移植lvgl8.3】
一、环境介绍
开发平台: 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:~
在开发板中执行
观察屏幕,可以显示及触摸

更多推荐
所有评论(0)