先确认是否真的“饿死”:用vTaskGetRunTimeStats或uxTaskGetSystemState观察IDLE1/WiFi任务(如wifi、tiT、ppTask)的运行时间占比,若IDLE1接近0且高优先级任务长期Ready,才是饿死。ESP32的WiFi协议栈默认跑在Core0,优先级约23(最高),通常不会被应用任务饿死;更常见的是应用任务在Core0上以高优先级忙等、关中断、长时间持锁(如portENTER_CRITICAL)或调用阻塞API,导致WiFi任务得不到调度。排查:1) 检查xTaskCreatePinnedToCore的优先级,应用任务不要高于WiFi任务,建议≤10;2) 避免在Core0跑重计算,把计算任务固定到Core1;3) 检查是否有死循环未vTaskDelay/yield;4) 用esp_task_wdt确认是否触发看门狗;5) 确认CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0与协议栈配置一致。配置上,WiFi任务优先级由协议栈内部固定,不应手动改;应用任务用中等优先级并加适当延时,必要时用vTaskPrioritySet动态调整。