ESP32-WROOM32 4MB NVS分区扩容及分区表配置报错解决
ESP32分区表错误解决及配置方案
问题原因
app0不是必须从0x10000开始,但必须对齐到0x10000(64KB)的地址边界——这是ESP32 Flash硬件访问和固件加载的硬性要求,非对齐地址会导致固件无法正常加载,所以编译时触发了偏移无效的错误。
修正后的分区表方案
基于你的需求(扩容NVS、OTA支持、app分区≥0x1E0000、4MB Flash),调整后的分区表如下,完全满足对齐要求:
# Name, Type, SubType, Offset, Size, Flags nvs, data, nvs, 0x9000, 0x15000, otadata, data, ota, 0x1E000, 0x2000, app0, app, ota_0, 0x20000, 0x1E0000, app1, app, ota_1, 0x200000,0x1E0000, spiffs, data, spiffs, 0x3E0000,0x20000,
- NVS分区扩容至84KB(原32KB),满足更多数据存储需求
- app0/app1起始地址均对齐0x10000边界,符合ESP32要求
- 两个app分区各1.875MB(0x1E0000),满足OTA升级需求
- 剩余空间分配给SPIFFS,总容量不超过4MB(0x400000)
PlatformIO中应用分区表的步骤
- 在项目根目录创建
partitions_custom.csv文件,将上面的分区表内容粘贴进去 - 打开
platformio.ini,在你的环境配置(比如[env:esp32dev])下添加一行:board_build.partitions = partitions_custom.csv - 重新编译项目,之前的偏移错误即可解决
内容的提问来源于stack exchange,提问作者user14665305
相关产品推荐
相关产品推荐

