SamplingProfiler.cpp File Reference

Classes

struct  SnapshotSummary
 
struct  FilteredStackSnapshot
 

Macros

#define SAMPLING_PROFILER_COMPARE_FRAMES   1
 
#define MAX_STACK_SNAPSHOT_SIZE   256
 
#define MAX_STACK_FRAME_SIZE   256
 
#define MAX_ENTRIES_PER_STACK_SNAPSHOT   128
 
#define SYSPROGS_PROFILER_END_OF_RAM   (&_estack)
 
#define SAMPLES_PER_AUTORATE_CYCLE   1024
 
#define SAMPLING_PROFILER_COMM_BUFFER_USAGE_EXP   4
 

Functions

void SysprogsProfiler_ProcessSample (void *PC, void *SP, void *FP, void *LR)
 Should be called from the timer ISR implemented by the platform driver. More...
 

Variables

void * _estack
 
volatile int g_PauseSamplingProfiler
 
volatile int g_SamplingProfilerDroppedPacketRatio
 
volatile int g_SamplingProfilerRate
 
volatile int g_SamplingProfilerAutoRate
 

Macro Definition Documentation

#define MAX_ENTRIES_PER_STACK_SNAPSHOT   128
#define MAX_STACK_FRAME_SIZE   256
#define MAX_STACK_SNAPSHOT_SIZE   256
#define SAMPLES_PER_AUTORATE_CYCLE   1024
#define SAMPLING_PROFILER_COMM_BUFFER_USAGE_EXP   4
#define SAMPLING_PROFILER_COMPARE_FRAMES   1
#define SYSPROGS_PROFILER_END_OF_RAM   (&_estack)

Function Documentation

void SysprogsProfiler_ProcessSample ( void *  PC,
void *  SP,
void *  FP,
void *  LR 
)

Should be called from the timer ISR implemented by the platform driver.

The arguments specify the values of the key ARM registers at the time the main code was interrupted by the ISR. The profiler will automatically reconstruct the stack from those and count it in the final report.

Variable Documentation

void* _estack
volatile int g_PauseSamplingProfiler
volatile int g_SamplingProfilerAutoRate
volatile int g_SamplingProfilerDroppedPacketRatio
volatile int g_SamplingProfilerRate