Hello!
I try to copy array from DDR3 to L2SRAM using EDMA3 on C6657, but tranfer does not work.
My code:
CSL_Status status;
CSL_Edma3Handle edma3_handle;
CSL_Edma3Obj edmaObj;
CSL_InstNum edmaNum;
CSL_Edma3ChannelObj chObjM;
CSL_Edma3ChannelAttr chAttrM;
CSL_Edma3ChannelHandle hChannelM = NULL;
CSL_Edma3HwDmaChannelSetup chSetupM;
CSL_Edma3ParamHandle paramHandleM;
CSL_Edma3ParamSetup paramSetupM;
int ChannelNumM = 0;
CSL_Edma3CmdIntr regionIntr;
edmaNum = CSL_TPCC_2;
CSL_edma3Init(NULL);
edma3_handle = CSL_edma3Open(&edmaObj, edmaNum, NULL, &status);
chAttrM.regionNum = CSL_EDMA3_REGION_GLOBAL;
chAttrM.chaNum = ChannelNumM;
hChannelM = CSL_edma3ChannelOpen(&chObjM, edmaNum, &chAttrM, &status);
chSetupM.paramNum = 0;
status = CSL_edma3HwChannelSetupParam(hChannelM, chSetupM.paramNum);
paramHandleM = CSL_edma3GetParamHandle(hChannelM, chSetupM.paramNum, &status);
paramSetupM.aCntbCnt = CSL_EDMA3_CNT_MAKE(64,1);
paramSetupM.cCnt = 1;
paramSetupM.srcAddr = (Uint32)Mem1;
paramSetupM.dstAddr = (Uint32)Mem2;
paramSetupM.linkBcntrld = 0xFFFF;//CSL_EDMA3_LINKBCNTRLD_MAKE(CSL_EDMA3_LINK_NULL,0x0);
paramSetupM.srcDstBidx = CSL_EDMA3_BIDX_MAKE(0, 0);
paramSetupM.srcDstCidx = CSL_EDMA3_CIDX_MAKE(0, 0);
paramSetupM.option = (1 << 3) ;
status = CSL_edma3ParamSetup(paramHandleM, ¶mSetupM);
status = CSL_edma3HwChannelControl(hChannelM, CSL_EDMA3_CMD_CHANNEL_ENABLE, NULL);
Where is my mistake? All status is Ok.
I do not use L1D cache. I do not use interrupt here.
Thank you.