Difference between revisions of "What to Read First"

From TinyOS Wiki
Jump to: navigation, search
(New page: Getting started with TinyOS can be a rather daunting task. Parts are very familar. TinyOS is built using NESC which is a dialect of C. So if you know C that is a good thing. But NESC ...)
 
m
Line 53: Line 53:
 
* [http://www.tinyos.net/tinyos-2.1.0/doc/html/tep119.html TEP119]: Collection
 
* [http://www.tinyos.net/tinyos-2.1.0/doc/html/tep119.html TEP119]: Collection
 
* [http://www.tinyos.net/tinyos-2.1.0/doc/html/tep123.html TEP123]: The Collection Tree Protocol (CTP)
 
* [http://www.tinyos.net/tinyos-2.1.0/doc/html/tep123.html TEP123]: The Collection Tree Protocol (CTP)
 +
 +
[[Category:Documentation]]

Revision as of 22:45, 25 November 2009

Getting started with TinyOS can be a rather daunting task.

Parts are very familar. TinyOS is built using NESC which is a dialect of C. So if you know C that is a good thing. But NESC adds a form of modularization which forces well defined interface mechanisms between the system components. The interconnect language is called wiring and take a bit getting used to.

  • Bottom line is there are a number of new concepts. These new concepts are presented very straight forwardly in Phil Levis' book, TinyOS Programming. This is the first place to start: Reference, TEPs, Papers, and User Notes.
  • At some point a development environment needs to be built. Various instructions can be found here: Getting started. However these instructions age over time. A younger set of install instructions for a Linux based install can be found here: Xubuntu 8.04, CVS T2.1, Step by step.

Choices need to be made, such as what platform will you be using. A pretty flexible platform is the TelosB mote based on the TI MSP430F1611 microprocessor. Another possibility is the MICAz (MPR2400) based on the Atmel ATmega128L processor. The choice of platform determines which processor and what tool chain needs to be installed. Two of the principal platforms supported by TinyOS are built on these two processors. You need to decide which platform you will be building for.

  • A TinyOS platform defines not only the processor but additional hardware configuration that makes the mote useful.

Now you have a development system installed, its time to build your first program. Blink is a good one.

Next step is to start working through the tutorials. Various contributors have spent a good amount of time putting together information that helps ramping up.

Suggested tutorials to start with include (suggested reading order):

Another source of detailed information is in the TinyOS Enhancement Proposals. Don't let the name fool you. These are like RFCs from the IETF development for the Internet. These documents can be read in conjunction with the tutorials. Recommended TEPs are listed below:

Basic services, Model, Arbitration

  • TEP102: Timers
  • TEP106: Schedulers and Tasks
  • TEP108: Resource Arbitration
  • TEP110: Virtualization
  • TEP112: Microcontroller Power Management
  • TEP115: Power Management of Non-Virtualized Devices
  • TEP117: Low-Level I/O


Low Level Communications and Packet Layer


Network Collection and Dissemination

  • TEP118: Dissemination of Small Values
  • TEP119: Collection
  • TEP123: The Collection Tree Protocol (CTP)