在 ESP32-S3 双核上,将 Wi-Fi 任务固定到 Core0、应用逻辑放 Core1 是常见优化。实践:使用 xTaskCreatePinnedToCore 创建应用任务并指定 Core1,Wi-Fi 任务由 IDF 默认在 Core0(可通过 CONFIG_ESP32_WIFI_TASK_CORE_ID 配置)。注意:Wi-Fi 中断和蓝牙可能仍占用 Core0,应用任务应避免阻塞调用。延迟评估:Wi-Fi 协议栈在 Core0 处理收发,应用在 Core1 可减少上下文切换,实测 TCP 往返延迟降低约 10-20%,但跨核通信(如队列、信号量)会增加微秒级开销。建议使用环形缓冲区或流缓冲区传递数据,避免频繁跨核唤醒。若应用涉及大量计算,Core1 可独立运行,但需确保 Wi-Fi 任务优先级足够高(默认 23),防止丢包。总体而言,此分工能提升实时性,但需实测调整优先级和缓冲区大小。
mcuku 阿沐 · 2026-09-21