STLink
SWD can be used to upload the firmware to stm32fx MCU without a bootloader.
A ST-Link is needed, any stm32-discovery board has a ST-LinkV2 on it (starts @ 8€).
A standard ST-Link costs from 17€
Needed Tools
st-flash and st-util are needed Tools from texane
download and install
git clone git://github.com/texane/stlink.git stlink cd stlink ./autogen.sh ./configure make
copy in the suitable directory
sudo cp st-flash /usr/bin sudo cp st-util /usr/bin
add udev rules (replace user with your username)
sudo cp /home/user/stlink/49-stlinkv*.rules /etc/udev/rules.d sudo udevadm control --reload-rules
For ST-LinkV1 take a look at the readme.txt !
Test it
To copy the file from the MCU
st-flash read ~/STM32F4-Discovery.bin 0x8000000 0x100000
LED LD1 will flash green/red.
stm32f4-discovery shoud be found at /dev/stlinkv2_2 how can that be tested ? please fix me :)
usb device
lsusb Bus 002 Device 007: ID 0483:3748 SGS Thomson Microelectronics ST-LINK/V2
Howto
Connect the ST-Link to the MCU. If a complete stm32fx-discovery board is used, CN3 jumpers need to be set. To program a external MCU, remove CN3 jumpers and connect the external MCU with the SWD header.