AnsweredAssumed Answered

Optimization comparison between CW10.1 and CW6.2 (problem???)

Question asked by RAUL MARTIN on Oct 11, 2011
Latest reply on Oct 11, 2011 by stanish

Hi, I've developed an application based on MCF51QE128 under CW6.2 in which full optimizations are required to fit under its 128KB of FLASH.

Now I'm evaluating CW10 for future purchase and after porting the project and activating full optimizations (level 4), resulting code exceeds these 128KB in more than 18KB.

 

Attached you can see a extract of both MAP files and functions sizes with CW10 and CW6.2. In this case CW6.2 produces around 110KB of code while CW10 produces 140KB. Why???

Talking with freescale distributor, they say that compiler and linker are the same in both versions, but I don't really know if that is true. There is a huge difference between both building operations.

 

Did you have similar troubles with this issue???? Thanks for your answers.

 

***********Compilation with CW10.1******************************

     ADDR         SIZE                    FUNCTION

  00003C98 00000024 .text   LCD_Start          (CDisplay_c.obj)

  00003CBC 0000002C .text   LCD_SetPowerUp     (CDisplay_c.obj)

  00003CE8 0000002C .text   LCD_SetPowerDown   (CDisplay_c.obj)

  00003D14 00000112 .text   LCD_PrintCalendar  (CDisplay_c.obj)

  00003E26 0000004A .text   LCD_PrintAstr            (CDisplay_c.obj)

  00003E70 0000008E .text   LCD_PrintStatRele  (CDisplay_c.obj)

  00003EFE 000000EC .text   LCD_PrintChrono    (CDisplay_c.obj)

  00003FEA 000004A2 .text   LCD_PrintProgram   (CDisplay_c.obj)

  0000448C 00000010 .text   LCD_PrintHolidays  (CDisplay_c.obj)

  0000449C 00000010 .text   LCD_BlinkHolidays  (CDisplay_c.obj)

  000044AC 00000024 .text   LCD_PrintAstrCorr  (CDisplay_c.obj)

  000044D0 00000014 .text   LCD_PrintYear            (CDisplay_c.obj)

  000044E4 00000014 .text   LCD_PrintDate            (CDisplay_c.obj)

  000044F8 00000014 .text   LCD_PrintCounter   (CDisplay_c.obj)

  0000450C 00000044 .text   LCD_PrintRtclock   (CDisplay_c.obj)

 

***********Compilation with CW6.2******************************

    ADDR          SIZE                    FUNCTION

  00010FC2 0000002A .text   LCD_Start          (CDisplay.c)

  00010FEC 0000001C .text   LCD_SetPowerUp     (CDisplay.c)

  00011008 0000001C .text   LCD_SetPowerDown   (CDisplay.c)

  00011024 000000E4 .text   LCD_PrintCalendar  (CDisplay.c)

  00011108 0000004A .text   LCD_PrintAstr            (CDisplay.c)

  00011152 00000092 .text   LCD_PrintStatRele  (CDisplay.c)

  000111E4 00000090 .text   LCD_PrintChrono    (CDisplay.c)

  00011274 0000066C .text   LCD_PrintProgram   (CDisplay.c)

  000118E0 0000000A .text   LCD_PrintHolidays  (CDisplay.c)

  000118EA 0000000A .text   LCD_BlinkHolidays  (CDisplay.c)

  000118F4 00000020 .text   LCD_PrintAstrCorr  (CDisplay.c)

  00011914 0000000A .text   LCD_PrintYear            (CDisplay.c)

  0001191E 0000000A .text   LCD_PrintDate            (CDisplay.c)

  00011928 0000000A .text   LCD_PrintCounter   (CDisplay.c)

  00011932 00000030 .text   LCD_PrintRtclock   (CDisplay.c)

Outcomes