Long-term Ideas & Issues
In general I'd like PyMite to:
- be easy to use for the novice programmer.
- continue to fit and run on AVRs with 64 KiB program memory and 4 KiB SRAM.
- have an interactive interface that connects to an embedded device.
- be able to load user modules from Flash, RAM, EEPROM, SEEPROM and via I/O ports like SCI, SPI and USB.
- allow dynamic module downloading while the VM is running
- allow multiple threads and receive signals from AVR interrupts.
- have more pure-python and native-code libraries with documentation.
Below are more detailed ideas that don't yet need to be made into tickets/issues in the Trac.
VM Issues
- Pre-alloc 1 instance for unhandled exception.
- Revisit garbage collection arch, dsgn and impl.
- Revisit mem alloc arch, dsgn and impl.
- Implement high-level Threading module.
- Arch, dsgn & impl ISR callbacks written in Python.
- Run tests in AVR, ARM simulator as part of "make check".
Module Ideas
- Create AVR module that controls the AVR from a high-level.
- Create modules for common AVR peripherals (SPI, SCI, OCR, IC, PWM, ...).
- Create wrapper module for Procyon libs, especially fixed-point "fxp".
- Create module for EEPROM persistence.
- Create module for FLASH lookup.
- Port uIP and write networking wrapper module.
Apps
- Create sample app that runs PyMite in an AvrX thread.
Platforms
- Update MMB103 with an AVR having a USB peripheral
- Port PyMite to Lego NXT block
