Hiya-
For ARM:
gcc is pretty much becoming a standard. There is enough
folks working with it to iron out the bugs.
For PIC:
I like cc5x, a freebie and continues to be free for your
first commerical product, then for second and later
commercial products, it should be bought.
I tried sdcc a couple of years ago and it was too buggy
at the time. It might be better.
The freebie version has enough math packages and the
like for me. The commercial version has more.
The freebie I believe comes with 1,8,16,32bit integer AND
24 bit floating point.
There are a couple of c constructs that this compiler
doesn't support. One comes to mind from memory again
switch( variable++ ){
it balked on. So, I did
switch (variable) {}
variable++;
there have been only two or three of these gottchas
that I've run across. On the whole a good package for
the price. Many of the pics are supported and it
is extensible (you can make up the header files for
new pics).
The linker is poorly documented, but you can do 8K
of programs while haveing them cut up into 1K chunks
and linking it afterwards. Again, this is the free
version, the paid one might be better.
Hope this helps.
Cheers,
Rich S.