I've written some test code for doing DDR DMA transfers, based on the udma_memcpy_interrupt.c code. The code fills 4K of DDR memory (0x80000000 - 0x80000FFF) with 32 bit data.
I then run the test code to do the DMA transfer. The code reaches the interrupt handler successfully. However, when I look at the destination buffer (starting at 0x80002000) I only see small sections of data appear.
I've run into similar situations before on Eclipse based debuggers, where the memory window doesn't get updated (I did try doing a memory refresh with no success). If I kill the debug session and restart it, most of the data does appear in the destination buffer. In this case, I also see sections of the source buffer have disappeared. The missing source data is mirrored in the destination buffer.
It appears that the DMA code works, but I'm having difficulty telling whether the problem is in the DMA code or the debugger (possibly somewhere else?) Any suggestions would be appreciated.