This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

A strange phenomenon about memory address

 

Hi all 

I am very happy to get the explanation of a strange phenomenon described below.

I allocate a continuous memory using "Memory_contiAlloc' on ARM side and the start Physical Address is 0x83a97000 on CMEM segment.

When I use this memory buffer on DSP side, the start physical address become 0x8734cb0 on DDRALGHEAP segment. What happened?

 

Relevant code

>>>ARM>>>

#defined DEC_SIZE (1024*768*4*sizeof(char))

Memory_AllocParams allocParams;

allocParams.type = Memory_CONTIGPOOL;

allocParams.flags = Memory_NONCACHED;

allocParams.align = Memory_DEFAULTALIGNMENT;

allocParams.seg = 0;

 

static char *outBuf = Memory_alloc(DEC_SIZE, &allocParams);

 

XDM_BufDesc outBufDesc;

outBufDesc.numBufs = 1;

outBufDesc.bufs = (XDAS_Int8 *) &outBuf;

outBufDesc.bufSizes = DEC_SIZE;

 

IMGDEC_process(decHandle, &encodedBufDesc, &outBufdesc, &decoderInArfs, &decoderOutArgs);

//outBufDesc.bufs[0] points to 0x83a97000(Physical Address).

>>>DSP>>>

XDAS_Int32 IMGDECCOPY_TI_process(..., XDM_BufDesc *outBufs, ...){

...

GT_2trace(curTrace, GT_ENTER, "IMGDECCOPY_TI_process, buf address (0x%lx)\n", outBufs->buf[0]);

//outBufs->bufs[0] point to 0x8734cb0 (Physical Address).

...

}

<<<END<<<

 

Best regards,

Danfeng Lu