当前位置: 首页 > article >正文

【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解决


http://www.kler.cn/a/511556.html

相关文章:

  • 神经网络常见面试题
  • Ceph与RAID在存储中的协同工作过程
  • 讲一下ZooKeeper的持久化机制?
  • CSS:语法、样式表、选择器
  • 基于微信小程序的电子点菜系统设计与实现(KLW+源码+讲解)
  • 32单片机综合应用案例——基于GPS的车辆追踪器(三)(内附详细代码讲解!!!)
  • java spring,uName,kValue,前端传值后端接不到
  • 《知识图谱:鸿蒙NEXT中人工智能的智慧基石》
  • 【蓝桥杯】43687.赢球票
  • 【Linux系统】Linux下的图形库 ncurses(简单认识)
  • 基于VSCode+CMake+debootstrap搭建Ubuntu交叉编译开发环境
  • 电子电气架构 --- ECU故障诊断指南
  • LeetCode 题目 2545. 根据第 K 场考试的分数排序
  • Yii框架中的数据提取:从不同数据源获取数据
  • GoLang教程002:Go语言中的变量声明
  • Flutter+vsCode 安装问题记录
  • python怎么搞定输入??
  • 【Linux】Linux命令:ifconfig
  • Java 基于 SpringBoot+Vue 的校园数字化图书馆(源码+部署+文档)
  • 电梯系统的UML文档06
  • 从单机到集群:Docker、Kubernetes 与 Helm 部署 Redis 全攻略
  • Cyber Security 101-Offensive Security-SQLMap: The Basics(sqlmap基础)
  • 2024年博客成长记:成就、挑战与未来展望
  • 【AIGC】SYNCAMMASTER:多视角多像机的视频生成
  • 毕业就业信息|基于Vue的毕业就业信息管理系统的设计与实现(源码+数据库+文档)
  • apisix的authz-casbin