mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-20 05:21:59 -04:00
Introduce the portALT_GET_RUN_TIME_COUNTER_VALUE macro as an alternative to portGET_RUN_TIME_COUNTER_VALUE to make inlining of the run time stats functions easier.
This commit is contained in:
parent
f57fa8bf72
commit
95080a22f2
|
@ -391,7 +391,9 @@ typedef portBASE_TYPE (*pdTASK_HOOK_CODE)( void * );
|
||||||
#endif /* portCONFIGURE_TIMER_FOR_RUN_TIME_STATS */
|
#endif /* portCONFIGURE_TIMER_FOR_RUN_TIME_STATS */
|
||||||
|
|
||||||
#ifndef portGET_RUN_TIME_COUNTER_VALUE
|
#ifndef portGET_RUN_TIME_COUNTER_VALUE
|
||||||
#error If configGENERATE_RUN_TIME_STATS is defined then portGET_RUN_TIME_COUNTER_VALUE must also be defined. portGET_RUN_TIME_COUNTER_VALUE should evaluate to the counter value of the timer/counter peripheral used as the run time counter time base.
|
#ifndef portALT_GET_RUN_TIME_COUNTER_VALUE
|
||||||
|
#error If configGENERATE_RUN_TIME_STATS is defined then either portGET_RUN_TIME_COUNTER_VALUE or portALT_GET_RUN_TIME_COUNTER_VALUE must also be defined. See the examples provided and the FreeRTOS web site for more information.
|
||||||
|
#endif /* portALT_GET_RUN_TIME_COUNTER_VALUE */
|
||||||
#endif /* portGET_RUN_TIME_COUNTER_VALUE */
|
#endif /* portGET_RUN_TIME_COUNTER_VALUE */
|
||||||
|
|
||||||
#endif /* configGENERATE_RUN_TIME_STATS */
|
#endif /* configGENERATE_RUN_TIME_STATS */
|
||||||
|
|
|
@ -1284,20 +1284,17 @@ unsigned portBASE_TYPE uxTaskGetNumberOfTasks( void )
|
||||||
unsigned portBASE_TYPE uxQueue;
|
unsigned portBASE_TYPE uxQueue;
|
||||||
unsigned long ulTotalRunTime;
|
unsigned long ulTotalRunTime;
|
||||||
|
|
||||||
/* A critical section is used because portGET_RUN_TIME_COUNTER_VALUE()
|
|
||||||
is implemented differently on different ports, so its not known if a
|
|
||||||
critical section is needed or not. */
|
|
||||||
taskENTER_CRITICAL();
|
|
||||||
{
|
|
||||||
ulTotalRunTime = portGET_RUN_TIME_COUNTER_VALUE();
|
|
||||||
}
|
|
||||||
taskEXIT_CRITICAL();
|
|
||||||
|
|
||||||
/* This is a VERY costly function that should be used for debug only.
|
/* This is a VERY costly function that should be used for debug only.
|
||||||
It leaves interrupts disabled for a LONG time. */
|
It leaves interrupts disabled for a LONG time. */
|
||||||
|
|
||||||
vTaskSuspendAll();
|
vTaskSuspendAll();
|
||||||
{
|
{
|
||||||
|
#ifdef portALT_GET_RUN_TIME_COUNTER_VALUE
|
||||||
|
portALT_GET_RUN_TIME_COUNTER_VALUE( ulTotalRunTime );
|
||||||
|
#else
|
||||||
|
ulTotalRunTime = portGET_RUN_TIME_COUNTER_VALUE();
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Run through all the lists that could potentially contain a TCB,
|
/* Run through all the lists that could potentially contain a TCB,
|
||||||
generating a table of run timer percentages in the provided
|
generating a table of run timer percentages in the provided
|
||||||
buffer. */
|
buffer. */
|
||||||
|
@ -1603,7 +1600,13 @@ void vTaskSwitchContext( void )
|
||||||
|
|
||||||
#if ( configGENERATE_RUN_TIME_STATS == 1 )
|
#if ( configGENERATE_RUN_TIME_STATS == 1 )
|
||||||
{
|
{
|
||||||
unsigned long ulTempCounter = portGET_RUN_TIME_COUNTER_VALUE();
|
unsigned long ulTempCounter;
|
||||||
|
|
||||||
|
#ifdef portALT_GET_RUN_TIME_COUNTER_VALUE
|
||||||
|
portALT_GET_RUN_TIME_COUNTER_VALUE( ulTempCounter );
|
||||||
|
#else
|
||||||
|
ulTempCounter = portGET_RUN_TIME_COUNTER_VALUE();
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Add the amount of time the task has been running to the accumulated
|
/* Add the amount of time the task has been running to the accumulated
|
||||||
time so far. The time the task started running was stored in
|
time so far. The time the task started running was stored in
|
||||||
|
|
Loading…
Reference in a new issue