Forum Discussion
Altera_Forum
Honored Contributor
15 years agoDirect Memory Access (DMA)
hello, i am having a problem with using dma. my dma seems like never finish the transaction because it cannot call the done function and keep on looping in the while(!rx_done). I dont know why. can a...
Altera_Forum
Honored Contributor
15 years agoIf you have a data cache on the CPU it's possible that the start and/or destination block are cached, and therefore the CPU reads and writes data from it's cache rather than the SDRAM. You have several ways around this:[list]
[*]Disable the data cache, or use the Nios II/e core [*]Do a cache flush on the source block before the dma transfer, and a cache invalidate on the destination block after [*]Bypass the cache when accessing the source and destination block, either though the IORD/IOWR macros, or by modifying the pointers with alt_remap_uncached()[/list]