feat(tools): v5 判读工具 v1.1——MISS 降级诊断行,违规只看 stall 与嫌疑段

道F task-22(F1,大窗判读三票之首)commit 1/2。违规口径改造:
violation := task stall>0 或 真停滞嫌疑静默段>0;MISS start 自 v1.1 起整体降级
为诊断行(看门狗 v1.5 按位分账后它只是复合缺席边沿,不代表停喂,设计说明
docs/子系统设计/看门狗设计说明.md §6.1)。v1.0 把运行期 MISS 计入违规是我在
task-19 把判读口径收紧过头——2026-10-25 台架 70min 窗 1262 条运行期 MISS 经
逐窗归因实为重建风暴复合边沿(456 条贴探针窗)+ FTP 传输窗抖动(632 条),
非心跳丢失,予以纠正(当轮 FAIL 判定的误伤面即此)。

【新增输出】MISS 归因诊断(人读 + --json miss_diag):开机良性 / 探针窗内 /
窗外运行期 三分类 + 窗外每分钟速率 top5;counters 同步扩字段,旧字段
(miss_runtime 等)保留不动,既有 JSON 消费方零破坏。stall 行文本不变,
语义注释更新 = v1.5 起每行都是「同一任务 800ms 单串」真猎物。

【自检】--selftest 15→18 断言:新增 v1.1 回归钉 = 零 stall + 运行期 MISS 样例
必须 PASS,且归因计数(探针窗内 1 / 窗外 1)与分钟分桶正确;PASS 文案与新
口径同步(改口径先改文档再改脚本的漂移闸语义保持)。

【文档】实机测试实施指南 §7.2 判读工具块重写(v1.1 口径 + 降级依据 + stall
语义指针);N-2 销项条件同段由「stall 与 MISS 双零」改为「stall 与真停滞嫌疑
段双零」。开机豁免(§9 第 8 条)保留、仅作用于 MISS 诊断分类。

【顺手修(越界申报)】scripts/check_size_gate.py 无参/非法参直调在 print_help
崩(argparse 对 help 做 %-插值,「92% 红线」裸 % + 中文 = ValueError;lead 派
单附注确认):help 改 92%%,加注释防复发;--ci 功能语义零改动。非本票写域,
系 lead 明示「要不要顺手修由你定」。

【票内待办(commit 2/2)】boot_log_data 的 gz 摘录:原定素材(16:18-16:48
megawin 段)**已不可得**——serial-assistant state 日志被后续 @test 窗 clear
轮转,全盘(含 Temp/ci-artifacts)无副本,已报 lead。替代落点 = 本轮 F2/F3
验收两轮 30min 判据轮(最终主干 1a624b1,效果取证素材)各出一只 gz 入库 +
README 索引,语义上是「v1.1 判据下的达标基线」比旧误判窗更有归档价值。

【门禁】--all-files 48 全绿(本树补跑一次 @build 落地 .map 后 mem-numbers/
budget 自然绿,数字 224860/24640/1332/135100 与凭证同码一致;固件源码零
改动);uvprojx UV4 抖动未入库。
This commit is contained in:
2026-10-25 19:10:29 +08:00
parent 1a624b1fae
commit 4c05b58f3a
3 changed files with 107 additions and 24 deletions
+17 -8
View File
@@ -277,16 +277,25 @@ $cli = if ($env:DTU_STLINK_CLI) { $env:DTU_STLINK_CLI } else { (Get-Command ST-L
真停滞」判别口径落 `../子系统设计/控制台单写者日志设计说明.md` 文末附录——
再现静默先按三本账(`dbg_console_dropped/_tx_fault/_tx_timeout`)+ syslog 丢弃
账对照定性,再决定是否开卡;销项条件 = N-17 修复版 V5 复跑(e02_probe + FTP
≥30 min)运行期 stall 与非开机 `MISS start` 双零。
- **判读工具(2026-10-25 起随单交付)**:
≥30 min)运行期 `task stall` 与真停滞嫌疑静默段双零(2026-10-25 v1.1 起
`MISS start` 降级为诊断行不计销项——见下方判读工具与
`../子系统设计/看门狗设计说明.md` §6.1)。
- **判读工具 v1.1(2026-10-25 大窗判读 F1 起)**:
`'.venv/Scripts/python.exe' scripts/v5_log_gap_report.py <serial-assistant 日志路径>`
——自动列 `>10s` 静默段(`--gap-threshold-s` 可调),每段带判定(NO-SOURCE /
PROBE-WINDOW / BOOT-WINDOW / TRUE-STALL-SUSPECT)与贴边证据行;内置
`task stall` 计数与开机良性豁免(§9 第 8 条口径);退出码 0=双零达标 /
1=违规 / 2=日志无有效时戳;`--json` 机读、`--report-only` 只出报告、
`--selftest` 内嵌合成样例自检(无台架可跑)。口径唯一来源 =
`../子系统设计/控制台单写者日志设计说明.md` 文末附录 + §9 第 8 条——改口径
先改文档再改脚本(自检断言会拦漂移)。
PROBE-WINDOW / BOOT-WINDOW / TRUE-STALL-SUSPECT)与贴边证据行。违规口径 =
`task stall` 行 >0 **或** 真停滞嫌疑段 >0;退出码 0=达标 / 1=违规 /
2=日志无有效时戳;`--json` 机读、`--report-only` 只出报告、`--selftest`
内嵌合成样例自检(无台架可跑)。**v1.1 变更(判读口径,先文档后脚本)**:
① `MISS start` 降级为**诊断行**(看门狗 v1.5 按位分账后它只是复合缺席边沿,
不代表停喂,`../子系统设计/看门狗设计说明.md` §6.1)——报告改出归因诊断:
开机良性 / 探针窗内 / 窗外运行期 + 窗外每分钟速率 top;v1.0 把运行期 MISS
计违规属收紧过头(2026-10-25 台架 70min 窗 1262 条经逐窗归因实为风暴复合边沿
与传输窗抖动),予以纠正;② `task stall` 行语义 = v1.5 起「同一任务 800ms
单串真停摆」(行文本不变,`../子系统设计/看门狗设计说明.md` §5.3),每行都是
真猎物;开机豁免口径(§9 第 8 条)保留、仅作用于 MISS 诊断分类。口径唯一
来源 = `../子系统设计/控制台单写者日志设计说明.md` 文末附录 + §9 第 8 条 +
看门狗设计说明——改口径先改文档再改脚本(自检断言会拦漂移)。
**执行步骤**:长跑(§4.2 V5)期间周期性打点 + 对照 `CH395F` 无关的 SD2506 侧日志判别卡点。