deboeck wrote on Sunday, March 22, 2009:


  I’m running FreeRTOS with IAR v5 on an Olimex LPC 2378 STK board.

  The debug log shows “The stack pointer for stack ‘CSTACK’ (currently 0x40008E90) is outside the stack range (0x40000040 to 0x40008040)”. Increasing the stack results in “exactly” the same error message. For instance “The stack pointer for stack ‘CSTACK’ (currently 0x40009E80) is outside the stack range (0x40000040 to 0x40009040)”.

  The difference between the top of the stack and the offending stack pointer equals in both cases.

  Does anyone have any idea what might be causing this?

  Your comments are appreciated!


rtel wrote on Monday, March 23, 2009:

The linker script defines the CSTACK segment, which is used as the stack when main() is called.  The stack of each task is allocated from the RTOS heap, which is not in the CSTACK segment, so when you start running tasks the IDE thinks the stack pointer is in invalid memory - but it isn’t it’s exactly where it should be.

You can safely ignore the warning.


frankandersen wrote on Monday, March 23, 2009:

You could decrease the CSTACK size, in the *.icf file, as Richard says it is only used when main() is called. So I would think that you do not need many bytes for that.

Richard do you have any idea of how much C stack is needed?

Regards, Frank

rtel wrote on Monday, March 23, 2009:

How much is required is completely dependent on what your code does prior to starting the scheduler - sorry for not giving a better answer but I cannot say more than that.

Best to check on your own application.