Finally found an implementation of longjmp() and setjmp() for the Xtensa LX106 cpu. I tested it with the sample code from Wikipedia and got the expected results :-)
I was able to compile µGFX after applying some small changes to the header files. However, I would like to have a better understanding of the BareMetal threading mechanism. The ESP8266 SDK is based on callbacks and no methods should run longer than a few ms at most, otherwise the connectivity may be affected and the watchdog timer will be triggered.
So running a loop like this to keep the µGFX event system running is not an option:
while(TRUE) {
gfxSleepMilliseconds(500);
}
Could be calling _gfxYield()_ every ms via a timer callback be a better approach?
static Timer* _timer;
_timer = new Timer();
_timer->initializeMs(1, []() {
gfxYield() );
}).start();
Or is this not required at all to use µGFXl? Thank you very much for your help!
With kind regards,
Matthias