JTAG Liste, Zugriff auf Register

OP #1001864
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.
Moderator Persönliche Seite #1001879
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren