一、开发平台说明
硬件:立创·实战派ESP32-C3开发板。处理器ESP32-C3(内置400KB SRAM),无内置FLASH,2.0寸液晶(液晶驱动IC:ST7789,触屏驱动IC:FT6336),下载口UART0。
ESP32-C3 MicroPython固件:MicroPython - Python for microcontrollers,这是官方编译的,可以直接用。
开发工具:在windows系统上安装了VMware虚拟机,在VMware虚拟机中安装了ubuntu18系统。
二、编译ESP32-C3 + LVGL
上一篇博客讲了如何下载及编译lv_micropython,编译ESP32-C3+LVGL还需要下载ESP-IDF,当前最新版是v5.2.0,但是MicroPython最大支持到**v4.4** ,所以下载esp-idf v4.4。lv_micropython/ports/esp32的README.md有相关说明,如下:
说明文档:micropython/ports/esp32/README.md at master · micropython/micropython · GitHub
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=esp32c3
设置目标芯片为esp32c3。
每次打开命令窗口都需要执行一次 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_C3
如果提示更高版本的cmake,请看“遇到问题章节”问题2。
三、遇到问题
问题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