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
Reply by ●January 8, 20082008-01-08
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