Other Parts Discussed in Thread: SYSBIOS
Hi
We have two self-designed boards, one using DM8148 (DSP is C674X) and the other using TDA2X (DSP is C66X). We run the same algorithm on the two board's DSP, and find C674X faster than C66X. Both of the two bord DDR frequency are 533 and the DSP frequency are 750. We use the sam compiler option -c -qq -pdsw225 -mv6600 --abi=elfabi -mo -eo.oe66 -ea.se66 -ms --embed_inline_assembly --symdebug:dwarf -O3 --keep_asm. What is the reason for this?
here is our testing code:
#define MAXV(a,b)((a>b)?(a):(b))
#define MINV(a,b)((a<b)?(a):(b))
typedef unsigned char u8;
int LneDet_MorphEroX(const u8 *SrcImg,u8 *DstImg,
const int Wid,
const int Hei,
const int MorphSizeV,
const int HeiStart,
const int HeiEnd,
const float k1,
const float k2)
{
int Delta,midSize;
int MV_i,MV_j,MV_k;
int gray_curr,gray_min,midL,midR;
for (MV_i=HeiStart;MV_i<HeiEnd;MV_i++)
{
midSize=MorphSizeV/k1 - (HeiEnd-MV_i)*k2/((HeiEnd-HeiStart))*MorphSizeV;
Delta=MAXV(1,midSize);
for (MV_j=0;MV_j<Wid;MV_j++)
{
gray_min=0xff;
midL=MAXV(0,(MV_j-Delta));
midR=MINV((Wid-1),(MV_j+Delta));
for(MV_k=midL;MV_k<=midR;MV_k+=2)
{
gray_curr = *(SrcImg+MV_i*Wid+MV_k);
gray_min=MINV(gray_min,gray_curr);
gray_curr = *(SrcImg+MV_i*Wid+MV_k+1);
gray_min=MINV(gray_min,gray_curr);
}
*(DstImg+MV_i*Wid+MV_j)=gray_min;
}
}
return 1;
}
highly appreciate your help, thanks. !!!