www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik JTAG


Autor: John (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi.
Ich habe ja nun schon oft was von dem JTAG gehört.
Kein mir einer kurz erklären, wie es arbeitet, für was ich es einsetze
und in welcher form ich den controller (Mega16) Damit überwachen kann.

Vielen Dank!
Gruß

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
JTAG erlaubt es, zur Laufzeit den mehr oder minder vollständigen Zustand
des Prozessors auszulesen und evtl. auch zu modifizieren. Darin sind
auch diverse Debugging-Mechanismen enthalten, wie z.B.Breakpoints.

Dazu braucht's ein Interface (google: evertool) und AVR Studio oder
das äquivalente Dings im WinAVR (avarice oder so ähnlich). Und
natürlich einen AVR der's unterstützt, wie eben den Mega16.

Ach ja: Das Flash kann man damit natürlich auch programmieren. JTAG
ersetzt also ISP, benötigt aber anders als jenes 4 reservierte
Leitungen.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Technisch gesehen ist es auch wiederum nichts anderes als SPI, mit dem
Interface als Master und dem Prozessor als Slave. Das Protokoll ist
freilich proprietär.

Autor: John (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deine schnelle antwort!
Kann ich in meine Programme die ich mit WINAVR erstellt habe auch
direkte breakpoints setzen ?
Ich denke mal wenn man richtig damit umgehen kann, kann man sich
einiges an debugging zeit sparen. Oder lohnt es sich nicht wirklich das
teil zu beherrschen ?
Arbeitet das JTAG eigentlich einigermaßen in realtime ?

Gruß

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AVR Studio Debugging und WinAVR vertragen sich recht gut (mit -gdwarf-2
übersetzen).

Der µC läuft ganz normal, aber Einblick gibt's nur während der
Prozessor steht, weil angehalten oder Breakpoint und dergleichen. Bloss
hört natürlich die Welt nicht auf sich zu drehen, bloss weil der µC grad
steht, d.h. externe Geräte kriegen nichts davon mit und laufen evtl. auf
Timeouts oder andere Probleme. Aber das ist unvermeidlich.

Breakpoints sind Hardware - ein paar gibt's von Haus aus (3 oder so),
für mehr wird ad-hoc geflasht. Irgendwelche Data Watchpoints gibt's
auch, ich habe sie bisher aber nicht verwendet.

Ich finde es lohnt sich. Zumal es im Nachbau wenig kostet (Mega16,
MAX232, DB9, etwas Hühnerfutter). Wird seriell angeschlossen, also
evtl. USB/Ser-Konverter einplanen.

Autor: Stefan May (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://de.wikipedia.org/wiki/JTAG

Das war ursprünglich dazu gedacht, einen Chip zu testen. Da in der
Chipherstellung jeder Hersteller sein eigenes Testequipment entwickelt
hat, konnte man die eigenen Chips nicht in fremden Fabriken herstellen
lassen. Aus diesem Grunde wurde die Joint Test Action Group gegründet,
mit dem Ziel eine einheitliche Schnittstelle zu schaffen. Mit dieser
elektrischen Schnittstelle konnte dann eine Fabrik den Chip seines
Auftraggebers testen. Dabei nicht vergessen, daß viele kleine
Chipproduzenten überhaupt keine eigene Fab haben.

JTAG ist erst mal nichts anderes als eine elektrisch definierte
Schnittstelle, auf der Daten übertragen werden können. Was übertragen
wird, bleibt das Geheimnis des jeweiligen Chipherstellers. Man will
sich ja nicht in die Karten schauen lassen.

Später entdeckte man die Vorteile des JTAG auch in Mikroprozessoren und
CPLDs oder FPGAs. Dort wird es neben dem Testen des Chip auch für die
Programmierung desselben verwendet. Vorteil: Man benötigt nur einen
Adapter für ein und dieselbe Aufgabe. Leider haben die Hersteller hier
das Rad immer wieder neu erfunden und so gibt es unzählige Varianten
von JTAG-Adaptern.

Im den Mega16 kann man mit dem JTAG Interface seine Programme innerhalb
der Hardware debuggen. Das hat mehrere Vorteile. Zum einen ist das ganze
nicht simuliert, zum anderen hat man auch seine eigene Hardware, die man
so debuggen kann.

ciao, Stefan.

Autor: Hannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Stefan:
>>Im den Mega16 kann man mit dem JTAG Interface seine Programme
innerhalb
der Hardware debuggen

Was bedeutet "innerhalb der Hardware debuggen"?

MfG

Autor: Stefan May (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na Du lötest den Chip auf die Platine mit dem ganzen anderen Geraffel,
was Du so brauchst. Mit dem ISP-Adapter kannst Du jetzt nur
programmieren und hoffen, daß alles funktioniert. Wenn nicht, dann viel
Spaß beim raten, wo er gerade hängt. Mit JTAG kannst Du den Prozessor
anhalten, Register auslesen, Breakpoints setzen usw. Alles was man zum
debuggen so braucht. Und das ohne Simulation, sondern mit Deiner
Schaltung.

ciao, Stefan.

Autor: John (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
klingt ja hoch interessant ! In welchen formen kann man den breakpoints
setzen ? Gibt es eine art assembler befehl, der einen break auslöst ?
Oder wie kann ich die CPU anhalten ?

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon mal den AVR Studio Simulator angeworfen? Genau so. Nur eben als
Interface nicht den Simulator sondern ICE auswählen.

Autor: John (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es auch eine möglickeit anzuzeigen, welcher c code gerade
ausgefügrt wird ?

also z.B.
Im AVR Studio:

-------wirte_mmc(a,c);
mov a, b
add a, 0x2
mul a, ax  <-- Breakpoint
mox b, c

...
(ist jetzt natürlich frei erfunden)
oder kann ich nur asm anzeigen ? dann ist es ja relativ schwer die
richtige stelle im Programm zu finden weil man sich an nicht
srientieren kann.

MfG

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Herrje, jetzt probier's halt mal aus.

Testprogramm mit WinAVR bauen. Im AVR Studio das ELF File laden, den
Debugger mit Simulator anwerfen und damit rumspielen. Notfalls sogar
mal Doku lesen. Beantwortet wohl mehr Fragen als Du hier stellen
kannst.

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.