TI中文支持网
TI专业的中文技术问题搜集分享网站

关于C6678 edma多核运行的问题

您好,我想要使用一个核做启动信号控制(例如核0),同时计时(因为要计算速率),剩下7个核(核1-7)作为实际搬数的核。需要让他们7个核同时向不同的位置搬

看他们同时搬得时候在edma总线上的冲突,来看edma总线的性能。

我在附件里附上了我的工程~哪位好心能帮看一下吗?是彻底错了吗,不能只在core0开启edma(因为我的cmd直接就是用的core0的l2 sram)在其他的核里面设置参数吗???

所以我需要在core1-7不同的核上设置不同的edma参数是吧?(因为搬数的目的地址和源地址都不同)

按照您给的那个程序,我进行了如下改动(cmd还是没改,打算把参数放在核0里,使用核0的l2 sram,)核0负责启动edma,核1-7写入不同的参数,他们搬不同地方的数

myParamSetup.option = 0x00100008;

 myParamSetup.srcAddr = (Uint32)(srcbuf+(DNUM-1)*64);

  myParamSetup.aCntbCnt = 0x00010040;

  myParamSetup.dstAddr = (Uint32)(dstbuf+(DNUM-1)*64);

 myParamSetup.srcDstBidx = 0x0;

 myParamSetup.linkBcntrld = 0x0000ffff;

 myParamSetup.srcDstCidx = 0x0;

 myParamSetup.cCnt = 0x00000001;

 CSL_edma3ParamSetup(hParamPing,&myParamSetup);

就只改了红色的部分,但是发现不能搬数了。

想问您一下,是我的思路错了,还是参数设错了。谢谢~

各位大神一定要帮我啊,我毕设,卡在这了,时间不多了!!!!

跪谢!!!!!

德仪论坛的都是好人~~~~~

Andy Yin1:

您好,

被你写的那么多搞得有点晕,先理解一下你的目的:同时启动多个EDMA channel,分别从不同的源地址到目的地址的数据搬运,进行EDMA效率的测试?

如果是这样的话,只需要在core0配置启动EDMA即可,在core0同时启动多个EDMA通过,指定不同的源核目的地址即可,注意对于L2需要使用全局地址(0x00800000+DNUM*0x1000000)。

Nicole He:

回复 Andy Yin1:

想问一下,因为我的emda例子是用phyllis yu的例子改的,所以你可以看一下附件。我貌似只开了一个channel(因为我不会开多个channel,并且分别赋值….能告诉我应该怎么弄吗???)然后开了多个channel同时进行搬数也会有emda总线竞争吗?因为关键是让他们总线竞争看性能….谢谢了!!!!跪求怎么用channel!

qian cui:

你好,你附件里的代码实现的多核edma可以完成同时数据搬移吗?我想实现的是核0发出信息触发其它核进行数据搬移,每个核的地址都不一样

Na Li7:

回复 Nicole He:

chAttr.chaNum = channelNum;

上面这条语句是channel num,你用不同的通道传数,那这个要修改的

qian cui:

回复 Na Li7:

之前改了channelnum和instNum不行,按照你说的只改通道号,可以传输数据了。想知道那个参数instnum什么用处,八个核都一样才行。总之谢谢啦

Na Li7:

回复 qian cui:

instNum就是edmaNum,EDMA instance whose channel is being requested

Na Li7:

回复 qian cui:

你收发用的是同一个EDMA,所以EDMA num不改,只要改通道号就行

赞(0)
未经允许不得转载:TI中文支持网 » 关于C6678 edma多核运行的问题
分享到: 更多 (0)