An operating system infrastructure for remote code update in deeply embedded systems

Deeply Embedded Systems are designed to perform a determined set of specific tasks, usually on low-cost, high-reliability platforms. In order to support on-site firmware updates, such systems are subject to severe resource limitation, like processing power, memory and energy, since the update mechanism itself must share the sparse resources with running applications. This work presents a low-overhead operating system infrastructure for remote code update. By using sophisticate C++ static metaprogramming techniques, the infrastructure and the code update become fully transparent to applications. Moreover, the infrastructure allows the system components to be marked as updatable or not at compilation time, and for those components that are not marked as updatable, no overhead is added. The infrastructure was implemented in Epos, a multi-platform, component-based, embedded operating system [7], with positive preliminary results that show that the proposed strategy is a feasible solution for software update in deeply embedded systems.

[1]  Al Stevens,et al.  C programming , 1990 .

[2]  Pedro José Marrón,et al.  FlexCup: A Flexible and Efficient Code Update Mechanism for Sensor Networks , 2006, EWSN.

[3]  Mani B. Srivastava,et al.  Design and implementation of a framework for efficient and programmable sensor networks , 2003, MobiSys '03.

[4]  Jeff Rose,et al.  MANTIS: system support for multimodAl NeTworks of in-situ sensors , 2003, WSNA '03.

[5]  Mike Horton,et al.  The platforms enabling wireless sensor networks , 2004, CACM.

[6]  Antônio Augusto Fröhlich,et al.  Application oriented operating systems , 2001 .

[7]  Adam Dunkels,et al.  Contiki - a lightweight and flexible operating system for tiny networked sensors , 2004, 29th Annual IEEE International Conference on Local Computer Networks.

[8]  Wolfgang Schröder-Preikschat,et al.  Dynamic Software Update of Resource-Constrained Distributed Embedded Systems , 2007, IESS.

[9]  Mani B. Srivastava,et al.  Multi-level software reconfiguration for sensor networks , 2006, EMSOFT '06.

[10]  Mani B. Srivastava,et al.  A dynamic operating system for sensor nodes , 2005, MobiSys '05.

[11]  Limin Wang,et al.  MNP: Multihop Network Reprogramming Service for Sensor Networks , 2004, 25th IEEE International Conference on Distributed Computing Systems (ICDCS'05).

[12]  Robert Szewczyk,et al.  System architecture directions for networked sensors , 2000, ASPLOS IX.

[13]  David E. Culler,et al.  The dynamic behavior of a data dissemination protocol for network programming at scale , 2004, SenSys '04.

[14]  Wolfgang Schröder-Preikschat,et al.  Scenario Adapters: Efficiently Adapting Components∗ , 2002 .

[15]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[16]  Philip Levis,et al.  Maté: a tiny virtual machine for sensor networks , 2002, ASPLOS X.

[17]  Koen Langendoen,et al.  Efficient code distribution in wireless sensor networks , 2003, WSNA '03.

[18]  Joel Koshy,et al.  Remote incremental linking for energy-efficient reprogramming of sensor networks , 2005, Proceeedings of the Second European Workshop on Wireless Sensor Networks, 2005..

[19]  Deborah Estrin,et al.  A Remote Code Update Mechanism for Wireless Sensor Networks , 2003 .