EnergyAnalyzer is a static-analysis tool for estimating the energy consumption
of embedded software.
The tool was developed in the EU project TeamPlay,
where it was applied to a variety of use cases, including:
- selecting candidates for an optimized convolutional neural network,
- determining the energy demands of a camera pill prototype, and
- analyzing the energy consumption of an embedded application for satellite communications.
The analysis capabilities of EnergyAnalyzer have been validated across
a large number of benchmarks for different target architectures, showing
that the statically estimated energy consumption typically differs by
less than 1% from the underlying empirical energy models
validated on real hardware.
Your benefits
- The static analysis reliably determines the worst-case path,
identifies dead code, and uncovers hidden recursions. The computed
energy consumption takes into account all possible inputs, all possible
cache and pipeline states, and each task execution under any circumstances.
Manual experiments and repeated measurements that are tedious, expensive,
and error-prone can be reduced to a minimum or omitted altogether.
- EnergyAnalyzer directly analyzes binary executables, exactly as they
are executed in the final system on the actual hardware. It requires
no code instrumentation, no modification of your system’s
operational behavior, and no modification of your toolchain.
Key features
- The analysis is exceptionally fast for complex real-world software.
Freely selectable entry points let you focus on the worst-case path
or other areas of interest, while speeding up the analysis even further.
- A state-of-the-art GUI offers interactive views for analysis results,
statistics, code coverage, control flow, source code, assembly code,
symbol tables, and more.
- A mature command-line mode and customizable XML reports enable
easy integration into your toolchain or automated build process.
- Difference analysis lets you easily compare the energy consumption
before and after making changes to your code.
- EnergyAnalyzer seamlessly integrates with other analysis tools from AbsInt,
such as aiT for WCET analysis, or
StackAnalyzer for stack usage analysis.
With just a single project setup, you can run a number of different
static analyses to investigate various aspects of your system in one fell swoop.
Supported target architectures
- ARM Cortex-M0
- Gaisler LEON3
Support for further processors is possible on request.
Supported compilers
ARM/KEIL, AdaCore GNAT, Diab, GCC, GHS, IAR, LLVM/Clang, Tasking, TI,
and the formally verified CompCert compiler.
Free 30-day trial
Please write to info@absint.com.
Short introduction on YouTube