docs(登记): 大窗销项三条 + 新签名两条 + §4.4 落地注

台架大窗(2026-10-25 15:51-17:00,V5 复跑 + 104 读回 + UI 取图)判读落账:
- 登记簿删 N-2(附录 A 结论 6f18f8d + 大窗静默零段)、N-17(修复 a3c6e89:
  9 条 stall 行 NET 位全程在场,44/44 旧签名归零;证据 §4.6 + 日志留档)、
  N-22(vol_idle_sync 484d068 + V5 全程 0 idle sync FAIL)
- 网络表新增两条语义标识(lane-f 定名):「复合连击串窗」(看门狗全局连击
  把多任务各自亚秒抖动误累计成 800ms 停喂,🟦批2.5 修复=按位分账)与
  「重建窗内回执排队把 net 等待者拖过 800ms」(UI 睡 portMAX_DELAY 回执,
  距 IWDG 最坏余量仅 0.1-0.3s,🟦批2.5 有界化;根治 E-27/28 批 3)
- README 网络行改写(4→N-3/N-16 + 两条新)、结构行 4→3、结构债波次线
  删已销两项
- 数据可信 §4.4 落地注:CFG_VAL_INT/[run_par] 已实现、5/8 段、系数真源
  仍 [adc_cal]、p_cb 未用口径不变
This commit is contained in:
2026-10-25 17:29:16 +08:00
parent 138aebc6d6
commit 4777ed2373
4 changed files with 30 additions and 6 deletions
+3 -3
View File
@@ -56,9 +56,9 @@
| 类别 | 数量 | 条目 |
|---|---|---|
| 网络 | 4 | **N-2(49s 日志静默,**低风险观察项**)🟦批2道F** · N-3(L5 基线重验)· N-16(A2/A4 负向台架)· **N-17(探针窗口心跳缺口)🟦批2道F** |
| 网络 | 4 | N-3(L5 基线重验)· N-16(A2/A4 负向台架)· **复合连击串窗**🟦批2.5道F(time_sync 探针大窗修复 a3c6e89 的判读副产物,看门狗连击按位分账)· **重建窗内回执排队把 net 等待者拖过 800ms**🟦批2.5道F(UI 首例;根治 E-27/28 批 3)。本波道F 原三张条目(日志静默观察 / 探针窗口心跳 / 写回 flush)已于 2026-10-25 台架大窗销项删行——心跳主签名在 9 条 stall 行中 NET 位全程在场 = 旧 44/44 必发归零;复跑暴露的两个新签名以语义标识上行为本表独立条目,详 `登记簿.md` §1 |
| 存储 / 日志 | 3 | **S-3(USART1 TX-only 根治)** · S-4(dhara 重试自旋)· S-5(可选全序列卷锁) |
| 结构 / 健壮性 | 4 | **N-22(写回 flush)🟦批2道F** · N-23(注册校验残余白名单)· N-25(性能/语义簇)· N-28(uvprojx 空 TU 观察) |
| 结构 / 健壮性 | 3 | N-23(注册校验残余白名单)· N-25(性能/语义簇)· N-28(uvprojx 空 TU 观察) |
| 仓库 | 1 | N-29(`.git` **233 MB**,**已决策暂不处理、登记观察**) |
| 硬件 | 1 | N-18(V0.2 改版项) |
| 测试 / 基础设施 | 3 | T-7(CI 远端两 job 闭环 + 第二机交叉验证)· A-4(采集链路测试约束,RS485 侧随 B2 暂缓)· 串口助手 A6/A7 补验(待 CH340) |
@@ -98,7 +98,7 @@
| **采集保护收尾** | **只剩 M3 送检**(B10,Fixed Date)——任务卡与判据见 `采集保护收尾.md` | 收口目标"台架闭环 + 功能面完整 + 可送检"的前两项已达成;**真约束只剩送检窗口**,窗口一到全道让路、窗口前 2 日特性冻结 |
| **数据可信**(当前) | **通道标定 → 遥测链 → 运行参数**:M4 系数与量纲 / M5 遥测链 / M6 运行参数与点表;14 张卡与事实基线见 `数据可信.md` | **用户决定(2026-10-23):下一步做通道标定,先于 UI 页面与结构债**。它是唯一"改一处、全链受益"的入口(`App/task/adc_task.c:335` 是码值→工程量的唯一位置),也是「UI 扩展」页面与 104 遥测的共同前置——先做页面则 `ui_data_feed` 组装的码值帧要返工。本波紧随「采集保护收尾」,排在「预算与内存」「结构债」之前。⚠ 2026-10-23 补记:ADC 至今**从未采过已知电压**(连极性都没验过,见 `数据可信.md` §2.6),故第一张卡是"已知电压注入验证"——只需一块万用表,不需要信号源/示波器,是开工的第一刀 |
| **预算与内存** | ⏸ **整簇暂缓**:R-2 后半(缩堆 56→32 KB → 29.5 KB 迁 CCM)· R-3 · R-4 · R-6;R-5 已判定不可行 | **不再排期**:没有功能在等这块预算,而搬迁要动 scatter、要逐条过 DMA 可达性清单、缩堆还要上板复测。重开条件 → `../内存管理/RAM使用分析与优化方案.md` §4 |
| **结构债** | **USART1 改为只发不收 → 日志管线与 S8 合并评估 → net 层跨上下文收口 → 注册校验白名单清理 → 写回 flush / 性能语义簇 / 空 TU**(详表 `排期详述.md` §1) | 无紧急,按性价比排:USART1 那条灭 IWDG 误复位的机制根源;net 层收口体量大、验证重,放后 |
| **结构债** | **USART1 改为只发不收 → net 层跨上下文收口(含重建窗回执排队问题的根治)→ 注册校验白名单清理 → 性能语义簇 / 空 TU**(日志管线与 S8 合并评估、写回 flush 已于 2026-10-25 销项;详表 `排期详述.md` §1) | 无紧急,按性价比排:USART1 那条灭 IWDG 误复位的机制根源;net 层收口体量大、验证重,放后 |
| **验证常态** | T-7 CI · L5 基线重锁 · A2/A4 负向台架 · 探针窗口心跳 · 串口助手 A6/A7(详表 `排期详述.md` §2) | 窗口性,逢机顺带,不单独排期 |
| **UI 扩展** | **U5 页面落地**——27 是目标数不是差集(现存 7 个页面实现;27 个空叶子已归并为 7 模块 + 2 项前置能力) | 🟦**批 2 道E 在途**(2026-10-25 开工,组件层三件套已于批 1 落地)。地基已齐(U1~U4 落地、`ui-golden` 与字符集差集检查已挂 pre-commit),新增一页 = 3 处人工 + 1 条生成器命令。**最早在「数据可信」的 M4 之后开工**——`ui_data` / `ui_data_feed` 需要真数据(`数据可信.md` §10)。逐页规格见 `../UI设计/页面扩充详细方案.md` |
| **仓库决策** | **N-29** `.git` **233 MB** + 图片 36.3 MB | **已决策(2026-10-11):暂不处理、登记观察**——推送/协作前重评(`git filter-repo` 历史重写影响未推送提交与协作者) |
+5
View File
@@ -235,6 +235,11 @@ UI 快照的 `qds`)。
段名 7 / 11 字符,键名 4 字符,均在 15 字符上限内。段数 2 → 总计 4/8,未逼近上限。
> **落地注(2026-10-25 卡 3/卡 10 合入后)**:`CFG_VAL_INT` 已实现(卡 3);运行参数段 = `[run_par]`
> 9 键死区(卡 10,merge 7bbcc9c),总计 5/8 段。系数唯一真源仍是 `[adc_cal]/[adc_cal_ofs]`——
> 104 写 k/b 经 `adc_cal_set` 代理,run_par 不存第二份;落盘链走 `SYS_EVT_RUN_PAR_SAVE`
> (iec104Task peek 投递 → defaultTask 整档 save),`p_cb` 回调依旧未用,本节「不挂回调」口径不变。
⚠ **负零点**:`cfg_file` 只有 `CFG_VAL_UINT`,`s_decode_uint()` 用 `strtoul` 并校验上界,
负值落盘会变成 `4294967291` 这种现场看不懂的数。两条路:
+2 -3
View File
@@ -12,10 +12,10 @@
| # | 事项 | 发现 | 证据与现状 | 出处 |
|---|---|---|---|---|
| N-2 | **49s 全系统日志静默**(defaultTask/NAND syslog 排空停滞;串口 49s 无行,系统功能不受损) | 2026-09-22(L3 台架 F2,gen 181) | **低风险观察项**(2026-10-03 降级):丢弃可观测性代码已具备(`console_log.c` `s_con_drop` + `sys_log_mcu.c` 队列满 `DBG_ERROR`)、V5 30 min 未复现。**残余动作**:与 S8(非阻塞日志)合并评估(见 `排期详述.md` §1) | `../网络/Net层阻塞模型架构设计.md` |
| N-3 | **L5 队列往返基线(1223/988µs)的 L3 后重验**——L5 测 DONTWAIT 队列全程;L3 对该路径逐位不变 → 机制上无影响,但基线数值属分片时代,严格重锁需跑一轮 Phase 13(需 PC peer) | 2026-09-22(L3 收尾留档) | 低风险:10ms/100ms 阈值余量 >8×;下次 Phase 13 窗口顺带重锁即可 | `链路延迟测试说明.md` §6.4 L5 注¹ |
| N-16 | **A2/A4 专项场景台架验证待办**(正常路径已实测零回归):① PHY 拔线负向测试——断链需断 **DTU 侧**线缆或关**受管交换机端口**;② A2 芯片级 `net_init` 失败分支(需 SPI 故障注入);③ A4 短写压测(需远显客户端 + UI 推流压力) | 2026-10-03(台架拓扑 = CH395↔交换机,拔线操作受限) | 待专项台架窗口 | `实机测试实施指南.md` §10 |
| N-17 | **`time_sync` 30s 挂起客户端掉线 + 监听重建期间,网络任务心跳缺口达 800ms~1s(声明 stall 但未复位)。**待办**:定位监听重建为何阻塞 NET/FTP/UI;评估缩短重建重试(5×2s)或让掉线路径不阻塞其它任务 | 2026-10-03(V5 台架) | V5 长跑 44 次 `task stall: mask=0x00000001`,**100% 与 `e02_probe` 的 30s 挂起客户端触发 `time_sync: no TIME packet in 30s, drop conn` → 监听重建(约 4s)重合**;隔离实验(仅 FTP,120s)**0 次 stall** → 探针场景专属。缺口(~1s)< IWDG 最坏超时(1701ms),余量仅 ~0.7s。 | `实机测试实施指南.md` §4;`../子系统设计/看门狗设计说明.md` |
| 复合连击串窗 | **多任务各自亚秒级抖动在同一事件里被全局连击计数器串成 800ms 复合停喂声明**(误升级;2026-10-25 台架大窗 16:24/16:28 两起实证:缺席位每窗仅 1-2 个、无一位连续 8 窗,却声明 stall 并停喂)。修复 = `task_watchdog` 连击按位分账(🟦批 2.5 道F「道F-V5尾2」票:任一位连击≥8 窗才停喂,混合缺席各自清零;真单任务停摆保护语义不变) | 2026-10-25(大窗 V5 复跑判读,lane-f 全量解析) | 判读报告 + 日志留档 `docs/测试说明/boot_log_data/megawin_20261025_serial.log.gz`;stall 行 9 条逐条含缺席位组合证据;修复后复跑判据 = 两轮 30min 双零(v1.1 口径) | `../子系统设计/看门狗设计说明.md` §4;`../测试说明/实机测试实施指南.md` §7.2 |
| 重建窗内回执排队把 net 等待者拖过 800ms | **监听重建窗(E13 物理边界 ~4s)内 netTask 迭代虽全程在喂位,但 `net_*` 回执按 FIFO 排在含芯片条件等待的处理器之后,等待者(首例 uiTask `xTaskNotifyWait(portMAX_DELAY)`)缺席拉到 0.9~1.2s**——距 IWDG 最坏超时余量仅 ~0.1-0.3s;NET 位自身同窗也有 12 条 1-2 窗微抖(缩微旧签名,未成连击)。近期修复 = 等待有界 + 分片喂心跳(🟦批 2.5 道F「道F-V5尾3」票);根治 = E-27/28 跨上下文收口(批 3 已立项,勿在本票扩大) | 2026-10-25(同上;`ui_task.c` v1.3 注释预言形态首次实测命中,PROF uip=1.39s 吻合) | 大窗日志 16:39 五连击事件 + `sock0`(:8888)/`sock3`(:7003) 双风暴叠加计数 54 窗;F3 验收旁证 = 12 条 NET 参与组合消失 | `../网络/Net层阻塞模型架构设计.md`;`../子系统设计/看门狗设计说明.md` §4.3 |
| N-30 | **relisten 沉降段统一到驱动 `sock_reset` 原语受阻**——"去重复实现"的收口已实测回退:原语版 `ftp_abort_probe` RST **0/10**、FIN **0/5**(中止后首笔复连仍被截断到 ≤2048B),另新增 `sock_reset_sync timeout (600ms)` 与 `close: sock_reset not done` 两条 `[ERR]`;同场 net 层自建序列 **10/10 + 5/5** | 2026-10-14(同一块板 A/B,判据 `test/host/ftp_abort_probe.py`;快复连 50/50、背靠背 30/30 两版都过 → 失效面精确落在"中止后首笔复连") | **现状 = `net_listener.c` 保留自建排渣序列**(排空 + CLOSE + 排事件 + 等 CLOSED,30 ms 重试轮持续清)。重开前置三条语义:① 隔离窗内**持续**排空/关闭(残渣在 CLOSE 之后才落进 RX,一次排空接不住)② **复用让位**(复位机不得拆上层刚在同一芯片 Socket 上重建的监听)③ `net_sock_reset_sync` 改"已在运行 = 加入等待"(`begin` 返 -1 ≠ 失败) | `../网络/网络自愈架构设计.md` §8 延后项 1、§5.2 E16;`../问题记录/CH395F_Trap_Records.md` TRAP-NET-18 |
## 2. 存储 / 日志管线
@@ -42,7 +42,6 @@
| # | 事项 | 影响 / 现状 | 处置方向 | 波次 | 出处 |
|---|---|---|---|---|---|
| N-22 | 写回缓存无空闲/掉电强制 flush(整页写与换页已 flush) | 写回窗口内掉电丢最近日志/配置写 | defaultTask 空闲 N ms flush | 结构债 | 报告 N-14 |
| N-23 残余 | **KNOWN_GAPS 白名单清理**——现存唯一缺口 = `App/task/rs485_task.c`(E-59 门禁下刻意不接线,随 B2 暂缓,见 `暂缓-RS485.md`) | 白名单不清 = "写了不编译"盲区仍在 | 随 B2 一并出白名单(`--strict` 供审计复跑) | 结构债 | 报告 N-06 残余 |
| N-25 | 性能/资源建议簇:PASV 每次新建监听;PHY 强制 100M 无自协商回退;`NET_MAX_SOCKETS 8` 与单连接语义不符;`HAL_Delay(1)` 阻塞 DE(**DE 项随 B2 暂缓,见 `暂缓-RS485.md`**) | 次级性能/语义一致性 | 随窗口评估,逐项机理见 `../网络/Net层阻塞模型架构设计.md` 与 `Drivers/BSP/NET/README.md` | 结构债 | 报告 N-09/PHY/P3-x/rs485(报告已删,仅作历史指称) |
| N-27 | **内存优化簇剩余**:原报告 R-2 后半(缩堆 56→32 KB → 迁 CCM)· R-3 · R-4 · R-6 | ⏸ **整簇暂缓**(2026-10-15 用户裁定):没有功能在等这块预算,而搬迁要动 scatter、要逐条过 DMA 可达性清单、缩堆还要上板复测。⚠ 代价落在"以后加任务 / 抬栈 / 加堆"那一刻——CCM 只剩 7,904 B、FreeRTOS 堆 `min_ever` 8,464 B,届时 `mem-budget` 会先报警 | 重开条件见 `../内存管理/RAM使用分析与优化方案.md` §4。⚠ **原报告 R-5 已判定不可行**(CMSIS-RTOS2 `freertos_os2.h` 有 `#if (configMAX_PRIORITIES != 56) #error`,改小直接编译失败),不再列入 | **暂缓** | 报告 R-2 剩余/R-3/R-4/R-6/§5.5 |
+20
View File
@@ -3150,6 +3150,26 @@
"to": null,
"status": "void",
"note": "本号两义,均已死:① 登记簿 S-2(启动日志固化流程,2026-09-22 提出、2026-10-05 固化后销项)→ docs/测试说明/boot_log_data/README.md;② 报告 S-2(跨模块裸 `extern`,2026-10-22 已闭环)→ 契约见 App/task/task_handles.h、gd5f_spi1_notify_*、net_msg_queue_adopt"
},
"N-2": {
"to": null,
"status": "void",
"note": "49s 日志静默观察项,2026-10-25 台架大窗销项删行(评估结论已沉淀 docs/子系统设计/控制台单写者日志设计说明.md 文末附录 A.1-A.3;大窗 ≥10s 静默段=0)。旧号勿复用"
},
"N-17": {
"to": null,
"status": "void",
"note": "探针窗口心跳缺口,2026-10-25 台架大窗销项删行(修复 a3c6e89,自愈设计 §4.6;V5 复跑 9 条 stall 行 NET 位全程在场=旧 44/44 签名归零)。复跑暴露的两个新签名以语义标识另行登记于登记簿 §1(复合连击串窗 / 重建窗内回执排队把 net 等待者拖过 800ms),历史注释里的 N-17 指本修复本体。旧号勿复用"
},
"N-22": {
"to": null,
"status": "void",
"note": "写回缓存空闲 flush,2026-10-25 台架大窗销项删行(实现 484d068 vol_idle_sync,存储架构说明 §5.5;V5 全程 0 条 idle sync FAIL)。掉电前强制 flush 因无掉电检测硬件登记为该文档边界条款。旧号勿复用"
},
"N-14": {
"to": null,
"status": "void",
"note": "审查报告并轨号(报告 N-14),2026-10-25 随其条目 N-22 销项一并作废(映射记录见 docs/编号规范.md §4;修复本体沿革见 N-22 别名注)。旧号勿复用"
}
},
"id_aliases": {}