Hi all,
i am currently trying to use the EDMA-Controller of the C6748 on our custom board in a non-BIOS application. The EDMA's future duty is to transfer data from the attached SDRAM on CS0 to an attached FPGA on CS4, both on the EMIFA (the FPGA supports a custom USB-connection, but imho that can be neglected). I startet out with the starterware-example which worked quite well. I adapted the example to a function that configures the DMA to transfer an arbitrary count of 32-Bit-Words from one point to another in 1kiB-blocks. If the data is not 1kiB-aligned, it uses a linked transfer (from channel 0 to channel 127) to transfer the rest of the data.
I have set the transfer-completion-event to interrupt 6 which reacts to the intermediate and final transfer-completion-event. But it seems, that sometimes the intermediate transmission-interrupt is omitted for no reason. That means, that my manually triggered transfer stops. By the way I should mention that there is a timer-generated interrupt on INT4 that is used for a real-time-control loop. When I disable that interrupt, the DMA works properly, but when it's enabled, the DMA stops from time to time. Is there any particular reason for that? In my opinion the DMA-interrupt at least should not get lost. I also tried to poll the IPR-register, but there is the same issue, sometimes there is no bit set, even though the corresponding array has been transferred.
If you need additional information, just write it. Because of readability, I didn't post my code. (By the way, is there a way to properly post code here? To get a decent indentation and so on)
Thanks,
Chris