目前用的最新版本2.4 当我新建一个文件,并尝试写入一段小数据的时候,必然会遇到lfs_bd_prog函数中第200行的断言: - LFS_ASSERT(block == LFS_BLOCK_INLINE || block < lfs->cfg->block_count);
复制代码稍微调试了一下,发现是数据只要小于块/8的时候就会遇到这个问题. 有老铁指导一下,为嘛出现这种情况吗? 之前用的2.0倒是好好的. 我用的配置如下: #define MEM_LFS_TOTAL_SIZE (1024*1024) #define FLASH_SECTOR_SIZE 0x1000 .read_size = 256, .prog_size = 256, .block_size = FLASH_SECTOR_SIZE, .block_count = (MEM_LFS_TOTAL_SIZE/FLASH_SECTOR_SIZE), .cache_size = 4096, //must be mul of read_size/prog_size size .lookahead_size = 16, .block_cycles = 500,
track log: do write
lfs.c:5185:trace: lfs_file_write(0x5644c292e040, 0x7fffe42691c0, 0x5644c3b3b6b0, 512, 0x100103)
lfs.c:2946:trace: pos:0 size:512 csize:0
lfs.c:2979:trace: max:512, min:512
lfs.c:2981:trace: 4096 0 4096
lfs.c:3028:trace: set LFS_BLOCK_INLINE for off 0
lfs.c:199:trace: block=0xfffffffe,oft=0x0
ASSERT:lfs.c 200
|