fix(wave): bench 定时自抓到期判定无符号回绕恒真修复,第四幕板级闭环入档(#84) #95

Merged
wandering1 merged 1 commits from exec-issue-84-1f621ac1c3ce into master 2026-11-07 22:06:00 +08:00
Collaborator

This is by an automated agent, not a human.

这是什么

Issue #84 第四幕「bench 定时自抓与占卷弃段观察」执行完毕:三判据板级实证全部对上,
顺带修掉 bench 定时器判据缺陷一枚(F0),文档四处销项 + 闭环记录入档。

判据对照(详见证据目录 README 表格)

判据 结果
wave: 行 err +1 ✅ 命中窗心跳对 err=4→5 恰 +1(同窗 4 发静默自弃逐发归因,总和=5 对上)
只出现一条 ring abandoned ✅ [ERR] [WAVE] seg drop: ring abandoned (idx=36 written=5250) 全窗唯一(另一条 [ERR] 为 #53 的 i104 启动行,非落盘留痕)
段号不推进、同号重写 ✅ 弃段 unlink 后同号 WAVE36.BIN 重建 5250 B 全新单段,P1/P2/P3 三点 + sha256 固化
长占卷静默侧 ✅ 72.6 s 连续占卷 err 1→15 零留痕(「不是每拍刷屏」最严形态)
期间 104 链路与 UI 照常 ✅ 占卷转储中 TCP 2404 STARTDT 实测应答 + 7003 UI status=MENU

F0 修复(唯一代码改动,App/task/adc_task.c,#if DTU_BENCH 闸内)

无符号到期判据在 next=now+PERIOD 挂出后恒真(差值回绕成巨数),台架实证 1 kHz
连发 wave_ring_request(ovf 每秒 +1000、段节奏钳到 ~1.5 s/段,违背 ON 行承诺的
1 seg / 2000 ms)。改有符号比较后实测 seg 恰 +5/10 s。产品影像零漂移:修复后
产品全量重建 Code=254820 与既有凭证一致(bench 255284 差 464 B 即门控旁证),
体积凭证已按新指纹重盖。

收工态

  • 占卷文件 FILLER/FILL2/FILL3 全删(根只剩 V5_UP/CONFIG.INI/PROT_SET/LOG//WAVE/);
  • 设备已还烧产品构建(fw build: Nov 7 2026 21:32:52),UI 唤醒后主菜单,bench 锁已
    --bench-pass 释放;
  • 启动锚点两跑均 8/9 required 过 + readback OK + 无 ERROR/HardFault;唯一 MISS/HIT 是
    #53 跟踪中的 [I104] bind port 2404 FAIL 行(静默重挂后端口实测活,21:37:09 STARTDT
    应答 + relisten 三连行为证,沿用 11-06 第二幕轮先例定性,不新开)。

已知限制(诚实申报)

  • F1:20:28:57 一次无任何打印前导的软件复位,四条已知复位路径都要先打印——未定位、
    其后 6+ 窗未复现,按「单发只记不断」入档(设计说明 §10);
  • daemon 持久串口日志被后续 run_boot_test 的 open+clear 清空,sweep5 窗口摘录为逐字
    复原件(文件头有来源声明),sweep7 窗口与产品终窗为原始切片;
  • /WAVE 100 槽轮转属设计行为,命中时刻 WAVE36 样本无法事后单独归档,以 P1/P2/P3
    三点尺寸+sha 固化。

验证

  • scripts/ci_local.py 静态门禁 + 体积门禁(重盖凭证)+ 主机单测本地全跑;
  • 构建 0 Error(s), 0 Warning(s)(bench 与产品各全量重建一次);
  • 台架实证链全部落在 docs/测试说明/测试数据/wave_bench_20261107/。
This is by an automated agent, not a human. ## 这是什么 Issue #84 第四幕「bench 定时自抓与占卷弃段观察」执行完毕:三判据板级实证全部对上, 顺带修掉 bench 定时器判据缺陷一枚(F0),文档四处销项 + 闭环记录入档。 ## 判据对照(详见证据目录 README 表格) | 判据 | 结果 | | --- | --- | | `wave:` 行 `err` +1 | ✅ 命中窗心跳对 `err=4→5` 恰 +1(同窗 4 发静默自弃逐发归因,总和=5 对上) | | 只出现**一条** `ring abandoned` | ✅ `[ERR] [WAVE] seg drop: ring abandoned (idx=36 written=5250)` 全窗唯一(另一条 `[ERR]` 为 #53 的 i104 启动行,非落盘留痕) | | 段号不推进、同号重写 | ✅ 弃段 unlink 后同号 `WAVE36.BIN` 重建 5250 B 全新单段,P1/P2/P3 三点 + sha256 固化 | | 长占卷静默侧 | ✅ 72.6 s 连续占卷 err 1→15 零留痕(「不是每拍刷屏」最严形态) | | 期间 104 链路与 UI 照常 | ✅ 占卷转储中 TCP 2404 STARTDT 实测应答 + 7003 UI status=MENU | ## F0 修复(唯一代码改动,`App/task/adc_task.c`,`#if DTU_BENCH` 闸内) 无符号到期判据在 `next=now+PERIOD` 挂出后恒真(差值回绕成巨数),台架实证 1 kHz 连发 `wave_ring_request`(ovf 每秒 +1000、段节奏钳到 ~1.5 s/段,违背 ON 行承诺的 `1 seg / 2000 ms`)。改有符号比较后实测 seg 恰 +5/10 s。**产品影像零漂移**:修复后 产品全量重建 Code=254820 与既有凭证一致(bench 255284 差 464 B 即门控旁证), 体积凭证已按新指纹重盖。 ## 收工态 - 占卷文件 FILLER/FILL2/FILL3 全删(根只剩 V5_UP/CONFIG.INI/PROT_SET/LOG//WAVE/); - 设备已还烧产品构建(`fw build: Nov 7 2026 21:32:52`),UI 唤醒后主菜单,bench 锁已 `--bench-pass` 释放; - 启动锚点两跑均 8/9 required 过 + readback OK + 无 ERROR/HardFault;唯一 MISS/HIT 是 #53 跟踪中的 `[I104] bind port 2404 FAIL` 行(静默重挂后端口实测活,21:37:09 STARTDT 应答 + relisten 三连行为证,沿用 11-06 第二幕轮先例定性,不新开)。 ## 已知限制(诚实申报) - F1:20:28:57 一次无任何打印前导的软件复位,四条已知复位路径都要先打印——未定位、 其后 6+ 窗未复现,按「单发只记不断」入档(设计说明 §10); - daemon 持久串口日志被后续 run_boot_test 的 open+clear 清空,sweep5 窗口摘录为逐字 复原件(文件头有来源声明),sweep7 窗口与产品终窗为原始切片; - `/WAVE` 100 槽轮转属设计行为,命中时刻 WAVE36 样本无法事后单独归档,以 P1/P2/P3 三点尺寸+sha 固化。 ## 验证 - `scripts/ci_local.py` 静态门禁 + 体积门禁(重盖凭证)+ 主机单测本地全跑; - 构建 `0 Error(s), 0 Warning(s)`(bench 与产品各全量重建一次); - 台架实证链全部落在 `docs/测试说明/测试数据/wave_bench_20261107/`。
super_agent_bot added 1 commit 2026-11-07 21:55:59 +08:00
fix(wave): bench 定时自抓到期判定无符号回绕恒真修复,第四幕板级闭环入档(#84)
CI / 静态门禁 (pre-commit) (push) Failing after 4m54s
CI / 主机侧单测 (MSVC) (push) Successful in 51s
CI / 静态门禁 (pre-commit) (pull_request) Failing after 4m29s
CI / 主机侧单测 (MSVC) (pull_request) Failing after 41s
1df02c4658
F0(唯一代码改动,#if DTU_BENCH 闸内,产品影像零漂移):
adc_task.c 原无符号判据 (uint32_t)(now-next)>=PERIOD 在 next=now+PERIOD
挂出后立刻成立(now<next 差值回绕成巨数),台架实证 1 kHz 连发请求:
ovf 每秒 +1000、段节奏被去重钳到 ~1.5 s/段,违背 ON 行承诺
「1 seg / 2000 ms」。改有符号比较(半程内回绕安全)。修复后实测
seg 恰 +5/10 s;bench Code=255284 vs 产品 254820(差 464 B)证门控。

第四幕三判据板级实证(手册 §6 步骤 3 逐条对上):
- 临界占卷命中唯一 [ERR] seg drop: ring abandoned(idx=36),心跳
  err 恰 +1,段号不推进、同号 5250 B 重写(P1/P2/P3 + sha256 固化);
- 长占卷 72.6 s 静默自弃 err 1→15 零留痕(不是每拍刷屏最严形态);
- 占卷期间 104 STARTDT 实测应答 + UI 主菜单照常(丢录波不丢采集)。

现场发现 F1(单发未复现软件复位,只记不断)/F2(lftpd 放锁早于
DOWNLOAD 落账 ~0.13 s,临界命中方法钥匙)/F3(pack_next 留痕板级
首见,同族分支)入设计说明 §10 闭环记录。

文档销项:设计说明 §5.2 L163 / §10 留痕名清单 / 板级行 / 未跑清单
四处标记闭环 + 新增「bench 定时自抓与占卷弃段观察闭环记录」小节;
到场轮手册 §1 第四幕行标已完成 + §6 收工状态注记。

收工:FILLER/FILL2/FILL3 删净,产品构建 21:32:52 已烧(除 #53 i104
首绑 FAIL 行外 8/9 required 全过、端口 STARTDT 实测活,沿用 11-06
先例定性);UI 主菜单;证据目录 docs/测试说明/测试数据/
wave_bench_20261107/(README 判据对照 + 原始/复原串口摘录 + 各轮
JSON + 启动锚点两跑日志)。
wandering1 merged commit 33b52410f9 into master 2026-11-07 22:06:00 +08:00
wandering1 deleted branch exec-issue-84-1f621ac1c3ce 2026-11-07 22:06:02 +08:00
Author
Collaborator

This is by an automated agent, not a human.

合入后两处补正(不影响结论):正文写作时 bench 锁尚未实际释放(已于合并前数秒 22:01 前 --bench-pass 释放,两锁空闲);板上最终烧的是 21:52:47 全量重建 hex,与启动锚点两跑所用的 21:32:52 版仅编译时刻 __TIME__ 串一字节域之差,读回比对逐字节一致。

This is by an automated agent, not a human. 合入后两处补正(不影响结论):正文写作时 bench 锁尚未实际释放(已于合并前数秒 22:01 前 `--bench-pass` 释放,两锁空闲);板上最终烧的是 21:52:47 全量重建 hex,与启动锚点两跑所用的 21:32:52 版仅编译时刻 `__TIME__` 串一字节域之差,读回比对逐字节一致。
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wandering1/STM32F4-Base#95