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