spreetsingh wrote on Thursday, October 15, 2009:
I am using the crossworks studio and sample code for 2294 from Rowley and trying to integrate FreeRTOS in to the project. I have created 1 LED task that is supposed to flash the LED on the board. There is no other task created for this test… Code compiles OK.
The code for the task is:
static void vLEDTask( void *pvParameters )
{
for( ;; )
{
ledOff();
vTaskDelay( xLED_Delay );
ledOn();
vTaskDelay( xLED_Delay );
}
}
When vTaskStartScheduler() is called after creating the task, it setsup the scheduler and eventually runs the ledTask. (I can put a break point and see that it gets here all the time). When it executes the vDelayTask, the task is put in the pxDelayedTasList. And since no other task is there, the idle task starts executing. I am monitoring the number of times it goes thru the vApplicationTickHook and ApplicationIdleHook by using counters.
From the counters I can see that the IdleHook code is executed may be 160 times before the tickHook is called. But if it is allowed to run without break points, it goes to either data abort or pabort.
Timer interrupt seems to be working.
Any ideas what is happening? Is there an issue with initialization?