一、开发平台说明
开发工具:在windows系统上安装了VMware虚拟机,在VMware虚拟机中安装了ubuntu18系统。
二、编译ESP32 + LVGL
上一篇博客讲了如何下载及编译lv_micropython,编译ESP32+LVGL还需要下载ESP-IDF,当前最新版是v5.2.0,但是lv_micropython最大支持到**v4.4** ,所以下载esp-idf v4.4。lv_micropython/ports/esp32的README.md有相关说明,如下:

1、下载ESP-IDF
进入ubuntu系统,启动终端,cd到存放源码的目录。
克隆esp-idf v4.4:
git clone -b v4.4 https://github.com/espressif/esp-idf.git
更新其子模块:
$ cd esp-idf
$ git submodule update --init --recursive
2、编译固件
安装编译工具、配置环境变量 :
$ ./install.sh all
会在$HOME路径下创建.espressif文件夹存放工具,这个过程大约需要十分钟。install.sh只需要执行一次。执行成功会出现如下提示:

如果提示permit相关的问题,则在指令前加上sudo;如果提示pip相关的问题,请看“遇到问题章节”问题1。
导入编译相关的环境变量:
$ source export.sh
设置IDF_TARGET:
export IDF_TARGET=esp32
设置目标芯片为esp32。 当前的lv_micropython支持esp32,不支持esp32s2、esp32s3、esp32-c3,编译会报错。
每次打开命令窗口都需要执行一次 source export.sh。执行成功会出现如下提示:

从esp-idf目录离开,进入lv_micropython目录:
$ cd ..
$ cd lv_micropython
我把esp-idf和lv_micropython下载到同一个路径的。
编译mpy-cross:
make -C mpy-cross
如果之前编译过mpy-cross,就不用再编译了。
编译 esp-idf和lv_micropython:
$ make -C ports/esp32 submodules
$ make -C ports/esp32 LV_CFLAGS="-DLV_COLOR_DEPTH=16" BOARD=GENERIC
如果提示更高版本的cmake,请看“遇到问题章节”问题2。
3、构建ESP-IDF
可以在lv_micropython/ports/esp32目录下执行idf.py menuconfig在命令行界面中通过导航和选择不同的配置选项来配置项目,执行之前需要执行export IDF_TARGET=esp32设置目标芯片。
三、遇到问题
问题1
执行sudo ./install.sh all命令时,出现以下错误提示:

意思是没有找到pip,但是通过pip -V指令能查询已安装pip。
在网上一番搜索后,有网友之前也遇到了这个问题,并提供了解决办法。如下所述:

解决方法:
进入~/.espressif/python_env/idf5.2_py3.8_env/lib/python3.8/site-packages目录,下载pip,安装pip:
$ cd ~/.espressif/python_env/idf5.2_py3.8_env/lib/python3.8/site-packages
$ sudo curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ sudo ~/.espressif/python_env/idf5.2_py3.8_env/bin/python3 get-pip.py
然后再次执行sudo ./install.sh all就可以了。
问题2
执行make -C ports/esp32 LV_CFLAGS="-DLV_COLOR_DEPTH=16" BOARD=GENERIC_C3命令时,出现以下错误提示:

解决方法:
进入~/Downloads,下载当前最新的cmake-3.29.2.tar.gz:
$ cd cd ~/Downloads/
$ wget https://cmake.org/files/LatestRelease/cmake-3.29.2.tar.gz
解压到当前目录:
$ tar -xvzf cmake-3.29.2.tar.gz
解压之后此路径下会有一个cmake-3.29.2文件夹。
进入到cmake目录:
$ cd cmake-3.29.2/
配置:
$ chmod 777 ./configure
./configure
编译:
make
安装:
sudo make install
执行过程如下:

将cmake安装到/usr/local/bin目录下。
将cmake链接到cmake3.29:
$ sudo update-alternatives --install /usr/bin/cmake cmake /usr/local/bin/cmake 1 --force
查询cmake版本:
$ cmake --version
cmake version 3.29.2
至此,cmake已升级到3.29.2。
问题3
编译 esp-idf和lv_micropython时,出现以下错误提示:

esp-idf与mycropython版本不匹配。
解决方案:
将esp-idf版本切换到v4.4:
$ cd esp-idf
$ git checkout v4.4
$ git submodule update --init --recursive
删除~/.espressif:
rm -rf $HOME/.espressif
重新安装工具:
$ ./install.sh all
lv_micropython技术交流:961509395
本文详细描述了在Windows上通过VMware安装Ubuntu并在此环境中编译ESP32+LVGL的过程,包括ESP-IDF的下载、环境配置、固件编译以及遇到的三个常见问题及其解决方法。
2699

被折叠的 条评论
为什么被折叠?



