This is my NesC UART driver for ATMega128. Most of the files were imported from TinyOS (I hope they don’t mind, since it’s BSD license anyway). You can download it from here.
I haven’t tested the whole code yet, but I’m pretty sure that it’ll work just as it is (since it’s already work inside TinyOS).
Anyway, my next target after this is to provide buffer for Tx and Rx, just like the Peter Fleury’s UART library.
Bare NesC is my term for NesC without TinyOS (refer to this post for my experiment with bare NesC). This post will continue the experiment, by interfacing the bare NesC program with other components.
Being avid NesC user for a year makes me understand how powerful this language can be.
It’s not C++ (or some kind of new OO/Object Oriented language), but it has just enough OO features to support embedded system. C++ / J2ME is complety useless for 8-bits MCU with memory less than 1MByte. It’s not C, or another kind of portable assembly language, but it’s quite portable if you know how to design your interface. You can even replace the peripheral / IC drivers within 1 line of code.
My plan is to use NesC components without TinyOS. It will reduce a lot of code size. Hence, the whole program can be stored inside 2kBytes AVR, since the radio (CC2420) is replaced by transparent modem (Maxstream).
And here’s the thing that I found: