6d983539bc
Internal flash used for the filesystem is now written (from the cache) only after a 5s delay, or when a file is closed, or when the drive is unmounted from the host. This delay means that multiple writes can accumulate in the cache, and leads to less writes to the flash, making it last longer. It's implemented by a high-priority interrupt that takes care of flash erase and write, and flushing the cache. This is still only an interim solution for the flash filesystem. It eventually needs to be replaced with something that uses less RAM for the cache, something that can use more of the flash, and something that does proper wear levelling.
10 lines
312 B
C
10 lines
312 B
C
#define FLASH_BLOCK_SIZE (512)
|
|
|
|
void storage_init(void);
|
|
uint32_t storage_get_block_size(void);
|
|
uint32_t storage_get_block_count(void);
|
|
void storage_irq_handler(void);
|
|
void storage_flush(void);
|
|
bool storage_read_block(uint8_t *dest, uint32_t block);
|
|
bool storage_write_block(const uint8_t *src, uint32_t block);
|