1/4 兼容性公告 标题 关于 ESP32-C2 芯片版本 v2.0 的兼容性公告 发布日期 2025/03/03 公告编号 AR2025-001 编号 NA 版本 V1.0 概述 为使项目应用开发时 ESP32-C2 芯片能有更多的 flash 和 SRAM 空间可用,我们对 ESP32-C2 芯片版本进行了升级。最新的 ESP32-C2 芯片版本 v2.0 与升级后的 ESP-IDF 搭配使用,可以额外获得约 20 KB SRAM 空间和约 100 KB flash 空间供项目开发使用(以实际应用为准)。 多出的 SRAM 和 flash 空间通过更新 ROM 代码、将更多运行时需要的代码放入 ROM 中实现,SRAM 和 flash 的物理大小没有改变。ESP32-C2 v2.0 通过将 mbedTLS 的一些基础加密算法库放置到 ROM 中,以达到节省 flash 的目的,需要注意的是 ESP-IDF 默认没有开启 ROM mbedTLS。另外,随着 ESP-IDF 的版本的不断更新,ROM 中的函数也随之过期,可能实际额外得到的 SRAM 要小于 20 KB。同样的,额外得到的 flash 空间也可能小于 100 KB (以实际应用为准)。 v2.0 版本的 ROM 函数有较大变化,因此使用旧版本的 ESP-IDF 所编译的二进制文件(后称固件)无法直接运行在 v2.0 版本的芯片上,只有升级 ESP-IDF 到所需版本以上并重新编译的二进制文件才能运行在 v2.0 版本的芯片上。 如果同时使用 v2.0 及 v1.x ( v1.0–v1.2)版本的 ESP32-C2 芯片,也可在上述 IDF 版本经过配置重新编译出同时兼容两版本芯片的二进制文件,但这样的二进制文件无法使用由 ROM 节省出的约 20 KB SRAM 空间及约 100 KB flash 空间。 不同芯片版本兼容使用快速评估建议 ESP32-C2 芯片不同版本硬件是完全兼容的,以下主要评估软件部分的兼容性。如果正在使用非 v2.0 版本的芯片,且后续即将使用 v2.0 版本的芯片,则当前正在使用的 ESP-IDF 版本可能无法用于 v2.0 版本的芯片,需要升级 ESP-IDF 版本至 2/4 要求的最低版本以上。为支持芯片版本 v2.0 升级 ESP-IDF 有如下需求参考,供您快速评估。 使用v2.0版本芯片需求评估 是否需要升级 ESP-IDF至本公告所述版本以上 ESP-IDF menuconfig 中 Minimum Supported ESP32-C2 Revision 的设置 是否可以使用 v2.0芯片搭配新版本ESP-IDF 释放约20 KB SRAM 和约 100 KB flash 空间资源 备注 v2.0 和低于 v2.0 版本芯片项目使用同一固件维护,固件兼容 v2.0 及 v2.0 之前版本 是 Rev v1.0 否 ESP-IDF 若不升级,v2.0 版本芯片无法使用。 之前没有使用过低于 v2.0 版本的芯片,项目首次导入 v2.0 版本芯片 是 Rev v2.0 是 之后均需要使用 v2.0 及以上版本的芯片 v2.0 和低于 v2.0 版本芯片项目分开维护,v2.0 版本芯片的部分期望获取 v2.0 释放的 SRAM 和 flash 空间资源 是(建议使用同一个 ESP-IDF 版本以降低维护成本) 分别按照上面两种情况配置 仅 v2.0 版本的芯片能获得对应的空间资源 同一项目中使用低于 v2.0 芯片版本的旧固件仍需维护,因此不推荐此方式。 ESP32-C2 芯片版本 v2.0 所需的 ESP-IDF 版本 发布分支 推荐版本 需求版本 release/v5.4 5.4+ 5.4 release/v5.3 5.3.2+ 5.3.2 release/v5.2 5.2.4+ 5.2.4 release/v5.1 5.1.5+ 5.1.5 release/v5.0 5.0.8+ 5.0.8 注意:v5.3.2 及 v5.1.5 版本若显示不兼容的报错为误报,需在 “menuconfig” 中使 “ESP32C2_REV2_DEVELOPMENT” 选项以禁用错误提示 仅使用 v2.0 以上版本芯片(获取额外空间)所需的 ESP-IDF 配置 要使用芯片版本 v2.0 多出约 20 KB SRAM 和约 100 KB flash 空间资源 ,需完成以下步骤: 1. 升级 ESP-IDF 到 ESP32-C2 芯片版本 v2.0 所需的版本 3/4 2. 在 “menuconfig” 中配置 “Minimum Supported ESP32-C2 Revision”: 运行 ESP-IDF 的工程配置工具 “menuconfig” 时,将 “Minimum Supported ESP32-C2 Revision” (> Component config > Hardware Settings > Chip revision) 设置为 “Rev v2.0”。默认值是“Rev v1.0”。 3. 编译、烧录固件。 固件需要同时兼容 v2.0 及以下版本芯片所需的 ESP-IDF 配置 要编译一个同时支持 v2.0 及以下版本芯片的固件,需完成以下步骤: 1. 升级 ESP-IDF 到 ESP32-C2 芯片版本 v2.0 所需的版本 2. 确认在 “menuconfig” 中配置的 “Minimum Supported ESP32-C2 Revision” 的值为 “Rev v1.0” (方法同上小节) 3. 编译、烧录固件。 说明:“menuconfig” 中“Minimum Supported ESP32-C2 Revision” 选项的含义是,期望兼容的最低芯片版本。 如果用户将 “Minimum Supported ESP32-C2 Revision” 设置为 “Rev v2.0”,软件将会依赖 ROM 中新提供的代码,裁剪掉对应原本位于 SRAM 中的 20 KB 函数。因此,通过该选项编译获得的二进制文件将无法在 v2.0 以下的芯片版本上运行。 如果用户需要同时使用两版本(如 v1.2 及 v2.0)的芯片,则不能对这些函数进行裁剪。配置芯片版本时用户需在 “menuconfig” 中将 “Minimum Supported ESP32-C2 Revision” 设置低于或者等于所有使用芯片版本,乐鑫建议选择“Rev v1.0”,因为它兼容所有曾经量产过的芯片,包括 v1.0, v1.1 及 v1.2。之后重新编译二进制文件,得到的二进制文件将可同时在 v1.x 及 v2.0 版本的芯片上运行,但无法获得额外的 20 KB SRAM 空间。 如果用户将配置芯片版本时在 “menuconfig” 中将 “Minimum Supported ESP32-C2 Revision” 设置为 “Rev v2.0”,但错误烧录至 v2.0 版本以下芯片时,下载工具(esptool)和启动代码(二级引导程序)均会报错。以下是 esptool 工具的报错信息: 4/4 A fatal error occurred: bootloader/bootloader.bin requires chip revision in range [v2.0 - v1.99] (this chip is revision v1.2). Use --force to flash anyway. 芯片版本识别方式 芯片版本的识别方式,请参考 ESP32-C2 系列芯片勘误表。 其他软件兼容性解释,请参考 ESP-IDF 版本与乐鑫芯片版本兼容性。 联系我们 如果您有任何问题,请 联系我们。