FreeRTOS IP doesn't answer ARP frame

Now I have a doubt:
I have in FreeRTOSConfig.h
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 46 * 1024 ) )
And I have in the linker file stm32f767xx_flash.icf:
define symbol ICFEDIT_size_heap = 0x8000;

I guess FreeRTOS is using configTOTAL_HEAP_SIZE instead since it declares an array in heap4.c

PRIVILEGED_DATA static uint8_t ucHeap[ configTOTAL_HEAP_SIZE ];

So my attempt of increasing the Heap by changing the linker file from 0x200 to 0x8000 was pointless. This was not the problem…

The ping service is enabled and it works fine:
Pinging 192.168.0.10 with 32 bytes of data:
Reply from 192.168.0.10: bytes=32 time<1ms TTL=128

I have changed the Heap to 96Kbytes and it WORKS :slight_smile:
But if I put it 128Kbytes it crashes…

So can I conclude that FreeRTOS does not use the heap declared in the linker file?
Can I put it back to 0x200, which is like not having a heap almost…

many thanks

As you’ve seen, the FreeRTOS heap implementation uses an plain C-array as heap space. It’s not related to the heap section in the linker script. The array is part of the bss section covering uninitialized data. You can remove/minimize the heap section in the linker script. If not needed, it’s just a waste of memory.

understood.
linker file heap size back to 512 and all is wroking.

many thanks for your help.