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)也会出现这种问题。
Nancy Wang:
请问当数据长度为256*256时是固定某一部分字节数据会读取失败吗?
是否从cache中读取取决于是否在读之前执行invalid操作。
,
user4192203:
问题找到了,ddr初始化有问题
,
Nancy Wang:
感谢分享!