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 needsipconfigZERO_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.