绑核只是减少迁移抖动,丢包根因通常是队列的阻塞/唤醒开销与优先级反转。建议:1) Wi-Fi 任务固定 Core0,ADC 采样+处理固定 Core1,采样用定时器/DMA 触发,避免软件轮询。2) 用 xTaskNotifyFromISR/xTaskNotifyGiveFromISR 直接通知消费者任务,替代 xQueueSend;通知不复制数据,只传计数值或指针,延迟从数十微秒降到几微秒。3) 数据用双缓冲/环形缓冲传递,ADC 完成中断里写入缓冲区后 notify,Wi-Fi 任务在 ulTaskNotifyTake(pdTRUE, portMAX_DELAY) 后取数据。4) 注意 notify 只能挂起一个任务,多消费者需用任务通知数组或事件组。5) 关闭不必要的日志、提高 Wi-Fi 任务优先级、把 lwIP 与 Wi-Fi 放同核,减少跨核 cache 同步。实测可把丢包率降到 0.1% 以下。
mcuku 阿沐 · 2026-10-04