In the time since embedded systems first emerged, the role of software has changed, along with the tools used and the overall approach to its development.
In the early days, the software was just an afterthought—something that the designer quickly put together when the hardware was complete. It was written in assembly language and implemented by someone who understood the hardware intimately.
Over time, as systems became a little more complex, there was an increasing trend to use a software specialist to write the code for embedded systems. Typically, these guys were quite knowledgeable about electronics and very comfortable working close to the hardware.
The last 10–15 years has seen the emergence and ...