diff --git a/build/linux_spiffs_test b/build/linux_spiffs_test index a56c44c..b239c18 100755 Binary files a/build/linux_spiffs_test and b/build/linux_spiffs_test differ diff --git a/build/spiffs_hydrogen.o b/build/spiffs_hydrogen.o index 566a38a..f91f2f2 100644 Binary files a/build/spiffs_hydrogen.o and b/build/spiffs_hydrogen.o differ diff --git a/build/spiffs_nucleus.o b/build/spiffs_nucleus.o index 4213a77..293a353 100644 Binary files a/build/spiffs_nucleus.o and b/build/spiffs_nucleus.o differ diff --git a/src/spiffs_gc.c b/src/spiffs_gc.c index b21876b..9a225df 100644 --- a/src/spiffs_gc.c +++ b/src/spiffs_gc.c @@ -20,7 +20,7 @@ static s32_t spiffs_gc_erase_block( fs->free_blocks++; // register erase count for this block - res = _spiffs_wr(fs, SPIFFS_OP_C_UPDT | SPIFFS_OP_T_OBJ_LU2, 0, + res = _spiffs_wr(fs, SPIFFS_OP_C_WRTHRU | SPIFFS_OP_T_OBJ_LU2, 0, SPIFFS_ERASE_COUNT_PADDR(fs, bix), sizeof(spiffs_obj_id), (u8_t *)&fs->max_erase_count); SPIFFS_CHECK_RES(res); diff --git a/src/spiffs_hydrogen.c b/src/spiffs_hydrogen.c index cdbe089..5854c70 100644 --- a/src/spiffs_hydrogen.c +++ b/src/spiffs_hydrogen.c @@ -693,13 +693,29 @@ s32_t SPIFFS_vis(spiffs *fs) { } // per entry obj_lookup_page++; } // per object lookup page - if ((cur_entry & 0x1f) != 0) { - spiffs_printf("\n"); + + spiffs_obj_id erase_count; + res = _spiffs_rd(fs, SPIFFS_OP_C_READ | SPIFFS_OP_T_OBJ_LU2, 0, + SPIFFS_ERASE_COUNT_PADDR(fs, bix), + sizeof(spiffs_obj_id), (u8_t *)&erase_count); + SPIFFS_CHECK_RES(res); + + if (erase_count != (spiffs_obj_id)-1) { + spiffs_printf("\tera_cnt: %i\n", erase_count); + } else { + spiffs_printf("\tera_cnt: N/A\n"); } bix++; } // per block + spiffs_printf("era_cnt_max: %i\n", fs->max_erase_count); + spiffs_printf("last_errno: %i\n", fs->errno); + spiffs_printf("blocks: %i\n", fs->block_count); + spiffs_printf("free_blocks: %i\n", fs->free_blocks); + spiffs_printf("page_alloc: %i\n", fs->stats_p_allocated); + spiffs_printf("page_delet: %i\n", fs->stats_p_deleted); + SPIFFS_UNLOCK(fs); return res; } diff --git a/src/spiffs_nucleus.c b/src/spiffs_nucleus.c index 3894e30..7390dae 100644 --- a/src/spiffs_nucleus.c +++ b/src/spiffs_nucleus.c @@ -255,8 +255,8 @@ s32_t spiffs_obj_lu_scan( bix = 0; spiffs_obj_id erase_count_final; - spiffs_obj_id erase_count_min = 0; - spiffs_obj_id erase_count_max = SPIFFS_OBJ_ID_FREE; + spiffs_obj_id erase_count_min = SPIFFS_OBJ_ID_FREE; + spiffs_obj_id erase_count_max = 0; while (bix < fs->block_count) { spiffs_obj_id erase_count; res = _spiffs_rd(fs,