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.

How to continue transferring infinitely with DMA of AM2433

Dear Sir

I am running the UDMA Memcpy Polling sample of AM243x MCU + SDK.

In this sample, memory copy is done only once, but I tried to make memory copy infinitely using the reload function, but it didn't work.

As shown below, after UdmaUtils_makeTrpdTr15 (), 0x1FF was specified for Reload Count and 0 was specified for Reload Index with CSL_udmapCppi5TrSetReload ().

Are there any mistakes?

Please let me know if there are any other necessary settings.

-------------------------------------------------------------------------------------

static void App_udmaTrpdInit(Udma_ChHandle chHandle,
                                                uint8_t *trpdMem,
                                                const void *destBuf,
                                                const void *srcBuf,
                                                uint32_t length)
{
    CSL_UdmapTR15 *pTr;
    uint32_t cqRingNum = Udma_chGetCqRingNum(chHandle);

    /* Make TRPD with TR15 TR type */
    UdmaUtils_makeTrpdTr15(trpdMem, 1U, cqRingNum);
    CSL_udmapCppi5TrSetReload((CSL_UdmapCppi5TRPD *)trpdMem, 0x1FFU, 0U);

--------------------------------------------------------------------------------------

void *udma_memcpy_polling_main(void *args)
{

       :

    /* Wait for return descriptor in completion ring - this marks transfer completion */
    while(1)
    {
        retVal = Udma_ringDequeueRaw(Udma_chGetCqRingHandle(chHandle), &pDesc);            <------ The return value is -4. 

Best regards