求助使用littlefs 文件系统如何获取SPI flash 的未使用磁盘大....
使用littlefs 文件系统如何获取SPI flash 的未使用磁盘大小?资料太少了,搞不定,求助!!! 已使用块数:lfs_ssize_t lfs_fs_size(lfs_t *lfs)
typedef struct
{
lfs_size_t block_size;
lfs_size_t block_count;
lfs_size_t block_use;
lfs_size_t block_free;
}lfs_block_state_t;
static int traverse_df_cb(void *p, lfs_block_t block)
{
*(lfs_size_t *)p += 1;
return 0;
}
// all of the files are closed
int lfs_block_state(lfs_t *lfs,lfs_block_state_t *state)
{
int err;
memset(state, 0, sizeof(lfs_block_state_t));
uint32_t allocatedblock = 0;
err = lfs_traverse(lfs, traverse_df_cb, &allocatedblock);
if(err < 0){
return err;
}
state->block_size = lfs->cfg->block_size;
state->block_count = lfs->cfg->block_count;
state->block_use = allocatedblock;
state->block_free = lfs->cfg->block_count - allocatedblock;
return 0;
}
lfs_block_state_t state;
lfs_block_state(&lfs, &state);
printf("Flash use_block=%u free_block=%ufree_byte = %u \r\n",state.block_use,state.block_free, state.block_size*state.block_free );
又一个研究littlefs的人。 不知道剩余多少,但是有个函数式知道用了多少。 墨非 发表于 2019-7-18 13:39
非常感谢 本帖最后由 68336016 于 2019-8-10 17:53 编辑
在stm32f103+W25Q64上试了下,第一次建立个空白文件都需要200多毫秒。
不断建立新文件,每次只写入几十个字节来测试,到第一百个文件时候,建立时间就逐渐增长到1500多毫秒。
68336016 发表于 2019-8-10 17:52
在stm32f103+W25Q64上试了下,第一次建立个空白文件都需要200多毫秒。
不断建立新文件,每次只写入几十个 ...
你用的是什么版本? 相由心生 发表于 2019-8-24 01:29
你用的是什么版本?
下载的最新版 墨非 发表于 2019-7-18 13:39
谢谢,亲测可用!
我用的最新版本:
lfs_traverse要改成:lfs_fs_traverse
68336016 发表于 2019-8-10 17:52
在stm32f103+W25Q64上试了下,第一次建立个空白文件都需要200多毫秒。
不断建立新文件,每次只写入几十个 ...
(引用自7楼)
Hi
Sync函数接口在W25Q64做什么?
页:
[1]