This is a read-only archive of an earlier blog posting. Reasons for the
change are at http://blog.sensicomm.com.
The permanent version of this post - with comments (if any) - is at
http://sensicomm.blogspot.com/2014/02/stm32-on-linux-again.html
STM32 on Linux, again.
Starting another project using the STM32
micro, so time to update and reinstall the toolchain. This is an
update to my previous post on the topic at http://blog.sensicomm.com/2012/01/stm32-stm32f4discovery-arm-eval-board.html
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 code
into 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.
I used dfu-util before. That's now
in Debian, and should still work but I haven't retested it.
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
Programs are installed in
/usr/local/bin: st-flash st-info st-term st-util
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).
Comments on blogspot.com
To make or view comments, see the original post at
http://sensicomm.blogspot.com/2014/02/stm32-on-linux-again.html