Introduction to TinyOS Programming
Duration: 5 Days
Course Background
TinyOS, originally developed via collaborative work involving the University of California, Berkeley Intel Research and Crossbow Technology is a free open source component-based operating system that has been ported to a number of microprocessor architectures. TinyOS written in the nesC as a collection of cooperating tasks and processes. IPv6 support in TinyOS is one of the more widely AdHoc network operating systems, and with BLIP 2.0, a reimplementation of IPv6 in TinyOS, supports 6lowPAN TinyRPL and CoAP. This intensive 5 day course is for experienced embedded C programmers and is designed to get them up to speed with implementing TinyOS based AdHoce sensor network applications.
Course Prerequisites and Target Audience
Attendees are assumed to be experienced embedded C programmers with some experience of embedded system networking. Knowledge of Linux is also assumed.
Course Outline
- TinyOS - an introduction and overview
- TinyOS architecture and application development framework
- Motes - concepts and overview
- Overview of NesC and a comparison of C and NesC
- Introduction to NesC and the TinyOS application development framework
- Basics of TinyOS NesC programming
- TinyOS nesC Programming - Details
- nesC and the C preprocessor
- Introduction to Components and Interfaces
- TinyOS data structures
- BitVectorC
- QueueC
- BigQueueC
- PoolC
- StateC
- Implementing components and interfaces
- Split phase interfaces
- More advanced TinyOS programming
- Configurations and wiring
- Timing and event handlers
- Tasks and split-phase calls
- Networking and persistence
- Single-hop networking
- Multi-hop networking
- Storage
- Mote-PC communication
- TinyOS and 6lowPAN
- Overview of IPv6 and 6lowPAN
- Overview of BLIP 2
- 6loWPAN and 802.15.4 on TinyOS
- TinyRPL- Implementation of RPL (IETF's IPv6 Routing Protocol for Low-power and Lossy Networks)
- Introduction to CoAP (Constrained Application Protocol)
- Developing 6lowPAN applications with TinyOS
- TinyOS target platforms
- Tiny OS on ARM Cortex M3/M4
- TinyOS on Atmel Atmel AVR
- TinyOS on 8051
- TinyOS on MSP430