system heap dynamic size

vicui wrote on Friday, November 16, 2012:


as we know that the configTOTAL_HEAP_SIZE value is used by FreeRTOS to manage all running task.
i want to know the system heap dynamtic size which is defined in startup_stm32f2xx.s
Heap_Size       EQU     0x00004000

                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
Heap_Mem        SPACE   Heap_Size

i really want to get the dynamic value used in MALLOC and FREE.
anyone knows that ?


davedoors wrote on Friday, November 16, 2012:

I don’t think I understand your question. The heap that is defined in the code you post will only be used if either your project uses heap_3.c (heap_1, heap_2 and heap_4 do not use it), or your code uses malloc() and free() directly rather than pvPortMalloc() and vPortFree().

If you don’t use malloc() and free(), and use don’t use heap_3.c, and you are not using library functions that use malloc(), then you can set to size to 0 if the linker will let you, or 4 if the linker won’t let you as the RAM is just being wasted.

vicui wrote on Sunday, November 18, 2012:

I wonder to know that the memory is allocated from the HEAP my code define  when i use MALLOC / FREEfunction.
as my application use JSON library which use more MALLOC and FREE,  i found that the system become halt sometime.
i try to find if the HEAP to be used is not enough large or other issue.