Safe and structured use of interrupts in real-time and embedded software

Update Item Information
Publication Type Manuscript
School or College College of Engineering
Department Computing, School of
Creator Regehr, John
Title Safe and structured use of interrupts in real-time and embedded software
Date 2007-01-01
Description While developing embedded and real-time systems, it is usually necessary to write code that handles interrupts, or code the interacts with interrupt handlers. Interrupts are indispensable because they use hardware support to reduce both the latency and overhead of event detection, when compared to polling. Furthermore, modern embedded processor cores can save energy by shutting down when idle, leaving only simple circuitry such as timers running. For example, a TelosB [13] sensor network node drains a pair of AA batteries in a few days by running the processor continuously, but can run a useful application for months if the duty cycle is kept appropriately low. Interrupts have some inherent drawbacks from a software engineering point of view. First, they are relatively non-portable across compilers and hardware platforms. Second, they lend themselves to a variety of severe software errors that are difficult to track down since they manifest only rarely. These problems give interrupts a bad reputation for leading to flaky software: a significant problem where the software is part of a highly-available or safety-critical system. The purpose of this chapter is to provide a technical introduction to interrupts and the problems that their use can introduce into an embedded system, and also to provide a set of design rules for developers of interrupt-driven software. This chapter does not address interrupts on shared-memory multiprocessors, nor does it delve deeply into concurrency correctness: the avoidance of race conditions and deadlocks. Concurrency correctness is the subject of a large body of literature. Although the vast majority of this literature addresses problems in creating correct thread-based systems, essentially all of it also applies to interrupt-driven systems.
Type Text
Publisher Taylor & Francis (Routledge)
First Page 1
Last Page 12
Dissertation Institution University of Utah
Language eng
Bibliographic Citation Regehr, J. (2007). Safe and structured use of interrupts in real-time and embedded software. Chapter in Handbook of Real-Time and Embedded Systems, CRC, 1-12.
Rights Management (c)Taylor & Francis ; This is an electronic version of an article printed in Handbook of Real-Time and Embedded Systems, CRC. Handbook of Real-Time and Embedded Systems, CRC is available online at http://www.informaworld.com/smpp/ with the link (http://www.cs.utah.edu/~regehr/papers/interrupt_chapter.pdf) to the article.
Format Medium application/pdf
Format Extent 799,910 bytes
Identifier uspace,17482
ARK ark:/87278/s6xw53km
Setname ir_uspace
ID 708020
Reference URL https://collections.lib.utah.edu/ark:/87278/s6xw53km
Back to Search Results