Я портирую LittleFS в проект, над которым я работаю, и когда я пытаюсь его смонтировать, он возвращает -84 (повреждено). Сразу после этого я форматирую файловую систему и пытаюсь перемонтировать ее, а затем она возвращает -28 (на устройстве не осталось места).
Вот код, который я пытаюсь реализовать:
/* variables used by the filesystem */
const U8 lfs_read_buf[256];
const U8 lfs_prog_buf[256];
const U8 lfs_lookahead_buf[16];
lfs_t lfs;
/* configuration of the filesystem is provided by this struct */
const struct lfs_config cfg = {
// block device operations
.read = FLASHEx_block_read,
.prog = FLASHEx_block_write,
.erase = FLASHEx_block_erase,
.sync = FLASHEx_block_sync,
// block device configuration
.read_size = 256,
.prog_size = 256,
.block_size = 4096,
.block_count = 3072, // The block count is actually 4096, but I lowered it to test. (Failed.)
.cache_size = 256,
.lookahead_size = 256,
.block_cycles = 200,
.read_buffer = (void*)lfs_read_buf,
.prog_buffer = (void*)lfs_prog_buf,
.lookahead_buffer = (void*)lfs_lookahead_buf,
};
// mount the filesystem
int err = lfs_mount(&lfs, &cfg); // Returns LFS_ERR_CORRUPT (-84, "Corrupted")
// reformat to try to re-mount the filesystem
if (err) {
err = lfs_format(&lfs, &cfg); // Returns -28 (no space left on device).
err = lfs_mount(&lfs, &cfg); // Returns -28 (no space left on device).
}
Используемый мной модуль внешней флэш-памяти Winbond W25Q128JV .
Моя реализация основана на этом веб-посте и LittleFSпример документации.
Может ли кто-нибудь пролить свет на то, чтобы заставить его работать?
Спасибо.