mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-19 21:11:57 -04:00
Update the code that generates the run time stats strings so the pcStatsString[] array is not required.
This commit is contained in:
parent
a03b171992
commit
bb7b711ca9
|
@ -202,7 +202,6 @@ PRIVILEGED_DATA static volatile portTickType xNextTaskUnblockTime = ( portTic
|
||||||
|
|
||||||
#if ( configGENERATE_RUN_TIME_STATS == 1 )
|
#if ( configGENERATE_RUN_TIME_STATS == 1 )
|
||||||
|
|
||||||
PRIVILEGED_DATA static char pcStatsString[ 50 ] ;
|
|
||||||
PRIVILEGED_DATA static unsigned long ulTaskSwitchedInTime = 0UL; /*< Holds the value of a timer/counter the last time a task was switched in. */
|
PRIVILEGED_DATA static unsigned long ulTaskSwitchedInTime = 0UL; /*< Holds the value of a timer/counter the last time a task was switched in. */
|
||||||
PRIVILEGED_DATA static unsigned long ulTotalRunTime = 0UL; /*< Holds the total amount of execution time as defined by the run time counter clock. */
|
PRIVILEGED_DATA static unsigned long ulTotalRunTime = 0UL; /*< Holds the total amount of execution time as defined by the run time counter clock. */
|
||||||
static void prvGenerateRunTimeStatsForTasksInList( const signed char *pcWriteBuffer, xList *pxList, unsigned long ulTotalRunTimeDiv100 ) PRIVILEGED_FUNCTION;
|
static void prvGenerateRunTimeStatsForTasksInList( const signed char *pcWriteBuffer, xList *pxList, unsigned long ulTotalRunTimeDiv100 ) PRIVILEGED_FUNCTION;
|
||||||
|
@ -2472,22 +2471,25 @@ tskTCB *pxNewTCB;
|
||||||
{
|
{
|
||||||
volatile tskTCB *pxNextTCB, *pxFirstTCB;
|
volatile tskTCB *pxNextTCB, *pxFirstTCB;
|
||||||
unsigned long ulStatsAsPercentage;
|
unsigned long ulStatsAsPercentage;
|
||||||
|
size_t xExistingStringLength;
|
||||||
|
|
||||||
/* Write the run time stats of all the TCB's in pxList into the buffer. */
|
/* Write the run time stats of all the TCB's in pxList into the buffer. */
|
||||||
listGET_OWNER_OF_NEXT_ENTRY( pxFirstTCB, pxList );
|
listGET_OWNER_OF_NEXT_ENTRY( pxFirstTCB, pxList );
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
/* Get next TCB in from the list. */
|
/* Get next TCB from the list. */
|
||||||
listGET_OWNER_OF_NEXT_ENTRY( pxNextTCB, pxList );
|
listGET_OWNER_OF_NEXT_ENTRY( pxNextTCB, pxList );
|
||||||
|
|
||||||
/* Divide by zero check. */
|
/* Divide by zero check. */
|
||||||
if( ulTotalRunTimeDiv100 > 0UL )
|
if( ulTotalRunTimeDiv100 > 0UL )
|
||||||
{
|
{
|
||||||
|
xExistingStringLength = strlen( pcWriteBuffer );
|
||||||
|
|
||||||
/* Has the task run at all? */
|
/* Has the task run at all? */
|
||||||
if( pxNextTCB->ulRunTimeCounter == 0UL )
|
if( pxNextTCB->ulRunTimeCounter == 0UL )
|
||||||
{
|
{
|
||||||
/* The task has used no CPU time at all. */
|
/* The task has used no CPU time at all. */
|
||||||
sprintf( pcStatsString, ( char * ) "%s\t\t0\t\t0%%\r\n", pxNextTCB->pcTaskName );
|
sprintf( &( pcWriteBuffer[ xExistingStringLength ] ), ( char * ) "%s\t\t0\t\t0%%\r\n", pxNextTCB->pcTaskName );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -2500,13 +2502,13 @@ tskTCB *pxNewTCB;
|
||||||
{
|
{
|
||||||
#ifdef portLU_PRINTF_SPECIFIER_REQUIRED
|
#ifdef portLU_PRINTF_SPECIFIER_REQUIRED
|
||||||
{
|
{
|
||||||
sprintf( pcStatsString, ( char * ) "%s\t\t%lu\t\t%lu%%\r\n", pxNextTCB->pcTaskName, pxNextTCB->ulRunTimeCounter, ulStatsAsPercentage );
|
sprintf( &( pcWriteBuffer[ xExistingStringLength ] ), ( char * ) "%s\t\t%lu\t\t%lu%%\r\n", pxNextTCB->pcTaskName, pxNextTCB->ulRunTimeCounter, ulStatsAsPercentage );
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
{
|
{
|
||||||
/* sizeof( int ) == sizeof( long ) so a smaller
|
/* sizeof( int ) == sizeof( long ) so a smaller
|
||||||
printf() library can be used. */
|
printf() library can be used. */
|
||||||
sprintf( pcStatsString, ( char * ) "%s\t\t%u\t\t%u%%\r\n", pxNextTCB->pcTaskName, ( unsigned int ) pxNextTCB->ulRunTimeCounter, ( unsigned int ) ulStatsAsPercentage );
|
sprintf( &( pcWriteBuffer[ xExistingStringLength ] ), ( char * ) "%s\t\t%u\t\t%u%%\r\n", pxNextTCB->pcTaskName, ( unsigned int ) pxNextTCB->ulRunTimeCounter, ( unsigned int ) ulStatsAsPercentage );
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -2516,19 +2518,17 @@ tskTCB *pxNewTCB;
|
||||||
consumed less than 1% of the total run time. */
|
consumed less than 1% of the total run time. */
|
||||||
#ifdef portLU_PRINTF_SPECIFIER_REQUIRED
|
#ifdef portLU_PRINTF_SPECIFIER_REQUIRED
|
||||||
{
|
{
|
||||||
sprintf( pcStatsString, ( char * ) "%s\t\t%lu\t\t<1%%\r\n", pxNextTCB->pcTaskName, pxNextTCB->ulRunTimeCounter );
|
sprintf( &( pcWriteBuffer[ xExistingStringLength ] ), ( char * ) "%s\t\t%lu\t\t<1%%\r\n", pxNextTCB->pcTaskName, pxNextTCB->ulRunTimeCounter );
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
{
|
{
|
||||||
/* sizeof( int ) == sizeof( long ) so a smaller
|
/* sizeof( int ) == sizeof( long ) so a smaller
|
||||||
printf() library can be used. */
|
printf() library can be used. */
|
||||||
sprintf( pcStatsString, ( char * ) "%s\t\t%u\t\t<1%%\r\n", pxNextTCB->pcTaskName, ( unsigned int ) pxNextTCB->ulRunTimeCounter );
|
sprintf( &( pcWriteBuffer[ xExistingStringLength ] ), ( char * ) "%s\t\t%u\t\t<1%%\r\n", pxNextTCB->pcTaskName, ( unsigned int ) pxNextTCB->ulRunTimeCounter );
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
strcat( ( char * ) pcWriteBuffer, ( char * ) pcStatsString );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} while( pxNextTCB != pxFirstTCB );
|
} while( pxNextTCB != pxFirstTCB );
|
||||||
|
|
Loading…
Reference in a new issue