Development with STM32F7 discovery

A few pointers regarding development with an STM32F7 discovery board. My intention with this powerful board is to be able to sync wave files to a tap-tempo BPM (kinda Ableton Live like), and take the device up on stage with my band.

The board:


The STM32F7 disco runs at ~200Mhz, has support for DSP instructions (hardware floating point unit) and a lot, lot more. My first step was to make development easy, fast and “Arduino” like – since I’m really comfortable with that. I tried available options like STM32WB, Keil, Eclipse IDE plugins, etc but those did not work for me.

My current development setup is build around the great examples by postspectacular who offers a day-course synth building focussing on the STM32F7 disco. Check out his github repo! His setup offers a flexible makefile that compiles all projects without the need for an IDE. The examples are clear, step by step and easy to follow and extend upon.

My only extra need was more debug information. The Arduino way of just outputting over Serial.print did not work. So I did some research regarding gdb, the GNU project debugger. Since the makefile also supplies an ELF file, setup was quick:

I’m working in example 05, so to make debugging possible I edited the ex05.make file and changed the CFLAGS line to this:

CFLAGS += -O2 -ffast-math -g

Less optimisation (O2 instead of O3) and a -g flag to include debugging symbols.

I compiled the st-link gdb-server for OSX (texane on github). From the directory: /Users/Arthur/Development/embedded/tools/stlink/build/Release/src/gdbserver I’m running the st-util utility with: ./st-util -m -n

In an other terminal I’m running the arm gdb with the compiled ELF from example 5:

arm-none-eabi-gdb -tui –eval-command=”target extended-remote localhost:4242″ bin/ex05/app.elf

Or, if I just want to test the compiled application:

cp bin/ex05/app.bin /Volumes/DIS_F746NG/

update: guess you’ll have to upload the new compiled binary to the board using the last command, before initiating a debug session!