Forum: Mikrocontroller und Digitale Elektronik Welchen C-Compiler für AVR?


von Thomas34 (Gast)


Lesenswert?

Hallo miteinander,

ich programmiere schon einige Zeit die AVR-Mikrocontroller in Assembler, 
dafür nutze ich AVR Studio. Jetzt möchte ich aber auch in C 
programmieren, nun stellt sich mir die Frage, welchen C-Compiler, bzw. 
welche Entwicklungsumgebung soll ich nehmen. (Erfahrungen mit 
C-Programmierung sind vorhanden). Da ich mich sehr viel mit AVR 
beschäftige, bin ich auch bereit etwas zu investieren, wobei mir IAR 
doch ein bisschen teuer ist :-/

Was für mich noch wichtig ist, ich möchte effektiv mit der IDE arbeiten 
können, also mich nicht nur mit make-Files, Konfigurationen der IDE oder 
ähnlichem rumschlagen müssen... einfach C programmieren und zu 
Ergebnissen kommen, eigentlich so, wie ich es von AVR Studio mit 
Assembler gewohnt bin.

Im Moment tendiere ich ein bisschen zu Imagecraft. Hmmm, kann mir hier 
vielleicht jemand Tipps geben, mir zu einer IDE raten oder abraten?!

- WinAVR (GNU C-Compiler)
- Imagecraft
- Codevision
- sonstige?

Also für eure Meinung wäre ich sehr dankbar!

Grüße
Thomas

von Manfred B. (vorbeigeschlendert)


Lesenswert?

eclipse mit CDT http://www.eclipse.org/cdt
gcc (WinAVR)
dazu vielleicht das AVR Eclipse Plugin 
Beitrag "AVR Eclipse Plugin 2.1 Released"

ohne das AVR Eclipse Plugin gehts auch, einmal ein ordentliches Makefile 
erstellen, http://www.sax.de/~joerg/mfile  (Jörg kriegt immer noch ein 
Bier von mir ;-) ) und das flutscht genauso...


ist alles für umsonst und warum mehr ausgeben? vielleicht liefert der 
ein oder andere Compiler bisschen bessere Ergebnisse, aber ist IMHO 
nicht das Geld wert das die dafür wollen...

von Rudolph R. (rudolph)


Lesenswert?

WinAVR lässt sich mit dem AVRStudio wunderbar benutzen.

von Manfred B. (vorbeigeschlendert)


Lesenswert?

seit ein paar Versionen ja, davor war das aber nicht so prickelnd und 
dann kam ich zu Eclipse und finde mich da ganz gut zurecht (bis auf die 
paar mal wenn mich das character encoding ärgern will) ...

aber das Zusamenspiel von WinAVR und AVRStudio zu Testen steht auf der 
ToDo Liste ;-)

von Gast32 (Gast)


Lesenswert?

Also von der Code-Dichte kommt wohl keiner an IAR ran, der ist halt 
kostenpflichtig.

Dennoch würde ich den IAR nicht ausser Beetracht ziehen, denn es gibt ja 
eine freie 4k Version, die reicht auf jeden Fall ein gutes Stück.

von Thomas34 (Gast)


Lesenswert?

Die 4k Version wird nicht reichen, aber zum Testen des IAR Compilers/IDE 
wäre das in Ordnung, allerdings wäre da halt der Preis der nicht 
eingeschränkten Version das abolute Maximum, und dann muss man ja noch 
die laufenden Kosten berücksichtigen (Support, Update) :-/ Also da muss 
ich erst mal sicher sein.

Die Code-Dichte wäre nicht der wichtigste Punkt für mich. Wichtig wäre, 
dass ich mit der IDE schnell zurecht komme, nicht viel rumbasteln muss, 
eher so dass ich mich schnell mit dem eigentlichen "Problem", dem 
Programmieren befassen kann. Dann wäre noch wichtig, dass neue 
Mikrocontroller (aktuell zB. xmega) schnell unterstützt werden.

von t.b.d. (Gast)


Lesenswert?

CodeVison ist auch noch da... und billiger als IAR.
Hat auch einen Codewizard... der alles initialisiert, aber sehr stark zu 
Spagetticode neigt.

von Oliver (Gast)


Lesenswert?

>eigentlich so, wie ich es von AVR Studio mit
>Assembler gewohnt bin.

Stand zwar schon weiter oben, aber trotzdem: WinAVR ist deine Lösung. 
Der gcc ist wirklich kein schlechter Compiler, ist nahtlos ins AVRStudio 
integriert, was willst du also mehr?

Eclipse, ebenfalls mit dem WinAVR, bietet keinen Simulator, ansonsten 
ist es Spitze. Unterstützung für Sourcecodeverwaltung, etc. ist da schon 
drin, der Editor ist auch besser, usw.

Oliver

von Mehmet K. (mkmk)


Lesenswert?

Ich hatte früher Imagecraft. Bin dann auf gcc umgestiegen und habe es 
nie bereut. Wenn ich aeltere Projecte auf gcc umschreibe, schneidet gcc 
in Sachen Code-Dichte immer besser ab.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dann gäbe es noch Rowley Crossworks. Auf ARM und MSP430 macht das 'ne 
gute Figur, sollte also auch auf AVR "gut aufgestellt" sein.
JTAG-Debugging wird auch unterstützt, via JTAG-ICE.

http://rowley.co.uk/avr/index.htm

von Andreas I. (adisan)


Lesenswert?

Der Compiler ist gut, aber teuer :
"C-Compiler Embedded Workbench von der Firma IAR".

von 900ss (900ss)


Lesenswert?

GCC wird so in das AVRStudio integriert, dass Du es eigentlich nicht 
merkst. Nur insofern, dass Du C programmieren kanst :-) Du hast nichts 
mit Makefiles zu tun, das verwaltet das Studio. Auch kannst Du im Studio 
alle Compilerflags in den Projektoptionen einstellen. Debuggen geht auch 
über das Studio ziemlich gut. Was mich total nervt ist der dämliche 
C-Editor im Studio. Der ist ziemlich mies. Keine 
Programmierer-Unterstützung, einfach ein dämlicher Editor.
Ich nutze jetzt selber Eclipse, aber das ist unter Umständen nicht sooo 
einfach zum laufen zu bewegen. Dazu siehe das inzwischen ganz gute 
Plugin
Beitrag "AVR Eclipse Plugin 2.1 Released"

Damit kann man ziemlich gut in Eclipse arbeiten. Bis man aber die ganze 
Kette bis zum Debugger am laufen hat, bedarf es mehr Arbeit. Da ist es 
im Studio eher Plug and Play. Aber in Eclipse ist der Editor und die 
Sourceverwaltung eben Spitze. Auch das Debugguen geht gut, wenn man es 
erstmal soweit hat. Aber so wie Du dich geäußert hast, wird Dir das 
Studio mit dem GCC wohl besser gefallen. Und ob GCC oder einen anderen 
Compiler ist schon mehr eine Glaubensfrage. Da hat jeder seine Vor- und 
Nachteile meine ich.

von Gast (Gast)


Lesenswert?

>Im Moment tendiere ich ein bisschen zu Imagecraft.

Den würde ich nicht nehmen. Falls Du eine Testversion bekommen kannst, 
teste, wie er mit long-Variablen umgeht. Vor ein paar Jahren war u.a. 
dies völlig uneffektiv.
Preis-Leitung ist bei GCC am besten. Wenn die letzten Bits entscheidend 
sind, und Dich Preise und Aktivierungsgängelung nicht stören, spare für 
vielleicht für IAR.

von Roman Mittermayr (Gast)


Lesenswert?

Ich würde dir wirklich AVR Studio / WinAVR (GCC) empfehlen. Ich hab mir 
einige Compiler angeschaut als ich mein AVR Buch geschrieben habe, jeder 
hat natürlich seine Vor- und Nachteile. Die zwei liebsten waren mir 
persönlich der CodeVision und eben GCC.

CodeVision hat einen unschlagbaren CodeWizard, ich verwende die Eval 
Version von CodeVision nur, um den CodeWizard zu missbrauchen um Code 
für GCC zu erzeugen (aufpassen: Nicht alle Register sind identisch).

Langfristig fährst du wohl mit GCC am besten, weil dort drauf geachtet 
wird, dass die Konvention in Zukunft kompatibel bleibt (soweit als 
möglich).

Sollte CodeVision zusperren, dann musst du deinen Code portieren, der 
läuft nicht 1:1 im GCC. (Ich weiß, es gab auch Probleme bei älterem GCC 
Code wo dann die ganzen sbi/cbi Makros weg waren, das sind aber keine 
wirklichen Probleme).

Habe mit Pavel von HP Info Tech gesprochen und die sind natürlich schon 
sehr dahinter, dass der Compiler optimiert ist.

Langfristig empfiehlt sich aber immer der GCC, da freuen sich auch 
andere Leute im Internet, wenn du deinen Code postest. Das sollte 
unterstützt werden, dass wir alle einen halbwegs gemeinsamen "Standard" 
verfolgen und nicht jeder seinen C-Compiler entwickelt mit noch tollerer 
Interrupt-Behandlung ;-)

Wie immer: Mehr dazu auch in meinem Buch http://www.avrbuch.de/
Dort gibts einen Vergleich von AVRGCC und CodeVision + komplettes Setup 
Guide und bekannte Probleme mit Vista.

LG, Roman

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


Lesenswert?


von Thomas34 (Gast)


Lesenswert?

Vielen Dank für eure Antworten!

Ich werde vorerst die Kombination WinAVR und AVR-Studio verwenden, auch 
wenn der Editor vom AVR-Studio nicht so komfortabel ist. Den bin ich 
wenigstens gewohnt, ich programmiere damit ja schon einige Zeit 
Assembler ;-)

Wenn ich mich mit C und AVR eingewöhnt habe, werde ich dann mal Eclipse 
austesten.

Grüße
Thomas

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.