www.mikrocontroller.net

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


Autor: herrmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...)

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: herrmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: herrmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: herrmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.