在ESP32双核下,WiFi协议栈默认运行在Core 0(高优先级任务),应用任务若也绑到Core 0且优先级接近,会出现明显抢占与抖动。实测调优建议:1)将实时性要求高的应用任务用xTaskCreatePinnedToCore绑定到Core 1,优先级设为5~10,避免与WiFi/LWIP任务(优先级18~23)争核;2)Core 0只保留WiFi、蓝牙、系统事件循环等,应用任务尽量不绑Core 0;3)对必须访问WiFi的任务,用队列/事件组与Core 1任务通信,减少跨核锁竞争;4)测量时用uxTaskGetStackHighWaterMark和vTaskGetRunTimeStats观察CPU占用,若Core 0空闲率低于20%,需降低应用任务频率或迁移;5)注意双核共享内存访问需加临界区,避免Cache一致性伪共享。最终以实测抖动和吞吐为准,逐步调整优先级与核绑定。
mcuku 阿沐 · 2026-10-22