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.

question about buffer passing between arm and dsp

hi,all

Now I'm using C6runlib tools to develop program on C6A8168 evm board.

In http://processors.wiki.ti.com/index.php/C6RunLib_Documentation, I find "Buffers that are passed from the ARM core to be used by the DSP core must be allocated as physically contiguous blocks". so I must use C6RUN_MEM_malloc(size_t) to allocate buffer. 

when I allocate buffers using C6RUN_MEM_malloc(size_t), for example,codes in arm-side like this roughly:    

#define len 10

int dsp_side_run(char *src,int len);

int arm_side_run()

{char *a;

char  b[len];

a=C6RUN_MEM_malloc(len);

memcpy(a,b,len);

return dsp_side_run(a,len);

}

my question is :

1. will  linux virtual address of pointer  a  be translated to dsp physical address  when  passing to dsp(running dsp_side_run(a,len))?

2. if yes , will linux virtual address of pointer a+1 be translated to dsp phyiscal address when calling function dsp_side_run(a+1,len)?

3.  does it means only the certain pointer address of buffer allocated by C6RUN_MEM_malloc() can be translated when passed to dsp? 

I hope my question is clear .

francis