Table of Contents

1. Source Code Annotation
2. Linear Profiles

eSimu can generate profiles using two main modes.

1. Source Code Annotation

eSimu uses the execution trace given by WSim to build an image of the platform activity. This image is combined with a platform calibration file and the Dwarf debug information contained in the ELF file to generate a full performance view of the execution.

The command line to use to generate the profile is the following:

$ESIMU --in=wsim.etr --out=wsim.prf --conf=$CALIB  --mode=prof \ 

Where $CALIB is the simulation platform calibration file. The profile output format is the description format used in the Valgrind/kCachegrind tool. suite. Next Figure presents a screenshot of a full application debug examined through KCacheGrind.

Kcachegrind output example : cycle accurate performance and energy profiling

Figure IV.1. Kcachegrind output example : cycle accurate performance and energy profiling


WSim and eSimu are cycle accurate and can handle variable clock frequencies. The CYCLES count performance measure in KCachegrind is given in nanoseconds.


For programs that use lots of interrupts and reentrant interrupts, eSimu might get lost between all function call graphs. Please send us a bug report with some information on the files that produced the bug, if feasible please include also the ELF file.

2. Linear Profiles

The second eSimu mode can output timed profiles for each component of the system. These profiles are obtained using the following command line:

$ESIMU --in=wsim.etr --out=wsim.dat --conf=$CALIB  --mode=tlin \ 

Where $CALIB is the simulation platform calibration file.

Linear traces are plotted in raw data files [wsim.dat] with gnuplot or any other plotting program. The next figures have been obtained with the gnuplot program. Components activity and power consumption appear in the order of the dev_id declarations.

Linear power consumption output example

Figure IV.2. Linear power consumption output example