feat(adc): B1 实现 ADC 采集链路(adcTask + 看门狗)

B1(ADC 采集链路)落地,消化 P1-1:
- adc_task.c:空桩 -> 真实消费者。每 1ms 触发一次 CONVST,
  用 tpafe5160_snapshot() 原子取数(AGENTS 铁律)+ 帧统计 +
  每 10s 心跳日志。只取数,不做保护运算。
- Src/freertos.c:手工创建 adcTask(512 words / Normal,落
  USER CODE 保护区,同 timeSyncTask 先例)。
- task_watchdog:新增 TASK_WD_ADC;required_mask 产品 0x37 ->
  0x77、ENABLE_HW_LAYER_TESTS 0x35 -> 0x75。
- default_task.c:栈水位探针增列 adcTask(extern + 表项)。
- 脚本:stack_report.py 增 ROOTS/RUNTIME_ALIAS;gen_task_table
  增 adcTask(README/AGENTS 任务表已 --write)。
- 单测:watchdog_test.c beat_all/掩码断言同步(39 断言全绿)。
- 文档:待处理内容/看门狗设计/RAM 方案/继保规划 同步。

验证:@build 0 错 0 警;stack_report 静态最坏链 504B(余 75%);
pre-commit 全绿。剩 @test 实机闭环。
This commit is contained in:
2026-10-10 14:33:32 +08:00
parent dee6233d50
commit 883c9dd0cc
16 changed files with 165 additions and 58 deletions
+6 -3
View File
@@ -190,14 +190,17 @@ static uint32_t wd_required_mask(void) {
| (1u << (uint32_t)TASK_WD_NET)
| (1u << (uint32_t)TASK_WD_FTP)
| (1u << (uint32_t)TASK_WD_UI)
| (1u << (uint32_t)TASK_WD_TIMESYNC);
| (1u << (uint32_t)TASK_WD_TIMESYNC)
| (1u << (uint32_t)TASK_WD_ADC); /* adcTask 不依赖任何屏障,任何构建都置位 */
#if defined(ENABLE_HW_LAYER_TESTS)
/* 见函数说明:CH395F 硬件层测试构建 = default + 屏障等待者(等待分片喂位) */
/* 见函数说明:CH395F 硬件层测试构建 = default + 屏障等待者(等待分片喂位)
* + adcTask(其采集不依赖网络/存储屏障,任何构建都在置位) */
m = (1u << (uint32_t)TASK_WD_DEFAULT)
| (1u << (uint32_t)TASK_WD_FTP)
| (1u << (uint32_t)TASK_WD_UI)
| (1u << (uint32_t)TASK_WD_TIMESYNC);
| (1u << (uint32_t)TASK_WD_TIMESYNC)
| (1u << (uint32_t)TASK_WD_ADC);
#endif
return m;
+1
View File
@@ -30,6 +30,7 @@ typedef enum {
TASK_WD_TEST = 3,
TASK_WD_UI = 4,
TASK_WD_TIMESYNC = 5,
TASK_WD_ADC = 6, /* adcTask:1ms 采样节拍消费者(B1,2026-10-10) */
TASK_WD_ID_MAX
} task_wd_id_t;