Forum: PC Hard- und Software AVR programmierung: Mein Umstieg von Windows auf Linux


von Kaj G. (Firma: RUB) (bloody)


Lesenswert?

Hallo Leute,

ich moechte hier einfach meine kurze Erfahrung, zum Umstieg von Windows 
auf Linux bezueglich der AVR programmierung, mit euch teilen.

Ich habe vor etwas mehr als 3 Jahren Windows "Gehe mit Gott, aber geh!" 
gesagt und bin auf Archlinux umgestiegen (hab trotzdem noch ne Platte 
mit Windows 7, fuer den Notfall). Seit dem habe ich aber praktisch 
nichts mehr mit Mikrocontrollern (hauptsaechlich AVR) gemacht, da mir 
unter Linux immer etwas vergleichbares zu Atmel Studio gefehlt hat.

Hier im Forum habe ich oft gelesen, dass Atmel Studio in einer 
Windows-VM ziemlich kacke waere. Hauptsaechlich wegen der Probleme mit 
USB bei VirtualBox. Jetzt habe ich mir aber mal ein bisschen Zeit 
genommen das auszuprobieren, da ich wieder was mit einem AVR machen 
will.

Also "mal eben schnell" (haha... -.-) eine VM mit Windows 10 Pro und 
Atmel Studio installiert. Die Installation von Atmel Studio verlief 
problemlos. Auch das durchreichen des Programmers (Atmel-ICE) an die VM 
klappt hervorragend (VirtualBox Extension fuer USB 2 und 3 ist 
installiert, bei Arch leider nur aus dem aur-repo: 
aur/virtualbox-ext-oracle 5.2.8-1).

Was in der VM nicht funktioniert hat, war das Upgraden der Atmel-ICE 
Firmware. Dafuer dann doch nochmal die Windows Notfall-Platte aktiviert 
und das Firmware Upgrade gemacht. Atmel Studio laesst einen ja leider 
nicht flashen, wenn die Firmware nicht up-to-date ist. Was fuer ein 
Bloedsinn! Warum macht man sowas? Naja, soll mir egal sein...
Upgrade durchgefuehrt, Win10 VM gestartet, Programmer durchreichen, und 
siehe da: das flashen und debuggen des AVR klappt problemlos, immer.

Wenn man also von dem Firmware Upgrade mal absieht, dann funktioniert 
das ganze mit der VM doch ziemlich gut. Zumindestens bei mir.

Jetzt ist eine Windows-VM aber nicht das non-plus-ultra fuer mich. Ich 
wollte das ganze auch unter Linux machen.

Eclipse (Oxygen.2, 4.7.2) und die AVR-Toolchain und avrdude waren eh 
schon installiert. Also noch schnell das AVR-Plugin (Version: 2.3.4 aus 
dem Eclipse Marketplace) installiert und ausprobiert... Es kommt die 
erste Ernuechterung: Irgendwas klemmt und avrdude kann den uC nicht 
flashen. "Scheisse" denk ich mir, "was soll denn die Kacke jetzt?".

Irgendwas hat avrdude aber gemacht, denn die LED am uC blinkt nicht 
mehr. Also nochmal das Notfall-Windows hochgefahren und den uC im Atmel 
Studio geloescht und das Testprogramm nochmal neu geflasht. Wieder zu 
Linux gewechselt, nochmal avrdude aufgerufen und siehe da: es geht!
Weiss der Geier was da geklemmt hat. Ist mir aber auch egal.

Schnell noch ein Makefile zum compilieren und flashen gemacht, und es 
funktioniert einfach wunderbar. Ich bin doch ziemlich begeistert.

Insgesamt muss ich sagen, dass der Umstieg von Windows auf Archlinux, 
bezueglich der AVR programmierung, bei mir doch schmerzfreier war, als 
erwartet. Nachdem was man hier im Forum so teilweise liest... (Windows 
ist kacke, Linux ist kacke, VM ist kacke, Eclipse AVR-Plugin geht nicht, 
etc.)

Das einzige was mich jetzt noch stoert ist, dass avrdude ziemmlich lange 
braucht, siehe hier:
Beitrag "avrdude braucht lange zum Beenden (Linux)"

Ich wuensch euch was :)
Gruesse

: Verschoben durch User
von Stefan F. (Gast)


Lesenswert?

Ich benutze das AVR oder Atmel Studio nur zusammen mit meinem alten 
Dragon zum Debuggen, denn das habe ich unter Linux noch nicht 
hinbekommen.

Da ich allerdings das Programmieren zu einer Zeit gelernt hatte, als es 
für µC noch keine Debugger gab, verspüre ich nur selten den Bedarf 
danach. Stattdessen nutze ich häufig Log-Meldungen.

Außerdem nutze ich AVR's nur noch für die "kleineren" Projekte, denn ich 
habe inzwischen auch zahlreiche STM32 Module in der Bastelkiste. Die 
kann ich mit der "System Workbench for STM32" unter Linux und Windows 
gleich programmieren und debuggen.

Als IDE für AVR nutze ich gerne Netbeans, Eclipse und QT Creator gehen 
auch. Ich habe mal aufgeschrieben, was man einstellen muss: 
http://stefanfrings.de/avr_tools/index.html

Beitrag #5339352 wurde vom Autor gelöscht.
von Stefan (Gast)


Lesenswert?

Da ich viel mit Atmel Studio arbeite bleibe ich weiter bei Windows. 
Dafür ist das meiste erhältlich, darauf ist das meiste abgestimmt. Und 
natürlich ist die Entscheidung für Windows immer auch eine ganzheitliche 
Entscheidung,  für die viele andere Gründe sprechen.

Stefan U. schrieb:
> Außerdem nutze ich AVR's nur noch für die "kleineren" Projekte, denn ich
> habe inzwischen auch zahlreiche STM32 Module in der Bastelkiste. Die
> kann ich mit der "System Workbench for STM32" unter Linux und Windows
> gleich programmieren und debuggen.

Mit diesem Hintergrund ist sicher eine Möglichkeit mehr gegeben auf 
Linux zu wechseln.

von c-hater (Gast)


Lesenswert?

Kaj G. schrieb:

> ich moechte hier einfach meine kurze Erfahrung, zum Umstieg von Windows
> auf Linux bezueglich der AVR programmierung, mit euch teilen.

Ich werde nie begreifen, warum es notwendig sein sollte, "umzusteigen". 
Ich benutze seit ca. 1996 Linux und Windows parallel, mindestens in 
einer Dual-Boot-Konfiguration auf jedem meiner Rechner. Heute ist es so, 
dass ich nach wie vor diese Dual-Boot-Konfigurationen habe, zusätzlich 
aber auch noch eine VM der jeweils "anderen Seite".

Mit ein paar Tricks (und Einschränkungen) ist es sogar möglich, dass die 
VMs das physische Abbild des jeweiligen Dualboot-Counterparts laufen 
lassen.

Also irgendwie sehe ich absolut keinen Grund für einen "Umstieg". Worauf 
sollte ich auch umsteigen? Ich habe doch jederzeit das Beste beider 
Welten verfügbar. Im allerschlimmsten Fall die maximal 90 Sekunden 
entfernt, die ein Reboot benötigt. Wirklich nötig wird das bei meiner 
Nutzung aber eher selten. Nunja, ich spiele halt schon lange nicht mehr. 
Ist mir über die Jahre viel zu langweilig geworden. Da gibt es viel 
Spannenderes...

von T.roll (Gast)


Lesenswert?

c-hater schrieb:
> Ich werde nie begreifen, warum es notwendig sein sollte, "umzusteigen".

Weil sich nicht alle vor MS bücken wollen? Mein letztes Windows war 7 
(per Kauf dabei; Linux war dann per Dualboot) und danach wurde mir die 
Datensammelei endgültig zu heftig. Neue Geräte werden explizit ohne 
Windows gekauft. Daneben gibts noch andere Gründe, aber das ist jetzt 
egal.

Kaj G. schrieb:
> Nachdem was man hier im Forum so teilweise liest... (Windows
> ist kacke, Linux ist kacke, VM ist kacke, Eclipse AVR-Plugin geht nicht,
> etc.)

Glaubenskriege gehören seit jeher zu Win vs. Linux.

von Stefan F. (Gast)


Lesenswert?

Um Windows und Linux gleichzeitig nutzen zu können, braucht man 
praktisch doppelt RAM (vor allem bei so Monstern wie Atmel Studio und 
Android SDK).

Hast du mal geschaut, wie teuer RAM für Notebooks zur Zeit ist? Ich 
müsste für die Erweiterung auf 16GB satte 230 Euro ausgeben!

Ich kann gut verstehen, dass Leute gerne möglichst alle 
Entwicklungs-Tools unter einem OS zusammen haben wollen. Wenn da nicht 
das (Windows-Only) Atmel Studio wäre, dann wäre das auch ganz einfach. 
Aber nein, dann muss es eben Windows sein, auch wenn 90% der Software 
eigentlich von Linux nach Windows portiert wurde und unter Linux ein 
bisschen komfortabler verwendbar ist.

VM machen auch nur bedingt Spaß, wenn man USB Geräte 
(Programmieradapter, Debugger, Meßgeräte) benutzen muss.

von neuer PIC Freund (Gast)


Lesenswert?

> Was in der VM nicht funktioniert hat, war das Upgraden der Atmel-ICE Firmware.

Den Leidensweg kenn ich. Hat mich zu qemu+kvm geführt. Dort funktioniert 
das Upgrade. Mit vmplayer soll es auch gehen, nur mit Virtualbox nicht. 
Die Bequemlichkeit, mit einem Klick die Peri zu beobachten, wird 
zunehmend von MPLABX übernommen.

Atmel konnte es sich wohl nicht leisten, einen Entry-Level-Debugger zum 
Selbstkostenpreis anzubieten. Für nen fuffi gibt es immer nur eine 
nackte Platine.

> braucht man praktisch doppelt RAM

Habe Win10Pro mit 8Gb Ram ausgestattet. Die Win-Partition liegt auf 
einer kleinen 5400er Platte. Das Ganze startet in der qemu-VM schneller 
als Win7Pro nativ auf einem Rechner mit 8GB Ram und 7200er Platte. Mit 
SSD müsste das ganze fliegen, denn das Win10 fühlt sich nicht so an, wie 
ich Windows von früher her kenne.

von c-hater (Gast)


Lesenswert?

Stefan U. schrieb:

> Um Windows und Linux gleichzeitig nutzen zu können, braucht man
> praktisch doppelt RAM (vor allem bei so Monstern wie Atmel Studio und
> Android SDK).

Das stimmt so nicht. Ja, man braucht mehr RAM, aber nicht das Doppelte. 
Der virtuelle Speicher wurde schon vor sehr langer Zeit erfunden und 
alle moderne VM-Systeme können dieses Konzept auch bezüglich der 
Ressourcenteilung zwischen Host und Gast (bzw. Gästen) anwenden. Dazu 
kommt: die können sogar den Datenträgercache des Hosts für die Gäste 
verwenden.

> Hast du mal geschaut, wie teuer RAM für Notebooks zur Zeit ist? Ich
> müsste für die Erweiterung auf 16GB satte 230 Euro ausgeben!

Rausgeschmissenes Geld. Ich habe nur 8GB in meinen Systemen (Notebook 
und Desktop), das langt völlig für Host und einen Gast. 16GB würden nur 
noch unwesentlich mehr Performance bringen. Das braucht man nur für 
neuzeitliche Spiele, sehr große Datenbanken oder andere Anwendungen, die 
mit sehr großen Datenmengen operieren. Da spielen dann aber wiederum die 
paar hundert MB, die die gerade nicht benutzte VM samt ihrer Anwendungen 
behält, wenn sie nach und nach aus dem Speicher verdrängt wird, absolut 
keine Rolle mehr.

Es ist inzwischen einfach kein bisschen anders als die 
Konkurrenzsituation in einem einzigen OS bezüglich des virtuellen 
Speichers. Wer das nicht kapiert, hat virtuellen Speicher an sich nicht 
kapiert...

> Ich kann gut verstehen, dass Leute gerne möglichst alle
> Entwicklungs-Tools unter einem OS zusammen haben wollen.

Ich nicht. Das ist doch schon vom Konzept her völlig schwachsinnig: 
Warum sollte ich z.B. unter Linux Windows-Forms oder Windows-WPS 
Anwendungen entwickeln wollen, statt das einfach unter Windows im VS zu 
tun? Das ist doch Unsinn.

> VM machen auch nur bedingt Spaß, wenn man USB Geräte
> (Programmieradapter, Debugger, Meßgeräte) benutzen muss.

Das war leider wirklich lange ein Problem (neben vielen anderen 
Problemen bei der Bereitstellung von Hardware des Hosts für die VM).
Aber gerade bei USB (zumindest jenseits von isochronen Transfers) ist es 
inzwischen doch ganz gut, eigentlich sogar nahezu perfekt...

Kann es sein, dass du einfach zu faul warst, diesbezüglich auf dem 
Laufenden zu bleiben?

von Stefan F. (Gast)


Lesenswert?

> Rausgeschmissenes Geld. Ich habe nur 8GB in meinen Systemen ...
> 16GB würden nur noch unwesentlich mehr Performance bringen

Dann hast du vermutlich keine SSD. Wenn man eine SSD verwendet, soll man 
dafür sorgen, dass der Rechner die Auslagerungsdatei möglichst nicht 
verwendet. Dabei geht es weniger um die Performance, sondern um den 
Verschleiß.

> Warum sollte ich z.B. unter Linux Windows-Forms oder Windows-WPS
> Anwendungen entwickeln wollen

Darum geht es doch gar nicht. Ich möchte nicht meine AVR Programme unter 
Linux in einer IDE schreiben, und sie später unter Windows debuggen 
müssen. Im AVR Umfeld kann ich Linux nur gebrauchen, wenn ich auf 
Debugging verzichte (und das tue ich).

> Kann es sein, dass du einfach zu faul warst, diesbezüglich auf
> dem Laufenden zu bleiben?

Nach mehr als 10 Jahren Probleme mit USB habe ich es in der Tat schon 
länger nicht mehr versucht.

von Ivo -. (Gast)


Lesenswert?

Hallo,
bei mir war es genauso, viele Jahre lang Windows, dann aus Frustation 
(schon wieder neu aufsetzen? Gehts noch? Mein Leben besteht auch noch 
aus was anderem als neuaufsetzen von Betriebssystemen!) zu Linux 
gewechselt. Mit Windows hatte ich auch Atmel Studio, unter Linux benutze 
ich Atom+avr-gcc+avrdude und das funktioniert super!

Ivo

von billigtuner (Gast)


Lesenswert?

>
> Hast du mal geschaut, wie teuer RAM für Notebooks zur Zeit ist? Ich
> müsste für die Erweiterung auf 16GB satte 230 Euro ausgeben!

Ja, bei Notebooks & kleiner muss man f.die Miniaturisierung bezahlen und 
sei es nur wg.den wenigen (nur 2) RAMSlots.
Aber was sind 230.- relativ zum Gerätepreis?
RAM ist immer das günstigste um einem Rechner Beine zu machen und ihn 
langlebiger zu machen.

Bei Neukauf budgetiere ich gerne 30% oder mehr f. RAM, zumindest solange 
es nicht um überproportional teure Sondermodule geht. Maximalausbau 
sobald es finanziell möglich ist.

Die 32GB in meinem gut 10J alten dual-Xenon möchte ich keinesfalls 
missen, damit erfüllt er immernoch private Workstation Duties. (Gott 
möge die Elkos schützen...)

von Stefan F. (Gast)


Lesenswert?

> Aber was sind 230.- relativ zum Gerätepreis?
Etwa die Hälfte.

> RAM ist immer das günstigste um einem Rechner Beine zu machen
Nein. Wenn das RAM ausreicht, hast du von einer SSD wesentlich mehr.

Und wenn man Virtualisierung verwenden möchte, sollte man darauf achten, 
einen Computer mit passender CPU zu kaufen. Es gibt einige Notebook 
Prozessoren (auch von Intel) die VM's nur schnarchlangsam ausführen 
können.

von Bernd K. (prof7bit)


Lesenswert?

Stefan U. schrieb:
> Ich kann gut verstehen, dass Leute gerne möglichst alle
> Entwicklungs-Tools unter einem OS zusammen haben wollen. Wenn da nicht
> das (Windows-Only) Atmel Studio wäre, dann wäre das auch ganz einfach.

Ist auch so ganz einfach, entweder mit dem AVR-Plugin für Eclipse oder 
mit eigenen Makefiles. Und dann hat man auch gleich eine gescheite IDE 
die im Gegensatz zu Atmelstudio vernünftig mit der Sprache C zurecht 
kommt.

von Stefan F. (Gast)


Lesenswert?

> Ist auch so ganz einfach, entweder mit dem AVR-Plugin
> für Eclipse oder mit eigenen Makefiles.

Funktioniert damit auch Debugging (m it einem Atmel Dragon)?

von Icke ®. (49636b65)


Lesenswert?

Stefan U. schrieb:
> Dann hast du vermutlich keine SSD. Wenn man eine SSD verwendet, soll man
> dafür sorgen, dass der Rechner die Auslagerungsdatei möglichst nicht
> verwendet. Dabei geht es weniger um die Performance, sondern um den
> Verschleiß.

Diese Weisheit stammt noch aus den Anfangszeiten der SSDs. Inzwischen 
sind die meisten davon den klassischen Platten in punkto MTBF nicht nur 
ebenbürtig, sondern sogar überlegen. Man kann sie also bedenkenlos 
genauso beschreiben wie ihre mechanischen Kollegen. Der einzige 
Minuspunkt für SSDs ist heutzutage noch der wesentlich höhere Preis.

von 900ss (900ss)


Lesenswert?

Stefan U. schrieb:
> Funktioniert damit auch Debugging (m it einem Atmel Dragon)?

AvaRICE ist das Stichwort....

Beitrag "Erfolgreich AVR Dragon + AVARICE + GDB verwendet unter Linux"

von Stefan F. (Gast)


Lesenswert?

>> Funktioniert damit auch Debugging (m it einem Atmel Dragon)?
> AvaRICE ist das Stichwort....

Ja, das hatte ich damals ausprobiert und nur lauter nichts sagende 
Fehlermeldungen erhalten. Und wie man das dann in einer der gängigen 
IDE's verwendet, ist unklar. Hast du das mal ausprobiert?

von 900ss (900ss)


Lesenswert?

Stefan U. schrieb:
> Hast du das mal ausprobiert?

Also den AVARICE schon aber ob auch mit dem Dragon kann ich nicht mehr 
sagen. Ich hatte den Dragon nur ganz kurz und hab mir dann günstig einen 
Jtag mkii besorgt. Und das ist jetzt 10 Jahre her :)

Jörg W. müsste dazu was wissen weil er am AVARICE  programmiert hat.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Es wäre schon eine feine Sache, wenn man den Dragon unter Linux mit 
Eclipse oder Netbeans benutzen könnte. Denn das ist für mich die einzige 
Baustelle, wegen der ich selten Windows benutze.

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.