Forum: Mikrocontroller und Digitale Elektronik [STM32] Visual Studio Code


von Manfred B. (manib)


Lesenswert?

Hallo

aktuell gibt es auf unserem Blog eine Installationsanleitung für Visual 
Studio Code und MinGW um damit Windows X86 Programme zu erstellen:
http://mikrocontroller.bplaced.net/wordpress/?page_id=2229

Eigentlich nichts Neues - ich versuche aber das Ganze so einzurichten, 
das damit auch STM32 C/C++ Sourcecode compiliert werden kann.

Das ist mir bis jetzt aber noch nicht gelungen. Ein Ansatz wie das gehen 
müsste findet man hier:
https://github.com/MuhsinFatih/stm32-Visual-Studio-Code-template

bzw. hier ein anderes Projekt:
https://github.com/XVincentX/vscode-stm32-template

Vielleicht hat das ja von Euch jemand schon am Laufen?
Wenn ja, dann bitte hier Bescheid geben – Danke!

LG, Manfred

PS: Bitte jetzt nicht mit der Frage kommen, ob das sinnvoll ist oder 
nicht. Ja ich weiß, es gibt bereits tolle IDEs die ich einfach verwenden 
könnte. Dennoch hätte ich das gerne einmal damit realisiert.

von Christopher J. (christopher_j23)


Lesenswert?

Manfred B. schrieb:
> Vielleicht hat das ja von Euch jemand schon am Laufen?
> Wenn ja, dann bitte hier Bescheid geben – Danke!

Ja, ich hatte vscode schon mit einem GCC-ARM am laufen. Im Prinzip ist 
es auch ganz einfach: Man nimmt ein Makefile und konfiguriert den Aufruf 
von "make" als Build-Task. Da ist nichts dabei.

Etwas komplizierter ist es dann, den Controller debuggen zu können. 
Glücklicherweise gibt es ein Plugin dafür:
https://github.com/WebFreak001/code-debug

Man kann sich den Debug-Task so einrichten, dass automatisch OpenOCD 
gestartet wird, sobald man auf den Debug-Button klickt. Der GDB 
verbindet sich dann mit dieser OpenOCD-Instanz. Ich kann mal nachschauen 
ob ich irgendwo noch die config-Datei dafür finde.

von Evo (Gast)


Lesenswert?


von Evo (Gast)


Lesenswert?


von Manfred B. (manib)


Lesenswert?

Hi Evo,

vielen Dank für die tollen Links - das sieht sehr vielversprechend aus;)

@Christopher Johnson:
danke auch dir für deine Hinweise.

...ich melde mich wieder, wenn ich erste Ergebnisse habe.
LG, Manfred

von C. W. (chefkoch)


Lesenswert?

Einfach VisualGDB kaufen, installieren und benutzen - umsonst ist der 
Tot. VisualGDB läuft sehr gut und der Support ist klasse. Gibt auch eine 
30 Tage Demoversion.

von Christopher J. (christopher_j23)


Lesenswert?

C. W. schrieb:
> VisualGDB kaufen, installieren und benutzen

Nicht auf Linux oder OS X. Hier war explizit nach VS-Code gefragt und 
nicht nach VS.

von mhorsche (Gast)


Lesenswert?

Unter https://github.com/mhorsche/F746_NucleoTemplate habe ich ein 
einfaches Template für das Nucleo F746ZG erstellt (makefile) und eine 
kurze Readme geschrieben. Vielleicht hilft es dem ein oder anderen.

Sofern es jemand schafft, den SWO/SWV ins Terminal zu bekommen wäre ich 
überaus dankbar und würde die Tasks entsprechend anpassen. Den SWO habe 
ich bisher nur über den ST-Link auslesen können. OpenOCD Server starten 
und auch über Telnet oder GDB darauf zugreifen funktioniert jedoch 
problemlos.

Viele Grüße,
Max

von Christopher J. (christopher_j23)


Lesenswert?

Ich würde es vielleicht mal mit "itmdump" probieren, das erstellt eine 
named pipe in die OpenOCD dann schreiben kann. Der Output wird dann nach 
stdout geschrieben.

Wenn du Rust bzw. Cargo installiert hast geht es einfach mit
1
cargo install itm
zu installieren. Mehr Infos findet man unter http://blog.japaric.io/itm/

Wenn man statt OpenOCD den Segger GDB-Server nimmt, dann kann man wohl 
auch direkt per Telnet auf Port 2332 auf den SWO-Output zugreifen, siehe 
https://mcuoneclipse.com/2016/10/17/tutorial-using-single-wire-output-swo-with-arm-cortex-m-and-eclipse/

von mhorsche (Gast)


Lesenswert?

Hallo Christopher,

über den zweiten Blogeintrag bin ich auch schon gestolpert, das wollte 
ich bei Gelegenheit auch testen und meinen ST-Link neu flashen 
(https://www.segger.com/products/debug-probes/j-link/models/other-j-links/st-link-on-board/). 
Sobald es Neuigkeiten gibt gebe ich Bescheid, vielleicht kann hierzu 
jemand seine Erfahrungen teilen?

Grüße, Max

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.