while creating a task, 4 times the ram is malloc'd than requested @ prvAllocateTCBAndStack()

hassan789 wrote on Friday, August 26, 2016:

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

Thanks

rtel wrote on Friday, August 26, 2016:

Please see the documentation for the xTaskCreate() API function:
http://www.freertos.org/a00125.html

richard_damon wrote on Friday, August 26, 2016:

Requested stack size is define to be in units of StackType_T, not bytes. Due to alignment reasons, it MUST be a multiple of StackType_T, so it is given in units of StackType_T.

hassan789 wrote on Friday, August 26, 2016:

understood… thanks