170 likes | 335 Views
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.
E N D
Atmel AVR JTAGEinfü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. • Auf die Widerstände kann bei dem JATAG Interface von www.elekronik-laden.de verzichtet werden!
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.
Programmier Menü • Im AVR Studio durch drücken des Connect Buttons dieses Menü öffnen:
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.
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
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.
DEBUG In 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.
DEBUG-Breakpoints Mit 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.
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.
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.
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 Flash Register: 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.
Debug – IO-View Das 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 Frequency gehen 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.