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
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...
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 ;-)
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.
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.
>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
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.
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
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.
>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.
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
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