I am using FreeRTOS with STM32L4xx MCU. I am creating a task following way:
/* Create the thread(s) */ /* definition and creation of defaultTask */ osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, stacksize); defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
Here ther ‘stacksize’ is set to 512 i.e. (4 * configMINIMAL_STACK_SIZE). The configMINIMAL_STACK_SIZE macro is set to 128. But when I am setting ‘stacksize’ to 256 i.e. (2 * configMINIMAL_STACK_SIZE), it is not working properly.
Now to measure the requirement of stack for that task I called “uxTaskGetStackHighWaterMark()” within that task at two places, first at the beginning of the task and second after calling few functions from the task. The first call returns 0 and the second call returns 0x1E4. And that means around 484 words of stack is still free!!
Then why am I not able to reduce the stack size to 256 or to 128?
Appreciate your quick help.