richard_damon wrote on Thursday, September 08, 2011:
Your PROGRAMS stack and heap size are normally set with compiler/linker options. Since you didn’t say which one you are using, it is hard to help you more on where to set those. If your program is using heap1.c or heap2.c, then size of the memory block that FreeRTOS uses for its heap is configured with a parameter in FreeRTOSConfig.h, this will NOT affect how much memory is allocated to the C library heap. Anything the linker report calls “heap” will be the C library heap, not the FreeRTOS heap which will look just like a chunk of statically declared memory usage (which is how it is implemented)
Your programs starting stack, is normally only used for your startup code, and in some ports, for the interrupt stack. It is NOT used by any of the tasks.
Task stacks are allocated from the FreeRTOS heap, which if you use heap3.c is the C library heap, otherwise it is the separate chunk of memory described previously.