kopia lustrzana https://github.com/espressif/esp-idf
Bugfix - Panic Handler not halting when running on both cores
Bug occurs when core dump destination in menuconfig is set to flash. When programme crashes, xt_unhandled_exception or panicHandler will both trigger commonErrorHandler. commonErrorHandler calls esp_core_dump_to_flash which will attempt to use DPORT functions and hang due to trying to a stall and already stalled processor (already stalled in xt_unhandled_exception and panicHandler). Program will eventually be rebooted when wdt expires. Added esp_dport_access_int_deinit after calls to haltOtherCore() so that DPORT functions don't try to halt and already halted cpu hence preventing hang. Fixes TW#12944 https://github.com/espressif/esp-idf/issues/646pull/726/head
rodzic
7ed8c66547
commit
21f02a6955
|
@ -197,6 +197,7 @@ void panicHandler(XtExcFrame *frame)
|
|||
return;
|
||||
}
|
||||
haltOtherCore();
|
||||
esp_dport_access_int_deinit();
|
||||
panicPutStr("Guru Meditation Error: Core ");
|
||||
panicPutDec(core_id);
|
||||
panicPutStr(" panic'ed (");
|
||||
|
@ -244,6 +245,7 @@ void panicHandler(XtExcFrame *frame)
|
|||
void xt_unhandled_exception(XtExcFrame *frame)
|
||||
{
|
||||
haltOtherCore();
|
||||
esp_dport_access_int_deinit();
|
||||
if (!abort_called) {
|
||||
panicPutStr("Guru Meditation Error of type ");
|
||||
int exccause = frame->exccause;
|
||||
|
|
Ładowanie…
Reference in New Issue