aboutsummaryrefslogtreecommitdiff
path: root/stmhal/main.c
diff options
context:
space:
mode:
authorDave Hylands2014-07-01 23:46:53 -0700
committerDave Hylands2014-07-25 14:00:06 -0700
commit5b7fd20fea6d4329bb3ab45f63df41f46f242688 (patch)
tree10f806ab0d883bc6c087cc22b55b787adbdcf815 /stmhal/main.c
parent05c255f039b5c0fbdcb0754748fd5d36135acfd9 (diff)
Add support for storing args during an exception raised by an irq.
The user code should call micropython.alloc_emergency_exception_buf(size) where size is the size of the buffer used to print the argument passed to the exception. With the test code from #732, and a call to micropython.alloc_emergenncy_exception_buf(100) the following error is now printed: ```python >>> import heartbeat_irq Uncaught exception in Timer(4) interrupt handler Traceback (most recent call last): File "0://heartbeat_irq.py", line 14, in heartbeat_cb NameError: name 'led' is not defined ```
Diffstat (limited to 'stmhal/main.c')
-rw-r--r--stmhal/main.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/stmhal/main.c b/stmhal/main.c
index 9e1798b3b..2cc463462 100644
--- a/stmhal/main.c
+++ b/stmhal/main.c
@@ -119,6 +119,14 @@ void MP_WEAK __assert_func(const char *file, int line, const char *func, const c
}
#endif
+void enable_irq(void) {
+ __enable_irq();
+}
+
+void disable_irq(void) {
+ __disable_irq();
+}
+
STATIC mp_obj_t pyb_config_source_dir = MP_OBJ_NULL;
STATIC mp_obj_t pyb_config_main = MP_OBJ_NULL;
STATIC mp_obj_t pyb_config_usb_mode = MP_OBJ_NULL;
@@ -302,6 +310,9 @@ soft_reset:
// GC init
gc_init(&_heap_start, &_heap_end);
+#if MICROPY_ENABLE_EMERGENCY_EXCEPTION_BUF
+ mp_init_emergency_exception_buf();
+#endif
// Change #if 0 to #if 1 if you want REPL on UART_6 (or another uart)
// as well as on USB VCP