ARM Architecture Reference Manual
ARM Architecture Reference Manual
Linkers and Loaders
Worst-case analysis of memory allocation algorithms
STOC '72 Proceedings of the fourth annual ACM symposium on Theory of computing
In-Place Reconstruction of Version Differences
IEEE Transactions on Knowledge and Data Engineering
UCC: update-conscious compilation for energy efficiency in wireless sensor networks
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Decoding Code on a Sensor Node
DCOSS '08 Proceedings of the 4th IEEE international conference on Distributed Computing in Sensor Systems
Issues in applying a model driven approach to reconfigurations of satellite software
Proceedings of the 1st International Workshop on Hot Topics in Software Upgrades
Remote progressive firmware update for flash-based networked embedded systems
Proceedings of the 14th ACM/IEEE international symposium on Low power electronics and design
Towards update-conscious compilation for energy-efficient code dissemination in WSNs
ACM Transactions on Architecture and Code Optimization (TACO)
Energy-Efficient Progressive Remote Update for Flash-Based Firmware of Networked Embedded Systems
ACM Transactions on Design Automation of Electronic Systems (TODAES)
Algorithms to Minimize Data Transfer for Code Update on Wireless Sensor Network
Journal of Signal Processing Systems
Hi-index | 0.00 |
Firmware over the air (FOTA) is becoming a standard procedure for maintaining and updating wireless embedded systems. To cope with bandwidth and storage constraints this is facilitated using incremental updates based on delta technology, i.e. only the modifications are transmitted. The performance of a FOTA update is highly dependent on the size of the delta, and the type of modifications. Application of a delta update involves mutating the present version, byte by byte, into the new version. The problem is that even the smallest change in the source code may cause almost every single memory position to be affected, and thus requiring the complete memory to be rewritten. This has two implications: First, the time spent updating memory becomes unnecessary long. Secondly, and much worse, since a large part of the system is affected, the system is not functional during application.This paper introduces the concept of a feedback linker, which uses the object code layout of the previous version, when building a new version. The feedback linker maximizes the similarities between two versions allowing for smaller update packages and faster upgrades. The feedback linker is described in terms of an optimization procedure, an prototype test bed and a set of experimental results.