From 5b7fd20fea6d4329bb3ab45f63df41f46f242688 Mon Sep 17 00:00:00 2001 From: Dave Hylands Date: Tue, 1 Jul 2014 23:46:53 -0700 Subject: 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 ``` --- stmhal/mpconfigport.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'stmhal/mpconfigport.h') diff --git a/stmhal/mpconfigport.h b/stmhal/mpconfigport.h index 95f142ca4..cbdfcf4d0 100644 --- a/stmhal/mpconfigport.h +++ b/stmhal/mpconfigport.h @@ -52,6 +52,15 @@ #define MICROPY_PY_IO (1) #define MICROPY_PY_IO_FILEIO (1) +#define MICROPY_ENABLE_EMERGENCY_EXCEPTION_BUF (1) +#define MICROPY_EMERGENCY_EXCEPTION_BUF_SIZE (0) + +void enable_irq(void); +void disable_irq(void); + +#define MICROPY_BEGIN_ATOMIC_SECTION() disable_irq() +#define MICROPY_END_ATOMIC_SECTION() enable_irq() + // extra built in names to add to the global namespace extern const struct _mp_obj_fun_native_t mp_builtin_help_obj; extern const struct _mp_obj_fun_native_t mp_builtin_input_obj; -- cgit v1.2.3