Modern embedded system development is based around three competing technologies: ASICs, FPGAs and DSPs. Assuming that the application only possesses digital requirements when the decision on implementation technology is often a trade-off between flexibility and speed. DSPs running custom software tend to be the most popular choice when flexibility is paramount, but this solution is highly dependent on the custom software providing an efficient and effective solution. Unfortunately, as DSP systems become more complex to enable a wider range of applications to be developed at ever increasing speeds of execution, the production of this software solution becomes more demanding. While the software solution must clearly possess functional correctness, it is often required to possess a high degree of efficiency to meet the demands of the application. However, the process of producing highly efficient code is far from straight-forward and normally requires the embedded programmer to possess a great degree of skill and knowledge with this specialized domain; and hence these practitioners are in high demand and relatively short supply, causing many industrial applications to have less than perfect characteristics in this respect.
Work in this area is in conjunction with Dr. Mike Smith at the University of Calgary. The home page for this work can be found at the UofC at:
Test Driven Development of Embedded Systems