void _teardown() { printf(" free blocks : %i of %i\n", (FS)->free_blocks, (FS)->block_count); printf(" pages allocated : %i\n", (FS)->stats_p_allocated); printf(" pages deleted : %i\n", (FS)->stats_p_deleted); #if SPIFFS_GC_STATS printf(" gc runs : %i\n", (FS)->stats_gc_runs); #endif #if SPIFFS_CACHE #if SPIFFS_CACHE_STATS chits_tot += (FS)->cache_hits; cmiss_tot += (FS)->cache_misses; printf(" cache hits : %i (sum %i)\n", (FS)->cache_hits, chits_tot); printf(" cache misses : %i (sum %i)\n", (FS)->cache_misses, cmiss_tot); printf(" cache utiliz : %f\n", ((float)chits_tot/(float)(chits_tot + cmiss_tot))); chits_tot = 0; cmiss_tot = 0; #endif #endif dump_flash_access_stats(); clear_flash_ops_log(); #if SPIFFS_GC_STATS if ((FS)->stats_gc_runs > 0) #endif dump_erase_counts(FS); printf(" fs consistency check:\n"); SPIFFS_check(FS); clear_test_path(); //hexdump_mem(&AREA(SPIFFS_PHYS_ADDR - 16), 32); //hexdump_mem(&AREA(SPIFFS_PHYS_ADDR + SPIFFS_FLASH_SIZE - 16), 32); }
void fs_reset_specific(uint32_t addr_offset, uint32_t phys_addr, uint32_t phys_size, uint32_t phys_sector_size, uint32_t log_block_size, uint32_t log_page_size) { fs_set_addr_offset(addr_offset); memset(area, 0xcc, sizeof(area)); memset(&AREA(phys_addr), 0xff, phys_size); memset(&__fs, 0, sizeof(__fs)); memset(erases,0,sizeof(erases)); memset(_cache,0,sizeof(_cache)); int32_t res = fs_mount_specific(phys_addr, phys_size, phys_sector_size, log_block_size, log_page_size); #if SPIFFS_USE_MAGIC if (res == SPIFFS_OK) { SPIFFS_unmount(&__fs); } res = SPIFFS_format(&__fs); if (res != SPIFFS_OK) { printf("format failed, %i\n", SPIFFS_errno(&__fs)); } res = fs_mount_specific(phys_addr, phys_size, phys_sector_size, log_block_size, log_page_size); if (res != SPIFFS_OK) { printf("mount failed, %i\n", SPIFFS_errno(&__fs)); } #endif clear_flash_ops_log(); log_flash_ops = 1; fs_check_fixes = 0; }
/** * addr_offset */ void fs_reset_specific(u32_t addr_offset, u32_t phys_addr, u32_t phys_size, u32_t phys_sector_size, u32_t log_block_size, u32_t log_page_size) { fs_create(phys_size + phys_addr - addr_offset, phys_sector_size, log_page_size, DEFAULT_NUM_FD, DEFAULT_NUM_CACHE_PAGES); fs_set_addr_offset(addr_offset); memset(&AREA(addr_offset), 0xcc, _area_sz); memset(&AREA(phys_addr), 0xff, phys_size); memset(&__fs, 0, sizeof(__fs)); s32_t res = fs_mount_specific(phys_addr, phys_size, phys_sector_size, log_block_size, log_page_size); #if SPIFFS_USE_MAGIC if (res == SPIFFS_OK) { SPIFFS_unmount(&__fs); } res = SPIFFS_format(&__fs); if (res != SPIFFS_OK) { printf("format failed, %i\n", SPIFFS_errno(&__fs)); } res = fs_mount_specific(phys_addr, phys_size, phys_sector_size, log_block_size, log_page_size); if (res != SPIFFS_OK) { printf("mount failed, %i\n", SPIFFS_errno(&__fs)); } #endif clear_flash_ops_log(); log_flash_ops = 1; fs_check_fixes = 0; }
void fs_reset() { memset(area, 0xcc, sizeof(area)); memset(&area[SPIFFS_PHYS_ADDR], 0xff, SPIFFS_FLASH_SIZE); spiffs_config c; c.hal_erase_f = _erase; c.hal_read_f = _read; c.hal_write_f = _write; c.log_block_size = LOG_BLOCK; c.log_page_size = LOG_PAGE; c.phys_addr = SPIFFS_PHYS_ADDR; c.phys_erase_block = SECTOR_SIZE; c.phys_size = SPIFFS_FLASH_SIZE; memset(erases,0,sizeof(erases)); memset(_cache,0,sizeof(_cache)); SPIFFS_mount(&__fs, &c, _work, _fds, sizeof(_fds), _cache, sizeof(_cache), spiffs_check_cb_f); clear_flash_ops_log(); log_flash_ops = 1; fs_check_fixes = 0; }
void _teardown() { printf(" free blocks : %i of %i\n", (FS)->free_blocks, (FS)->block_count); printf(" pages allocated : %i\n", (FS)->stats_p_allocated); printf(" pages deleted : %i\n", (FS)->stats_p_deleted); #if SPIFFS_GC_STATS printf(" gc runs : %i\n", (FS)->stats_gc_runs); #endif #if SPIFFS_CACHE #if SPIFFS_CACHE_STATS chits_tot += (FS)->cache_hits; cmiss_tot += (FS)->cache_misses; printf(" cache hits : %i (sum %i)\n", (FS)->cache_hits, chits_tot); printf(" cache misses : %i (sum %i)\n", (FS)->cache_misses, cmiss_tot); printf(" cache utiliz : %f\n", ((float)chits_tot/(float)(chits_tot + cmiss_tot))); chits_tot = 0; cmiss_tot = 0; #endif #endif if (_area) { dump_flash_access_stats(); clear_flash_ops_log(); #if SPIFFS_GC_STATS if ((FS)->stats_gc_runs > 0) #endif dump_erase_counts(FS); printf(" fs consistency check output begin\n"); SPIFFS_check(FS); printf(" fs consistency check output end\n"); } clear_test_path(); fs_free(); printf(" locks : %i\n", _fs_locks); if (_fs_locks != 0) { printf("FATAL: lock asymmetry. Abort.\n"); exit(-1); } }
void fs_mount_dump(char *fname, u32_t addr_offset, u32_t phys_addr, u32_t phys_size, u32_t phys_sector_size, u32_t log_block_size, u32_t log_page_size) { fs_create(phys_size + phys_addr - addr_offset, phys_sector_size, log_page_size, DEFAULT_NUM_FD, DEFAULT_NUM_CACHE_PAGES); fs_set_addr_offset(addr_offset); memset(&AREA(addr_offset), 0xcc, _area_sz); memset(&AREA(phys_addr), 0xff, phys_size); memset(&__fs, 0, sizeof(__fs)); fs_load_dump(fname); s32_t res = fs_mount_specific(phys_addr, phys_size, phys_sector_size, log_block_size, log_page_size); ASSERT(res == SPIFFS_OK, "failed mounting dump, check settings"); clear_flash_ops_log(); log_flash_ops = 1; fs_check_fixes = 0; }