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.

关于EDMA PingPong传输和并行传输的问题



各位专家好:

       最近在做EDMA多核并行传输时遇到一些困难,有两个问题想请教各位,希望能得到大家的帮助!

        EDMA中的channel可看做是一个传输事件,用于触发一个EDMA通道进行数据传输。记得Andy在一个帖子中曾说过,“IPR寄存器是用来记录产生中断的EDMA channel源,从低到高每一个bit依次对应相应的channel,如IPR bit0对应channel 0, IPR bit1对应channel 1,所以如果查询的话就是看channel0或1的任务是否完成并产生中断。” 就这句话我现在有两个疑问。

        问题1: 对于PingPong模式的数据传输,是否只是用一个channel进行数据传输?如果是,那么Ping PaRAM和Pong PaRAM中所设置的TCC是否是一样的的?在使能中断时,是否只需将IER中这一个channel所对应的位置1呢?  (我是看到有一个PingPong例程中,只用了channel  0,但是Ping PaRAM和Pong PaRAM的TCC分别为1和2,在中断时能寄存器中使能了0和1位,对应于上面一句话也就是说这里的IPR bit0和IPR bit1均对应于channel 0

       问题2:6678的EDMA模块中有3个CC,共计10个TC,也就是说可以允许10个channel的并行数据传输,每一个channel对应一个TC,不知这样理解是否正确?我想请教的问题是,在进行EDMA并行数据传输时,CSL中哪一语句是将channel和TC做一一映射关系的,是CSL_edma3HwChannelSetupQue(hChannel,CSL_EDMA3_QUE_0);这句话吗?其中的Que_0—Que8又作何理解?

       问得比较多,也比较琐碎,还望各位专家见谅,希望能早些得到帮助!

谢谢各位!

         

 

 

  • 1. 每个channel与IPR中的比特位没有一一对应关系,PaRAM set中的配置TCC决定对应IPR及IER中的相应bit位;如你看到的ping pong例程,只需一个channel即可实现ping pong传输,ping pong使用不同的PaRAM set,如果需要区分ping pong中断事件,可以在配置不同的TCC。使能中断需要配置PaRAM set中的TCINTEN及IER位,具体可以看EDMA 手册中断使能一节;

    2. channe与TC映射关系的配置可以使用你提到的CSL API;Queue与TC是一一对应,channel映射到Queue后,即与固定的TC映射。 

  • Andy Yin1您好:

            感谢您详尽的解答,关于PingPong传输和并行传输我还有两个问题想请教您。

           1. 关于PingPong传输,我在工程中将channel 0 MAP 至PaRAM 0,在调试的时候发现必须要将hParamPing和hParamPing均设置成CSL_edma3GetParamHandle(hChannel, 0, &status);  我的疑问是,PingPong模式下Ping和Pong的PaRAM ID是否必须要设置成一样,只是各自PaRAM中的内容有所不同?      

            2. 关于多核并行传输,我在完成单核PingPong模式的 Block Move取数--算数--Data Sorting存数 的基础上,测试了处理时间,由于我的算数时间小于取数存数时间,因此最后的单核总时间就是取数存数的时间和(大概为0.3s),这也符合EDMA的传输机理。但是我用双核并行处理时,核0和核1各自处理一半数据,测试时间后却发现两个核都用了0.4s,也就是说双核并行时处理时间反而增加了,我尝试了多种情况下不同核用不同的CC和TC,channel和PaRAM也不同,请问专家这可能是什么原因导致的呢?多核并行EDMA传输时又需要注意些什么呢?

          不知Andy Yin1可否提供多核并行EDMA传输的例子供参考学习。

    谢谢!!!

                

  • 请问你多核edma传输搞定没有,具体怎么做的,能告知吗,谢谢
  • Ryan KU:

     你好。请问有关于EDMA多核并行传输的问题解决了吗?我采用DSP 6678中的4个核,从Core0~3。使用EDMA CC1,多核核0~3分别使用TC0~TC3。并且使用不同的PaRAM和通道。每个核传输一半的数据。可是发现无法进行并行处理。处理时间长度仍然与单核处理整块数据的长度大致相同。请问多核调用EDMA并行传输如何设置?非常感谢!