DSPRelated.com
Forums

problem using ACPY3

Started by Unknown January 8, 2008
hi, all:

i',m packaging an video decode algorithm using XDAIS on davinci, and i
have successfully packaged it without DMA.
i'm using codec enging 1.02 and xdais 5.00.
i followd the example in codec_enging1.02/codecs/viddec_copy, and the
videnc_copy example to add DMA functions, i wander if there are
someone that have the same experience using ACPY3, i want to ask some
questions.

thanks , in advance, for any reply.

xiongjie
the question is this:
i'm developing an video decode algorithm, after the decode of one
frame, i need to move the decoded YUV422 data from one position to
another.
i wrote a test program to test the effect

typedef struct VIDDECCOPY_TI_Obj {
    IALG_Obj    alg;
    IDMA3_Handle avsdmaHandle1D1D8B;
} VIDDECCOPY_TI_Obj;

extern far Int EXTDDRHEAP;
extern far Int L1DHEAP;
extern far Int EXTMEMHEAP;
ACPY3_Params avsp;
IVIDDEC_Handle avsHandle;
void main()
{
IDMA3_ChannelRec avsdmaTab;
VIDDECCOPY_TI_Obj *avsh=(VIDDECCOPY_TI_Obj *)avsHandle;

DMAN3_PARAMS.heapInternal = L1DHEAP;
DMAN3_PARAMS.heapExternal = EXTDDRHEAP;

DMAN3_init();
ACPY3_init();

avsdmaTab.numTransfers = 1;
avsdmaTab.numWaits = 1;
avsdmaTab.priority = IDMA3_PRIORITY_LOW;
avsdmaTab.protocol = &ACPY3_PROTOCOL;
avsdmaTab.persistent = FALSE;
status = DMAN3_createChannels(0, &avsdmaTab, 1);

if (status == DMAN3_SOK )
{
        avsh->avsdmaHandle1D1D8B = avsdmaTab.handle;
}
else
{
        SYS_abort("Channel creeate failed. Status: %d\n", status);
}

i link the evm board, dowload the out file, and run step by step by
F10
however, in the avsh->avsdmaHandle1D1D8B = avsdmaTab.handle
i see the avsdmaTab.handle=0x11F04000
after this step, avsh->avsdmaHandle1D1D8B = random

i know this is not a STANDARD call , but i just don't know how to
debug and trace in linux.

any advise for this problem?

thanks
xiongjie