Forum: Mikrocontroller und Digitale Elektronik JTAGICE MKII/ Fehler beim Debuggen


von Greenhorn (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich bin gerade dabei ein Programm zu schreiben und möchte mit Hilfe 
eines JTAGICE MKII gern debuggen. Ich habe einen kurzen Quellcode 
geschrieben und anschließend debugged um den JTAG zu erproben.

Doch leider funktioniert das Debuggen nicht zu 100%. Eingige Register 
werden richtig beschrieben, andere hingegen nicht. Meine Frage lautet, 
habe ich irgendwas bei der Einstellung des JTAGICE MKII vergessen?

Vielen Dank für hilfreiche Ideen.

von Hendrik (Gast)


Lesenswert?

>Eingige Register werden richtig beschrieben, andere hingegen nicht.

Könntest Du das auch etwas genauer beschreiben? Falls es dich wundern 
sollte, dass in UDR 0x00 angezeigt wird: Der gelbe Pfeil bedeutet, dass 
dieser Befehl ALS NÄCHSTES ausgeführt wird. Mache also einfach einen 
Einzelschritt und t wird nach UDR geschrieben.

von Greenhorn (Gast)


Lesenswert?

Hallo,

mich verwundert die Tatsache, dass die Register URRH und das Register 
UCSRC nicht den entsprechenden Wert nach dem Durchlauf im Einzelschritt 
annehmen. Das Register UBRRL und das Register UCSRB nehmen die von mir 
gewollten Werte an. Das verwundert mich etwas.

Greenhorn

von holger (Gast)


Lesenswert?

The UBRRH Register shares the same I/O location as the UCSRC Register. 
See the
“Accessing UBRRH/UCSRC Registers” on page 152 section which describes 
how to
access this register.
• Bit 15 – URSEL: Register Select
This bit selects between accessing the UBRRH or the UCSRC Register. It 
is read as
zero when reading UBRRH. The URSEL must be zero when writing the UBRRH.

von Nico W. (Firma: privat) (redmouse)


Lesenswert?

Waer hilfreich mal die Nummer vom AVR zu haben, wegen dem Datenblatt um 
ganz sicher zu sein..

In avr-gcc gibts die Moeglichkeit beide 8-Bit Register auf einmal zu 
beschreiben, glaube UBRRW heisst das Register dann (guck mal in der 
include datei fuer deinen AVR nach). Versuchs doch mal damit.
1
UBRRW = *irgendwas kleiner oder gleich 1041*
Zudem kennt mein ATmega1281 Datenblatt (was ich grad zur Hand habe) fuer 
UBRR maximal 1041 als Wert..
Deine 11 im H und 23 im L ergeben 2839.

Die Zeile fuer 8 data und 2 stop Bits lautet zudem:
1
UCSRC = (1<<USBS0)|(1<<UCSZ01)|(1<<UCSZ00);
Desweiteren kann ich kein URSEL-Bit finden in UCSRC.. nur 2 UMSEL-Bits.
Fehlt wieder mal das Datanblatt fuer deinen AVR um sicher zu sein..

Gruesse

von Greenhorn (Gast)


Lesenswert?

Hallo,

ich verwende den Controller ATmega32L und die Codezeilen sind direkt aus 
dem Datenblatt entnommen. Ich habe die Register nochmals geprüft, es 
sollte eigentlich aus Softwaresicht ok sein.

Greenhorn

von Greenhorn (Gast)


Lesenswert?

Hallo,

zumindest wenn ich den Simulator verwende, klappt die Einstellung der 
Register richtig.

Greenhorn

von Nico W. (Firma: privat) (redmouse)


Lesenswert?

Hm.. also laut Datenblatt scheint das mit URSEL zu stimmen..

Bleibt nur uebrig:

1) der Wert fuer deine gewaehlte Baudrate kommt nicht vor und wird von 
was auch immer fuer das H register nicht akzeptiert..
Guck nochmal bei den waehlbaren Baudratesettings nach (Punkt 19.12) und 
such dir einen gelaeufigen Wert raus.. zB. fuer 2.400 baud bei 8MHz =>
1
UBRRW = 207

2) die Answeisung '(3<<UCSZ0)' kommt mir komisch vor.. fuer 8 Bit musst 
du stattdessen
1
(1<<UCSZ1)|(1<<UCSZ0)
 nehmen.. siehe Tabelle 19-7.

Mehr weiss ich nicht.
Over und aus.

von Greenhorn (Gast)


Lesenswert?

Leider ist es das auch nicht... schade

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.