为ESP32-S3编译带LVGL的MicroPython失败求助
编译LVGL集成版MicroPython for ESP32-S3时的WIFI_AUTH常量不匹配错误修复
问题场景
按照lv_micropython的ESP32端口文档编译ESP32-S3版本时,执行make或make BOARD=GENERIC_S3均触发静态断言错误,提示WIFI_AUTH常量需与ESP-IDF同步。
错误信息
/Users/lilygo/lv_micropython/ports/esp32/network_common.c:220:1: error: static assertion failed: "Synchronize WIFI_AUTH_XXX constants with the ESP-IDF. Look at esp-idf/components/esp_wifi/include/esp_wifi_types.h" _Static_assert(WIFI_AUTH_MAX == TEST_WIFI_AUTH_MAX, "Synchronize WIFI_AUTH_XXX constants with the ESP-IDF. Look at esp-idf/components/esp_wifi/include/esp_wifi_types.h"); ^~~~~~~~~~~~~~ [1393/1743] Building C object esp-idf/main/CMakeFiles.../lilygo/lv_micropython/lib/littlefs/lfs2.c.obj ninja: build stopped: subcommand failed. ninja failed with exit code 1 -e See https://github.com/micropython/micropython/wiki/Build-Troubleshooting make: *** [all] Error 1
已完成的环境准备
已安装符合ESP32-S3要求的ESP-IDF v4.4版本:
git clone -b release/v4.4 --recursive https://github.com/espressif/esp-idf.git git submodule update --init --recursive ./install.sh idf.py --version ESP-IDF v4.4.7-143-g309ffa5565
修复步骤
- 打开ESP-IDF安装目录下的
components/esp_wifi/include/esp_wifi_types.h,找到WIFI_AUTH_MAX的定义,记录其数值。 - 打开
lv_micropython/ports/esp32/network_common.c,找到TEST_WIFI_AUTH_MAX的宏定义(通常在静态断言语句上方),将其值修改为与ESP-IDF中的WIFI_AUTH_MAX完全一致。 - 保存修改后,重新执行
make BOARD=GENERIC_S3命令即可完成编译。
原因说明
该错误是由于lv_micropython代码中硬编码的WIFI_AUTH常量数量,与你当前使用的ESP-IDF版本中的定义不一致导致的。ESP-IDF更新后新增了WIFI认证类型,使得WIFI_AUTH_MAX值变大,触发了静态断言检查失败。
内容的提问来源于stack exchange,提问作者Most Wanted
相关产品推荐
相关产品推荐

