72b4b0943c
Replace task/batch shorthand IDs and residual layer labels in human-facing docs with semantic phrases. Add the new cleanup policy to docs/编号规范.md and update the entry docs. Machine keys (TC/CODE-RULE/MENU-STATE/TRAP/FR), hardware designators/pins/MAC, protocol/version numbers and frozen historical evidence are intentionally kept. Docs only; no code behavior change. Verified with check_doc_links.py --all and git diff --check.
16 KiB
16 KiB
后续待办与长期观察登记簿
这里不放当前 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(裸指针收口项属主文档指针) |
| 104 端口改后立刻重 bind | 改了 [comm] 段 port 之后要求立刻重 bind(不等拆链重建、不等网络代次重建)——用户裁定 2026-10-30:需求口径按「保存即生效」定,代码语义是要改的一侧 |
现实现 = App/task/iec104_serv.c 的 s_bind_listen 每次现取 iec104_comm_port(),注释自陈「下次重 bind(拆链重建/网络代次重建)即生效」;连带隐性耦合:.serialtest/config.json 必检锚点写死 i104: listening on 2404,端口一改串口回归必假失败(要么锚点只查 listening on,要么由脚本把端口注入锚点) |
属固件行为变更,需真机验证;本笔只登记不动代码 | 用户裁定 2026-10-30;docs/产品需求/产品需求设计文档.md §通讯配置、docs/测试说明/流程与规范/自动化测试流程.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} |
| 回放页段表枚举恒空 | 回放页段表枚举恒空(真机缺陷)——回放页真机开屏恒显「无录波段」,而 FTP LIST 六段全见、RETR/DELE 正常、同 try 锁纪律的 SOE 页读卷正常、defaultTask 写侧 /wave 枚举也正常——唯独 ui_task_wave_scan() 在 uiTask 上下文拿不到目录条目;伴生:f_opendir 失败照样置 s_wave_scanned=1 钉表,卷忙一类失败被钉成假空态、直到下一次 manual_req 才重试 |
2026-10-31 板级远程半轮(五个独立判别面见出处) | 等修复(到场轮):f_opendir/f_readdir 分支带 FR 码埋点定位;失败不钉表、下键重试(与 soe_store 读者同纪律);修好才有回放页坏段/空态画面的测试面 |
../子系统设计/故障录波设计说明.md §10「板级远程半轮记录」;App/task/ui_task.c 扫描函数 |
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 现板软件口径:主板侧只做逐通道独立监视,禁止跨转换器做相位/功率/功率因数/矢量类运算(此类量取子板计量模块结果)。固件侧消费者已落地(ADC 采集链路,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 接线门禁未满足、刻意不接线,随 RS-485 采集链路 暂缓,见 暂缓-RS485.md) |
白名单不清 = "写了不编译"盲区仍在 | 随 RS-485 采集链路 一并出白名单(--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. 等台架或外部资源的事项
| 条目 | 需要条件 | 要做的事 | 去向 |
|---|---|---|---|
| 数据可信任务卡 | ① 一台能出 50 Hz 正弦的交流信号发生器(手边即可,不等外部)② 子板实物或原理图 ③ 标准源 | 信号发生器动态波形验证 → 端子/子板变比确认 → 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 页面同批 |
| 故障录波 | 独立子系统,不是补一个页面——2026-10-29 已立项:设计与板级判据属主 docs/子系统设计/故障录波设计说明.md(§10;原卡片登记簿 2026-10-30 销项并入后删除) | 已解除暂缓;执行按该文 §10 顺序图,UI 道互斥 |
| 104 文件传输(规约侧读文件) | 录波取回走现成 FTP 已够用,规约侧文件服务是另一件事 | 送检或第三方交接需求明确后单独立项 |
| SNTP 设置 | 当前对时走 8888 私有协议,SNTP 客户端与产品口径未定 | SNTP 客户端立项 |
| RS-485 整簇 | 用户决定暂缓 | 暂缓-RS485.md |
9. 开放问题
| 问题 | 为什么还没答案 | 处理时机 |
|---|---|---|
| 是否在真实初始化点接入功能裁剪门控 | 旧占位宏没有消费者且已删除;是否需要真实门控属于产品定义,不是单纯代码问题 | 产品提出按配置裁剪需求时决定;决定前不新增空开关 |