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.

about CSL2.0 in DM6446

I've used dat_copy and dat_copy2d in DM642,it makes my program running faster; now I want to do the same way in DM6446 with EDMA3, I use CSL 2.0 DAT Adapter Reference Implementation Using EDMA3 Low Level Driver, it can work correctly, but it runs very slowly, why? Please give me help, Thanks

  • In general using the EDMA3 should improve performance, though I have never used this adapter to the low level driver you mention, that sounds like the easiest way of porting from a DAT based design to the DM6446. When you say it runs slowly, do you mean it is slower than a copy loop in C, or that it is slower than the DM642 equivalent?

  • as following,A and B are the same realization with different function.(end - begin) is the time of Dat_copy2d or memcpy.why the call of dat_copy2d is slowly than the copy loop with memcpy? I've open many EDMA channels,so I think it's not because of blocking,what's the problem?

    A:(using dat_copy2d in DM6446)

    id0 = DAT_copy2d(DAT_2D1D,dst,src,a_leng,b_leng,i_stride);

    while(isture)

           dat_wait(id0)   

          begin= CLK_gethtime();

           id0 = DAT_copy2d(DAT_2D1D,dst,src,a_leng,b_leng,i_stride);

           end= CLK_gethtime();
            {doing something Time-consuming}
    }

    B:(same as A,but using memcpy)

    while(isture)

       begin= CLK_gethtime();

       for(i=0;i<b_leng;i++)
       {

           memcpy(dst,src,a_leng);
           src = src+i_stride;
          dst+=a_leng;
       }

      end= CLK_gethtime();

            {doing something Time-consuming}
    }

     

     

  • I have tried many times,can you tell me what's the problem