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
Programming Memory-Constrained Networked Embedded Systems
Mälardalen University, Department of Computer Science and Electronics.
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 [en]
Wireless sensor networks, embedded systems, operating systems, programming, networking, TCP/IP
National Category
Computer Science
Research subject
Datavetenskap
Identifiers
URN: urn:nbn:se:mdh:diva-173ISBN: 978-91-85485-36-9 (print)OAI: oai:DiVA.org:mdh-173DiVA: diva2:120604
Public defence
2007-02-15, , Electrum, Isafjordsgatan 22, Kista, 10:00
Opponent
Supervisors
Available from: 2007-01-11 Created: 2007-01-11
List of papers
1. Full TCP/IP for 8-bit Architectures
Open this publication in new window or tab >>Full TCP/IP for 8-bit Architectures
2003 (English)In: MobiSys '03 Proceedings of the 1st international conference on Mobile systems, applications and services, 2003, 85-98 p.Conference paper, Published paper (Refereed)
Abstract [en]

We describe two small and portable TCP/IP implementations fulfilling the subset of RFC1122 requirements needed for full host-to-host interoperability. Our TCP/IP implementations do not sacrifice any of TCP's mechanisms such as urgent data or congestion control. They support IP fragment reassembly and the number of multiple simultaneous connections is limited only by the available RAM. Despite being small and simple, our implementations do not require their peers to have complex, full-size stacks, but can communicate with peers running a similarly light-weight stack. The code size is on the order of 10 kilobytes and RAM usage can be configured to be as low as a few hundred bytes.

National Category
Computer Engineering
Identifiers
urn:nbn:se:mdh:diva-4056 (URN)10.1145/1066116.1066118 (DOI)
Conference
1st international conference on Mobile systems, applications and services
Available from: 2007-01-11 Created: 2007-01-11 Last updated: 2016-01-19Bibliographically approved
2. Contiki - a Lightweight and Flexible Operating System for Tiny Networked Sensors
Open this publication in new window or tab >>Contiki - a Lightweight and Flexible Operating System for Tiny Networked Sensors
2004 (English)In: Proceedings - Conference on Local Computer Networks, LCN, 2004, 455-462 p.Conference paper, Published paper (Refereed)
Abstract [en]

Wireless sensor networks are composed of large numbers of tiny networked devices that communicate untethered. For large scale networks it is important to be able to dynamically download code into the network. In this paper we present Contiki, a lightweight operating system with support fordynamic loading and replacement of individual programs and services. Contiki is built around an event-driven kernel but provides optional preemptive multi-threading that can be applied to individual processes. We show that dynamic loading and unloading is feasible in a resource constrained environment, while keeping the base system lightweight and compact.

National Category
Engineering and Technology
Identifiers
urn:nbn:se:mdh:diva-4057 (URN)10.1109/LCN.2004.38 (DOI)
Conference
29th Annual IEEE International Conference on Local Computer Networks, LCN 2004; Tampa, FL; United States; 16 November 2004 through 18 November 2004
Available from: 2007-01-11 Created: 2007-01-11 Last updated: 2014-05-16Bibliographically approved
3. Using Protothreads for Sensor Node Programming
Open this publication in new window or tab >>Using Protothreads for Sensor Node Programming
2005 (English)In: Proceedings of the REALWSN 2005 Workshop on Real-World Wireless Sensor Networks (2005), 2005Conference paper, Published paper (Refereed)
National Category
Computer Engineering
Identifiers
urn:nbn:se:mdh:diva-4058 (URN)
Conference
REALWSN 2005 Workshop on Real-World Wireless Sensor Networks
Available from: 2007-01-11 Created: 2007-01-11 Last updated: 2015-07-08Bibliographically approved
4. Protothreads: Simplifying Event-Driven Programming of Memory-Constrained Embedded Systems
Open this publication in new window or tab >>Protothreads: Simplifying Event-Driven Programming of Memory-Constrained Embedded Systems
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

National Category
Computer Systems
Identifiers
urn:nbn:se:mdh:diva-4059 (URN)10.1145/1182807.1182811 (DOI)2-s2.0-34547423275 (Scopus ID)9781595933430 (ISBN)
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
5. Run-Time Dynamic Linking for Reprogramming Wireless Sensor Networks
Open this publication in new window or tab >>Run-Time Dynamic Linking for Reprogramming Wireless Sensor Networks
2006 (English)In: SenSys'06: Proceedings of the Fourth International Conference on Embedded Networked Sensor Systems, 2006, 15-28 p.Conference paper, Published paper (Refereed)
Abstract [en]

From experience with wireless sensor networks it has become apparent that dynamic reprogramming of the sensor nodes is a useful feature. The resource constraints in terms of energy, memory, and processing power make sensor network reprogramming a challenging task. Many different mechanisms for reprogramming sensor nodes have been developed ranging from full image replacement to virtual machines.We have implemented an in-situ run-time dynamic linker and loader that use the standard ELF object file format. We show that run-time dynamic linking is an effective method for reprogramming even resource constrained wireless sensor nodes. To evaluate our dynamic linking mechanism we have implemented an application-specific virtual machine and a Java virtual machine and compare the energy cost of the different linking and execution models. We measure the energy consumption and execution time overhead on real hardware to quantify the energy costs for dynamic linkin.Our results suggest that while in general the overhead of a virtual machine is high, a combination of native code and virtual machine code provide good energy efficiency. Dynamic run-time linking can be used to update the native code, even in heterogeneous networks.

National Category
Engineering and Technology
Identifiers
urn:nbn:se:mdh:diva-4060 (URN)10.1145/1182807.1182810 (DOI)2-s2.0-34248333724 (Scopus ID)9781595933430 (ISBN)
Conference
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: 2014-05-16Bibliographically approved

Open Access in DiVA

No full text

By organisation
Department of Computer Science and Electronics
Computer Science

Search outside of DiVA

GoogleGoogle Scholar

Total: 782 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