[...]
I use "freertos-teensy" in my project. It allocates the task stacks on the MCU stack. So, it "steals" stack size:
even "free for local variables:xxxx" looks large, the freertos grabs a lot from it - no idea how much is left really for local variables.
This CANNOT be seen neither reported by the compiler and linker script. How much of stack will be "pre-allocated" due to tasks/threads? Get a clue how much stack size is allocated,
by third party code (freertos), by the FW code used...
[...]
freertos-teensy (or FreeRTOS in general) doesn't allocate the task's stacks on the MCU stack. If you use xTaskCreate() to create a task, the stack is allocated with malloc() on the heap. If you use xTaskCreateStatic(), you must pass a pointer to an array defined by yourself to be used for the stack. The stack size must be passed as a parameter to xTaskCreate() or xTaskCreateStatic(), so you need to select it and therefore should know how much memory is reserved for a task's stack. See the documentation for more details.