Other Parts Discussed in Thread: AM3359, SYSBIOS
Hi,
I'm testing NDK for reliability in TCP socket communication, using tcpEcho example in folder C:\ti\tirtos_sitara_2_00_01_23\packages\examples, along with tcpSendReceive.exe utility.
Works great, until I add to my system some DMA transfers from an FPGA to DDR:
- DMA tranfers one block of 800 bytes from FPGA to DDR
- tranfer is initiated by a request from FPGA every 40µs approx.
- DMA is programmed to issue an interrupt upon completion of 128 blocks
- in DMA ISR, the param are reloaded and the DMA is retriggered to start the next cycle.
In this scenario, NDK randomly hangs somewhere and stops responding, sometimes after few seconds, sometimes after hours:
Without DMA transfers there are no troubles running several instances of tcpSendReceive.exe bursting packets. It sounds to me like some sort of buffer underrun/overrun in CPSW EMAC driver/hardware, caused because DMA is stealing DDR bandwidth and does not let EMAC to flush its data.
Does this ring a bell to you? Hints?









