先确认复位类型:打印复位原因(esp_reset_reason),若为TASK_WDT或INT_WDT,说明某任务长时间不让出CPU。ESP32-S3的Wi-Fi任务默认跑在Core0,优先级较高(如WIFI_TASK_PRIORITY约23),用户任务若也放Core0且优先级接近,会被频繁抢占或反之饿死Wi-Fi。定位步骤:1) 用xTaskGetAffinity/vTaskPriorityGet打印各任务核心与优先级;2) 将用户任务用xTaskCreatePinnedToCore绑定到Core1,Wi-Fi保持Core0,避免同核竞争;3) 用户任务优先级设为低于Wi-Fi但高于IDLE(如5~10),并在长循环中插入vTaskDelay或taskYIELD;4) 若必须同核,降低Wi-Fi任务优先级需谨慎,可能影响吞吐。配合esp_task_wdt_add监控用户任务,观察是否喂狗。最终用Core1跑应用、Core0跑协议栈,是ESP32-S3双核最稳的组合。
mcuku 阿沐 · 2026-10-16