Hardware and software development in synch
It has always seemed obvious to me that a particular characteristic that makes embedded software different from desktop programming is the close relationship with hardware. As most embedded devices are custom designs, the hardware platform is something of an unknown. So, it is clear that the development of the hardware and software should be done in a cooperative fashion.
Mentor Graphics is unique among the major electronic design automation [EDA] companies in having made a great investment in embedded software development, which is manifest in the Embedded Software Division, a.k.a. Mentor Embedded. On the other hand, Mentor Embedded is unique among embedded software tools/RTOS vendors by being part of a large company involved in hardware design. In any case, we should be in a great position to bridge the gap …
Over the years, a number of challenges have been identified with bringing together software and hardware developers:
Software cannot wait for hardware. Historically, the software development would begin when stable hardware was available. Nowadays, with longer development cycles and shorter times to market, work needs to begin sooner. This means that software developers need access to the hardware designs, which leads us to the next challenge.
Software and hardware developers do not use the same tools. Expecting either party to change is not really reasonable. As Glenn Perry, General Manager of Mentor Embedded, recently put it: “Asking a software designer to use a hardware design tool is like asking a plumber to install your sink with an electrician’s wire cutters.” I give a talk occasionally on RTOS performance measurement and suggest that an oscilloscope might be a good tool to look at time delays. Software engineers are somewhat nervous about using such an instrument.
The cost models are different. I recall when Mentor Graphics was just starting out with embedded software, when the division was established with the acquisition of Microtec Research. One of the EDA sales guys could not understand our price list: “So this debugger is a sophisticated tool, critical to software development, but it only costs $5K? Why can you not charge $50K?”
Getting to a solution that realistically addresses all three challenges has been hard. But, by marshaling all the necessary resources and bringing together multiple product development teams, Sourcery CodeBench Virtual Edition was born. This gives software engineers the opportunity to run their code against real hardware designs with greater flexibility than ever before. Not only can software be debugged on hardware which is being simulated or emulated, but timing and power issues can also be resolved – all long before real hardware is available. Hardware engineers have the chance to exercise their designs using real software so that any final wrinkles can be ironed out before final commitment of the design to silicon.
Here are two brief videos that illustrate Sourcery CodeBench Virtual Edition in action: