JTAG oder debugWIRE

OP #617858
Lesenswert?
• ▲
▼
Für ein Projekt suche ich einen µC den ich in der Schaltung( 
Motorsteuerung) programmieren und debuggen kann.
Mir steht ein JTAGICE mk2 zur Verfügung, in der Deviceliste finde ich 
nun unter Interface JTAG oder debugWIRE .
Wo ist da der Unterschied und was unkomplizierter?
Vielen Dank im Vorraus.
#617864
Lesenswert?
• ▲
▼
Der Unterschied ist, dass DebugWire nur bei den kleinen AVRs mit wenig 
I/O-Pins anstelle von JTAG implementiert ist, da es nur einen I/O-Pin 
benötigt, JTAG aber 4 davon. JTAG ist aber eben deutlich 
leistungsfähiger, macht aber nur Sinn bei µCs, bei denen man auf 4 I/Os 
verzichten kann.

Dementsprechend wirst Du das Interface anhand des von Dir verwendeten 
Controllers auswählen müssen, eben je nachdem, welches er unterstützt.
#617893
Lesenswert?
• ▲
▼
MNR wrote:
>>JTAG ist aber eben deutlich leistungsfähiger
>
> Inwiefern? Was kann JTAG, was du mit DebugWire nicht kannst?
JTAG ist schneller...

Johannes Selk wrote:
> Noch habe ich die freie Wahl des µC, da ich aber Neuling bin auf diesem
> Gebiet, sollte es möglichst einfach sein. Kann ich dann über ISP
> debuggen?
Über ISP kann man nicht debuggen, nur programmieren.
Gast #1810773
Lesenswert?
• ▲
▼
also gibt es wirklich nur den Geschwindigkeitsunterschied? ich meine mal 
irgendwo aufgeschnappt zu haben, dass DebugWIRE im Gegensatz zu JTAG nur 
"Befehle" durchführen kann ich auch die CPU kann. was auch immer es 
sonst noch geben soll...
Gast #1810831
Lesenswert?
• ▲
▼
>also gibt es wirklich nur den Geschwindigkeitsunterschied? ich meine mal
>irgendwo aufgeschnappt zu haben, dass DebugWIRE im Gegensatz zu JTAG nur
>"Befehle" durchführen kann ich auch die CPU kann. was auch immer es
>sonst noch geben soll...

jedes setzen/löschen von breakpoints mit debugwire bringt ein 
neuschreiben des flashs mit sich. die entwicklung umfangreicherer 
projekte dürfte damit schwer fallen, ohne gefahr zulaufen, den µc 
"totzudebuggen". ein ernsthaftes debuggen mit debugwire in fertig 
aufgebauter/gelöteter zielhardware seh ich als absolutes nogo.
Gast #1810991
Lesenswert?
• ▲
▼
Hi

>jedes setzen/löschen von breakpoints mit debugwire bringt ein
>neuschreiben des flashs mit sich. die entwicklung umfangreicherer
>projekte dürfte damit schwer fallen, ohne gefahr zulaufen, den µc
>"totzudebuggen". ein ernsthaftes debuggen mit debugwire in fertig
>aufgebauter/gelöteter zielhardware seh ich als absolutes nogo.

Bis aus die ATMega48...328 haben eigentlich nur ATTinys mit relativ 
kleinen Flashspeicher Debugwire. Um mit Debuggen die garantierten 10000 
Flashzyklen vollzubekommen muss man schon eine komplette Niete in Punkto 
Programmieren sein.

MfG Spess
#1811072
Lesenswert?
• ▲
▼
Nils S. schrieb:
> Ich habs schon geschafft ;) Eine RGB-LED-Matrix mit Animationen versorgt
> und alle paar Zeilen geflasht. Nach ca. 4 Monaten basteln musste ein
> zweiter M644 rein :P

Ich frage mich ganz entsetzt, wie kann man dafür 4 Monate und 10000 
Programmierzyklen brauchen.
Du hast doch nicht etwa jeden einzelnen Schritt hart kodiert?
Man schreib einmal das Ansteuerprogramm und gut is.

Die Animation selber ist dann nur ne Tabelle mit den Daten. Die würde 
ich sogar in nen externen seriellen EEPROM/Flash/SD-Card ablegen, dann 
kann man sie schnell wechseln.


Peter
#1811095
Lesenswert?
• ▲
▼
MNR schrieb:
>>JTAG ist schneller...
>
> Dann solltest du das auch schreiben. Deutlich leistungsfähiger klingt
> nach mehr Funktionalität, was definitiv nicht der Fall ist.

Doch:
1
Note  that  the debugWire environment is further limited, compared to JTAG.  It does not offer hardware breakpoints, so
2
all breakpoints have to be implemented as software breakpoints by  rewriting  flash  pages  using  BREAK  instructions.
3
(Software  breakpoints  are  currently  not  implemented  by avarice.)  Some memory spaces (fuse and lock bits) are not
4
accessible through the debugWire protocol.

(man avarice)
Gast #1811110
Lesenswert?
• ▲
▼
Peter Dannegger schrieb:
> Nils S. schrieb:
>> Ich habs schon geschafft ;) Eine RGB-LED-Matrix mit Animationen versorgt
>> und alle paar Zeilen geflasht. Nach ca. 4 Monaten basteln musste ein
>> zweiter M644 rein :P
> Ich frage mich ganz entsetzt, wie kann man dafür 4 Monate und 10000
> Programmierzyklen brauchen.
> Du hast doch nicht etwa jeden einzelnen Schritt hart kodiert?
Klar, sonst wäre der nie auf 83-mal Flashen am Tag gekommen. ;-)
Mal im Ernst, vielleicht hat er Pech mit dem µC gehabt und die 10.000 
nie erreicht?
Vielleicht war der µC auch schon ordentlich von Vorgänger-Projekten 
vorbelastet?
Persönliche Seite #1812313
Lesenswert?
• ▲
▼
>Ich frage mich ganz entsetzt, wie kann man dafür 4 Monate und 10000
>Programmierzyklen brauchen.
>Du hast doch nicht etwa jeden einzelnen Schritt hart kodiert?
>Man schreib einmal das Ansteuerprogramm und gut is.

>Die Animation selber ist dann nur ne Tabelle mit den Daten. Die würde
>ich sogar in nen externen seriellen EEPROM/Flash/SD-Card ablegen, dann
>kann man sie schnell wechseln.

Mittlerweile ist mir vieles klarer als am Anfang ;) Ich war froh nach 
zwei Wochen die LEDs am Laufen zu haben und die Animationen bestanden 
aus unzähligen Arrays und _delay_ms :), von UART, EEPs und sonstigen 
kaum Ahnung - Keine Hardware.
So ziemlich jede Änderung wollte überwacht sein und ob das nun 10000, 
8683 oder 11033 kann ich wirklich nicht mit bestimmtheit sagen...

Antwort schreiben

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.

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.