Forum: Mikrocontroller und Digitale Elektronik Linux: Wie sieht Eure Entwicklungsumgebung für AVR aus?


von Alexander P. (alexatmikro)


Lesenswert?

Hallo,

ich wollte mal nachfragen wie eure entwicklungsumgebung unter linux für
avr aussieht.
es gibt da ja verschiedene möglichkeiten, und mich interessiert, was am
ehesten verwendung findet.
wei immer ist auch dies eine 'glaubensfrage': der eine verwendet eher
kommandozeilen tools, der andere graphische geschichte, das ist
klar...ich will hier einfach eine diskussion anstossen, so dass jeder
die vor- und nachteile seiner methode schildern kann. newcomer können
das auswählen, was ihnen passt.


Einige möglichkeiten die sich mir bieten (ich bitte ggf. um
verfollständigung):

* 'atomic approach': vi, emacs , getrennte makefiles zum kompilieren,
 simulavr getrennt etc.

* vi, emacs. mit eingebundenen makefiles; hat jemand simulavr direkt in
einen der editoren eigebunden?

* graphische tools wie eclipse oder jedit zur projektverwaltung, ggf.
getrennte makefiles

* wine und avrstudio. (funktioniert das wirklich gut?, kommt man damit
an die hardware ran, ohne zu viele klimmzüge machen zu müssen?)


Fragen die sich mir ausserdem stellen:
*welchen assembler verwendet ihr? warum gerade den?

* hat jemand das stk500 über ein usb->rs232 kabel angesprochen, wenn
ja, wie [benötigt man z.B. bestimmte kernelmodule?](moderne rechner
haben ja keine serielle schnittstelle mehr); womit wird geflashed?

* ist der gcc optimizer so gut, dass man i.a. auf assemblercode aus
geschwindigkeitsgründen verzichten kann oder sollte man sich bestimmte
assemblerbibliotheken erstellen, die man dann mit c interfaced?

*kann man auch c++ verwenden? macht das sinn? (ich meine gelesen zu
haben, dass es c++ compiler gibt; aber sind die stabil einsetzbar?)

*gibt's ne fortran90 --> avr möglichkeit? (ich verdien meine brötchen
mit number crunching. dort verwendet man meist fortran)

*gibts ein avr modul für emacs?

* das gleiche für eclipse?


Also: zeigt her eure systeme ;-)

von Alexander P. (alexatmikro)


Lesenswert?

sorry, ich hab üble schreibfehler drin.
mein deutsch ist, wenn ich nicht gerade unter chronischem schlafmangel
leide, deutlich besser.
ich schäme mich und stell mich in die ecke ;-)

von KingNothing (Gast)


Lesenswert?

* 'atomic approach' vim mit getrennten makefiles, simulavr nutze ich
(im moment) garnicht, debuggen tu ich nur über usart. geflasht wurde
früher per avrdude,  doch irgentwie will er mein butterfly nich mehr
flashen, deswegen wird jedes mal neugestartet und per avrprog
geflasht.

eclipse usw hab ich auch schon probiert, jedoch nutze ich es nicht weil
ich festgestellt hab das soviel zeit beim einrichten der ide drauf geht.
(Ich wollte auch eine ide die unter win, freebsd u. mac osx läuft, das
einzige was mich halbwegs überzeugen konnte war eclipse)

von Rolf Magnus (Gast)


Lesenswert?

Was genau ist bei dir ein "eingebundenes Makefile" und ein
"getrenntes Makefile"?
Ich benutze gvim mit passendem Syntax Highlighting, Code Folding und
automatischem Sprung zu Fehlern im Quelltext für den AVR-Assembler. Für
C und C++ gibt's das ja sowieso. Zum Flashen verwende ich uisp, der
auch über's Makefile gestartet wird.

> *welchen assembler verwendet ihr?

avra

> warum gerade den?

Weil er funktioniert :)

> * ist der gcc optimizer so gut, dass man i.a. auf assemblercode
> aus geschwindigkeitsgründen verzichten kann oder sollte man sich
> bestimmte assemblerbibliotheken erstellen, die man dann mit c
> interfaced?

Wenn's auf Geschwindigkeit ankommt, sollte man schon wissen, was der
Compiler draus macht und ggf. im erzeugten Assembler-Code nachschauen.
Man sollte auch die gcc-spezifischen Attribute für Funktionen und Daten
kennen. Man kann mit C schon recht nah an den Assembler kommen. Und
notfalls kann man für bestimmte besonders kritische Sachen auch
Inine-Assembler verwenden, wobei manchmal der C-Code auch schneller
sein kann als der Inline-Assembler.

> *kann man auch c++ verwenden?

Ja.

> macht das sinn? (ich meine gelesen zu haben, dass es c++ compiler
> gibt; aber sind die stabil einsetzbar?)

Es gibt g++. Der ist natürlich genauso stabil wie gcc. Man muß aber
schon mit gewissen Einschränkungen leben. So funktionieren Exceptions
und RTTI nicht, und es gibt keine Klassenbibliotheken für den avr-g++.
Polymorphie scheint zu funktionieren, aber die vtables werden leider im
RAM abgelegt, welches oft schneller knapp wird als der Flash.

> *gibt's ne fortran90 --> avr möglichkeit? (ich verdien meine
> brötchen mit number crunching. dort verwendet man meist fortran)

Nicht daß ich wüßte.

von Anton (Gast)


Lesenswert?

Hallo!

Schreiben mit nedit, kompilieren und flashen über das makefile (mit
uisp oder avrdude).
Debuggen über RS232.

von Alexander P. (alexatmikro)


Lesenswert?

danke für die antworten.
mit eingebundenen makefiles meine ich folgendes: bei emacs z.B. kann
man über makefiles direkt aus emacs raus compilieren, und sieht die
ergebnisse dann auch in emacs. dgl. könnte man wohl auch für debugging
jobs realisieren. (ich mach das üblicherweise nicht, bin freund des
'atomic approach').

funktioniert das highlightning im vim automatisch, oder muss man was
nachinstallieren (für avr assembler)?

ich verwende in der täglichen arbeit den emacs (wurde mal vor zeiten
von meinem chef 'empfohlen'. hab den umstieg auf vi nie gemacht, weil
ich emacs kann und darin (voresrst) schneller bin.

über usb-->rs232 hat wohl noch keiner gearbeitet....
ich werd genau das jetzt mal ausprobieren (hab leider am laptop nur
usb).
ich werd später mal berichten....

...anscheinend verwendet niemand avrstudio.
die wahrscheinlichkeit, dass eingefleischte linux user das tun, die
sich auch noch für hardware interessieren hab ich auf ca. 0
eingeschätzt ;-)

von Martin #. (martin-)


Lesenswert?

>>...anscheinend verwendet niemand avrstudio
weil es eben keine naive Linux-Version gibt.

von Sssssss (Gast)


Lesenswert?

Ich programmiere mit vi oder kate.
Hab nen einfaches Makefile (make, make program, make fuses,...).
Allerdings hauptsächlich in C ;)

von Falk (Gast)


Lesenswert?

Mein "IDE":
vim (F8: "make", F9: "make prog"),
avr-gcc,
uisp mit "STK200".
Debugging mit Ausgabe über V.24.

Falk

P.S.: Wie würde man unter Win vorgehen, wenn N-100-mal
- ein AVR (Flash und EEprom) programmiert,
- ein Byte in einem One-Wire-Bus-Chip geschrieben und die Seriennummer
gespeichert werden müssen?
(Beide Chips auf einem Board,)

Unter Linux kann ich das, demnächst hat aber jemand das Vergügen, der
Linux nicht hat (kann, will, darf oder was auch immer).

von alexatmikro (Gast)


Lesenswert?

>>...anscheinend verwendet niemand avrstudio
>>>>weil es eben keine naive Linux-Version gibt.

es gibt aber die m,öglichkeit das über wine zu verwenden (s.o.)

alex

von Olaf (Gast)


Lesenswert?

Hi,

Ich benutze den in den binutils enthaltenden gnu assembler, da ich mit
diesem reichlich erfahrung habe auch auf anderen platformen wie arm,
alpha, sparc, mips, s390,... und gcc als C cross compiler.

g++ ist nach meiner meinung für die 'kleinen' AVRs overkill. Wer es
braucht benutzt es eben...

Ich habe es zwar nicht versucht, da ich kein fortran kann, aber du
kannst beim erzeugen des gcc cross-compiler den fortran support mal
einschalten mit
  --enable-languages=c,c++,f95

Zum flashen benutze ich uisp und einen selbst gebastelten el cheapo
parallel programmer a la STK200 (ein 74244, diode und widerstände).
Mit meinem neuen rechner werde ich mir wohl oder übel auch einen USB
adapter basteln müssen. Wird wohl ein FTDI-chip plus AVR werden, oder
was mir im web halt mal über den weg läuft...

Als editor benutze ich vim. Auf F9 habe ich mir speichern und make
eingestellt.
 map <F9> :w<CR>:make<CR>
Damit bekomme ich dann auch die fehler angezeigt und kann mit :cn :cp
zu den fehlerstell vor und zurück springen.

von Martin #. (martin-)


Lesenswert?

>>es gibt aber die m,öglichkeit das über wine zu verwenden (s.o.)
Ja, das weiss wohl schon jeder dass es mit wine läuft (oder sich auf
hängt), ich würde AVR-Studio verwenden wenn es als native
Linux-Version gäbe.

von Rolf Magnus (Gast)


Lesenswert?

> mit eingebundenen makefiles meine ich folgendes: bei emacs z.B.
> kann man über makefiles direkt aus emacs raus compilieren, und
> sieht die ergebnisse dann auch in emacs.

Das mache ich im gvim auch so. Aber ich brauche kein spezielles
Makefile dafür. Oder meinstest du nur, ob ich make auch aus dem Editor
heraus aufrufe?

> dgl. könnte man wohl auch für debugging jobs realisieren. (ich
> mach das üblicherweise nicht, bin freund des 'atomic approach').

Man kann das ja beliebig variieren.

> funktioniert das highlightning im vim automatisch, oder muss man
> was nachinstallieren (für avr assembler)?

Für AVR-Assembler war es WIMRE nicht dabei, aber auf vim.org kann man
sich passende Skripte runterladen. Code-Folding geht natürlich nicht
automatisch, aber man kann mit Foldmarkern sehr gut arbeiten. Ich
finde, das macht die Sache doch übersichtlicher.
Sieht dann so aus wie im Anhang bei:
http://www.mikrocontroller.net/forum/read-2-225183.html#236574

PS: bitte keine Diskussion über die Hintergrundfarbe. Die gab es in dem
verlinkten Thread schon.

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.