Reduce Energy Use via Power Debugging

Monday, January 10th, 2011 by Michael Barr

According a recent study by the European Union, approximately 10% of electricity used in homes and offices is ‘vampire power’. That is to say that even when many products, especially embedded systems, are turned “off” they are still consuming power! The same report puts the total amount of energy wasted in this way, within Europe alone, at dozens of Terawatt hours per year.

Thus developers of all embedded software (not just those designing for battery-powered systems) should take note: A few months back, embedded C/C++ compiler vendor IAR Systems added a handy and innovative new debugging feature to the Embedded Workbench for ARM (EWARM) IDE. The new feature is called “Power Debugging”.

I’ve just now finally had a chance to play around with the Power Debugging feature in EWARM 6. Here’s the kind of stuff you can do with this powerful new development tool:

Capture a timeline graph of current consumption in a window in the debugger–with no need for an oscilloscope or any other external tool hookup. (The power debugging feature gets its data from your JTAG interface, which is installed so it powers the target processor.)

Highlight individual datapoints in the power timeline to see how much current was consumed at that point, as well as where the program was at the time. You can easily jump back and forth between the high-level source code debug window and the power graph!

Sort a list of functions by their average, minimum, or maximum current consumption–combining the time cost profiling capability already in EWARM with a power cost capability.

With this new tool at your disposal, finding the right code to optimize to reduce power consumption is easier than it has ever been. I applaud IAR for developing this innovative feature as well as for including power debugging free in the price of the EWARM IDE.

3 Responses to “Reduce Energy Use via Power Debugging”

I’m confused a bit – is power debugging only possible if the board is powered completely through the debugger (JTAG)? Or is able to glean other information from the CPU even if it’s running off a battery while debugging?

You have to power the board completely through the debugger to get accurate power consumption numbers. However, check out for more news later this year on this as we work on extending the power debugging concept with functionality to measure power consumption over any given point in your design and correlate that with your code.