Skip to content

Commit 1fff41e

Browse files
author
ficeto
committed
Make FileSystem take into account the exported page and block sizes
1 parent 5e718d6 commit 1fff41e

File tree

2 files changed

+13
-9
lines changed

2 files changed

+13
-9
lines changed

boards.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ generic.menu.FlashSize.512K.build.flash_size=512K
5757
generic.menu.FlashSize.512K.build.flash_ld=eagle.flash.512k.ld
5858
generic.menu.FlashSize.512K.build.spiffs_start=0x6B000
5959
generic.menu.FlashSize.512K.build.spiffs_end=0x7B000
60+
generic.menu.FlashSize.512K.build.spiffs_blocksize=4096
6061
generic.menu.FlashSize.1M512=1M (512K SPIFFS)
6162
generic.menu.FlashSize.1M512.build.flash_size=1M
6263
generic.menu.FlashSize.1M512.build.flash_ld=eagle.flash.1m512.ld
@@ -68,16 +69,19 @@ generic.menu.FlashSize.1M256.build.flash_size=1M
6869
generic.menu.FlashSize.1M256.build.flash_ld=eagle.flash.1m256.ld
6970
generic.menu.FlashSize.1M256.build.spiffs_start=0xAB000
7071
generic.menu.FlashSize.1M256.build.spiffs_end=0xFB000
72+
generic.menu.FlashSize.1M256.build.spiffs_blocksize=4096
7173
generic.menu.FlashSize.1M128=1M (128K SPIFFS)
7274
generic.menu.FlashSize.1M128.build.flash_size=1M
7375
generic.menu.FlashSize.1M128.build.flash_ld=eagle.flash.1m128.ld
7476
generic.menu.FlashSize.1M128.build.spiffs_start=0xCB000
7577
generic.menu.FlashSize.1M128.build.spiffs_end=0xFB000
78+
generic.menu.FlashSize.1M128.build.spiffs_blocksize=4096
7679
generic.menu.FlashSize.1M64=1M (64K SPIFFS)
7780
generic.menu.FlashSize.1M64.build.flash_size=1M
7881
generic.menu.FlashSize.1M64.build.flash_ld=eagle.flash.1m64.ld
7982
generic.menu.FlashSize.1M64.build.spiffs_start=0xEB000
8083
generic.menu.FlashSize.1M64.build.spiffs_end=0xFB000
84+
generic.menu.FlashSize.1M64.build.spiffs_blocksize=4096
8185
generic.menu.FlashSize.2M=2M (1M SPIFFS)
8286
generic.menu.FlashSize.2M.build.flash_size=2M
8387
generic.menu.FlashSize.2M.build.flash_ld=eagle.flash.2m.ld

cores/esp8266/FileSystem.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,13 @@
2222
#include "Arduino.h"
2323
#include "spiffs/spiffs_esp8266.h"
2424

25-
#define LOGICAL_PAGE_SIZE 256
26-
#define LOGICAL_BLOCK_SIZE (INTERNAL_FLASH_SECTOR_SIZE * 1)
27-
28-
29-
// These addresses are defined in the linker script.
25+
// These addresses and sizes are defined in the linker script.
3026
// For each flash memory size there is a linker script variant
3127
// which sets spiffs location and size.
3228
extern "C" uint32_t _SPIFFS_start;
3329
extern "C" uint32_t _SPIFFS_end;
30+
extern "C" uint32_t _SPIFFS_page;
31+
extern "C" uint32_t _SPIFFS_block;
3432

3533
static s32_t api_spiffs_read(u32_t addr, u32_t size, u8_t *dst);
3634
static s32_t api_spiffs_write(u32_t addr, u32_t size, u8_t *src);
@@ -51,23 +49,25 @@ int FSClass::_mountInternal(){
5149
SPIFFS_API_DBG_E("Can't start file system, wrong address\r\n");
5250
return SPIFFS_ERR_NOT_CONFIGURED;
5351
}
52+
if(_SPIFFS_page == 0) _SPIFFS_page = 256;
53+
if(_SPIFFS_block == 0) _SPIFFS_block = 4096;
5454

5555
spiffs_config cfg = {0};
5656
cfg.phys_addr = _beginAddress;
5757
cfg.phys_size = _endAddress - _beginAddress;
5858
cfg.phys_erase_block = INTERNAL_FLASH_SECTOR_SIZE;
59-
cfg.log_block_size = LOGICAL_BLOCK_SIZE;
60-
cfg.log_page_size = LOGICAL_PAGE_SIZE;
59+
cfg.log_block_size = _SPIFFS_block;
60+
cfg.log_page_size = _SPIFFS_page;
6161
cfg.hal_read_f = api_spiffs_read;
6262
cfg.hal_write_f = api_spiffs_write;
6363
cfg.hal_erase_f = api_spiffs_erase;
6464

6565
SPIFFS_API_DBG_V("FSClass::_mountInternal: start:%x, size:%d Kb\n", cfg.phys_addr, cfg.phys_size / 1024);
6666

67-
_work.reset(new uint8_t[2*LOGICAL_PAGE_SIZE]);
67+
_work.reset(new uint8_t[2*_SPIFFS_page]);
6868
_fdsSize = 32 * _maxOpenFiles;
6969
_fds.reset(new uint8_t[_fdsSize]);
70-
_cacheSize = (32 + LOGICAL_PAGE_SIZE) * _maxOpenFiles;
70+
_cacheSize = (32 + _SPIFFS_page) * _maxOpenFiles;
7171
_cache.reset(new uint8_t[_cacheSize]);
7272

7373
s32_t res = SPIFFS_mount(&_fs,

0 commit comments

Comments
 (0)