MyIsunny

 

ESP-IDF 开发esp32s3时的开发报错解决

最近开发esp32,突然意识到,有些报错感觉值得记录下来,于是有本篇,不仅供我记录,同时也可以给大家参考

本系列会一直更新

一.2026/1/4 看门狗超时错误
报错详情:
E (80779) task_wdt: Task watchdog got triggered. The following tasks/users did not reset the watchdog in time: E (80779) task_wdt: - IDLE0 (CPU 0) E (80779) task_wdt: Tasks currently running: E (80779) task_wdt: CPU 0: main E (80779) task_wdt: CPU 1: IDLE1 E (80779) task_wdt: Print CPU 0 (current core) backtrace
问题原因
while(1) 死循环中没有任何延迟,导致主任务一直占用 CPU,IDLE 任务无法运行,触发看门狗超时。

解决方案
在循环中添加了 vTaskDelay(pdMS_TO_TICKS(1000)),每秒让出一次 CPU 时间,让 IDLE 任务可以运行。

二, FreeRTOS 任务函数不能直接返回
E (1834) FreeRTOS: FreeRTOS Task "afe_sr_iface_ta" should not return, Aborting now!
问题原因
FreeRTOS 任务函数执行完毕后直接返回,触发系统中止。FreeRTOS 任务有两种正确的结束方式:
无限循环 - 任务永远运行(最常用)
主动删除 - 调用 vTaskDelete(NULL) 删除自己

解决方案
添加了 while(1) 无限循环
循环中添加了 vTaskDelay() 避免占满 CPU

对单片机感兴趣但时常因为一个bug解决不了的,建议加群,我喜欢聚在一起唠嗑,有写好的有趣的小demo我也会分享在群里哦

获取方式:qq群1079267694

posted on 2026-01-27 11:26  MyIsunny  阅读(6)  评论(0)    收藏  举报

导航