I'm facing a problem about the FEC which stops frames receiving in the
presence of a heavily loaded network. More in detail, I've configured
the FEC with only one receive buffer descriptor which is always
consumed inside the receive frame interrupt service routine. The
strategy I've implemented is the following:
1) RXF interrupt is rised due to a frame receiving. Since I have only one
receive buffer descriptor the FEC stops to process incoming frames
2) Inside the ISR I consume the buffer descriptor and FEC starts to
process incoming frames again because at least one receive buffer is
available at this time
I have analysed the problem under different point of views and I suspect
that when it occurs the reason is that the CPU misses the RXF interrupt.
My suspect is based on the fact that the CPU has to handle several other
interrupts other than the FEC ones, and the ISR policy I've implemented
plans to use nested interrupts using the priority scheme of Coldfire.
Is it possible that the CPU miss some interrupts ? For my knowledge every
pending interrupt is served during the time. I can accept that someone of the
same type is missed due to system performance but at least one should be
always rised and retriggered from the ISR using the flag clearing mechanism.
Do you have any ideas ?