What are your favorite tools of the embedded systems trade? Jack interprets the results from Embedded Market Survey.
Ironically, people involved with designing CPUs tell me they are being squeezed by management to remove as many of these capabilities as possible. The boss wants to reduce transistor counts, or devote them to cranking out more performance, or to add additional peripherals. Just as in Jules Verne's From the Earth to the Moon3 in which there was an essential tension between armor makers and canon builders, in the embedded world there's a never-ending tension between debugging resources and reducing the cost of goods. Alas, few follow the implications of that debate to the logical conclusion: cruddier debuggers lead inescapably to higher engineering costs. Higher engineering costs drive the sell-price up, since those nonrecurring-engineering dollars must be amortized over the number of units shipped. At least, if one wishes to make a profit over the long term. But perhaps long-term thinking is merely a quaint notion that has grown obsolete.
I suspect this tension between chip makers and developers is part of the fabric of the marketplace and will never go away. That's a shame, but it's also an opportunity for other types of clever add-on tools. For instance, augment your scope with Micrium's µC/Probe, one of the most interesting tools for developers of real-time systems that I have seen in some time. It links a bit of communications code in your embedded system to a PC-hosted app that is aware of your ELF or similar debugging file. Drag a handful of widgets onto the screen (such as meters and spreadsheets) and link them to variables in your code. µC/Probe periodically samples these variables and updates the screen. It's pretty cool to see a virtual analog gauge display, say, system idle time.
Looking at the study data's results on debugging tools in more depth, we see 53% of us call the debugger our favorite/most important tool. Presumably "the debugger" is the software application that we use to drive the hardware tools. I agree that this is a hugely important tool. Most projects consume 50% of the development effort in debug and test, so we're slaving away in front of this application for months or years on end. Important? You betcha. Favorite? I sure hope so, and hope it is so well designed it seamlessly enables our work and doesn't hinder our efforts.