Debugger stops OSSched() at: asm ("UCOSWAITS_HERE:")
Posted: Fri Oct 09, 2009 7:14 am
Does anyone know why my debugger would stop in the OSSched() at the line:
Is there an issue with my task switching? For reference, the complete OSSched function is below:
Code: Select all
asm ("UCOSWAITS_HERE:")
Code: Select all
void OSSched( void )
{
register volatile BYTE x, y, p;
UCOS_ENTER_CRITICAL();
if ( OSLockNesting == 0 && OSIntNesting == 0 )
{
y = OSUnMapTbl[OSRdyGrp];
x = OSRdyTbl[y];
p = ( y << 3 ) + OSUnMapTbl[x];
OSTCBHighRdy = OSTCBPrioTbl[p];
if ( OSTCBHighRdy != OSTCBCur )
{
#ifdef UCOS_TASKLIST
volatile DWORD *pStack = ( DWORD * ) OSTCBHighRdy->OSTCBStkPtr;
OSLogTaskPos( OSTCBHighRdy->OSTCBPrio, pStack[16] );
#endif
OS_TASK_SW();
asm (".global UCOSWAITS_HERE");
asm ("UCOSWAITS_HERE:");
//******************************
// DEBUGGER STOPS HERE:
if ( OSShowTasksOnLeds )
{
putleds( ( unsigned char ) ( OSTCBCur->OSTCBPrio ) );
}
}
}
UCOS_EXIT_CRITICAL();
}