rakeshtv wrote on Friday, April 19, 2013:
The crash occurs in the following block called from vTaskIncrementTick. The data suggests that pxTCB is corrupt resulting in a dabort exception. Taking that one step further, there is most likely a problem in the delayed task list.
Can anyone suggest if any fix was made in the delayed task lists. We are using the v6.0.4 version of free rtos code.
Please advice?
#define prvCheckDelayedTasks()
{
register tskTCB *pxTCB;
while( ( pxTCB = ( tskTCB * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedTaskList ) ) != NULL )
{
if( xTickCount < listGET_LIST_ITEM_VALUE( &( pxTCB->xGenericListItem ) ) )
{
break;
}
vListRemove( &( pxTCB->xGenericListItem ) );
/* Is the task waiting on an event also? */
if( pxTCB->xEventListItem.pvContainer )
{
vListRemove( &( pxTCB->xEventListItem ) );
}
prvAddTaskToReadyQueue( pxTCB );
}
}