diff --git a/cores/esp8266/FileSystem.cpp b/cores/esp8266/FileSystem.cpp index 3edcd0abb..d559c794d 100644 --- a/cores/esp8266/FileSystem.cpp +++ b/cores/esp8266/FileSystem.cpp @@ -34,11 +34,13 @@ static s32_t api_spiffs_read(u32_t addr, u32_t size, u8_t *dst); static s32_t api_spiffs_write(u32_t addr, u32_t size, u8_t *src); static s32_t api_spiffs_erase(u32_t addr, u32_t size); -FSClass FS((uint32_t) &_SPIFFS_start, (uint32_t) &_SPIFFS_end, 4); +FSClass FS((uint32_t) &_SPIFFS_start, (uint32_t) &_SPIFFS_end, (uint32_t) &_SPIFFS_page, (uint32_t) &_SPIFFS_block, 4); -FSClass::FSClass(uint32_t beginAddress, uint32_t endAddress, uint32_t maxOpenFiles) +FSClass::FSClass(uint32_t beginAddress, uint32_t endAddress, uint32_t pageSize, uint32_t blockSize, uint32_t maxOpenFiles) : _beginAddress(beginAddress) , _endAddress(endAddress) +, _pageSize(pageSize) +, _blockSize(blockSize) , _maxOpenFiles(maxOpenFiles) , _fs({0}) { @@ -56,8 +58,8 @@ int FSClass::_mountInternal(){ cfg.phys_addr = _beginAddress; cfg.phys_size = _endAddress - _beginAddress; cfg.phys_erase_block = INTERNAL_FLASH_SECTOR_SIZE; - cfg.log_block_size = _SPIFFS_block; - cfg.log_page_size = _SPIFFS_page; + cfg.log_block_size = _blockSize; + cfg.log_page_size = _pageSize; cfg.hal_read_f = api_spiffs_read; cfg.hal_write_f = api_spiffs_write; cfg.hal_erase_f = api_spiffs_erase; diff --git a/cores/esp8266/FileSystem.h b/cores/esp8266/FileSystem.h index 7baf0769c..fc0906dbb 100644 --- a/cores/esp8266/FileSystem.h +++ b/cores/esp8266/FileSystem.h @@ -85,7 +85,7 @@ public: class FSClass { public: - FSClass(uint32_t beginAddress, uint32_t endAddress, uint32_t maxOpenFiles); + FSClass(uint32_t beginAddress, uint32_t endAddress, uint32_t pageSize, uint32_t blockSize, uint32_t maxOpenFiles); bool mount(); void unmount(); @@ -117,6 +117,8 @@ protected: size_t _cacheSize; uint32_t _beginAddress; uint32_t _endAddress; + uint32_t _pageSize; + uint32_t _blockSize; uint32_t _maxOpenFiles; spiffs _fs;