#include "task.h"\r
#include "portmacro.h"\r
\r
+/* Standard includes. */\r
+#include "string.h"\r
+\r
#ifndef configCLINT_BASE_ADDRESS\r
#warning configCLINT_BASE_ADDRESS must be defined in FreeRTOSConfig.h. If the target chip includes a Core Local Interrupter (CLINT) then set configCLINT_BASE_ADDRESS to the CLINT base address. Otherwise set configCLINT_BASE_ADDRESS to 0.\r
#endif\r
#ifdef configISR_STACK_SIZE_WORDS\r
static __attribute__ ((aligned(16))) StackType_t xISRStack[ configISR_STACK_SIZE_WORDS ] = { 0 };\r
const StackType_t xISRStackTop = ( StackType_t ) &( xISRStack[ configISR_STACK_SIZE_WORDS & ~portBYTE_ALIGNMENT_MASK ] );\r
+\r
+ /* Don't use 0xa5 as the stack fill bytes as that is used by the kernerl for\r
+ the task stacks, and so will legitimately appear in many positions within\r
+ the ISR stack. */\r
+ #define portISR_STACK_FILL_BYTE 0xee \r
#else\r
extern const uint32_t __freertos_irq_stack_top[];\r
const StackType_t xISRStackTop = ( StackType_t ) __freertos_irq_stack_top;\r
stack checking. A problem in the ISR stack will trigger an assert, not call the\r
stack overflow hook function (because the stack overflow hook is specific to a\r
task stack, not the ISR stack). */\r
-#if( configCHECK_FOR_STACK_OVERFLOW > 2 )\r
+#if defined( configISR_STACK_SIZE_WORDS ) && ( configCHECK_FOR_STACK_OVERFLOW > 2 )\r
#warning This path not tested, or even compiled yet.\r
- /* Don't use 0xa5 as the stack fill bytes as that is used by the kernerl for\r
- the task stacks, and so will legitimately appear in many positions within\r
- the ISR stack. */\r
- #define portISR_STACK_FILL_BYTE 0xee\r
\r
static const uint8_t ucExpectedStackBytes[] = {\r
portISR_STACK_FILL_BYTE, portISR_STACK_FILL_BYTE, portISR_STACK_FILL_BYTE, portISR_STACK_FILL_BYTE, \\r
stack that was being used by main() prior to the scheduler being\r
started. */\r
configASSERT( ( xISRStackTop & portBYTE_ALIGNMENT_MASK ) == 0 );\r
+\r
+ #ifdef configISR_STACK_SIZE_WORDS\r
+ {\r
+ memset( ( void * ) xISRStack, portISR_STACK_FILL_BYTE, sizeof( xISRStack ) );\r
+ }\r
+ #endif /* configISR_STACK_SIZE_WORDS */\r
}\r
#endif /* configASSERT_DEFINED */\r
\r