The backtrace cannot be given because it relies on the validity
of the qstr data structures on the heap which may have been
In fact, it still can crash hard when the bytecode itself is
overwritten. To fix, we'd need a way to skip gathering the
This also increases the default stack size on M4s so it can
accomodate the stack needed by ASF4s nvm API.
We now track the last time the background task ran and bail on the
PulseIn if it starves the background work. In practice, this
happens after the numbers from pulsein are no longer accurate.
This also adjusts interrupt priorities so most are the lowest level
except for the tick and USB interrupts.
Fixes#516 and #876