heap_2.c causes out of memory
Hello,
I am running this code:
void testMem(void *pvParameters)
{
unsigned char * mem;
for (int v = 0; v < 100000; v++)
{
for (int i = 1900; i < 2500; i++)
{
mem = (unsigned char *) pvPortMalloc((i) * sizeof(unsigned char));
if (NULL == mem)
{
// set breakpoint here
}
vPortFree(mem);
}
}
}
and after a while the mem becomes null and breakpoint is hitted. This code is running on CortexM3, LM3S8962 copiled by gcc or IAR and freeRTOS 5.4.2. Memory is configTOTAL_HEAP_SIZE ( ( size_t ) ( 32768 ) ).
This is a school problem example but I have discovered it in the real situation during receiving ethernet packets.
Have anyone the same problem?
Regard,
Martin
heap_2.c causes out of memory
This will be caused by memory fragmentation. See http://www.freertos.org/a00111.html where it says heap_2 "Should not be used if the memory being allocated and freed is of a random size".
heap_2.c causes out of memory
Hi Dave,
thanks a lot. This was my problem. I am trying to implement a bget maybe it will help.