homecloud computingcloud data Processingclound of networks
cloud of things

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