Hi,
I was trying to copy the contents of one array into another using EDMA3 in C6678. I am using CSL for this and the initialization procedure is done as per the example given in
"....\ti\pdk_C6678_1_1_2_5\packages\ti\csl\example\edma". Then, for my parameter setup, i am using the following:
myParamSetup.option = CSL_EDMA3_OPT_MAKE(CSL_EDMA3_ITCCH_DIS, \
CSL_EDMA3_TCCH_DIS, \
CSL_EDMA3_ITCINT_EN, \
CSL_EDMA3_TCINT_EN, \
0, CSL_EDMA3_TCC_NORMAL,\
CSL_EDMA3_FIFOWIDTH_NONE, \
CSL_EDMA3_STATIC_DIS, \
CSL_EDMA3_SYNC_A, \
CSL_EDMA3_ADDRMODE_INCR, \
CSL_EDMA3_ADDRMODE_INCR );
myParamSetup.srcAddr = (Uint32)A;
myParamSetup.aCntbCnt = CSL_EDMA3_CNT_MAKE(4,1000);
myParamSetup.dstAddr = (Uint32)B;
myParamSetup.srcDstBidx = CSL_EDMA3_BIDX_MAKE(4,4);
myParamSetup.linkBcntrld= CSL_EDMA3_LINKBCNTRLD_MAKE(CSL_EDMA3_LINK_NULL,0);
myParamSetup.srcDstCidx = CSL_EDMA3_CIDX_MAKE(0,1);
myParamSetup.cCnt = 1;
A & B are arrays declared globally.
Now, after enabling the interrupts as given in the example and polling on bit 0, the "do-While" loop is never completing execution. It runs as an infinite loop.
CSL_edma3HwChannelControl(hChannel,CSL_EDMA3_CMD_CHANNEL_SET,NULL);
regionIntr.region = CSL_EDMA3_REGION_GLOBAL;
regionIntr.intr = 0;
regionIntr.intrh = 0;
/* Poll on IPR bit 0 */
do {
CSL_edma3GetHwStatus(hModule,CSL_EDMA3_QUERY_INTRPEND,®ionIntr);
} while (!(regionIntr.intr & 0x0)); /*Never Exeting This Loop*/
Can someone please suggest me with the mistake i am doing.
Varun