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.

TMS320C6747中MCASP利用EDMA3传送数据,中断成功,但对应的XBUF\RBUF中一直为0

在MCASP中使用EDMA3来传输数据,使用ping-pong模式,发送和接收部分分别使用了3个通道。目前现象:edma3的传输完成中断正常触发,并且能够进入中断服务函数。MCASP的RDATA/XDATA也正常0、1变化着。问题:使用的XBUF1和RBUF2中的值始终为0.相关部分程序如下:

while(1)
{
xmt_ping[0]=0x123456;
xmt_ping[1]=0x123457;

while(!rcv_ping_flag );    //当接收ping通道传输完成
rbuf_ping_data[sample++]=rcv_ping[0]; //ping通道的目标地址数据rcv_ping给rbuf_ping_data
rcv_ping_flag=0;
while(! rcv_pong_flag ); //当接收pong通道传输完成
rbuf_pong_data[sample]=rcv_pong[0]; //pong通道的目标地址数据rcv_pong给rbuf_pong_data
rcv_pong_flag=0;
while(! xmt_ping_flag );
xmt_ping_flag = 0;
while(! xmt_pong_flag );
xmt_pong_flag = 0;
}

该段程序目的主要是获取接收部分的pingpong数据和测试发送部分是否有数据到XBUF,结果没有!请教各位大神,可能是哪里错了?另外我还有两点疑问:1、想要写给XBUF1的数据写给发送的pingpong地址,这种做法对吗?不对的话。数据该放到哪里才能通过EDMA给XBUF1.

2、RBUF2的数据是传给了ping还是pong?还是交替的给了ping和pong.

这部分程序已经调了半个多月,请知道的朋友不吝赐教或,拜托。