Static task memory allocation issue (FREERTOS 9.0.0)

aseris wrote on Monday, March 27, 2017:

There is a mistake in official example for static memory allocation for IDLE task and Timers task.
http://www.freertos.org/a00110.html#configSUPPORT_STATIC_ALLOCATION

Found this issue when task list becomes corrupted and I start figure outing what happened with debug plugin in IDE.

The issue is in lines
static **StaticTask_**t xIdleTaskTCB;
static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ];

and

static StaticTask_t xTimerTaskTCB;
static StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ];

the example proposes to allocate only 1/2/4 bytes of RAM to store TBC_t structure which is >100 bytes long

Example code “works” until allocated stack is enough big and stack overflow check algorithms did not turned on.

the correct code could be

staticTCB_t xIdleTaskTCB;

But, type xIdleTaskTCB is described inside tasks.c.

aseris wrote on Monday, March 27, 2017:

Sorry, incorrectly read StaticTask_t as StackType_t .
No issue.