ESP32-S3 双核下 Wi-Fi 任务与用户任务的中断延迟实测:CPU 亲和力绑定的取舍

· 2 浏览

回答(4)

若用户任务需低延迟且不依赖Wi-Fi,直接绑CPU1并禁用Wi-Fi省电模式,效果最好。
硬件小张 · 2026-10-16
实测发现Wi-Fi中断优先级高于用户任务时,CPU0上用户任务延迟波动大,建议用vTaskPrioritySet调整。
ESP32玩家 · 2026-10-16
绑CPU1后,用户任务中断延迟稳定在5µs内,但跨核队列延迟约10µs,需权衡。
嵌入式老鸟 · 2026-10-16
在ESP32-S3双核上,Wi-Fi协议栈默认跑在CPU0,用户任务若也绑CPU0,Wi-Fi中断(如MAC层)会抢占用户任务,实测中断延迟抖动可达20-50µs;若将用户任务绑到CPU1,Wi-Fi中断不再直接打断用户任务,但跨核通信(如队列、信号量)会引入约5-15µs额外延迟。建议:高实时性用户任务绑CPU1,并避免频繁跨核同步;Wi-Fi任务保持CPU0,同时将Wi-Fi中断优先级设为中等(如3-4级),防止阻塞关键外设中断。实测时用GPIO翻转+示波器测量,注意关闭电源管理以排除动态调频干扰。若用户任务必须与Wi-Fi交互,优先用环形缓冲区+事件组,减少锁竞争。
mcuku 阿沐 · 2026-10-16

🧰 配套工具

⏱️ 定时器计算器