FPGA通过SRIO向SL2某段区域每5ms写入图像数据,核2有一任务读取该数据,L1D,L1P,L2的cache大小都为32k,sysHeap段分配在DDR中。
通过#pragama在DDR分配了接数的数组unsigned short a[256*256];
。。。
//cache_invL2(p,256*256,cache_wait)
for(i=0;i<256*256;i++)
{
a[i]=*(p+i);//p指针指向SL2图像数据起始地址
}
//cache_wbL2(a,256*256,cache_wait)
。。。。
调试时,结果没有达到预期要求,降低接收数据的长度将256*256改为16,结果达到预期效果。这是因为什么原因?cache空间小,搬运源数据时还会经过cache?
使用EDMA_copy(KesStone_Common.c)也会出现这种问题。