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
```
This commit is contained in:
Dave Hylands
2014-07-01 23:46:53 -07:00
parent 05c255f039
commit 5b7fd20fea
9 changed files with 164 additions and 4 deletions

View File

@@ -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();