Hello @gusarambula
the CPU load in this example has been measured the most probably using Systick timer and macros.
Following code is taken from MCUX SDK Motor control examples.
/*****************************************************************************/
/* CPU load measurement using Systick*/
uint32_t g_ui32NumberOfCycles = 0;
uint32_t g_ui32MaxNumberOfCycles = 0;
/* CPU load measurement SysTick START / STOP macros */
#define SYSTICK_START_COUNT() (SysTick->VAL = SysTick->LOAD)
#define SYSTICK_STOP_COUNT(par1) uint32_t val = SysTick->VAL; uint32_t load = SysTick->LOAD; par1 = load - val
/*!
*@brief SysTick initialization for CPU cycle measurement
*
*@param none
*
*@return none
*/
void BOARD_InitSysTick(void)
{
/* Initialize SysTick core timer to run free */
/* Set period to maximum value 2^24*/
SysTick->LOAD = 0xFFFFFF;
/*Clock source - System Clock*/
SysTick->CTRL |= SysTick_CTRL_CLKSOURCE_Msk;
/*Start Sys Timer*/
SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;
}
/* Start CPU tick number couting */
SYSTICK_START_COUNT();
/* sw routines to be measures */
/* stop CPU tick number couting and store actual and maximum ticks */
SYSTICK_STOP_COUNT(g_ui32NumberOfCycles);
g_ui32MaxNumberOfCycles = g_ui32NumberOfCycles>g_ui32MaxNumberOfCycles ? g_ui32NumberOfCycles : g_ui32MaxNumberOfCycles;
Regards,
Pavel