fix(ui): Task #32 P0/P1/P2 — 解耦 UI 心跳、修 adc 压环与截止期、加测量探针

Task #32 UI 看门狗停摆(docs/问题记录/UI任务看门狗停摆分析.md)

P0 adc_task.c(已上板验证):
- 仅 r==1 才压环+重算;上板印证 ring==frames(修前 ring=frames+idle)
- osDelayUntil 返回值重同步,落后拉回基准,解除永久空转死锁

P1-4a ui_task.c v1.3: task_wd_beat 提到 ui_net_sink_poll 之前
  → 心跳测"UI 活着"而非"netTask 响应",解开 §4.2 心跳依赖
  → 未上 P1-3(提优先级会掩盖 §4.2/§4.4);P1-5 暂缓

P2 新增 App/util/task_prof.c/.h: DWT 常开探针,测各任务周期/耗时/
  推流往返/ADC 轮询/控制台排空/syslog 落盘/net_poll 最坏值;心跳位图
  1→0 边沿裸 UART 直发 [PROF]/[PROF2] 快照;uvprojx 已登记

doc: 分析 doc §7 补良性启动 episode 与复位非诊断项;§8 加处置落地
验证: P0+P1 累计 32 次上板启动 0/32 复现(原 L2 基线 3/10),构建 0/0
This commit is contained in:
2026-10-10 19:06:06 +08:00
parent 28bd391035
commit 3b1d0308d8
9 changed files with 623 additions and 14 deletions
+8
View File
@@ -18,6 +18,9 @@
* freertos.c USER CODE 区重复创建已删除
* v1.7 2026-10-02 王建锋 P1-8:初始组网失败/重建失败 → 自检记录 + 30s 周期重试
* (原实现:初始失败 = netTask 无限驻留;重建失败 = 静默丢配置)
* v1.8 2026-10-10 王建锋 Task #32 的 P2 测量埋点:net_poll() 单独计时——
* 本任务每 ~1ms 分派一次消息队列,若驱动轮询被拉长,
* 其它任务(尤其 UI 的 net_accept 往返)的等待随之拉长
*/
#include <string.h>
@@ -31,6 +34,7 @@
#include "sys_log.h"
#include "test_config.h" /* 测试模式宏(ENABLE_HW_LAYER_TESTS);产品构建全未定义,无作用 */
#include "task_watchdog.h"
#include "task_prof.h" /* P2 探针:net_poll 耗时(Task #32) */
#define DBG_TAG "[NET_TASK]"
#include "dbg_log.h"
@@ -267,7 +271,11 @@ void net_task_func(void const *arg) {
}
}
/* P2 探针:驱动轮询单独计时。本循环每 ~1ms 一次,是 netTask 回执
* (UI 的 net_accept 在等它)的节奏来源;此值变大 = UI 心跳被拖长 */
task_prof_enter(TASK_PROF_NET_POLL);
net_poll();
task_prof_exit(TASK_PROF_NET_POLL);
net_process_messages();
osDelay(1);
}