diff options
author | Dave Hylands <dhylands@gmail.com> | 2014-07-01 23:46:53 -0700 |
---|---|---|
committer | Dave Hylands <dhylands@gmail.com> | 2014-07-25 14:00:06 -0700 |
commit | 5b7fd20fea6d4329bb3ab45f63df41f46f242688 (patch) | |
tree | 10f806ab0d883bc6c087cc22b55b787adbdcf815 /unix/main.c | |
parent | 05c255f039b5c0fbdcb0754748fd5d36135acfd9 (diff) | |
download | micropython-5b7fd20fea6d4329bb3ab45f63df41f46f242688.tar.gz micropython-5b7fd20fea6d4329bb3ab45f63df41f46f242688.zip |
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 'unix/main.c')
-rw-r--r-- | unix/main.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/unix/main.c b/unix/main.c index d0222de0d1..45ccc23c20 100644 --- a/unix/main.c +++ b/unix/main.c @@ -273,6 +273,9 @@ int main(int argc, char **argv) { char *heap = malloc(heap_size); gc_init(heap, heap + heap_size); #endif +#if MICROPY_ENABLE_EMERGENCY_EXCEPTION_BUF + mp_init_emergency_exception_buf(); +#endif qstr_init(); mp_init(); |