Wissenssammlung STM32 BluePill

Hier sammel ich kleine Codeschnipsel und Kommandozeilen, die bei der Arbeit mit STM32 BluePill Boards unter Linux aufkamen.

Ich benutze meist einen ST-Link V2 Clone.

Intel HEX mit ST-Link programmieren

st-flash --reset --format ihex write program.hex

CMake Toolchain in Visual Studio Code angeben

Leider funktioniert die Compiler Kit Auswahl nicht immer.
Bei Problemen die Autodetektion auswählen und in den settings.json des Projektes das Toolchainfile angeben:
"cmake.configureArgs": [ "-DCMAKE_TOOLCHAIN_FILE=/home/marndt/Projects/STM32_BluePill/arm-cmake-toolchains/arm-gcc-toolchain.cmake" ],

launch.json für Visual Studio Code mit OpenOCD

Der .elf Name muss angepasst werden.


"configurations": [
{
"cwd": "${workspaceRoot}",
"executable": "${workspaceRoot}/build/mein-programm.elf",
"name": "Debug with OpenOCD",
"request": "launch",
"type": "cortex-debug",
"servertype": "openocd",
"configFiles": [ "interface/stlink-v2.cfg","target/stm32f1x.cfg"],
"searchDir": [],
"runToEntryPoint": "main",
"preLaunchCommands": [],
"showDevDebugOutput": "none",
"svdFile": "STM32F103xx.svd",
}

.elf file mit OpenOCD hochladen und starten

Den .elf Namen entsprechend anpassen, das Binary startet und OpenOCD läuft nicht weiter:
openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg -c "program cortexm3-blinky.elf verify reset exit"

Aktuellen arm-none-eabi-gdb aus Sourcen compilieren

  1. gdb-x.y.z.tar.zx runterladen
  2. auspacken
  3. mit Buildverzeichnis erstellen
    1. mkdir build-gdb
    2. cd build-gdb
    3. ../$GDB/configure –target=$TARGET –prefix=$PREFIX –enable-interwork –enable-multilib  —–with-python
    4. make
    5. make install

Beim Bau ohne Buildverzeichnis passiert alles mögliche, also im jungfräulich ausgepackten Verzeichnis arbeiten.

Und das Bauen dauert seine Zeit. Ich musste noch die Pakete texinfo und libgmp-dev nachinstallieren.