-
Notifications
You must be signed in to change notification settings - Fork 14
TinyOS for the Arduino Uno platform
After having worked with TinyOS/nesC at work for a few months, I've decided I quite like both of them. So, as a small side project at home, I'm porting TinyOS to run on the Arduino Uno. Once I have the basic platform support done, I'll move on to the Arduino Etherten, and after that, time and money permitting, I'll get some 802.15.4 shields and write the radio driver(s) for that.
Available for use so far:
-
Basic platform support (McuSleepC, programming via the Arduino bootloader)
-
PlatformLedsC (well, a led at least - the rx/tx leds are not reachable)
-
TEP117 GeneralIO support
-
TEP117 GpioInterrupt support (INT0/INT1 pins)
-
TEP102 timer/busy-wait support. The millisecond timer runs off timer0, and the 32kHz and microsecond timers run off timer1 (which is more power hungry).
-
TEP117 Uart support (UartByte, UartStream) via PlatformSerialC.
-
TEP113 Serial flush support.
-
printf support (via SerialPrintfC).
-
TEP101 Analog-to-Digital Converter (ADC), including TEP114 ReadStream interface.
-
TEP112 and TEP115 power reduction/management support. By default all I/O modules are now powered off during platform initialization. Used devices are subsequently powered up via their StdControl.start(). The ADC has an optional power management component to automatically power it down when unused.
-
TEP117 Serial Peripheral Interface (SPI) support, plus FastSpiByte support.
Next up on my to-do list:
- Wiznet5100 support
- I'm deliberately not spending much time on the HAL part of the HIL/HAL/HPL stack. This is for two reasons; 1) I'm considering the HIL aspects more important to start off with, and 2) I don't feel like I know the platform well enough yet to do a good job at writing full-featured HAL interfaces. Also, it feels like this is layer is the one that can be rewritten down the track without causing breakage anywhere else.
I do all my work on topic branches, which I tend to push. These may appear, disappear, or completely change at any time. Expecting any thing else is a recipe for disappointment. Topic branches get merged into master once they reach whatever milestone I've set for them. Track master if you want to track anything. I'll do my best not to rewrite its history...
I hack away on this when I have time and inclination to do so. I have no set deadline for when this will get done. It all depends on my workload and my mood.