edma传输中,采用AB模式传输,设置SRCBIDX参数时,发现写为0x8000时,只传输一个A大小的数据,余下(B-1)次没有传输,do_while循环也可跳过,但是改为0x7ff0,或者0x6000,都可以传输正确,而且发现写为0x8100便也不正确,查edma文献里说BIDX上线是65535(0xffff),嗯,请问会是什么原因呢?谢谢 myParamSetup.option = CSL_EDMA3_OPT_MAKE(CSL_EDMA3_ITCCH_EN, \
CSL_EDMA3_TCCH_DIS, \
CSL_EDMA3_ITCINT_DIS, \
CSL_EDMA3_TCINT_EN, \
0, CSL_EDMA3_TCC_NORMAL,\
CSL_EDMA3_FIFOWIDTH_NONE, \
CSL_EDMA3_STATIC_DIS, \
CSL_EDMA3_SYNC_AB, \
CSL_EDMA3_ADDRMODE_INCR, \
CSL_EDMA3_ADDRMODE_INCR );
myParamSetup.srcAddr = (Uint32)ptr_srcBuff;
myParamSetup.aCntbCnt = CSL_EDMA3_CNT_MAKE(8,128); //AB模式传输
myParamSetup.dstAddr = (Uint32)dstBuff; //如果是A模式传输,则B,C索引值没有用到
myParamSetup.srcDstBidx = CSL_EDMA3_BIDX_MAKE(0x8010,8); //如果是AB模式传输,则C索引值没有用到
myParamSetup.linkBcntrld= CSL_EDMA3_LINKBCNTRLD_MAKE(hParamPong,0);
myParamSetup.srcDstCidx = CSL_EDMA3_CIDX_MAKE(0,1);
myParamSetup.cCnt = 1;
James Li2:
改一下这行试试
from: myParamSetup.linkBcntrld= CSL_EDMA3_LINKBCNTRLD_MAKE(hParamPong,0);
to: myParamSetup.linkBcntrld= CSL_EDMA3_LINKBCNTRLD_MAKE(hParamPong,128);