Avr Jtag Quickstart

Aus Ethersex_Wiki
(Weitergeleitet von AvrJtagQuickstart)
Wechseln zu: Navigation, Suche


Zum Debuggen brauchst Du zunächst natürlich einen USBprog mit JTAGICE mk2 Klon-Firmware. Außerdem müssen avarice und gdb-avr installiert sein (die Pakete in Debian unstable tun's, brauchen keine CVS-Versionen sein)

Die Fuses müssen dann entsprechend auf E0 (lfuse) und D9 (hfuse) angepasst werden (also kein Reset in den Bootloader-Bereich ab 0x7000).

Der JTAG-Adapter sollte sich jetzt outen:

   stesie@wuchtbrumme:~/src/trunk/jtagicemk2klon$ lsusb                                                                 
   Bus 005 Device 006: ID 03eb:2103 Atmel Corp. JTAG ICE mkII 

Nachdem der JTAG-Adapter funktioniert, jetzt mit dem Ziel verbinden (z. B. Ethersex wie unten beschrieben), sicherstellen dass die hfuse JTAG erlaubt und zu guter letzt avarice starten:

   avarice --mkII --jtag usb :4242 

... und dann noch gdb:

   avr-gdb ethersex

... das allein hilft aber noch nichts, wir müssen gdb noch sagen, dass wir remote debuggen wollen. Dazu jetzt noch ein target remote localhost:4242 eingeben, dann kann's los gehen.

Happy debugging :-). Wobei's momentan mit single-stepping bzw. next ein Problem zu geben scheint. Breakpoints setzen und C-c drücken funktioniert aber.

Ethersex anschließen

Eine schöne Zeichnung, die die Adaption von USBprog zum Ethersex darstellt

Usbprog-etherrape.png


Beschreibung PIN PIN Beschreibung
TCK 1 2 VCC
TDO 3 4 -
TMS 5 6 -
- 7 8 -
TDI 9 10 GND

Flashing via JTAG

Man kann den Programmspeicher eines AVRs auch per JTAG schreiben. Mit avarice kann man das wie folgt anstellen:

   avarice --erase --program --file ethersex.bin --jtag usb -2

Links



Nicht mehr gueltig (falls bestätigt, bitte endgültig löschen): Zu beachten ist dabei, dass die Firmware momentan in Kombination mit dem Bootloader nicht funktioniert. Das heißt, bleibt zunächst nur der Workaround des "fest" reinflashens. Zunächst die Binärversion der Firmware herunterladen und mit einem beliebigen Programmieradapter in den ATmega32 schreiben.