On with ACPY3. DMAN3 is giving me a IDMA3_handle, but ACPY3 is not doing anything.
The destination in L1 Memory:
#pragma DATA_SECTION(row_inbuf, ".L1D_HEAP")
#pragma DATA_ALIGN(row_inbuf, 128)
Int8 row_inbuf[2][MAXROWSIZE];
I setup ACPY3 to do a non-linked 1D1D transfer of an image row:
void TransferRowin(IDMA3_Handle h, Int8 *Scr, Int8 *Des, int numBytes)
{
ACPY3_Params p;
/* Setting up the parameters for the transfer (data grp 1) */
p.transferType = ACPY3_1D1D;
p.dstAddr = (void *)Des;
p.srcAddr = (void *)Scr;
p.elementSize = numBytes;
p.numElements = 1;
p.numFrames = 1;
p.waitId = 0; <-- correct value?
/*
* Configure transfer number 0 on the active DMA handle with the
* parameters set up above
*/
ACPY3_configure(h, &p, 0);
/* Submit the transfer configured on the logical channel handle */
ACPY3_start(h);
}
Do the transfer and wait:
TransferRowin(DMAHandle[0], imginPtr, &row_inbuf[flip][0], IMAGEROWSIZE);
ACPY3_wait(DMAHandle[0]);
imginPtr points to the beginning of the image in shared memory. ACPY3_wait() returns, the image is in memory, but nothing got copied into row_inbuf[flip][ ].
Lee Holeva