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