Page 1 of 2

[已解决] 看门狗触发后如何重启esp32

Posted: Mon Jul 12, 2021 7:27 am
by zhangzuoyi
硬件:ESP32-WROOM-32U 模组
软件:IDF4.3
开发环境:windows10, vs code
问题
蓝牙和WIFI共存,通过ble或者mqtt收发数据,用WIFI收发数据久了(可能是几个小时,一天或者几天)会导致系统奔溃。系统奔溃时的现象是蓝牙信号找不到,定时任务死掉,只有UART在正常收数据。日志里会打印出看门狗触发,但esp32不会被重启。
日志
[0;31mE (7175936) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:[0m[2021-07-09 10:56:37.891]
[0;31mE (7175936) task_wdt: - IDLE (CPU 0)[0m[2021-07-09 10:56:37.897]
[0;31mE (7175936) task_wdt: Tasks currently running:[0m[2021-07-09 10:56:37.902]
[0;31mE (7175936) task_wdt: CPU 0: wifi[0m[2021-07-09 10:56:37.908]
[0;31mE (7175936) task_wdt: CPU 1: IDLE[0m[2021-07-09 10:56:37.913]
[0;31mE (7175936) task_wdt: Print CPU 0 (current core) backtrace[0m[2021-07-09 10:56:37.918]
[2021-07-09 10:56:37.918]
[2021-07-09 10:56:37.918]
Backtrace:0x4015280F:0x3FFBEA50 0x40082D99:0x3FFBEA70 0x4009CD49:0x3FFE2990 0x4009B77F:0x3FFE29B0 0x40097FE0:0x3FFE29D0 0x4009BBD3:0x3FFE29F0 0x40193093:0x3FFE2A20 0x4019530D:0x3FFE2A40 0x401BC1F2:0x3FFE2A60 0x40099BF6:0x3FFE2A80 0x40094765:0x3FFE2AB0 [2021-07-09 10:56:37.940]
[2021-07-09 10:56:37.940]
[0;31mE (7175936) task_wdt: Print CPU 1 backtrace[0m[2021-07-09 10:56:37.945]

期望
系统奔溃,看门狗触发时可以重启esp32

Re: 看门狗触发后如何重启esp32

Posted: Mon Jul 12, 2021 8:48 am
by jame113
您好, 找到处理方案了么? 我这边也出现同样的问题, 时间长了就会出现死机的情况。 最长20多天出现, 最短几个小时出现, 完全不知道怎么调试,没有思路😂

Re: 看门狗触发后如何重启esp32

Posted: Mon Jul 12, 2021 9:19 am
by ESP_Gargamel
这是任务看门狗,默认是不会重启的。但可以通过设置 Component config → Common ESP-related 下的 Invoke panic handler on Task Watchdog timeout,使其触发 panic,进行重启。

至于为何触发这个看门狗,需要另行分析。

Re: 看门狗触发后如何重启esp32

Posted: Mon Jul 12, 2021 9:40 am
by zhangzuoyi
jame113 wrote:
Mon Jul 12, 2021 8:48 am
您好, 找到处理方案了么? 我这边也出现同样的问题, 时间长了就会出现死机的情况。 最长20多天出现, 最短几个小时出现, 完全不知道怎么调试,没有思路😂
问题可能几天才出现一次,不好分析,先打算出问题时重启esp32来解决

Re: 看门狗触发后如何重启esp32

Posted: Tue Jul 13, 2021 3:40 am
by jame113
我的异常和您这个基本一致,异常如下, 也是不定期出现, 有时候30多天不连续工作正常, 有时候几小时就出现这个问题。
完全没有头绪, 我理解看门狗不应该是在触发时,esp32自动重启么?
手动重启的话, 生产可用性就太低了😂

Code: Select all

[0;31mE (56606349) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:[0m
[0;31mE (56606349) task_wdt:  - IDLE0 (CPU 0)[0m
[0;31mE (56606349) task_wdt: Tasks currently running:[0m
[0;31mE (56606349) task_wdt: CPU 0: wifi[0m
[0;31mE (56606349) task_wdt: CPU 1: IDLE1[0m
[0;31mE (56611349) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:[0m
[0;31mE (56611349) task_wdt:  - IDLE0 (CPU 0)[0m
[0;31mE (56611349) task_wdt: Tasks currently running:[0m
[0;31mE (56611349) task_wdt: CPU 0: wifi[0m
[0;31mE (56611349) task_wdt: CPU 1: IDLE1[0m


Re: 看门狗触发后如何重启esp32

Posted: Tue Jul 13, 2021 3:42 am
by jame113
多谢, 我试试。
ESP_Gargamel wrote:
Mon Jul 12, 2021 9:19 am
这是任务看门狗,默认是不会重启的。但可以通过设置 Component config → Common ESP-related 下的 Invoke panic handler on Task Watchdog timeout,使其触发 panic,进行重启。

至于为何触发这个看门狗,需要另行分析。

Re: 看门狗触发后如何重启esp32

Posted: Tue Jul 13, 2021 3:54 am
by ESP_Gargamel
两位,看门狗触发前,有何异常的 log?

Re: 看门狗触发后如何重启esp32

Posted: Tue Jul 13, 2021 3:57 am
by jame113
看不到全部的日志, 因为出故障的时间是不定的, 有时候很多天, 有时候几小时, 我串口连着调试过几次, 最长等待了3天, 都没有出问题。 但等到出问题时, 再去连接串口获取日志, 就只有上面的信息了。
所以出问题前的日志一直没拿到, 可以配置esp32存储出问题前的日志么?

我这边是15个esp32同时工作测试, 有时连续几天这么多设备都不出问题, 有时候一天几台出问题😂

ESP_Gargamel wrote:
Tue Jul 13, 2021 3:54 am
两位,看门狗触发前,有何异常的 log?

Re: 看门狗触发后如何重启esp32

Posted: Tue Jul 13, 2021 6:37 am
by ESP_Gargamel
你串口 log 可以在 PC 直接存到文件吗?不要等出问题了,再去查看。

Re: 看门狗触发后如何重启esp32

Posted: Tue Jul 13, 2021 7:56 am
by jame113
多谢。 我先用您上面发设置选项, 让task中断也重置试试, 如果还是不能解决, 我再搞一台电脑24小时连着串口测试。 之前连着等了3天都没出问题, 电脑要做其他用, 所以终止测试了😂

ESP_Gargamel wrote:
Tue Jul 13, 2021 6:37 am
你串口 log 可以在 PC 直接存到文件吗?不要等出问题了,再去查看。