We just announced a new release of our state of the art tools which includes an update to Workbench and Workbench OCD version 3.2, plus our Wind River Compiler suite (also known as the Diab compiler). This news reminded me of my days as a product manager for tools software and the need to talk about the importance of tools to project success.
For embedded software companies where so much emphasis is given to supported hardware, operating systems and middleware technologies, tools can get ignored in the fray. This is unfortunate because tools are key to project success because they can make the difference between meeting a deadline or missing it by many weeks. Tools are all about developer productivity and getting problems solved faster.
How do tools make us work better and smarter? By reducing the inherent complexity of the task at hand - by using visual tools rather than command line, for example.
By pinpointing errors and giving us all the trace information we need to find the root of the problem.
By providing hardware integration via JTAG with our On Chip Debugging (OCD) tools which gives the developer complete control via stop mode debugging on the device under test.
By providing an optimized compiler tuned for specific features of the target processors.
All of these capabilities become critical to productivity to the point that they become essential components of the development environment. Equally critical is the ability to support all of the major processor platforms - ARM, Coldfire, Intel, MIPS, and PowerPC architectures. In fact, our OCD product can be used for VxWorks, Linux and other operating systems - in other words, its a great JTAG debugging solution. Similarly our Wind River Compiler can be bought and used separately for any type of cross development project.
Although tools have been important in the past, I think the multicore transition requires even more tools support. Multicore adds complexity to the system architecture and true hardware parallelism, although powerful, is a new programming model for developers. Our tools group has been working very hard to support our customers through this transition by solving such critical issues like deadlocks, memory corruption, and core synchronization. Moreover, visualization of multicore behavior and hardware run-control operations on multiple target systems and individual CPU cores is critical to taking control of your product debug and optimization.
So, let's not forget about the tools - the keys to multicore success.