We love gcc. As embedded developers we also love IAR as a tool chain vendor. Their products are well known and produce quality code. Most importantly is the fact that IAR’s compiler and debugger/simulator can be used via the command line in batch mode. This allows it to play nicely with our open source testing tools. There is, however, a catch for using IAR. It is not free nor open source.
A white paper by Microcross discussed some of the advantages of using open source tools for embedded projects. One of the problems with using proprietary tools is that you can become “locked” into a particular vendor’s ecosystem of tools never to escape with a penny left in your coffers. Another problem is that without the source code your tool set is the way it is and there’s no way to change it and adapt it for your particular development process and needs. On the other hand, large organizations are willing and happy to pay for great tools with powerful debugging features. Perhaps we should spend more time and money on developing open source tools for more platforms.
I was impressed by the number of MCU’s already supported by GCC and GDB. They include Renesas SuperH (a powerful platform we’ve been using recently) and Atmel AVR. The GCC support for AVR is crucial to that wonderful development community: Arduino