因为之前使用的是ESP-IDF5.3版本。而5.3版本又不支持ESP32P4。而V5.4版本开始正式对P4的支持。所以我把ESP-IDF 升级到V5.4.2的release版本。
一、升级版本:【根据乐鑫官方的方式升级】ESP-IDF 版本简介 - ESP32-P4 - — ESP-IDF 编程指南 v5.4.2 文档
更新至一个稳定发布版本
对于量产用户,推荐更新至一个新的 ESP-IDF 发布版本,请参考以下步骤:
-
请定期查看 发布说明页面 ,了解最新发布情况。
-
如有新发布的 Bugfix 版本(例
v3.0.1
或v3.0.2
)时,请将新的 Bugfix 版本更新至你的 ESP-IDF 目录。 -
在 Linux 或 macOS 系统中,请运行如下命令将分支更新至 vX.Y.Z:
cd $IDF_PATH
git fetch
git checkout vX.Y.Z
git submodule update --init --recursive
-
在 Windows 系统中,需要将
cd $IDF_PATH
替换为cd %IDF_PATH%
。 -
在主要版本或次要版本新发布时,请查看发布说明中的具体描述,并决定是否升级版本。具体命令与上方描述一致。
升级过程基本上是没有什么问题的。
二、升级完成后-测试
运行 get_idf后出现了错误如下:
Traceback (most recent call last):
File "/home/book/esp/esp-idf/tools/idf.py, line 3262, in <module>
.
.
.
AttributeError: '_SpecialForm' object has no attribute 'replace'
后面百度搜索找到一篇文章:Ubuntu20.04.1下ESP32环境esp-idf配置之路_ubuntu esp-idf-CSDN博客
类似的错误。但是解决方法不一样。我按照这文章的方式不行
这里我的Ubuntu就执行不了。我的环境的在~/.espressif/python_env/idf5.4_py3.9_env/这里面明显不一样。然后执行apt也会提示:WARNING: apt does not have a stable CLI interface. Use with caution in scrip。
三、解决问题
解决1:
【后面怎么设置也不行。没有办法就尝试把python版本改一下。官方也没有看到python具体版本号,只是看到python3版本。我V5.3.2是用python3.9.0是可以的。也没有考虑是python的问题。这次搞了一天多问题依旧。所以我就升级一个python3.10.16版。】
升级python版本方法:Linux Ubuntu系统升级修改python至Python3.9版本,更新pip为pip3_linux怎么升级python3.9-CSDN博客
问题2:新的终端打开get_idf出现问找到环境
$ get_idf
Checking "python3" ...
Python 3.10.16
"python3" has been detectedERROR: ESP-IDF Python virtual environment "/home/book/.espressif/python_env/idf5.4_py3.10_env/bin/python" not found. Please run the install script to set it up before proceeding.
解决2:这时候看~/.espressif/python_env/idf5.4_py3.9_env/是3.9.0这个时候我就重新把这cp一个重命名3.10就好了
升级完后再get_idf竟然好了。