docs: 删除 Task #32 停摆分析(已结案),可复用结论并入看门狗设计说明 §11

按登记簿"完成即销项"规则删除 docs/问题记录/UI任务看门狗停摆分析.md
(560 行)。结案依据:累计 38 次上板启动 0 复现(原 L2 基线 3/10),
P0/P1-4a/P1-5/P2/方案 A 全部落地,方案 B 已评估决定不做。

并入 docs/子系统设计/看门狗设计说明.md 新增 §11(只留可复用部分):
- §11.1 三条易误读的判读口径:启动期 MISS start 0x67 是良性 episode;
  miss= 是累计不是连续(连续数饱和在 WD_MISS_TOLERANCE=8);
  reset cause 不能区分 IWDG 溢出与台架软件复位
- §11.2 诊断四步:先看掩码缺几位(只缺 1 位 = 定点打击,多位 = 全局
  饥饿)→ 逐项量化占空比(实测 10%~13%,否掉"CPU 饱和"直觉)→
  用计数速率反证空转(ring 恰好 1000/s)→ 用 [PROF] 指认占用者
- §11.3 三条结构性脆弱点(uiTask 唯一 BelowNormal/心跳曾依赖 netTask
  往返/自定截止期不可恢复)+ 两个顺带修掉的正确性缺陷(无新帧仍压环
  ≈3% 频率失配、失败拍静默沿用旧值)
- §11.4 [PROF]/[PROF2] 全字段语义 + v2.8 实测基线(netp=0 是真实值、
  adcm 峰值来自心跳日志、uip 地板 = LVGL 帧周期)与三机理判读口诀
- §11.5 三条教训:门控类优化必须保留低频兜底;门控会顺手消灭暴露路径;
  事件驱动要核对节拍源启动时刻 vs 消费者创建时刻
- §11.6 明确不做的四条及理由(提 uiTask 优先级会掩盖真缺陷、net_* 有界
  等待版会串回执、推流搬出 uiTask、推流塞进 netTask)

UI 推流门控与方案 B 否决理由收进 RemoDispBus 协议说明 §3(该处原本已有
摘要,改为自洽不再回指);就绪门控 API 的约束已在 BSD Socket 指南 §10.1。

引用改指 12 处:ui_task.c、task_prof.c/.h、ui_net_sink.c/.h、docs/README、
RemoDispBus、看门狗设计说明 R7 行、ADC 采样节拍设计说明、BSD Socket 指南
×2、项目审查报告 N-10 ×2。

⚠ ui_task.c / ui_net_sink.c / ui_net_sink.h 是带 BOM 文件,Edit 剥掉了
BOM,已按原样补回 3 字节 EF BB BF(未整文件重写)。

验证:check_doc_links --all 通过(127 个文档,无悬空引用);
@build 0 错 0 警,Code=257660 与删除前一字不差(纯注释改动)。
This commit is contained in:
2026-10-11 00:38:50 +08:00
parent 9bbe117f97
commit 54d6d2d5d5
12 changed files with 110 additions and 579 deletions
+2 -2
View File
@@ -11,7 +11,7 @@
* 修改记录:
* v1.0 2026-10-10 王建锋 创建(Task #32 的 P2 测量埋点)
*
* 设计背景(docs/问题记录/UI任务看门狗停摆分析.md §8 P2):
* 设计背景(docs/子系统设计/看门狗设计说明.md §11.4):
* uiTask 偶发心跳缺席导致 IWDG 复位,但"占用者"无法从既有日志判定。
* 同一现象至少对应三种互斥机理,观测上必须能区分:
* ① 被调度饿死 → 循环周期长,而段内耗时短;
@@ -36,7 +36,7 @@
* NET_POLL netTask net_poll()(enter/exit)——CH395F 驱动轮询
*
* 后四个探针用于**指认占用者**:UI 心跳缺席时,谁的最坏耗时在同一窗口抬起来,
* 谁就是挤占 CPU 的 Normal 任务(见 docs/问题记录/UI任务看门狗停摆分析.md §7.1)。
* 谁就是挤占 CPU 的 Normal 任务(见 docs/子系统设计/看门狗设计说明.md §11.2 第 4 步)。
*/
#ifndef TASK_PROF_H