The world is full of ARM microprocessors, so if you are working with embedded software systems, it is unlikely you can avoid ARM cores. Then what tools would you want to use?
In the old days, the only way to go was ARM ADS, later Realview Development System (RVDS). Many people are still stuck with RVDS 3.1, not daring or affording to upgrade to newest ARM development system, which is now called ARM Development Studio.
ARM’s proprietary toolchains are robust and produce without doubt very reliable code with industry benchmark code density. But they are hugely expensive. If you are working on a serious project in a large company, that might not be an issue. You can very well afford the best tools and perhaps accompany ARM Development Studio with excellent Lauterbach Emulator.
But if you are not, you might want to take a look at the alternatives, that have grown exceedingly interesting over the past few years. Most interesting compilers for ARM embedded CPU’s include GCC-based toolchains, that vary from completely free open software packages to somewhat customized with proprietary additional tools.
A few years ago I met with ARM rep in UK, who convinced me that using GCC-based tools on ARM platform was not a good idea. It was easy to agree with him at the time, but the situation may not be a same anymore.
ARM support in GCC has been around for a while. If you are brave enough, go ahead and build your own toolchain from source code. Or take a look at the readily available packages.
YAGARTO and Code Sourcery are amongs the most commonly used GCC-toolchains for ARM. But since Code Sourcery was purchased by Mentor and YAGARTO-project seems to be discontinued, what is the choice now if you want a completely free toolchain that is also maintaned?
Mentor Sourcery Codebench (new name for Codesourcery) is available free of charge as a LITE version, but it is bundled with proprietary tools not completely under GPL/LGPL licenses and you cannot redistribute that package without their consent.
Amazingly, there exists a free GCC toolchain for Cortex-R/Cortex-M processor families, that is maintained by ARM! It is available from https://launchpad.net/gcc-arm-embedded and looks well worth giving a try.
What if you need JTAG-support? While you probably can setup you own debugging environment with free toolchain and low-cost ICE, it can be a major pain. So if you are not ready to pay prime and buy for example Lauterbach Trace-32, you may want to take a look at for example CrossWorks from Rowley Assosiates accompanied with some of the supported emulators. While not free, it is much more affordable than ARM DS-5.
Well, if you are changing yor toolchain, you cannot expect everything magically work just as before. Quite likely it will not without at least some tweaking or even major effort. If you are upgrading from ARM RVDS 3.1 to DS-5, that is propable not going to be a very big job. But changing from proprietary toolchain to GCC might be.
Any compiler update is a major decision not to be made lightly. But the alternatives are there, I have mentioned only a few, and they seem be more valid than ever.