Part Number: TMS320F28075
Other Parts Discussed in Thread: C2000WARE
Hello,
When it comes to using IQmath with eabi (ELF) output format, the following advice is generated.
"../Sw_Timer.c", line 1893 (col. 18): advice #3195-D: (Performance) EABI double precision is 64-bits as opposed to 32-bits for COFF. Consider changing doubles to floats for improved performance in FPU32-mode.
The code looks like this.
iq10L42LqTemp = _IQ10mpy(iq10L42Lq, _IQ10((float)wEqEstGainPerc * 0.01f));
I found that _IQ10() macro is defined as follows.
#define _IQ10(A) (long) ((A) * 1024.0L)
After changing the code like this,
#define _IQ10(A) (long) ((A) * 1024.0f)
The advice message has gone.
Does this have something to do with performance?
I think this should be reflected in the IQmath header file.
#if defined(__TI_EABI__ && FPU64)
#define _IQ10(A) (long) ((A) * 1024.0L)
#else
#define _IQ10(A) (long) ((A) * 1024.0f)
#endif
What do you think?
Thanks.