Time-Aware Instrumentation of Embedded Software

TitleTime-Aware Instrumentation of Embedded Software
Publication TypeJournal Article
Year of Publication2010
AuthorsFischmeister, S., and P. Lam
JournalIEEE Transactions on Industrial Informatics
Volume6
Pagination652–663
Date PublishedAugust
ISSN1551-3203
Keywordsdebugging, Instrumentation, real-time, tracing
Abstract

Software instrumentation is a key technique in many stages of the development process. It is particularly important for debugging embedded systems. Instrumented programs produce data traces which enable the developer to locate the origins of misbehaviours in the system under test. However, producing data traces incurs runtime overhead in the form of additional computation resources for capturing and copying the data. The instrumentation may therefore interfere with the system’s timing and perturb its behavior. In this work, we propose an instrumentation technique for applications with temporal constraints, specifically targetting background/foreground or cyclic executive systems. Our framework permits reasoning about space and time and enables the composition of software instrumentations. In particular, we propose a definition for trace reliability, which enables us to instrument real-time applications which aggressively push their time budgets. Using the framework, we present a method with low perturbation by optimizing the number of insertion points and trace buffer size with respect to code size and time budgets. Finally, we apply the theory to two concrete case studies: we instrument the OpenEC firmware for the keyboard controller of the One Laptop Per Child project, as well as an implementation of a flash filesystem.

URLhttp://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5559440
DOI10.1109/TII.2010.2068304
Refereed DesignationRefereed
Related files: 

Opportunities

Looking for motivated students (undergrads and grads) interested in working on embedded software and systems research. Mail Sebastian Fischmeister for further information.