您好:
附件中是我使用CSL函数实现C6670EDMA3的程序,但是在ccs5上运行完后查看内存,数据没有搬移成功,我检查了寄存器配置,中断设置等,没有发现哪里不对呀,到底是为什么数据无法搬移成功呢?求指导,谢谢!
PS:程序是我仿照6678的EDMA3的测试写的,不知道数据搬移不成功是不是和这个有关系!!
Zhan Xiang:
看起来你只配置了ping/pong的PaRAM, 没有配置对应通道的PaRAM,你可以查查看。
chen lisa:
回复 Zhan Xiang:
谢谢Zhan Xiang的回答,不过我有点不懂:
我的理解是:1)我配置了数据的源地址和目的地址;
2)设置了中断;
3)最后触发了通道传输数据。
这样的过程理解有什么偏差吗?
我不懂的:
1)在文档中我只看到了PaRAM的设置,并没有区分是通道的PaRAM还是ping/pong的PaRAM,这两个有什么区别呢 (各自分工是干嘛的呢)?
2)要是要配置通道的PaRAM该怎么配置呢,可否举个例子呢?
非常感谢!!
Ellie Jiang:
回复 chen lisa:
您好,我运行了您的程序,查看内存数据搬运是成功了的哦。不知?
Ellie Jiang:
回复 chen lisa:
配置Param那些,可以看看ccsv5->help contents里有关CSL-API 里面EDMA3 Functions的介绍;
一般像您程序里面的这两句配置
/* Map the DMA Channel to PARAM Block 2. */
CSL_edma3MapDMAChannelToParamBlock (hModule, channelNum, 2);
/* Obtain a handle to parameter set 2 */
hParamPing = CSL_edma3GetParamHandle(hChannel, 2, &status);