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:
@@ -116,13 +116,14 @@ static void start_and_clear(void) {
|
||||
s_feed_count = 0;
|
||||
}
|
||||
|
||||
/* 全员置位(默认必需掩码 0x37 = bit0|1|2|4|5) */
|
||||
/* 全员置位(默认必需掩码 0x77 = bit0|1|2|4|5|6,含 adcTask) */
|
||||
static void beat_all(void) {
|
||||
task_wd_beat(TASK_WD_DEFAULT);
|
||||
task_wd_beat(TASK_WD_NET);
|
||||
task_wd_beat(TASK_WD_FTP);
|
||||
task_wd_beat(TASK_WD_UI);
|
||||
task_wd_beat(TASK_WD_TIMESYNC);
|
||||
task_wd_beat(TASK_WD_ADC);
|
||||
}
|
||||
|
||||
/* ===================== 用例 ===================== */
|
||||
@@ -151,7 +152,7 @@ static void tc_003_all_beat_feeds(void) {
|
||||
beat_all();
|
||||
poll_advance(100);
|
||||
CHECK(s_feed_count == 1, "全员到位喂狗 1 次");
|
||||
CHECK(task_wd_last_mask() == 0x37u, "last_mask == 0x37(bit0|1|2|4|5)");
|
||||
CHECK(task_wd_last_mask() == 0x77u, "last_mask == 0x77(bit0|1|2|4|5|6)");
|
||||
}
|
||||
|
||||
static void tc_004_take_and_clear(void) {
|
||||
@@ -172,9 +173,10 @@ static void tc_005_mask_required(void) {
|
||||
task_wd_beat(TASK_WD_NET);
|
||||
task_wd_beat(TASK_WD_FTP);
|
||||
task_wd_beat(TASK_WD_TIMESYNC);
|
||||
task_wd_beat(TASK_WD_ADC);
|
||||
poll_advance(100);
|
||||
CHECK(s_feed_count == 0, "缺 UI 位 → 不喂狗");
|
||||
CHECK(task_wd_last_mask() == (0x37u & ~(1u << TASK_WD_UI)),
|
||||
CHECK(task_wd_last_mask() == (0x77u & ~(1u << TASK_WD_UI)),
|
||||
"last_mask 精确记录缺失位");
|
||||
}
|
||||
|
||||
@@ -250,7 +252,7 @@ static void tc_011_observers(void) {
|
||||
CHECK(task_wd_is_armed() == 1, "is_armed == 1(已启动)");
|
||||
beat_all();
|
||||
poll_advance(100);
|
||||
CHECK(task_wd_last_mask() == 0x37u, "last_mask 反映最近一次抽样");
|
||||
CHECK(task_wd_last_mask() == 0x77u, "last_mask 反映最近一次抽样");
|
||||
CHECK(task_wd_miss_count() == 0u, "全程达标 → miss_count == 0");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user