Skip to content

Commit c2bbe92

Browse files
Move some of the complex pre-processor guards on prvWriteNameToBuffer() to compile time checks in FreeRTOS.h.
Co-authored-by: Paul Bartell <[email protected]>
1 parent 8741c4f commit c2bbe92

File tree

2 files changed

+17
-17
lines changed

2 files changed

+17
-17
lines changed

include/FreeRTOS.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -961,6 +961,16 @@
961961
#define configSUPPORT_DYNAMIC_ALLOCATION 1
962962
#endif
963963

964+
#if ( ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION != 1 ) )
965+
#error configUSE_STATS_FORMATTING_FUNCTIONS cannot be used without dynamic allocation, but configSUPPORT_DYNAMIC_ALLOCATION is not set to 1.
966+
#endif
967+
968+
#if ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 )
969+
#if( ( configUSE_TRACE_FACILITY != 1 ) && ( configGENERATE_RUN_TIME_STATS != 1 ) )
970+
#error configUSE_STATS_FORMATTING_FUNCTIONS is 1 but the functions that enables are not used because neither configUSE_TRACE_FACILITY or configGENERATE_RUN_TIME_STATS are 1. Set configUSE_STATS_FORMATTING_FUNCTIONS to 0 in FreeRTOSConfig.h.
971+
#endif
972+
#endif
973+
964974
#ifndef configSTACK_DEPTH_TYPE
965975

966976
/* Defaults to uint16_t for backward compatibility, but can be overridden

tasks.c

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -516,9 +516,7 @@ static void prvAddCurrentTaskToDelayedList( TickType_t xTicksToWait,
516516
*/
517517
static void prvResetNextTaskUnblockTime( void ) PRIVILEGED_FUNCTION;
518518

519-
#if ( ( ( configUSE_TRACE_FACILITY == 1 ) || ( configGENERATE_RUN_TIME_STATS == 1 ) ) && \
520-
( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && \
521-
( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
519+
#if ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 )
522520

523521
/*
524522
* Helper function used to pad task names with spaces when printing out
@@ -4392,9 +4390,7 @@ static void prvResetNextTaskUnblockTime( void )
43924390
#endif /* portCRITICAL_NESTING_IN_TCB */
43934391
/*-----------------------------------------------------------*/
43944392

4395-
#if ( ( ( configUSE_TRACE_FACILITY == 1 ) || ( configGENERATE_RUN_TIME_STATS == 1 ) ) && \
4396-
( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && \
4397-
( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
4393+
#if ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 )
43984394

43994395
static char * prvWriteNameToBuffer( char * pcBuffer,
44004396
const char * pcTaskName )
@@ -4418,10 +4414,10 @@ static void prvResetNextTaskUnblockTime( void )
44184414
return &( pcBuffer[ x ] );
44194415
}
44204416

4421-
#endif /* ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) */
4417+
#endif /* ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) */
44224418
/*-----------------------------------------------------------*/
44234419

4424-
#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
4420+
#if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) )
44254421

44264422
void vTaskList( char * pcWriteBuffer )
44274423
{
@@ -4524,23 +4520,17 @@ static void prvResetNextTaskUnblockTime( void )
45244520
}
45254521
}
45264522

4527-
#endif /* ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) ) */
4523+
#endif /* ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) ) */
45284524
/*----------------------------------------------------------*/
45294525

4530-
#if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
4526+
#if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configUSE_TRACE_FACILITY == 1 ) )
45314527

45324528
void vTaskGetRunTimeStats( char * pcWriteBuffer )
45334529
{
45344530
TaskStatus_t * pxTaskStatusArray;
45354531
UBaseType_t uxArraySize, x;
45364532
configRUN_TIME_COUNTER_TYPE ulTotalTime, ulStatsAsPercentage;
45374533

4538-
#if ( configUSE_TRACE_FACILITY != 1 )
4539-
{
4540-
#error configUSE_TRACE_FACILITY must also be set to 1 in FreeRTOSConfig.h to use vTaskGetRunTimeStats().
4541-
}
4542-
#endif
4543-
45444534
/*
45454535
* PLEASE NOTE:
45464536
*
@@ -4651,7 +4641,7 @@ static void prvResetNextTaskUnblockTime( void )
46514641
}
46524642
}
46534643

4654-
#endif /* ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) && ( configSUPPORT_STATIC_ALLOCATION == 1 ) ) */
4644+
#endif /* ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) ) */
46554645
/*-----------------------------------------------------------*/
46564646

46574647
TickType_t uxTaskResetEventItemValue( void )

0 commit comments

Comments
 (0)