Hi,
I am developing a video decoder on DM6446. The decoder internally uses
DMA for data transfer from external Mem to L1SRAM and from L1SRAM to
Ext Memory. I am using 64KB of L1SRAM, out of which 62 KB is for
reserved for L1DHEAP and 2 KB is for use by stack.
I am using codec engine 1.02. xDM 0.9.
The output of the decoder is not correct.
My app on ARM9 reads the bitstream from file into a 128 byte aligned
buffer. This buffer pointer is passed through CodecEngine to the
decoder. The decoder copies the bitstream buffer into L1SRAM. I have
observed that for the first output video frame, last two rows of
macroblocks are not correct. There seem to be similar to a case when
bitstream is corrupted somehow. [Please note that decoder runs well on
CCS].
I am not sure what is the problem, but i suspect the problem is with
memory map or incorrect server settings.
I have added following line in server's .tcf file:
bios.L1DSRAM.heapSize = 0xF800; //62 KB
The settings in my server's .cfg file are:
DSKT2.DARAM0 = "_L1DHEAP";
DSKT2.DARAM1 = "_L1DHEAP";
DSKT2.DARAM2 = "_L1DHEAP";
DSKT2.SARAM0 = "DDRALGHEAP";
DSKT2.SARAM1 = "DDRALGHEAP";
DSKT2.SARAM2 = "DDRALGHEAP";
DSKT2.ESDATA = "DDRALGHEAP";
DSKT2.IPROG = "DDRALGHEAP";
DSKT2.EPROG = "DDRALGHEAP";
DSKT2.DSKT2_HEAP = "DDR";
DSKT2.DARAM_SCRATCH_SIZES = [ 1024, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
DSKT2.SARAM_SCRATCH_SIZES = [ 1024, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
1. I am not sure if i have put the correct settings in server's cfg
file as per my codec's usage. Desired usage: L1DSRAM::64KB (
L1DHEAP::62KB (as SCRATCH), Stack:2KB)
2. I am not sure if DSKT2.DARAMx or DSKT2.SARAMx i need to set to _L1DHEAP.
3. What is the value which needs to be set for
DSKT2.DARAM_SCRATCH_SIZES and DSKT2.DARAM_SCRATCH_SIZES for groupId
0. I am using both as 1024.
Can someone help me.
Regards,
mohit
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source