Embedded Systems Design: An Introduction to Processes, Tools, and Techniques

Unlike the design of a software application on a standard platform, the design of an embedded system implies that both software and hardware are being designed in parallel. Although this isn t always the case, it is a reality for many designs today. The profound implications of this simultaneous design process heavily influence how systems are designed.
Figure 1.1 provides a schematic representation of the embedded design life cycle (which has been shown ad nauseam in marketing presentations).
A phase representation of the embedded design life cycle.
Time flows from the left and proceeds through seven phases:
Product specification
Partitioning of the design into its software and hardware components
Iteration and refinement of the partitioning
Independent hardware and software design tasks
Integration of the hardware and software components
Product testing and release
On-going maintenance and upgrading
The embedded design process is not as simple as Figure 1.1 depicts. A considerable amount of iteration and optimization occurs within phases and between phases. Defects found in later stages often cause you to go back to square 1. For example, when product testing reveals performance deficiencies that render the design non-competitive, you might have to rewrite algorithms, redesign custom hardware such as Application-Specific Integrated Circuits (ASICs) for better performance speed up the processor, choose a new processor, and so on.
Although this book is generally organized according to the life-cycle view in Figure 1.1, it can be helpful to look at the process from...