Forum: Mikrocontroller und Digitale Elektronik AVR unter Linux programmieren Anfänger, wie geht das?


von Rosberg (Gast)


Lesenswert?

Hallo,

ich wurde gerne ein AVR (z.B. Atmega328) mit einem AVRSPmkii unter Linux 
programmieren, leider habe keine Ahnung wie man anfangen kann, bzw ich 
bin ein Windows Nutzer der umsteigen möchte.
Kennt jemand ein gutes Tutorial wo man von NULL afangen kann? Linux Mint 
habe bereits installiert.

Danke im Voraus

von Stephan B. (matrixstorm)


Lesenswert?

Hallo Rosberg

1) Eine C(++) IDE deiner Wahl installieren. Ich selbst benutze KDevelop.
Netbeans oder Eclipse geht aber auch. Wenns unbequem sein darf, reicht 
natuerlich auch ein einfacher Texteditor...
Mittlerweile gibt es auch gute IDEs die im Browser laufen und keiner 
Installation bedarfen, z.B. Cloud9
( http://matrixstorm.com/avr/avrstick/#bideavr ).

2) Toolchain installieren. Entweder ueber deinen Paketmanager (meist 
sind da die Versionen aber etwas aelter), oder mittels
http://matrixstorm.com/avr/tinyusbboard/#asmorc_linux

Die AVR Toolchain enthaelt alle Programme die notwendig sind um aus 
Quellcode den AVR Binaercode zu "generieren".

3) Ein Tool um den AVR Binaercode in den Chip zu transportieren - 
ueblicherweise AVRDUDE (der spricht auch AVRMKII). Hier wieder entweder 
aus deinem Paketbaum, oder von 
http://download.savannah.gnu.org/releases/avrdude/


MfG

von Karl Käfer (Gast)


Lesenswert?

Hallo Rosberg,
hallo Stephan,

Stephan B. schrieb:
> 1) Eine C(++) IDE deiner Wahl installieren. Ich selbst benutze KDevelop.
> Netbeans oder Eclipse geht aber auch. Wenns unbequem sein darf, reicht
> natuerlich auch ein einfacher Texteditor...

unter Linux / UNIX gibt es eine Menge Editoren, auf die die Bezeichnung 
"einfacher Texteditor" nicht so richtig zutrifft. Mein Favorit ist der 
GNU/Emacs, der über einen Texteditor deutlich hinausgeht und sicherlich 
alles andere als einfach, sondern ein sehr mächtiges Werkzeug ist -- 
manche sprechen von "Gottes eigenem Editor mit eingebautem 
Betriebssystem und eigener Programmiersprache", was dem Ganzen schon 
recht nahe kommt.

Dieses ganze IDE-Gefumsel habe ich immer mal wieder ausprobiert und 
jedes Mal wieder gelöscht. Dabei bräuchte ich dann für jede meiner 
Sprachen eine eigene IDE mit etlichen Anzeigebereichen und 
Unterfensterchen, die mir letztlich doch nur den Blick auf das 
Wesentliche versperren -- nämlich meinen Code. Obendrein bräuchte ich 
aber immer noch einen Texeditor, um LaTeX, Javascript und CSS zu 
schreiben. Außerdem scheue ich mich, so viel von meiner ganzen schönen 
Rechenleistung und Darstellungsfläche für Dinge zu verschwenden, die ich 
nur für einen Bruchteil meiner Zeit brauche.

Man glaubt es kaum, aber ein leistungsstarker Editor wie Emacs oder 
vi(m) sowie eine Shell reichen zur Bedienung einer 
Entwicklungs-Toolchain völlig aus und sind, wenn man sie beherrscht, 
tausendmal schneller, flexibler und sogar komfortabler als eine oder gar 
mehere IDEs. Das gilt insbesondere dann, wenn die Integration eines 
Teils des Entwicklungsprozesses -- hier: des Debugging -- in die IDE 
ohnehin nicht geht, weil für eine andere Zielplattform crosskompiliert 
wird. Mir persönlich fällt nur ein einziger Bereich in der Entwicklung 
ein, in dem eine IDE nützlich und sinnvoll ist, nämlich bei der 
Entwicklung von GUIs, wo man sich die Komponenten komfortabel 
zusammenklicken kann.

Ich möchte keinen Glaubenskrieg pro oder contra IDEs vom Zaun brechen, 
aber nur darauf hinweisen: es geht auch ohne, ganz prima sogar.

> 2) Toolchain installieren. Entweder ueber deinen Paketmanager (meist
> sind da die Versionen aber etwas aelter), oder mittels
> http://matrixstorm.com/avr/tinyusbboard/#asmorc_linux
>
> Die AVR Toolchain enthaelt alle Programme die notwendig sind um aus
> Quellcode den AVR Binaercode zu "generieren".
>
> 3) Ein Tool um den AVR Binaercode in den Chip zu transportieren -
> ueblicherweise AVRDUDE (der spricht auch AVRMKII). Hier wieder entweder
> aus deinem Paketbaum, oder von
> http://download.savannah.gnu.org/releases/avrdude/

Linux-Mint ist IIRC ein Ubuntu-Derivat. Da sollte sich die gesamte 
AVR-Toolchain mit "apt-get install gcc-avr binutils-avr gdb-avr avdude 
avrdude-doc" in einem Rutsch installieren lassen, ggf. dazu noch 
simulavr.

HTH,
Karl

von Markus (Gast)


Lesenswert?

Hallo Rosberg,

hier wären deine evtl. unter Windows erworbenen Vorkenntnisse hilfreich.

Hast du unter Windows schon AVRs oder andere µC programmiert, wenn ja 
mit welchen Tools?

Evtl. gibt es diese oder sehr ähnliche auch für Linux, dann würde dir 
der Umstieg leichter fallen.

Eclipse als IDE bietet z.B. ein AVR-Plugin, um mit Hilfe der 
AVR-Toolchain zu compilieren und den AVR zu programmieren. Wenn du 
Eclipse von Windows her schon kennst, kannst du das unter Linux genauso 
verwenden.

Gruß
Markus

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Karl Käfer schrieb:
> Dieses ganze IDE-Gefumsel habe ich immer mal wieder ausprobiert und
> jedes Mal wieder gelöscht.

Ich habs nicht jedes Mal wieder gelöscht, aber doch fast jedes Mal. Das 
heißt, ich kann dir zwar nicht zu 100 % zustimmen, aber zu 80 %. :-)

Ein einfacher und - soweit ich weiß - vom Syntax her mit dem 
Atmel-Original weitgehend kompatibler Assembler ist AVRA. Den verwende 
ich immer, wenn ich mal eben ein kleines AVR-Programm erstelle.
1
avra xyz.asm
erzeugt automatisch xyz.hex. Ohne viel Schnickschnack.
Avra als Binary hab ich vor längerer Zeit hier hochgeladen: 
http://guloshop.de/f/avr/

Für einfache C-Programme ist das hier mein Favorit: C ohne Makefile

: Bearbeitet durch User
von Rosberg (Gast)


Lesenswert?

Hallo,
vielen Dank für eure Beiträge.

Markus schrieb:
> hier wären deine evtl. unter Windows erworbenen Vorkenntnisse hilfreich.
>
> Hast du unter Windows schon AVRs oder andere µC programmiert, wenn ja
> mit welchen Tools?

Ja, ich habe schon ein wenig Erfahrung mit AVRs in C mit WINAVR + 
AVRDUDE.
Momentan kämpfe ich mit dem frisch installiertes Linux, irgendwas ist 
eventuell beim installation schief gelaufen da Linux von ein Moment auf 
der andere einfriert und nicht mehr reagiert und muss jedes Mal wieder 
neu Starten.

von Rosberg (Gast)


Lesenswert?

Vielleicht hätte ich als erstes fragen müssen was für ein Linux 
installieren muss.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Markus Weber schrieb:

> Ein einfacher und - soweit ich weiß - vom Syntax her mit dem
> Atmel-Original weitgehend kompatibler Assembler ist AVRA.

Aber auch nur mit der Syntax der ersten Assemblerversion.  Irgendwann
hatte Atmel dann nochmal nachgelegt.

> erzeugt automatisch xyz.hex. Ohne viel Schnickschnack.

Und ohne Debuginformationen. ;-)

Hexfiles braucht man inzwischen eigentlich nicht mehr, aktuelle Tools
können alle ELF direkt lesen.

von Rosberg (Gast)


Lesenswert?

Hallo,

ich komme leider nicht wieter, Linux einfriert und reagiert nicht mehr, 
ich glaube fange wieder von Vorne an und installiere Linux noch Mal.
Frage:
Ich habe hier eine Version "Ubuntu 9.04 Desktop Edition DVD", kann man 
damit was anfangen? Version installieren und aktualisieren? oder besser 
aktuelle Version runterladen?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rosberg schrieb:

> ich komme leider nicht wieter, Linux einfriert und reagiert nicht mehr,
> ich glaube fange wieder von Vorne an und installiere Linux noch Mal.

Vielleicht solltest du ja erstmal den Memtest drüber laufen lassen?

> Ich habe hier eine Version "Ubuntu 9.04 Desktop Edition DVD", kann man
> damit was anfangen?

Ist natürlich schon mächtig angestaubt.  Ich würde an deiner Stelle
nicht unter Version 12.04 anfangen.

von Rosberg (Gast)


Lesenswert?

Jörg Wunsch schrieb:
> Vielleicht solltest du ja erstmal den Memtest drüber laufen lassen?

Habe auch gedacht, glaube ich hatte mal mit Windows früher Mal gehabt.

Jörg Wunsch schrieb:
> Ist natürlich schon mächtig angestaubt.  Ich würde an deiner Stelle
> nicht unter Version 12.04 anfangen.

Alles klar.

von Paul M. (paul_m65)


Lesenswert?

Karl Käfer schrieb:
> Man glaubt es kaum, aber ein leistungsstarker Editor wie Emacs oder
> vi(m) sowie eine Shell reichen zur Bedienung einer
> Entwicklungs-Toolchain völlig aus und sind, wenn man sie beherrscht,
> tausendmal schneller, flexibler und sogar komfortabler als eine oder gar
> mehere IDEs....

Das mag ja alles sein und für dich Puristen so passend sein. Aber es 
mangelt da schon an einer brauchbaren Dokumentation oder einem 
ausführlichen Tutorial. Selbst wenn man bereit wäre, für entsprechende 
Literatur zu zahlen. Es gibt einfach nichts gescheites.
Das beste, was ich bisher gefunden habe ist 
ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a028.pdf

Was kannst du als weiterführende Literatur empfehlen?

von Kaj (Gast)


Lesenswert?

Rosberg schrieb:
> Ich habe hier eine Version "Ubuntu 9.04 Desktop Edition DVD", kann man
> damit was anfangen? Version installieren und aktualisieren? oder besser
> aktuelle Version runterladen?
Wenn dann eine aktuelle Version. OpenSUSE 13.1 ist auch sehr angenehm.

von kopfkratzer (Gast)


Lesenswert?

kopfkratz
Also wenn Du von Windows auf Linux umsteigen willst, dann schaue Dir mal 
diverse Distris an und nimm die die Dir am meisten gefällt.
Schau mal da durch:
https://www.linux.com/directory/Distributions
http://distrowatch.com/
Wenn Du dann in der Lage bist einen neuen Kernel zu compilieren und in 
den Bootmanager einzubinden bist Du soweit an Crosscompiling usw. 
heranzugehen.
Welche IDE Du nimmst oder ob Du EMACS in LISP anpaßt ist Deine 
Entscheidung.
Wichtig ist das der GCC als Crosscompiler für AVR funktioniert und Du 
ein Programm für Deinen Progger hast (avrdude wurde ja schon genannt).
Erstmal mit dem neuen Betriebssystem vertraut machen, läßt sich ja ohne 
Probleme parallel zu Windows installieren.
Dann, wenn Du es bedienen kannst nach für Dich passenden Tools für die 
AVR Entwicklung suchen und austesten.
Das nehmen mit dem Du persönlich am besten klarkommst und gut ist ;-)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

kopfkratzer schrieb:

> Wenn Du dann in der Lage bist einen neuen Kernel zu compilieren und in
> den Bootmanager einzubinden bist Du soweit an Crosscompiling usw.
> heranzugehen.

Ganz ehrlich: das ist nun wirklich keine Voraussetzung mehr heutzutage.
Im Gegenteil, wenn man den normalen Weg geht, wird der Kernel relativ
regelmäßig automatisch (zusammen mit den anderen Updates) aktualisiert,
da ist ein custom kernel eher im Weg.

> Wichtig ist das der GCC als Crosscompiler für AVR funktioniert und Du
> ein Programm für Deinen Progger hast (avrdude wurde ja schon genannt).

Ja, aber für beides muss man gewiss nicht in der Lage sein, einen
Linux-Kernel zu bauen.

von kopfkratzer (Gast)


Lesenswert?

Jörg Wunsch schrieb:
> kopfkratzer schrieb:
>
>> Wenn Du dann in der Lage bist einen neuen Kernel zu compilieren und in
>> den Bootmanager einzubinden bist Du soweit an Crosscompiling usw.
>> heranzugehen.
>
> Ganz ehrlich: das ist nun wirklich keine Voraussetzung mehr heutzutage.
> Im Gegenteil, wenn man den normalen Weg geht, wird der Kernel relativ
> regelmäßig automatisch (zusammen mit den anderen Updates) aktualisiert,
> da ist ein custom kernel eher im Weg.

Er soll sich erstmal mit Un*x Betriebssystemen beschäftigen, um die 
Unterschiede zu Windows zu erkennen.
Und ein Custom-Kernel hat genau das was man haben will.
Mal abgesehen davon das unter Un*x die universellste Installation nunmal
1
#> ./configure
2
#> make
3
#> make install
ist ...
Aber muß ja nicht sein, Hauptsache er weiß wo was installiert wird und 
was es tut.
Nur dann kann er auch mal wenn was klemmt weil ein Script wildgeworden 
ist oder eine falsche Distri-Installation configs woanders 
hineinschreibt nachsehen was wo und warum falsch gelaufen ist.

Jörg Wunsch schrieb:
>> Wichtig ist das der GCC als Crosscompiler für AVR funktioniert und Du
>> ein Programm für Deinen Progger hast (avrdude wurde ja schon genannt).
>
> Ja, aber für beides muss man gewiss nicht in der Lage sein, einen
> Linux-Kernel zu bauen.

Wenn man einen Kernel bauen kann, weiß man in jedem Falle wie GCC auf 
der Kommandozeile geht.
Und das ist das wesentliche ;-)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

kopfkratzer schrieb:
> Wenn man einen Kernel bauen kann, weiß man in jedem Falle wie GCC auf
> der Kommandozeile geht.

Das bezweifle ich.

Das lernt man eher, wenn man sich den K&R schnappt und dort das berühmte
"Hello, world!" compiliert.

Das bisschen "make menuconfig; make; make install" eines Linux-Kernels
versteckt einem die Compilerdetails genauso wie eine x-beliebige IDE.

von Axel S. (a-za-z0-9)


Lesenswert?

kopfkratzer schrieb:

> Er soll sich erstmal mit Un*x Betriebssystemen beschäftigen, um die
> Unterschiede zu Windows zu erkennen.

Klar.

> Und ein Custom-Kernel hat genau das was man haben will.

Was hat dieser Satz mit dem vorhergehenden zu tun? Nichts? Und 
Distro-Kernel haben in 99.9% der Fälle auch alles, was man haben will. 
Dank Kernel-Modulen wird auch nur das geladen, was man braucht.

> Mal abgesehen davon das unter Un*x die universellste Installation
> nunmal
> #> ./configure
> #> make
> #> make install
> ist ...

Jein. Im Gegensatz zu Windows haben alle Linux-Distros eine funktio- 
nierende Paketverwaltung. Der klar zu bevorzugende Weg ist darum die 
Installation eines entsprechenden Pakets. Der zweitbeste Weg ist das 
selberbauen eines solchen Pakets. Die Installation mit "make install" an 
der Paketverwaltung vorbei ist die letzte und schlechteste Alternative.

> Aber muß ja nicht sein, Hauptsache er weiß wo was installiert wird und
> was es tut.

Wieder im Gegensatz zu Windows hat Linux einen Filesystem-Standard. Es 
gibt für jedes installierte File nur ziemlich genau einen richtigen 
Installationsort. Geheimwissen um die Installationsspezifika einzelner 
Pakete erübrigt sich damit. Es ist einfach alles am kanonischen Platz.

Nachtrag: nicht zu vergessen, daß einem das System für richtige Pakete 
auch jederzeit eine Liste der zum Paket gehörigen Files liefern kann. 
Oder umgekehrt zu einem bestimmten File herausfinden kann, zu welchem 
Paket es gehört.

> Nur dann kann er auch mal wenn was klemmt weil ein Script wildgeworden
> ist oder eine falsche Distri-Installation configs woanders
> hineinschreibt nachsehen was wo und warum falsch gelaufen ist.

... was genau das ist, was man von vornherein vermeiden will. Und dank 
Paketverwaltung auch einfachst vermeiden kann. Anders ausgedrückt: 
dieses Problem stellt sich gar nicht, wenn man es gleich richtig macht.

> Jörg Wunsch schrieb:
>> ... für beides muss man gewiss nicht in der Lage sein, einen
>> Linux-Kernel zu bauen.
>
> Wenn man einen Kernel bauen kann, weiß man in jedem Falle wie GCC auf
> der Kommandozeile geht.

Eher nicht. "make menuconfig" und "make bzImage modules install" 
erfordern nur unwesentlich mehr Fingerfertigkeit und genau gar kein 
bisschen mehr Wissen als der Klick auf "jetzt installieren" im typischen 
Windows-Installer.


XL

: Bearbeitet durch User
von T.roll (Gast)


Lesenswert?

Viel hilfreiches zu AVR mit Ubuntu steht hier:
http://wiki.ubuntuusers.de/AVR

Einem Einstieger zu empfehlen einen eigenen Kernel zu erzeugen ist 
wirklich nur Unsinn. Das kann man machen, wenn einem langweilig ist oder 
man wirklich tief in System einstiegen will, aber sonst braucht das 
keiner.

Das wäre so, als wenn man dem Windows-Neueinsteiger erstmal die Registry 
lernen lässt. Erst danach darf er Programme installieren.

von Martin B. (martin_b97)


Angehängte Dateien:

Lesenswert?

Hallo,

für einfache Projekte würde ich einfach einen Text-Editor mit 
Syntax-Highlighting deiner Wahl vorschlagen, plus ein offenes 
Shell-Fenster fürs komplilieren mit geeignetem Makefile.

Wenns ein wenig komfortabler sein darf kannst du auch mal Geany 
versuchen, da kann man den Make- und auch AVR-Brenn Vorgang integrieren, 
wenn man ein bisschen schummelt.

Diese ganzen großen Entwicklungsumgebungen wie Eclipse sind mir für AVRs 
einfach zu aufgeblasen. Wenn man mal ein funktionierendes Makefile [1] 
hat ist es auch auf der Kommandozeile einfach.

[1] Beispiel-Makefile, nicht von mir, siehe Anhang

: Bearbeitet durch User
von matic (Gast)


Lesenswert?

Hi,
wenn du deinen AVR nicht per Kommandozeile brennen willst, schau dir mal 
den AVR-Burn-O-Mat an. Das ist ein nettes kleines Java-Programm, mit dem 
du sehr einfach Fuses setzen kannst, sowie den Flash und EEPROM 
schreiben und auslesen.
Nehme ich sehr gerne, weil ich mir dann nicht jedesmal die ganze Syntax 
für avrdude raussuchen muss.

Natürlich kann man auch im Makefile ein target fürs schreiben erstellen, 
welches dann den avrdude aufruft... aber auch hier muss man erstmal die 
Syntax rausfischen.

von Johannes S. (demofreak)


Lesenswert?

Rosberg schrieb:
> Kennt jemand ein gutes Tutorial wo man von NULL afangen kann? Linux Mint
> habe bereits installiert.

Muss es zwingend C sein? Wenn nicht, bist du mit Luna gut bedient:

http://avr.myluna.de/doku.php?id=de:about
http://avr.myluna.de/doku.php?id=de:screenshots

/Hannes

von Rosberg (Gast)


Lesenswert?

So,
bin wieder da, erst Mal vielen Dank für die unterstützung!

Rosberg schrieb:
> Jörg Wunsch schrieb:
>> Vielleicht solltest du ja erstmal den Memtest drüber laufen lassen?
>
> Habe auch gedacht, glaube ich hatte mal mit Windows früher Mal gehabt.

Habe das PC erst auf der Seite gelassen und Ubuntu auf ein Laptop 
installiert, musste aber wirklich kämpfen bis die Wlan Karte 
funktioniert hat, muss aber Linux loben da alles bis auf dem Wlan Karte 
funktioniert hat, hab sogar meine Drucker angeschlosen und war sofort 
da!!

T.roll schrieb:
> Viel hilfreiches zu AVR mit Ubuntu steht hier:
> http://wiki.ubuntuusers.de/AVR

Jap, vielen Dank, sieht gut aus bin dabei erst mein AVRISPmkII in ubuntu 
einzubinden

Johannes S. schrieb:
> Muss es zwingend C sein? Wenn nicht, bist du mit Luna gut bedient:

Ich hab schon mit C und AVR was gemacht deswegen möchte weiter in der 
Richtung machen.

matic schrieb:
> Hi,
> wenn du deinen AVR nicht per Kommandozeile brennen willst, schau dir mal
> den AVR-Burn-O-Mat an.

Ja, kenne ich vielen Dank.

von Karl Käfer (Gast)


Lesenswert?

Hallo Markus,

Markus Weber schrieb:
> Karl Käfer schrieb:
>> Dieses ganze IDE-Gefumsel habe ich immer mal wieder ausprobiert und
>> jedes Mal wieder gelöscht.
>
> Ich habs nicht jedes Mal wieder gelöscht, aber doch fast jedes Mal. Das
> heißt, ich kann dir zwar nicht zu 100 % zustimmen, aber zu 80 %. :-)

;-)

> Ein einfacher und - soweit ich weiß - vom Syntax her mit dem
> Atmel-Original weitgehend kompatibler Assembler ist AVRA. Den verwende
> ich immer, wenn ich mal eben ein kleines AVR-Programm erstelle.
>
>
1
avra xyz.asm
> erzeugt automatisch xyz.hex. Ohne viel Schnickschnack.
> Avra als Binary hab ich vor längerer Zeit hier hochgeladen:
> http://guloshop.de/f/avr/

Unser Freund mit Linux Mint kann mit .exe-Dateien aber vermutlich wenig 
anfangen und wird avra daher eher mit
1
apt-get install avra
 installieren wollen. ;-)

Liebe Grüßße,
Karl

von Karl Käfer (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Paul,

Paul M. schrieb:
> Das mag ja alles sein und für dich Puristen so passend sein. Aber es
> mangelt da schon an einer brauchbaren Dokumentation oder einem
> ausführlichen Tutorial. Selbst wenn man bereit wäre, für entsprechende
> Literatur zu zahlen. Es gibt einfach nichts gescheites.
> Das beste, was ich bisher gefunden habe ist
> ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/a028.pdf
>
> Was kannst du als weiterführende Literatur empfehlen?

Oh. Also wenn ich meinen Emacs starte, kommt der im Anhang befindliche 
Startscreen und bietet mir das "Emacs Tutorial", die "Emacs Guided Tour" 
und das "Emacs Manual" an. Außerdem installiert mein Ubuntu zum Emacs 
das Paket "emacs23-common-non-dfsg", welches 91 Info-Seiten (das 
GNU-Projekt benutzt statt Manpages das Info-Format für die 
Dokumentation; rufe "info emacs" für das Hauptmenü auf) zum Emacs selbst 
sowie zu allen Haupt-Modi mitbringt. Dazu gibt es die offizielle Doku 
unter http://www.gnu.org/software/emacs/manual/ sowie 
http://www.gnu.org/software/emacs/manual/pdf/emacs_7x9.pdf als 
PDF-Download, und wer Bücher mag und ein paar Euro investieren kann, dem 
seien die Emacs-Publikationen des O'Reilly-Verlages ans Herz gelegt.

Und wem das alles noch nicht ausreichend hilft, die letzten Details der 
Implementierung zu ergründen: use the source, luke. Emacs ist OpenSource 
und die meisten seiner Module und Modi sind in Emacs Lisp geschrieben. 
Das heißt man kann alles in ganz genau dem Code nachlesen (und ändern, 
wenn gewünscht) der dann auch ausgeführt wird.

Wenn Du die gerade erwähnte Dokumentation nur kurz überfliegst, wirst Du 
vermutlich feststellen, daß das Wort "Purismus" im Zusammenhang mit 
Emacs vollkommen deplatziert wirkt. Tatsächlich hat Emacs alle 
Funktionen einer modernen IDE -- nicht wenige davon hat zuerst das 
Emacs-Team erfunden und implementiert, lange bevor es die ersten IDEs im 
heutigen Sinne gab.

Ich sag's mal so: man kann dem Emacs sicherlich vieles vorwerfen, etwa 
die manchmal suboptimale Integration in moderne Desktops und die 
unüblichen Tastaturkürzel (wobei der Emacs älter ist als alle modernen 
Desktops und ihre Tastaturkürzel). Aber was man dem Emacs ganz sicher 
nicht vorwerfen, kann, sind ein Mangel an Funktionalität oder an 
Dokumentation.

Übrigens: unter "emacs documentation" findet Google 1,8 Millionen 
Seiten, allen voran die oben erwähnte offizielle Dokumentation vom 
GNU-Projekt. Wie um alles in der Welt hast Du es bloß geschafft, nur 
diese Broschüre von der Fernuni Hagen und sonst nichts zu finden?

Liebe Grüße,
Karl

von Karl Käfer (Gast)


Lesenswert?

Hallo kopfkratzer,

kopfkratzer schrieb:
> *kopfkratz*
> Also wenn Du von Windows auf Linux umsteigen willst, dann schaue Dir mal
> diverse Distris an und nimm die die Dir am meisten gefällt.
> Schau mal da durch:
> https://www.linux.com/directory/Distributions
> http://distrowatch.com/
> Wenn Du dann in der Lage bist einen neuen Kernel zu compilieren und in
> den Bootmanager einzubinden bist Du soweit an Crosscompiling usw.
> heranzugehen.

Diese Herangehensweise halte ich, mit Verlaub, für völligen Quatsch. Als 
Anfänger kann man die Unterschiede zwischen den Distributionen ohnehin 
nicht beurteilen, und einen eigenen Kernel zu kompilieren ist heute a) 
sehr einfach und b) macht das schon seit Jahren keiner mehr, jedenfalls 
nicht auf normalen Desktop-Systemen.

> Welche IDE Du nimmst oder ob Du EMACS in LISP anpaßt ist Deine
> Entscheidung.
> Wichtig ist das der GCC als Crosscompiler für AVR funktioniert und Du
> ein Programm für Deinen Progger hast (avrdude wurde ja schon genannt).
> Erstmal mit dem neuen Betriebssystem vertraut machen, läßt sich ja ohne
> Probleme parallel zu Windows installieren.
> Dann, wenn Du es bedienen kannst nach für Dich passenden Tools für die
> AVR Entwicklung suchen und austesten.
> Das nehmen mit dem Du persönlich am besten klarkommst und gut ist ;-)

Du empfiehlst das Herumprobieren, was an sich nicht die schlechteste 
Idee ist. Aber wenn der OP herumprobieren wollte, dann würde er nicht 
nach Empfehlungen fragen. Ihm geht es offensichtlich darum, die 
Anfangshürden zu überwinden und die gebräuchlichen Werkzeuge 
kennenzulernen.

Liebe Grüße,
Karl

von Rosberg (Gast)


Lesenswert?

Karl Käfer schrieb:
> Hallo kopfkratzer,
>
> kopfkratzer schrieb:
>> *kopfkratz*
>> Also wenn Du von Windows auf Linux umsteigen willst, dann schaue Dir mal
>> diverse Distris an und nimm die die Dir am meisten gefällt.
>> Schau mal da durch:
>> https://www.linux.com/directory/Distributions
>> http://distrowatch.com/
>> Wenn Du dann in der Lage bist einen neuen Kernel zu compilieren und in
>> den Bootmanager einzubinden bist Du soweit an Crosscompiling usw.
>> heranzugehen.
>
> Diese Herangehensweise halte ich, mit Verlaub, für völligen Quatsch. Als
> Anfänger kann man die Unterschiede zwischen den Distributionen ohnehin
> nicht beurteilen, und einen eigenen Kernel zu kompilieren ist heute a)
> sehr einfach und b) macht das schon seit Jahren keiner mehr, jedenfalls
> nicht auf normalen Desktop-Systemen.

> Du empfiehlst das Herumprobieren, was an sich nicht die schlechteste
> Idee ist. Aber wenn der OP herumprobieren wollte, dann würde er nicht
> nach Empfehlungen fragen. Ihm geht es offensichtlich darum, die
> Anfangshürden zu überwinden und die gebräuchlichen Werkzeuge
> kennenzulernen.
>
> Liebe Grüße,
> Karl

@Karl,
du hast es auf dem Punkt gebracht, genau so ist es.

Ich habe schon geschaft mit dem AVRISPmkII ein Atmega zu flashen! vielen 
Dank.

Gruß
Rosberg

von herbert (Gast)


Lesenswert?

>> Also wenn Du von Windows auf Linux umsteigen willst, dann schaue Dir mal
>> diverse Distris an und nimm die die Dir am meisten gefällt.
>> Schau mal da durch:
>> https://www.linux.com/directory/Distributions
>> http://distrowatch.com/
>> Wenn Du dann in der Lage bist einen neuen Kernel zu compilieren und in
>> den Bootmanager einzubinden bist Du soweit an Crosscompiling usw.
>> heranzugehen.

Also ne, ich würde folgendes machen:
Erst in den Urlaub an einen geeigneten Sandstrand fahren und dort Sand 
für die Siliziumschmelze mitnehemn. Dann zu Hause einen Schmelzoffen 
bauen, Wafer erzeugen und diese mit einer geeigneten 
Computerarchitecktur belichten und ätzen. Dann würde ich nach einem 
geeigneten Betriebssystem suchen und einen Emulator für das eigene 
Betriebsystem schreiben. Wenn Du so weit bist, nur noch die 
AVR-Entwicklungsumgebung portieren, einen Programmer bauen und den AVR 
programmieren. Fertig.

So einfach kann es gehen.

von Paul Baumann (Gast)


Lesenswert?

@Herbert
Schinde Dich doch nicht so!
:-)

Du kannst auch mal das sog. "LUBUNTU" als Betriebssystem ausprobieren.
Das ist zumindest für die "Hauptaufgaben" eines Rechners gut und man
kommt auch ohne Linuxkenntnisse gut zurecht.

MfG Paul

von Rosberg (Gast)


Lesenswert?

Hallo,

das AVRISPmkII funktioniert soweit ganz gut mit meine Ubuntu, bin 
einfach nach dem hier beschriebene Methode vorgegangen:

http://www.mikrocontroller.net/articles/AVRDUDE#USB-Programmer

das "015_usbprog.rules" angelegt und hat gleich funktioniert.

Nun habe ich mein STK500 ausgegrabt und wollte damit ausprobieren und 
das STK500 Seriell flashen (also ttyS0 ??)

aber da sagt AVRDUDE:
1
avrdude: ser_open(): can't open device "/dev/ttyS0": Permission denied

Muss ich auch etwas wie "015_usbprog.rules" für RS232 anlegen damit es 
funktioniert?

von Simon S. (-schumi-)


Lesenswert?

1
sudo adduser deinusername dialout

von Rosberg (Gast)


Lesenswert?

Hallo Simon, es funktioniert vielen Dank.

von Rosberg (Gast)


Lesenswert?

Karl Käfer schrieb:
> Mein Favorit ist der
> GNU/Emacs, der über einen Texteditor deutlich hinausgeht und sicherlich
> alles andere als einfach, sondern ein sehr mächtiges Werkzeug ist --
> manche sprechen von "Gottes eigenem Editor mit eingebautem
> Betriebssystem und eigener Programmiersprache", was dem Ganzen schon
> recht nahe kommt.

Hast Recht sieht nicht schlecht aus, Bedienung ist aber etwas 
ungewöhnlich, habe schon ein bisschen probiert allerdings jedes Mal wenn 
ich Emacs starte, kommt eine kleine Fenster, ich ändere die Größe aber 
bei nächste start ist wieder klein, kann man irgendwo die Größe 
einstellen?

von Rosberg (Gast)


Lesenswert?

Hat keine eine Idee?

von chris_ (Gast)


Lesenswert?

>"Ubuntu 9.04 Desktop Edition DVD"

Die ist ja aus dem letzten Jahrhundert. Ubuntu ist bereits bei Version 
14.04.

AVR-Programmieren und Linux ist eigentlich sehr einfach.
Ich habe einfach den in Ubunt eingebauten Editor verwendet ( gedit, der 
hat auch gleich ein Syntax-Highlighting für C ).
Wenn man Programm in nur ein File geschrieben hat, kann man einfacht mit 
gcc compilieren:

avr-gcc test.c

und fertig.

Wenn Du das neueste Ubuntu installiert hast, empfehle ich den 
Synaptics-Paket Manager zu installieren:

sudo apt-get install synaptic

Den kannst Du dann aufrufen und dort einfach mal nach avr suchen. Dann 
die Packete installieren und fertig.

von chris_ (Gast)


Lesenswert?

>aber da sagt AVRDUDE:
>avrdude: ser_open(): can't open device "/dev/ttyS0": Permission denied

Hier gibt es eine Lösung für Ubuntu:
http://rurandom.org/justintime/index.php?title=Running_avrdude_from_eclipse_under_linux

von Stephan B. (matrixstorm)


Lesenswert?

chris_ schrieb:
> avr-gcc test.c

Das bezweifel ich - mindestens der verwendete AVR muesste noch angegeben 
werden:
1
avr-gcc -o test.elf -mmcu=atmega8 test.c

MfG

von Rosberg (Gast)


Lesenswert?

Hallo
@chris_

Es geht jetzt im Prinzip nur um Emacs,

Rosberg schrieb:
> wenn
> ich Emacs starte, kommt eine kleine Fenster, ich ändere die Größe aber
> bei nächste start ist wieder klein, kann man irgendwo die Größe
> einstellen?

Die andere sachen sind schon in Griff, übrigens das hier:

chris_ schrieb:
>>aber da sagt AVRDUDE:
>>avrdude: ser_open(): can't open device "/dev/ttyS0": Permission denied
>
> Hier gibt es eine Lösung für Ubuntu:
> 
http://rurandom.org/justintime/index.php?title=Running_avrdude_from_eclipse_under_linux

Das war für STK500 und funktioniert wie "Simon S." geschrieben hat

---> sudo adduser deinusername dialout

Kannst du mehr über das hier erzählen?

chris_ schrieb:
> Wenn Du das neueste Ubuntu installiert hast, empfehle ich den
> Synaptics-Paket Manager zu installieren:
>
> sudo apt-get install synaptic

Wofür ist das gut?
avr gcc & Co. laufen schon, ich habe die aktuelle Version kompilliert 
und installiert.

von Martin (Gast)


Lesenswert?

Hallo,

habe das Atmel AVR Toolchain runtergeladen und in HOME/avr entpackt 
(Ubuntu), habe den Path so aktualisiert:

export PATH=$PATH:$HOME/avr/bin ; soweit alles i.O.

Nun jedes Mal wenn ich was machen will muss erst den Path über Terminal 
aktualisieren, wie mache ich damit es permanent bleibt?

Gruß
Martin

von Axel S. (a-za-z0-9)


Lesenswert?

Martin schrieb:
> habe das Atmel AVR Toolchain runtergeladen und in HOME/avr entpackt
> (Ubuntu), habe den Path so aktualisiert:
>
> export PATH=$PATH:$HOME/avr/bin ; soweit alles i.O.
>
> Nun jedes Mal wenn ich was machen will muss erst den Path über Terminal
> aktualisieren, wie mache ich damit es permanent bleibt?

Es gibt in deinem Home eine Datei .bashrc. Jedesmal, wenn du eine neue 
Shell [1] startest, dann wird die ausgeführt. Wenn du also bestimmte 
Umgebungsvariablen immer gesetzt haben willst, dann solltest du das da 
rein schreiben. Hier mal ein Stück von meiner .bashrc

1
PS1='\w \$'
2
PS2='> '
3
export PS1 PS2
4
5
export EDITOR=vim
6
export LC_CTYPE=de_DE.UTF-8
7
export LC_MESSAGES=C
8
export LANG=C
9
10
echo "$PATH" | fgrep -q "$HOME/bin" || PATH=$HOME/bin:$PATH
11
echo "$PATH" | fgrep -q "/sbin" || PATH=/sbin:/usr/sbin:$PATH
12
export PATH


[1] die Standard-Shell auf Linux ist /bin/bash. Falls das bei dir eine 
andere Shell sein sollte, dann heißt deren rc-File vermutlich anders. 
Welche Shell du verwendest kriegst du mit "echo $SHELL" heraus.

von Martin (Gast)


Lesenswert?

@Alex,
danke schon.

von Stefan F. (Gast)


Lesenswert?

Allerdings frage ich mich, warum di nicht einfach die Tools 
installierst, die zur Linux Distribution gehören. Dann brauchst du dich 
um Pfade nicht zu sorgen.

Kleine Starthilfe: http://stefanfrings.de/avr_hello_world/index.html

von Martin (Gast)


Lesenswert?

Stefan U. schrieb:
> Allerdings frage ich mich, warum di nicht einfach die Tools
> installierst, die zur Linux Distribution gehören. Dann brauchst du dich
> um Pfade nicht zu sorgen.

Ist natürlich die eifache Variante aber das AVR Toolchain ist neu. 
Inwiefern lohnt sich ist die Frage.

von Kaj (Gast)


Lesenswert?

Stefan U. schrieb:
> Allerdings frage ich mich, warum di nicht einfach die Tools
> installierst, die zur Linux Distribution gehören.
Warum nicht einfach die Toolchain vom Hersteller nutzen?

von Thomas (Gast)


Lesenswert?

mit VMware Windows laufen lassen, dann geht das voll super unter Linux, 
wie fastt alles andere auch was gut ist.

von Planlos (Gast)


Lesenswert?

Thomas schrieb:
> mit VMware Windows laufen lassen, dann geht das voll super unter Linux,
> wie fastt alles andere auch was gut ist.

Ne. Eher nicht. Fast alles was unter Windows so "alternativlos" besser 
läuft als unter Linux, tut es nicht innerhalb einer VM. Lieber 
Dual-Boot.

Das Problem hier ist schon bei den Ersten Posts entstanden:

Der TE ist Doppelter Anfänger. Anfänger bei Linux und Anfänger bei 
µC-Programmierung.

Das war wohl nicht allen von Anfang an klar.
Der TE hätte eine Anleitung gebraucht wie:
- Öffne den Software-manager
- Such nach "avr"
- mach ein Häkchen bei avrdude, eins bei gcc-avr, ...
- Klick auf OK
- Gib dein Passwort ein
- warte kurz
- fertig.

Stattdessen hat er, wie viele Windows-Umsteiger in Erwartung dass Linux 
zwingend Konsolen-Frickelei erfordert, erstmal nach der kompliziertest 
möglichen Lösung gesucht, mit selbstentpakter Fremdsoftware im 
Homeverzeichnis usw.

Linux-Software installiert man immer über den Distributions-eigenen 
Paketmananger. Punkt.
Klar gibt es Ausnahmen. Wenn du aber fragen musst, wann/warum man solche 
Ausnahmen macht: Nö. Nimm den Paketmanager.

von Sheeva P. (sheevaplug)


Lesenswert?

Planlos schrieb:
> Thomas schrieb:
>> mit VMware Windows laufen lassen, dann geht das voll super unter Linux,
>> wie fastt alles andere auch was gut ist.
>
> Ne. Eher nicht. Fast alles was unter Windows so "alternativlos" besser
> läuft als unter Linux, tut es nicht innerhalb einer VM.

Darf ich fragen, was das denn wäre?

von Sheeva P. (sheevaplug)


Lesenswert?

Martin schrieb:
> Stefan U. schrieb:
>> Allerdings frage ich mich, warum di nicht einfach die Tools
>> installierst, die zur Linux Distribution gehören. Dann brauchst du dich
>> um Pfade nicht zu sorgen.
>
> Ist natürlich die eifache Variante aber das AVR Toolchain ist neu.
> Inwiefern lohnt sich ist die Frage.

Was bedeutet in diesem Zusammenhang "neu"? Vom November 2014? Ich habe 
die Versionsnummern der Atmel-Pakete einmal mit jenen verglichen, die 
auf meinem KUbuntu/14.10-LTS installiert sind, und es sind genau 
dieselben: avr-gcc in Version 4.8.1, avr-libc in Version 1.8.0, und so 
weiter.

Also: warum sollte jemand sich eine Toolchain von Atmel herunterladen 
und in seinem ~ installieren, wenn er exakt dieselben Pakete mit dem 
Befehl
1
apt-get install gcc-avr
installieren und dann den Komfort eines modernen Paketmanagements 
(Auflösung von Abhängigkeiten, automatische Updates etc.) genießen kann?

von wendelsberg (Gast)


Lesenswert?

Planlos schrieb:
> Das Problem hier ist schon bei den Ersten Posts entstanden:

Allerdings vor 1,5 Jahren.

wendelsberg

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Axel S. schrieb:
> Hier mal ein Stück von meiner .bashrc

Da Du darin sowieso alle Variablen exportierst, reicht ein einmaliges 
Ausführen in .profile. Das wird nur einmal ausgeführt - nämlich beim 
Einloggen. Nochmaliges Setzen der ganzen Variablen in allen Subprozessen 
ist wegen export überhaupt nicht notwendig.

von Stefan F. (Gast)


Lesenswert?

>>> mit VMware Windows laufen lassen, dann geht das voll super unter Linux,
>>> wie fastt alles andere auch was gut ist.

>> Ne. Eher nicht. Fast alles was unter Windows so "alternativlos" besser
>> läuft als unter Linux, tut es nicht innerhalb einer VM.

> Darf ich fragen, was das denn wäre?

Meine persönliche Erfahrung ist, dass USB Geräte in einer virtuellen 
Windows Maschine unter Linux meustens nicht funktionieren. Auf meine 
drei Programmieradapter trifft das zu.

Hinzu kommt, das mein Notebook virtuelle Maschinen mangels 
entsprechender CPU Funktionalität unerträglich lahm ausführt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Stefan U. schrieb:
> Meine persönliche Erfahrung ist, dass USB Geräte in einer virtuellen
> Windows Maschine unter Linux meustens nicht funktionieren.

Das liegt an der miserablen USB-Implementierung der VirtualBox.  Die
ist unter aller Sau, und die schlechte USB-2.0-Implementierung (EHCI)
haben sie nicht einmal als Opensource, sondern nur als Binärklumpen
als "Add-on".  In der Opensource-Variante ist nur USB 1.1 dabei.

Nimm dir einen VMware Player (nicht "Pro", der kostet Geld, sondern den
ohne "Pro"), der macht USB ordentlich.  Selbst Firmwareupgrades, die
infolge der Umschalterei zwischen Bootloader und endgültigem Gerät,
die sich USB-seitig als zwei verschiedene Geräte präsentieren und die
daher eine ziemliche Herausforderung für die VM sind, gehen mit
VMware klaglos.  Auch einen USB-Analyzer, der seine Daten selbst wieder
über USB in seinen Host befördern muss, kann ich damit betreiben.

Oder halt Geld für die VMware Workstation ausgeben.  Dann hat man
außerdem noch Snapshots, etwas, was man auf einer physischen Maschine
nicht so bequem hat. ;-)

von Stefan F. (Gast)


Lesenswert?

Danke für den Tip.

von Sheeva P. (sheevaplug)


Lesenswert?

Stefan U. schrieb:
>>>> mit VMware Windows laufen lassen, dann geht das voll super unter Linux,
>>>> wie fastt alles andere auch was gut ist.
>
>>> Ne. Eher nicht. Fast alles was unter Windows so "alternativlos" besser
>>> läuft als unter Linux, tut es nicht innerhalb einer VM.
>
>> Darf ich fragen, was das denn wäre?
>
> Meine persönliche Erfahrung ist, dass USB Geräte in einer virtuellen
> Windows Maschine unter Linux meustens nicht funktionieren. Auf meine
> drei Programmieradapter trifft das zu.

Das geht per USB-Passthrough (bei KVM+qemu mit "-usbdevice 
host:bus.addr" oder "-usbdevice host:vendor_id:product_id") relativ gut. 
Allerdings muß der Host davon abgehalten werden, die Kernelmodule für 
das USB-Gerät zu laden, sonst kommen sich die Host- und die Gast-Treiber 
gegenseitig in die Quere und resetten das Device ständig. Wenn man das 
beachtet, funktioniert das hier sogar mit einem timing-kritischen 
DVB-T-USB-Stick sehr stabil. YMMV.

Aber eigentlich zielte meine Frage vielmehr darauf ab, was es denn unter 
Windows gibt, das so alternativlos besser läuft? ;-)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Sheeva P. schrieb:
> was es denn unter Windows gibt, das so alternativlos besser läuft?

Virenscanner? ;-)

von Sheeva P. (sheevaplug)


Lesenswert?

Jörg W. schrieb:
> Sheeva P. schrieb:
>> was es denn unter Windows gibt, das so alternativlos besser läuft?
>
> Virenscanner? ;-)

F-Prot, Kaspersky, Sophos und Comodo existieren auch für Linux. 
Allerdings werden diese nur auf File-, Mail- und ähnlichen Servern 
benötigt, um arme kleine Windows-Clients zu beschützen. ;-)

von neuer PIC Freund (Gast)


Lesenswert?

> was es denn unter Windows gibt, das so alternativlos besser läuft?

Bundestrojaner

von Sheeva P. (sheevaplug)


Lesenswert?

neuer PIC Freund schrieb im Beitrag #4267212:
>> was es denn unter Windows gibt, das so alternativlos besser läuft?
>
> Bundestrojaner

Touché.

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.