measurement of whole OS efficiency, advice
//——————————————————————————————————————————- idleTask
static u32_t cpu_free_time = 0;
void vApplicationIdleHook( void );
void vApplicationIdleHook( void ) // for tests only, there must not be vTaskDelay
{
#if DEVBRD
AT91C_BASE_PIOA->PIO_SODR = LED_BT;
#endif
portENTER_CRITICAL();
cpu_free_time++;
portEXIT_CRITICAL();
}
//———————————————————————————————-
static void vUserTask( void *pvParameters );
static void vUserTask( void *pvParameters )
{
(void) pvParameters;
static char LEDblink = 0;
static u32_t cpu_time;
#define ledblink(led) if (LEDblink) ledon(led); else ledoff(led)
while (1) {
LEDblink ^= 1; // switch blinking
//——————————————————————————————– OS control state LED
ledblink(LED_WORK);
vTaskDelay(( portTickType ) 500/*ms*/); // disable for debug vTaskUser stack…
//kprintf("usrSP: %dn", vGetSP()); // debug
// measure of cpu free time
portENTER_CRITICAL();
cpu_time = cpu_free_time;
cpu_free_time = 0;
portEXIT_CRITICAL();
kprintf("cpu free: %lun", cpu_time);
} // while(1)
}
if cpu free = 0, you should correct your tasks, for example:
while(1) vTaskDelay(50);
instead of
while(1);
best regards
Janusz
measurement of whole OS efficiency, advice
As an aside, what is the point of this:
static void vUserTask( void *pvParameters );
static void vUserTask( void *pvParameters )
{
…
}
Putting the function prototype right above the function itself?
measurement of whole OS efficiency, advice
I have this function in main.c file. Thus, I have not prototype in header file and I wanted to avoid compiler warning…
Janusz