As per my title, how do you queue up multiple transfers using ECPY? I want to start several DMA transfers using ECPY then wait for them all to finish using ECPY_wait.
Thanks,
Ralph
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi Ralph,
What device are you on? Likewise, which Framework Components release?
In general you would first need to acquire some EDMA3 resources via the IRES_EDMA3CHAN interface from a resource manager (such as RMAN). For submitting linked transfers you need to request/acquire a resource with the maximum number of transfers that can be linked. Then you need to configure each 'transfer' individually using ECPY_configure() using the transferNo argument. Subsequently, an ECPY_start() call will submit each transfer in order, in the background via linked EDMA transfers.ECPY_wait() will block until the last transfer completes.
Are you planning to do EDMA transfers from within an algorithm context of from an application code? That would mostly alter the way you acquire EDMA3 resources but the ECPY APIs would still work just the same.
Best regards,
Murat
Hi Murat, thanks for your prompt reply. I using the DM8168 with Framework Components 3.23.00.13.
Your suggestion did the trick with ECPY_configure and transferNo. The transfers are done within my codec. While I am processing data in L1D SRAM, I DMA in more data in a ping-pong fashion.
Ralph