Loading...
Searching...
No Matches
47#if( ( configCHECK_FOR_STACK_OVERFLOW == 1 ) && ( portSTACK_GROWTH < 0 ) )
50 #define taskCHECK_FOR_STACK_OVERFLOW() \
53 if( pxCurrentTCB->pxTopOfStack <= pxCurrentTCB->pxStack ) \
55 vApplicationStackOverflowHook( ( task_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \
62#if( ( configCHECK_FOR_STACK_OVERFLOW == 1 ) && ( portSTACK_GROWTH > 0 ) )
65 #define taskCHECK_FOR_STACK_OVERFLOW() \
69 if( pxCurrentTCB->pxTopOfStack >= pxCurrentTCB->pxEndOfStack ) \
71 vApplicationStackOverflowHook( ( task_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \
78#if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) && ( portSTACK_GROWTH < 0 ) )
80 #define taskCHECK_FOR_STACK_OVERFLOW() \
82 const uint32_t * const pulStack = ( uint32_t * ) pxCurrentTCB->pxStack; \
83 const uint32_t ulCheckValue = ( uint32_t ) 0xa5a5a5a5; \
85 if( ( pulStack[ 0 ] != ulCheckValue ) || \
86 ( pulStack[ 1 ] != ulCheckValue ) || \
87 ( pulStack[ 2 ] != ulCheckValue ) || \
88 ( pulStack[ 3 ] != ulCheckValue ) ) \
90 vApplicationStackOverflowHook( ( task_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \
97#if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) && ( portSTACK_GROWTH > 0 ) )
99 #define taskCHECK_FOR_STACK_OVERFLOW() \
101 int8_t *pcEndOfStack = ( int8_t * ) pxCurrentTCB->pxEndOfStack; \
102 static const uint8_t ucExpectedStackBytes[] = { tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, tskSTACK_FILL_BYTE, \
103 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 }; \
109 pcEndOfStack -= sizeof( ucExpectedStackBytes ); \
112 if( memcmp( ( void * ) pcEndOfStack, ( void * ) ucExpectedStackBytes, sizeof( ucExpectedStackBytes ) ) != 0 ) \
114 vApplicationStackOverflowHook( ( task_t ) pxCurrentTCB, pxCurrentTCB->pcTaskName ); \
122#ifndef taskCHECK_FOR_STACK_OVERFLOW
123 #define taskCHECK_FOR_STACK_OVERFLOW()