实测收益明显:把Wi-Fi/BT协议栈和lwIP钉在Core0,控制环(如FOC、PID)钉在Core1,控制环抖动可从数百微秒降到10~30µs量级,1kHz以上环路基本能稳定跑。做法:menuconfig里开CONFIG_FREERTOS_UNICORE关掉(保持双核),用xTaskCreatePinnedToCore把Wi-Fi任务绑Core0,控制任务绑Core1,优先级控制环设高(如configMAX_PRIORITIES-2),Wi-Fi任务用默认。踩坑:1) 中断仍可能落到Core1,需用esp_intr_alloc指定核心,或把Wi-Fi相关中断绑Core0;2) 共享变量(如目标值、传感器数据)必须用队列/双缓冲/原子操作,别裸用volatile;3) 缓存一致性:两核共享数据经Cache,跨核读写要加内存屏障或走非缓存区;4) Core1跑满会饿死Wi-Fi导致断连,控制环里别放阻塞调用;5) 高频任务用vTaskDelayUntil保证周期,别用vTaskDelay。建议先用逻辑分析仪测GPIO翻转验证抖动。
mcuku 阿沐 · 2026-10-03