PxMatrix + ESPAsyncWebServer = Guru Meditation Errors ! A lot of them
Posted: Fri Apr 12, 2019 8:36 am
Hello !
OS: Linux Mint 17.1
Board: Wrover-B DevKitV4
Display: 2727 SMD P5 64x32
I am trying to serve some webpages using ESPAsyncWebServer library and to simultaneously use a LED Display using PxMatrix library.
Separately, the 2 libraries work perfectly, but together they screw up everything I've worked on for the past 3 months.
To update the display you just call `display_update_enable(true);`. Without it, you can't use the display at all. But for some reason, it doesn't work with `server.on();` and/or `server.begin();` from the ESPAsyncWebServer library.
Some errors I get:
Deleting `display_update_enable(true)` makes the webpages work, but it also renders the display useless.
I am hoping that somebody used ESPAsyncWebServer library on an ESP32 and also managed to use a LED Display simultaneously, and they have some piece of advice. Or maybe somebody with more experience than me can point out where the conflict happens.
Thank you !
OS: Linux Mint 17.1
Board: Wrover-B DevKitV4
Display: 2727 SMD P5 64x32
I am trying to serve some webpages using ESPAsyncWebServer library and to simultaneously use a LED Display using PxMatrix library.
Separately, the 2 libraries work perfectly, but together they screw up everything I've worked on for the past 3 months.
To update the display you just call `display_update_enable(true);`. Without it, you can't use the display at all. But for some reason, it doesn't work with `server.on();` and/or `server.begin();` from the ESPAsyncWebServer library.
Code: Select all
hw_timer_t * timer = NULL;
portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED;
uint8_t display_draw_time= 40;
void IRAM_ATTR display_updater(){
// Increment the counter and set the time of ISR
portENTER_CRITICAL_ISR(&timerMux);
display.display(display_draw_time);
portEXIT_CRITICAL_ISR(&timerMux);
}
void display_update_enable(bool is_enable){
if (is_enable) {
timer = timerBegin(0, 80, true);
timerAttachInterrupt(timer, &display_updater, true);
timerAlarmWrite(timer, 2000, true);
timerAlarmEnable(timer);
}
else {
timerDetachInterrupt(timer);
timerAlarmDisable(timer);
}
}
Code: Select all
Guru Meditation Error: Core 1 panic'ed (Cache disabled but cached memory region accessed)
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x40176858: bad00bad bad00bad bad00bad
Guru Meditation Error: Core 1 panic'ed (IllegalInstGuru Meditation Error: Core 1 panic'ed (Unhandled debug exception)
Debug exception reason: Stack canary watchpoint triggered ()
Guru Meditation Error: Core 1 panic'ed (Guru Meditation Error: Core 1 panic'ed (Double exception)
Guru Meditation Error: Core 1 panic'ed (Double exception)
���?���?���?���?Error: Core 1�@t��?d (Unhandled debug exception)
Debu�@6
���?���?���?���?Error: Core 1�@t��?d (pT�?
)
Debu�@6���?�␟ @�S�?'␌␃�? ��␔��?
I am hoping that somebody used ESPAsyncWebServer library on an ESP32 and also managed to use a LED Display simultaneously, and they have some piece of advice. Or maybe somebody with more experience than me can point out where the conflict happens.
Thank you !