FreeRTOS Support Archive
The FreeRTOS support forum is used to obtain active support directly from Real
Time Engineers Ltd. In return for using our top quality software and services for
free, we request you play fair and do your bit to help others too! Sign up
to receive notifications of new support topics then help where you can.
This is a read only archive of threads posted to the FreeRTOS support forum.
The archive is updated every week, so will not always contain the very latest posts.
Use these archive pages to search previous posts. Use the Live FreeRTOS Forum
link to reply to a post, or start a new support thread.
[FreeRTOS Home] [Live FreeRTOS Forum] [FAQ] [Archive Top] [November 2016 Threads]
Hello people,
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?
Beware that StackSize arg is NOT just bytes. It's the number of portSTACK_TYPE.
From the Ref.Doc:
'... The value specifies the number of words the stack can hold, not the number
of bytes. For example, on an architecture with a 4 byte stack width, if
usStackDepth is passed in as 100, then 400 bytes of stack space will be
allocated (100 * 4 bytes) ...'
Of course, that's it. This was quick and simple. Thanks.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.