| name | ucbuild |
| description | Baut die STM32G431KB-Firmware des watasoge-Projekts mit CMake und arm-none-eabi-gcc.
Konfiguriert den Build (cmake --preset), kompiliert (cmake --build) und zeigt das Ergebnis
(Flash/RAM-Nutzung, erzeugte Artefakte). Verwende diesen Skill nach Code-Änderungen,
um die Firmware zu kompilieren und auf Fehler zu prüfen.
Triggers: "bauen", "build", "kompilieren", "firmware bauen", "ucbuild".
|
| allowed-tools | Bash, Read, Glob |
ucbuild — Firmware bauen
Baut die STM32G431KB-Firmware des watasoge-Projekts.
Verzeichnis
firmware/stm32g431kb/
Alle cmake-Befehle werden in diesem Verzeichnis ausgeführt.
Standard-Build (Debug)
1. Konfigurieren (nur beim ersten Mal oder nach CMakeLists.txt-Änderungen)
cmake --preset Debug
2. Bauen
cmake --build build/Debug
Ausgabe bei Erfolg
Der Post-Build-Step gibt automatisch aus:
- arm-none-eabi-size: text/data/bss/Flash/RAM-Nutzung
- Erzeugt
build/Debug/blinky.elf, blinky.hex, blinky.bin
Release-Build
cmake --preset Release
cmake --build build/Release
Verwendet -Os statt -O0 -g3.
Clean-Build
Bei Konfigurationsänderungen (CMakeLists.txt, Toolchain, HAL-Module) ist ein Clean-Build nötig:
rm -rf build/Debug && cmake --preset Debug && cmake --build build/Debug
Ablauf im Skill
- Prüfen, ob
build/Debug/ existiert. Falls nicht: cmake --preset Debug ausführen.
cmake --build build/Debug ausführen.
- Bei Erfolg: Flash/RAM-Nutzung aus der size-Ausgabe dem Benutzer mitteilen.
- Bei Fehler: Fehlermeldung analysieren und dem Benutzer eine Lösung vorschlagen.
Häufige Fehler
| Fehler | Ursache | Lösung |
|---|
multiple definition of _exit | _exit in syscalls.c UND in libnosys | _exit aus syscalls.c entfernen |
undefined reference to HAL_* | HAL-Quelldatei fehlt in CMakeLists.txt | Datei im SOURCES-Block ergänzen |
No such file or directory: stm32g4xx_hal_*.h | HAL-Modul nicht in hal_conf.h aktiviert | #define HAL_*_MODULE_ENABLED setzen |
READONLY Linker-Fehler | GCC 10.3 unterstützt READONLY nicht | Keyword aus .ld-Datei entfernen |
| Ninja not found | Ninja Build-System fehlt | brew install ninja |
Toolchain-Voraussetzungen
- arm-none-eabi-gcc 10.3
- CMake ≥ 3.22
- Ninja Build-System
Build-Artefakte
build/Debug/
├── blinky.elf # ELF mit Debug-Symbolen (für OpenOCD/GDB)
├── blinky.hex # Intel HEX
├── blinky.bin # Raw Binary
└── blinky.map # Linker Map-File