Forum: Compiler & IDEs C-IDE / Debug für AVR


von herrmann (Gast)


Lesenswert?

Hallo Community,

ich habe ein paar Fragen oder besser Erfahrungswerte von Leuten, die
schon länger AVR's unter C programmieren. Wir haben dieses Jahr die
Möglichkeit über unsere Hochschule bekommen, eine Entwicklungsumgebung
zu kaufen. Es soll eine sinnvolle Investition für die ATMEGA-Serie
sein, mit der im Rahmen von Praktika in C auf einem eigenem EVA-Board
programmiert werden soll. Gleichzeitig soll man im Rahmen der
Fehlersuche per JTAG debuggen.

Soweit ich es bisher sehe, kann man mit AVR-Studio nur Assembler
programmieren und benötigt für C eine eigene IDE. Wie sieht's mit
Debugging mittels JTAG aus?

Unterstützt AVR-Studio JTAG - gehen da auch die nachgebauten Kabel oder
muss ich einen originalen Adapter kaufen?

Gibt es brauchbare C-IDE's, die bereits JTAG-Debugging unterstützen
und wie teuer sind die?

Was empfehlen denn die alten Hasen unter Euch?

Schonmal vielen Dank...

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


Lesenswert?

> Soweit ich es bisher sehe, kann man mit AVR-Studio nur Assembler
> programmieren

Naja, AVR Studio zum Programmieren ist wohl sowieso Geschmackssache.

Anyway, die nächste Version von AVR Studio soll dem Vernehmen nach
eine WinAVR-Anbindung besitzen...

> und benötigt für C eine eigene IDE.

Für C benötigt man einen Editor und irgendwas, was den Compiler
aufrufen kann.  Ob man das in jedem Falle als ,IDE' bezeichnen will,
bleibt einem natürlich selbst überlassen...

> Wie sieht's mit Debugging mittels JTAG aus?

AVR Studio kann latürnlich mit dem Atmel JTAG ICE zusammenarbeiten.
Es ist ja gewissermaßen die primäre Applikation dafür (und manche der
ICE-Funktionen scheinen sich stark am Bedarf von AVR Studio zu
orientieren).

> Unterstützt AVR-Studio JTAG - gehen da auch die nachgebauten Kabel
> oder muss ich einen originalen Adapter kaufen?

,,Kabel'' ist gut. :-)

Die JTAG ICE mkI Clones funktionieren natürlich auch mit AVR Studio,
da sie ja die originale Atmel-Firmware benutzen.  Allerdings (und
nein, ich verdiene nichts dran ;-) würde ich dir zu einem (oder N
Stück) JTAG ICE mkII raten, wenn du heutzutage die entsprechenden
Plätze neu aufbaust.  Nicht nur, dass es parallel zur RS-232 auch via
USB reden kann und für die kleineren AVRs debugWire unterstützt (das
ich aber selbst noch nicht wirklich benutzt habe), ich habe auch den
Eindruck, dass das mkI ICE keine Softwareupgrades mehr für die neueren
AVRs erfahren wird.  Wenn ich das richtig sehe, dürften die JTAG ICEs
ja wohl deine einzige richtige Investition sein.

> Gibt es brauchbare C-IDE's, die bereits JTAG-Debugging unterstützen
> und wie teuer sind die?

Was haben IDEs mit JTAG Debugging zu tun?

IARs Compiler hat glaub' ich noch eine eigene Unterstützung für das
JTAG ICE, aber da kannst du dir für das Geld eines Arbeitsplatzes ein
gebrauchtes Auto kaufen.  Sonst ist mir außer AVR Studio nur noch
AVaRICE bekannt als Bindeglied zum GDB, allerdings hat das mit dem
mkII ICE noch ein paar kleine Macken.

> Was empfehlen denn die alten Hasen unter Euch?

Generische Antwort: Emacs. :-)  (Ja, ich nehme den wirklich dafür,
einschließlich Debugger, einschließlich JTAG ICE...)

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

CrossWorks unterstützt JTAG/debugWIRE. So wie es in der Doku aussieht
ist die IDE ziemlich gut, die Demo hab ich noch nicht ausprobiert.
Gibt's für Linux und Windows und kostet für Ausbildungszwecke 99
Pfund.

von herrmann (Gast)


Lesenswert?

>Was haben IDEs mit JTAG Debugging zu tun?

Während des Studium haben wir einen Ausblick Richtung DSP gemacht und
dabei das CodeComposer-Studio im Einsatz. Damit konnte man die
Quelltexte compilieren und gleicheitig debuggen...


> Was empfehlen denn die alten Hasen unter Euch?

>>Generische Antwort: Emacs. :-)  (Ja, ich nehme den wirklich dafür,
>>einschließlich Debugger, einschließlich JTAG ICE...)

Bisher habe ich per WinAVR die Quelltexte geschrieben und mit
integrierten GCC compiliert. Daher war die Frage wohl etwas "dumm"
gestellt. Um den Debugger einzusetzen, muss ich also zusätzlich zu
WinAVR noch das AVR-Studio installieren oder gibt's eine extra
Software für das JTAG-ICE?

Habe gerade noch gesehen, dass zwei JTAG-Interfaces angeboten werden.
Neben dem MK2 gibts noch das ICE50. Wie teuer sind die Teile???

Viele Grüße...

von A.K. (Gast)


Lesenswert?

Das JTAG mkI hat einen Vorteil: den unschlagbaren Preis, vor allem wenn
man sich das Teil selber baut (Evertool Light: Mega16, MAX232, Quarz,
Steckleisten/Buchsen, etwas Hühnerfutter). Insofern spricht nichts
dagegen, mit dem mkI anzufangen. Zumal wenn es um's Lernen geht und
daher nicht die ganze Chip-Palette unterstützt werden muss, sondern man
sich auf Mega16/32/128 beschränken kann.

Wenn man später beruflich etwas damit anfängt, kann man sich immer noch
den mkII zulegen. An der Bedienung ändert sich ja nichts.

Bedienung vom JTAG ist unter Windows am einfachsten mit dem AVR-Studio.
Das kommt mit WinAVR klar (wenn man das richtige Debug-Format auswählt).
Ob man das auch als IDE verwendet, muss jeder für sich entscheiden,
sowas ist hochgradig Geschmackssache. Für die Debug-typischen Fixes
jedenfalls reicht es.

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


Lesenswert?

> Insofern spricht nichts
> dagegen, mit dem mkI anzufangen.

Das ist nicht wirklich die Variante, wie man sowas in einer Uni
angeht.  Für einen Bastler ist das OK, aber bei so einem
Projekt einer Uni etc. bekommt man i.d.R. genau einmal Geld
bewilligt, und das muss dann alles abdecken.

> Neben dem MK2 gibts noch das ICE50.

Das ist kein JTAG ICE!  Würde ich nicht mehr nehmen.

von herrmann (Gast)


Lesenswert?

Hallo Jörg,

die folgenden Fragen scheinen etwas "flach" klingen, sind aber
durchaus ernst gemeint. Meine bisherige vorgeschlagene Lösung an der FH
war folgende:
- WinAVR zum proggen
- PonyProgg zum flashen
  --> kann ja wahrscheinlich das ICE2 per JTAG (unter AVR-Studio)
bestimmt übernehmen?!
- Debug mit AVR-Studio und dem jeweiligen JTAG-Interface
Das Problem meines Prof.: Er wollte gerne eine Umgebung für alles
haben.
>>Generische Antwort: Emacs. :-)  (Ja, ich nehme den wirklich dafür,
>>einschließlich Debugger, einschließlich JTAG ICE...)

Ich hatte mich mal mit einer SuSE 6.4 beschäftigt und dachte, dass
Emacs "nur" ein Editor ist. Wenn ich dich richtig verstehe, nimmst Du
Emacs zum Erstellen des Quellcodes und übersetzt die Sourcen danach per
GCC. Zum Debuggen kommt bei dir dann AVR-Studio mit dem JTAG-ICE2 zum
Einsatz?

Viele Grüße

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

WinAVR lässt sich ins AVR-Studio integrieren, Programmieren geht damit
ebenso (mit AVR-ISP). Damit hast du alles in einer IDE. Mehr Komfort
(und besseren Code) bietet Crossworks, was ja in der Edu-Version auch
ganz bezahlbar ist.

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


Lesenswert?

> - PonyProgg zum flashen
>   --> kann ja wahrscheinlich das ICE2 per JTAG (unter AVR-Studio)
> bestimmt übernehmen?!

Ja.  avrdude 5.0 kann es auch, aber solange noch keiner die libusb
unter Windows zum Laufen gebracht hat, leider nur via RS-232.  (Es
gibt eine libusb für Windows, aber es ist mir nicht wirklich gelungen,
auf einer Kiste auf Arbeit das in Sack und Tüten zu bekommen.  Ich bin
sicher einfach zu blöd, ein Stück Windows-Software zu installieren.)

> Ich hatte mich mal mit einer SuSE 6.4 beschäftigt und dachte, dass
> Emacs "nur" ein Editor ist.

Im Prinzip ja.  Aber was ist eine IDE denn sonst als ein Editor mit
einer Anbindung zu paar externen Programmen?  Die Compiler existieren
bei allen mir bekannten IDEs als separate Kommandozeilenversionen.
OK, den Debugger kann man vielleicht mehr intrigieren, als das ein GDB
mit dem Emacs ist, aber ich mag den Komfort von Emacs über alles.
Gerade Features wie die Ausgabe beliebiger C-Ausdrücke vermisse ich
bei anderen Debuggern heftig.  Lokale Variable aus einem
übergeorndeten Stack-Frame?  In AVR-Studio hast du da wohl verloren.
Den void * cookie, den die Funktion eben übergeben bekommen hat, in
einen struct foobar_t * casten, um anschließend die darauf basierende
verkettete Liste stückweise entlangzuwandern?  Aua.

> Wenn ich dich richtig verstehe, nimmst Du Emacs zum Erstellen des
> Quellcodes und übersetzt die Sourcen danach per GCC.

Bei mir liegt auf Taste F5 einfach ein "make -k".

> Zum Debuggen kommt bei dir dann AVR-Studio mit dem JTAG-ICE2 zum
> Einsatz?

Würde auf meinen FreeBSDs (und Linux auf Arbeit) nicht laufen. ;-)

Selbst wenn es laufen würde: s.o., ich habe immer mächtig Probleme, in
dieser Art IDEs überhaupt einen Ansatz zu finden.  Welches der kleinen
Kindergartenbilder muss ich jetzt eigentlich drücken?  Ich vermeide
das, wo's nur geht.

von herrmann (Gast)


Lesenswert?

Vielen Dank für die Hinweise...zum Abschluß möchte ich euch noch gerne
schreiben, was schlußendlich herausgegommen ist.

Vom Atmel- Distributor MSC/GE werden wir ein Startup-Kit (STK500,
STK501, JTAGICE-MKII und IAR-Compiler (4KB-Beschränkung)) für die
Entwicklung von Praktikumsaufgaben und Studienarbeiten und für unsere
eigenen Boards noch 5 JTAGICE-MKII holen. Da die Atmega auch per SPI
geflasht werden können, reichen die JTAGs zum Debuggen erstmal aus.

Viele Grüße

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.