Hi,
I am having some strange behavior with Ethernet in MPC5748G. i have successfully configured and perform transmission and reception from controller but in TXF interrupt after transmission if i read the status of any transmission buffer descriptor then that specific buffer descriptor somehow becomes locked and status bit (Ready) is never reset to 0 in that buffer descriptor for successive transmission calls even though frame is transmitted successfully on bus.
here is a sample code which causes issue,
if ((TxBufDesc[i].ControlWord0 & 0x80000000u) == 1) // Ready bit
{
transmission_flag = 1;
}
now if i remove the above given check then successive transmissions are successful and buffer descriptor's Ready bit is reset to 0 by ENET controller.
已解决! 转到解答。
Hi Danish,
This could be caused by cache. So try to disable the cache at all, or disable caching of the memory areas where TX/RX Buffer descriptors and TX/RX buffers are placed.
BR, Petr