An open API service indexing awesome lists of open source software.

https://github.com/mp-se/esp32s2_coredump

esp32s2 example for how to use the coredump feature
https://github.com/mp-se/esp32s2_coredump

coredump esp32 esp32s2

Last synced: 9 months ago
JSON representation

esp32s2 example for how to use the coredump feature

Awesome Lists containing this project

README

          

This is an example on how to get exception (core dump) data from a crashed ESP32S2. The easy way is to use a debugger but this might happend when you dont have a debugger attached so this is a good way to capture that error in a production environment.

Core dump is enabled by default but there needs to be a core dump partition for it to work as in the below example.

```
# Name,Type,SubType,Offset,Size,Flags
nvs,data,nvs,0x9000,0x5000
otadata,data,ota,0xe000,0x2000
app0,app,ota_0,0x10000,0x1c0000
app1,app,ota_1,0x1d0000,0x1c0000
spiffs,data,spiffs,0x390000,0x60000
coredump,data,coredump,0x3F0000,0x10000
```

Use the PC value to find out the adress where it crashed.

Create a dump of the elf file to see what line of code caused the crash. This path might vary depending on what version you have installed.

```
\packages\toolchain-xtensa-esp32s2\bin\xtensa-esp32s2-elf-objdump.exe -S .\firmware.elf > dump.txt
```

On my device the crash was on adress; 0x40081746 and this points to the line of code that casused it to crash.

```
Serial.println("Crashing....");
40081734: fa4ab1 l32r a11, 4008005c <_stext+0x3c>
40081737: fa3ba1 l32r a10, 40080024 <_stext+0x4>
4008173a: 000f25 call8 4008182c <_ZN5Print7printlnEPKc>
delay(500);
4008173d: f4a1a2 movi a10, 0x1f4
40081740: 0099a5 call8 400820dc
*ptr = 0x10; // Cause crash
40081743: 00a082 movi a8, 0
40081746: 10a092 movi a9, 16
40081749: 004892 s8i a9, a8, 0
```

Happy debugging.