Atmel AVR JTAG Einführung

15
Atmel AVR JTAG Einführung On-Chip-Debug von Thomas Werner

description

Atmel AVR JTAG Einführung. On-Chip-Debug von Thomas Werner. Grundsätzliches. Fast jeder Prozessor der ATmega Serie unterstützt JTAG (siehe Datenblatt). Grundsätzliches. Für eine korrekte Verbindung muss ein Adapter erstellt werden, dabei müsse folgende PINS verbunden werden. - PowerPoint PPT Presentation

Transcript of Atmel AVR JTAG Einführung

Page 1: Atmel AVR JTAG Einführung

Atmel AVR JTAGEinführung

On-Chip-Debug

von Thomas Werner

Page 2: Atmel AVR JTAG Einführung

Grundsätzliches• Fast jeder Prozessor der ATmega Serie unterstützt

JTAG (siehe Datenblatt)

Page 3: Atmel AVR JTAG Einführung

Grundsätzliches

• Für eine korrekte Verbindung muss ein Adapter erstellt werden, dabei müsse folgende PINS verbunden werden.

• Auf die Widerstände kann bei dem JATAG Interface von www.elekronik-laden.de verzichtet werden!

Page 4: Atmel AVR JTAG Einführung

JTAG

• Jeder ATmega wird von Werk aus mit JTAG enabeld ausgeliefert. Falls die Verbindung nicht Zustande kommt, sollte folgendes überprüft werden: – Alle Kabel korrekt angeschlossen?– Wenn die Möglichkeit besteht, kann mit dem STK500

über die serielle Schnittstelle auf die FUSES zugreifen. JTAG muss beides mal gesetzt sein. Die Fuses können auch mit dem JTAG Adapter ausgelesen werden.

– Es kann nachgemessen werden ob die JTAG Fuses gesetzt sind. TMS,TCK und TMI müssen im offenen Zustand Versorgungsspannungs-Niveau haben.

Page 5: Atmel AVR JTAG Einführung
Page 6: Atmel AVR JTAG Einführung

Programmier Menü

• Im AVR Studio durch drücken des Connect Buttons dieses Menü öffnen:

Page 7: Atmel AVR JTAG Einführung

Programmier Menü

• Die oben gezeigten Einstellungen können übernommen werden. Durch drücken des Connect Buttons erscheint folgendes Menü. Hat man alles richtig gemacht kann man jetzt loslegen.

Page 8: Atmel AVR JTAG Einführung

Programmier Menü

• In diesem Menü können folgende Aktionen vorgenommen werden:– Datei im Intel Hex Format in den Controller

laden.– Datei auslesen– µC-Flash löschen– Fuses lesen und schreiben– JTAG Einstellungen

Page 9: Atmel AVR JTAG Einführung

DEBUG

• AVR-Studio öffnen.

• Datei öffnen:– Datei aus Projektverzeichnis in dem

kompiliert wurde laden (z.B. main.elf).– Das AVR-Studio benötigt noch einen Platz, an

dem die main.elf.aps abgespeichert wird. Es handelt sich hierbei um eine Projektdatei von AVR Studio.

Page 10: Atmel AVR JTAG Einführung

DEBUGIn diesem Menü wird JTAG ICE und der benutzte µC ausgewählt.Der Finish Button leitet die Programmierung des µC Speichers ein. Die Spannungsversorgung des µC muss Gewährleistet sein. Das JTAG Modul muss an den PC angeschlossen sein und es darf nicht noch eine Verbindung bestehen z.B. durch einen vorherigen Programmier Vorgang.

Page 11: Atmel AVR JTAG Einführung

DEBUG-BreakpointsMit Breakpoints kann an vorher markierten Stellen das Programm gestoppt werden, die Markierung ist ein roter Kreis, die durch drücken von F9 geändert werden kann. Es können maximal drei Breakpoints gleichzeitig gesetzt werden. Der Code wird zwischen den Breakpoints in realer Geschwindigkeit abgearbeitet.

Page 12: Atmel AVR JTAG Einführung

Debug - Toolbar

Von links nach rechts:Play: Die Speicher des µC werden geladen und danach kann das Programm mit z.B. F5 gestartet werden.Stop: Damit wird der Debug Vorgang abgeschlossen. Danach muss die Software wieder auf den µC geladen werden um erneut zu debuggen.Run(F5):Das Programm wird ausgeführt bis es an ein Breakpoint kommt.Pause: Dieser Knopf wird benötigt falls kein Breakpoint das Programm mehr anhält und man das Programm manuell anhalten will ohne den Speicher Inhalt zu löschen.Reset: Hier kann ein Reset ausgeführt werden und die Programmabarbeitung beginnt wieder von vorn ohne das die Speicher des µC wieder komplett geladen werden müssen.

Page 13: Atmel AVR JTAG Einführung

Debug – Toolbar 2

Von links nach rechts:Step Into: Es wird in Funktionen hinein gesprungen.Step Over: Die Funktion wird in fast realer Geschwindigkeit abgearbeitet.

Probleme gibt es bei delay() Funktionen, hier wird besser mit Breakpoints gearbeitet.

Step Out: Die Funktion in der man ist, wird bis einschließlich dem Rücksprung ausgeführt.

Step to Cursor: Das Programm wird bis zum Cursor ausgeführt.Quick Watch: Mit diesem Tool könne die Variabeln visualisiert werden.

Page 14: Atmel AVR JTAG Einführung

Debug – Speicher

Menü-View-Memory:Hier kann man sich alle Speicher des µC anschauen.Data: SRAM der für Variablen benutzt werden kann und in denen der Stack steht.Program: Programmspeicher FlashRegister: Untere SRAM Adressbereich, kann man sich aber viel schöner im IO-View

anschauen.Rote Zahlen zeigen an, das sich in der Speicherzelle etwas verändert hat seit dem letzten aktualisieren.

Page 15: Atmel AVR JTAG Einführung

Debug – IO-ViewDas IO-View Fenster kann sehr intuitiv bedient werden falls doch noch fragen entstehen, die Hilfe von AVR Studio lesen.

Bemerkungen:

Es werden erst Änderungen sichtbar wenn der µC angehalten wird. Änderungen erscheinen wieder in rot.

Cycle Counter, Stop Watch und Frequencygehen leider nur im Simulator nicht im

Debug-Modus.

Die weitere Registerkarte in diesem Fenster „Project“ ist sehr nützlich, wenn das eigene Programm aus mehreren Files besteht und man die Breakpoints in diesen Files verteilen muss.