sandeepsiv wrote on Wednesday, December 01, 2010:
When running the free rtos code uIP_Demo_IAR_ARM7, i cant initialise
xEMACInit();
On debug i found that
vTaskPrioritySet( NULL, tskIDLE_PRIORITY );
after this fuction is called, the control will finally goes to
static portTASK_FUNCTION( prvIdleTask, pvParameters )
and then exectes the fuction
prvCheckTasksWaitingTermination();
within the prvCheckTasksWaitingTermination function, the condition within
if( uxTasksDeleted > ( unsigned portBASE_TYPE ) 0 ) is
not checking.The default value set for uxTasksDeleted is 0. And this is
repeating.
The control not going to the
while( xSemaphore == NULL )
{
xSemaphore = xEMACInit();
}
vTaskPrioritySet( NULL, uxPriority );
/* Initialise the EMAC. A semaphore will be returned when this is
successful. This routine contains code that polls status bits. If the
Ethernet cable is not plugged in then this can take a considerable time.
To prevent this starving lower priority tasks of processing time we
lower our priority prior to the call, then raise it back again once the
initialisation is complete. */
uxPriority = uxTaskPriorityGet( NULL );
vTaskPrioritySet( NULL, tskIDLE_PRIORITY );
while( xSemaphore == NULL )
{
xSemaphore = xEMACInit();
}
vTaskPrioritySet( NULL, uxPriority );