Hi,
When I use EDMA3 (instance = 2) to transfer data between external memories using polling,sometimes the same code works well but in few cases,the data gets transferred but IPR bit does not get set so it remains stuck within the loop.
Platform used : TCI6618
EDMA3 version used : 02_11_02_11
Here is the main part of my code:
CSL_Status status;
CSL_Edma3CmdIntr regionIntr;
unsigned long long ullTemp;
// all remaining configuration has been done during initialisation
/* Configure Param */
DataTransferParam.srcAddr = (UInt32)pSrcAddr;
DataTransferParam.aCntbCnt = CSL_EDMA3_CNT_MAKE (nofBytes, 1);
DataTransferParam.dstAddr = (UInt32) pDstAddr;
if (CSL_SOK != CSL_edma3ParamSetup (hDataTransferParam, &DataTransferParam))
{
System_printf ("Error : EDMA Failed to setup parameter entry hDataTransferParam\n");
return -1;
}
/* Start the transfer manually */
if ((status = CSL_edma3HwChannelControl (hDataTransferCh, CSL_EDMA3_CMD_CHANNEL_SET, NULL)) != CSL_SOK)
{
System_printf ("Error : EDMA Trigger for Data Transfer channel failed \n");
return -1;
}
do {
CSL_edma3GetHwStatus(hModule,CSL_EDMA3_QUERY_INTRPEND, ®ionIntr);
ullTemp = _itoll( regionIntr.intrh, regionIntr.intr );
} while (!(ullTemp & ((unsigned long long)1 << EDMA3_DATA_TRANSFER_CH)));
.......
.....
Could someone explain what can be the problem.
Thanks
-Bharti