Tool Working Group Report John Regehr
2 Tool WG Agenda Technology transfer: Move software tools from research into practical use for TinyOS 2.x developers What kind of tools? –Verification / validation –Optimization –Debugging –Etc.
3 Current Focus: Safe TinyOS Language-based safety on motes –Pointer/array errors are trapped before they happen No more memory corruption –Safety checks added to C code emitted by nesC compiler Lots of details in our SenSys 07 paper
4 Module-Level Safety module { … } module { … } This is an escape hatch –Unsafe means that no safety checks are inserted in the module’s code –Modules without either attribute default to unsafe
5 Annotations for Safety interface Packet { command void clear (message_t* SINGLE NONNULL msg); command uint8_payloadLength (message_t* SINGLE NONNULL msg); … }
6 New Format Annotations interface Packet { command void msg); command msg); … }
7 Interface Annotations In nesdoc * is * the packet to clear */ command void clear (message_t* msg);
8 How to handle traps? Reboot Blink LEDs Send serial packet Custom code you write Failure information is a small integer that a different tools turns into a nice error message
9 Next Steps Now: Integrating into CVS head Very soon: Solicit early users on –devel –Upgrade toolchain –Type “ make micaz safe ” This Spring: Release as part of 2.1
10 Other Tools Stack depth analysis –Working on it… Debugger? GUI front end? What else do you want?