Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem


heap usage

Posted by Jesper Matthiesen on November 7, 2008

I have on several occasions experienced that increasing heap will make the difference between a working and non-working application.. Even when checking the returned values from all functions that allocates from the heap (create tasks, semaphores, mutexes, queues, etc), I am still not informed that I have too little heap allocated.. Any thoughts on why this is so? or is the heap used elsewhere and im just not realizing it?

Any ideas on how to minimize heap usage in general? I think just creating something "simple" like another semaphore seems to require more heap than I would expect.


nb. running on a ATMega32/FRTOS 5 and create/init everything *before* i start the scheduler.

RE: heap usage

Posted by MEdwards on November 8, 2008
Do you check that the call to vTaskStartScheduler() does not return? If it does then you have too little heap for the idle task to be created.

The heaps are just large arrays. You can do thinks that fill them with known values when you allocate and unallocate blocks to see what is used and what not. Also you can inspect the variables that are used to allocate and unallocate.

[ Back to the top ]    [ About FreeRTOS ]    [ Privacy ]    [ Sitemap ]    [ ]

Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.

Latest News

NXP tweet showing LPC5500 (ARMv8-M Cortex-M33) running FreeRTOS.

Version 10.1.1 of the FreeRTOS kernel is available for immediate download. MIT licensed.

View a recording of the "OTA Update Security and Reliability" webinar, presented by TI and AWS.


FreeRTOS and other embedded software careers at AWS.

FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

Espressif ESP32

IAR Partner

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers


STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0

Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers

OpenRTOS and SafeRTOS

Xilinx Microblaze and Zynq partner