bda7ab2b50
批 2(用户授权改名 + 「新名要一眼看懂」裁定)
- 16 个有歧义模块码单词化,共 1,146 处随 scripts/rename_ids.py 改写:
AI→ADCIN、AH→ADCHEALTH、PS→PROTSET、PE→PROTELEM、PH→PHASOR、
TS→TIMESYNC、VL→VOLLOCK、NP→NANDPORT、CFG→CONFIG、CLK→SYSCLK、
WD→WATCHDOG、STO→STORAGE、SH→SHA256、FA→FTPAUTH、FR→FREQ、104→IEC104
- 不动 NET/GD5F/RTC/SOE/UI/ADC/LOG/RS485/TOOL(已是单词、芯片名或业界通用词,
改了纯属 churn)
- 别名按全局登记:这批字面量已完全限定(TC-<码>-<nnn>),不存在裸形多义
- 映射表存档 scripts/rename_maps/batch2.json 作审计轨迹;§6 模块码表同步
连带修门禁(关键教训)
- 模块码涨到 9 位(ADCHEALTH/WATCHDOG)后,候选正则与族正则的 {0,4} 上界
会让改名后的号**整批从门禁眼里消失**:实测编号字面量从 8271 掉到 7315、
悬空假降 490 处。已放宽到 {0,9} 并写进 §6 注记
- 结论:改名批次必须连带复核识别面,只改数据不改判据 = 静默放行;
这次是靠「可判定比例跌破基线即失败」那条线拦下来的
现状与遗留
- 校验 1 未登记前缀 0 处;可判定比例 82.71%(基线 82.6%,只涨不跌成立)
- 遗留:7 个模块的「单元测试说明.md」仍缺(PROTSET 116、NANDPORT 109、
PROTELEM 65、FREQ 48、FTPAUTH 45、SHA256 25、SOE 14 处悬空)——改名不解决
缺文档,处置方式待议
- 遗留:T-2/T-3/T-4/T-6 历史任务号悬空(别名表未收全,属本工具批次漏项)
- 未改任何 C/H 可编译语义(仅注释与宏名内的编号),故不需 @build
53 lines
2.2 KiB
C
53 lines
2.2 KiB
C
/*
|
||
* 模块名称:Storage Test Suite
|
||
* 模块功能:FTL + FatFS 存储测试的声明与断言宏。实现见 storage_test_task.c,
|
||
* 统一由 testTask 调度;正常产品构建下由 defaultTask 调用,
|
||
* 行为与原 defaultTask 内联逻辑一致。
|
||
* 适用平台:STM32F4 系列
|
||
* 作者:王建锋
|
||
* 创建日期:2026-08-26
|
||
*/
|
||
|
||
#ifndef STORAGE_TEST_H
|
||
#define STORAGE_TEST_H
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
#include <stdint.h>
|
||
#include "test_common.h"
|
||
|
||
typedef test_stats_t storage_test_stats_t;
|
||
|
||
extern storage_test_stats_t g_storage_stats;
|
||
|
||
#define STORAGE_TEST_CHECK(cond, fmt, ...) \
|
||
TEST_CHECK_IMPL(g_storage_stats, cond, fmt, ##__VA_ARGS__)
|
||
|
||
#define STORAGE_TEST_REPORT(name) TEST_REPORT_IMPL(g_storage_stats, name)
|
||
|
||
/* 存储测试入口:FTL + FatFS 文件系统与性能测试 */
|
||
void storage_test_run(void);
|
||
|
||
/* 存储套件恢复测试(默认关闭):取消注释并编译 STORAGE 套件运行一次,
|
||
* 即可重建 BBT(清除 TC-STORAGE-03 等注入的坏块)并重新格式化,恢复设备干净态。
|
||
* 恢复完成后建议重新注释并编译正常构建。 */
|
||
//#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
|
||
|
||
#endif /* STORAGE_TEST_H */
|