Hi, Habe einen ATmega64 und eine funktionierende JTAG Verbindung über das JTAG ICE3. Programmiere mit Atmel Studio 6, bin da aber noch ziemlicher Neuling. Kann ich über die JTAG Schnittstelle zur Laufzeit Variablen und Registerinhalte im ATmega einsehen? + Platine läuft + Mikrocontroller läuft + Atmelstudio ist offen + Tools/DeviceProgramming öffnet ein Fenster und stellt eine JTAG Verbingung her ...wie kann ich nun "in den Controller" gucken? geht das überhaupt? Viele Grüße, 006
006 schrieb: > ...wie kann ich nun "in den Controller" gucken? geht das überhaupt? Wenn ich dich richtig vertstehe, nein, das geht nicht. Du kannst einen Breakpoint setzen oder einen Break manuell auslösen. Dann wird das Programm an der Stelle angehalten und du kannst dir alles, was in diesem Kontext gültig und nicht dem Optimierer zum Opfer gefallen ist, ansehen. Zusätzlich kannst du die Optimierung abschalten. Das ist aber auch nicht der Weisheit letzter Schluss. Besonders bei kleinen Controllern. mfg.
:
Bearbeitet durch User
Thomas Eckmann schrieb: > Du kannst einen Breakpoint setzen, dann wird das Programm an der Stelle > angehalten und du kannst dir alles, was in diesem Kontext gültig und > nicht dem Optimierer zum Opfer gefallen ist, ansehen. Man kann natürlich den Programmfluss auch manuell stoppen und sich dann den aktuellen Zustand ansehen. > Zusätzlich kannst du die Optimierung abschalten. Das ist aber auch nicht > der Weisheit letzter Schluss. Insbesondere generiert es einen völlig anderen Code als den, den man eigentlich debuggen wollte. Um sich hie und da mal ein Zwischenergebnis ansehen zu können, ohne dass der Compiler das wegoptimiert, kann man passend ein paar als „volatile“ markierte Variablen anlegen und befüllen. Das ist allemal ein weniger störender Eingriff als die „große Keule“ Optimierung abschalten.
Hi, und danke schonmal. Thomas Eckmann schrieb: > Du kannst einen Breakpoint setzen oder einen Break manuell auslösen. > Dann wird das Programm an der Stelle angehalten und du kannst dir alles, > was in diesem Kontext gültig und nicht dem Optimierer zum Opfer gefallen > ist, ansehen. Wo kann ich mir die Inhalte anzusehen? Jörg Wunsch schrieb: > Um sich hie und da mal ein Zwischenergebnis ansehen zu können, ohne > dass der Compiler das wegoptimiert, kann man passend ein paar als > „volatile“ markierte Variablen anlegen und befüllen. Ok, die Variable ist nun entsprechend deklariert.
1 | volatile uint16_t DatenHL = 0; |
Wie erkenne ich sie und wie kann ich sie über JTAG einsehen?
Jörg Wunsch schrieb: > Man kann natürlich den Programmfluss auch manuell stoppen und sich > dann den aktuellen Zustand ansehen. Steht doch da. Hab ich aber nacheditiert. 006 schrieb: > Ok, die Variable ist nun entsprechend deklariert. Globale Variablen kannst du dir zumeist auch ohne volatile so ansehen. Auf lokale Variablen in einer Funktion oder ISR hast du keinen Zugriff. Die macht man dann zum Debuggen global und volatile oder static. Manchmal muss man auch einen Dummy einbauen (z.B. PORTA = PORTA;), damit man überhaupt einen Breakpoint gesetzt bekommt. Das verändert dann zwar den Programmlauf ein wenig, ist aber immer noch besser als die Optimierung abzuschalten. 006 schrieb: > Wie erkenne ich sie und wie kann ich sie über JTAG einsehen? Indem du mit der Maus draufgehst. Oder mir der rechten Maustaste anklickst und dann "Add watch...". Spiel da einfach ein bisschen mit rum. Dann findest du das schon. Ich hab jetzt keine Lust, eine Bedienungsanleitung zu schreiben. mfg.
:
Bearbeitet durch User
Hi und vielen Dank, habs nun hinbekommen.
Thomas Eckmann schrieb: > Spiel da einfach ein bisschen mit rum. Dann findest du das schon. Ich > hab jetzt keine Lust, eine Bedienungsanleitung zu schreiben. > > mfg. Deine Hilfsbereitschaft in allen Ehren, aber das wäre hart übertrieben. Das ist alles super in der Programmhilfe vom Atmel Studio dokumentiert. "F1" und in der html Hilfe unter dem Punkt "Debugging" weiter zu "QuickWatch, Watch, Locals and Autos Windows" manövrieren. "DataTips" ist auch noch hilfreich. Gibt es sogar auch zusätzlich noch online: http://www.atmel.com/webdoc/atmelstudio/atmelstudio.Debug.html O.K. des Englischen sollte man noch mächtig sein...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.