DSP 在通过edma把ddr的数据搬移到L2时,需要使用L2的全局变量。
所以在多核计算的时候要注意搬移位置。
比如,一幅图片的位置是
void * image_addr = (void *)0x80000000;
想搬移到L2的0x800000
位置处
edma的搬移函数为
edma_trans(void *src, void *dst, int size);
则核0的搬移方式为
edma_trans(image_addr, 0x10800000, data_size);
核1的为
edma_trans(image_addr, 0x11800000, data_size);
。。。
所以搬移时可以写成
int core_id;
core_id = core_id_get();
void *dst_addr;
dst_addr = 0x800000 + 0x10000000 + core_id * 0x1000000;
edma_trans(image_addr, 0x10800000, data_size);