Nucleo ST32103 ARM Dev Board

From OpenEnergyMonitor Wiki
Jump to: navigation, search

Here are my notes to work with Nucleo STM32F103 dev board with built in STlinkV2-1 programmer under Ubuntu 14.04 LTS 64bit - Nov/Dec 2014


Setup

1. GNU ARM ToolChain

2. Eclipse IDE

3. STmicro libraries

4. GDB Server


1. GNU ARM Tool Chain

https://launchpad.net/~terry.guo/+archive/ubuntu/gcc-arm-embedded $ sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded

(if using 14.04 follow extras steps when adding PPA)

$ sudo apt-get update

$ sudo apt-get install gcc-arm-none-eabi

if 64bit, we need 32-bit libs

$ sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0


2. Eclipse IDE & ARM plugin

Check Java is at least 1.7

$ java -version

http://www.eclipse.org/downloads/

Choose IDE for C/C++ for 32 / 64 bit

Extract and run $ ./eclipse

http://gnuarmeclipse.livius.net/blog/plugins-install/

Add c++ dev tools

Help → Install New Software > releases

Select 'Luna' eclipse release

Group by category > programming languages > C/C++ dev tools

Add ARM plugin

Help → Install New Software > releases

http://gnuarmeclipse.sourceforge.net/updates



3. STmicro libraries

firmware: http://www.st.com/web/en/catalog/tools/PF257890#

template makefile compile environment:

git clone git://github.com/geoffreymbrown/STM32-Template.git



4. GDB Server

GDB Server - debugging - ST link is not native compatible with Linux however it's been reverse engineered:

git clone git://github.com/texane/stlink.git

$ sudo apt-get install libusb-1.0

$ sudo apt-get install autoreconf

$ cd stlink

$ ./autogen.sh

$ ./configure

$ make

$ sudo cp 49-stlinkv2-1.rules /etc/udev/rules.d

$ sudo udevadm control --reload-rules

$ sudo udevadm trigger

$ sudo ./st-util


GUI - QSTLink2

https://github.com/fpoussin/QStlink2

https://launchpad.net/~fpoussin/+archive/ubuntu/ppa

$ sudo add-apt-repository ppa:fpoussin/ppa

$ sudo apt-get install qstlink2


To flash code to the board

http://stackoverflow.com/questions/2427011/what-is-the-difference-between-elf-files-and-bin-files

Binary

./st-flash write blinky.bin 0x8000000

ELF Executable Linkable Format

1. Start ST-link server on port 4242

$ ./st-util #check ST link is connected ok

$ ./st-util 4242 /dev/stlink

2. Start GDB and connect to ST-link server on port 4242

start an instance of arm-noneeabi-gdb

in a separate window and execute the following


$ arm-none-eabi-gdb BlinkingLights.elf

$(gdb) target extended-remote :4242

$(gdb) load

$(gdb) continue


Serial Output

Nucleo board serial output could be viewed by opening serial port on /dev/ttyACM0

To compile on Eclipse

1. Select new C++ project for STMF10x project

2. Check through default options

3. select blinky example

4. in BlinkLed.h change port number to be '0' for A and pin number to be 5 (on the necleo board the LED is on A5)

5. Click build

6. .elf file is now in the debug folder