When createing a task with 4kB of stack, prvAllocateTCBAndStack() executes the following line:
pxNewTCB->pxStack = ( StackType_t * ) pvPortMallocAligned( ( ( ( size_t ) usStackDepth ) * sizeof( StackType_t ) ), puxStackBuffer );
This does a mallco of 4kB * sizeof( StackType_t ).. which means it mallocs 16kB... why is that?
I am running FreeRTOS v8 and Heap4
Please see the documentation for the xTaskCreate() API function:
Requested stack size is define to be in units of StackTypeT, not bytes. Due to alignment reasons, it MUST be a multiple of StackTypeT, so it is given in units of StackType_T.