-
Notifications
You must be signed in to change notification settings - Fork 7.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fatal Error not reboot (IDFGH-13506) #14400
Comments
it's possible that the issue you're encountering could be related to strapping pins, especially considering the specific context of the ESP32 microcontroller. Strapping pins are used on the ESP32 to determine the boot mode and other initial configuration settings at startup. Incorrect settings or issues with these pins can lead to abnormal behavior, including failures during boot or operation. Can you test the same code on a dev board and try to reproduce the crash |
Hmm, never seen a looping panic print like this. Actually, looking at the register values some of them seem wrong/impossible?
Are you able to show me this function? Do the error still happen if you dont use this one? Any more information/logs you could provide would be helpful. |
Did you by any chance disable logs? If we get a task WDT and If logs are also disabled then you'll miss the message telling you what is actually happening, i.e. a WDT. |
@ESP-Marius Thanks for the replies.
We do disable some of the logs:
We also had the
Here it is:
The error stills happens even with the function activated or not. |
@offgrid88 That couldn’t be it. We just checked those, and if they were the strapping pins, the microcontroller wouldn’t even start. But thanks! |
Yeah, this explains it. What you are seeing here is the task wdt triggering (so not an actual fatal error). But since the log is turned off you dont see all the output from it. You can try with |
@ESP-Marius Thanks for the fix! Will you be adding this commit to the v5.2.2? Thanks! |
Answers checklist.
IDF version.
v5.2.2-526-g3cd08fff66
Espressif SoC revision.
ESP32-C6
Operating System used.
macOS
How did you build your project?
Command line with idf.py
If you are using Windows, please specify command line type.
None
Development Kit.
Custom Board
Power Supply used.
External 3.3V
What is the expected behavior?
When we encounter cases where the chip prints the following message:
`
Print CPU 0 (current core) registers
Stack dump detected
Core 0 register dump:
MEPC : 0x4080a6d6 RA : 0x4080a6c0 SP : 0x4083da80 GP : 0x40821c50
0x4080a6d6: vPortYield at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c:652 (discriminator 1)
(inlined by) vPortYield at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c:627 (discriminator 1)
0x4080a6c0: vPortYield at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c:652 (discriminator 2)
(inlined by) vPortYield at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c:627 (discriminator 2)
TP : 0x408039a4 T0 : 0x40022494 T1 : 0x408099de T2 : 0x31313131
0x408039a4: esp_flash_read_encrypted at /Users/andres/esp/esp-idf/components/spi_flash/esp_flash_api.c:1134
0x40022494: multi_heap_internal_unlock in ROM
0x408099de: xQueueGenericSend at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/queue.c:1144
S0/FP : 0x4083ba48 S1 : 0xffffffff A0 : 0x00000000 A1 : 0x00000001
A2 : 0x4082c000 A3 : 0x4082c000 A4 : 0x600c5090 A5 : 0x00000000
A6 : 0x000052d1 A7 : 0xffff0fff S2 : 0x00000000 S3 : 0x4083dad8
S4 : 0x00000000 S5 : 0x40880000 S6 : 0x40880000 S7 : 0x40880000
S8 : 0x40880000 S9 : 0x00000000 S10 : 0x00000000 S11 : 0x00000000
T3 : 0x600a4d68 T4 : 0x0fffffff T5 : 0x00010001 T6 : 0x00110000
MSTATUS : 0x00000000 MTVEC : 0xffffffff MCAUSE : 0x4083ba48 MTVAL : 0x4080a016
0x4080a016: xQueueReceive at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/queue.c:1659
MHARTID : 0x40880000
Print CPU 0 (current core) registers
Core 0 register dump:
MEPC : 0x4080a6d6 RA : 0x4080a6c0 SP : 0x4083da80 GP : 0x40821c50
0x4080a6d6: vPortYield at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c:652 (discriminator 1)
(inlined by) vPortYield at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c:627 (discriminator 1)
0x4080a6c0: vPortYield at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c:652 (discriminator 2)
(inlined by) vPortYield at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c:627 (discriminator 2)
TP : 0x408039a4 T0 : 0x40022494 T1 : 0x408099de T2 : 0x31313131
0x408039a4: esp_flash_read_encrypted at /Users/andres/esp/esp-idf/components/spi_flash/esp_flash_api.c:1134
0x40022494: multi_heap_internal_unlock in ROM
0x408099de: xQueueGenericSend at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/queue.c:1144
S0/FP : 0x4083ba48 S1 : 0xffffffff A0 : 0x00000000 A1 : 0x00000001
A2 : 0x4082c000 A3 : 0x4082c000 A4 : 0x600c5090 A5 : 0x00000000
A6 : 0x000052d1 A7 : 0xffff0fff S2 : 0x00000000 S3 : 0x4083dad8
S4 : 0x00000000 S5 : 0x40880000 S6 : 0x40880000 S7 : 0x40880000
S8 : 0x40880000 S9 : 0x00000000 S10 : 0x00000000 S11 : 0x00000000
T3 : 0x600a4d68 T4 : 0x0fffffff T5 : 0x00010001 T6 : 0x00110000
MSTATUS : 0x00000000 MTVEC : 0xffffffff MCAUSE : 0x4083ba48 MTVAL : 0x4080a016
0x4080a016: xQueueReceive at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/queue.c:1659
MHARTID : 0x40880000
Print CPU 0 (current core) registers
Core 0 register dump:
MEPC : 0x4080a6d6 RA : 0x4080a6c0 SP : 0x4083da80 GP : 0x40821c50
0x4080a6d6: vPortYield at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c:652 (discriminator 1)
(inlined by) vPortYield at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c:627 (discriminator 1)
0x4080a6c0: vPortYield at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c:652 (discriminator 2)
(inlined by) vPortYield at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c:627 (discriminator 2)
TP : 0x408039a4 T0 : 0x40022494 T1 : 0x408099de T2 : 0x31313131
0x408039a4: esp_flash_read_encrypted at /Users/andres/esp/esp-idf/components/spi_flash/esp_flash_api.c:1134
0x40022494: multi_heap_internal_unlock in ROM
0x408099de: xQueueGenericSend at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/queue.c:1144
S0/FP : 0x4083ba48 S1 : 0xffffffff A0 : 0x00000000 A1 : 0x00000001
A2 : 0x4082c000 A3 : 0x4082c000 A4 : 0x600c5090 A5 : 0x00000000
A6 : 0x000052d1 A7 : 0xffff0fff S2 : 0x00000000 S3 : 0x4083dad8
S4 : 0x00000000 S5 : 0x40880000 S6 : 0x40880000 S7 : 0x40880000
S8 : 0x40880000 S9 : 0x00000000 S10 : 0x00000000 S11 : 0x00000000
T3 : 0x600a4d68 T4 : 0x0fffffff T5 : 0x00010001 T6 : 0x00110000
MSTATUS : 0x00000000 MTVEC : 0xffffffff MCAUSE : 0x4083ba48 MTVAL : 0x4080a016
0x4080a016: xQueueReceive at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/queue.c:1659
MHARTID : 0x40880000
Print CPU 0 (current core) registers
Core 0 register dump:
MEPC : 0x4080a6d6 RA : 0x4080a6c0 SP : 0x4083da80 GP : 0x40821c50
0x4080a6d6: vPortYield at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c:652 (discriminator 1)
(inlined by) vPortYield at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c:627 (discriminator 1)
0x4080a6c0: vPortYield at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c:652 (discriminator 2)
(inlined by) vPortYield at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/port.c:627 (discriminator 2)
TP : 0x408039a4 T0 : 0x40022494 T1 : 0x408099de T2 : 0x31313131
0x408039a4: esp_flash_read_encrypted at /Users/andres/esp/esp-idf/components/spi_flash/esp_flash_api.c:1134
0x40022494: multi_heap_internal_unlock in ROM
0x408099de: xQueueGenericSend at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/queue.c:1144
S0/FP : 0x4083ba48 S1 : 0xffffffff A0 : 0x00000000 A1 : 0x00000001
A2 : 0x4082c000 A3 : 0x4082c000 A4 : 0x600c5090 A5 : 0x00000000
A6 : 0x000052d1 A7 : 0xffff0fff S2 : 0x00000000 S3 : 0x4083dad8
S4 : 0x00000000 S5 : 0x40880000 S6 : 0x40880000 S7 : 0x40880000
S8 : 0x40880000 S9 : 0x00000000 S10 : 0x00000000 S11 : 0x00000000
T3 : 0x600a4d68 T4 : 0x0fffffff T5 : 0x00010001 T6 : 0x00110000
MSTATUS : 0x00000000 MTVEC : 0xffffffff MCAUSE : 0x4083ba48 MTVAL : 0x4080a016
0x4080a016: xQueueReceive at /Users/andres/esp/esp-idf/components/freertos/FreeRTOS-Kernel/queue.c:1659
MHARTID : 0x40880000 `
What is the actual behavior?
Instead, it keeps printing the same message.
We have a function that detects if there is no more memory or if there are memory leaks and restarts the system at 75KB.
We also have the CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT configuration set in the sdkconfig.
We are trying to find a method that detects these types of panics and restarts the system, but we haven’t found any in the documentation. We want this as a backup solution.
We do not use the vPortYield function nor xQueueReceive in our code.
Steps to reproduce.
We actually do not know what triggers this error. However, it happens when the chip has been running for at least 24 hours or more.
The firmware runs a WiFi-Mesh using the base of MDF-MWifi. and the board also has 8 sensors. and they send all this information to our Root.
Debug Logs.
More Information.
We have tried with many versions of esp idf and in the end it always fails.
The text was updated successfully, but these errors were encountered: