Quantcast
Channel: Embedded Software (Read Only)
Viewing all articles
Browse latest Browse all 25965

Forum Post: ECPY_configure is slow + what does ECPY_directConfigure do?

$
0
0

1) I'm finding ECPY_configure to be very slow. I'm queuing up 2 transfers as in the code below, and I find that the calls to ECPY_configure block for quite a long time. How do I resolve this?

Int UNIVERSAL_ECPY_TI_doCopy_dual_start(IUNIVERSAL_Handle handle, XDAS_UInt8* dst1, XDAS_UInt8* src1, unsigned int size1, XDAS_UInt8* dst2, XDAS_UInt8* src2, unsigned int size2)
{
    /* Extract channel granted to this alg */
    TESTPATTERN_Obj * algHandle = (TESTPATTERN_Obj *)handle;
    ECPY_Params p;
    ECPY_Handle dmaHandle0 = algHandle->ecpyHandle[0];
    
    /* Setting up the parameters for the first transfer (data grp 1) */
    p.transferType = ECPY_1D1D;
    p.numElements = 1;
    p.numFrames = 1;
    
    p.dstAddr = (void *)dst1;
    p.srcAddr = (void *)src1;
    p.elementSize = size1;   // Number of bytes.
    ECPY_configure(dmaHandle0, &p, 1);

    p.dstAddr = (void *)dst2;
    p.srcAddr = (void *)src2;
    p.elementSize = size2;   // Number of bytes.    
    ECPY_configure(dmaHandle0, &p, 2);
    
    ECPY_setFinal(dmaHandle0, 2); // "ECPY_configure() must have previously been called at least once since channel activation."
    ECPY_start(dmaHandle0);

}

2) What do the ECPY_direct* commands do? I can't work out what they are meant for. I found this forum post that says something about them being faster but there is no documentation on them. :-(

Thanks,
Ralph


Viewing all articles
Browse latest Browse all 25965