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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren