FTL复位丢失修复:journal epoch 锚定最新 checkpoint(根治重格式化循环)+ checkpoint 诊断

This commit is contained in:
2026-09-20 04:07:59 +08:00
parent abaa801d86
commit 7a72aea4e5
4 changed files with 204 additions and 3 deletions
+5
View File
@@ -33,6 +33,7 @@
#include "usart.h"
#include "ff.h"
#include "gd5f2gq5ue.h"
#include "nand_ftl.h"
#include "lftpd.h"
#include "../test/ch395f_test_task.h"
#include "../test/ch395f_test.h" /* ENABLE_NET_LAYER_TESTS:netTask 条件创建 */
@@ -262,6 +263,7 @@ void StartDefaultTask(void *argument)
FS_VOL_PROBE(hfr);
if (hfr != FR_OK) {
FS_VOL_PROBE(hfr); /* 两击确认 */
nand_ftl_scan_checks(); /* 诊断:环上 checkpoint 的 epoch 分布 */
}
if (hfr != FR_OK) {
if (hfr == FR_DENIED || hfr == FR_INVALID_OBJECT ||
@@ -278,6 +280,8 @@ void StartDefaultTask(void *argument)
fr = f_mount(&default_fatfs, "", 1);
}
}
nand_ftl_log_state("[after-mkfs]");
nand_ftl_log_state("[after-mkfs]");
if (fr == FR_OK) {
DBG_INFO("[FS] volume reformatted OK");
} else {
@@ -295,6 +299,7 @@ void StartDefaultTask(void *argument)
#undef FS_VOL_PROBE
if (fr == FR_OK) {
DBG_INFO("[FS] FATFS mounted");
nand_ftl_log_state("[probe-ok]");
/* 日志引擎挂载后处理:建 /log 目录 + 写"上电/重启"分类记录(唯一写者) */
syslog_mcu_mounted();
/* 加载网络配置进 RAM 副本(配置引擎属主 = 本任务;首启含旧档迁移;