6678有3套EDMA,如果我使用三个核都使用EDMACC1,但是希望三个核能够同时传输数据,三个核的数据源地址和目的地址是不一样的,不知道能不能够行得通;
对于每一EDMACC来说,有多个TC,每个TC可不可以同时传输不同channel不同事件的数据呢
Thomas Yang1:
6678有3套EDMA,如果我使用三个核都使用EDMACC1,但是希望三个核能够同时传输数据,三个核的数据源地址和目的地址是不一样的,不知道能不能够行得通;
[TY]可以,只要资源互斥做得好,是没有问题的
对于每一EDMACC来说,有多个TC,每个TC可不可以同时传输不同channel不同事件的数据呢
[TY]在总线带宽允许的情况下,是可以同时传输的
user4712072:
回复 Thomas Yang1:
首先,谢谢您的回答!!
下午我看了一点用户手册,现在我的理解是:EDMACC1有4个队列,对应着4个EDMATC。假设在核1中,我使用通道7,关联到队列1里面,手动触发;在核2中,我使用通道6,关联到队列队列2,,手动触发。假设首先触发核1的,之后再触发核2的EDMA,核1的TR请求发送到了EDMATC1里面,开始传输;在核1没有传输完成的时候,核2的TR被送到EDMATC2当中,虽然此时TC1里面的数据还没完成,但是TC2的传输是可以同时进行的。
以上是我现在的理解,说的有点晦涩难懂,希望您的解答
walkaway:
回复 Thomas Yang1:
Ti的工程师们,我在6678评估板上测试edma3的代码。在使用edma3_drv_requestchannel(edma3handle,&channelid,&tccid,eventqid,&tcc_callback,NULL)函数时,如果,将&tcc_callback改为NULL参数时,所有edma3传输正确。但是当设置为&tcc_callback时,edma3传输结束后,总是无法跳转到改回调函数中。且程序一直处于运行状态。是不是我中断设置哪里缺少了什么?