[Embedded Artistry] Our favorite embedded paper
Hey John Doe,
A core focus of ours is exploring ways that we can design our systems to reduce the costs of change. We’ve worked with many teams who need to change the processor or RTOS, only to realize that their entire program must be rewritten because SDK functions are used throughout the code base. Even simpler cases, such as replacing an end-of-life component with a newer version or supporting multiple component options, can trigger unexpectedly lengthy rework efforts throughout the code base.
This is not a new challenge. Here’s a quote from our absolute favorite embedded systems paper, “A Procedure for Designing Abstract Interfaces for Device Interface Modules”, which was published in 1981:
A core focus of ours is exploring ways that we can design our systems to reduce the costs of change. We’ve worked with many teams who need to change the processor or RTOS, only to realize that their entire program must be rewritten because SDK functions are used throughout the code base. Even simpler cases, such as replacing an end-of-life component with a newer version or supporting multiple component options, can trigger unexpectedly lengthy rework efforts throughout the code base.
This is not a new challenge. Here’s a quote from our absolute favorite embedded systems paper, “A Procedure for Designing Abstract Interfaces for Device Interface Modules”, which was published in 1981:
It is a common but undesirable property of embedded software that a change in a device interface requires widespread changes to the software because many programs are based on arbitrary interface details. If an interface changes, programs depending on it become invalid. Because these dependencies are seldom explicitly documented, interface changes often have surprising ramifications.
Unlike many other papers which assume an academic audience, this one is targeted at embedded software developers in the industry. It focuses on using abstract interfaces when interfacing with hardware. By using abstract interfaces, we can essentially divide our program into two camps: the portion that contains device-dependent code (e.g., drivers and hardware configuration modules) and a device-independent portion that will work with any hardware configuration that supports the required abstract interfaces.
There are many practical ideas that can be extracted from this paper and applied to your embedded software work. Therein you will find an iterative process for creating abstract interfaces, as well as discussion around handling common embedded software design tradeoffs.
There are many practical ideas that can be extracted from this paper and applied to your embedded software work. Therein you will find an iterative process for creating abstract interfaces, as well as discussion around handling common embedded software design tradeoffs.
The procedure is a practical approach to a recurring problem. As a result, we expect the paper to be more of interest to practicing software engineers than to researchers interested in today’s hot topics.
We originally found this paper through our member’s only weekly reading club. The original PDF we used was from a poorly OCR’d scan, making it quite difficult to highlight and copy text from the paper. Since the paper is marked as “Government work not protected by U.S. copyright”, we decided to retype the paper and host it on the website.
Continuing education is important, so we encourage you to set aside thirty minutes this week to read this classic embedded systems paper.
Happy hacking!
Rozi & Phillip
Continuing education is important, so we encourage you to set aside thirty minutes this week to read this classic embedded systems paper.
Happy hacking!
Rozi & Phillip
Copyright © 2026 Embedded Artistry, All rights reserved.
EMBEDDED ARTISTRY and the OWL logo are registered trademarks of Embedded Artistry LLC.
You were subscribed to the newsletter from Embedded Artistry though the store.
Our mailing address is:
EMBEDDED ARTISTRY and the OWL logo are registered trademarks of Embedded Artistry LLC.
You were subscribed to the newsletter from Embedded Artistry though the store.
Our mailing address is: