mdh.sePublications
Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Protothreads: Simplifying Event-Driven Programming of Memory-Constrained Embedded Systems
Swedish Institute of Computer Science, Sweden.
TU Delft, Netherlands .
Swedish Institute of Computer Science, Sweden.
TU Delft, Netherlands .
2006 (English)In: SenSys'06: Proceedings of the Fourth International Conference on Embedded Networked Sensor Systems, 2006, 29-42 p.Conference paper, Published paper (Refereed)
Abstract [en]

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

Place, publisher, year, edition, pages
2006. 29-42 p.
National Category
Computer Systems
Identifiers
URN: urn:nbn:se:mdh:diva-4059DOI: 10.1145/1182807.1182811Scopus ID: 2-s2.0-34547423275ISBN: 9781595933430 (print)OAI: oai:DiVA.org:mdh-4059DiVA: diva2:120602
Conference
SenSys'06: Proceedings of the Fourth International Conference on Embedded Networked Sensor Systems 2006, Pages 29-42 SenSys'06: 4th International Conference on Embedded Networked Sensor Systems; Boulder, CO; United States; 31 October 2006 through 3 November 2006
Available from: 2007-01-11 Created: 2007-01-11 Last updated: 2015-07-08Bibliographically approved
In thesis
1. Programming Memory-Constrained Networked Embedded Systems
Open this publication in new window or tab >>Programming Memory-Constrained Networked Embedded Systems
2007 (English)Doctoral thesis, comprehensive summary (Other scientific)
Abstract [en]

Ten years after the Internet revolution are we standing on the brink of another revolution: networked embedded systems that connect the physical world with the computers, enabling new applications ranging from environmental monitoring and wildlife tracking to improvements in health care and medicine. 98% of all microprocessors sold today are used in embedded systems. Those systems have much smaller amounts of memory than PC computers. An embedded system may have as little has a few hundred bytes of memory, which makes programming them a challenge.

This thesis focus on three topics regarding programming memory-constrained networked embedded systems: the TCP/IP for memory-constrained networked embedded systems, simplifying event-driven programming of memory-constrained systems, and dynamic loading of program modules in my Contiki operating system for memory-constrained systems. I show that the TCP/IP protocol stack can, contrary to previous belief, be used in memory-constrained embedded systems by implementing two small TCP/IP protocol stacks, lwIP and uIP.

I present a novel programming mechanism called protothreads that I show significantly reduce the complexity of event-driven programming for memory-constrained systems. Protothreads provide a conditional blocked wait mechanism on top of event-driven systems with a much smaller memory overhead than full multithreading; each protothread requires only two bytes of memory.

I show that dynamic linking of native code in standard ELF object code format is doable and feasible for wireless sensor networks by implementing a dynamic linker in the Contiki operating system. The results show that the energy overhead of dynamic linking of ELF files mainly is due to the ELF file format and not due to the dynamic linking mechanism as such.

The impact of the research in this thesis has been and continues to be large. The software I have developed as part of this thesis is currently used by hundreds of companies in embedded devices in such diverse systems as car engines and satellites. The papers in this thesis are included as required reading in advanced courses on networked embedded systems and wireless sensor networks.

Place, publisher, year, edition, pages
Institutionen för datavetenskap och elektronik, 2007. 214 p.
Series
Mälardalen University Press Dissertations, ISSN 1651-4238 ; 40
Keyword
Wireless sensor networks, embedded systems, operating systems, programming, networking, TCP/IP
National Category
Computer Science
Research subject
Datavetenskap
Identifiers
urn:nbn:se:mdh:diva-173 (URN)978-91-85485-36-9 (ISBN)
Public defence
2007-02-15, , Electrum, Isafjordsgatan 22, Kista, 10:00
Opponent
Supervisors
Available from: 2007-01-11 Created: 2007-01-11

Open Access in DiVA

No full text

Other links

Publisher's full textScopus
Computer Systems

Search outside of DiVA

GoogleGoogle Scholar

Altmetric score

Total: 98 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf