I am using FreeRTOS v8.2.3 on ZYNQ custom board. I am trying to figure out memory requirements of FreeRTOS, and first thing I have done is to print return value of function xPortGetFreeHeapSize before and after the task is created. When creating tasks, for each task is passed the same stack size (2048 bytes), so I would expect that when task is created, amount of FreeRTOS stack is reduced by that same stack size. However, after creating each task, FreeRTOS stack is reduced by size of around 8000 bytes (it’s not the same for each task, but almost as 4 * 2048 ), instead of expected 2048. I am using heap4.c.
What exactly I have been missing?