Description
Hi,
My project needs non-blocking Ethernet so I started using this repo with FreeRTOS to achieve that. I soon encountered problems with the interrupt design of the Ethernet implementation. The board always hang in places where the Ethernet implementation uses HAL_GetTick
or HAL_Delay
from its interrupt. I tracked it down and found that the FreeRTOS system interrupt stopped to get called and FreeRTOS internal ticks was never increased, causing the delays to never end.
I tried to fix the issue by increasing the priority of FreeRTOS's interrupt by never got it to work.
What I found to be a working solution is to skip using the Ethernet interrupt and set up a FreeRTOS task to handle calls to Ethernet.schedule()
. Could you add a define to toggle the interrupt behavior on/off for use with FreeRTOS? or is there any better way to handle this?