From 7680098b8b86f5acbc69636cef45891a7a7a312a Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" <earlephilhower@yahoo.com> Date: Mon, 15 Apr 2019 15:23:30 -0700 Subject: [PATCH 1/4] Make SPIFFS be an integer number of blocks boards.txt.py simply calculated the end and start using flash sizes, but in cases where an 8K page was used (>512KB SPIFFS), this could leave a 4K half-block left at the end of SPIFFS. mkspiffs and the SPIFFS code uses integer division to calculate the maximum block number, so it worked fine in practice and the code simply ignored the extra, fractional block. Now actually take block size into account when calculating the end of SPIFFS, ensuring no fractional blocks are passed in. Does not result in data loss on pre-existing SPIFFS filesystems. --- boards.txt | 150 +++++++++--------- .../package_esp8266com_index.template.json | 2 +- tools/boards.txt.py | 11 +- tools/sdk/ld/eagle.flash.16m14m.ld | 4 +- tools/sdk/ld/eagle.flash.16m15m.ld | 4 +- tools/sdk/ld/eagle.flash.1m512.ld | 2 +- tools/sdk/ld/eagle.flash.2m1m.ld | 4 +- tools/sdk/ld/eagle.flash.2m512.ld | 2 +- tools/sdk/ld/eagle.flash.4m1m.ld | 4 +- tools/sdk/ld/eagle.flash.4m2m.ld | 4 +- tools/sdk/ld/eagle.flash.4m3m.ld | 4 +- tools/sdk/ld/eagle.flash.8m6m.ld | 4 +- tools/sdk/ld/eagle.flash.8m7m.ld | 4 +- 13 files changed, 100 insertions(+), 99 deletions(-) diff --git a/boards.txt b/boards.txt index db90994b33..9e76f582d3 100644 --- a/boards.txt +++ b/boards.txt @@ -230,7 +230,7 @@ generic.menu.eesz.2M512.upload.maximum_size=1044464 generic.menu.eesz.2M512.build.rfcal_addr=0x1FC000 generic.menu.eesz.2M512.build.spiffs_start=0x180000 generic.menu.eesz.2M512.build.spiffs_end=0x1FB000 -generic.menu.eesz.2M512.build.spiffs_blocksize=8192 +generic.menu.eesz.2M512.build.spiffs_blocksize=4096 generic.menu.eesz.2M1M=2M (1M SPIFFS) generic.menu.eesz.2M1M.build.flash_size=2M generic.menu.eesz.2M1M.build.flash_size_bytes=0x200000 @@ -239,7 +239,7 @@ generic.menu.eesz.2M1M.build.spiffs_pagesize=256 generic.menu.eesz.2M1M.upload.maximum_size=1044464 generic.menu.eesz.2M1M.build.rfcal_addr=0x1FC000 generic.menu.eesz.2M1M.build.spiffs_start=0x100000 -generic.menu.eesz.2M1M.build.spiffs_end=0x1FB000 +generic.menu.eesz.2M1M.build.spiffs_end=0x1FA000 generic.menu.eesz.2M1M.build.spiffs_blocksize=8192 generic.menu.eesz.4M=4M (no SPIFFS) generic.menu.eesz.4M.build.flash_size=4M @@ -256,7 +256,7 @@ generic.menu.eesz.4M1M.build.spiffs_pagesize=256 generic.menu.eesz.4M1M.upload.maximum_size=1044464 generic.menu.eesz.4M1M.build.rfcal_addr=0x3FC000 generic.menu.eesz.4M1M.build.spiffs_start=0x300000 -generic.menu.eesz.4M1M.build.spiffs_end=0x3FB000 +generic.menu.eesz.4M1M.build.spiffs_end=0x3FA000 generic.menu.eesz.4M1M.build.spiffs_blocksize=8192 generic.menu.eesz.4M2M=4M (2M SPIFFS) generic.menu.eesz.4M2M.build.flash_size=4M @@ -266,7 +266,7 @@ generic.menu.eesz.4M2M.build.spiffs_pagesize=256 generic.menu.eesz.4M2M.upload.maximum_size=1044464 generic.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 generic.menu.eesz.4M2M.build.spiffs_start=0x200000 -generic.menu.eesz.4M2M.build.spiffs_end=0x3FB000 +generic.menu.eesz.4M2M.build.spiffs_end=0x3FA000 generic.menu.eesz.4M2M.build.spiffs_blocksize=8192 generic.menu.eesz.4M3M=4M (3M SPIFFS) generic.menu.eesz.4M3M.build.flash_size=4M @@ -276,7 +276,7 @@ generic.menu.eesz.4M3M.build.spiffs_pagesize=256 generic.menu.eesz.4M3M.upload.maximum_size=1044464 generic.menu.eesz.4M3M.build.rfcal_addr=0x3FC000 generic.menu.eesz.4M3M.build.spiffs_start=0x100000 -generic.menu.eesz.4M3M.build.spiffs_end=0x3FB000 +generic.menu.eesz.4M3M.build.spiffs_end=0x3FA000 generic.menu.eesz.4M3M.build.spiffs_blocksize=8192 generic.menu.eesz.8M6M=8M (6M SPIFFS) generic.menu.eesz.8M6M.build.flash_size=8M @@ -286,7 +286,7 @@ generic.menu.eesz.8M6M.build.spiffs_pagesize=256 generic.menu.eesz.8M6M.upload.maximum_size=1044464 generic.menu.eesz.8M6M.build.rfcal_addr=0x7FC000 generic.menu.eesz.8M6M.build.spiffs_start=0x200000 -generic.menu.eesz.8M6M.build.spiffs_end=0x7FB000 +generic.menu.eesz.8M6M.build.spiffs_end=0x7FA000 generic.menu.eesz.8M6M.build.spiffs_blocksize=8192 generic.menu.eesz.8M7M=8M (7M SPIFFS) generic.menu.eesz.8M7M.build.flash_size=8M @@ -296,7 +296,7 @@ generic.menu.eesz.8M7M.build.spiffs_pagesize=256 generic.menu.eesz.8M7M.upload.maximum_size=1044464 generic.menu.eesz.8M7M.build.rfcal_addr=0x7FC000 generic.menu.eesz.8M7M.build.spiffs_start=0x100000 -generic.menu.eesz.8M7M.build.spiffs_end=0x7FB000 +generic.menu.eesz.8M7M.build.spiffs_end=0x7FA000 generic.menu.eesz.8M7M.build.spiffs_blocksize=8192 generic.menu.eesz.16M14M=16M (14M SPIFFS) generic.menu.eesz.16M14M.build.flash_size=16M @@ -306,7 +306,7 @@ generic.menu.eesz.16M14M.build.spiffs_pagesize=256 generic.menu.eesz.16M14M.upload.maximum_size=1044464 generic.menu.eesz.16M14M.build.rfcal_addr=0xFFC000 generic.menu.eesz.16M14M.build.spiffs_start=0x200000 -generic.menu.eesz.16M14M.build.spiffs_end=0xFFB000 +generic.menu.eesz.16M14M.build.spiffs_end=0xFFA000 generic.menu.eesz.16M14M.build.spiffs_blocksize=8192 generic.menu.eesz.16M15M=16M (15M SPIFFS) generic.menu.eesz.16M15M.build.flash_size=16M @@ -316,7 +316,7 @@ generic.menu.eesz.16M15M.build.spiffs_pagesize=256 generic.menu.eesz.16M15M.upload.maximum_size=1044464 generic.menu.eesz.16M15M.build.rfcal_addr=0xFFC000 generic.menu.eesz.16M15M.build.spiffs_start=0x100000 -generic.menu.eesz.16M15M.build.spiffs_end=0xFFB000 +generic.menu.eesz.16M15M.build.spiffs_end=0xFFA000 generic.menu.eesz.16M15M.build.spiffs_blocksize=8192 generic.menu.led.2=2 generic.menu.led.2.build.led=-DLED_BUILTIN=2 @@ -792,7 +792,7 @@ espduino.menu.eesz.4M1M.build.spiffs_pagesize=256 espduino.menu.eesz.4M1M.upload.maximum_size=1044464 espduino.menu.eesz.4M1M.build.rfcal_addr=0x3FC000 espduino.menu.eesz.4M1M.build.spiffs_start=0x300000 -espduino.menu.eesz.4M1M.build.spiffs_end=0x3FB000 +espduino.menu.eesz.4M1M.build.spiffs_end=0x3FA000 espduino.menu.eesz.4M1M.build.spiffs_blocksize=8192 espduino.menu.eesz.4M2M=4M (2M SPIFFS) espduino.menu.eesz.4M2M.build.flash_size=4M @@ -802,7 +802,7 @@ espduino.menu.eesz.4M2M.build.spiffs_pagesize=256 espduino.menu.eesz.4M2M.upload.maximum_size=1044464 espduino.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 espduino.menu.eesz.4M2M.build.spiffs_start=0x200000 -espduino.menu.eesz.4M2M.build.spiffs_end=0x3FB000 +espduino.menu.eesz.4M2M.build.spiffs_end=0x3FA000 espduino.menu.eesz.4M2M.build.spiffs_blocksize=8192 espduino.menu.eesz.4M3M=4M (3M SPIFFS) espduino.menu.eesz.4M3M.build.flash_size=4M @@ -812,7 +812,7 @@ espduino.menu.eesz.4M3M.build.spiffs_pagesize=256 espduino.menu.eesz.4M3M.upload.maximum_size=1044464 espduino.menu.eesz.4M3M.build.rfcal_addr=0x3FC000 espduino.menu.eesz.4M3M.build.spiffs_start=0x100000 -espduino.menu.eesz.4M3M.build.spiffs_end=0x3FB000 +espduino.menu.eesz.4M3M.build.spiffs_end=0x3FA000 espduino.menu.eesz.4M3M.build.spiffs_blocksize=8192 espduino.menu.ip.lm2f=v2 Lower Memory espduino.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -976,7 +976,7 @@ huzzah.menu.eesz.4M1M.build.spiffs_pagesize=256 huzzah.menu.eesz.4M1M.upload.maximum_size=1044464 huzzah.menu.eesz.4M1M.build.rfcal_addr=0x3FC000 huzzah.menu.eesz.4M1M.build.spiffs_start=0x300000 -huzzah.menu.eesz.4M1M.build.spiffs_end=0x3FB000 +huzzah.menu.eesz.4M1M.build.spiffs_end=0x3FA000 huzzah.menu.eesz.4M1M.build.spiffs_blocksize=8192 huzzah.menu.eesz.4M2M=4M (2M SPIFFS) huzzah.menu.eesz.4M2M.build.flash_size=4M @@ -986,7 +986,7 @@ huzzah.menu.eesz.4M2M.build.spiffs_pagesize=256 huzzah.menu.eesz.4M2M.upload.maximum_size=1044464 huzzah.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 huzzah.menu.eesz.4M2M.build.spiffs_start=0x200000 -huzzah.menu.eesz.4M2M.build.spiffs_end=0x3FB000 +huzzah.menu.eesz.4M2M.build.spiffs_end=0x3FA000 huzzah.menu.eesz.4M2M.build.spiffs_blocksize=8192 huzzah.menu.eesz.4M3M=4M (3M SPIFFS) huzzah.menu.eesz.4M3M.build.flash_size=4M @@ -996,7 +996,7 @@ huzzah.menu.eesz.4M3M.build.spiffs_pagesize=256 huzzah.menu.eesz.4M3M.upload.maximum_size=1044464 huzzah.menu.eesz.4M3M.build.rfcal_addr=0x3FC000 huzzah.menu.eesz.4M3M.build.spiffs_start=0x100000 -huzzah.menu.eesz.4M3M.build.spiffs_end=0x3FB000 +huzzah.menu.eesz.4M3M.build.spiffs_end=0x3FA000 huzzah.menu.eesz.4M3M.build.spiffs_blocksize=8192 huzzah.menu.ip.lm2f=v2 Lower Memory huzzah.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -1160,7 +1160,7 @@ inventone.menu.eesz.4M1M.build.spiffs_pagesize=256 inventone.menu.eesz.4M1M.upload.maximum_size=1044464 inventone.menu.eesz.4M1M.build.rfcal_addr=0x3FC000 inventone.menu.eesz.4M1M.build.spiffs_start=0x300000 -inventone.menu.eesz.4M1M.build.spiffs_end=0x3FB000 +inventone.menu.eesz.4M1M.build.spiffs_end=0x3FA000 inventone.menu.eesz.4M1M.build.spiffs_blocksize=8192 inventone.menu.eesz.4M2M=4M (2M SPIFFS) inventone.menu.eesz.4M2M.build.flash_size=4M @@ -1170,7 +1170,7 @@ inventone.menu.eesz.4M2M.build.spiffs_pagesize=256 inventone.menu.eesz.4M2M.upload.maximum_size=1044464 inventone.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 inventone.menu.eesz.4M2M.build.spiffs_start=0x200000 -inventone.menu.eesz.4M2M.build.spiffs_end=0x3FB000 +inventone.menu.eesz.4M2M.build.spiffs_end=0x3FA000 inventone.menu.eesz.4M2M.build.spiffs_blocksize=8192 inventone.menu.eesz.4M3M=4M (3M SPIFFS) inventone.menu.eesz.4M3M.build.flash_size=4M @@ -1180,7 +1180,7 @@ inventone.menu.eesz.4M3M.build.spiffs_pagesize=256 inventone.menu.eesz.4M3M.upload.maximum_size=1044464 inventone.menu.eesz.4M3M.build.rfcal_addr=0x3FC000 inventone.menu.eesz.4M3M.build.spiffs_start=0x100000 -inventone.menu.eesz.4M3M.build.spiffs_end=0x3FB000 +inventone.menu.eesz.4M3M.build.spiffs_end=0x3FA000 inventone.menu.eesz.4M3M.build.spiffs_blocksize=8192 inventone.menu.ip.lm2f=v2 Lower Memory inventone.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -1347,7 +1347,7 @@ cw01.menu.eesz.4M1M.build.spiffs_pagesize=256 cw01.menu.eesz.4M1M.upload.maximum_size=1044464 cw01.menu.eesz.4M1M.build.rfcal_addr=0x3FC000 cw01.menu.eesz.4M1M.build.spiffs_start=0x300000 -cw01.menu.eesz.4M1M.build.spiffs_end=0x3FB000 +cw01.menu.eesz.4M1M.build.spiffs_end=0x3FA000 cw01.menu.eesz.4M1M.build.spiffs_blocksize=8192 cw01.menu.eesz.4M2M=4M (2M SPIFFS) cw01.menu.eesz.4M2M.build.flash_size=4M @@ -1357,7 +1357,7 @@ cw01.menu.eesz.4M2M.build.spiffs_pagesize=256 cw01.menu.eesz.4M2M.upload.maximum_size=1044464 cw01.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 cw01.menu.eesz.4M2M.build.spiffs_start=0x200000 -cw01.menu.eesz.4M2M.build.spiffs_end=0x3FB000 +cw01.menu.eesz.4M2M.build.spiffs_end=0x3FA000 cw01.menu.eesz.4M2M.build.spiffs_blocksize=8192 cw01.menu.eesz.4M3M=4M (3M SPIFFS) cw01.menu.eesz.4M3M.build.flash_size=4M @@ -1367,7 +1367,7 @@ cw01.menu.eesz.4M3M.build.spiffs_pagesize=256 cw01.menu.eesz.4M3M.upload.maximum_size=1044464 cw01.menu.eesz.4M3M.build.rfcal_addr=0x3FC000 cw01.menu.eesz.4M3M.build.spiffs_start=0x100000 -cw01.menu.eesz.4M3M.build.spiffs_end=0x3FB000 +cw01.menu.eesz.4M3M.build.spiffs_end=0x3FA000 cw01.menu.eesz.4M3M.build.spiffs_blocksize=8192 cw01.menu.ip.lm2f=v2 Lower Memory cw01.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -1530,7 +1530,7 @@ espresso_lite_v1.menu.eesz.4M1M.build.spiffs_pagesize=256 espresso_lite_v1.menu.eesz.4M1M.upload.maximum_size=1044464 espresso_lite_v1.menu.eesz.4M1M.build.rfcal_addr=0x3FC000 espresso_lite_v1.menu.eesz.4M1M.build.spiffs_start=0x300000 -espresso_lite_v1.menu.eesz.4M1M.build.spiffs_end=0x3FB000 +espresso_lite_v1.menu.eesz.4M1M.build.spiffs_end=0x3FA000 espresso_lite_v1.menu.eesz.4M1M.build.spiffs_blocksize=8192 espresso_lite_v1.menu.eesz.4M2M=4M (2M SPIFFS) espresso_lite_v1.menu.eesz.4M2M.build.flash_size=4M @@ -1540,7 +1540,7 @@ espresso_lite_v1.menu.eesz.4M2M.build.spiffs_pagesize=256 espresso_lite_v1.menu.eesz.4M2M.upload.maximum_size=1044464 espresso_lite_v1.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 espresso_lite_v1.menu.eesz.4M2M.build.spiffs_start=0x200000 -espresso_lite_v1.menu.eesz.4M2M.build.spiffs_end=0x3FB000 +espresso_lite_v1.menu.eesz.4M2M.build.spiffs_end=0x3FA000 espresso_lite_v1.menu.eesz.4M2M.build.spiffs_blocksize=8192 espresso_lite_v1.menu.eesz.4M3M=4M (3M SPIFFS) espresso_lite_v1.menu.eesz.4M3M.build.flash_size=4M @@ -1550,7 +1550,7 @@ espresso_lite_v1.menu.eesz.4M3M.build.spiffs_pagesize=256 espresso_lite_v1.menu.eesz.4M3M.upload.maximum_size=1044464 espresso_lite_v1.menu.eesz.4M3M.build.rfcal_addr=0x3FC000 espresso_lite_v1.menu.eesz.4M3M.build.spiffs_start=0x100000 -espresso_lite_v1.menu.eesz.4M3M.build.spiffs_end=0x3FB000 +espresso_lite_v1.menu.eesz.4M3M.build.spiffs_end=0x3FA000 espresso_lite_v1.menu.eesz.4M3M.build.spiffs_blocksize=8192 espresso_lite_v1.menu.ResetMethod.ck=ck espresso_lite_v1.menu.ResetMethod.ck.upload.resetmethod=ck @@ -1717,7 +1717,7 @@ espresso_lite_v2.menu.eesz.4M1M.build.spiffs_pagesize=256 espresso_lite_v2.menu.eesz.4M1M.upload.maximum_size=1044464 espresso_lite_v2.menu.eesz.4M1M.build.rfcal_addr=0x3FC000 espresso_lite_v2.menu.eesz.4M1M.build.spiffs_start=0x300000 -espresso_lite_v2.menu.eesz.4M1M.build.spiffs_end=0x3FB000 +espresso_lite_v2.menu.eesz.4M1M.build.spiffs_end=0x3FA000 espresso_lite_v2.menu.eesz.4M1M.build.spiffs_blocksize=8192 espresso_lite_v2.menu.eesz.4M2M=4M (2M SPIFFS) espresso_lite_v2.menu.eesz.4M2M.build.flash_size=4M @@ -1727,7 +1727,7 @@ espresso_lite_v2.menu.eesz.4M2M.build.spiffs_pagesize=256 espresso_lite_v2.menu.eesz.4M2M.upload.maximum_size=1044464 espresso_lite_v2.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 espresso_lite_v2.menu.eesz.4M2M.build.spiffs_start=0x200000 -espresso_lite_v2.menu.eesz.4M2M.build.spiffs_end=0x3FB000 +espresso_lite_v2.menu.eesz.4M2M.build.spiffs_end=0x3FA000 espresso_lite_v2.menu.eesz.4M2M.build.spiffs_blocksize=8192 espresso_lite_v2.menu.eesz.4M3M=4M (3M SPIFFS) espresso_lite_v2.menu.eesz.4M3M.build.flash_size=4M @@ -1737,7 +1737,7 @@ espresso_lite_v2.menu.eesz.4M3M.build.spiffs_pagesize=256 espresso_lite_v2.menu.eesz.4M3M.upload.maximum_size=1044464 espresso_lite_v2.menu.eesz.4M3M.build.rfcal_addr=0x3FC000 espresso_lite_v2.menu.eesz.4M3M.build.spiffs_start=0x100000 -espresso_lite_v2.menu.eesz.4M3M.build.spiffs_end=0x3FB000 +espresso_lite_v2.menu.eesz.4M3M.build.spiffs_end=0x3FA000 espresso_lite_v2.menu.eesz.4M3M.build.spiffs_blocksize=8192 espresso_lite_v2.menu.ResetMethod.ck=ck espresso_lite_v2.menu.ResetMethod.ck.upload.resetmethod=ck @@ -1904,7 +1904,7 @@ phoenix_v1.menu.eesz.4M1M.build.spiffs_pagesize=256 phoenix_v1.menu.eesz.4M1M.upload.maximum_size=1044464 phoenix_v1.menu.eesz.4M1M.build.rfcal_addr=0x3FC000 phoenix_v1.menu.eesz.4M1M.build.spiffs_start=0x300000 -phoenix_v1.menu.eesz.4M1M.build.spiffs_end=0x3FB000 +phoenix_v1.menu.eesz.4M1M.build.spiffs_end=0x3FA000 phoenix_v1.menu.eesz.4M1M.build.spiffs_blocksize=8192 phoenix_v1.menu.eesz.4M2M=4M (2M SPIFFS) phoenix_v1.menu.eesz.4M2M.build.flash_size=4M @@ -1914,7 +1914,7 @@ phoenix_v1.menu.eesz.4M2M.build.spiffs_pagesize=256 phoenix_v1.menu.eesz.4M2M.upload.maximum_size=1044464 phoenix_v1.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 phoenix_v1.menu.eesz.4M2M.build.spiffs_start=0x200000 -phoenix_v1.menu.eesz.4M2M.build.spiffs_end=0x3FB000 +phoenix_v1.menu.eesz.4M2M.build.spiffs_end=0x3FA000 phoenix_v1.menu.eesz.4M2M.build.spiffs_blocksize=8192 phoenix_v1.menu.eesz.4M3M=4M (3M SPIFFS) phoenix_v1.menu.eesz.4M3M.build.flash_size=4M @@ -1924,7 +1924,7 @@ phoenix_v1.menu.eesz.4M3M.build.spiffs_pagesize=256 phoenix_v1.menu.eesz.4M3M.upload.maximum_size=1044464 phoenix_v1.menu.eesz.4M3M.build.rfcal_addr=0x3FC000 phoenix_v1.menu.eesz.4M3M.build.spiffs_start=0x100000 -phoenix_v1.menu.eesz.4M3M.build.spiffs_end=0x3FB000 +phoenix_v1.menu.eesz.4M3M.build.spiffs_end=0x3FA000 phoenix_v1.menu.eesz.4M3M.build.spiffs_blocksize=8192 phoenix_v1.menu.ResetMethod.ck=ck phoenix_v1.menu.ResetMethod.ck.upload.resetmethod=ck @@ -2091,7 +2091,7 @@ phoenix_v2.menu.eesz.4M1M.build.spiffs_pagesize=256 phoenix_v2.menu.eesz.4M1M.upload.maximum_size=1044464 phoenix_v2.menu.eesz.4M1M.build.rfcal_addr=0x3FC000 phoenix_v2.menu.eesz.4M1M.build.spiffs_start=0x300000 -phoenix_v2.menu.eesz.4M1M.build.spiffs_end=0x3FB000 +phoenix_v2.menu.eesz.4M1M.build.spiffs_end=0x3FA000 phoenix_v2.menu.eesz.4M1M.build.spiffs_blocksize=8192 phoenix_v2.menu.eesz.4M2M=4M (2M SPIFFS) phoenix_v2.menu.eesz.4M2M.build.flash_size=4M @@ -2101,7 +2101,7 @@ phoenix_v2.menu.eesz.4M2M.build.spiffs_pagesize=256 phoenix_v2.menu.eesz.4M2M.upload.maximum_size=1044464 phoenix_v2.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 phoenix_v2.menu.eesz.4M2M.build.spiffs_start=0x200000 -phoenix_v2.menu.eesz.4M2M.build.spiffs_end=0x3FB000 +phoenix_v2.menu.eesz.4M2M.build.spiffs_end=0x3FA000 phoenix_v2.menu.eesz.4M2M.build.spiffs_blocksize=8192 phoenix_v2.menu.eesz.4M3M=4M (3M SPIFFS) phoenix_v2.menu.eesz.4M3M.build.flash_size=4M @@ -2111,7 +2111,7 @@ phoenix_v2.menu.eesz.4M3M.build.spiffs_pagesize=256 phoenix_v2.menu.eesz.4M3M.upload.maximum_size=1044464 phoenix_v2.menu.eesz.4M3M.build.rfcal_addr=0x3FC000 phoenix_v2.menu.eesz.4M3M.build.spiffs_start=0x100000 -phoenix_v2.menu.eesz.4M3M.build.spiffs_end=0x3FB000 +phoenix_v2.menu.eesz.4M3M.build.spiffs_end=0x3FA000 phoenix_v2.menu.eesz.4M3M.build.spiffs_blocksize=8192 phoenix_v2.menu.ResetMethod.ck=ck phoenix_v2.menu.ResetMethod.ck.upload.resetmethod=ck @@ -2279,7 +2279,7 @@ nodemcu.menu.eesz.4M1M.build.spiffs_pagesize=256 nodemcu.menu.eesz.4M1M.upload.maximum_size=1044464 nodemcu.menu.eesz.4M1M.build.rfcal_addr=0x3FC000 nodemcu.menu.eesz.4M1M.build.spiffs_start=0x300000 -nodemcu.menu.eesz.4M1M.build.spiffs_end=0x3FB000 +nodemcu.menu.eesz.4M1M.build.spiffs_end=0x3FA000 nodemcu.menu.eesz.4M1M.build.spiffs_blocksize=8192 nodemcu.menu.eesz.4M2M=4M (2M SPIFFS) nodemcu.menu.eesz.4M2M.build.flash_size=4M @@ -2289,7 +2289,7 @@ nodemcu.menu.eesz.4M2M.build.spiffs_pagesize=256 nodemcu.menu.eesz.4M2M.upload.maximum_size=1044464 nodemcu.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 nodemcu.menu.eesz.4M2M.build.spiffs_start=0x200000 -nodemcu.menu.eesz.4M2M.build.spiffs_end=0x3FB000 +nodemcu.menu.eesz.4M2M.build.spiffs_end=0x3FA000 nodemcu.menu.eesz.4M2M.build.spiffs_blocksize=8192 nodemcu.menu.eesz.4M3M=4M (3M SPIFFS) nodemcu.menu.eesz.4M3M.build.flash_size=4M @@ -2299,7 +2299,7 @@ nodemcu.menu.eesz.4M3M.build.spiffs_pagesize=256 nodemcu.menu.eesz.4M3M.upload.maximum_size=1044464 nodemcu.menu.eesz.4M3M.build.rfcal_addr=0x3FC000 nodemcu.menu.eesz.4M3M.build.spiffs_start=0x100000 -nodemcu.menu.eesz.4M3M.build.spiffs_end=0x3FB000 +nodemcu.menu.eesz.4M3M.build.spiffs_end=0x3FA000 nodemcu.menu.eesz.4M3M.build.spiffs_blocksize=8192 nodemcu.menu.ip.lm2f=v2 Lower Memory nodemcu.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -2463,7 +2463,7 @@ nodemcuv2.menu.eesz.4M1M.build.spiffs_pagesize=256 nodemcuv2.menu.eesz.4M1M.upload.maximum_size=1044464 nodemcuv2.menu.eesz.4M1M.build.rfcal_addr=0x3FC000 nodemcuv2.menu.eesz.4M1M.build.spiffs_start=0x300000 -nodemcuv2.menu.eesz.4M1M.build.spiffs_end=0x3FB000 +nodemcuv2.menu.eesz.4M1M.build.spiffs_end=0x3FA000 nodemcuv2.menu.eesz.4M1M.build.spiffs_blocksize=8192 nodemcuv2.menu.eesz.4M2M=4M (2M SPIFFS) nodemcuv2.menu.eesz.4M2M.build.flash_size=4M @@ -2473,7 +2473,7 @@ nodemcuv2.menu.eesz.4M2M.build.spiffs_pagesize=256 nodemcuv2.menu.eesz.4M2M.upload.maximum_size=1044464 nodemcuv2.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 nodemcuv2.menu.eesz.4M2M.build.spiffs_start=0x200000 -nodemcuv2.menu.eesz.4M2M.build.spiffs_end=0x3FB000 +nodemcuv2.menu.eesz.4M2M.build.spiffs_end=0x3FA000 nodemcuv2.menu.eesz.4M2M.build.spiffs_blocksize=8192 nodemcuv2.menu.eesz.4M3M=4M (3M SPIFFS) nodemcuv2.menu.eesz.4M3M.build.flash_size=4M @@ -2483,7 +2483,7 @@ nodemcuv2.menu.eesz.4M3M.build.spiffs_pagesize=256 nodemcuv2.menu.eesz.4M3M.upload.maximum_size=1044464 nodemcuv2.menu.eesz.4M3M.build.rfcal_addr=0x3FC000 nodemcuv2.menu.eesz.4M3M.build.spiffs_start=0x100000 -nodemcuv2.menu.eesz.4M3M.build.spiffs_end=0x3FB000 +nodemcuv2.menu.eesz.4M3M.build.spiffs_end=0x3FA000 nodemcuv2.menu.eesz.4M3M.build.spiffs_blocksize=8192 nodemcuv2.menu.ip.lm2f=v2 Lower Memory nodemcuv2.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -2668,7 +2668,7 @@ modwifi.menu.eesz.2M512.upload.maximum_size=1044464 modwifi.menu.eesz.2M512.build.rfcal_addr=0x1FC000 modwifi.menu.eesz.2M512.build.spiffs_start=0x180000 modwifi.menu.eesz.2M512.build.spiffs_end=0x1FB000 -modwifi.menu.eesz.2M512.build.spiffs_blocksize=8192 +modwifi.menu.eesz.2M512.build.spiffs_blocksize=4096 modwifi.menu.eesz.2M1M=2M (1M SPIFFS) modwifi.menu.eesz.2M1M.build.flash_size=2M modwifi.menu.eesz.2M1M.build.flash_size_bytes=0x200000 @@ -2677,7 +2677,7 @@ modwifi.menu.eesz.2M1M.build.spiffs_pagesize=256 modwifi.menu.eesz.2M1M.upload.maximum_size=1044464 modwifi.menu.eesz.2M1M.build.rfcal_addr=0x1FC000 modwifi.menu.eesz.2M1M.build.spiffs_start=0x100000 -modwifi.menu.eesz.2M1M.build.spiffs_end=0x1FB000 +modwifi.menu.eesz.2M1M.build.spiffs_end=0x1FA000 modwifi.menu.eesz.2M1M.build.spiffs_blocksize=8192 modwifi.menu.ip.lm2f=v2 Lower Memory modwifi.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -3209,7 +3209,7 @@ esp210.menu.eesz.4M1M.build.spiffs_pagesize=256 esp210.menu.eesz.4M1M.upload.maximum_size=1044464 esp210.menu.eesz.4M1M.build.rfcal_addr=0x3FC000 esp210.menu.eesz.4M1M.build.spiffs_start=0x300000 -esp210.menu.eesz.4M1M.build.spiffs_end=0x3FB000 +esp210.menu.eesz.4M1M.build.spiffs_end=0x3FA000 esp210.menu.eesz.4M1M.build.spiffs_blocksize=8192 esp210.menu.eesz.4M2M=4M (2M SPIFFS) esp210.menu.eesz.4M2M.build.flash_size=4M @@ -3219,7 +3219,7 @@ esp210.menu.eesz.4M2M.build.spiffs_pagesize=256 esp210.menu.eesz.4M2M.upload.maximum_size=1044464 esp210.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 esp210.menu.eesz.4M2M.build.spiffs_start=0x200000 -esp210.menu.eesz.4M2M.build.spiffs_end=0x3FB000 +esp210.menu.eesz.4M2M.build.spiffs_end=0x3FA000 esp210.menu.eesz.4M2M.build.spiffs_blocksize=8192 esp210.menu.eesz.4M3M=4M (3M SPIFFS) esp210.menu.eesz.4M3M.build.flash_size=4M @@ -3229,7 +3229,7 @@ esp210.menu.eesz.4M3M.build.spiffs_pagesize=256 esp210.menu.eesz.4M3M.upload.maximum_size=1044464 esp210.menu.eesz.4M3M.build.rfcal_addr=0x3FC000 esp210.menu.eesz.4M3M.build.spiffs_start=0x100000 -esp210.menu.eesz.4M3M.build.spiffs_end=0x3FB000 +esp210.menu.eesz.4M3M.build.spiffs_end=0x3FA000 esp210.menu.eesz.4M3M.build.spiffs_blocksize=8192 esp210.menu.ip.lm2f=v2 Lower Memory esp210.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -3393,7 +3393,7 @@ d1_mini.menu.eesz.4M1M.build.spiffs_pagesize=256 d1_mini.menu.eesz.4M1M.upload.maximum_size=1044464 d1_mini.menu.eesz.4M1M.build.rfcal_addr=0x3FC000 d1_mini.menu.eesz.4M1M.build.spiffs_start=0x300000 -d1_mini.menu.eesz.4M1M.build.spiffs_end=0x3FB000 +d1_mini.menu.eesz.4M1M.build.spiffs_end=0x3FA000 d1_mini.menu.eesz.4M1M.build.spiffs_blocksize=8192 d1_mini.menu.eesz.4M2M=4M (2M SPIFFS) d1_mini.menu.eesz.4M2M.build.flash_size=4M @@ -3403,7 +3403,7 @@ d1_mini.menu.eesz.4M2M.build.spiffs_pagesize=256 d1_mini.menu.eesz.4M2M.upload.maximum_size=1044464 d1_mini.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 d1_mini.menu.eesz.4M2M.build.spiffs_start=0x200000 -d1_mini.menu.eesz.4M2M.build.spiffs_end=0x3FB000 +d1_mini.menu.eesz.4M2M.build.spiffs_end=0x3FA000 d1_mini.menu.eesz.4M2M.build.spiffs_blocksize=8192 d1_mini.menu.eesz.4M3M=4M (3M SPIFFS) d1_mini.menu.eesz.4M3M.build.flash_size=4M @@ -3413,7 +3413,7 @@ d1_mini.menu.eesz.4M3M.build.spiffs_pagesize=256 d1_mini.menu.eesz.4M3M.upload.maximum_size=1044464 d1_mini.menu.eesz.4M3M.build.rfcal_addr=0x3FC000 d1_mini.menu.eesz.4M3M.build.spiffs_start=0x100000 -d1_mini.menu.eesz.4M3M.build.spiffs_end=0x3FB000 +d1_mini.menu.eesz.4M3M.build.spiffs_end=0x3FA000 d1_mini.menu.eesz.4M3M.build.spiffs_blocksize=8192 d1_mini.menu.ip.lm2f=v2 Lower Memory d1_mini.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -3570,7 +3570,7 @@ d1_mini_pro.menu.eesz.16M14M.build.spiffs_pagesize=256 d1_mini_pro.menu.eesz.16M14M.upload.maximum_size=1044464 d1_mini_pro.menu.eesz.16M14M.build.rfcal_addr=0xFFC000 d1_mini_pro.menu.eesz.16M14M.build.spiffs_start=0x200000 -d1_mini_pro.menu.eesz.16M14M.build.spiffs_end=0xFFB000 +d1_mini_pro.menu.eesz.16M14M.build.spiffs_end=0xFFA000 d1_mini_pro.menu.eesz.16M14M.build.spiffs_blocksize=8192 d1_mini_pro.menu.eesz.16M15M=16M (15M SPIFFS) d1_mini_pro.menu.eesz.16M15M.build.flash_size=16M @@ -3580,7 +3580,7 @@ d1_mini_pro.menu.eesz.16M15M.build.spiffs_pagesize=256 d1_mini_pro.menu.eesz.16M15M.upload.maximum_size=1044464 d1_mini_pro.menu.eesz.16M15M.build.rfcal_addr=0xFFC000 d1_mini_pro.menu.eesz.16M15M.build.spiffs_start=0x100000 -d1_mini_pro.menu.eesz.16M15M.build.spiffs_end=0xFFB000 +d1_mini_pro.menu.eesz.16M15M.build.spiffs_end=0xFFA000 d1_mini_pro.menu.eesz.16M15M.build.spiffs_blocksize=8192 d1_mini_pro.menu.ip.lm2f=v2 Lower Memory d1_mini_pro.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -3968,7 +3968,7 @@ d1.menu.eesz.4M1M.build.spiffs_pagesize=256 d1.menu.eesz.4M1M.upload.maximum_size=1044464 d1.menu.eesz.4M1M.build.rfcal_addr=0x3FC000 d1.menu.eesz.4M1M.build.spiffs_start=0x300000 -d1.menu.eesz.4M1M.build.spiffs_end=0x3FB000 +d1.menu.eesz.4M1M.build.spiffs_end=0x3FA000 d1.menu.eesz.4M1M.build.spiffs_blocksize=8192 d1.menu.eesz.4M2M=4M (2M SPIFFS) d1.menu.eesz.4M2M.build.flash_size=4M @@ -3978,7 +3978,7 @@ d1.menu.eesz.4M2M.build.spiffs_pagesize=256 d1.menu.eesz.4M2M.upload.maximum_size=1044464 d1.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 d1.menu.eesz.4M2M.build.spiffs_start=0x200000 -d1.menu.eesz.4M2M.build.spiffs_end=0x3FB000 +d1.menu.eesz.4M2M.build.spiffs_end=0x3FA000 d1.menu.eesz.4M2M.build.spiffs_blocksize=8192 d1.menu.eesz.4M3M=4M (3M SPIFFS) d1.menu.eesz.4M3M.build.flash_size=4M @@ -3988,7 +3988,7 @@ d1.menu.eesz.4M3M.build.spiffs_pagesize=256 d1.menu.eesz.4M3M.upload.maximum_size=1044464 d1.menu.eesz.4M3M.build.rfcal_addr=0x3FC000 d1.menu.eesz.4M3M.build.spiffs_start=0x100000 -d1.menu.eesz.4M3M.build.spiffs_end=0x3FB000 +d1.menu.eesz.4M3M.build.spiffs_end=0x3FA000 d1.menu.eesz.4M3M.build.spiffs_blocksize=8192 d1.menu.ip.lm2f=v2 Lower Memory d1.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -4155,7 +4155,7 @@ espino.menu.eesz.4M1M.build.spiffs_pagesize=256 espino.menu.eesz.4M1M.upload.maximum_size=1044464 espino.menu.eesz.4M1M.build.rfcal_addr=0x3FC000 espino.menu.eesz.4M1M.build.spiffs_start=0x300000 -espino.menu.eesz.4M1M.build.spiffs_end=0x3FB000 +espino.menu.eesz.4M1M.build.spiffs_end=0x3FA000 espino.menu.eesz.4M1M.build.spiffs_blocksize=8192 espino.menu.eesz.4M2M=4M (2M SPIFFS) espino.menu.eesz.4M2M.build.flash_size=4M @@ -4165,7 +4165,7 @@ espino.menu.eesz.4M2M.build.spiffs_pagesize=256 espino.menu.eesz.4M2M.upload.maximum_size=1044464 espino.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 espino.menu.eesz.4M2M.build.spiffs_start=0x200000 -espino.menu.eesz.4M2M.build.spiffs_end=0x3FB000 +espino.menu.eesz.4M2M.build.spiffs_end=0x3FA000 espino.menu.eesz.4M2M.build.spiffs_blocksize=8192 espino.menu.eesz.4M3M=4M (3M SPIFFS) espino.menu.eesz.4M3M.build.flash_size=4M @@ -4175,7 +4175,7 @@ espino.menu.eesz.4M3M.build.spiffs_pagesize=256 espino.menu.eesz.4M3M.upload.maximum_size=1044464 espino.menu.eesz.4M3M.build.rfcal_addr=0x3FC000 espino.menu.eesz.4M3M.build.spiffs_start=0x100000 -espino.menu.eesz.4M3M.build.spiffs_end=0x3FB000 +espino.menu.eesz.4M3M.build.spiffs_end=0x3FA000 espino.menu.eesz.4M3M.build.spiffs_blocksize=8192 espino.menu.ip.lm2f=v2 Lower Memory espino.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -4339,7 +4339,7 @@ espinotee.menu.eesz.4M1M.build.spiffs_pagesize=256 espinotee.menu.eesz.4M1M.upload.maximum_size=1044464 espinotee.menu.eesz.4M1M.build.rfcal_addr=0x3FC000 espinotee.menu.eesz.4M1M.build.spiffs_start=0x300000 -espinotee.menu.eesz.4M1M.build.spiffs_end=0x3FB000 +espinotee.menu.eesz.4M1M.build.spiffs_end=0x3FA000 espinotee.menu.eesz.4M1M.build.spiffs_blocksize=8192 espinotee.menu.eesz.4M2M=4M (2M SPIFFS) espinotee.menu.eesz.4M2M.build.flash_size=4M @@ -4349,7 +4349,7 @@ espinotee.menu.eesz.4M2M.build.spiffs_pagesize=256 espinotee.menu.eesz.4M2M.upload.maximum_size=1044464 espinotee.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 espinotee.menu.eesz.4M2M.build.spiffs_start=0x200000 -espinotee.menu.eesz.4M2M.build.spiffs_end=0x3FB000 +espinotee.menu.eesz.4M2M.build.spiffs_end=0x3FA000 espinotee.menu.eesz.4M2M.build.spiffs_blocksize=8192 espinotee.menu.eesz.4M3M=4M (3M SPIFFS) espinotee.menu.eesz.4M3M.build.flash_size=4M @@ -4359,7 +4359,7 @@ espinotee.menu.eesz.4M3M.build.spiffs_pagesize=256 espinotee.menu.eesz.4M3M.upload.maximum_size=1044464 espinotee.menu.eesz.4M3M.build.rfcal_addr=0x3FC000 espinotee.menu.eesz.4M3M.build.spiffs_start=0x100000 -espinotee.menu.eesz.4M3M.build.spiffs_end=0x3FB000 +espinotee.menu.eesz.4M3M.build.spiffs_end=0x3FA000 espinotee.menu.eesz.4M3M.build.spiffs_blocksize=8192 espinotee.menu.ip.lm2f=v2 Lower Memory espinotee.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -4779,7 +4779,7 @@ arduino-esp8266.menu.eesz.4M1M.build.spiffs_pagesize=256 arduino-esp8266.menu.eesz.4M1M.upload.maximum_size=1044464 arduino-esp8266.menu.eesz.4M1M.build.rfcal_addr=0x3FC000 arduino-esp8266.menu.eesz.4M1M.build.spiffs_start=0x300000 -arduino-esp8266.menu.eesz.4M1M.build.spiffs_end=0x3FB000 +arduino-esp8266.menu.eesz.4M1M.build.spiffs_end=0x3FA000 arduino-esp8266.menu.eesz.4M1M.build.spiffs_blocksize=8192 arduino-esp8266.menu.eesz.4M2M=4M (2M SPIFFS) arduino-esp8266.menu.eesz.4M2M.build.flash_size=4M @@ -4789,7 +4789,7 @@ arduino-esp8266.menu.eesz.4M2M.build.spiffs_pagesize=256 arduino-esp8266.menu.eesz.4M2M.upload.maximum_size=1044464 arduino-esp8266.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 arduino-esp8266.menu.eesz.4M2M.build.spiffs_start=0x200000 -arduino-esp8266.menu.eesz.4M2M.build.spiffs_end=0x3FB000 +arduino-esp8266.menu.eesz.4M2M.build.spiffs_end=0x3FA000 arduino-esp8266.menu.eesz.4M2M.build.spiffs_blocksize=8192 arduino-esp8266.menu.eesz.4M3M=4M (3M SPIFFS) arduino-esp8266.menu.eesz.4M3M.build.flash_size=4M @@ -4799,7 +4799,7 @@ arduino-esp8266.menu.eesz.4M3M.build.spiffs_pagesize=256 arduino-esp8266.menu.eesz.4M3M.upload.maximum_size=1044464 arduino-esp8266.menu.eesz.4M3M.build.rfcal_addr=0x3FC000 arduino-esp8266.menu.eesz.4M3M.build.spiffs_start=0x100000 -arduino-esp8266.menu.eesz.4M3M.build.spiffs_end=0x3FB000 +arduino-esp8266.menu.eesz.4M3M.build.spiffs_end=0x3FA000 arduino-esp8266.menu.eesz.4M3M.build.spiffs_blocksize=8192 arduino-esp8266.menu.ip.lm2f=v2 Lower Memory arduino-esp8266.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -5149,7 +5149,7 @@ oak.menu.eesz.4M1M.build.spiffs_pagesize=256 oak.menu.eesz.4M1M.upload.maximum_size=1044464 oak.menu.eesz.4M1M.build.rfcal_addr=0x3FC000 oak.menu.eesz.4M1M.build.spiffs_start=0x300000 -oak.menu.eesz.4M1M.build.spiffs_end=0x3FB000 +oak.menu.eesz.4M1M.build.spiffs_end=0x3FA000 oak.menu.eesz.4M1M.build.spiffs_blocksize=8192 oak.menu.eesz.4M2M=4M (2M SPIFFS) oak.menu.eesz.4M2M.build.flash_size=4M @@ -5159,7 +5159,7 @@ oak.menu.eesz.4M2M.build.spiffs_pagesize=256 oak.menu.eesz.4M2M.upload.maximum_size=1044464 oak.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 oak.menu.eesz.4M2M.build.spiffs_start=0x200000 -oak.menu.eesz.4M2M.build.spiffs_end=0x3FB000 +oak.menu.eesz.4M2M.build.spiffs_end=0x3FA000 oak.menu.eesz.4M2M.build.spiffs_blocksize=8192 oak.menu.eesz.4M3M=4M (3M SPIFFS) oak.menu.eesz.4M3M.build.flash_size=4M @@ -5169,7 +5169,7 @@ oak.menu.eesz.4M3M.build.spiffs_pagesize=256 oak.menu.eesz.4M3M.upload.maximum_size=1044464 oak.menu.eesz.4M3M.build.rfcal_addr=0x3FC000 oak.menu.eesz.4M3M.build.spiffs_start=0x100000 -oak.menu.eesz.4M3M.build.spiffs_end=0x3FB000 +oak.menu.eesz.4M3M.build.spiffs_end=0x3FA000 oak.menu.eesz.4M3M.build.spiffs_blocksize=8192 oak.menu.ip.lm2f=v2 Lower Memory oak.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -5333,7 +5333,7 @@ wifiduino.menu.eesz.4M1M.build.spiffs_pagesize=256 wifiduino.menu.eesz.4M1M.upload.maximum_size=1044464 wifiduino.menu.eesz.4M1M.build.rfcal_addr=0x3FC000 wifiduino.menu.eesz.4M1M.build.spiffs_start=0x300000 -wifiduino.menu.eesz.4M1M.build.spiffs_end=0x3FB000 +wifiduino.menu.eesz.4M1M.build.spiffs_end=0x3FA000 wifiduino.menu.eesz.4M1M.build.spiffs_blocksize=8192 wifiduino.menu.eesz.4M2M=4M (2M SPIFFS) wifiduino.menu.eesz.4M2M.build.flash_size=4M @@ -5343,7 +5343,7 @@ wifiduino.menu.eesz.4M2M.build.spiffs_pagesize=256 wifiduino.menu.eesz.4M2M.upload.maximum_size=1044464 wifiduino.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 wifiduino.menu.eesz.4M2M.build.spiffs_start=0x200000 -wifiduino.menu.eesz.4M2M.build.spiffs_end=0x3FB000 +wifiduino.menu.eesz.4M2M.build.spiffs_end=0x3FA000 wifiduino.menu.eesz.4M2M.build.spiffs_blocksize=8192 wifiduino.menu.eesz.4M3M=4M (3M SPIFFS) wifiduino.menu.eesz.4M3M.build.flash_size=4M @@ -5353,7 +5353,7 @@ wifiduino.menu.eesz.4M3M.build.spiffs_pagesize=256 wifiduino.menu.eesz.4M3M.upload.maximum_size=1044464 wifiduino.menu.eesz.4M3M.build.rfcal_addr=0x3FC000 wifiduino.menu.eesz.4M3M.build.spiffs_start=0x100000 -wifiduino.menu.eesz.4M3M.build.spiffs_end=0x3FB000 +wifiduino.menu.eesz.4M3M.build.spiffs_end=0x3FA000 wifiduino.menu.eesz.4M3M.build.spiffs_blocksize=8192 wifiduino.menu.ip.lm2f=v2 Lower Memory wifiduino.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -5628,7 +5628,7 @@ wifi_slot.menu.eesz.2M512.upload.maximum_size=1044464 wifi_slot.menu.eesz.2M512.build.rfcal_addr=0x1FC000 wifi_slot.menu.eesz.2M512.build.spiffs_start=0x180000 wifi_slot.menu.eesz.2M512.build.spiffs_end=0x1FB000 -wifi_slot.menu.eesz.2M512.build.spiffs_blocksize=8192 +wifi_slot.menu.eesz.2M512.build.spiffs_blocksize=4096 wifi_slot.menu.eesz.2M1M=2M (1M SPIFFS) wifi_slot.menu.eesz.2M1M.build.flash_size=2M wifi_slot.menu.eesz.2M1M.build.flash_size_bytes=0x200000 @@ -5637,7 +5637,7 @@ wifi_slot.menu.eesz.2M1M.build.spiffs_pagesize=256 wifi_slot.menu.eesz.2M1M.upload.maximum_size=1044464 wifi_slot.menu.eesz.2M1M.build.rfcal_addr=0x1FC000 wifi_slot.menu.eesz.2M1M.build.spiffs_start=0x100000 -wifi_slot.menu.eesz.2M1M.build.spiffs_end=0x1FB000 +wifi_slot.menu.eesz.2M1M.build.spiffs_end=0x1FA000 wifi_slot.menu.eesz.2M1M.build.spiffs_blocksize=8192 wifi_slot.menu.ip.lm2f=v2 Lower Memory wifi_slot.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -5801,7 +5801,7 @@ wiolink.menu.eesz.4M1M.build.spiffs_pagesize=256 wiolink.menu.eesz.4M1M.upload.maximum_size=1044464 wiolink.menu.eesz.4M1M.build.rfcal_addr=0x3FC000 wiolink.menu.eesz.4M1M.build.spiffs_start=0x300000 -wiolink.menu.eesz.4M1M.build.spiffs_end=0x3FB000 +wiolink.menu.eesz.4M1M.build.spiffs_end=0x3FA000 wiolink.menu.eesz.4M1M.build.spiffs_blocksize=8192 wiolink.menu.eesz.4M2M=4M (2M SPIFFS) wiolink.menu.eesz.4M2M.build.flash_size=4M @@ -5811,7 +5811,7 @@ wiolink.menu.eesz.4M2M.build.spiffs_pagesize=256 wiolink.menu.eesz.4M2M.upload.maximum_size=1044464 wiolink.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 wiolink.menu.eesz.4M2M.build.spiffs_start=0x200000 -wiolink.menu.eesz.4M2M.build.spiffs_end=0x3FB000 +wiolink.menu.eesz.4M2M.build.spiffs_end=0x3FA000 wiolink.menu.eesz.4M2M.build.spiffs_blocksize=8192 wiolink.menu.eesz.4M3M=4M (3M SPIFFS) wiolink.menu.eesz.4M3M.build.flash_size=4M @@ -5821,7 +5821,7 @@ wiolink.menu.eesz.4M3M.build.spiffs_pagesize=256 wiolink.menu.eesz.4M3M.upload.maximum_size=1044464 wiolink.menu.eesz.4M3M.build.rfcal_addr=0x3FC000 wiolink.menu.eesz.4M3M.build.spiffs_start=0x100000 -wiolink.menu.eesz.4M3M.build.spiffs_end=0x3FB000 +wiolink.menu.eesz.4M3M.build.spiffs_end=0x3FA000 wiolink.menu.eesz.4M3M.build.spiffs_blocksize=8192 wiolink.menu.ip.lm2f=v2 Lower Memory wiolink.menu.ip.lm2f.build.lwip_include=lwip2/include @@ -5985,7 +5985,7 @@ espectro.menu.eesz.4M1M.build.spiffs_pagesize=256 espectro.menu.eesz.4M1M.upload.maximum_size=1044464 espectro.menu.eesz.4M1M.build.rfcal_addr=0x3FC000 espectro.menu.eesz.4M1M.build.spiffs_start=0x300000 -espectro.menu.eesz.4M1M.build.spiffs_end=0x3FB000 +espectro.menu.eesz.4M1M.build.spiffs_end=0x3FA000 espectro.menu.eesz.4M1M.build.spiffs_blocksize=8192 espectro.menu.eesz.4M2M=4M (2M SPIFFS) espectro.menu.eesz.4M2M.build.flash_size=4M @@ -5995,7 +5995,7 @@ espectro.menu.eesz.4M2M.build.spiffs_pagesize=256 espectro.menu.eesz.4M2M.upload.maximum_size=1044464 espectro.menu.eesz.4M2M.build.rfcal_addr=0x3FC000 espectro.menu.eesz.4M2M.build.spiffs_start=0x200000 -espectro.menu.eesz.4M2M.build.spiffs_end=0x3FB000 +espectro.menu.eesz.4M2M.build.spiffs_end=0x3FA000 espectro.menu.eesz.4M2M.build.spiffs_blocksize=8192 espectro.menu.eesz.4M3M=4M (3M SPIFFS) espectro.menu.eesz.4M3M.build.flash_size=4M @@ -6005,7 +6005,7 @@ espectro.menu.eesz.4M3M.build.spiffs_pagesize=256 espectro.menu.eesz.4M3M.upload.maximum_size=1044464 espectro.menu.eesz.4M3M.build.rfcal_addr=0x3FC000 espectro.menu.eesz.4M3M.build.spiffs_start=0x100000 -espectro.menu.eesz.4M3M.build.spiffs_end=0x3FB000 +espectro.menu.eesz.4M3M.build.spiffs_end=0x3FA000 espectro.menu.eesz.4M3M.build.spiffs_blocksize=8192 espectro.menu.ip.lm2f=v2 Lower Memory espectro.menu.ip.lm2f.build.lwip_include=lwip2/include diff --git a/package/package_esp8266com_index.template.json b/package/package_esp8266com_index.template.json index 387f636c17..ec2314f7e1 100644 --- a/package/package_esp8266com_index.template.json +++ b/package/package_esp8266com_index.template.json @@ -299,4 +299,4 @@ ] } ] -} +} \ No newline at end of file diff --git a/tools/boards.txt.py b/tools/boards.txt.py index fd9605116a..068c4a07ac 100755 --- a/tools/boards.txt.py +++ b/tools/boards.txt.py @@ -1172,11 +1172,14 @@ def flash_map (flashsize_kb, spiffs_kb = 0): else: max_upload_size = 1024 * 1024 - reserved spiffs_start = (flashsize_kb - spiffs_kb) * 1024 - if spiffs_kb < 512: + if spiffs_kb <= 512: spiffs_blocksize = 4096 else: spiffs_blocksize = 8192 + # Adjust SPIFFS_end to be a multiple of the block size + spiffs_end = spiffs_blocksize * (int)((spiffs_end - spiffs_start)/spiffs_blocksize) + spiffs_start; + strsize = str(int(flashsize_kb / 1024)) + 'M' if (flashsize_kb >= 1024) else str(flashsize_kb) + 'K' strspiffs = str(int(spiffs_kb / 1024)) + 'M' if (spiffs_kb >= 1024) else str(spiffs_kb) + 'K' strspiffs_strip = str(int(spiffs_kb / 1024)) + 'M' if (spiffs_kb >= 1024) else str(spiffs_kb) if (spiffs_kb > 0) else '' @@ -1217,13 +1220,11 @@ def flash_map (flashsize_kb, spiffs_kb = 0): if spiffs_kb == 0: spiffs_start = spiffs_end page = 0 - block = 0 + spiffs_blocksize = 0 elif spiffs_kb < 0x80000 / 1024: page = 0x100 - block = 0x1000 else: page = 0x100 - block = 0x2000 print("/* Flash Split for %s chips */" % strsize) print("/* sketch @0x%X (~%dKB) (%dB) */" % (spi, (max_upload_size / 1024), max_upload_size)) @@ -1246,7 +1247,7 @@ def flash_map (flashsize_kb, spiffs_kb = 0): print("PROVIDE ( _SPIFFS_start = 0x%08X );" % (0x40200000 + spiffs_start)) print("PROVIDE ( _SPIFFS_end = 0x%08X );" % (0x40200000 + spiffs_end)) print("PROVIDE ( _SPIFFS_page = 0x%X );" % page) - print("PROVIDE ( _SPIFFS_block = 0x%X );" % block) + print("PROVIDE ( _SPIFFS_block = 0x%X );" % spiffs_blocksize) print("") print('INCLUDE "local.eagle.app.v6.common.ld"') diff --git a/tools/sdk/ld/eagle.flash.16m14m.ld b/tools/sdk/ld/eagle.flash.16m14m.ld index ccce5ddc39..c07f7adc5b 100644 --- a/tools/sdk/ld/eagle.flash.16m14m.ld +++ b/tools/sdk/ld/eagle.flash.16m14m.ld @@ -1,7 +1,7 @@ /* Flash Split for 16M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ /* empty @0x402FEFF0 (~1028KB) (1052688B) */ -/* spiffs @0x40400000 (~14316KB) (14659584B) */ +/* spiffs @0x40400000 (~14312KB) (14655488B) */ /* eeprom @0x411FB000 (4KB) */ /* rfcal @0x411FC000 (4KB) */ /* wifi @0x411FD000 (12KB) */ @@ -15,7 +15,7 @@ MEMORY } PROVIDE ( _SPIFFS_start = 0x40400000 ); -PROVIDE ( _SPIFFS_end = 0x411FB000 ); +PROVIDE ( _SPIFFS_end = 0x411FA000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x2000 ); diff --git a/tools/sdk/ld/eagle.flash.16m15m.ld b/tools/sdk/ld/eagle.flash.16m15m.ld index 93b30d219b..eca6831e25 100644 --- a/tools/sdk/ld/eagle.flash.16m15m.ld +++ b/tools/sdk/ld/eagle.flash.16m15m.ld @@ -1,7 +1,7 @@ /* Flash Split for 16M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ /* empty @0x402FEFF0 (~4KB) (4112B) */ -/* spiffs @0x40300000 (~15340KB) (15708160B) */ +/* spiffs @0x40300000 (~15336KB) (15704064B) */ /* eeprom @0x411FB000 (4KB) */ /* rfcal @0x411FC000 (4KB) */ /* wifi @0x411FD000 (12KB) */ @@ -15,7 +15,7 @@ MEMORY } PROVIDE ( _SPIFFS_start = 0x40300000 ); -PROVIDE ( _SPIFFS_end = 0x411FB000 ); +PROVIDE ( _SPIFFS_end = 0x411FA000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x2000 ); diff --git a/tools/sdk/ld/eagle.flash.1m512.ld b/tools/sdk/ld/eagle.flash.1m512.ld index f2df1a0734..10e573c7a5 100644 --- a/tools/sdk/ld/eagle.flash.1m512.ld +++ b/tools/sdk/ld/eagle.flash.1m512.ld @@ -17,6 +17,6 @@ MEMORY PROVIDE ( _SPIFFS_start = 0x4027B000 ); PROVIDE ( _SPIFFS_end = 0x402FB000 ); PROVIDE ( _SPIFFS_page = 0x100 ); -PROVIDE ( _SPIFFS_block = 0x2000 ); +PROVIDE ( _SPIFFS_block = 0x1000 ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.2m1m.ld b/tools/sdk/ld/eagle.flash.2m1m.ld index 08fb1b152a..926d8a95a2 100644 --- a/tools/sdk/ld/eagle.flash.2m1m.ld +++ b/tools/sdk/ld/eagle.flash.2m1m.ld @@ -1,7 +1,7 @@ /* Flash Split for 2M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ /* empty @0x402FEFF0 (~4KB) (4112B) */ -/* spiffs @0x40300000 (~1004KB) (1028096B) */ +/* spiffs @0x40300000 (~1000KB) (1024000B) */ /* eeprom @0x403FB000 (4KB) */ /* rfcal @0x403FC000 (4KB) */ /* wifi @0x403FD000 (12KB) */ @@ -15,7 +15,7 @@ MEMORY } PROVIDE ( _SPIFFS_start = 0x40300000 ); -PROVIDE ( _SPIFFS_end = 0x403FB000 ); +PROVIDE ( _SPIFFS_end = 0x403FA000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x2000 ); diff --git a/tools/sdk/ld/eagle.flash.2m512.ld b/tools/sdk/ld/eagle.flash.2m512.ld index 2d8f3e78a6..62ada26948 100644 --- a/tools/sdk/ld/eagle.flash.2m512.ld +++ b/tools/sdk/ld/eagle.flash.2m512.ld @@ -17,6 +17,6 @@ MEMORY PROVIDE ( _SPIFFS_start = 0x40380000 ); PROVIDE ( _SPIFFS_end = 0x403FB000 ); PROVIDE ( _SPIFFS_page = 0x100 ); -PROVIDE ( _SPIFFS_block = 0x2000 ); +PROVIDE ( _SPIFFS_block = 0x1000 ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.4m1m.ld b/tools/sdk/ld/eagle.flash.4m1m.ld index 74bf04bc3d..0560631fc6 100644 --- a/tools/sdk/ld/eagle.flash.4m1m.ld +++ b/tools/sdk/ld/eagle.flash.4m1m.ld @@ -1,7 +1,7 @@ /* Flash Split for 4M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ /* empty @0x402FEFF0 (~2052KB) (2101264B) */ -/* spiffs @0x40500000 (~1004KB) (1028096B) */ +/* spiffs @0x40500000 (~1000KB) (1024000B) */ /* eeprom @0x405FB000 (4KB) */ /* rfcal @0x405FC000 (4KB) */ /* wifi @0x405FD000 (12KB) */ @@ -15,7 +15,7 @@ MEMORY } PROVIDE ( _SPIFFS_start = 0x40500000 ); -PROVIDE ( _SPIFFS_end = 0x405FB000 ); +PROVIDE ( _SPIFFS_end = 0x405FA000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x2000 ); diff --git a/tools/sdk/ld/eagle.flash.4m2m.ld b/tools/sdk/ld/eagle.flash.4m2m.ld index 6eb95b1be9..5ea73c5747 100644 --- a/tools/sdk/ld/eagle.flash.4m2m.ld +++ b/tools/sdk/ld/eagle.flash.4m2m.ld @@ -1,7 +1,7 @@ /* Flash Split for 4M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ /* empty @0x402FEFF0 (~1028KB) (1052688B) */ -/* spiffs @0x40400000 (~2028KB) (2076672B) */ +/* spiffs @0x40400000 (~2024KB) (2072576B) */ /* eeprom @0x405FB000 (4KB) */ /* rfcal @0x405FC000 (4KB) */ /* wifi @0x405FD000 (12KB) */ @@ -15,7 +15,7 @@ MEMORY } PROVIDE ( _SPIFFS_start = 0x40400000 ); -PROVIDE ( _SPIFFS_end = 0x405FB000 ); +PROVIDE ( _SPIFFS_end = 0x405FA000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x2000 ); diff --git a/tools/sdk/ld/eagle.flash.4m3m.ld b/tools/sdk/ld/eagle.flash.4m3m.ld index 37acf69daf..a141fcd515 100644 --- a/tools/sdk/ld/eagle.flash.4m3m.ld +++ b/tools/sdk/ld/eagle.flash.4m3m.ld @@ -1,7 +1,7 @@ /* Flash Split for 4M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ /* empty @0x402FEFF0 (~4KB) (4112B) */ -/* spiffs @0x40300000 (~3052KB) (3125248B) */ +/* spiffs @0x40300000 (~3048KB) (3121152B) */ /* eeprom @0x405FB000 (4KB) */ /* rfcal @0x405FC000 (4KB) */ /* wifi @0x405FD000 (12KB) */ @@ -15,7 +15,7 @@ MEMORY } PROVIDE ( _SPIFFS_start = 0x40300000 ); -PROVIDE ( _SPIFFS_end = 0x405FB000 ); +PROVIDE ( _SPIFFS_end = 0x405FA000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x2000 ); diff --git a/tools/sdk/ld/eagle.flash.8m6m.ld b/tools/sdk/ld/eagle.flash.8m6m.ld index b65d46751a..ee57f20001 100644 --- a/tools/sdk/ld/eagle.flash.8m6m.ld +++ b/tools/sdk/ld/eagle.flash.8m6m.ld @@ -1,7 +1,7 @@ /* Flash Split for 8M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ /* empty @0x402FEFF0 (~1028KB) (1052688B) */ -/* spiffs @0x40400000 (~6124KB) (6270976B) */ +/* spiffs @0x40400000 (~6120KB) (6266880B) */ /* eeprom @0x409FB000 (4KB) */ /* rfcal @0x409FC000 (4KB) */ /* wifi @0x409FD000 (12KB) */ @@ -15,7 +15,7 @@ MEMORY } PROVIDE ( _SPIFFS_start = 0x40400000 ); -PROVIDE ( _SPIFFS_end = 0x409FB000 ); +PROVIDE ( _SPIFFS_end = 0x409FA000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x2000 ); diff --git a/tools/sdk/ld/eagle.flash.8m7m.ld b/tools/sdk/ld/eagle.flash.8m7m.ld index 9ec7cc128b..32117f9b28 100644 --- a/tools/sdk/ld/eagle.flash.8m7m.ld +++ b/tools/sdk/ld/eagle.flash.8m7m.ld @@ -1,7 +1,7 @@ /* Flash Split for 8M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ /* empty @0x402FEFF0 (~4KB) (4112B) */ -/* spiffs @0x40300000 (~7148KB) (7319552B) */ +/* spiffs @0x40300000 (~7144KB) (7315456B) */ /* eeprom @0x409FB000 (4KB) */ /* rfcal @0x409FC000 (4KB) */ /* wifi @0x409FD000 (12KB) */ @@ -15,7 +15,7 @@ MEMORY } PROVIDE ( _SPIFFS_start = 0x40300000 ); -PROVIDE ( _SPIFFS_end = 0x409FB000 ); +PROVIDE ( _SPIFFS_end = 0x409FA000 ); PROVIDE ( _SPIFFS_page = 0x100 ); PROVIDE ( _SPIFFS_block = 0x2000 ); From e2b36d30a32d8566b964465fcaa0a9006f1dc102 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" <earlephilhower@yahoo.com> Date: Tue, 16 Apr 2019 07:27:08 -0700 Subject: [PATCH 2/4] Fix the 1m512 case and clean up code Ensure that no SPIFFS_block in the LD files is modified from the original to endure correct backwards compatibility --- boards.txt | 22 +++++++++++----------- tools/boards.txt.py | 9 +++++---- tools/sdk/ld/eagle.flash.1m512.ld | 2 +- tools/sdk/ld/eagle.flash.2m512.ld | 6 +++--- 4 files changed, 20 insertions(+), 19 deletions(-) diff --git a/boards.txt b/boards.txt index 9e76f582d3..7a96bc128c 100644 --- a/boards.txt +++ b/boards.txt @@ -193,7 +193,7 @@ generic.menu.eesz.1M512.upload.maximum_size=499696 generic.menu.eesz.1M512.build.rfcal_addr=0xFC000 generic.menu.eesz.1M512.build.spiffs_start=0x7B000 generic.menu.eesz.1M512.build.spiffs_end=0xFB000 -generic.menu.eesz.1M512.build.spiffs_blocksize=4096 +generic.menu.eesz.1M512.build.spiffs_blocksize=8192 generic.menu.eesz.2M=2M (no SPIFFS) generic.menu.eesz.2M.build.flash_size=2M generic.menu.eesz.2M.build.flash_size_bytes=0x200000 @@ -229,8 +229,8 @@ generic.menu.eesz.2M512.build.spiffs_pagesize=256 generic.menu.eesz.2M512.upload.maximum_size=1044464 generic.menu.eesz.2M512.build.rfcal_addr=0x1FC000 generic.menu.eesz.2M512.build.spiffs_start=0x180000 -generic.menu.eesz.2M512.build.spiffs_end=0x1FB000 -generic.menu.eesz.2M512.build.spiffs_blocksize=4096 +generic.menu.eesz.2M512.build.spiffs_end=0x1FA000 +generic.menu.eesz.2M512.build.spiffs_blocksize=8192 generic.menu.eesz.2M1M=2M (1M SPIFFS) generic.menu.eesz.2M1M.build.flash_size=2M generic.menu.eesz.2M1M.build.flash_size_bytes=0x200000 @@ -589,7 +589,7 @@ esp8285.menu.eesz.1M512.upload.maximum_size=499696 esp8285.menu.eesz.1M512.build.rfcal_addr=0xFC000 esp8285.menu.eesz.1M512.build.spiffs_start=0x7B000 esp8285.menu.eesz.1M512.build.spiffs_end=0xFB000 -esp8285.menu.eesz.1M512.build.spiffs_blocksize=4096 +esp8285.menu.eesz.1M512.build.spiffs_blocksize=8192 esp8285.menu.led.2=2 esp8285.menu.led.2.build.led=-DLED_BUILTIN=2 esp8285.menu.led.0=0 @@ -2667,8 +2667,8 @@ modwifi.menu.eesz.2M512.build.spiffs_pagesize=256 modwifi.menu.eesz.2M512.upload.maximum_size=1044464 modwifi.menu.eesz.2M512.build.rfcal_addr=0x1FC000 modwifi.menu.eesz.2M512.build.spiffs_start=0x180000 -modwifi.menu.eesz.2M512.build.spiffs_end=0x1FB000 -modwifi.menu.eesz.2M512.build.spiffs_blocksize=4096 +modwifi.menu.eesz.2M512.build.spiffs_end=0x1FA000 +modwifi.menu.eesz.2M512.build.spiffs_blocksize=8192 modwifi.menu.eesz.2M1M=2M (1M SPIFFS) modwifi.menu.eesz.2M1M.build.flash_size=2M modwifi.menu.eesz.2M1M.build.flash_size_bytes=0x200000 @@ -3805,7 +3805,7 @@ d1_mini_lite.menu.eesz.1M512.upload.maximum_size=499696 d1_mini_lite.menu.eesz.1M512.build.rfcal_addr=0xFC000 d1_mini_lite.menu.eesz.1M512.build.spiffs_start=0x7B000 d1_mini_lite.menu.eesz.1M512.build.spiffs_end=0xFB000 -d1_mini_lite.menu.eesz.1M512.build.spiffs_blocksize=4096 +d1_mini_lite.menu.eesz.1M512.build.spiffs_blocksize=8192 d1_mini_lite.menu.ip.lm2f=v2 Lower Memory d1_mini_lite.menu.ip.lm2f.build.lwip_include=lwip2/include d1_mini_lite.menu.ip.lm2f.build.lwip_lib=-llwip2-536-feat @@ -4604,7 +4604,7 @@ wifinfo.menu.eesz.1M512.upload.maximum_size=499696 wifinfo.menu.eesz.1M512.build.rfcal_addr=0xFC000 wifinfo.menu.eesz.1M512.build.spiffs_start=0x7B000 wifinfo.menu.eesz.1M512.build.spiffs_end=0xFB000 -wifinfo.menu.eesz.1M512.build.spiffs_blocksize=4096 +wifinfo.menu.eesz.1M512.build.spiffs_blocksize=8192 wifinfo.menu.ip.lm2f=v2 Lower Memory wifinfo.menu.ip.lm2f.build.lwip_include=lwip2/include wifinfo.menu.ip.lm2f.build.lwip_lib=-llwip2-536-feat @@ -5591,7 +5591,7 @@ wifi_slot.menu.eesz.1M512.upload.maximum_size=499696 wifi_slot.menu.eesz.1M512.build.rfcal_addr=0xFC000 wifi_slot.menu.eesz.1M512.build.spiffs_start=0x7B000 wifi_slot.menu.eesz.1M512.build.spiffs_end=0xFB000 -wifi_slot.menu.eesz.1M512.build.spiffs_blocksize=4096 +wifi_slot.menu.eesz.1M512.build.spiffs_blocksize=8192 wifi_slot.menu.eesz.2M=2M (no SPIFFS) wifi_slot.menu.eesz.2M.build.flash_size=2M wifi_slot.menu.eesz.2M.build.flash_size_bytes=0x200000 @@ -5627,8 +5627,8 @@ wifi_slot.menu.eesz.2M512.build.spiffs_pagesize=256 wifi_slot.menu.eesz.2M512.upload.maximum_size=1044464 wifi_slot.menu.eesz.2M512.build.rfcal_addr=0x1FC000 wifi_slot.menu.eesz.2M512.build.spiffs_start=0x180000 -wifi_slot.menu.eesz.2M512.build.spiffs_end=0x1FB000 -wifi_slot.menu.eesz.2M512.build.spiffs_blocksize=4096 +wifi_slot.menu.eesz.2M512.build.spiffs_end=0x1FA000 +wifi_slot.menu.eesz.2M512.build.spiffs_blocksize=8192 wifi_slot.menu.eesz.2M1M=2M (1M SPIFFS) wifi_slot.menu.eesz.2M1M.build.flash_size=2M wifi_slot.menu.eesz.2M1M.build.flash_size_bytes=0x200000 diff --git a/tools/boards.txt.py b/tools/boards.txt.py index 068c4a07ac..ea4061746f 100755 --- a/tools/boards.txt.py +++ b/tools/boards.txt.py @@ -1168,11 +1168,14 @@ def flash_map (flashsize_kb, spiffs_kb = 0): if flashsize_kb <= 1024: max_upload_size = (flashsize_kb - (spiffs_kb + eeprom_size_kb + rfcal_size_kb + sdkwifi_size_kb)) * 1024 - reserved spiffs_start = spiffs_end - spiffs_kb * 1024 - spiffs_blocksize = 4096 + if spiffs_kb < 512: + spiffs_blocksize = 4096 + else: + spiffs_blocksize = 8192 else: max_upload_size = 1024 * 1024 - reserved spiffs_start = (flashsize_kb - spiffs_kb) * 1024 - if spiffs_kb <= 512: + if spiffs_kb < 512: spiffs_blocksize = 4096 else: spiffs_blocksize = 8192 @@ -1221,8 +1224,6 @@ def flash_map (flashsize_kb, spiffs_kb = 0): spiffs_start = spiffs_end page = 0 spiffs_blocksize = 0 - elif spiffs_kb < 0x80000 / 1024: - page = 0x100 else: page = 0x100 diff --git a/tools/sdk/ld/eagle.flash.1m512.ld b/tools/sdk/ld/eagle.flash.1m512.ld index 10e573c7a5..f2df1a0734 100644 --- a/tools/sdk/ld/eagle.flash.1m512.ld +++ b/tools/sdk/ld/eagle.flash.1m512.ld @@ -17,6 +17,6 @@ MEMORY PROVIDE ( _SPIFFS_start = 0x4027B000 ); PROVIDE ( _SPIFFS_end = 0x402FB000 ); PROVIDE ( _SPIFFS_page = 0x100 ); -PROVIDE ( _SPIFFS_block = 0x1000 ); +PROVIDE ( _SPIFFS_block = 0x2000 ); INCLUDE "local.eagle.app.v6.common.ld" diff --git a/tools/sdk/ld/eagle.flash.2m512.ld b/tools/sdk/ld/eagle.flash.2m512.ld index 62ada26948..f13e499f33 100644 --- a/tools/sdk/ld/eagle.flash.2m512.ld +++ b/tools/sdk/ld/eagle.flash.2m512.ld @@ -1,7 +1,7 @@ /* Flash Split for 2M chips */ /* sketch @0x40200000 (~1019KB) (1044464B) */ /* empty @0x402FEFF0 (~516KB) (528400B) */ -/* spiffs @0x40380000 (~492KB) (503808B) */ +/* spiffs @0x40380000 (~488KB) (499712B) */ /* eeprom @0x403FB000 (4KB) */ /* rfcal @0x403FC000 (4KB) */ /* wifi @0x403FD000 (12KB) */ @@ -15,8 +15,8 @@ MEMORY } PROVIDE ( _SPIFFS_start = 0x40380000 ); -PROVIDE ( _SPIFFS_end = 0x403FB000 ); +PROVIDE ( _SPIFFS_end = 0x403FA000 ); PROVIDE ( _SPIFFS_page = 0x100 ); -PROVIDE ( _SPIFFS_block = 0x1000 ); +PROVIDE ( _SPIFFS_block = 0x2000 ); INCLUDE "local.eagle.app.v6.common.ld" From ce0099d35debc93058257f2b7e763a79e58fa1e5 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" <earlephilhower@yahoo.com> Date: Tue, 16 Apr 2019 07:45:31 -0700 Subject: [PATCH 3/4] Factor out common if, clean code --- tools/boards.txt.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/tools/boards.txt.py b/tools/boards.txt.py index ea4061746f..4b74ce318b 100755 --- a/tools/boards.txt.py +++ b/tools/boards.txt.py @@ -1168,17 +1168,14 @@ def flash_map (flashsize_kb, spiffs_kb = 0): if flashsize_kb <= 1024: max_upload_size = (flashsize_kb - (spiffs_kb + eeprom_size_kb + rfcal_size_kb + sdkwifi_size_kb)) * 1024 - reserved spiffs_start = spiffs_end - spiffs_kb * 1024 - if spiffs_kb < 512: - spiffs_blocksize = 4096 - else: - spiffs_blocksize = 8192 else: max_upload_size = 1024 * 1024 - reserved spiffs_start = (flashsize_kb - spiffs_kb) * 1024 - if spiffs_kb < 512: - spiffs_blocksize = 4096 - else: - spiffs_blocksize = 8192 + + if spiffs_kb < 512: + spiffs_blocksize = 4096 + else: + spiffs_blocksize = 8192 # Adjust SPIFFS_end to be a multiple of the block size spiffs_end = spiffs_blocksize * (int)((spiffs_end - spiffs_start)/spiffs_blocksize) + spiffs_start; From 84bc5e58cd8f678905679d90d1022c7bcc6e487d Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" <earlephilhower@yahoo.com> Date: Thu, 4 Jul 2019 08:42:10 -0700 Subject: [PATCH 4/4] Make boards.py vars "fs_xx" instead of "spiffs_xx" --- tools/boards.txt.py | 54 ++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/tools/boards.txt.py b/tools/boards.txt.py index e0df6f82e5..1c76b2799d 100755 --- a/tools/boards.txt.py +++ b/tools/boards.txt.py @@ -1161,7 +1161,7 @@ def all_debug (): ################################################################ # flash size -def flash_map (flashsize_kb, spiffs_kb = 0): +def flash_map (flashsize_kb, fs_kb = 0): # mapping: # flash | reserved | empty | spiffs | eeprom | rf-cal | sdk-wifi-settings @@ -1172,32 +1172,32 @@ def flash_map (flashsize_kb, spiffs_kb = 0): eeprom_size_kb = 4 rfcal_size_kb = 4 sdkwifi_size_kb = 12 - spiffs_end = (flashsize_kb - sdkwifi_size_kb - rfcal_size_kb - eeprom_size_kb) * 1024 + fs_end = (flashsize_kb - sdkwifi_size_kb - rfcal_size_kb - eeprom_size_kb) * 1024 rfcal_addr = (flashsize_kb - sdkwifi_size_kb - rfcal_size_kb) * 1024 if flashsize_kb <= 1024: - max_upload_size = (flashsize_kb - (spiffs_kb + eeprom_size_kb + rfcal_size_kb + sdkwifi_size_kb)) * 1024 - reserved - spiffs_start = spiffs_end - spiffs_kb * 1024 + max_upload_size = (flashsize_kb - (fs_kb + eeprom_size_kb + rfcal_size_kb + sdkwifi_size_kb)) * 1024 - reserved + fs_start = fs_end - fs_kb * 1024 else: max_upload_size = 1024 * 1024 - reserved - spiffs_start = (flashsize_kb - spiffs_kb) * 1024 + fs_start = (flashsize_kb - fs_kb) * 1024 - if spiffs_kb < 512: - spiffs_blocksize = 4096 + if fs_kb < 512: + fs_blocksize = 4096 else: - spiffs_blocksize = 8192 + fs_blocksize = 8192 # Adjust SPIFFS_end to be a multiple of the block size - spiffs_end = spiffs_blocksize * (int)((spiffs_end - spiffs_start)/spiffs_blocksize) + spiffs_start; + fs_end = fs_blocksize * (int)((fs_end - fs_start)/fs_blocksize) + fs_start; - max_ota_size = min(max_upload_size, spiffs_start / 2) # =(max_upload_size+empty_size)/2 + max_ota_size = min(max_upload_size, fs_start / 2) # =(max_upload_size+empty_size)/2 strsize = str(int(flashsize_kb / 1024)) + 'M' if (flashsize_kb >= 1024) else str(flashsize_kb) + 'K' - strspiffs = str(int(spiffs_kb / 1024)) + 'M' if (spiffs_kb >= 1024) else str(spiffs_kb) + 'K' - strspiffs_strip = str(int(spiffs_kb / 1024)) + 'M' if (spiffs_kb >= 1024) else str(spiffs_kb) if (spiffs_kb > 0) else '' + strfs = str(int(fs_kb / 1024)) + 'M' if (fs_kb >= 1024) else str(fs_kb) + 'K' + strfs_strip = str(int(fs_kb / 1024)) + 'M' if (fs_kb >= 1024) else str(fs_kb) if (fs_kb > 0) else '' - ld = 'eagle.flash.' + strsize.lower() + strspiffs_strip.lower() + '.ld' - menu = '.menu.eesz.' + strsize + strspiffs_strip + ld = 'eagle.flash.' + strsize.lower() + strfs_strip.lower() + '.ld' + menu = '.menu.eesz.' + strsize + strfs_strip menub = menu + '.build.' - desc = 'no' if (spiffs_kb == 0) else strspiffs + 'B' + desc = 'no' if (fs_kb == 0) else strfs + 'B' d = collections.OrderedDict([ ( menu, strsize + 'B (FS:' + desc + ' OTA:~%iKB)' % (max_ota_size / 1024)), ( menub + 'flash_size', strsize ), @@ -1207,11 +1207,11 @@ def flash_map (flashsize_kb, spiffs_kb = 0): ( menu + '.upload.maximum_size', "%i" % max_upload_size ), ( menub + 'rfcal_addr', "0x%X" % rfcal_addr) ]) - if spiffs_kb > 0: + if fs_kb > 0: d.update(collections.OrderedDict([ - ( menub + 'spiffs_start', "0x%05X" % spiffs_start ), - ( menub + 'spiffs_end', "0x%05X" % spiffs_end ), - ( menub + 'spiffs_blocksize', "%i" % spiffs_blocksize ), + ( menub + 'spiffs_start', "0x%05X" % fs_start ), + ( menub + 'spiffs_end', "0x%05X" % fs_end ), + ( menub + 'spiffs_blocksize', "%i" % fs_blocksize ), ])) if ldshow: @@ -1227,19 +1227,19 @@ def flash_map (flashsize_kb, spiffs_kb = 0): realstdout = sys.stdout sys.stdout = open(lddir + ld, 'w') - if spiffs_kb == 0: - spiffs_start = spiffs_end + if fs_kb == 0: + fs_start = fs_end page = 0 - spiffs_blocksize = 0 + fs_blocksize = 0 else: page = 0x100 print("/* Flash Split for %s chips */" % strsize) print("/* sketch @0x%X (~%dKB) (%dB) */" % (spi, (max_upload_size / 1024), max_upload_size)) - empty_size = spiffs_start - max_upload_size + empty_size = fs_start - max_upload_size if empty_size > 0: print("/* empty @0x%X (~%dKB) (%dB) */" % (spi + max_upload_size, empty_size / 1024, empty_size)) - print("/* spiffs @0x%X (~%dKB) (%dB) */" % (spi + spiffs_start, ((spiffs_end - spiffs_start) / 1024), spiffs_end - spiffs_start)) + print("/* spiffs @0x%X (~%dKB) (%dB) */" % (spi + fs_start, ((fs_end - fs_start) / 1024), fs_end - fs_start)) print("/* eeprom @0x%X (%dKB) */" % (spi + rfcal_addr - eeprom_size_kb * 1024, eeprom_size_kb)) print("/* rfcal @0x%X (%dKB) */" % (spi + rfcal_addr, rfcal_size_kb)) print("/* wifi @0x%X (%dKB) */" % (spi + rfcal_addr + rfcal_size_kb * 1024, sdkwifi_size_kb)) @@ -1252,10 +1252,10 @@ def flash_map (flashsize_kb, spiffs_kb = 0): print(" irom0_0_seg : org = 0x40201010, len = 0x%x" % max_upload_size) print("}") print("") - print("PROVIDE ( _FS_start = 0x%08X );" % (0x40200000 + spiffs_start)) - print("PROVIDE ( _FS_end = 0x%08X );" % (0x40200000 + spiffs_end)) + print("PROVIDE ( _FS_start = 0x%08X );" % (0x40200000 + fs_start)) + print("PROVIDE ( _FS_end = 0x%08X );" % (0x40200000 + fs_end)) print("PROVIDE ( _FS_page = 0x%X );" % page) - print("PROVIDE ( _FS_block = 0x%X );" % spiffs_blocksize) + print("PROVIDE ( _FS_block = 0x%X );" % fs_blocksize) print("") print('INCLUDE "local.eagle.app.v6.common.ld"')