Linux: Wie sieht Eure Entwicklungsumgebung für AVR aus?

OP #255298
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 ;-)
Gast #255300
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)
Gast #255301
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.
OP #255303
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 ;-)
Gast #255306
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).
Gast #255308
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.
Gast #255310
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.