Open Model Railroad Network (OpenMRN)
Loading...
Searching...
No Matches
SpiSPIFFS.cxx
Go to the documentation of this file.
1
37
39#include "utils/logging.h"
40
41SpiSPIFFS::SpiSPIFFS(SPIFlash *flash, size_t physical_address,
42 size_t size_on_disk, size_t logical_block_size, size_t logical_page_size,
43 size_t max_num_open_descriptors, size_t cache_pages,
44 std::function<void()> post_format_hook)
45 : SPIFFS(physical_address, size_on_disk, flash->cfg().sectorSize_,
46 logical_block_size, logical_page_size, max_num_open_descriptors,
47 cache_pages, post_format_hook)
48 , flash_(flash)
49{
50}
51
56
57int32_t SpiSPIFFS::flash_read(uint32_t addr, uint32_t size, uint8_t *dst)
58{
59 flash_->read(addr, dst, size);
60 return 0;
61}
62
63int32_t SpiSPIFFS::flash_write(uint32_t addr, uint32_t size, uint8_t *src)
64{
65 flash_->write(addr, src, size);
66
67#if (LOGLEVEL >= VERBOSE)
68 uint8_t db[4];
69 flash_read(addr, 4, db);
70 LOG(VERBOSE, "check [%x]=%02x%02x%02x%02x", (unsigned)addr, db[0], db[1],
71 db[2], db[3]);
72#endif
73 return 0;
74}
75
76int32_t SpiSPIFFS::flash_erase(uint32_t addr, uint32_t size)
77{
78 flash_->erase(addr, size);
79 return 0;
80}
Generic SPIFFS base class.
Definition SPIFFS.hxx:49
void unmount()
Flushes caches and unmounts the filesystem.
Definition SPIFFS.cxx:151
Shared implementation for operating spiflash devices.
Definition SPIFlash.hxx:104
void write(uint32_t addr, const void *buf, size_t len)
Performs write to the device.
Definition SPIFlash.cxx:127
void read(uint32_t addr, void *buf, size_t len)
Reads data from the device.
Definition SPIFlash.cxx:105
void erase(uint32_t addr, size_t len)
Erases sector(s) of the device.
Definition SPIFlash.cxx:196
SPIFlash * flash_
Flash access helper.
Definition SpiSPIFFS.hxx:89
SpiSPIFFS(SPIFlash *flash, size_t physical_address, size_t size_on_disk, size_t logical_block_size, size_t logical_page_size, size_t max_num_open_descriptors=16, size_t cache_pages=8, std::function< void()> post_format_hook=nullptr)
Constructor.
Definition SpiSPIFFS.cxx:41
~SpiSPIFFS()
Destructor.
Definition SpiSPIFFS.cxx:52
int32_t flash_read(uint32_t addr, uint32_t size, uint8_t *dst) override
SPIFFS callback to read flash, in context.
Definition SpiSPIFFS.cxx:57
int32_t flash_write(uint32_t addr, uint32_t size, uint8_t *src) override
SPIFFS callback to write flash, in context.
Definition SpiSPIFFS.cxx:63
int32_t flash_erase(uint32_t addr, uint32_t size) override
SPIFFS callback to erase flash, in context.
Definition SpiSPIFFS.cxx:76
#define LOG(level, message...)
Conditionally write a message to the logging output.
Definition logging.h:99
static const int VERBOSE
Loglevel that is usually not printed, reporting debugging information.
Definition logging.h:59