Go to the documentation of this file.   29 #ifndef STACK_MACROS_H    30 #define STACK_MACROS_H    48 #if( ( configCHECK_FOR_STACK_OVERFLOW == 1 ) && ( portSTACK_GROWTH < 0 ) )    51         #define taskCHECK_FOR_STACK_OVERFLOW()                                                                                                                          \    54                 if( pxCurrentTCB->pxTopOfStack <= pxCurrentTCB->pxStack )                                                                               \    56                         vApplicationStackOverflowHook( ( TaskHandle_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName );       \    63 #if( ( configCHECK_FOR_STACK_OVERFLOW == 1 ) && ( portSTACK_GROWTH > 0 ) )    66         #define taskCHECK_FOR_STACK_OVERFLOW()                                                                                                                          \    70                 if( pxCurrentTCB->pxTopOfStack >= pxCurrentTCB->pxEndOfStack )                                                                  \    72                         vApplicationStackOverflowHook( ( TaskHandle_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName );       \    79 #if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) && ( portSTACK_GROWTH < 0 ) )    81         #define taskCHECK_FOR_STACK_OVERFLOW()                                                                                                                          \    83                 const uint32_t * const pulStack = ( uint32_t * ) pxCurrentTCB->pxStack;                                                 \    84                 const uint32_t ulCheckValue = ( uint32_t ) 0xa5a5a5a5;                                                                                  \    86                 if( ( pulStack[ 0 ] != ulCheckValue ) ||                                                                                                \    87                         ( pulStack[ 1 ] != ulCheckValue ) ||                                                                                            \    88                         ( pulStack[ 2 ] != ulCheckValue ) ||                                                                                            \    89                         ( pulStack[ 3 ] != ulCheckValue ) )                                                                                             \    91                         vApplicationStackOverflowHook( ( TaskHandle_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName );       \    98 #if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) && ( portSTACK_GROWTH > 0 ) )   100         #define taskCHECK_FOR_STACK_OVERFLOW()                                                                                                                                                                                          \   102         int8_t *pcEndOfStack = ( int8_t * ) pxCurrentTCB->pxEndOfStack;                                                                                                                                         \   103         static const uint8_t ucExpectedStackBytes[] = { tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE,         \   104                                                                                                         tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE,         \   105                                                                                                         tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE,         \   106                                                                                                         tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE,         \   107                                                                                                         tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE };       \   110                 pcEndOfStack -= sizeof( ucExpectedStackBytes );                                                                                                                                                                 \   113                 if( memcmp( ( void * ) pcEndOfStack, ( void * ) ucExpectedStackBytes, sizeof( ucExpectedStackBytes ) ) != 0 )                                   \   115                         vApplicationStackOverflowHook( ( TaskHandle_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName );                                                                       \   123 #ifndef taskCHECK_FOR_STACK_OVERFLOW   124         #define taskCHECK_FOR_STACK_OVERFLOW()