Erster ausführbarer Entwicklungsstand für STM32G431CB. Compiler und Linker laufen als WebAssembly vollständig im Browser.
Die obere Featureleiste öffnet Explorer, Debugger, Serialmonitor und Ausgabe. Die Toolbar bietet Verbindung, Run, Speichern, Build/Rebuild und Flashen. Run speichert, kompiliert und flasht; Status und Downloads stehen in der Ausgabe. Projekte und Sammlungen erreichst du über das Menü ⋯ im Explorer.
Das Dropdown „Aktives Projekt“ wählt das Projekt; darunter erscheint nur dessen Datei- und Ordnerbaum. Rechtsklick auf das Projekt bietet Einstellungen, Kopieren und ZIP-Export; Rechtsklick auf Dateien bietet Öffnen, Umbenennen und Löschen. Browserprojekte können später in einen freigegebenen Ordner übertragen werden. Neue Projekte werden bei Anlage gespeichert.
Die portable WebMCU-Studio.html in Chrome öffnen. Kein Server oder Hilfsprogramm erforderlich. Alternativ die statisch gehostete Ausgabe nutzen und unter ? → Offline speichern vollständig herunterladen.
Arbeitsordner öffnen, Projekt mit dem Plus neben der Auswahl anlegen und mit Strg+S speichern. Ohne gewählten Ordner liegt das Projekt zunächst im Browser. Vor jedem Build wird gespeichert. Projekt-ZIP regelmäßig zur Sicherung herunterladen.
Unter Sammlungen → Demos laden die öffentliche Sammlung webmcu-demos öffnen. Weitere GitHub-Repositories lassen sich zusätzlich verbinden. Unter Bibliotheken → Quellen verwalten lassen sich auch lokale Ordner mit Bibliotheks- und Beispielkatalogen verbinden. Geladene Quellen bleiben offline nutzbar; die Standardquelle bleibt daneben erhalten. „Projekt öffnen“ lädt eine Vorlage direkt als unabhängiges Projekt.
Bei „Neues Projekt“ den Controller aus dem Dropdown wählen. Profile lassen
sich aus dem Demo-Repository laden. „Eigenes Profil“ speichert eine
JSON-Datei unter .webmcu/controllers/ im freigegebenen
Arbeitsordner. Lokale Profile werden bei Aktualisierungen nicht
überschrieben. Neue Controller benötigen neben den Profildaten passende
Startup- und Headerpakete; zunächst ist das G431-Paket enthalten.
Register-Blink, Live-Watches oder leeres Registerprojekt wählen. Die Originalheader von ST und CMSIS sind enthalten. Keine HAL/LL-Treiber. Die Blink- und Live-Demo nimmt beispielhaft PB1 → Vorwiderstand → LED → GND an. Vor Nutzung mit der eigenen Platine vergleichen.
Strg+Enter baut ELF, BIN, HEX und MAP. Debug enthält DWARF4. Projekteinstellungen enthalten C-/C++-Standard, Optimierung, Defines und Includes. Die Analyse verwendet das aktive Projekt. Sprachfunktionen sind noch nicht vollständig auf dem Niveau eines vollständigen Language Servers.
Die Einstellungen sind nach Ziel, Compiler, Includes und Linker/Speicher gegliedert und zeigen die resultierenden Compileroptionen. „Übernehmen“ aktualisiert den bearbeiteten Stand; „Speichern & schließen“ speichert ihn.
Unter „Verwendete Includes“ im Explorer stehen die Header aus der aktiven Compileranalyse. Auf einer wörtlichen #include-Zeile per Rechtsklick „Include-Datei öffnen“ oder F12 wählen. Makrobasierte Include-Namen werden derzeit nicht direkt aufgelöst.
ST- und CMSIS-Header sind normale Projektdateien. Bei Bearbeitung eines
Toolchain-Headers entsteht eine lokale Kopie unter
headers/toolchain/usr/.... Mit Strg+S oder vor Build wird sie
im Projekt gespeichert. Compiler und IntelliSense verwenden diese Kopie auch
nach dem Neuladen. Andere Projekte und die eingebetteten Originalheader
bleiben unverändert.
Unter Projektaktionen → Speicherlayout die Regionen bearbeiten. FLASH und RAM versorgen das mitgelieferte Startup; CCM ist separat. Zusätzliche RAM-Sektionen heißen .noinit_NAME und werden nicht initialisiert. Vorschau prüfen, übernehmen und speichern. Beliebige manuelle Linkerskripte werden nicht automatisch in die GUI zurückübersetzt.
Links „Verfügbare Includes“ aufklappen: vollständiger Projektpfad und Einbindungsstatus stehen direkt in der Liste, die Paketquelle im Tooltip. Anklicken öffnet den Header und seinen Ordner im Dateibaum. Beim Schreiben von #include ergänzt Strg+Leertaste die passenden Dateinamen. Funktionen, Register und Typen kennt IntelliSense nach dem Einbinden.
GPIO, UART und CAN 3.0 kombinieren einen gemeinsamen C++-Header mit dem Adapter des ausgewählten Controllers. Bibliotheken → Quellen verwalten verbindet zusätzliche GitHub-Repositories oder lokale Ordner. Bereits angelegte Projekte behalten ihre eigenen Dateien und Revisionen.
Debug aktivieren, mit Debug-Informationen kompilieren, passende Firmware flashen und ST-Link verbinden. Globale und statische RAM-Objekte können ohne Core-Halt beobachtet werden; lokale Stack-/Registervariablen benötigen Halt. Mehrere Werte sind kein atomarer Snapshot. Hardwareabnahme dieses Stands steht noch aus; bisherige Protokolltests sind Simulationen.
Oben Serialmonitor öffnen, Baudrate einstellen und Port verbinden. Standard: 115200 Baud, 8N1. Unter Format stehen Datenbits, Parität, Stopbits und RTS/CTS bereit. Text wird als UTF-8 dargestellt; Hex zeigt die empfangenen Bytes. Senden unterstützt Text mit keinem Zeilenende, LF, CR oder CRLF sowie Hex-Bytepaare (z. B. 01 A0 FF). Hex-Senden fügt kein Zeilenende an.
Der Empfang läuft beim Ausblenden und beim Wechsel zur Build-Ausgabe weiter; Trennen schließt den Port. Der Puffer hält die letzten 256 KiB, ältere Daten werden verworfen und gezählt. Log speichern exportiert den aktuellen Puffer als Text, in Hex-Ansicht als unveränderte Binärdatei. Keine dauerhafte Aufzeichnung, kein ANSI-Terminal und keine automatische Portverbindung. UTF-8-Zeichen am abgeschnittenen Pufferanfang können als Ersatzzeichen erscheinen. UART-Einstellungen werden lokal gemerkt, Logs nicht.
Als Port kann ein passender USB-UART-Adapter oder ein verfügbarer ST-Link-VCP dienen. UART-Verdrahtung und Baudrate müssen zur Firmware passen. Dies ist unabhängig vom SWD-Debugger. Chrome muss Web Serial bereitstellen; das funktioniert auch offline. Tests mit simulierten Ports sind bestanden, physische UART-/VCP-Abnahme steht noch aus.
Oben STM32 USB-DFU wählen. Board im System-Bootloader starten (BOOT0/Option Bytes gemäß Board) und USB direkt am MCU anschließen; beim G431 PA11/PA12. Verbinden und Flashen, oder Run. BOOT0 danach zurücksetzen. Die IDE löscht nur belegte Flash-Seiten und liest die Firmware zur Kontrolle zurück. Debugging bleibt über ST-Link. Windows benötigt einen WebUSB-kompatiblen DFU-Treiber. Physische DFU-Abnahme steht noch aus.
Arduino ist vorerst zurückgestellt. Neue Projekte arbeiten auf Registerebene.
GitHub-Sammlungen können gelesen und Vorlagen offline installiert werden. GitHub/GitLab-Beiträge, weitere Controller, SVD-Registeransicht und der vollständige Debuggerumfang sind noch in Arbeit. Den aktuellen Umfang dokumentiert docs/IMPLEMENTIERUNGSSTAND.md im Repository.