Would you change your ARM toolchain?

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.

Timo Ylhäinen
Software Architect
Tikkabit Ltd.





Would you change your ARM toolchain? — 3 Comments

  1. Timo: We do have substantial proprietary tools bundled in our _commercial_ CodeBench releases. The CodeBench Lite tools do not have much in the way of proprietary software in them. On some architectures we have sponsors that wish for debug probe support in their CodeBench Lite release which is dependent upon a proprietary DLL. We build a debug sprite for this purpose to isolate these proprietary components from gdb. Our documentation is not under an open source documentation license, either, but of course anyone who downloads it is free to use it.

    The formula for what we put in CodeBench Lite is the same as it has always been: free GNU toolchains for embedded pre-built with the right components to get going quickly. Nothing has changed since the acquisition on that.

    Each CodeBench Lite release is also accompanied by companion source code tarball. We provide these so that if one wishes to build their own version and do what they will with it they may.

    We do maintain CodeBench Lite and in fact just released new versions of the ARM toolchains (both Linux and bare metal). Look for the 2013.05 release after clicking on your preferred platform here:


    Thank you,

    Brad Dixon

  2. I have noticed you don’t monetize your page, don’t
    waste your traffic, you can earn additional cash
    every month because you’ve got hi quality content. If you want
    to know how to make extra money, search for: best adsense
    alternative Dracko’s tricks

Leave a Reply

Your email address will not be published. Required fields are marked *