Content originally posted in LPCWare by LPC_Buzz on Wed Jul 17 14:53:08 MST 2013
Hi,
I'm using NXP's EMAC Driver lpc177x_8x_emac.c.
When a packet is received, in the ENET_IRQHandler() a callback function registred as Emac_ConfigStruct.pfnFrameReceive is called.
If I spend a longer time processing the packet in this function (and implicitly in the interrupt routine) and during this a second packet is received, [u]it will not fire the interrupt again[/u]. The interrupt will be fired later, when the third packet arrives, and the EMAC driver will present actually the second packet as being ready to be processed.
In this scenario, I will receive the packet number N only when packet N+1 arrives.
Any idea how can I troubleshoot this? Making the interrupt routine faster works, but I need to make the system work in my scenario, with slower ENET_IRQHandler().
Thank you.