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 offset
ermitteln- 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: 2024/05/01 10:32 by dominik