本帖最后由 XCray 于 2021-7-24 07:35 编辑
arduino的esp32插件需要改造一下,找到文件“boards.txt”里对应的型号,会有这么一行(我用的模块是esp32doit-devkit-v1)
esp32doit-devkit-v1.upload.maximum_size=1310720
问题就出在这儿。
原因嘛,esp32的flash也需要根据不同需要进行分区,尤其是需要ota的时候,需要预留出足够的空间。
文件位置在不同的系统和安装方法以及版本的条件下可能会有不同,我的是在这个目录下:
C:\Users\xxxx\Documents\ArduinoData\packages\esp32\hardware\esp32\1.0.6
某些型号(包括我用的这款)默认是没有选择分区方案的菜单的,简单粗暴的办法是直接修改数值(比如改为1966080)。讲究一点的方案,是从别的型号(flash要一样大)把分区方案复制过来,把版型字符串替换掉,加到原有内容之后,比如我的修改成这样:
##从esp32-gateway复制
esp32doit-devkit-v1.menu.PartitionScheme.default=Default
esp32doit-devkit-v1.menu.PartitionScheme.default.build.partitions=default
esp32doit-devkit-v1.menu.PartitionScheme.no_ota=No OTA (Large APP)
esp32doit-devkit-v1.menu.PartitionScheme.no_ota.build.partitions=no_ota
esp32doit-devkit-v1.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
esp32doit-devkit-v1.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OTA)
esp32doit-devkit-v1.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
esp32doit-devkit-v1.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
保存然后重启arduino ide,就可以看到选择分区方案的菜单了,选择“Minimal SPIFFS (Large APPS with OTA)”即可成功编译。
|