[Solved]Guru Meditation Error: Core 0 panic'ed (Interrupt wdt timeout on CPU0)

Weskrauser
Posts: 9
Joined: Thu Sep 07, 2017 8:39 pm

[Solved]Guru Meditation Error: Core 0 panic'ed (Interrupt wdt timeout on CPU0)

Postby Weskrauser » Tue Jan 01, 2019 5:13 pm

Hello,

I'm facing this problem that happens sometimes in a no repeatable way :? .
I use platformIO with arduino framework to write code for the esp32 and I am using the 2 cores. This problem occurs on CPU0 only, here is the backtrace:

Code: Select all

Guru Meditation Error: Core  0 panic'ed (Interrupt wdt timeout on CPU0)
Core 0 register dump:
PC      : 0x4008134c  PS      : 0x00050034  A0      : 0x4008171c  A1      : 0x3ffc05e0  
A2      : 0x3ffc135c  A3      : 0x00000001  A4      : 0x00000001  A5      : 0x40087124  
A6      : 0x00000000  A7      : 0x3ffb4e34  A8      : 0x3ff50000  A9      : 0x00000001  
A10     : 0x00000000  A11     : 0x00000000  A12     : 0x3ff40000  A13     : 0x3ffb3540  
A14     : 0x3ffb0000  A15     : 0xbaad5678  SAR     : 0x00000018  EXCCAUSE: 0x00000005  
EXCVADDR: 0x00000000  LBEG    : 0x4000c28c  LEND    : 0x4000c296  LCOUNT  : 0x00000000  
Core 0 was running in ISR context:
EPC1    : 0x4000bff0  EPC2    : 0x00000000  EPC3    : 0x00000000  EPC4    : 0x4008134c

Backtrace: 0x4008134c:0x3ffc05e0 0x40081719:0x3ffc0610 0x4000bfed:0x00000000

Core 1 register dump:
PC      : 0x400813a8  PS      : 0x00050034  A0      : 0x4008171c  A1      : 0x3ffc0be0  
A2      : 0x00000000  A3      : 0x00000003  A4      : 0x00000001  A5      : 0x3ffc0be0  
A6      : 0x00000001  A7      : 0x00000000  A8      : 0x00000000  A9      : 0x00000000  
A10     : 0x00000000  A11     : 0x00000000  A12     : 0x3ff50000  A13     : 0x3ffc0bd0  
A14     : 0x3ffc0c18  A15     : 0x00000001  SAR     : 0x00000015  EXCCAUSE: 0x00000005  
EXCVADDR: 0x00000000  LBEG    : 0x4000c2e0  LEND    : 0x4000c2f6  LCOUNT  : 0xffffffff  

Backtrace: 0x400813a8:0x3ffc0be0 0x40081719:0x3ffc0c10 0x400832ff:0x00000000

Rebooting...
I tried to use exception decoder inside arduino IDE with selecting the firmware.elf generated by platformIO but it returns nothing I can use to debug:
Exception_decoder.png
Exception_decoder.png (44.76 KiB) Viewed 30798 times
I also read lots of posts dealing with these kind of problems and it was question of gdb and addr2line but I do not know how to use this kind of tools :shock:

Do you have any idea of the way to solve this pb?

Thanks in advance!
Last edited by Weskrauser on Thu Jan 03, 2019 10:12 pm, edited 1 time in total.

Weskrauser
Posts: 9
Joined: Thu Sep 07, 2017 8:39 pm

Re: Guru Meditation Error: Core 0 panic'ed (Interrupt wdt timeout on CPU0)

Postby Weskrauser » Wed Jan 02, 2019 8:19 pm

Hello,

I ran addr2line with the firmware.elf file:

Code: Select all

xtensa-esp32-elf-addr2line -pfiaC -e firmware.elf 0x4008134c
It returned:

Code: Select all

0x4008134c: _uart_isr at esp32-hal-uart.c:?
I think the problem is coming from this portion of code (because of "out of sync" uart buffer phenomenon that appears in some situations , I need to restart 1 uart peripheral and it seems to cause this error some times):

Code: Select all

SerialSBUS.end();
delay(10);
SerialSBUS.begin(BaudRate, SERIAL_8E1, RX_Pin, TX_Pin);
delay(10);
Does anybody have an explanation of this error or a test I could do to find a solution? :)

Thanks in advance

idahowalker
Posts: 166
Joined: Wed Aug 01, 2018 12:06 pm

Re: Guru Meditation Error: Core 0 panic'ed (Interrupt wdt timeout on CPU0)

Postby idahowalker » Thu Jan 03, 2019 12:59 pm

Yea, I got an idea or two, just having solved the Guru Meditation I was getting.

"EXCVADDR: 0x00000000" is a clue.

Refer to this page: https://docs.espressif.com/projects/esp ... rrors.html

I used freeRTOS and pinned taskings to a core.

Code: Select all

xTaskCreatePinnedToCore( fAlarm, "fAlarm", TaskStack10K, NULL, Priority4, NULL, TaskCore1 ); // assigned to core 1
By eliminating one task at a time that ran on core 0, the core that I was getitng the error on, I found that the Adafruit Ultimate GPS library was at fault. I changed to the TinyGPS++ library and all has been well. My project passed a 100 hour burn in test and is now being put onto a circuit board.

The process to find the error was long and tedious, so be paitent.

My error was "EXCVADDR: 0x00000001"

Weskrauser
Posts: 9
Joined: Thu Sep 07, 2017 8:39 pm

Re: Guru Meditation Error: Core 0 panic'ed (Interrupt wdt timeout on CPU0)

Postby Weskrauser » Thu Jan 03, 2019 10:10 pm

@idahowalker : thanks for your answer!

I did that and confirm that these two lines are the cause of my pb ^^:

Code: Select all

SerialSBUS.end();
delay(10);
SerialSBUS.begin(BaudRate, SERIAL_8E1, RX_Pin, TX_Pin);
delay(10);
I can not explain why but this is causing the wdt error if repeated, even with the delays. I now use SerialSBUS.flush() instead to reset the buffer and no more guru meditation :roll:

Also there is something really strange about uart2 the becomes out of sync after some time but it is another problem. I need to confirm this behavior with logic analyzer and I will submit this issue!

idahowalker
Posts: 166
Joined: Wed Aug 01, 2018 12:06 pm

Re: Guru Meditation Error: Core 0 panic'ed (Interrupt wdt timeout on CPU0)

Postby idahowalker » Sat Jan 05, 2019 1:48 am

Weskrauser wrote:
Thu Jan 03, 2019 10:10 pm
@idahowalker : thanks for your answer!

You are welcome.

Who is online

Users browsing this forum: No registered users and 65 guests