请教下ccs6.1 下面DSP6657 双核 cache问题,怎么查找问题
1. 如下代码N为73008,datatemp为int型数据
_nassert((int)datatemp%8==0);
#pragma MUST_ITERATE(8,,8)
for(i=0;i<N;i++)
{
datatemp[i] = 0;
}
在打开L2cache时,速度要比关闭L2cache慢大概6倍
打开L2cache代码,运行时间长一些
CACHE_setL1PSize(CACHE_L1_32KCACHE);
CACHE_setL1DSize(CACHE_L1_32KCACHE);
CACHE_setL2Size(CACHE_256KCACHE);//
关闭L2cache代码,运行时间短一些
CACHE_setL1PSize(CACHE_L1_32KCACHE);
CACHE_setL1DSize(CACHE_L1_32KCACHE);
CACHE_setL2Size(CACHE_0KCACHE);//
去掉下面代码现象类似
_nassert((int)datatemp%8==0);
#pragma MUST_ITERATE(8,,8)
2. 下面这段代码正好相反,开L2cache则速度快很多
for(i=0; i<CCD_RECEIVE_IMGAGE_HEIGHT; i++)
{
for(j=0; j<CCD_RECEIVE_IMGAGE_WIDTH; j++)
{
*dsty= ((*ssrc_colour) & 0x00ff);
if(j&0x01)
{
*dstv= ((*ssrc_colour) & 0xff00)>>8;
dstv++;
}
else
{
*dstu= ((*ssrc_colour) & 0xff00)>>8;
dstu++;
}
dsty++;
ssrc_colour++;
}
}