实机测试规划改造为执行判据说明:删除一次性台架窗口状态(§0.5取证记录)与规划框架,A1~A4代码状态按代码核对改写,16处外部引用重指向模块文档

This commit is contained in:
2026-10-02 23:46:27 +08:00
parent 554b2e88da
commit 3cc08f5d53
13 changed files with 142 additions and 521 deletions
+7 -5
View File
@@ -83,10 +83,11 @@ uint32_t task_wd_is_armed(void); /* 1 = IWDG 已启动 */
/*
* ==================== round 8 取证:复位不丢的"进段打点" ====================
* 背景(实机测试规划.md §0.5.4 round 7 结论):误复位时判定分支(STALL)从未
* 执行 → **喂狗点 task_wd_poll 自身停摆**(假设 2:poller 被阻塞),而非某个被
* 监视任务饿死。RAM 态随复位消失、串口又可能来不及打,故需要一条**复位后仍可读**
* 的"defaultTask 主循环最后走到哪一段"轨迹。
* 背景(2026-10-02 台架 round 7~8 取证,完整链条见
* docs/子系统设计/看门狗设计说明.md 2026-10-02 变更记录):误复位时判定分支(STALL)从未
* 执行,当时判为**喂狗点 task_wd_poll 自身停摆**(round 8b 已更正:真因是 IWDG 超时
* 被静默配成复位默认值),而非某个被监视任务饿死。RAM 态随复位消失、串口又可能来不及打,
* 故需要一条**复位后仍可读**的"defaultTask 主循环最后走到哪一段"轨迹。
*
* 实现:轨迹槽放在 .noinit(scatter 的 UNINIT 执行区,见
* MDK-ARM/STM32F407-Demo/STM32F407-Demo.sct 的 UNINIT_CCM)——IWDG/引脚复位
@@ -152,7 +153,8 @@ void task_wd_tick_snapshot(void);
* 限定条件:TIM7 中断上下文调用(`HAL_TIM_PeriodElapsedCallback` 内,每 1ms)
* 函数说明:更新 cur 槽 = [magic, uwTick, 本轮 TIM7 中断计数, 0](纯 SRAM 写,无阻塞)。
* 与 task_wd_seg 的"进段打点"配合,复位后由 task_wd_seg_report() 上报。
* 背景(实机测试规划.md §0.5.4.3 第 2 条):HAL_UART_Transmit 的超时判据
* 背景(2026-10-02 台架 round 8b 取证,见 docs/子系统设计/看门狗设计说明.md
* 2026-10-02 变更记录):HAL_UART_Transmit 的超时判据
* 依赖 uwTick,时间源停摆即死等——必须先把"TIM7 是否停摆"钉死再定向修复。
* ⚠ **本函数内严禁调用任何 FreeRTOS/CMSIS-RTOS API**:TIM7 在 HAL_Init
* 阶段即开始中断(远早于 xPortStartScheduler),此时 ISR 版内核 API 会触发