存储套件新增全片擦除维护路径恢复容量,文档订正容量满值与恢复方法

This commit is contained in:
2026-09-21 03:32:26 +08:00
parent 51c5707f49
commit b5dd94b834
4 changed files with 81 additions and 14 deletions
+10
View File
@@ -50,6 +50,16 @@ void storage_test_run(void);
* 恢复完成后建议重新注释并编译正常构建。 */
//#define ENABLE_STORAGE_RECOVERY_TESTS /* 台架已跑过一次恢复(2026-09-20 BBT 回出厂态),保持注释 */
/* 恢复模式的扩展(默认关闭,需与上面 ENABLE_STORAGE_RECOVERY_TESTS 同时打开):
* 把 dhara 可见区**整片擦净**(连 journal checkpoint 一起),用于**把被扣掉的容量恢复回来**。
* 原理(2026-09-21 读码 + 台架实证):dhara 把坏块计数持久化在 checkpoint 头里
* (journal.c `hdr_set_bb_current/bb_last`),而 `dhara_journal_clear()` 只是
* `bb_last = bb_current`(**不归零**)——所以 `nand_ftl_format()` 恢复不了容量(95200 卡住);
* 只有让下次启动 `dhara_map_resume` 失败、走 `dhara_map_clear` 的**全新初始化**分支
* (此时 bb_last = bb_current = 0)才能回满。2026-09-21 台架实测:95200 → **96064**(健康满值 ✓)。
* 代价:卷内容全失(启动时 FatFs 自动重建)、约 2044 次块擦除(数十秒)。 */
//#define STORAGE_RECOVERY_FULL_WIPE
#ifdef __cplusplus
}
#endif