Main Page | Modules | Data Structures | File List | Data Fields | Globals | Examples

The Contiki Operating System

Author:
Adam Dunkels <adam@sics.se>
The Contiki operating system is a highly portable, minimalistic operating system for a variety of resource constrained systems with memory size on the order of a few kilobytes. Contiki provides a simple event-driven kernel with optional preemptive multithreading, interprocess communication using message passing signals, a dynamic process structure and support for loading and unloading programs, native TCP/IP support using the uIP TCP/IP stack, and a graphical subsystem with either direct graphic support for directly connected terminals or networked virtual display with VNC or Telnet.

Contiki is written in the C programming language and is freely available as open source under a BSD-style license. More information about Contiki can be found at the Contiki home page: http://www.sics.se/~adam/contiki/

The ESB (Embedded Sensor Board) is a prototype wireless sensor network device developed at Freie Universität Berlin. The ESB consists of a Texas Instruments MSP430 low-power microcontroller with 2k RAM and 60k flash ROM, a TR1001 radio transceiver, a 32k serial EEPROM, an RS232 port, a JTAG port, a beeper, and a number of sensors (passive IR, active IR sender/receiver, vibration/tilt, microphone, temperature).

The Contiki/ESB port brings support for TCP/IP, loadable programs (over-the-air programming), event-based multitasking, and cooperative multi-threading (preemptive threading is implemented but not yet fully tested) to the ESB. The Contiki/ESB port contains drivers for most of the sensors. The drivers were mostly adapted from sources written by FU Berlin.

See also:
The Scatterweb/ESB board

Processes, multi-threading and protothreads

Contiki is based on an event-driven kernel but provides support for both multi-threading and a lightweight stackless thread-like construct called protothreads.

See also:
Contiki processes

Contiki multi-threading

Protothreads

Sensor interfaces

Communication

Contiki includes the uIP TCP/IP stack (http://www.sics.se/~adam/uip/) that provides Contiki with TCP/IP networking support. uIP provides the protocols TCP, UDP, IP, and ARP.

In Contiki, the TCP/IP stack typically is used for all communication.

See also:
The uIP TCP/IP stack documentation

The Contiki/uIP interface

Protosockets library

Libraries

Contiki provides a set of convenience libraries for memory management and linked list operations.

See also:
Event timer library

Simple timer library

Memory block management

Linked list library


Generated on Wed Jul 6 01:18:59 2005 for Contiki/ESB by doxygen 1.3.6