Embedded Systems Architecture: A Comprehensive Guide for Engineers and Programmers

Section III takes a look at embedded software using the Embedded Systems Model as a reference. It discusses the possible permutations of software sublayers that can exist within an embedded system. Basically, embedded software can be divided into two general classes: systems software and application software. Systems software is any software that supports the applications, such as device drivers, operating systems and middleware. Application software is the upper-level software that defines the function and purpose of the embedded device and which handles most of the interaction with users and administrators. In the next three chapters, real-world examples of components within the software sublayers will be presented from an architectural level down to the pseudocode level. Although this is not a programming book, including pseudocode along with the architectural discussion is important, because it allows the reader to understand how requirements and standards evolve from theory into a software flow. The pseudocode is provided to give the reader a visual aid for understanding the software behind different software layer components.
The structure of this section is based upon the software sublayers that can be implemented in an embedded system. Chapter 8 discusses device drivers, Chapter 9 discusses operating systems and board support packages (BSPs), and Chapter 10 introduces middleware and application software.
In This Chapter
Defining device drivers
Discussing the difference between architecture-specific and board-specific drivers
Providing several examples of...