这个错误的直接原因是:你正在往一颗 ESP32-C5 revision v1.0 芯片里烧录一个 bootloader.bin,但这个 bootloader 在编译时声明自己只支持芯片版本:


[v0.0 - v0.99]

而实际芯片是:


this chip is revision v1.0

所以 esptool.py 阻止烧录:


A fatal error occurred: bootloader/bootloader.bin requires chip revision in range [v0.0 - v0.99]
(this chip is revision v1.0). Use --force to flash anyway.

也就是说:bootloader 与实际 ESP32-C5 芯片 revision 不匹配。


关键日志解读

你的日志里已经识别到了芯片:


Chip is ESP32-C5 (revision v1.0)

但是烧录的 bootloader 是:


bootloader/bootloader.bin requires chip revision in range [v0.0 - v0.99]

这说明 bootloader.bin 不是针对这颗 v1.0 芯片构建的,或者构建配置里把支持的最高芯片版本限制在了 v0.99


常见原因

1. ESP-IDF 版本对 ESP32-C5 rev v1.0 支持不完整

你当前路径看起来是:


idf5.4_py3.11_env

如果你使用的是较早的 ESP-IDF 5.4 分支、旧的 preview 支持包,可能默认只支持 ESP32-C5 早期工程样片 / ECO 版本,也就是 v0.x

现在你的板子是正式或较新的:


ESP32-C5 revision v1.0

因此老的 bootloader revision 约束不接受它。


2. 项目残留了旧的 sdkconfig

如果这个工程之前是给旧版 ESP32-C5、ESP32-C6、ESP32-C3 或者其他芯片配置过的,sdkconfig 里可能保留了芯片 revision 限制。

比如类似这种配置:


CONFIG_ESP32C5_REV_MIN...
CONFIG_ESP32C5_REV_MAX...

或者构建系统生成的 bootloader image header 里写入了最大 revision 0.99


3. 没有重新完整清理 bootloader

ESP-IDF 的 bootloader 是单独构建产物。你即使改了部分配置,如果没有 fullclean,旧的 bootloader 可能还在:


build/bootloader/bootloader.bin

于是继续烧录旧产物。


不建议直接用 --force

日志提示:


Use --force to flash anyway.

但这个只是绕过检查,不代表一定能正常运行。

不建议直接加 --force,原因是 bootloader 可能真的没有针对 ESP32-C5 rev v1.0 做兼容,烧进去之后可能出现:


invalid header
boot loop
rst:0x...
waiting for download

只有在你非常确定 bootloader 实际兼容、只是 revision metadata 写错时,才考虑临时用 --force


建议处理方式

方案 1:升级 ESP-IDF

优先确认你用的 ESP-IDF 版本是否正式支持 ESP32-C5 revision v1.0

建议使用较新的 ESP-IDF release 或 master 分支,然后重新配置环境。


方案 2:删除旧配置并重新设置 target

在工程目录下执行:


idf.py fullclean
idf.py set-target esp32c5
idf.py menuconfig
idf.py build
idf.py flash

如果怀疑 sdkconfig 有历史残留,可以更彻底一点:


del sdkconfig
idf.py set-target esp32c5
idf.py build
idf.py flash

Windows PowerShell 下是:


Remove-Item sdkconfig
idf.py set-target esp32c5
idf.py build
idf.py flash

方案 3:检查 menuconfig 里的芯片 revision 配置

进入:


idf.py menuconfig

然后查找和芯片 revision 相关的配置项,通常在类似位置:


Component config
  → ESP System Settings
    → Minimum Supported ESP32-C5 Revision
    → Maximum Supported ESP32-C5 Revision

确保最大支持 revision 不要限制在 v0.99,要覆盖你的实际芯片:


v1.0

结论

你的问题不是串口、波特率、USB 驱动或 flash 接线问题。前面已经成功连接芯片并上传 stub:


Stub running...
Changed.
Configuring flash size...

真正失败点是 bootloader 的 chip revision 检查

根因可以概括为:

当前生成的 bootloader.bin 只允许烧录到 ESP32-C5 rev v0.x,但你的芯片是 ESP32-C5 rev v1.0。需要升级 ESP-IDF 或重新配置项目的 ESP32-C5 revision 支持范围,并完整重新构建 bootloader。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐