|
发表于 2019-7-18 13:39:50
|
显示全部楼层
-
- 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=%u free_byte = %u \r\n",state.block_use,state.block_free, state.block_size*state.block_free );
复制代码 |
|