Hi all ,
we are working on h264 dec we need to implement dma in it . i have modified example code of fastcopy accordingly to my need in the nonalogorithm usageexample part .when i call dman3_createchannels i am getting handle assiged to variable h but during the acpy3_start the params are not being set and when i went to acpy3 wait the program is going to infinite loop and never comes out.
the code i have witten is as this i am calling a function from my proj which passes the source,destination addresses and also the other details like numelements and src element index etc i had fastcopy proj as my dependent proj
the code i wrote is
void lumacopy(---_
{
idma3_channel Rec dmatab;
Int status;
acpy3_params p;
GT_set("*" = 01234567"); //dont know what GT_set actually does
fastcopy_dman3_config();
DMAN3_init();
ACPY3_init();
dmatab.numtransfers =1;
dma.numwaits =1;
dmatab.priority = idma3_priority_low;
dmatab.Protocol = &ACPY3_Protocol;
status = DMAN3_createchannels(0,&dmatab,1);
if (status == DMAN3_SOK ) {
h = dmaTab.handle;
ACPY3_activate(h);
}
else {
SYS_abort("Channel creeate failed. Status: %d\n", status);
}
p.transferType = ACPY3_2D1D;
p.dstAddr = (void *)lumablk;
p.srcAddr = (void *)srcptrq ;
p.elementSize = 20;
p.numElements = 16;
p.numFrames = 1;
p.srcElementIndex = 176;
p.srcFrameIndex = 1;
p.dstFrameIndex = 1;
p.waitId = 0;
ACPY3_configure(h, &p, 0);
ACPY3_start(h);
ACPY3_wait(h);
ACPY3_deactivate(h);
if ((status = DMAN3_freeChannels(&h, 1)) != DMAN3_SOK ) {
SYS_abort("DMAN3_freeChannels failed. Status: %d\n", status);
}
dman3_exit();
}
can some one please tell me the diff between the algoexample and non-algo example and can we not use non-algo example part or dman3_create channels
when we are having call from our algo . i have read in the document saying dman3_createchannels for non-algo users what does that mean