11.1 An Outline of the Modern Development Process for Embedded Systems
In early microprocessor developments, hardware and software design was treated very much as an integrated activity. Little or no software testing was carried out prior to running it on the target. Most code was written in assembly language, requiring a high level of expertise to analyze and correct mistakes. Further, debugging tools were fairly primitive. Hence, coping with simultaneous hardware and software problems was an uphill task. So, it's not surprising that it could take a long time to finalize even small programs.
Economic pressures have resulted in convergence toward a particular development process. First, the hardware is treated as a separate design and development action. On new and specialized designs, such work is carried out concurrently with the application-level software design. The myth that hardware cannot be developed separately from software has been well laid to rest (except, unfortunately...