First of all, I apologise for the huge svn commit message. Hope I'll keep
them shorter in the future.
Common code from all backends was factored out in src/common.c, and each
backend's platform_conf.h/platform.c fils were updated for this. Take a look
at any of them, it's quite easy to understand what happened there.
There's a new feature available for all platforms: virtual timers. Currently
implemented for LM3S, AVR32 and AT91SAM, they're a very good way to get long
delays (especially on platforms with 16-bit timers) if accuracy is not an
issue. It's easy to use them: declare VTMR_NUM_TIMERS and VTMR_FREQ_HZ in
platform_conf.h, then call cmn_virtual_timer_cb() from a timer interrupts
that happens at a frequency of VTMR_FREQ_HZ. You use these timers just as
the regular timers, but their IDs are not 0, 1, ..., but rather tmr.VIRT0,
Tested on: everything but LPC2888 (can't burn it right now, but there's no
reason for it to fail) and STM32 (*Mike*, please test the new image on your
board, I can't do that).
To come (in order of priority, in an ideal world):
- more AVR32 (PWM, external memory)
- Lua Tiny Ram patch (hopefully you're gonna love this one :) )
- fix eLua stack overflow(s) (yes, we have those)
- new XMODEM implementation (the current one is GPL, thus it prevents us
from changing the license to BSD).
- generic buffering system for "char" devices (UART, SPI, I2C, ADC...)