ESP32-C3-DevKitM-1运行RMaker示例代码提示Sketch过大求助
ESP32-C3 DevKitM-1运行RMaker示例编译空间不足问题解决
问题描述
硬件:ESP32-C3-DevKitM-1
IDE:Arduino IDE
操作系统:Windows 11
运行RMakerSwitch和RMakerCustom官方示例时,出现编译错误:
Sketch uses 2040220 bytes (155%) of program storage space. Maximum is 1310720 bytes. Global variables use 60236 bytes (18%) of dynamic memory, leaving 267444 bytes for local variables. Maximum is 327680 bytes. Sketch too big; see https://support.arduino.cc/hc/en-us/articles/360013825179 for tips on reducing it. text section exceeds available space in board Compilation error: text section exceeds available space in board
原因分析
官方示例本身无问题,故障源于Arduino IDE中ESP32-C3板卡的默认配置与实际硬件不匹配:
- 默认闪存大小设置过小:ESP32-C3-DevKitM-1标配4MB(32Mb)闪存,但IDE默认可能选中了1.2MB左右的闪存容量,导致程序存储空间上限不足;
- 默认分区方案不合理:默认分区给程序分配的空间占比过低,RMaker示例依赖的组件较多,占用空间大,超出了默认分区的程序存储上限。
解决方法
1. 修改闪存大小设置
在Arduino IDE操作栏:
- 点击「工具」→「开发板」→「ESP32 Arduino」→「ESP32C3 Dev Module」
- 找到「Flash Size」选项,选择「4MB (32Mb)」
2. 调整分区方案
同样在工具菜单的板卡设置中:
- 找到「Partition Scheme」选项,按需选择:
- 无需OTA功能时,选「No OTA (Large APP)」,该方案会给程序分配最大存储空间;
- 需要OTA功能时,选「App 2MB/OTA 2MB」或「Default 4MB with spiffs」,确保程序分区空间足够容纳RMaker示例。
3. 启用编译优化
- 在工具菜单中找到「Compiler Optimization」,选择「Os (Optimize for size)」,通过编译器优化压缩程序体积。
内容的提问来源于stack exchange,提问作者Steven Wang
相关产品推荐
相关产品推荐

