项目场景:
最近使用ESP32芯片开发蓝牙通信功能,使用到AT指令集开发加快效率,项目中用到的ESP32-C3模块出厂固件并不支持蓝牙AT指令,所以需要自己去官方下载ESP-AT固件然后编译重刷到模块中。
具体操作过程参考官方文档:https://docs.espressif.com/projects/esp-at/en/latest/esp32/Compile_and_Develop/How_to_clone_project_and_compile_it.html
问题描述
按照官方文档操作到下载编译工具链时遇到了问题,ESP-IDF报错提示虚环境已创建,不能再重新搭建另一个虚环境。
@报错log如下
Extracting /home/mattb/.espressif/dist/openocd-esp32-linux-amd64-0.11.0-esp32-20211220.tar.gz to /home/mattb/.espressif/tools/openocd-esp32/v0.11.0-esp32-20211220
Installing Python environment and packages
fatal: not a git repository (or any of the parent directories): .git
WARNING: Git describe was unsuccessful: b''
ERROR: This script was called from a virtual environment, can not create a virtual environment again
解决方案:
尝试过网络上的各种方案有改环境变量的,也有卸载重装Python版本的都不能解决问题,后在乐鑫官网关于ESP-IDF的更新说明中得到提示。
原文描述每个版本的ESP-AT固件对应特定版本的ESP-IDF,所以强烈建议使用ESP-AT工程默认的ESP-IDF版本,libesp32c3_at_core.a 底层的 ESP-IDF 版本与 ESP-AT 工程的 IDF 版本不一致可能会导致固件的错误操作。
ESP-AT 固件对应的 ESP-IDF 版本记录在 IDF_VERSION 文件中,这些文件分布在 module_config 文件夹下的不同模组文件夹中。该文件描述了模组固件所基于的 ESP-IDF 的分支、提交 ID 和仓库地址。例如,PLATFORM_ESP32C3 平台的 MINI-1 模组的 IDF_VERSION 位于 module_config/module_esp32c3_default/IDF_VERSION。
原文链接:https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32c3/Compile_and_Develop/How_to_update_IDF.html
根据文档进入到下载的ESP-AT文件中,在module_config/module_esp32c3_default/目录中找到IDF_VERSION
根据定义下载ESP-IDF5.0版本,重新编译,无报错,问题解决!
ESP-IDF下载链接:https://dl.espressif.cn/dl/esp-idf/?idf=4.3