Hi Andrew,
Replies in slow motion......
Andrew E. Kalman wrote:
Which version of IAR? v1.26B, or v2.10A?
In our comparisons of the various commercial MSP430 compilers (w/IAR
v1.26B), the Archelon / Quadravox and Rowley Associates compilers came
out on top, ROM-wise. RAM usage was the same for all six Salvo
tutorials. The results can be seen buried in the "Compiler Reference
Manuals" on our site.
That's odd. The Quadravox package has a number of good qualities, but
code size and speed are not amongst them. It isn't bad, but most things
work out 10% to 20% smaller using mspgcc or IAR 1.26B. That's quite a
lot on a small embedded processor. Some of my stuff which keeps running
out of CPU power with Quadravox runs with time to spare using mspgcc. I
wonder what is so different about your code that you find such a
different conclusion?
The biggest code size differences comes the moment you include a
floating point calculation. Quite a few apps use just one or two
floating point calculations (e.g. for controlling the range of a divide
at the end of a long measurement process - I usually do things the hard
way, and avoid this). IAR is pretty good at only dragging in only the
library code it needs. Other compilers don't seem to drag in the
floating point stuff quite so incrementally, with bloated results.
I don't know how IAR v2.10A compares to v1.26B.
Someone I know doing comparisons found 2.10A produces significantly
smaller and faster code. 0-10% seemed to be the range in their tests. I
have 2.10A, but I haven't had a real reason to use it so far. I found
the bits of 1.26B code I have looked at an odd mixture of good and bad,
so there seems to be variable room for improvement depending how many of
the good and bad things your particular code hits.
Regards,
Steve