A Sampling-based Profiling feature within the winIDEA IDE, debug and software analyzer tool from iSYSTEM allows developers to carry out timing analysis via the debug interface of microcontrollers and processors with limited trace options or hardware trace resources. Via Program Counter (PC) and Data Sampling, developers can statistically measure and monitor CPU utilization, load distribution and data signals over time to test their application. The new feature is simple to use with any kind of microcontroller or processor and streamlines software development and test especially for safety applications in various markets like automotive, healthcare, and industrial automation.
Sampling-based Profiling is part of the winIDEA Software Analyzer. With this function, the developer obtains data by sampling specific memory locations or the CPU Program Counter via the debug interface – without the need for any trace hardware. The profiler also analyzes the retrieved data and visualizes the results.
iSYSTEM has implemented support for two main use cases: PC Sampling and Data Sampling. The iSYSTEM Profiler samples data on program execution and calculates the CPU Utilization in percent for each function to calculate the function load. OS Running Task and ISR Load Profiling gives insights to OS Task and ISR Load distribution. In both cases, the developer will run samples until the statistics stabilize. This provides a very good indication about the load situation in the system and helps the developer to judge if the application is running as expected or not. The third option of Sampling-based Profiling – which is not really related to Timing Analysis and less practical – is to build a kind of an oscilloscope for monitoring data signals over time.
The three use cases of sampling-based profiling.