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

mac-arm-toolchain-script

[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:
    http://www.gentoo.org/proj/en/gentoo-alt/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 to MrXCancel 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.