FreeRTOS: Memory Management Realloc Issues

sunilpuli18 wrote on Thursday, May 26, 2016:

Hi Team,

I am using FreeRTOS on ARMCortex microcontroller. Everything is working fine.

But the issue is when i try to do malloc and free multiple times it will be in while loop it never comes out of it.

Same is the case with Realloc, if the same variable I try to increase the size with Realloc, it will never work, it will be in while loop it never comes out of it.

But ample memory space is there to allocate, but still it fails and gets struck in while loop.

I am using heap_4.c file for memory. void *pvPortMalloc( size_t xWantedSize ) and void vPortFree( void pv ) void pvPortReAlloc( void *pv, size_t xWantedSize ) these are the functions used.

Is there any limit on number of memory allocations allowed? I dont think that should create any problem.

Please help me in solving this issue.

Please provide me your kind assitance in solving this issue.

Thanks,Regards,
Kumar.

rtel wrote on Thursday, May 26, 2016:

heap_4, as provided by us, does not include pvPortReAlloc(), so I’m
afraid we can’t assist with that. I would recommend asking whoever
provided the code.

Regards.

sunilpuli18 wrote on Thursday, May 26, 2016:

Hi Team,

Thanks for the immediate reply. Thanks for your kind information.

so you mean to say FreeRTOS does not support Realloc functionality.

If it supports Realloc functionality, can you please share me the source for the same.

Please help me in solving this issue.

Please provide me your kind assitance in solving this issue.

Thanks,Regards,
Kumar.

rtel wrote on Thursday, May 26, 2016:

If you need to use realloc() then consider using heap_3.c. Note heap_3
just wraps the memory allocation provided by your C run time libraries
to make them thread safe, so does not use the configTOTAL_HEAP_SIZE
parameter, and the memory allocators suitability depends on the
compiler: http://www.freertos.org/a00111.html

sunilpuli18 wrote on Thursday, May 26, 2016:

Hi Team,

Thanks for the immediate reply. Thanks for your kind information.
Actually the entire image is built with heap_4, and additionally realloc function is added to this.so again reverting to the heap_3 requires complete image change.
So can you please help with the realloc function.
Please help me in solving this issue.
Please provide me your kind assitance in solving this issue.
Thanks,Regards,
Kumar.