Protothreads: simplifying event-driven programming of memory-constrained embedded systems

Dunkels, Adam and Schmidt, Oliver and Voigt, Thiemo and Ali, Muneeb (2006) Protothreads: simplifying event-driven programming of memory-constrained embedded systems. In: Proceedings of the Fourth ACM Conference on Embedded Networked Sensor Systems (SenSys 2006), November 2006, Boulder, Colorado, USA.

Full text not available from this repository.

Official URL:


Event-driven programming is a popular model for writing programs for tiny embedded systems and sensor network nodes. While event-driven programming can keep the memory overhead down, it enforces a state machine programming style which makes many programs difficult to write, maintain, and debug. We present a novel programming abstraction called protothreads that makes it possible to write event-driven programs in a thread-like style, with a memory overhead of only two bytes per protothread. We show that protothreads significantly reduce the complexity of a number of widely used programs previously written with event-driven state machines. For the examined programs the majority of the state machines could be entirely removed. In the other cases the number of states and transitions was drastically decreased. With protothreads the number of lines of code was reduced by one third. The execution time overhead of protothreads is on the order of a few processor cycles.

Item Type:Conference or Workshop Item (Paper)
ID Code:303
Deposited By:ISL Researcher
Deposited On:08 Sep 2009
Last Modified:18 Nov 2009 15:56

Repository Staff Only: item control page