==== STLink ==== {{:tools:stlink-mini.jpg?100}} STLink is used to program STM32 CPUs on various ARM boards via a SWD interface. === Install === ==Linux== cd /opt/src/ apt-get install build-essential git cmake libusb-1.0-0-dev rehash git clone https://github.com/stlink-org/stlink cd stlink cmake . make make install ldconfig cp config/udev/rules.d/49-stlinkv* /etc/udev/rules.d/ cp config/modprobe.d/stlink_v1.conf /etc/modprobe.d/ udevadm control --reload-rules udevadm trigger On linux we can disable the built in mass storage devices STLINK compatible boards contain, see [[:boards:stm32vl|here]]. ==Windows== [[https://github.com/stlink-org/stlink/releases/download/v1.7.0/stlink-1.7.0-x86_64-w64-mingw32.zip]] === Test === A simple way to test a device is to read nothing from the device. st-flash read /dev/null 0 0 Various boards have been tested in this manner below. [[:boards:vcc-gnd|vcc-gnd]] (STM32F103R8) INFO src/stlink-common.c: Loading device parameters.... INFO src/stlink-common.c: Device connected is: F1 Medium-density device, id 0x20036410 INFO src/stlink-common.c: SRAM size: 0x5000 bytes (20 KiB), Flash: 0x10000 bytes (64 KiB) in pages of 1024 bytes [[:boards:maple|Maple mini]] clone (STM32F103R8) INFO src/stlink-common.c: Loading device parameters.... INFO src/stlink-common.c: Device connected is: F1 Medium-density device, id 0x20036410 INFO src/stlink-common.c: SRAM size: 0x5000 bytes (20 KiB), Flash: 0x20000 bytes (128 KiB) in pages of 1024 bytes Nucleo STM32F302 (STM32F302R8T6) INFO src/stlink-common.c: Loading device parameters.... INFO src/stlink-common.c: Device connected is: F3 small device, id 0x10016439 INFO src/stlink-common.c: SRAM size: 0xa000 bytes (40 KiB), Flash: 0x10000 bytes (64 KiB) in pages of 2048 bytes Nucleo STM32F411 (STM32F411RET6) INFO src/stlink-common.c: Loading device parameters.... INFO src/stlink-common.c: Device connected is: F4 device (low power) - stm32f411re, id 0x10006431 INFO src/stlink-common.c: SRAM size: 0x20000 bytes (128 KiB), Flash: 0x80000 bytes (512 KiB) in pages of 16384 bytes STM32F4 Discovery (STM32F407VGT6) INFO src/stlink-common.c: Loading device parameters.... INFO src/stlink-common.c: Device connected is: F4 device, id 0x10016413 INFO src/stlink-common.c: SRAM size: 0x30000 bytes (192 KiB), Flash: 0x100000 bytes (1024 KiB) in pages of 16384 bytes STM32 Value Line Discovery (STM32F100RBT6B) INFO src/stlink-common.c: Loading device parameters.... INFO src/stlink-common.c: Device connected is: F1 Medium/Low-density Value Line device, id 0x10016420 INFO src/stlink-common.c: SRAM size: 0x2000 bytes (8 KiB), Flash: 0x20000 bytes (128 KiB) in pages of 1024 bytes STM32F030 DEMO BOARD V1.0 (STM32F030F4P6) INFO src/stlink-common.c: Loading device parameters.... INFO src/stlink-common.c: Device connected is: F0 small device, id 0x10006444 INFO src/stlink-common.c: SRAM size: 0x1000 bytes (4 KiB), Flash: 0x4000 bytes (16 KiB) in pages of 1024 bytes === Reference === __Programming interface__ For these programming interfaces two jumpers must be removed to disable the internal board connections and allow external programming. ^STLink SWD ^[[:boards:stm32vl|VL discovery]] ^[[:boards:stm32f4|F4 discovery]] ^Nucleo CN4 | |1 |VDD |VDD | VDD | |2 |SWCLK |SWCLK | SWCLK| |3 |GND |GND | GND| |4 |SWDIO |SWDIO | SWDIO| |5 | |NRST | NRST| |6 | |SWO | SWO| __Target interface__ ^STLink SWD ^[[:boards:vcc-gnd|vcc-gnd]] ^[[:boards:maple|Maple mini]] ^Generic | |1 | | | VDD | |2 |DCLK | 21 | PA14 | |3 |GND | GND | GND | |4 |DIO | 22 | PA13 | |5 | | | NRST | |6 | | | |