基于Codeblock的LVGL模拟器Windows平台环境搭建[带源码]
基于Codeblock的LVGL模拟器Windows平台环境搭建文章目录基于Codeblock的LVGL模拟器Windows平台环境搭建概述一、介绍二、使用CodeBlock版本方法以及需要注意的坑1、下载lvgl模拟器仓库2.下载CodeBlock3.运行工程总结概述最近在折腾使用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刚开始是准备省点事尝试用VSCode来运行但是他的工程使用makefile来编译其中的部分命令没法直接在windows下make会报错有解决办法是使用Msys在bash下执行make但是我没有成功后面有机会再深入研究Msys吧。其次就是MDK工程这是一个Keil工程这是在名为 MPS3 AN547 的 Arm 官方 FPGA 原型开发板上运行的 Cortex-M55 的 LVGL 也可以在名为Corstone-300-FVP的模拟器上运行项目模板也不是很适合目前需要。至于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 提取码: yu3h2.下载CodeBlockCodeBlock分为两种一种是自带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版本的问题编译也不通过。虽然都是小问题但是也很搞心态走前人走过的路还是安心。