Forum: Compiler & IDEs AVR und VSCode


von Andreas (ah3112)


Lesenswert?

Hallo,

ich habe bisher mit Eclipse und dem avr plugin meine Programme 
geschrieben. War damit jahrelang auch super zufrieden. Das Plugin hat 
zwar schon seit längerem mit avrdude nicht mehr funktioniert, aber das 
habe ich bisher über eine Batchdatei gemacht.

Letzte Woche hat mein PC den Geist aufgegeben und ich musste jetzt mit 
einem neuen PC auf Windows 11 umsteigen. Da funktioniert das avr plugin 
überhaupt nicht mehr vernünftig. Ich kann z.B. einen einmal 
eingestellten Controller nicht mehr ändern. Mir wurde geraten auf VSCode 
umzusteigen, weil das besser sei.

Ich habe mir zuerst die platformio angesehen, das gefällt mir aber gar 
nicht, weil die zu sehr auf arduino ausgerichtet ist. Ich will aber noch 
die reinen avr einzeln programmieren ohne Board.

Nach langem Kampf habe ich das hinbekommen mit vscode und den "avr 
utils" eine einzelne Datei zu compilieren. Ich finde da aber nirgends 
eine vernünftige Doku, wie ich die einzelnen Compiler- und 
Linkeroptionen einstelle. Mir ist klar, dass das in dieser .json-Datei 
gemacht wird. Aber wo finde ich, wie die einzelnen Variablen überhaupt 
heißen?

Ebenfalls soll man damit Projekte von Microchip Studio importieren 
können. Das Importieren hat funktioniert. Das Compilieren aber nicht. In 
Eclipse wurde mir über ein Fenster angezeigt, mit welchen Parametern 
Linker und Compiler aufgerufen werden. Auch das sehe ich nicht bei 
VScode und den avr utils.

Hier im Forum habe ich über avr helper gelesen. Aber auch dazu finde ich 
im Internet keine vernünftige Doku.

Kann mir jemand sagen, was die geeignete Methode ist um mit VSCode die 
AVRs zu programmieren und wo ich die Bezeichnungen der Variablen in der 
json-Datei finde?

Vorab schon einmal vielen Dank.

Andreas

von Wastl (hartundweichware)


Lesenswert?

Andreas schrieb:
> Kann mir jemand sagen, was die geeignete Methode ist um mit VSCode die
> AVRs zu programmieren und wo ich die Bezeichnungen der Variablen in der
> json-Datei finde?

Was spricht dagegen das Original-Entwicklungstool von Atmel
bzw. jetzt Microchip zu verwenden? Funktioniert von Windows 7
bis Windows 11.

von 900ss (900ss)


Lesenswert?

Andreas schrieb:
> Kann mir jemand sagen, was die geeignete Methode ist um mit VSCode die
> AVRs zu programmieren und wo ich die Bezeichnungen der Variablen in der
> json-Datei finde?

Hier scheint das recht gut erklärt zu sein. Ich hab es aber nur 
überflogen bisher. Nutze auch eher Eclipse aber mit Makefiles. 
Früher(tm) auch das Plugin.

https://www.tonymitchell.ca/posts/use-vscode-with-avr-toolchain/

von Andreas (ah3112)


Lesenswert?

Wastl schrieb:
> Was spricht dagegen das Original-Entwicklungstool von Atmel
> bzw. jetzt Microchip zu verwenden? Funktioniert von Windows 7
> bis Windows 11.
Bequemlichkeit. Ich habe mit Eclipse in Python und C++ programmiert. Das 
war immer angenehm, dass ich für alles eine IDE hatte. Da kannte ich die 
Bedienung. Die war immer gleich.

900ss schrieb:
> Hier scheint das recht gut erklärt zu sein. Ich hab es aber nur
> überflogen bisher. Nutze auch eher Eclipse aber mit Makefiles.
> Früher(tm) auch das Plugin.
Danke. Das hatte ich auch schon gefunden. Ich suche aber eigentlich ohne 
Makefile und die Erklärung der Variablen in den json-Dateiein.

Wie rufst Du aus Eclipse über das Makefile avrdude auf? Wenn das geht, 
würde ich doch wiederEclipse nehmen. Bisher habe ich das über eine 
Batch-Datei von der Console gemacht. Bequemer wäre es direkt aus 
Eclipse.

von Peter D. (peda)


Lesenswert?

Andreas schrieb:
> Ich suche aber eigentlich ohne
> Makefile und die Erklärung der Variablen in den json-Dateiein.

Make ist auch nicht so mein Ding und json erst recht nicht.
Ich compiliere und flashe mit einer Batch.
Die Compiler- und Linkerschalter lasse ich die Batch in eine Textdatei 
schreiben, die ich dann avr-gcc.exe übergebe. Als Source übergibt man 
einfach *.c oder *.cpp, was dann zu allen Sourcefiles im aktuellen 
Verzeichnis expandiert.
Über errorlevel kann man abtesten, ob erfolgreich compiliert wurde, d.h. 
bei einem Fehler wird nicht geflasht.
Geflasht wird dann mit atprogram.exe.

von 900ss (900ss)


Lesenswert?

Andreas schrieb:
> Wie rufst Du aus Eclipse über das Makefile avrdude auf?

Ich nutze im Prinzip die Aufrufe, wie in diesem Artikel beschrieben.

https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Exkurs_Makefiles

Edit: hier ist nochmal ein komplettes Makefile, wo du auch die AVRDude 
Aufrufe findest.

https://www.mikrocontroller.net/articles/Beispiel_Makefile

: Bearbeitet durch User
von Andreas (ah3112)


Lesenswert?

Peter D. schrieb:
> Geflasht wird dann mit atprogram.exe.
Das kannte ich noch gar nicht. Bisher immer nur avrdude.

900ss schrieb:
> Ich nutze im Prinzip die Aufrufe, wie in diesem Artikel beschrieben.
Werde ich mir morgen in Ruhe ansehen. Aber wie rufst Du aus Eclipse das 
Makefile für avrdude auf?

Peter D. schrieb:
> Die Compiler- und Linkerschalter lasse ich die Batch in eine Textdatei
> schreiben, die ich dann avr-gcc.exe übergebe.
Hättest Du da mal ein kurzes Beispiel? Das verstehe ich nicht so ganz, 
obwohl ich damals noch mit MS-Dos angefangen habe.

von Frank K. (fchk)


Lesenswert?

Andreas schrieb:

> Kann mir jemand sagen, was die geeignete Methode ist um mit VSCode die
> AVRs zu programmieren und wo ich die Bezeichnungen der Variablen in der
> json-Datei finde?

Da gibts doch was von ...
https://www.microchip.com/en-us/tools-resources/develop/mplab-extensions-vs-code

Hab ich noch nicht ausprobiert, ich benutze noch MPLABX.

fchk

von Andreas (ah3112)


Lesenswert?

Frank K. schrieb:
> Da gibts doch was von ...
Danke, werde ich ausprobieren. Ich hatte mich schon damit abgefunden 
wieder mit Eclipse weiter zu machen. Sofern ich von dort aus vernünftig 
flashen kann ohne auf die Eingabeaufforderung zu gehen.

von 900ss (900ss)


Lesenswert?

Andreas schrieb:
> Aber wie rufst Du aus Eclipse das Makefile für avrdude auf?

Ich schreibe mir ein einziges Makefile wie in dem Artikel mit dem 
Beispiel. Das nutze ich zum Übersetzen, Linken und Flashen mittels 
AVRdude. Dafür gibt es unterschiedliche Build-Targets.

In Eclipse erzeuge ich ein C/C++ Makefile Project. Man kann dafür 
verschiedene Projekt-Targets anlegen mit unterschiedlichen Parametern, 
die dann an das Makefile als Build-Target übergeben werden.

Also ein Project-Target "Build", eines "Clean" und eines "Programm".

Also Eclipse erzeuge dann z.B. das Kommando "make Programm" mit dem 
Projekt-Target "Programm".

: Bearbeitet durch User
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.