FreeRTOS with Rowley - AT91R4008

nobody wrote on Wednesday, April 11, 2007:

I have ported the FreeRTOS code (ver 4.2.1) on Atmel EB01 board. I am able to compile and link under Rowley IDE. However, to test it, I bypassed all the tasks and just called
vTaskStartScheduler() in the main with the assumption that this call will create an idle task and start the whole system. Also, I added the following code in the main() to see if the timer interrupt was working.

void vApplicationIdleHook(void){
static portLONG testCount = 0;;
   if (((testCount = xTaskGetTickCount())% 50) == 0){
    vParTestToggleLED( 1 );
    }
}

Essentially, this routine checks to see if the timerTick was ticking or not and seems to work fine.
Now I added another dummy task to check the opeartion of the freeRTOS.
xTaskCreate( vDlyTest, ( signed portCHAR * ) "DlyCheck", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );

Task code is:
static void vDlyTest( void *pvParameters )
{
   // delay task for 200 ticks and then toggle the led

    for( ;; )
    {
    /* Delay until it is time to execute again. */
    vTaskDelay( 200 );
        vParTestToggleLED( 0 );
        
    }
}

This task is created - I can see the program go thru the vTaskDelay function after the scheduler is invoked but now the timer interrupt is not happening with the result the system is non functional.

What could cause the interrupt to be disabled by adding this function?    

nobody wrote on Thursday, April 12, 2007:

I found the problem. Sorry for the post

embeddedc wrote on Thursday, April 12, 2007:

>Sorry for the post

No problem, but it would be good if you could give some info on what the problem was so other people doing the same can learn.

nobody wrote on Thursday, April 12, 2007:

I missed adding the vPortYieldProcessor() under the swi_handler with the result there was no yielding of the processor…