This chapter describes how to periodically sample variables (data variables or program execution) via a debug port. Sampling provides profiling capabilities to devices with limited trace options and hardware trace resources.
However this approach can not replace the trace analysis, because it is not guaranteed that all relevant events can actually be captured. Concept of Profiler Sampling is mainly used for statistical analysis or for sampling rather slowly changing variables, and cyclic program execution.
In this chapter you can find:
Two types of sampling are implemented:
Data and PC Sampling is configured in the Analyzer Configuration / Profiler under the Data section.
1. Configure the Profiler and select variables, program flow, application etc.
2. Configuration is sent to the BlueBox which is periodically running the Idle loop where the sampling takes place.
3. Idle loop via debug port accesses memory and memory mapped registers on the target in real-time.
4. Data is sent back to the BlueBox where it is equipped with a time stamp.
5. Everything is then transferred back to winIDEA and visualized in the Profiler Timeline and Profiler Statistics window.
Profiler Timeline displays how much time the program was in the specific function for the specific application.
Profiler Statistics, e.g. column Count displays how many times a specific address was in a certain function.
Sampling data can be shown in the Trace window as well, but trace must be recorded with the time stamp source BlueBox Timer or time synchronization must be enabled. Note that his setting is CPU architecture specific.
If a sample pool is larger than the amount of the samples recorded, Profiler Timeline does not show any activity, however the recorded samples can be displayed in the Trace window.
Source ID column - Data from the PC and Data Sampling
Core column - Displays from which core the information came
Content column - Displays memory space ID (MSID). If your application doesn't have a memory space ID, Profiler Timeline displays a message it is not in use.
Refer to the chapter Profiler Export.