|
Here's a new twist. I commented out all of my sprintf calls to see how much space the FP routines were actually using. The code size dropped by about 1k, but I noticed in the MAP file that the FP modules were still being linked. The only other place that uses any FP is the ADC which has two functions that use floats, but those functions are optimized out as they are not being used. I verified by cross referencing the LST and MAP files that all occurences of a FP routine call in the LST file were in functions that were shown as being deleted in the MAP file. Also, right near the top of the MAP file it states the following: "MEMORY MODEL: LARGE WITH FLOATING POINT ARITHMETIC".
Here are another copy and paste from the MAP file:
PUBLIC SYMBOLS OF MODULE: .\DP8051_Keil_903\Release\(project).omf (LCD)
VALUE CLASS TYPE PUBLIC SYMBOL NAME
=================================================
...
01000243H CODE --- ?C?FCASTC
0100023EH CODE --- ?C?FCASTI
01000239H CODE --- ?C?FCASTL
010001C2H CODE --- ?C?FPCMP
010001C0H CODE --- ?C?FPCMP3
01000123H CODE --- ?C?FPDIV
010002AEH CODE --- ?C?FPGETOPN2
0100001AH CODE --- ?C?FPMUL
010002E3H CODE --- ?C?FPNANRESULT
010002EDH CODE --- ?C?FPOVERFLOW
010002C5H CODE --- ?C?FPRESULT
010002D9H CODE --- ?C?FPRESULT2
010002EAH CODE --- ?C?FPUNDERFLOW
...
|