mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-19 21:11:57 -04:00
Suppress MISRA C:2012 rule 21.6 for snprintf (#877)
Suppress MISRA C:2012 rule 21.6 for snprintf
This commit is contained in:
parent
877484cd7e
commit
d95b05ea5f
9
MISRA.md
9
MISRA.md
|
@ -107,6 +107,15 @@ _Ref 11.5.5_
|
|||
because data storage buffers are implemented as uint8_t arrays for the
|
||||
ease of sizing, alignment and access.
|
||||
|
||||
#### Rule 21.6
|
||||
|
||||
MISRA C-2012 Rule 21.6: The Standard Library input/output functions shall not
|
||||
be used.
|
||||
|
||||
_Ref 21.6.1_
|
||||
- The Standard Library function snprintf is used in vTaskListTasks and
|
||||
vTaskGetRunTimeStatistics APIs, both of which are utility functions only and
|
||||
are not considered part of core kernel implementation.
|
||||
|
||||
### MISRA configuration
|
||||
|
||||
|
|
28
tasks.c
28
tasks.c
|
@ -7348,6 +7348,9 @@ static void prvResetNextTaskUnblockTime( void )
|
|||
{
|
||||
/* Write the rest of the string. */
|
||||
#if ( ( configUSE_CORE_AFFINITY == 1 ) && ( configNUMBER_OF_CORES > 1 ) )
|
||||
/* MISRA Ref 21.6.1 [snprintf for utility] */
|
||||
/* More details at: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/MISRA.md#rule-216 */
|
||||
/* coverity[misra_c_2012_rule_21_6_violation] */
|
||||
iSnprintfReturnValue = snprintf( pcWriteBuffer,
|
||||
uxBufferLength - uxConsumedBufferLength,
|
||||
"\t%c\t%u\t%u\t%u\t0x%x\r\n",
|
||||
|
@ -7355,15 +7358,18 @@ static void prvResetNextTaskUnblockTime( void )
|
|||
( unsigned int ) pxTaskStatusArray[ x ].uxCurrentPriority,
|
||||
( unsigned int ) pxTaskStatusArray[ x ].usStackHighWaterMark,
|
||||
( unsigned int ) pxTaskStatusArray[ x ].xTaskNumber,
|
||||
( unsigned int ) pxTaskStatusArray[ x ].uxCoreAffinityMask ); /*lint !e586 sprintf() allowed as this is compiled with many compilers and this is a utility function only - not part of the core kernel implementation. */
|
||||
( unsigned int ) pxTaskStatusArray[ x ].uxCoreAffinityMask );
|
||||
#else /* ( ( configUSE_CORE_AFFINITY == 1 ) && ( configNUMBER_OF_CORES > 1 ) ) */
|
||||
/* MISRA Ref 21.6.1 [snprintf for utility] */
|
||||
/* More details at: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/MISRA.md#rule-216 */
|
||||
/* coverity[misra_c_2012_rule_21_6_violation] */
|
||||
iSnprintfReturnValue = snprintf( pcWriteBuffer,
|
||||
uxBufferLength - uxConsumedBufferLength,
|
||||
"\t%c\t%u\t%u\t%u\r\n",
|
||||
cStatus,
|
||||
( unsigned int ) pxTaskStatusArray[ x ].uxCurrentPriority,
|
||||
( unsigned int ) pxTaskStatusArray[ x ].usStackHighWaterMark,
|
||||
( unsigned int ) pxTaskStatusArray[ x ].xTaskNumber ); /*lint !e586 sprintf() allowed as this is compiled with many compilers and this is a utility function only - not part of the core kernel implementation. */
|
||||
( unsigned int ) pxTaskStatusArray[ x ].xTaskNumber );
|
||||
#endif /* ( ( configUSE_CORE_AFFINITY == 1 ) && ( configNUMBER_OF_CORES > 1 ) ) */
|
||||
uxCharsWrittenBySnprintf = prvSnprintfReturnValueToCharsWritten( iSnprintfReturnValue, uxBufferLength - uxConsumedBufferLength );
|
||||
|
||||
|
@ -7496,21 +7502,27 @@ static void prvResetNextTaskUnblockTime( void )
|
|||
{
|
||||
#ifdef portLU_PRINTF_SPECIFIER_REQUIRED
|
||||
{
|
||||
/* MISRA Ref 21.6.1 [snprintf for utility] */
|
||||
/* More details at: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/MISRA.md#rule-216 */
|
||||
/* coverity[misra_c_2012_rule_21_6_violation] */
|
||||
iSnprintfReturnValue = snprintf( pcWriteBuffer,
|
||||
uxBufferLength - uxConsumedBufferLength,
|
||||
"\t%lu\t\t%lu%%\r\n",
|
||||
pxTaskStatusArray[ x ].ulRunTimeCounter,
|
||||
ulStatsAsPercentage );
|
||||
}
|
||||
#else
|
||||
#else /* ifdef portLU_PRINTF_SPECIFIER_REQUIRED */
|
||||
{
|
||||
/* sizeof( int ) == sizeof( long ) so a smaller
|
||||
* printf() library can be used. */
|
||||
/* MISRA Ref 21.6.1 [snprintf for utility] */
|
||||
/* More details at: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/MISRA.md#rule-216 */
|
||||
/* coverity[misra_c_2012_rule_21_6_violation] */
|
||||
iSnprintfReturnValue = snprintf( pcWriteBuffer,
|
||||
uxBufferLength - uxConsumedBufferLength,
|
||||
"\t%u\t\t%u%%\r\n",
|
||||
( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter,
|
||||
( unsigned int ) ulStatsAsPercentage ); /*lint !e586 sprintf() allowed as this is compiled with many compilers and this is a utility function only - not part of the core kernel implementation. */
|
||||
( unsigned int ) ulStatsAsPercentage );
|
||||
}
|
||||
#endif /* ifdef portLU_PRINTF_SPECIFIER_REQUIRED */
|
||||
}
|
||||
|
@ -7520,6 +7532,9 @@ static void prvResetNextTaskUnblockTime( void )
|
|||
* consumed less than 1% of the total run time. */
|
||||
#ifdef portLU_PRINTF_SPECIFIER_REQUIRED
|
||||
{
|
||||
/* MISRA Ref 21.6.1 [snprintf for utility] */
|
||||
/* More details at: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/MISRA.md#rule-216 */
|
||||
/* coverity[misra_c_2012_rule_21_6_violation] */
|
||||
iSnprintfReturnValue = snprintf( pcWriteBuffer,
|
||||
uxBufferLength - uxConsumedBufferLength,
|
||||
"\t%lu\t\t<1%%\r\n",
|
||||
|
@ -7529,10 +7544,13 @@ static void prvResetNextTaskUnblockTime( void )
|
|||
{
|
||||
/* sizeof( int ) == sizeof( long ) so a smaller
|
||||
* printf() library can be used. */
|
||||
/* MISRA Ref 21.6.1 [snprintf for utility] */
|
||||
/* More details at: https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/main/MISRA.md#rule-216 */
|
||||
/* coverity[misra_c_2012_rule_21_6_violation] */
|
||||
iSnprintfReturnValue = snprintf( pcWriteBuffer,
|
||||
uxBufferLength - uxConsumedBufferLength,
|
||||
"\t%u\t\t<1%%\r\n",
|
||||
( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter ); /*lint !e586 sprintf() allowed as this is compiled with many compilers and this is a utility function only - not part of the core kernel implementation. */
|
||||
( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter );
|
||||
}
|
||||
#endif /* ifdef portLU_PRINTF_SPECIFIER_REQUIRED */
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue