diff --git a/test/board/ch395f_test.h b/test/board/ch395f_test.h index 89bceab1..04b5f53b 100644 --- a/test/board/ch395f_test.h +++ b/test/board/ch395f_test.h @@ -62,18 +62,44 @@ extern "C" { //#define ENABLE_PHASE8_TESTS /* [网] 大文件传输(100KB 文件收发) */ //#define ENABLE_PHASE9_TESTS /* [网] Select/Poll I/O 多路复用 */ //#define ENABLE_PHASE10_TESTS /* [网] 边界条件测试 */ -#define ENABLE_PHASE11_TESTS /* [网] KeepAlive 超时断开:PC 连 8080 后须制造 - * 死对端(禁用网卡;防火墙规则对已建立连接无效, - * E11 实证);勿与 Phase 6/9/10/13 混选(recv 互抢数据) */ +/* [网] KeepAlive 超时断开:PC 连 8080 后须制造死对端(禁用网卡;防火墙规则对已建立 + * 连接无效,E11 实证);勿与 Phase 6/9/10/13 混选(recv 互抢数据)。 + * ⚠ 说明写在**上一行**而不是挂在 #define 行尾:见本节末尾的"开关行注释规范" */ +#define ENABLE_PHASE11_TESTS /* [网] KeepAlive 超时断开(判据见 CH395F_Test_Guide) */ /* ---- 链路时延基线(M1;分段/阈值见 docs/测试说明/链路延迟测试说明.md)---- */ //#define ENABLE_PHASE12_TESTS /* [硬] SPI 字节命令 / DMA 时延基线(L1/L2,无需 PC)—— M1 已完成,基线见说明文档 §6.1 */ //#define ENABLE_PHASE15_TESTS /* [硬] 自愈驱动原语:状态回读一致性/cmd_done/sock_reset 状态机跑通/链路缓存(无需 PC)——TC 详见 docs/测试说明/CH395F_Test_Guide.md 阶段 15;台架 20/20 PASS */ /* ---- 链路时延(M2/M3;分段/阈值见 docs/测试说明/链路延迟测试说明.md)---- */ //#define ENABLE_PHASE13_TESTS /* [网] 芯片 + 队列时延(L3~L7/L10,需 PC peer)—— M2 已完成,基线见说明文档 §6.2 */ -#define ENABLE_PHASE14_TESTS /* [网] 生产路径时延(L8~L11 + 模拟器 Δ)—— M3,需 peer --mode remo(:7003); - * 与 Phase 11 共存安全:peer 缺席时有 LAT_P14_TIMEOUT_MS 整体超时 - * 自动 done,不永久挡 accept */ +/* [网] 生产路径时延(L8~L11 + 模拟器 Δ)—— M3,需 peer --mode remo(:7003); + * 与 Phase 11 共存安全:peer 缺席时有 LAT_P14_TIMEOUT_MS 整体超时,自动 done, + * 不永久挡 accept */ +#define ENABLE_PHASE14_TESTS /* [网] 生产路径时延(L8~L11) */ +/* + * 开关行注释规范(2026-10-25 构建矩阵实测踩出来的,别改回去): + * 每个 ENABLE_PHASE*_TESTS 行只许带"同一行内闭合"的行尾注释,或不写注释; + * 需要多行说明就挪到该行的**上一段**。原因:关一个阶段的动作是在行首加两个 + * 斜杠,而它只注释到行尾——挂在行尾的跨行注释会从第二行起**变成裸代码**(实测 + * 188 条 error #7: unrecognized token,报点落在注释的续行上,看着像头文件坏了, + * 其实只是注释被腰斩)。开阶段是同一个坑的反面:去掉行首斜杠并不会把注释拼回来。 + * test/run_all_suites.py 的 _rewrite_config 只改 TEST_SUITE_* 行(那些行没有行尾 + * 跨行注释)所以一直没炸;本文件是"人手工切阶段"的入口,必须自身安全。 + * + * 链接余量构建实测(条目属主 docs/任务规划/测试与架构专项.md P1-10;2026-10-25, + * RW_IRAM1 = 128 KB 的 .sct 区,92% 红线 = 120,586 B): + * 配置(TEST_SUITE_CH395F + 阶段) Code ZI RW_IRAM1 距红线余量 + * 产品基线(阶段全关) 214,104 131,852 75,632 57.7% 44,954 B + * 默认阶段 11/14(只切套件宏) 217,468 134,076 77,920 59.5% 42,666 B + * NET 层全开 6~11/13/14 218,992 141,688 85,552 65.3% 35,034 B + * HW 层全开 1~5/12/15(最坏态) 229,256 147,176 90,952 69.4% 29,634 B + * HW 层无需 PC 1/12/15(台架冒烟用) 215,244 134,896 78,672 60.0% 41,914 B + * 该条目关心的 PHASE5 三块静态缓冲(3 x PHASE5_CHUNK_SIZE = 4093)确实进了链接: + * hw_full 的 ch395f_test_task.o 数据段 = 12,285 B(3 x 4093 = 12,279 + 其余 6 B)。 + * "理论余量足够"由未实测转为已实测:最坏态还余 29,634 B,不必把 .sct 扩到 192 KB + * (与该条目"不建议扩 scatter"的约束一致)。RW_CCM 四档恒为 57,376 B / 87.9%—— + * 但该区已贴着 92% 线,任何往 CCM 加东西的改动都得单独核算。 + */ #if defined(ENABLE_PHASE1_TESTS) || defined(ENABLE_PHASE2_TESTS) || \ defined(ENABLE_PHASE3_TESTS) || defined(ENABLE_PHASE4_TESTS) || \ defined(ENABLE_PHASE5_TESTS) || defined(ENABLE_PHASE12_TESTS) || \