Files
STM32F4-Base/docs/任务规划/登记簿.md
T
wandering1 8f8d97b3d8
CI / 静态门禁 (pre-commit) (push) Failing after 8m4s
CI / 主机侧单测 (MSVC) (push) Successful in 27s
docs(编号): 批次六余账文档面——CubeMX 层号、双写疤、采集链旧层名共 61 站点
- CubeMX 防丢失三层优先级 L1/L2/L3(批次 3c 漏网 30 处):看门狗设计说明 25、
  门禁说明/cubemx-survival 3(含「优先 L1/L2」→「优先写进 .ioc 与搬进 USER CODE
  区」)、ADC通道映射 2。
- 改名遗留的中文重叠双写 14 处:菜单页面设计「一级菜单菜单」×6、「二级菜单菜单」
  ×2;README「语义取数与有效性」重复;存储架构「3字节字节地址」;链路延迟
  「队列往返队列往返」;继电保护「出口出口与记录层」;产品需求「全周傅氏相量」重复。
- 采集链旧层名 5 处:「L2 相量层」→ 全周傅氏相量、「L0 采样驱动」→ 采样驱动层、
  「L2-x 前缀」→ 相量输出标签前缀、「L1 层 v2.3」→ 语义取数与有效性层 v2.3。
- UI 菜单层级 2 处:产品需求「4 级(L0~L3)」→「4 级(主界面 / 一级 / 二级 /
  三级菜单)」、「主界面 (L0)」→「主界面」。
- 登记簿条目改名「L5 队列往返基线待重验」→「队列往返基线待重验」+ 引用侧 5 处
  同步(登记簿 §1/§7、实机测试实施指南 §7.3 与步骤表、编号规范 §1 好例子清单——
  那个混在短语里的 L5 恰恰是个坏例子)。归档里的历史 note 原文不动。
- 归档 §10.3:四族收口记录 + 边界与裁定(peer JSON 键属冻结证据 schema 不改;
  REQ2FIRST / FULLFRAME 不并入 FRAME_RT;L1-3/L1-4 属不可还原死号,就地删号留
  事实;「原 L2 基线 3/10」按上下文读作主机侧回归的早期基线)。
- 判族保留(永久):硬件位号与封装尺寸 27 处(网表 L1~L3 磁珠电感、
  SOT-23_L2.9-W1.3、CRYSTAL-L3.2)、芯片手册原文 3 处双写;伪命中 4 条没删
  (「遥测量 测量值」「已登记登记簿」「谁来监视监视者」×2)——那些是正常词组。
- 门禁:check_doc_links --all --sections-strict 通过(195 篇、章节引用 3292 处);
  git diff --check 干净;逐文件 BOM / U+FFFD / CRLF 与 HEAD 一致。
2026-10-28 18:57:03 +08:00

14 KiB
Raw Blame History

后续待办与长期观察登记簿

这里不放当前 UI 任务。 当前执行只看 UI补齐.md;本文件登记 UI 之后的工作、 等待外部条件的事项、独立立项和长期观察。推进顺序只看 docs/任务规划/README.md §2。

条目一律用语义短语标识;完成后删行并清理引用。§6~§9 是由原排期、送检、分道和 开放问题文件合并而来的唯一归属,不再在多处复制同一事项。

1. 网络(CH395F / net 层)

# 事项 发现 证据与现状 出处
队列往返基线待重验 队列往返基线(1223/988µs)在发送分块握手改造后的重验——队列往返测 DONTWAIT 队列全程;发送分块握手对该路径逐位不变 → 机制上无影响,但基线数值属分片时代,严格重锁需跑一轮 Phase 13(需 PC peer) 2026-09-22(发送分块握手收尾留档) 低风险:10ms/100ms 阈值余量 >8×;下次 Phase 13 窗口顺带重锁即可 链路延迟测试说明.md §6.4 队列往返行的注¹
网络负向场景台架验证 负向场景台架验证待办(拔线断链 / 芯片级 net_init 失败分支 / 短写压测;正常路径已实测零回归):① PHY 拔线负向测试——断链需断 DTU 侧线缆或关受管交换机端口;② 芯片级 net_init 失败分支(需 SPI 故障注入);③ 短写压测(需远显客户端 + UI 推流压力) 2026-10-03(台架拓扑 = CH395↔交换机,拔线操作受限) 待专项台架窗口 实机测试实施指南.md §10
reconcile 突发饿死 uiTask 对时 reconcile/relisten 突发(0~4s 窗)把唯一 BelowNormal 的 uiTask 压成同一任务 800ms+ 单串缺席(饿死型,非等待型——F3 返回点喂位射程外):8 连窗级 UI 缺席期间喂狗面本身未断(cf=0 seg=1)、uisn=0(不在 sink 段内)、uip 在途 307→1083ms 而 uis 峰仅 183ms——被拖的 1s 在 feed/port 纯计算段墙钟。2026-10-25 台架两轮分箱定案:同负载换 :7003 churn 2200 周期 stall=0(阻塞型已被 F3 治愈),探针轮 3 事件 8 行全为该签名(漏检零、误报零,v1.1 口径 FAIL 面精确收缩)。处置方向 = 自愈设计 §11.3 脆弱点 1 实测样本并档「net 层跨上下文收口」项:优先级矩阵复核与 reconcile 突发分片让路两案并评;排期 = UI 完成后的第一项,与裸指针收口同批 2026-10-25(F2/F3 验收轮②,v1.1 判据下捕获) docs/测试说明/boot_log_data/f3rounds_r2_probe_30min.log.gz(3 事件 8 行 + STALL 证据行 + 同行 PROF);对照轮 f3rounds_r1_7003_churn_30min.log.gz;机理归档 ../网络/网络自愈架构设计.md §4.6、../子系统设计/看门狗设计说明.md §11.3、../UI设计/UI_设计架构.md §5.8 ../算法/继电保护功能复现规划.md(裸指针收口项属主文档指针)
relisten 沉降段原语化受阻 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. 存储 / 日志管线

# 事项 发现 证据与现状 出处
dhara 重试自旋残留 dhara 重试自旋残留——try_recover() 的 DHARA_MAX_RETRIES(8) 自旋在坏块密集时仍可能长时间占用 defaultTask(喂狗点) 2026-10-02 低优先:现有 vol_lock + 喂狗节奏缓解;若台架再出"存储侧喂狗饥饿"再排期 Lib/dhara/map.c
可选全序列卷锁 可选全序列卷锁——现卷锁仅覆盖 syslog / cfg / lftpd 三条路径(vol_lock_wait(0) try 语义),其它潜在访问点(如 UI 读日志)未纳入 2026-10-02 待评估:先确认是否真有第二写者;无则关闭本项 App/fs/vol_lock.{c,h}

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

# 事项 发现 证据与现状 出处
双转换器无共同采样触发 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. 测试与验证基础设施

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

5. RS-485、内存与仓库观察

# 事项 影响 / 现状 处置方向 状态 出处
rs485_task 白名单缺口 KNOWN_GAPS 白名单清理——现存唯一缺口 = App/task/rs485_task.c(RS-485 接线门禁未满足、刻意不接线,随 B2 暂缓,见 暂缓-RS485.md) 白名单不清 = "写了不编译"盲区仍在 随 B2 一并出白名单(--strict 供审计复跑) 结构债 报告 N 族残余(报告已删)
缩堆迁 CCM 后半(暂缓) 内存优化簇剩余:原报告缩堆建议的后半(缩堆 56→32 KB → 迁 CCM)· 同类三项 ⏸ 整簇暂缓(2026-10-15 用户裁定):没有功能在等这块预算,而搬迁要动 scatter、要逐条过 DMA 可达性清单、缩堆还要上板复测。⚠ 代价落在"以后加任务 / 抬栈 / 加堆"那一刻——CCM 只剩 7,904 B、FreeRTOS 堆 min_ever 8,464 B,届时 mem-budget 会先报警 重开条件见 ../内存管理/RAM使用分析与优化方案.md §4。⚠ 原报告另有一条已判定不可行(CMSIS-RTOS2 freertos_os2.h 有 #if (configMAX_PRIORITIES != 56) #error,改小直接编译失败),不再列入 暂缓 报告 R 族剩余/§5.5(报告已删)
仓库体积膨胀观察 仓库膨胀:.git 233 MB(2026-10-25 实测)+ 手册图片 36.3 MB(受控文件合计仅 79.3 MB,.git 已是它的 3 倍) clone/备份慢,且持续恶化 降采样 / 拆 submodule / LFS 三选一 + 一次 git filter-repo 历史重写(三项都不解决历史膨胀)。已决策(2026-10-11):暂不处理、登记观察——推送/协作前重评 仓库决策 报告 D 族

6. UI 完成后的编码队列

顺序 条目 要做什么 完成或关闭判据
1 net 层跨上下文收口 同批处理两件事:裸指针收口为状态查询 API;对时 reconcile/relisten 突发导致 uiTask 800 ms 以上连续缺席,评估优先级矩阵与突发分片让路 同类台架负载下不再出现目标饿死签名;网络与 UI 回归通过;证据写入网络与看门狗模块文档
2 网络性能资源建议簇 分别评估 PASV 重复建监听、PHY 强制 100M 无回退、NET_MAX_SOCKETS 与单连接语义不一致;DE 项随 RS-485,不在本项做。机理见 ../网络/Net层阻塞模型架构设计.md 与 Drivers/BSP/NET/README.md 每项形成“修改并验证”或“有理由不做”的结论;不为了清清单做无收益重构
3 dhara 重试自旋与卷锁评估 先确认是否仍出现存储侧喂狗饥饿、是否确有第二写者,再决定是否修改 有新证据才排修改;无第二写者则关闭全序列卷锁项
4 uvprojx 空 TU 观察 201 个 LVGL .c 中 127 个在 .map 零产出,但当前增量构建仅 4~5 秒;有全量构建耗时痛点时先补计时基线,再用 Keil 原生 <IncludeInBuild>0</IncludeInBuild> 可逆排除 有实测收益才保留改动;否则继续观察

RS-485 白名单随 暂缓-RS485.md 整簇处理,不列为 UI 后的独立编码任务。 并行写域、工作树与合并纪律统一见 docs/环境与部署/并行任务工作树方案.md。

7. 等台架或外部资源的事项

条目 需要条件 要做的事 去向
数据可信两项 子板实物或原理图;标准源 端子/子板变比确认 → 8 通道两点标定 唯一任务卡与验收在 数据可信.md §5
标准源送检与第三方 104 验收 两点标定完成、保护 VALID 置位、第三方主站 标准源注入判据全部通过;总召、周期、变位、遥控全流程通过;证据归档。送检窗口前 2 日冻结特性 ../子系统设计/IEC104上行设计说明.md §7/§8
队列往返基线待重验 台架 + PC peer 下次 Phase 13 窗口重锁基线 本文件 §1
网络负向场景台架验证 拔线、SPI 故障注入、远显压力条件 PHY 拔线、芯片级 net_init 失败、短写压测 本文件 §1
串口助手正路径补验 CH340 接入 补齐尚未覆盖的正路径 ../测试说明/串口助手设计说明.md
CI 远端闭环未验证 runner 与第二台机器 验证远端两 job 闭环和不同工具路径 本文件 §4
UI 六页真机判据(记录 5 页 + 运行报告) 台架:NAND 里有真实事件记录、SD2506 电池域可控、104 主站可连 上板复核六件事:真记录翻页与掉电后保持、清除记录后对应页归零、上电一次看 boot_count +1、拔 RTC 电池后 seq_state 落 RESTARTED、IWDG 复位后 rst_cause 落 IWDG、主站连一次看 conn_up +1(模拟器侧这些记录文件无写入方、无 boot_stats、无 104 协议栈,黄金只拍得到空态「无记录」与固定假数据的显示口径) 六个页面模块文件头「台架待补」段 + ../测试说明/模拟器差距清单.md §2.3 开机账本一行

送检顺序不可倒过来:产品构建当前要求 UA/UN/IA 的标定 VALID 全部置位才走保护判据。 未完成标准源标定就送检,保护会表现为不动作。保持该闭锁,不用非标准源标定走捷径。

8. 等立项或硬件代次的事项

条目 当前不做的原因 重开条件
保护元件 V0.1 可行子集 A 相涌流制动、突变量启动、无压无流闭锁、元件级校验和虽能设计,但没有标准源就无法验收,且保护仍在闭锁 标准源到位,且标定与闭锁验证完成
采集增强 等周波调频、零序通道、遥测谐波轨依赖可信工程量 标定完成后单独立项
跨转换器三相与功率类功能 两片转换器无共同采样触发,V0.1 上相位、功率、对称分量不成立 V0.2 硬件改版
开入开出与遥信配置 3 页 固件和 V0.1 硬件均无可配开入对象;出口还涉及 GPIO 安全电平、保持/脉冲和回读自检 开入开出作为独立模块立项,再与 UI 页面同批
故障录波与 104 文件传输 是独立子系统,不是补一个页面 产品定义与工程量口径明确后立项
SNTP 设置 当前对时走 8888 私有协议,SNTP 客户端与产品口径未定 SNTP 客户端立项
RS-485 整簇 用户决定暂缓 暂缓-RS485.md

9. 开放问题

问题 为什么还没答案 处理时机
是否在真实初始化点接入功能裁剪门控 旧占位宏没有消费者且已删除;是否需要真实门控属于产品定义,不是单纯代码问题 产品提出按配置裁剪需求时决定;决定前不新增空开关