Files
STM32F4-Base/docs/任务规划/登记簿.md
T
wandering1 4777ed2373 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 未用口径不变
2026-10-25 17:29:16 +08:00

12 KiB
Raw Blame History

登记簿(长期观察项;存量 N-x / S-x / T-x,新条目用语义标识)

编号空间与"不回收"规则见 docs/任务规划/README.md §0;排期位置见 docs/任务规划/README.md §2 波次总览; 当前波次任务卡(带 DoD / 写范围 / 状态)在 数据可信.md——「采集保护收尾」的 M1/M2 已收口,只剩 M3 送检; 并行归道(写域 / 道 / 合并次序)见 并行分道方案.md。 本文件是低频文件:新发现按类别进对应表;销项 = 删行 + 清引用(docs/任务规划/README.md §3)。 2026-10-14 起新条目的 # 列填「语义标识」——一行短语直接说清是什么事(如 沉降窗 800ms 上限只留痕、RS485 采集接线),不再新增字母+数字编号;存量编号冻结沿用, 已随销项消失的号永久作废、不得复用(原因与撞号实测见 docs/任务规划/README.md §0)。

1. 网络(CH395F / net 层)

# 事项 发现 证据与现状 出处
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
复合连击串窗 多任务各自亚秒级抖动在同一事件里被全局连击计数器串成 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.91.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. 存储 / 日志管线

# 事项 发现 证据与现状 出处
S-3 USART1 TX-only 结构根治(灭 ORE 僵尸机制)——ORE 锁存在外设软复位后毫秒级重锁(PA10 悬空 + RX 使能),是 2026-10-02 台架"背靠背 drain 拉长主循环 → 喂狗节奏饥饿 → IWDG 误复位"的机制根源。现仅有缓解(单次 drain 250ms 预算 + 发送故障后 300ms 冷却),未根治 2026-10-02(台架 gen-288) 待办:改 .ioc 令 USART1 为 TX-only → CubeMX 重生成 → 跑 scripts/check_cubemx_survival.py。结构性改动,需单开一轮并复跑台架闭环 ../子系统设计/控制台单写者日志设计说明.md §12(含 O4)
S-4 dhara 重试自旋残留——try_recover() 的 DHARA_MAX_RETRIES(8) 自旋在坏块密集时仍可能长时间占用 defaultTask(喂狗点) 2026-10-02 低优先:现有 vol_lock + 喂狗节奏缓解;若台架再出"存储侧喂狗饥饿"再排期 Lib/dhara/map.c
S-5 可选全序列卷锁——现卷锁仅覆盖 syslog / cfg / lftpd 三条路径(vol_lock_wait(0) try 语义),其它潜在访问点(如 UI 读日志)未纳入 2026-10-02 待评估:先确认是否真有第二写者;无则关闭本项 App/fs/vol_lock.{c,h}

3. 硬件(V0.1 缺陷 → V0.2 改版项)

# 事项 发现 证据与现状 出处
N-18 8 路电气量分属两片转换器(V0.1 硬件缺陷,需下一版硬件修改)——UA/UN/IA 走 TPAFE5160(16 位、8 通道同步、±5 V 双极性),UB/UC/IB/IC/IN 走 STM32 ADC(12 位、顺序扫描、0~3.3 V 单极性):① 两片转换器无共同采样触发 + STM32 侧顺序扫描(9 通道一轮 ≈ 67 µs)→ 跨转换器通道无同一时刻性、相位关系不确定,主板侧功率/功率因数/相角/对称分量类运算不成立;② 同族电气量精度与量程不一致(LSB ≈ 152.6 µV vs ≈ 806 µV,且 STM32 侧前端无中点偏置、负半周削顶);③ 语义与硬件归属交叉,固件映射/UI 通道序/自检注入须逐通道查表绕开 2026-10-10 定性更正(撤销 2026-10-09 建档时"有意分配、不要修正"的说法) V0.2 改版要求:8 路电气量 UA/UB/UC/UN/IA/IB/IC/IN 全部接 TPAFE5160,与 TPAFE 上 5 路备用路(AIN5/13/7/15/12)对调串联电阻在转换器一侧的目的地——元件数量与料号不变,属走线级改动。V0.1 现板软件口径:主板侧只做逐通道独立监视,禁止跨转换器做相位/功率/功率因数/矢量类运算(此类量取子板计量模块结果)。固件侧消费者已落地(B1,2026-10-10,按语义映射表取数)→ V0.2 改版只改映射表内容,上层语义与代码不动 ../硬件平台/ADC通道映射说明.md §1/§7;../硬件平台/V0.1_网表详细分析报告.md §1.4 V10、§6-3

4. 测试与验证基础设施

# 事项 优先级 问题与证据 处置方向 出处
T-7 CI 远端闭环未验证(runner 本机已就绪) 中 剩余两件:③ 推送远端跑一次两 job 闭环验证(跑通证据尚无留档,故仍按"未验证"对待);④ 第二机交叉验证(不同工具安装路径,验 DTU_* 环境变量方案,→ ../环境与部署/本地工具路径环境变量方案.md 变更记录 TODO)。①② 已就绪,见 ../CI/远程CI完整指南.md §0 仓库状态行 完成前提交前仍须在本地跑 scripts/ci_local.py 或 pre-commit run --all-files 自查(L0 唯一保障,不能因"已配 CI"而放宽) .gitea/workflows/ci.yml;../CI/远程CI完整指南.md;../测试说明/测试开发标准流程.md §9

5. 审查报告并轨(2026-10-11;⚠ 报告编号与本登记簿同名不同义,出处列保留报告编号,引用一律带文档名)

# 事项 影响 / 现状 处置方向 波次 出处
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
N-28 报告 F-5:uvprojx 里 127 个空 TU(201 个 LVGL .c 中 127 个 .map 零产出) 增量构建实测 4~5 s、远程 CI 刻意不跑 @build → 非产品指标;报告原"编译时长 −40%"无基线记录 🟡 观察:等有实测的全量构建耗时痛点再做——用 Keil 原生 <IncludeInBuild>0</IncludeInBuild>(可逆)而非删条目,且排在任何 lv_conf.h 改动之后;动手前先补一次全量构建计时做基线 结构债 报告 F-5
N-29 仓库膨胀:.git 233 MB(2026-10-25 实测)+ 手册图片 36.3 MB(受控文件合计仅 79.3 MB,.git 已是它的 3 倍) clone/备份慢,且持续恶化 降采样 / 拆 submodule / LFS 三选一 + 一次 git filter-repo 历史重写(三项都不解决历史膨胀)。已决策(2026-10-11):暂不处理、登记观察——推送/协作前重评 仓库决策 报告 D-1
U 簇 U5 页面落地——⚠ "27 页"是目标数、不是差集:现存 7 个页面实现(ui_page_ac/dc/device_info/net_cfg/password/runlog/selftest.c,ui_page_registry.c 是生成物不算页面),27 个空叶子已归并为 7 模块 + 2 项前置能力(../UI设计/页面补齐规划.md) 地基已齐(U1~U4 已落地;ui-golden 与 UI 字符集差集检查均已挂 pre-commit),新增一页 = 3 处人工 + 1 条生成器命令;缺的是产品定义与真数据 未排期(2026-10-20 用户裁定暂缓);最早在「数据可信」M4 之后开工——ui_data / ui_data_feed 组装的是码值帧,先做会返工(数据可信.md §10)。逐页规格:../UI设计/页面扩充详细方案.md UI 扩展 ../UI设计/页面补齐规划.md