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

@@ -323,6 +323,10 @@ Q(mem_total)
Q(mem_current)
Q(mem_peak)
#if MICROPY_ENABLE_EMERGENCY_EXCEPTION_BUF && (MICROPY_EMERGENCY_EXCEPTION_BUF_SIZE == 0)
Q(alloc_emergency_exception_buf)
#endif
Q(<module>)
Q(<lambda>)
Q(<listcomp>)