控制台写者循环节奏500ms改50ms:日志时延收紧到50ms内,LED心跳与配置2s轮询改tick基准保持等效
This commit is contained in:
+15
-8
@@ -266,8 +266,10 @@ void StartDefaultTask(void *argument)
|
||||
DBG_INFO("[FS] mount/cfg skipped (STORAGE suite owns storage)");
|
||||
#endif
|
||||
|
||||
/* 配置 poll 周期计数(每 4 次循环 = 2s 轮询一次,与引擎文档/模拟器一致) */
|
||||
/* 配置 poll 周期计数(每 40 次循环 = 2s 轮询一次,与引擎文档/模拟器一致。
|
||||
* 循环基准 50ms:控制台"待发"事件即时唤醒,无事件时 50ms 兜底,日志时延 <=50ms) */
|
||||
uint32_t cfg_poll_cnt = 0u;
|
||||
uint32_t led_tick = HAL_GetTick();
|
||||
|
||||
/* 注册控制台写者:本任务此后是串口唯一发送者(其余任务只写环形缓冲)。
|
||||
* 见 Src/usart.c "控制台单写者日志"——消除并发写造成的日志逐字符交错,
|
||||
@@ -275,12 +277,12 @@ void StartDefaultTask(void *argument)
|
||||
dbg_console_writer_attach();
|
||||
|
||||
for (;;) {
|
||||
/* 等待"保存网络配置"或"控制台待发":任一即醒;无事件 500ms 后返回
|
||||
* (取代原 osDelay(500):循环节奏不变,保存/日志响应零空转) */
|
||||
/* 等待"保存网络配置"或"控制台待发":任一即醒;无事件 50ms 后返回
|
||||
* (日志时延 = 事件唤醒,实测无丢失;50ms 兜底仅防事件位异常) */
|
||||
if (sys_evtHandle != NULL) {
|
||||
(void)osEventFlagsWait(sys_evtHandle,
|
||||
SYS_EVT_CFG_SAVE | SYS_EVT_CONSOLE_TX,
|
||||
osFlagsWaitAny, 500u);
|
||||
osFlagsWaitAny, 50u);
|
||||
}
|
||||
/* 控制台唯一发送点:把环形缓冲中的日志按块发出(无待发时立即返回) */
|
||||
dbg_console_drain();
|
||||
@@ -289,7 +291,7 @@ void StartDefaultTask(void *argument)
|
||||
net_cfg_save_run();
|
||||
#endif
|
||||
/* 配置文件变更轮询(2s 周期;沉降去抖在引擎内) */
|
||||
if ((cfg_poll_cnt++ & 3u) == 0u) {
|
||||
if ((cfg_poll_cnt++ % 40u) == 0u) {
|
||||
#if !defined(TEST_SUITE_STORAGE)
|
||||
/* E-31 自愈:启动期挂载失败时,每 2s 重跑完整 bring-up——
|
||||
* 瞬态毛刺(如 dhara resume 扫描的瞬时 SPI 故障)通常第二次
|
||||
@@ -311,9 +313,14 @@ void StartDefaultTask(void *argument)
|
||||
cfg_file_poll();
|
||||
#endif
|
||||
}
|
||||
HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);
|
||||
HAL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin);
|
||||
HAL_GPIO_TogglePin(LED3_GPIO_Port, LED3_Pin);
|
||||
/* LED 心跳:500ms 翻转一次(与旧 500ms 循环节奏等效;循环基准改 50ms 后
|
||||
* 不能再每轮翻转,否则变成 10Hz 闪烁) */
|
||||
if ((HAL_GetTick() - led_tick) >= 500u) {
|
||||
led_tick = HAL_GetTick();
|
||||
HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);
|
||||
HAL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin);
|
||||
HAL_GPIO_TogglePin(LED3_GPIO_Port, LED3_Pin);
|
||||
}
|
||||
#if !defined(TEST_SUITE_STORAGE)
|
||||
/* 排空运行期日志(上电/重启分类与自检故障落盘) */
|
||||
syslog_drain();
|
||||
|
||||
Reference in New Issue
Block a user