erst einmal vielen Dank an denjenigen, der für den Einbau des Begriffs „Guru Meditation“ verantwortlich war! Einfach genial, direkt in meine Kindheit zurückkatapultiert!
Ist bis jetzt nur einmal passiert, aber vielleicht kann damit jemand etwas anfangen und ggf. etwas am Code verbessern. Passiert ist dies beim Lesen eines ISO-15693 Tags.
VG
N [2734155] RFID-Karte erkannt: c0-43-87-14
N [2734155] Card type: ISO-15693Guru Meditation Error: Core 0 panic'ed (Unhandled debug exception).
Debug exception reason: Stack canary watchpoint triggered (rfid)
Core 0 register dump:
PC : 0x40090c2f PS : 0x00060036 A0 : 0x80091db8 A1 : 0x3ffb8490
A2 : 0x3ffbf2f8 A3 : 0xb33fffff A4 : 0x0000abab A5 : 0x00060023
A6 : 0x00060023 A7 : 0x0000cdcd A8 : 0xb33fffff A9 : 0xffffffff
A10 : 0x00000000 A11 : 0x3ffbea0c A12 : 0x3ffbea68 A13 : 0x00000016
A14 : 0x007bf2f8 A15 : 0x003fffff SAR : 0x00000004 EXCCAUSE: 0x00000001
EXCVADDR: 0x00000000 LBEG : 0x4008d3a1 LEND : 0x4008d3b1 LCOUNT : 0xffffffff
Backtrace: 0x40090c2c:0x3ffb8490 0x40091db5:0x3ffb84d0 0x40090704:0x3ffb8500 0x400906b4:0xa5a5a5a5 |<-CORRUPTED
#0 0x40090c2c:0x3ffb8490 in compare_and_set_native at C:\Users\xxx\.platformio\packages\framework-espidf\components\esp_hw_support\include/soc/compare_set.h:25
(inlined by) spinlock_acquire at C:\Users\xxx\.platformio\packages\framework-espidf\components\esp_hw_support\include/soc/spinlock.h:103
(inlined by) xPortEnterCriticalTimeout at C:\Users\xxx\.platformio\packages\framework-espidf\components\freertos\port\xtensa/port.c:301
#1 0x40091db5:0x3ffb84d0 in vPortEnterCritical at C:\Users\xxx\.platformio\packages\framework-espidf\components\freertos\port\xtensa\include/freertos/portmacro.h:578
(inlined by) vTaskSwitchContext at C:\Users\xxx\.platformio\packages\framework-espidf\components\freertos/tasks.c:3458
#2 0x40090704:0x3ffb8500 in _frxt_dispatch at C:\Users\xxx\.platformio\packages\framework-espidf\components\freertos\port\xtensa/portasm.S:436
#3 0x400906b4:0xa5a5a5a5 in _frxt_int_exit at C:\Users\xxx\.platformio\packages\framework-espidf\components\freertos\port\xtensa/portasm.S:231
ELF file SHA256: 16cfb6c59caed0b6
E (14129) esp_core_dump_flash: Core dump flash config is corrupted! CRC=0x7bd5c66f instead of 0x0
Rebooting...
@Expello trat der Fehler im Master oder DEV-Zweig auf?
Weil in der aktuellen DEV-Version wurden nochmal 500 Bytes an Stackspeicher für den RFID-Task eingespart.
Bei mir beobachte ich gelegentlich auch kurze boot loops aufgrund von Stack cannary watchpoints im rfid task. Tritt bei mir aktuell nur nach einem hard reset nach einem firmware flash auf, dann teilweise bis zu 5 Resets hintereinander. Bei den Sinnvollen Stack Traces war der Log_Printf(LOGLEVEL_DEBUG, "PN5180 firmware version=%d.%d", firmwareVersion[1], firmwareVersion[0]); Aufruf die letztendliche Ursache.
Stecke im RFID Code noch gar nicht drin. Gibt es da irgendwas, was rekursiv Aufgerufen wird oder dynamisch Stack Speicher allokiert? Hätte aktuell nur irgendwelche timing Probleme bei der Initialisierung nach einem Reset im Verdacht.
Aktueller dev mit 500 byte Stack Optimierung, wovon aber aber 200 wieder für einen größeren Log_Printf buffer drauf gegangen sind
Nö, nix, innerhalb der PN5180-Bibliothek nur reine SPI Kommunikation. Habe jetzt noch keine Idee woran es liegen könnte, werde mal mal hier nachmessen.
Edit: Konnte es nicht wirklich reproduzieren. Wenn kein PN5180 dranhängt waren nur 44 Bytes frei. Habe jetzt den Stack um 128 Bytes erhöht. Meldet Euch wenn das Problem nochmal auftaucht.
Ich habe denselben Fehler mit meinem ESP32-S3.
Eigentlich hat der immer funktioniert, dann wollte ich die CPU-Frequnz von 160 auf 240 erhöhen und habe auf den aktuellen dev-Branch aktualisiert und der Fehler kam. Nach einem erase_flash bleibt er außerdem permanent, egal bei welche Frequenz. Das Board bootet nun nur noch, wenn ich den PN5180 abklemme.
Es scheint irgendeine Wechselwirkung mit dem Wifi zu sein… Nach 3 Stunden Rumprobieren und schrittweisem Erhöhen des Stacks scheint es jetzt erstmal zu funktionieren.
Trotzdem wild. Manchmal geht’s direkt nach dem Flashen aber nach einem Reboot nicht mehr, manchmal nach einem Reset, dann ist wieder alles ok. Also leider wirklich schwierig nachstellbar.