Forum: Mikrocontroller und Digitale Elektronik Doku über OnChip-Debugging


von Karlheinz D. (kdruschel)


Angehängte Dateien:

Lesenswert?

Hi Leuts,

ich habe so einige Problemchen beim OnChip-Debuggen.
Ich benutzte GCC und AVR-Studio zusammen mit dem Amtle JTAG-ICE MKII 
(USB).

Wenn ich im Studio das Debuggen starte, dann brauche ich meist bis zu 5 
Versuchen bis er überhaupt mal startet. Er erkennt meist den JTAG-MKII 
nicht, manchmal muss ich den kopmplettenb PC neu starten.  Beim reinen 
Programmieren des Chips habe ich diese Probleme seltsamerweise nicht.

Ich habe auch den Olimex AVR-JTAG-USB, aber da kann ich 
(seltsamerweise?) gar nicht debuggen, den kann ich nur zum programmieren 
nutzen.

Lokale Variablen, die also auf dem Stack liegen, kann ich mir im Watch 
Window nicht anschauen.

Aber ein <uint8_t LgAnswer[10]> Array kann ich mir auch nicht 
anschauen...
Wie soll man denn da vernünftig debuggen ?
Gibts denn irgendwo im Netz vernünftige Infos über den Umgang mit 
AVR-Studio und JTAG-MKII beim Debuggen ?

Greets
Karlheinz

von Karlheinz D. (kdruschel)


Angehängte Dateien:

Lesenswert?

Und schon steht das nächste Problem an:
Laut Watch-Fenster hat die Variable <DataByte> den Wert von 0x00, die If 
Abfrage(if (((DataByte >= 0x20) && (DataByte <= 0x7f)) && p0 < 
SIZE_ANSWER_BUFFER)) müsste also übersprungen werden.
Tatsächlich bleibt der Debugger jedoch am Breakpoint stehen....

Kann man mit dem AVR-Studio denn vernünftig debuggen ?

von M. M. (miszou)


Lesenswert?

Hi

zu der IF Abfrage, ich seh da keinen Fehler.

Abfrage(if (((DataByte >= 0x20) && (DataByte <= 0x7f)) && p0 <
SIZE_ANSWER_BUFFER) geprüft.
Alles was zwischen den Klammern dieser Abfrage wird nicht ausgeführt.

if (DataByte == ETX) wird als nächstes geprüft sobald der nächste 
Schritt nach deinem Breakpoint ausgeführt wird.

Gruß
MISZOU

P.S.: Ich möchte nicht mehr auf mein JTAG verzichten

von Karlheinz D. (kdruschel)


Lesenswert?

Ups, so gesehen hast Du natürlich recht. Sorry für meine Blödheit.
Aber darum gehts mir ja auch nicht, es geht mir nach wie vor um den 
JTAGICE.
Wo kann ich denn beispielsweise mal anchlesen, dass Stackvariablen nicht 
im Watch-Window angezeigt werden können ?
Wo steht, wie ich mir ein INT-Array im RAM anschauen kann ?

Auch Onkel Google hat mir hier nicht wirklich geholfen bisher.......

von M. G. (looking)


Lesenswert?

Wenn Du fürs Debuggen vor einer lokalen Variable "volatile" 
hinschreibst, dann müsste der Wert bei einem Breakpoint innerhalb der 
Funktion angezeigt werden können.

von tom (Gast)


Lesenswert?

...RTFM und kieke mal ob Du die Debug-Plattform und uC-Typ richtig 
eingestellt hast.

Angaben über die version von AVRstudio + Winavr sowie Deine Target-CPU 
wären essentiell.

Wenn Du evtl. einen atmega128 debuggen wollst und auf dem noch die 
atmega103 compatibility-fuse gesetzt ist, haste auch pech.

wie sieht es mit den CLKSEL-fuses aus ? und mit wievielen megahertzen 
schlägt deine uC-HW ?

wenn das alles nun richtig steht und du die richtige 
kommunikationsschnittstelle fürs jtag-ice ausgewählt hast sollte es 
stabil debuggen (es sei denn du hast einen externen watchdog-chip in 
deinem HW-design, der periodisch am Reset zieht weil er nicht getriggert 
wird...).

gruss, tom.

von Karlheinz D. (kdruschel)


Angehängte Dateien:

Lesenswert?

Was heisst "RTFM" ?
Ich habe hier AVR-Studio 4.14, Build 589 und einen ATMega128 mit 16 MHz.
Seit zwei Tagen erkennt das Studio beispielsweise mal wieder nicht den 
Jtag zum Debuggen, aber ein Programm einfach nur in´s Flash brennen geht 
problemlos.
Nach 2-3 erfolglosen Versuchen das Debuggen zu starten, erscheint meist 
im Messagefenster die Meldung "JTAGICE mkII:USB Connection skipped. Each 
Instance of AVR Studio can have only one active USB device at a time".
Dabei läuft das Studio nur einmal!
Ich habe auch schon das OCDEN-Bit getoggelt, bringt aber nichts.

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
Noch kein Account? Hier anmelden.