基于Codeblock的LVGL模拟器Windows平台环境搭建

文章目录

  • 基于Codeblock的LVGL模拟器Windows平台环境搭建
    • 概述
    • 一、介绍
    • 二、使用CodeBlock版本方法以及需要注意的坑
      • 1、下载lvgl模拟器仓库
      • 2.下载CodeBlock
      • 3.运行工程
    • 总结

概述

最近在折腾使用ESP32基于Arduino运行lvgl,但是Arduino编译esp32的速度属实着急,至少5分钟一次,稍微复杂点能上十分钟,属实折磨,在开发的时候及其影响效率,还是需要一个模拟器,这里记录下折腾模拟器踩过的坑。

一、介绍

LVGL的模拟器分为以下版本:

  • 带有 SDL 驱动程序的 Eclipse:推荐在 Linux 和 Mac 上使用;
  • CodeBlock:推荐在 Windows 上;
  • 带有 SDL 驱动程序的 VisualStudio:适用于 Windows;
  • 带有 SDL 驱动程序的 VSCode:推荐在 Linux 和 Mac 上使用;
  • 带有 SDL 驱动程序的 PlatformIO:推荐在 Linux 和 Mac 上使用;
  • MDK with FastModel: 适用于 Windows;
  1. 刚开始是准备省点事,尝试用VSCode来运行,但是他的工程使用makefile来编译,其中的部分命令没法直接在windows下make,会报错,有解决办法是使用Msys在bash下执行make,但是我没有成功,后面有机会再深入研究Msys吧。

  2. 其次就是MDK工程,这是一个Keil工程,这是在名为 MPS3 (AN547) 的 Arm 官方 FPGA 原型开发板上运行的 Cortex-M55 的 LVGL ,也可以在名为Corstone-300-FVP的模拟器上运行项目模板,也不是很适合目前需要。

  3. 至于CodeBlock,则是很友好的,如果安装自带MinGW的版本,甚至不需要配置编译环境,就能直接运行,省时省力省心。

二、使用CodeBlock版本方法以及需要注意的坑

1、下载lvgl模拟器仓库

首先,我们从Github仓库将lv_port_win_codeblocks下载下来然后解压,也可以通过git bash运行命令git clone https://github.com/lvgl/lv_sim_codeblocks_win.git将工程克隆下来。

这时候文件夹里的lvgl以及lvgl_drivers文件夹是空的

根据Github的说明,在clone以后,需要从文件夹内执行git submodule update --init --recursive从指定的仓库把指定版本的文件拷贝到对应的文件夹

如果git比较慢,直接使用git bash执行命令可能很费时间而且会报错,也可以从文件夹内的.gitmodules文件中获取到该文件的git地址,手动进行下载,并解压复制到对应的文件夹。

但是这里存在一个坑: 链接指向的仓库中的文件是最新版本,而这个模拟器能使用的并不是最新版本,其对应的版本如下图中文件夹名@的后缀:

解决方法是直接在lv_port_win_codeblocks界面下,点击上图的两个文件夹(直接点后面的蓝链就可以),这时候跳转到的就是正确版本的lv_drivers以及lvgl目录,在这里进行手动下载然后解压即可。

最后文件形式如下:

当然,考虑到可能有访问github不方便的朋友,这里放出已经打包好的代码包:
链接: https://pan.baidu.com/s/1TSPto9dObhgGgW8ErJcx-g 提取码: yu3h

2.下载CodeBlock

CodeBlock分为两种,一种是自带MinGW编译器的,一种是不带的,不带的需要自己手动下载MinGW并且配置到CodeBlock里,而且有很大概率编译报错,因此建议下载自带MinGW的版本*,点击这里下载64位CodeBlock。下载完成后,修改安装路径,其他默认安装即可,需要打勾选择的地方全都保持默认,安装完成后去安装的文件夹里确认是不是有MinGW。

然后打开软件,点击Setting -> Compiler检查编译器路径,因为如果系统环境变量里有MinGW,它可能会优先选择系统的编译器

确保配置如上图所示。

3.运行工程

如同常规软件导入工程一样,File -> Open -> LittlevGL.cbp,将cbp格式的工程文件打开。

在Source目录下的mian.c就相当于单片机的main.c,也是有一个预先配置初始化等,随后在while 1循环里定时更新lvgl调度器,循环外面的绘制控件的函数可以对其进行修改。

然后点击黄色小齿轮,编译,等待一段时间后,如果一切正常,不会报红色Error,只有几个warning,这个无关紧要,随后运行即可。

默认运行的是widget_demo,一个的经典演示界面

至此,完成lvgl模拟器的配置。

总结

其实按照官网建议来,能一切顺利,我是因为前期不想装codeblock,想尝试vscode,然鹅官网说了只是为Mac和Linux配置的,结果浪费几小时没结果,如果是采用官方推荐的CodeBlock,就只用从git拉代码、执行命令克隆文件、装软件、导入执行…轻轻松松。

不要中途脑袋一拍去整幺蛾子,除非没办法,我当时前面因为想着自己有装MinGW,就装了不带MinGW的CodeBlock,结果编译报错。后面git实在clone不动,迫不得已自己找仓库配工程,结果没注意lvgl版本的问题,编译也不通过。虽然都是小问题,但是也很搞心态,走前人走过的路还是安心。

基于Codeblock的LVGL模拟器Windows平台环境搭建[带源码]相关推荐

  1. Dart开发(一)Windows平台环境搭建

    Dart开发Windows平台环境搭建 SDK官网下载地址:https://gekorm.com/dart-windows/ 安装完成后,在命令行输入:dart --version,安装成功会出现相应 ...

  2. 基于Java毕业设计校园社团管理平台演示录像2021源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计校园社团管理平台演示录像2021源码+系统+mysql+lw文档+部署软件 基于Java毕业设计校园社团管理平台演示录像2021源码+系统+mysql+lw文档+部署软件 本源码技 ...

  3. 计算机毕业设计ssm基于SSM框架的宿舍管控平台6z76b系统+程序+源码+lw+远程部署

    计算机毕业设计ssm基于SSM框架的宿舍管控平台6z76b系统+程序+源码+lw+远程部署 计算机毕业设计ssm基于SSM框架的宿舍管控平台6z76b系统+程序+源码+lw+远程部署 本源码技术栈: ...

  4. 计算机毕业设计ssm基于HTML5的流浪动物领养平台yww0b系统+程序+源码+lw+远程部署

    计算机毕业设计ssm基于HTML5的流浪动物领养平台yww0b系统+程序+源码+lw+远程部署 计算机毕业设计ssm基于HTML5的流浪动物领养平台yww0b系统+程序+源码+lw+远程部署 本源码技 ...

  5. 《在(虚拟机)ubuntu16.04上进行openwrt环境搭建及源码下载》

    广西·河池学院 广西高校重点实验室培训基地 系统控制与信息处理重点实验室 本篇博客来之河池学院:OpenWrt无线路由组 写作时间: 2020年7月30日21:00:51 <在(虚拟机)ubun ...

  6. 普罗米修斯监控系统_基于Prometheus和Grafana的监控平台 - 环境搭建

    导读 微服务中的监控分根据作用领域分为三大类,Logging,Tracing,Metrics. Logging - 用于记录离散的事件.例如,应用程序的调试信息或错误信息.它是我们诊断问题的依据.比如 ...

  7. javaweb基于JSP开发Java在线学习平台 大作业 毕业设计源码

    基于JSP开发Java在线学习平台:(毕业设计/大作业) 开发环境:    Windows操作系统 开发工具: MyEclipse+Jdk+Tomcat+MYSQL数据库 运行效果图: 基于JSP开发 ...

  8. 基于SSM校园学术报告管理平台毕业设计文案及源码

    基于SSM校园学术报告管理平台 SSM框架的毕业设计最新项目:基于SSM校园学术报告管理平台 目录: 项目介绍: 项目采用SSM框架+MySQL数据库做后台技术支持,JavaMaile完成邮件发送功能 ...

  9. 基于小程序的微信学习平台设计与实现+源码

    统计显示, 我国微信用户 数量在 2018 年超过了 10亿,小程序是微信开发推出的新型应用程序,用户无须下载安装就可以在微信中进行程序的开发. 相比传统的APP,小程序能调用微信基础框架.API接口 ...

最新文章

  1. RN 与原生通信(Android篇)
  2. android 8.0 intent,Android 8.0通知栏适配问题
  3. mysql中shift h_MySQL复制技术对比与容器化探究
  4. 使用AOP动态调用WebService
  5. 使用nmap扫描提示utf-8编码错误_Web漏洞扫描神器Nikto使用指南
  6. 如何使用事务码SMICM分析ABAP代码发起的HTTP请求的错误
  7. Java 集合-集合介绍
  8. Laravel 使用 Aliyun OSS 云存储
  9. [leetcod] Clone Graph
  10. 查看linux网络带宽
  11. wpf 依赖强制回调
  12. centos 6.9 mysql5.7_centos6.9升级Mysql版本至5.7
  13. CPU的内部架构和工作原理
  14. Beyond Compare如何展开所有子文件夹
  15. 规范 : disable account
  16. 前端上传组件Plupload
  17. iphone拍照标注转发微博应用--Gurgle 发布
  18. mongo 登陆_MongoDB 账号密码登录
  19. “微信之父”张小龙首次演讲实录:详解微信平台四大价值观
  20. 谷歌浏览器chrome devtools 插件安装

热门文章

  1. 向外管理之政治与协商
  2. unity中的基本材质使用
  3. php快手验证码,快手滑块验证码人工自动识别源码
  4. 2022年成都市双流区33条电子信息产业政策申报条件、材料及政策咨询汇编
  5. dataframe常用笔记
  6. Unity 调用IOS的StoreKit实现在游戏内部的对游戏进行星级评价和评论
  7. ftp自动登录服务器
  8. Java第12篇输入输出I/O和ASCII码
  9. win7计算机没有光驱图标不见了,win7系统光驱图标为什么不见了?该如何处理?...
  10. SQLSERVER 事务日志的 LSN 到底是什么?