Some additions were made to report the source of crashes on the board.
Recognized crashes are
* bus faults
* memory faults
* excessive uncooperative CPU usage in the DSP thread
* brownout reset
Excessive uncooperative CPU consumption in lower priority threads (like in a script/script2 object) is not recognized, but could also appear like a crash.
It works like this: when a crash occurs, an attempt is made to store the source of the crash in memory, sound is muted, and the USB port is released for one second causing the computer to recognize a USB detach event, and then the board reboots by itself, causing the computer to see a USB attach event again.
The connection in the GUI will be lost, but if you engage it again, you'll get a report of the source of the crash in the log window.
A boot after a crash will automatically also prevent loading a startup-patch (internal flash or sdcard).
There is no reason to unplug the board after such a recognized crash, by doing so the board will forget about the crash.
For example, running the patch patches/tests/unsorted/exception results in this report:
Axoloti says: exception report:
Axoloti says: pc=0x102D6
Axoloti says: psr=0x81000000
Axoloti says: lr=0x102CF
Axoloti says: r12=0x80208B1
Axoloti says: cfsr=0x8200
Axoloti says: bfar=0x3000000
Technical details of how to interpret these values can be found in DM00046982.pdf
If you happen to get such crashes unexpectedly, please post!
thanks,
Johannes