Forum: Mikrocontroller und Digitale Elektronik JTAG Liste, Zugriff auf Register


von Murphy S. (student-f)


Lesenswert?

Hallo an alle,

ich hoffe, dass ich die Antwort auf meine Frage im Forum nicht übersehen 
habe. Daher hier ein Versuch schlauer zu werden :-)

Ich benutze seit einigen Tagen den JTAG ICE MKII für die AVRS (Des 
Weiteren das STK500 und STK503!; sowie AVR-Studio mit AVR-GCC).

Da ich ja bekanntlich den JTAG-Adapter fürs On-Chip-Debuggen etc. nutzen 
wollte und banale Probs aufgetaucht sind, hier ggf. eine Hilfe von euch!

Nachdem ich schließlich  vor lauter Verzweifelung das sehr magere Manual 
für den JTAG-Adapter gelesen habe, bin ich auf folgende 
(sinngemäße)Aussage gestoßen. "Das Auslesen von Status etc(z.B USART- 
STatus) kann nicht mit Hilfe des JTAG-Adapters geschehen." Daher die 
Frage, wo kriege ich eine Liste her, wo alle auslesbaren Register etc. 
aufgelistet sind ? Oder verstehe ich das magere Manual falsch und ich 
kann doch "alles" auslesen ?


Vielen Dank für eure Mithilfe.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Du kannst alles auslesen, was man auslesen kann, ohne dass sich durch
das Lesen der Zustand des ICs verändert.  Damit kann man beispielsweise
kein UDR lesen -- dadurch würde das Zeichen als ,,abgeholt'' markiert
und der UART-Puffer wieder freigegeben.

Welche IO-Register genau ausgelesen werden können, steht in den
IO-Bitmaps im XML-File.  Da du den STK503 erwähnst, hier mal als
Beispiel die ATmega1280.xml:
1
<!--Bit 0 in byte 0 is I/O location, bit 7 in byte 7 is I/O location 63-->
2
      <ucRead>0xFF,0xFF,0xFF,0xFF,0xFF,0x3D,0xB9,0xF8</ucRead>
3
      <ucWrite>0xFF,0xFF,0x1F,0xE0,0xFF,0x1D,0xA9,0xF8</ucWrite>
4
...
5
<!--Bit 0 in byte 0 is extended I/O location, bit 7 in byte 7 is I/O location 63-->
6
      <ucExtRead>0x73,0xFF,0x3F,0xFF,0xF7,0x3F,0xF7,0x3F,0xF7,0x3F,0x5F,0x3F,0x37,0x37,0x37,0x00,0x00,0x00,0x00,0x00,0xFF,0x0F,
7
0x00,0x00,0xF7, 0x3F, 0x36,0x00</ucExtRead>
8
      <ucExtWrite>0x73,0xFF,0x3F,0xF8,0xF7,0x3F,0xF7,0x3F,0xF7,0x3F,0x5F,0x2F,0x36,0x36,0x36,0x00,0x00,0x00,0x00,0x00,0xFF,0x0F
9
,0x00,0x00,0xF7, 0x3F, 0x36,0x00</ucExtWrite>

Um's zu verdeutlichen, die ucRead-Bitmap enthält folgende IO-Register
nicht :

. 0x29 - reserved
. 0x2E - SPDR
. 0x2F - reserved
. 0x31 - OCDR
. 0x32 - reserved
. 0x35 - MCUCR
. 0x38...0x3A - reserved

Beim Schreiben gibt's noch ein paar Register mehr, die reserviert
sind, und im extended-IO-Bereich noch mehr.

von Murphy S. (student-f)


Lesenswert?

Hi,

wow, das ging ja flott. Danke dir! Damit kann ich dann schon was 
anfangen.

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.