klipper_faq:flash_guide:st-link_-_der_stm32_notanker
                Table of Contents
ST-Link - Der STM32 Notanker
YouTube Video #102
STM32 St-Link Typen
- V2
- V2.1 (Clone)- Läuft nicht immer unter Windows!
 
- V3 MINIE
ST-Link Pins
| Funktion | ST-Link 2.x Clone | ST-Link V3Minie | Notes | Kabel | 
|---|---|---|---|---|
| 3,3V | 3V3 (nicht empfohlen) | - | Rot | |
| GND | GND | GND | Schwarz | |
| SWDIO | (SW)DIO | T_JTMS/T_SWDIO (Pin 3) | SWD data input/output | Blau | 
| SWCLK | (SW)CLK | T_JCLK/T_SWCLK (Pin 4) | SWD Clock | Gelb | 
| NRST | RST | T_NRST (Pin 9) | Reset of targets STM32 | Grau | 
| VDD-Target | - | T_VCC (Pin10) | VDD von der Platine! Input Pin! Nur nötig beim ST-Link V3 Adapter! | Orange | 
Verbindungen
- beim V2 reicht DIO, CLK, GND
- Beim V3 muss die Spannung des Board mit angeschlossen werden
 Hinweis: Das ist NICHT die Versorgung für das Board!
- Board muss extra mit Strom versorgt werden (USB oder 12/24v) → ggf. auf Jumper achten!
stlink Tools
- sudo apt install gcc build-essential cmake libusb-1.0-0 libusb-1.0-0-dev libgtk-3-dev pandoc -y
- cd ~ && mkdir build -p && cd build
- git clone https://github.com/stlink-org/stlink.git
- cd stlink
- make clean && make release
- sudo make install
- Problem :st-flash: error while loading shared libraries: libstlink.so.1
 https://github.com/stlink-org/stlink/issues/478
 Lösung :sudo ldconfig
Flash lesen
- st-info --probe --connect-under-reset
- Flashgröße ermitteln anhand der Ausgabe vom vorherigen Befehl
 Bsp: flash: 32768 (pagesize: 1024) 32768 / 1024 = 32k 
- st-flash --connect-under-reset read firmware.bin 0x8000000 32k
Klipper flashen
- Beispiel 32K Application Offset- st-flash --connect-under-reset erase
- st-flash --connect-under-reset write katapult.bin 0x8000000
- st-flash --connect-under-reset write klipper.bin 0x8008000
 
- Beispiel kein Bootloader- st-flash --connect-under-reset erase
- st-flash --connect-under-reset write klipper.bin 0x8000000
 
| Application Offset | Bytes | Hex | Startadresse | Kommando | 
|---|---|---|---|---|
| Kein Bootloader | - | 0x8000000 | st-flash –connect-under-reset write firmware.bin 0x8000000 | |
| 16 Kib | 16 * 1024 = 16.384 | 4000h | 0x8004000 | st-flash –connect-under-reset write firmware.bin 0x8004000 | 
| 28 Kib | 28 * 1024 = 28.672 | 7000h | 0x8007000 | st-flash –connect-under-reset write firmware.bin 0x8007000 | 
| 32 KiB | 32 * 1024 = 32.768 | 8000h | 0x8008000 | st-flash –connect-under-reset write firmware.bin 0x8008000 | 
| 48 Kib | 48 * 1024 = 49.152 | C000h | 0x800C000 | st-flash –connect-under-reset write firmware.bin 0x800C000 | 
| 64 Kib | 64 * 1024 = 65.536 | 1 0000h | 0x8010000 | st-flash –connect-under-reset write firmware.bin 0x8010000 | 
| 128 Kib | 128 * 1024 = 131.072 | 2 0000h | 0x8020000 | st-flash –connect-under-reset write firmware.bin 0x8020000 | 
Board Check
- dmesg
- ls -lR /dev/ | grep -v '\->\s../tty' | grep -e 'tty[[:alpha:]]' -e serial
- ~/klipper $ ../klippy-env/bin/python ./klippy/console.py /dev/ttyACM0
bin2hex, hex2bin
- Bin 2 Hex :objcopy --input-target=binary --output-target=ihex test.bin test.hex
- Hex 2 Bin :objcopy --input-target=ihex --output-target=binary test.hex test.bin
Bootloader extrahieren
- Bootloader offsetermitteln
- Offset umrechnen in HEX
 Bsp: Bootloader offset 8k → 8k * 1024 = 0x2000h
- Datei im Hexeditor (HxD https://mh-nexus.de/de/hxd/) laden und alles nach der Adresse löschen
- Datei speichern und fertig
Original Bootloader
klipper_faq/flash_guide/st-link_-_der_stm32_notanker.txt · Last modified:  by dominik
                
                