Is the build analyzer in cubeide accurate when using freertos?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2020-07-31 7:28 PM
Can someone tell me if this is accurate when using freertos! using lots of ram and i'm only getting started so I'm trying to gauge how i'm going. I plan to move the heap too CCM ram if i get stuck.
Thanks
Solved! Go to Solution.
- Labels:
-
FreeRTOS
-
STM32CubeIDE
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2020-08-01 12:15 AM
The build analyzer is not FreeRTOS aware. If you view its Memory Details tab, you see how FLASH and RAM usage is calculated: it includes static memory requirements plus _Min_Heap_Size + _Min_Stack_Size space in RAM. These are the values you supplied in the .ioc file (Project Manager tab) or the built-in defaults if you didn't. They are used to assure that the heap can grow to _Min_Heap_Size and the stack can grow to _Min_Stack_Size without overlap. You could change them to your estimates and re-build the project to check if there will be still sufficient RAM.
You should study https://www.freertos.org/FAQMem.html and check/tune the settings in FreeRTOSConfig.h before estimating the sizes.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2020-08-01 12:14 AM
They are accurate. Even when you use freeRTOS dynamic memory allocation. By default the maximum value of memory that you have configured for freeRTOS is reserved at compile time. Also check different heap_X.c files for more options.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2020-08-01 12:15 AM
The build analyzer is not FreeRTOS aware. If you view its Memory Details tab, you see how FLASH and RAM usage is calculated: it includes static memory requirements plus _Min_Heap_Size + _Min_Stack_Size space in RAM. These are the values you supplied in the .ioc file (Project Manager tab) or the built-in defaults if you didn't. They are used to assure that the heap can grow to _Min_Heap_Size and the stack can grow to _Min_Stack_Size without overlap. You could change them to your estimates and re-build the project to check if there will be still sufficient RAM.
You should study https://www.freertos.org/FAQMem.html and check/tune the settings in FreeRTOSConfig.h before estimating the sizes.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2020-08-01 5:10 PM
Thanks, this helped me find what i need. using the nxp tools for eclipse i can view my heap usage live. From what i understand the task stacks come out of the heap. So as long as my heap usage while running is healthy i should be alright?
Thanks
