Generate stacktrace and reset exception for ctrl-c interrupt

Added code in mp_hal_delay_ms() to generate stacktrace and reset exception for ctrl-c interrupt
This commit is contained in:
DavePutz 2020-06-19 19:02:43 -05:00 committed by GitHub
parent e381f593ff
commit 0b52359190
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 0 deletions

View File

@ -105,6 +105,12 @@ void mp_hal_delay_ms(mp_uint_t delay) {
if(MP_STATE_VM(mp_pending_exception) == MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_kbd_exception)) ||
MP_STATE_VM(mp_pending_exception) == MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_reload_exception)) ||
WATCHDOG_EXCEPTION_CHECK()) {
if(MP_STATE_VM(mp_pending_exception) == MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_kbd_exception)))
{
// clear exception and generate stacktrace
MP_STATE_VM(mp_pending_exception) = MP_OBJ_NULL;
nlr_raise(mp_obj_new_exception(&mp_type_KeyboardInterrupt));
}
break;
}
remaining = end_tick - port_get_raw_ticks(NULL);