Hello,
Performance issue with TMS320C6457.
Compiler used is C6000 in CCS 5.2
Attached code has two examples using local variable and global variable.
The code with global variables is taking very large clock cycles as compared to local variables.
Thanks.
/**********************************************************************************************************************************/
//.... These Functions are getting called based on Interrupts..........//
/*.............Test Function With Local Variables....*/
void process_data(void)
{
int start_time,end_time;
TSCL=0;
TSCH=0;
start_time =_itoll(TSCH,TSCL);
int k,s,uiaPixelStore1[2048],uiR1,uiR2,uiR3,uiR4;
for(k=0;k<2048;k++)
{
uiaPixelStore1[k]=0;
}
for(s=0;s<2048;s++)
{
uiR1 = _extu(uiaPixelStore1[s], 24, 24);
uiR2 = _extu(uiaPixelStore1[s], 16, 24);
uiR3 = _extu(uiaPixelStore1[s], 8, 24);
uiR4 = _extu(uiaPixelStore1[s], 0, 24);
}
end_time=_itoll(TSCH,TSCL);
time_diffr= end_time-start_time; ///Time Difference is 10 (time_diffr = 10 clk cycles)
}
/*.....................Test Fucntion With Global Variables .....*/
// Global Declaration ..
int start_time,end_time;
int i,uiaPixelStore[2048],uiR1,uiR2,uiR3,uiR4;
void process_data(void)
{
TSCL=0;
TSCH=0;
start_time =_itoll(TSCH,TSCL);
for(i=0;i<2048;i++)
{
uiaPixelStore[i]=0;
}
for(i=0;i<2048;i++)
{
uiR1 = _extu(uiaPixelStore[i], 24, 24);
uiR2 = _extu(uiaPixelStore[i], 16, 24);
uiR3 = _extu(uiaPixelStore[i], 8, 24);
uiR4 = _extu(uiaPixelStore[i], 0, 24);
}
end_time=_itoll(TSCH,TSCL);
time_diffr= end_time-start_time; //Time Difference is 1565 (time_diffr = 1565 clk cycles)
}
/***********************************************************************************************************************************************/