Compiler
Previously I used the summon-arm gersion of GCC http://summon-arm-toolchain.org/but the git repo says it's "not under active development" any more. They recommend https://launchpad.net/gcc-arm-embedded , which seems to be an offically ARM-supported
version.
It looks like Debian has packaged the launchpad version into the "unstable" branch: http://packages.debian.org/sid/gcc-arm-none-eabi but I'm running "stable" so I got it directly from launchpad instead. Install was simple:
- Download gcc-arm-none-eabi-4_8-2013q4-20131204-linux.tar.bz2
- unpack in /opt,
- add to PATH
- Create symlink: cd /opt && ln -s gcc-arm-none-eabi-4_8-2013q4 gcc-arm-none-eabi
That's my setup, the chosen directory is just a matter of personal preference.
Programming tools:
I'm using the STM32F4DISCOVERY board for development, so there are two ways to get codeinto the chip:
- Use the st-link USB input to the built-in programming hardware.
- Connect directly to the USB port of the STM32F4 chip and use dfu-util.
Code for the st-link interface is available and built with no problem:
- git clone git://github.com/texane/stlink.git stlink
- cd stlink && ./autogen.sh && ./configure && make && make install
An example was successfully placed in flash using:
st-flash write *.bin 0x8000000
Libraries:
The open source libraries and examples at http://libopencm3.org/wiki/Downloads built without problem using the launchpad compiler. My build command was:
PATH=/usr/bin:/bin:/opt/gcc-arm-none-eabi/bin DESTDIR=/opt/libopencm3 make install
ST has standard peripheral library source code on their website, but it doesn't come with Makefiles. A USB serial example at http://vedder.se/2012/07/usb-serial-on-stm32f4/ includes some (all?) of the ST libraries and compiles fine with the launchpad compiler. I downloaded and unpacked STM32F4_USB_CDC.zip and "make" ran without problems. I only had to change the top-level Makefile so that BINPATH points to the directory that arm-none-eabi-gcc is in
(BINPATH=/opt/gcc-arm-none-eabi/bin for my install).