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.

EDMA3 question

hello,

I  have a problem with the C6455 EDMA3 for days.    I think the set of edma3 in my code is right.when  the  channel  number is 0,1,2,3,4,.....11,13,14,15,  it can  be  Correct transmission. but when the channel  number  is 12, it cannot be  transfered       and   the SER is set  to 1.sometimes  when my first start  the  CCS, the  channel  number   12

can  be transfered.  I really  don't know  how can be this.  I   need your  help.

the code is this:.

    dmahwSetup.paramNum = 0;
dmahwSetup.que = CSL_EDMA3_QUE_0;
hwSetup.dmaChaSetup = &dmahwSetup;
hwSetup.qdmaChaSetup = NULL;
status = CSL_edma3HwSetup(hModule,&hwSetup);

regionAccess.region = CSL_EDMA3_REGION_0 ;
regionAccess.drae = 0xfffff ;
regionAccess.draeh = 0xfff00000 ;
status = CSL_edma3HwControl(hModule,CSL_EDMA3_CMD_DMAREGION_ENABLE, \
&regionAccess);

chAttr.regionNum = CSL_EDMA3_REGION_0;
chAttr.chaNum =0;
hChannel = CSL_edma3ChannelOpen(&chObj, CSL_EDMA3, &chAttr, &status);

/* Get the parameter handle */
hParamBasic = CSL_edma3GetParamHandle(hChannel,0,&status);

/* Edma parameter entry Setup */
myParamSetup.option = CSL_EDMA3_OPT_MAKE(CSL_EDMA3_ITCCH_DIS, \
CSL_EDMA3_TCCH_DIS, \
CSL_EDMA3_ITCINT_DIS, \
CSL_EDMA3_TCINT_EN,\
1,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)srcBuff;
myParamSetup.aCntbCnt = CSL_EDMA3_CNT_MAKE(512,1);
myParamSetup.dstAddr = (Uint32)dstBuff;
myParamSetup.srcDstBidx = CSL_EDMA3_BIDX_MAKE(0,0);
myParamSetup.linkBcntrld = CSL_EDMA3_LINKBCNTRLD_MAKE (CSL_EDMA3_LINK_NULL,
1);
myParamSetup.srcDstCidx = CSL_EDMA3_CIDX_MAKE(0,0);
myParamSetup.cCnt = 1;
status = CSL_edma3ParamSetup(hParamBasic,&myParamSetup);

regionIntr.region = CSL_EDMA3_REGION_0 ;
regionIntr.intr = 0xffff ;
regionIntr.intrh = 0xfff0000f ;
CSL_edma3HwControl(hModule,CSL_EDMA3_CMD_INTRPEND_CLEAR,&regionIntr);
status = CSL_edma3HwControl(hModule,CSL_EDMA3_CMD_INTR_ENABLE,&regionIntr);




  • Hu Shushu,

    Which CSL example program did you use for developing this code? Please tell us exactly the name of it and the CSL version it came from.

    After giving us that information, please use the example program I attached to your other thread here.

    Regards,
    RandyP

     

    If you need more help, please reply back. If this answers the question, please click  Verify Answer  , below.