LVGL在VScode中安装模拟器运行配置笔记教程

1、LVGL模拟器工程搭建

        LVGL(Light and Versatile Graphics Library,轻巧而多功能的图形库)是一个免费的开放源代码图形库,它提供创建具有易于使用的图形元素,精美的视觉效果和低内存占用的嵌入式GUI所需的一切。本文主要讲述如何实现在VScode中实现LVGL模拟器环境的搭建运行。

        LVGL在Windows平台下有很多模拟运行的方式,如官方主推的CodeBlocks、Visual Studios等,如下图所为LVGL官方对PC模拟器例举出来的IDE和说明信息。

        如下图所示,在体验了一下CodeBlocks时,因其IDE软件使用起来体验不友好,界面也不美观,因此转而寻求在VScode下完成LVGL的PC模拟器配置。

(1)、下载LVGL的官方模拟器项目

lvgl/lv_port_pc_eclipse at release/v8.3 (github.com)icon-default.png?t=N7T8https://github.com/lvgl/lv_port_pc_eclipse/tree/release/v8.3

(2)、下载LVGL源码

lvgl/lvgl at release/v8.3 (github.com)icon-default.png?t=N7T8https://github.com/lvgl/lvgl/tree/release/v8.3

(3)、下载LVGL驱动源码

lvgl/lv_drivers at release/v8.3 (github.com)icon-default.png?t=N7T8https://github.com/lvgl/lv_drivers/tree/release/v8.3

(4)、工程目录建立

        下载完上述的3个压缩包文件后,打开下载的目录位置,按照以下的4个步骤操作:

①、新建一个文件夹命名为 lvgl_template_v8.3

②、将下载的 lv_port_pc_eclipse-release-v8.3.zip 文件内容解压,并将所有文件复制到 lvgl_template_v8.3 文件目录下

③、将下载的 lv_drivers-release-v8.3.zip 文件内容解压,并将所有的文件复制到 lvgl_template_v8.3 文件夹下的 lv_drivers 目录下

④、将下载的 lvgl-release-v8.3.zip 文件内容解压,并将所有的文件复制到 lvgl_template_v8.3 文件夹下的 lvgl 目录下

        在完成上述的4个步骤后,并删除多余不需要的文件,其文件结构如下图所示

2、LVGL编译运行环境搭建

(1)、VScode插件安装

        在VScode环境中,LVGL的编译运行需要如下所示的C/C++语言支持包,CMake、CMake Tools,依次安装图中红框中的插件扩展包。

(2)、MinGW环境安装

  • MinGW是建立在gcc和binutils项目上的,用来编译和连接代码,使之运行在windows系统上;
  • 提供c、c++和fortran编译器和相关工具;
  • MinGW=Minimalist GNU for Windows;
  • MinGW使用微软的运行库,生成Windows下的代码;

        在工程中,使用MinGW用于CMake编译LVGL模拟器中的程序文件。

        下载MinGW64包:MinGW-w64 - for 32 and 64 bit Windows - Browse /mingw-w64/mingw-w64-release at SourceForge.neticon-default.png?t=N7T8https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/

        将下载的MinGW目录解压打开后,其文件结构如下图所示。

        将其这个工具文件夹目录下的二进制文件bin目录添加到环境变量中。

        打开命令行,在输入gcc -v,可以查看MinGW的环境变量设置是否成功

(3)、SDL2环境安装

        SDL2,全称为Simple DirectMedia Layer,是一个跨平台的多媒体开发库。SDL2提供了一系列函数,用于访问音频、键盘、鼠标、游戏杆和图形硬件,允许开发者编写一套代码即可在不同平台上运行。它的主要应用之一是游戏开发,许多知名游戏都是基于SDL2构建的。此外,SDL2也用于游戏开发工具、模拟器、样本演示和多媒体应用等。

        在本文中的LVGL就是使用了SDL2模拟一个显示触摸屏操作。

        下载SDL2支持文件:Releases · libsdl-org/SDL · GitHubSimple Directmedia Layer. Contribute to libsdl-org/SDL development by creating an account on GitHub.icon-default.png?t=N7T8https://github.com/libsdl-org/SDL/releases/

        将下载的SDL2支持包解压,并将cmake和x86_64-w64-mingw32复制到安装MinGW的路径下

        否则编译时CMake会找不到依赖文件导致报错。且将x86_64-w64-mingw32中的SDL2.dll文件复制一份,后面运行模拟器时,如果缺少此文件无法运行。

3、LVGL工程编译运行

(1)、在VScode中打开LVGL工程

        如果是CMake工程,打开工程文件时,VScode的最下面一栏会自动出现CMake工程的操作按键。

(2)、CMake编译运行程序

        如下图所示LVGL的程序正常正常编译运行,且模拟器中也出现了一个窗口,到了这一步说明在VScode下,LVGL模拟器配置正常。

(3)、解决编译通过,无法运行

        如上图所示,说明前面的环境安装是正常的,但运行时,出现报错,不能正常运行并出现一个LVGL的模拟器窗口。如果出现这种情况,说明是SDL2这个媒体库没有链接到,需要进入到此复制到MinGW路径下,将SDL2.dll这个动态库文件拷贝到LVGL工程中的bin目录下,方可实现LVGL模拟器的正常运行。

        然后,每次编译完时,手动将SDL2.dll文件复制到 bin目录下,或者修改顶层的CMakeLists.txt文件,让其编译时自动拷贝SDL2.dll文件到bin目录下。

# 拷贝SDL2.dll 文件到 bin目录下

file(COPY SDL2.dll DESTINATION ../bin)

        完成后,再次运行,即可正常出现LVGL的模拟器界面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/726781.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

遗传算法理解与代码实战(一)- demo(python手写代码)

遗传算法(Genetic Algorithm, GA)是模拟自然界中生物进化的机制来搜索最优解的方法。遗传算法属于进化计算的一部分,它借鉴了达尔文的自然选择和孟德尔的遗传学原理。 1、算法背景 遗传算法的灵感来源于生物进化过程。在自然界中&#xff0…

Linux CentOS系统安装Spug并结合内网穿透实现远程访问本地运维平台

目录 前言 1. Docker安装Spug 2 . 本地访问测试 3. Linux 安装cpolar 4. 配置Spug公网访问地址 5. 公网远程访问Spug管理界面 6. 固定Spug公网地址 结语 作者简介: 懒大王敲代码,计算机专业应届生 今天给大家聊聊Linux CentOS系统安装Spug并结合…

Upload 上传(图片/文件),回显(图片),下载(文件)

1.前端技术:V3 Ant Design Vue 2.后端技术:Java 图片上传/回显: 文件上传回显: 表结构:单文件/图片上传为A表对文件C表 (A表field字段 对应 C表id字段) 如图:A表中的 vehicle_d…

OracleXE112、plsqldev1207的安装和基本配置

OracleXE112、plsqldev1207的安装和基本配置 OracleXE112、plsqldev1207的安装和基本配置Oracle安装oracle是什么Oracle两个版本下载安装包 安装OracleXE112_Win64注意:安装到空目录下;输入口令(记住啊!)安装成功&…

【b站咸虾米】ES6 Promise的用法,ES7 async/await异步处理同步化,异步处理进化史

课程地址:【ES6 Promise的用法,ES7 async/await异步处理同步化,异步处理进化史】 https://www.bilibili.com/video/BV1XW4y1v7Md/?share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 图文地址:https://www.b…

HarmonyOS NEXT应用开发案例——滑动页面信息隐藏与组件位移效果

介绍 在很多应用中,向上滑动"我的"页面,页面顶部会有如下变化效果:一部分信息逐渐隐藏,另一部分信息逐渐显示,同时一些组件会进行缩放或者位置移动。向下滑动时则相反。 效果图预览 使用说明 向上滑动页面…

Django Web架构:全面掌握Django模型字段(上)

Django Web架构 全面掌握Django模型字段(上) - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article…

网络信息安全:nginx漏洞收集(升级至最新版本)

网络&信息安全:nginx漏洞收集(升级至最新版本) 一、风险详情1.1 nginx 越界写入漏洞(CVE-2022-41742)1.2 nginx 缓冲区错误漏洞(CVE-2022-41741)1.3 nginx 拒绝服务漏洞(CNVD-2018-22806) 二、nginx升级步骤 &…

每日一练 | 华为认证真题练习Day194

1、下面是路由器Huawei的部分输出配置,关于该部分配置描迷正确的是: [huawei] bgp 100 [huawei-bgp]peer 12.12.12.2 ip-prefix P1 export [huawei]ip-prefix P1 index 5 deny 10.0.0.0 0 greater-equal 8 less-equal 32 [huawei]ip-prefix P1 index 5 deny 172…

Vue开发环境构建

相关依赖 1.安装Node https://nodejs.org/en/ 验证是否安装 λ node -v v20.10.0 2.安装cnpm镜像 npm install -g cnpm --registryhttps://registry.npm.taobao.org 3.webpack:构建工具 4.开发工具vscode 安装插件:扩展-搜索vetur,vscode-icon,chinese, 搭…

上门预约平台有哪些优势和特点

在着手开发之前,市场调研是不可或缺的步骤。它能帮助我们深入了解当前上门按摩市场的供需状况及竞争态势,进而挖掘潜在用户的真实需求和期望。这些宝贵的信息将成为我们塑造产品特性和锁定目标用户群体的关键。 紧接着,根据市场调研的反馈&am…

Java | Java的输入与输出

文章目录 Java输出1、System.out.println()2、System.out.printf()3、System.out.print() Java输入1、使用Scanner类的对象获取输入(1)一般类型输入(2)字符串类型输入(3)char类型输入 2、使用System.in.rea…

鸿蒙NEXT实战开发:【截屏】

展示全屏截图和屏幕局部截图。通过[screenshot]模块实现屏幕截图 ,通过[window]模块实现隐私窗口切换,通过[display]模块查询当前隐私窗口。 效果预览 全屏截图局部截图选择区域局部截图 使用说明: 点击右上角图标打开弹窗,选…

江苏某机场多座超高端智慧公厕上线

作为行业信息化程度最高的智慧机场综合管理系统,能为旅客、航空公司以及机场自身的业务管理提供及时、准确、系统、完整的信息服务,达到信息高度统一、共享、调度严密、管理先进和服务优质的目的。而其中的智慧卫生间建设,更是提升机场旅客服…

企业实施了MES管理系统,为什么还要做数据采集

随着信息技术的迅猛发展,企业对于生产管理的精细化、智能化需求日益增长。MES管理系统作为连接企业计划层与控制层的重要桥梁,已经成为现代制造业不可或缺的核心系统。然而,尽管企业实施了MES管理系统,数据采集工作仍然不可或缺。…

为什么最近黄金回收如此火爆?

龙行龘龘!龙年不仅买金热,卖金也大热。近来,黄金回收行业异军突起,成为了市场上的热门话题。无论是街头巷尾的小店,还是网络上的各大平台,黄金回收的广告和宣传都屡见不鲜。那么,为什么最近黄金…

Prometheus Kube-Proxy endpoint connection refused

问题 Kube-Proxy endpoint connection refused 解决方法&#xff1a; $ kubectl edit cm/kube-proxy -n kube-system ## Change frommetricsBindAddress: 127.0.0.1:10249 ### <--- Too secure ## Change tometricsBindAddress: 0.0.0.0:10249 $ kubectl delete pod -l …

python代码性能分析

基准测试可以发现程序变慢了&#xff0c;那么是因为什么原因导致性能变慢的&#xff0c;需要进一步做代码性能分析。python同样提供了性能分析工具。 cProfile cProfile是python默认的性能分析器&#xff0c;他只测量CPU时间&#xff0c;并不关心内存消耗和其他与内存相关联的…

操作教程|使用MeterSphere对恒生UFX系统进行压力测试

恒生UFX&#xff08;United Finance Exchange&#xff0c;统一金融交换&#xff09;系统&#xff08;以下简称为“UFX系统”&#xff09;&#xff0c;是一款帮助证券公司统一管理外部接入客户的系统&#xff0c;该系统整体上覆盖了期货、证券、基金、银行、信托、海外业务等各类…