A Guide And Helper Script For ARM Cross Compiling Toolchain On A Mac


[Mitchell Johnson] wanted to develop for the STM32F4 Discovery board on his Mac. There are a few ready-to-use options when it comes to the ARM toolchains, but he couldn’t find one that satisfied all of his needs. After working out all the kinks he wrote a guide and tweaked a script to install the ARM tools on a Mac.

The problem he had with some of the pre-packaged tool chains is that they didn’t support the hardware floating point functionality of STM’s Cortex-M4 chips. To get around this without doing his own ground-up build (which can be quite a challenge) he forked the Summon Arm Toolchain script and modified it to include ST-Link support in the build. One of the things that we like about that script is it installs the tools in a sub-directory of your home directory. This way if you already have another ARM toolchain you can switch between the two by tweaking your PATH variable.

4 thoughts on “A Guide And Helper Script For ARM Cross Compiling Toolchain On A Mac

  1. I also have installed summon-arm-toolkit (for Linux), thinking I had fpu support, but then I got weird bugs.. it turned out that the fabs() function wasn’t working. And yes, I had initialized the fpu at startup. When I re-compiled without fpu support, everything was normal again.. I didn’t look into it further as I mostly use double and speed is not an issue anyway. Anyway, beware before you call victory on fpu support.

  2. How to install an ARM toolchain on OS X:
    1. Install Macports
    2. sudo port install arm-none-eabi-gcc arm-none-eabi-gdb openocd (with the variants for your adapters)
    3. There is no step 3.

  3. You can also install Gentoo on OSX using gentoo-prefix:

    In gentoo you can then use crossdev which is a very very mature toolkit to create a crosscompiler toolchain. Then with your toolchain compiled, you can use the Gentoo’s default package manager (emerge) to cross-compile any software in the repository. It is as easy as that. Cross-compilation works transparently in Gentoo.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.