FreeRTOS PlusTCP hard fault with Atmel Cortex SAM4E

Actually the problem was related to the configMAC_INTERRUPT_PRIORITY
wich was defined below configMAX_SYSCALL_INTERRUPT_PRIORITY.

It is very important to have configASSERT() defined properly while developing. It will also warn about wrong interrupt priorities. When you don’t enable configASSERT(), you would get a hard-to-understand exception.

But I was not able to use the new driver above DriverSAM_2020_mar_3.zip
wich needs ipconfigZERO_COPY_

I wrote about the memory configuration in this post. With zero-copy, the driver will reserve GMAC_RX_BUFFERS network buffers in advance. The post describes how to configure these network- and DMA-buffers.

When I use it, after a while a got several “Network buffers:” messages

The number of free network buffers are logged whenever the minimum amount of buffers has changed. These messages look like: Network buffers: 6 lowest 5.

If you see this number going down to 0, please check the configuration.

Also note that UDP sockets store incoming packets in a queue of network buffers. Unless you call FreeRTOS_recvfrom() regularly, the buffers may get exhausted.