我正在使用TI的Keystone II,其中ARM作为主机和8个加速器DSP内核。这些DSP内核不会相互通信,因为它们没有任何共享内存。
我遇到了这个奇怪的问题,我无法重写到这个“暨”数组,我计算累积频率。我只能读第一次写给它的东西。之后的写入未注册。 这个问题的任何解决方案?
该设备具有统一内存架构。 'cum'和'frequency'也属于'CL_MEM_READ_WRITE'类型。
此代码段在DSP内核上运行
...
//upscan
for(i=0; i < 32; i++)
{
if(pid<4)
{
localvar1 = frequency[(i*8)+(2*pid)];
localvar2 = frequency[(i*8)+(2*pid)+1];
cum[(i*8)+(2*pid)+1] = localvar1 + localvar2;
}
}
for(i=0; i < 32; i++)
{
if(pid<2)
{
localvar1 = cum[(i*8)+(4*pid)+3];
localvar2 = cum[(i*8)+(4*pid)+1];
cum[(i*8)+(4*pid)+3] = localvar1 + localvar2;
}
}
for(i=0; i < 32; i++)
{
if(pid<1)
{
localvar1 = cum[(i*8)+(pid)+7];
localvar2 = cum[(i*8)+(pid)+3];
cum[(i*8)+(pid)+7] = localvar1 + localvar2;
}
}
...