【Spiffo】环境配置:Linux下LVGL项目构建(含v8、v9)、针对git不到子项目的手动组装

简介:LVGL的项目通常不需要自己手动组装,直接git clone本体及其子项目即可,但是因为众所周知的原因,经常拉不下来,只能前往GitHub对应页面下载zip包后自己手动组装,关于自己组装官方并没有说的很细(虽然做法很简单就是了)。

对于v8和v9,两者在更新中调整了工程结构,目录上会有些许不同,这里两种都说一下好了。

一、LVGL v8.x

1、下载资源

首先下载对应的工程框架,下载配置好的工程文件比自己手动配置要方便一些,除非有特殊需求,否则默认不需要改config文件就能使用(当然需求刁钻的话后面还会提一嘴怎么配置)。

这里是Linux(诸如树莓派之类的各种派)使用,那么就是下载lv_port_linux:

lvgl/lv_port_linux: LVGL configured to work with a standard Linux framebuffer

假设是其他设备使用,则下载lv_port_xxx的工程,比如用ESP32,那就下载lv_port_esp32。

下载完框架后还需要lvgl本体以及支持的驱动程序包:

lvgl/lvgl: Embedded graphics library to create beautiful UIs for any MCU, MPU and display type.

lvgl/lv_drivers: TFT and touch pad drivers for LVGL embedded GUI library

说是版本统一,其实差个几个小版本其实问题不大,这里就在8.2的框架里塞8.3程序了

2、开始组装

先解压下载下来的三个东西,得到三个文件夹,分别为lv_port_linux-release-v8.2,lv_drivers-release-v8.3,lvgl-release-v8.3三个文件,进入框架lv_port_linux-release-v8.2文件夹后如图:

将lv_drivers-release-v8.3 下 所有东西复制进入lv_drivers,lvgl-release-v8.3 下 所有东西复制进lvgl文件夹

注意:不要直接在这两个文件里面解压缩,要保证文件夹下一级目录里直接就是其内容,如图

配置文件不需要修改,直接在lv_port_linux-release-v8.2下make就可以(自带了Makefile

中间会有若干警告,原因出在我们未使用的一些设置上,问题不大,不用管

编译完成后lv_port_linux-release-v8.2下会有一个可执行文件demo,这个是官方给的测试程序

看着不舒服可以在编译前到Makefile里修改成别的名字

3、运行测试程序

我这里先在主机上测试,结果对劲了再切换成交叉编译器放到板子上运行即可。

如果主机是虚拟机Ubuntu,由于默认的图形界面是用framebuffer推的,和Ubuntu的桌面冲突,所以先进命令行模式把fb0设备让出来

注意:以下操作每个人不一定一样,如果快捷键效果和我说的不一样,就F1-F12都试试

复制代码
CTRL Alt F1

退出登录

复制代码
CRTL Alt F3进入命令行模式
复制代码
CTRL Alt可以释放鼠标到Windows

到工程目录下执行demo程序(要以管理员身份),效果如下就算成功了:

复制代码
CTRL c可以停止程序

假设关闭时花了,小问题,clear即可

回到桌面模式

复制代码
CTRL Alt F1

4、DLC:如果需求刁钻想自己配置

如果是自己创建工程,则先手动先创建这几个东西:文件夹lv_drivers、lvgl以及main.c和Makefile文件(我这里直接复制过来了,手边没有的话用cmake生成更好,手搓Makefile多少沾点)

和之前一样将驱动和lvgl文件放入并

将lvgl中的lv_conf_temlate.h、lv_drivers中的lv_drv_conf_template.h复制到项目根目录并分别命名为lv_conf.h和lv_drv_conf.h命名必须一样,如图

对配置文件进行一些修改,首先是lv_conf.h第一行的0改成1启用文件

根据实际需求修改颜色深度,上面有对应的说明,我写32

然后搜索定位到设备参数,将FBDEV的判断参数改成1(如果使用DRM则找DRM的)

修改lv_drv_conf.h

同理启用配置

然后选择fbdev

设备号,一般0即可

二、LVGL v9.x

1、下载资源

同上,不过这次下载master的版本,最新的版本不再需要手动放入drivers文件夹了,所以下载这俩就可以了

2、组装

解压出来后跟上面一样将lvgl本体放入框架内的lvgl文件夹

同时,最新的v9没有再直接给出Makefile,而是用cmake的方式进行构建,所以按照官方的做法:

创建一个build文件夹,在build内进行构建,这样.o文件不会像上面那样滋的到处都是

创建build文件并进入

复制代码
mkdir build && cd build

目标文件夹后生成Makefile文件,会有几个文件生成

复制代码
cmake ..

然后make编译

复制代码
make

编译后项目根文件夹(也就是上一级目录)下出现一个bin文件,其中包含了一个可执行程序,即编译后的可执行程序

3、运行测试程序

执行方法同上,效果如图,一个动态的玩意,ctrl c终止后花了也是clear解决

相关推荐
长臂人猿几秒前
JVM常用工具:jstat、jmap、jstack
linux·运维·jvm
轻松Ai享生活28 分钟前
揭秘 linux:一张图看懂系统配置的核心
linux
wdxylb38 分钟前
云原生俱乐部-RH134知识点总结(2)
linux·云原生
_Chipen1 小时前
lazy_vim_cmake_clangd_从零到自动补全与语法检查
linux·编辑器·vim
椰子今天很可爱2 小时前
静态库和动态库
linux
檀越剑指大厂2 小时前
【Linux系列】如何在 Linux 服务器上快速获取公网
linux·服务器·php
共享家95272 小时前
linux-高级IO(上)
java·linux·服务器
丑小鸭是白天鹅3 小时前
嵌入式C语言学习笔记之枚举、联合体
c语言·笔记·学习
GUET_一路向前4 小时前
【C语言防御性编程】if条件常量在前,变量在后
c语言·开发语言·if-else·防御性编程
pusue_the_sun4 小时前
数据结构——栈和队列oj练习
c语言·数据结构·算法··队列