Forum: Compiler & IDEs JTAGICE3 und avarice unter Windows 10


von Julian R. (julianr)


Lesenswert?

Hallo zusammen,

ich versuche mich gerade von Atmel Studio zu lösen da das scheinbar mit 
jeder Version aufgeblähter und verbuggter wird. Allerdings würde ich 
gerne meinen JTAGICE3 debugger weiter nutzten.
Dazu habe ich die aktuelle trunk version von avarice (AVaRICE version 
2.13svn20160229) mittels cygwin kompiliert (inkl. hid lib). Allerdings 
bekomme ich das ganze nicht zum laufen. Ich habe versucht einfach mal 
zum Test die Fuse Bits zu lesen:
1
$ ./avarice.exe -4 -r -P atmega328p
2
AVaRICE version 2.13svn20160229, Dec 29 2016 14:59:12
3
4
Defaulting JTAG bitrate to 250 kHz.
5
6
JTAG config starting.
7
Found a device, serial number: J30200015606
8
initJtagBox() failed: no answer from target

Hat jemand eine Idee was das sein könnte? Die Firmware des JTAGICE3 ist 
laut Atmel Studio 3.34. Ein Hardwareporblem schließe ist aus. Wenn ich 
den Standard HID Treiber durch LibUSB ersetzte kann ich mit avrdude 
problemlos flashen. In Atmel Studio direkt gehts auch.

Zur Vollständigkeit hier mal der komplette Debug Output:
1
$ ./avarice.exe -4 -r -P atmega328p -d
2
AVaRICE version 2.13svn20160229, Dec 29 2016 14:59:12
3
4
Defaulting JTAG bitrate to 250 kHz.
5
6
Found HID PID:VID 0x03eb:0x2140, serno J30200015606
7
Probing for HID max. packet size
8
Setting max. packet size to 512 from DAP_Info
9
HID thread startedJTAG config starting.
10
11
12
command "sign-on" [0x01, 0x10]
13
0E 00 00 00 01 10 00
14
Received 0x81 0x11 0x00 0x06 0x0e 0x00
15
read:  0e 00 00 01 80 00
16
17
Got message seqno 0 (command_sequence == 0)
18
response: 01 80 00
19
20
command "get info (serial number)" [0x00, 0x00]
21
0E 00 01 00 00 00 00 81
22
Received 0x81 0x11 0x00 0x12 0x0e 0x01
23
read:  0e 01 00 00 81 00 4a 33 30 32 30 30 30 31 35 36 30 36
24
25
Got message seqno 1 (command_sequence == 1)
26
response: 00 81 00 4A 33 30 32 30 30 30 31 35 36 30 36
27
Found a device, serial number: J30200015606
28
29
command "get parameter" [0x01, 0x02]
30
0E 00 02 00 01 02 00 00 00 05
31
Received 0x81 0x11 0x00 0x0c 0x0e 0x02
32
read:  0e 02 00 01 84 01 02 03 34 74 00 00
33
34
Got message seqno 2 (command_sequence == 2)
35
response: 01 84 01 02 03 34 74 00 00
36
ICE hardware version: 2
37
ICE firmware version: 3.52 (rel. 116)
38
39
command "set parameter" [0x12, 0x01]
40
0E 00 03 00 12 01 00 00 00 01 02
41
Received 0x81 0x11 0x00 0x06 0x0e 0x03
42
read:  0e 03 00 12 80 00
43
44
Got message seqno 3 (command_sequence == 3)
45
response: 12 80 00
46
47
command "set parameter" [0x12, 0x01]
48
0E 00 04 00 12 01 00 00 01 01 02
49
Received 0x81 0x11 0x00 0x06 0x0e 0x04
50
read:  0e 04 00 12 80 00
51
52
Got message seqno 4 (command_sequence == 4)
53
response: 12 80 00
54
55
command "set parameter" [0x12, 0x01]
56
0E 00 05 00 12 01 00 01 00 01 04
57
Received 0x81 0x11 0x00 0x06 0x0e 0x05
58
read:  0e 05 00 12 80 00
59
60
Got message seqno 5 (command_sequence == 5)
61
response: 12 80 00
62
63
command "AVR sign-on" [0x12, 0x10]
64
0E 00 06 00 12 10 00 00
65
Received 0x81 0x11 0x00 0x07 0x0e 0x06
66
read:  0e 06 00 12 a0 00 20
67
68
Got message seqno 6 (command_sequence == 6)
69
response: 12 A0 00 20
70
initJtagBox() failed: no answer from target
71
72
command "sign-off" [0x01, 0x11]
73
0E 00 07 00 01 11 00
74
Received 0x81 0x11 0x00 0x06 0x0e 0x07
75
read:  0e 07 00 01 80 00
76
77
Got message seqno 7 (command_sequence == 7)
78
response: 01 80 00

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


Lesenswert?

Debuggen über HID-angebundene ICEs in AVaRICE steckt nach wie vor
eher in den Kinderschuhen, und ich habe nicht Zeit und Nerven
gefunden, da in letzter Zeit viel dran zu tun – leider.

Da du aber kein Atmel-ICE sondern ein JTAGICE3 hast, könntest du
(mit einer hinreichend alten Studio-Version, müsste 5.x sein) mit
der noch-nicht-HID-Firmware auf dem ICE arbeiten, das sollte
zumindest einigermaßen brauchbar mit AVaRICE funktionieren.

von D a v i d K. (oekel) Benutzerseite


Lesenswert?

Jörg W. schrieb:
> Da du aber kein Atmel-ICE sondern ein JTAGICE3 hast, könntest du
> (mit einer hinreichend alten Studio-Version, müsste 5.x sein) mit
> der noch-nicht-HID-Firmware auf dem ICE arbeiten, das sollte
> zumindest einigermaßen brauchbar mit AVaRICE funktionieren.

Ist diese Aussage immer noch aktuell?

Zumindest das letzte avarice ist ja nach wie vor:
AVaRICE version 2.13svn20160229

Bei Atmel Studion sind wir nun auf Version: 7.0.1931
Welches mir auf den JTAGICE3 FW 3.36 gebracht hat

Nutze Win10 nur wegen dem Flashen der Firmware, möchte sonst mit 
Ubuntu18.04 arbeiten.

Schließt eine FW 3.x die nutzung von "avarice -3" aus?
Komme ich NUR mit einem älteren Atmen Studio an ein Downgrade?
http://microchip.force.com/microchipknowledge/articles/en_US/FAQ/How-to-downgrade-firmware-version-of-the-JTAGICE3-debbuger-so-that-it-can-work-with-IAR-for-AVR
Zeigt auf einen Link, der nicht funktioniert. :(

PS:
Wie ich es hasse wenn Leute ihre Testergebnisse nicht mehr 
veröffentlichen:
https://www.avrfreaks.net/forum/avarice-winavr-not-working-usb-jtagice3
--> User "rasyoung"

: Bearbeitet durch User
von D a v i d K. (oekel) Benutzerseite


Lesenswert?

hier noch meine Terminalausgabe:
1
  ~ avarice -4 -r -P atmega644
2
AVaRICE version 2.13svn20160229, Nov 26 2017 20:43:27
3
4
Defaulting JTAG bitrate to 250 kHz.
5
6
JTAG config starting.
7
Found a device, serial number: J30200010645
8
Reported device ID: 0x960A
9
Configured for device ID: 0x9609 atmega644 -- FORCED with atmega644
10
JTAG config complete.
11
12
Reading Fuse Bytes:
13
  Extended Fuse byte -> 0xff
14
      High Fuse byte -> 0x11
15
       Low Fuse byte -> 0xe2
16
  ~ avarice -3 -r -P atmega644
17
AVaRICE version 2.13svn20160229, Nov 26 2017 20:43:27
18
19
Defaulting JTAG bitrate to 250 kHz.
20
21
did not find any USB device "usb"
22
  ~ bash
23
dk@laptopc6234:~$ avarice -3 -r -P atmega644
24
AVaRICE version 2.13svn20160229, Nov 26 2017 20:43:27
25
26
Defaulting JTAG bitrate to 250 kHz.
27
28
did not find any USB device "usb"
29
dk@laptopc6234:~$

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

D a v i d K. schrieb:
> Jörg W. schrieb:
>> Da du aber kein Atmel-ICE sondern ein JTAGICE3 hast, könntest du
>> (mit einer hinreichend alten Studio-Version, müsste 5.x sein) mit
>> der noch-nicht-HID-Firmware auf dem ICE arbeiten, das sollte
>> zumindest einigermaßen brauchbar mit AVaRICE funktionieren.
>
> Ist diese Aussage immer noch aktuell?

Ja.

> Zumindest das letzte avarice ist ja nach wie vor:
> AVaRICE version 2.13svn20160229

Ich habe schon ewig nichts mehr dran gemacht.

> Bei Atmel Studion sind wir nun auf Version: 7.0.1931
> Welches mir auf den JTAGICE3 FW 3.36 gebracht hat

Das sind alles die neueren Firmware-Versionen, die das Teil als HID 
konfigurieren.

FW 1.x dagegen war noch eine Firmware mit einer Atmel-proprietären 
Schnittstelle, die unter AVaRICE besser unterstützt wird.

> Schließt eine FW 3.x die nutzung von "avarice -3" aus?

Ja.  Mit einem SVN-Build von AVaRICE könntest du "avarice -4" probieren 
für die HID-basierten ICEs, aber das ist nie wirklich bis zu Ende 
implementiert worden und funktioniert mehr schlecht als recht. Das würde 
sowohl für JTAGICE3 mit FW > 1.x als auch ATMELICE passen.

> Komme ich NUR mit einem älteren Atmen Studio an ein Downgrade?

Offiziell ja.

Inoffiziell kann es irgendwie sein, dass man auch neueren Studios eine 
alte Firmware unterjubeln kann, aber das ist zumindest alles nicht 
dokumentiert, und du müsstest natürlich auch erstmal die alte Firmware 
irgendwo her bekommen.

von D a v i d K. (oekel) Benutzerseite


Lesenswert?

Jörg W. schrieb:
>> Ist diese Aussage immer noch aktuell?
>
> Ja.

Danke

> Das sind alles die neueren Firmware-Versionen, die das Teil als HID
> konfigurieren.

Ich habe noch mal die selben Schritte Win10 + AtmelStudio7
- unter einem native
- unter einer VirtualBox (Host Ubuntu 18.04)
zum erstellen einer "Hello Debug" vorgenommen.

In beiden Fällen wird der ICE3 und das Device erkannt.
Beim ersteren springt er die Breakpoints (voll Rot) auch an.
Beim zweiten setzt er sie nicht mals vernünftig (weiß gefüllt) und der 
Marker hängt an der ersten Klammer von der main().

Ich behaupte also mal, dass dort das HID unter Linux einfach nicht 
korrekt implementiert ist. (Gefühlt genau das gleiche Verhalten wie mit 
avarice und avr-gdb ;)

> die alte Firmware
> irgendwo her bekommen.

Welches Atmel Studio hat denn eine 1.x?

Grüße David

von D a v i d K. (oekel) Benutzerseite


Lesenswert?


: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

D a v i d K. schrieb:
> Beim zweiten setzt er sie nicht mals vernünftig (weiß gefüllt) und der
> Marker hängt an der ersten Klammer von der main().

Virtualbox ist miserabel, was die USB-Emulation betrifft.

Probier mal den VMware Player. Ich benutze (gelegentlich) diverse 
Studioversionen mit VMware Workstation (das ist die Bezahlversion, der 
Player ist eine kostenfreie Abrüstversion davon) völlig problemlos, bis 
hin zu Firmwareupgrades (die eine besondere Herausforderung sind, weil 
die Identität des USB-Geräts zwischendurch für den Bootloader 
umgeschaltet wird).

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.