Forum: Compiler & IDEs AVR JTAGICE mkII mit Eclipse, gdb timeout


von Tom S. (tomsawer)


Angehängte Dateien:

Lesenswert?

Hallo!

Bin nun einiges Weiter, den AVR JTAGICE mkII mit Eclipse unter Linux 
Mint 13 (ähnlich wie ubuntu) zum laufen zu bringen. Aber den letzten 
Move schaffe ich einfach nicht...

--------------- Konfiguration -----------

Ich habe alles nach dieser Anleitung eingerichtet:
Avaice:
http://avr-eclipse.sourceforge.net/wiki/index.php/Debugging#AVaRICE_2
Das läuft! Der Server ist unter 4242 erreichbar, beim Gerät geht die ein 
LED aus wenn ich Ihn gestartet habe.

"GDB Hardware Debugging" hab ich auch nach dieser Anleitung 
eingerichtet... kommt gleich dahinter
http://avr-eclipse.sourceforge.net/wiki/index.php/Debugging#GDB_Hardware_Debugging

-------------- Start Debug ----------------

Wenn ich das ganze starte springt Eclipse in die Debug-Ansicht wie auf 
dem ersten Angehängten Screenshot zu sehen.

Dort hängt er dann bei 94% fest. Am JTAGICE mkII blinkt die eine LED. 
Scheint Probleme bei der Kontaktaufnahme zu haben!
JTAG ist enabled bei Fusebits.

wenn ich abbreche (kleines rotes Quadrat) spuckt er noch diese Ausgabe 
aus:
1
AVaRICE version 2.10, Feb  8 2010 07:22:54
2
3
Defaulting JTAG bitrate to 250 kHz.
4
5
JTAG config starting.
6
Found a device: JTAGICEmkII
7
Serial number:  00:b0:00:00:34:27
8
Reported JTAG device ID: 0x9502
9
Configured for device ID: 0x9502 atmega32
10
JTAG config complete.
11
Preparing the target device for On Chip Debugging.
12
13
Disabling lock bits:
14
  LockBits -> 0xff
15
16
Enabling on-chip debugging:
17
  Extended Fuse byte -> 0xe1
18
      High Fuse byte -> 0x19
19
       Low Fuse byte -> 0xe1
20
Waiting for connection on port 4242.
21
Connection opened by host 127.0.0.1, port 54448.
22
gdb exited.
23
AVaRICE version 2.10, Feb  8 2010 07:22:54
24
25
Defaulting JTAG bitrate to 250 kHz.

Vom Gefühl her würde cih sagen, das nicht die richtige hex in den 
Controler geladen ist, und das JTAG-Teile daher vergebens versucht mit 
diesem KOntakt auf zu nehmen. Aber ich hab leider zu wenig überblick und 
Ahnung, als das ich wüsste, wie ich da weiter mache.
Bitte helft mir!

von Tom S. (tomsawer)


Lesenswert?

LOG Daten, wenn ich den avarice server starte:
1
Found JTAG ICE, serno: 00B000003427
2
Attempting synchronisation at bitrate 19200
3
4
command[0x01, 1]: 01 
5
recv: 0x1b
6
recv: 0x00
7
recv: 0x00
8
recv: 0x1c
9
recv: 0x00
10
recv: 0x00
11
recv: 0x00
12
recv: 0x0e
13
sDATA: reading 28 bytes
14
read:  86 01 ff 19 07 00 ff 19 07 01 00 b0 00 00 34 27 4a 54 41 47 49 43 45 6d 6b 49 49 00
15
recv: 0x9e
16
recv: 0x5e
17
CRC OK
18
Got message seqno 0 (command_sequence == 0)
19
response: 86 01 FF 19 07 00 FF 19 07 01 00 B0 00 00 34 27 4A 54 41 47 49 43 45 6D 6B 49 49 00 
20
JTAG ICE mkII sign-on message:
21
Communications protocol version: 1
22
M_MCU:
23
  boot-loader FW version:        255
24
  firmware version:              7.25
25
  hardware version:              0
26
S_MCU:
27
  boot-loader FW version:        255
28
  firmware version:              7.25
29
  hardware version:              1
30
31
command[0x02, 1]: 02 03 01 
32
recv: 0x1b
33
recv: 0x01
34
recv: 0x00
35
recv: 0x01
36
recv: 0x00
37
recv: 0x00
38
recv: 0x00
39
recv: 0x0e
40
sDATA: reading 1 bytes
41
read:  80
42
recv: 0xcd
43
recv: 0x83
44
CRC OK
45
Got message seqno 1 (command_sequence == 1)
46
response: 80 
47
48
command[0x0a, 1]: 0A 01 
49
recv: 0x1b
50
recv: 0x02
51
recv: 0x00
52
recv: 0x01
53
recv: 0x00
54
recv: 0x00
55
recv: 0x00
56
recv: 0x0e
57
sDATA: reading 1 bytes
58
read:  80
59
recv: 0x1d
60
recv: 0x09
61
CRC OK
62
Got message seqno 2 (command_sequence == 2)
63
response: 80 
64
Automatic device detection: 
65
command[0x03, 1]: 03 0E 
66
recv: 0x1b
67
recv: 0xff
68
recv: 0xff
69
recv: 0x06
70
recv: 0x00
71
recv: 0x00
72
recv: 0x00
73
recv: 0x0e
74
sDATA: reading 6 bytes
75
read:  e0 00 00 00 00 00
76
recv: 0x4e
77
recv: 0x2d
78
CRC OK
79
Got message seqno 65535 (command_sequence == 3)
80
81
got asynchronous event: 0xe0
82
recv: 0x1b
83
recv: 0x03
84
recv: 0x00
85
recv: 0x05
86
recv: 0x00
87
recv: 0x00
88
recv: 0x00
89
recv: 0x0e
90
sDATA: reading 5 bytes
91
read:  81 3f 20 50 89
92
recv: 0xb3
93
recv: 0xdd
94
CRC OK
95
Got message seqno 3 (command_sequence == 3)
96
response: 81 3F 20 50 89 
97
JTAG id = 0x8950203F : Ver = 0x8 : Device = 0x9502 : Manuf = 0x1f
98
99
command[0x0c, 1]: 0C FF 6F FF FF FE FF FD FF 00 00 00 00 01 00 00 00 8F 26 B6 FD FE FF BD FA 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 31 57 00 80 00 04 00 3F 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3E 3D 00 01 00 00 01 00 00 01 00 60 00 00 00 00 00 1C 00 
100
recv: 0x1b
101
recv: 0x04
102
recv: 0x00
103
recv: 0x01
104
recv: 0x00
105
recv: 0x00
106
recv: 0x00
107
recv: 0x0e
108
sDATA: reading 1 bytes
109
read:  80
110
recv: 0xac
111
recv: 0x14
112
CRC OK
113
Got message seqno 4 (command_sequence == 4)
114
response: 80 
115
116
command[0x02, 1]: 02 07 15 
117
recv: 0x1b
118
recv: 0x05
119
recv: 0x00
120
recv: 0x01
121
recv: 0x00
122
recv: 0x00
123
recv: 0x00
124
recv: 0x0e
125
sDATA: reading 1 bytes
126
read:  80
127
recv: 0x13
128
recv: 0x95
129
CRC OK
130
Got message seqno 5 (command_sequence == 5)
131
response: 80 
132
133
command[0x14, 1]: 14 
134
recv: 0x1b
135
recv: 0x06
136
recv: 0x00
137
recv: 0x01
138
recv: 0x00
139
recv: 0x00
140
recv: 0x00
141
recv: 0x0e
142
sDATA: reading 1 bytes
143
read:  80
144
recv: 0xc3
145
recv: 0x1f
146
CRC OK
147
Got message seqno 6 (command_sequence == 6)
148
response: 80 
149
jtagRead 
150
command[0x05, 1]: 05 B3 01 00 00 00 00 00 00 00 
151
recv: 0x1b
152
recv: 0x07
153
recv: 0x00
154
recv: 0x02
155
recv: 0x00
156
recv: 0x00
157
recv: 0x00
158
recv: 0x0e
159
sDATA: reading 2 bytes
160
read:  82 ff
161
recv: 0xd3
162
recv: 0x2d
163
CRC OK
164
Got message seqno 7 (command_sequence == 7)
165
response: 82 FF 
166
jtagRead 
167
command[0x05, 1]: 05 B2 03 00 00 00 00 00 00 00 
168
recv: 0x1b
169
recv: 0x08
170
recv: 0x00
171
recv: 0x04
172
recv: 0x00
173
recv: 0x00
174
recv: 0x00
175
recv: 0x0e
176
sDATA: reading 4 bytes
177
read:  82 e1 19 e1
178
recv: 0x67
179
recv: 0x16
180
CRC OK
181
Got message seqno 8 (command_sequence == 8)
182
response: 82 E1 19 E1 
183
184
command[0x15, 1]: 15 
185
recv: 0x1b
186
recv: 0x09
187
recv: 0x00
188
recv: 0x01
189
recv: 0x00
190
recv: 0x00
191
recv: 0x00
192
recv: 0x0e
193
sDATA: reading 1 bytes
194
read:  80
195
recv: 0x71
196
recv: 0xae
197
CRC OK
198
Got message seqno 9 (command_sequence == 9)
199
response: 80 
200
201
command[0x0b, 1]: 0B 01 
202
recv: 0x1b
203
recv: 0x0a
204
recv: 0x00
205
recv: 0x01
206
recv: 0x00
207
recv: 0x00
208
recv: 0x00
209
recv: 0x0e
210
sDATA: reading 1 bytes
211
read:  80
212
recv: 0xa1
213
recv: 0x24
214
CRC OK
215
Got message seqno 10 (command_sequence == 10)
216
response: 80 
217
Waiting for input.
218
recv: 0x1b
219
recv: 0xff
220
recv: 0xff
221
recv: 0x06
222
recv: 0x00
223
recv: 0x00
224
recv: 0x00
225
recv: 0x0e
226
sDATA: reading 6 bytes
227
read:  e0 00 00 00 00 00
228
recv: 0x4e
229
recv: 0x2d
230
CRC OK
231
command[0x02, 1]: 02 09 00 
232
recv: 0x1b
233
recv: 0x0b
234
recv: 0x00
235
recv: 0x01
236
recv: 0x00
237
recv: 0x00
238
recv: 0x00
239
recv: 0x0e
240
sDATA: reading 1 bytes
241
read:  80
242
recv: 0x1e
243
recv: 0xa5
244
CRC OK
245
Got message seqno 11 (command_sequence == 11)
246
response: 80 
247
248
command[0x0b, 1]: 0B 01 
249
recv: 0x1b
250
recv: 0x0c
251
recv: 0x00
252
recv: 0x01
253
recv: 0x00
254
recv: 0x00
255
recv: 0x00
256
recv: 0x0e
257
sDATA: reading 1 bytes
258
read:  80
259
recv: 0x10
260
recv: 0x39
261
CRC OK
262
Got message seqno 12 (command_sequence == 12)
263
response: 80 
264
Waiting for input.
265
recv: 0x1b
266
recv: 0xff
267
recv: 0xff
268
recv: 0x06
269
recv: 0x00
270
recv: 0x00
271
recv: 0x00
272
recv: 0x0e
273
sDATA: reading 6 bytes
274
read:  e0 00 00 00 00 00
275
recv: 0x4e
276
recv: 0x2d
277
CRC OK

von Tom S. (tomsawer)


Lesenswert?

Und wenn ich den AVR-GDB starte kommt dieser log:
1
GDB: <qSupported:qRelocInsn+>
2
->GDB: 
3
GDB: <Hg0>
4
->GDB: 
5
GDB: <?>
6
->GDB: S05
7
GDB: <Hc-1>
8
->GDB: 
9
GDB: <qC>
10
->GDB: 
11
GDB: <qAttached>
12
->GDB: 
13
GDB: <g>
14
15
GDB: (Registers)Read 32 bytes from 0x800000
16
jtagRead 
17
command[0x05, 1]: 05 20 20 00 00 00 00 00 00 00 
18
recv: 0x1b
19
recv: 0x0d
20
recv: 0x00
21
recv: 0x21
22
recv: 0x00
23
recv: 0x00
24
recv: 0x00
25
recv: 0x0e
26
sDATA: reading 33 bytes
27
read:  82 20 ff 00 ff 01 ff ff ff 00 00 ff 00 00 ff ff ff 86 00 20 40 00 06 00 00 00 00 c8 42 57 00 00 00
28
recv: 0xda
29
recv: 0x7d
30
CRC OK
31
Got message seqno 13 (command_sequence == 13)
32
response: 82 20 FF 00 FF 01 FF FF FF 00 00 FF 00 00 FF FF FF 86 00 20 40 00 06 00 00 00 00 C8 42 57 00 00 00 
33
jtagRead 
34
command[0x05, 1]: 05 20 03 00 00 00 5D 00 00 00 
35
recv: 0x1b
36
recv: 0x0e
37
recv: 0x00
38
recv: 0x04
39
recv: 0x00
40
recv: 0x00
41
recv: 0x00
42
recv: 0x0e
43
sDATA: reading 4 bytes
44
read:  82 00 00 00
45
recv: 0x63
46
recv: 0x04
47
CRC OK
48
Got message seqno 14 (command_sequence == 14)
49
response: 82 00 00 00 
50
51
command[0x07, 1]: 07 
52
recv: 0x1b
53
recv: 0x0f
54
recv: 0x00
55
recv: 0x05
56
recv: 0x00
57
recv: 0x00
58
recv: 0x00
59
recv: 0x0e
60
sDATA: reading 5 bytes
61
read:  84 00 00 00 00
62
recv: 0x73
63
recv: 0xc3
64
CRC OK
65
Got message seqno 15 (command_sequence == 15)
66
response: 84 00 00 00 00 
67
PC = 0
68
->GDB: 20ff00ff01ffffff0000ff0000ffffff86002040000600000000c8425700000000000000000000
69
GDB: <qTStatus>
70
->GDB: 
71
GDB: <X0,0:>
72
->GDB: 
73
GDB: <M0,20:0c942a000c943f000c943f000c943f000c943f000c943f000c943f000c943f00>
74
75
GDB: Write 32 bytes to 0x0
76
jtagWrite Detected GDB "load" command, erasing flash.
77
78
command[0x13, 1]: 13 
79
recv: 0x1b
80
recv: 0x10
81
recv: 0x00
82
recv: 0x01
83
recv: 0x00
84
recv: 0x00
85
recv: 0x00
86
recv: 0x0e
87
sDATA: reading 1 bytes
88
read:  80
89
recv: 0x0a
90
recv: 0x59
91
CRC OK
92
Got message seqno 16 (command_sequence == 16)
93
response: 80 
94
95
command[0x04, 1]: 04 A0 20 00 00 00 00 00 00 00 0C 94 2A 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 
96
recv: timeout
97
98
command[0x04, 2]: 04 A0 20 00 00 00 00 00 00 00 0C 94 2A 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 
99
recv: 0x1b
100
recv: 0x11
101
recv: 0x00
102
recv: 0x01
103
recv: 0x00
104
recv: 0x00
105
recv: 0x00
106
recv: 0x0e
107
sDATA: reading 1 bytes
108
read:  80
109
recv: 0xb5
110
recv: 0xd8
111
CRC OK
112
Got message seqno 17 (command_sequence == 17)
113
response: 80 
114
->GDB: OK
115
GDB: <M20,20:0c943f000c943f000c943f000c943f000c943f000c943f000c943f000c943f00>
116
117
GDB: Write 32 bytes to 0x20
118
jtagWrite 
119
command[0x04, 1]: 04 A0 20 00 00 00 20 00 00 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 
120
recv: 0x1b
121
recv: 0x11
122
recv: 0x00
123
recv: 0x01
124
recv: 0x00
125
recv: 0x00
126
recv: 0x00
127
recv: 0x0e
128
sDATA: reading 1 bytes
129
read:  80
130
recv: 0xb5
131
recv: 0xd8
132
CRC OK
133
Got message seqno 17 (command_sequence == 18)
134
135
got wrong sequence number, 17 != 18
136
recv: timeout
137
138
command[0x04, 2]: 04 A0 20 00 00 00 20 00 00 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 
139
recv: 0x1b
140
recv: 0x12
141
recv: 0x00
142
recv: 0x01
143
recv: 0x00
144
recv: 0x00
145
recv: 0x00
146
recv: 0x0e
147
sDATA: reading 1 bytes
148
read:  80
149
recv: 0x65
150
recv: 0x52
151
CRC OK
152
Got message seqno 18 (command_sequence == 18)
153
response: 80 
154
->GDB: OK
155
GDB: <M40,20:0c943f000c943f000c943f000c943f000c943f0011241fbecfe5d8e0debfcdbf>
156
157
GDB: Write 32 bytes to 0x40
158
jtagWrite 
159
command[0x04, 1]: 04 A0 20 00 00 00 40 00 00 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 11 24 1F BE CF E5 D8 E0 DE BF CD BF 
160
recv: 0x1b
161
recv: 0x12
162
recv: 0x00
163
recv: 0x01
164
recv: 0x00
165
recv: 0x00
166
recv: 0x00
167
recv: 0x0e
168
sDATA: reading 1 bytes
169
read:  80
170
recv: 0x65
171
recv: 0x52
172
CRC OK
173
Got message seqno 18 (command_sequence == 19)
174
175
got wrong sequence number, 18 != 19
176
recv: timeout
177
178
command[0x04, 2]: 04 A0 20 00 00 00 40 00 00 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 11 24 1F BE CF E5 D8 E0 DE BF CD BF 
179
recv: 0x1b
180
recv: 0x13
181
recv: 0x00
182
recv: 0x01
183
recv: 0x00
184
recv: 0x00
185
recv: 0x00
186
recv: 0x0e
187
sDATA: reading 1 bytes
188
read:  80
189
recv: 0xda
190
recv: 0xd3
191
CRC OK
192
Got message seqno 19 (command_sequence == 19)
193
response: 80 
194
->GDB: OK
195
GDB: <M60,20:10e0a0e6b0e0ecebfce002c005900d92a836b107d9f70e9441000c945c060c94>
196
197
GDB: Write 32 bytes to 0x60
198
jtagWrite 
199
command[0x04, 1]: 04 A0 20 00 00 00 60 00 00 00 10 E0 A0 E6 B0 E0 EC EB FC E0 02 C0 05 90 0D 92 A8 36 B1 07 D9 F7 0E 94 41 00 0C 94 5C 06 0C 94 
200
recv: 0x1b
201
recv: 0x13
202
recv: 0x00
203
recv: 0x01
204
recv: 0x00
205
recv: 0x00
206
recv: 0x00
207
recv: 0x0e
208
sDATA: reading 1 bytes
209
read:  80
210
recv: 0xda
211
recv: 0xd3
212
CRC OK
213
Got message seqno 19 (command_sequence == 20)
214
215
got wrong sequence number, 19 != 20

von Tom S. (tomsawer)


Lesenswert?

Interessante Stellen sind evtl:
1
command[0x04, 1]: 04 A0 20 00 00 00 00 00 00 00 0C 94 2A 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 
2
recv: timeout

Die Blöcke danach wiederholen sich dann als endlosschleife
1
command[0x04, 2]: 04 A0 20 00 00 00 20 00 00 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 
2
recv: 0x1b
3
recv: 0x12
4
recv: 0x00
5
recv: 0x01
6
recv: 0x00
7
recv: 0x00
8
recv: 0x00
9
recv: 0x0e
10
sDATA: reading 1 bytes
11
read:  80
12
recv: 0x65
13
recv: 0x52
14
CRC OK
15
Got message seqno 18 (command_sequence == 18)
16
response: 80 
17
->GDB: OK
18
GDB: <M40,20:0c943f000c943f000c943f000c943f000c943f0011241fbecfe5d8e0debfcdbf>
19
20
GDB: Write 32 bytes to 0x40
21
jtagWrite 
22
command[0x04, 1]: 04 A0 20 00 00 00 40 00 00 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 0C 94 3F 00 11 24 1F BE CF E5 D8 E0 DE BF CD BF 
23
recv: 0x1b
24
recv: 0x12
25
recv: 0x00
26
recv: 0x01
27
recv: 0x00
28
recv: 0x00
29
recv: 0x00
30
recv: 0x0e
31
sDATA: reading 1 bytes
32
read:  80
33
recv: 0x65
34
recv: 0x52
35
CRC OK
36
Got message seqno 18 (command_sequence == 19)
37
38
got wrong sequence number, 18 != 19
39
recv: timeout

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


Lesenswert?

Ja, etwas ähnliches hat gestern jemand auf der AVaRICE-Liste
berichtet.  Ist mir nicht klar, ob das nun ein Problem der relativ
neuen Firmware ist oder eher ein USB-Problem des benutzten Linux.
Die timeouts sind auf jeden Fall suspekt.

Ideal wäre es natürlich, wenn das mal jemand, der davon betroffen
ist, mit einem USB-Tracer analysieren könnte.

p.s.: Lange Dateien besser als Anhänge posten, am besten mit dem Suffix
.txt.

von Tom S. (tomsawer)


Lesenswert?

Danke für den Hinweis Jörg!

Dies ist mein erstes JTAG device überhaupt. Ich hab gleich die neue 
Firmware mit AVR-Studio drauf gespielt, um mir potentielle Fehler zu 
ersparen -> ist dann wohl nach hinten los gegangen wenn es mit der alten 
geht.

Wo denkst du ist die Zeit am besten angelegt:
- Virtual Machine und AVR Studio nutzen (Habe gelesen das die Xmegas 
bisher fast gar nicht von avarice unterstützt werden)
- ein anderes Linux ausprobieren? Wenn ja welches?
- Firmware downgraden
- mk2 verklopppen und anderes JTAG interface zum laufen bringen


Ich habs dennoch zum laufen gebracht... --jtag-bitrate hoch gefahren. 
Nach etlichen Fehlermeldung kriegt sich der gdb dann ein.
Jedoch werden die Register falsch ausgelesen. Das Programm läuft, die 
Breakpoints stimmen.

Kann man irgendwo die avarice timings ändern?

Herzliche Grüße! Tom

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


Lesenswert?

Tom Sawer schrieb:

> Dies ist mein erstes JTAG device überhaupt. Ich hab gleich die neue
> Firmware mit AVR-Studio drauf gespielt, um mir potentielle Fehler zu
> ersparen -> ist dann wohl nach hinten los gegangen wenn es mit der alten
> geht.

Es muss nicht an der Firmware liegen!  Ich habe auf jeden Fall
schon 7.xer Firmware benutzt, allerdings noch geringfügig ältere
(AVR Studio 5.x statt Atmel Studio 6.x).

> Wo denkst du ist die Zeit am besten angelegt:
> - Virtual Machine und AVR Studio nutzen

Kannste vergessen, geht komplett nach hinten los.  Als erstes
versuchen sie automatisch und ungefragt (und natürlich nicht
abschaltbar), den Firmware-Upgrader auf das Gerät loszulassen.
Dieser stürzt aber innerhalb einer VM sang- und klanglos ab.
Man könnte natürlich mal versuchen, dafür einen support call
aufzumachen, aber ich fürchte, dass sie den Betrieb in einer VM
entweder gleich als "not supported" abtun, oder dass der Bug
zumindest keine hohe Priorität bekommen wird.

> (Habe gelesen das die Xmegas
> bisher fast gar nicht von avarice unterstützt werden)

Ist mit der 7er Firmware deutlich besser geworden.  In der alten
Firmware wurden Xmega-Breakpoints mit irgendeinem schrägen Hack
implementiert, der gänzlich undokumentiert war.  Mit der 7er Firmware
ist zwar manches andere undokumentiert, aber zumindest erratbar
geworden, dafür sind die Breakpoints jetzt "normaler" als früher,
sodass auch AVaRICE nun Breakpoints auf Xmega anbieten kann.

> - ein anderes Linux ausprobieren? Wenn ja welches?

Die einzigen Linuxe, auf denen ich im Moment getestet habe, sind
leider Uralt-Versionen (kann ich nichts ändern, sind
Produktivsysteme).  Auf denen geht AVaRICE, genauso wie auf meinem
FreeBSD zu Hause.

> - Firmware downgraden

AVR Studio 5 wäre mal einen Versuch wert, wenn es dir nicht zu
blöd ist, diesen Riesenklopper zu laden.

Wie ich dem Kollegen auf der AVaRICE-Liste schon schrieb, wäre es auch
ein Versuch, die SVN-Version von AVaRICE mal zu testen.  Sie
unterscheidet sich zwar von den Features her nicht von der 2.12, aber
ich habe die komplette Fehlerbehandlung überarbeitet.  Statt
irgendwelcher Krücken arbeitet sie nun durchweg mit C++-Exceptions und
sollte meiner Meinung nach viel sauberer sein als früher.  Könnte
also durchaus möglich sein, dass damit die Folgefehler dann vielleicht
eliminiert werden.

> - mk2 verklopppen und anderes JTAG interface zum laufen bringen

Hilft nicht viel.  Das Debugprotokoll hat Atmel nie veröffentlicht, du
bist also auf ihre Tools angewiesen, und diese wiederum wollen sie nur
unter Windows supporten.  Das JTAGICE3 müsste zwar theoretisch besser
(schneller) sein, da es auf die Visual-Studio-basierten Debugger
zugeschnitten worden ist und sich die Debugger-Modelle von Visual
Studio und GDB deutlich mehr ähneln als das des früheren AVR Studio
4.x, aber leider gibt's dafür gar keine Doku.  Ich warte daher noch
auf einen Freiwilligen, der das Protokoll mal reverse-engineert ...

> Jedoch werden die Register falsch ausgelesen.

Seltsam.  Da ist noch was foul.

Können wir das ggf. mit dem zweiten Kollegen gemeinsam auf der
AVaRICE-Mailingliste weiter diskutieren?

> Kann man irgendwo die avarice timings ändern?

Welche?  Die USB-Timeouts?  Die sind bislang hart in src/jtag.h
festgelegt, sollten aber eigentlich sehr reichlich sein.

von Tom S. (tomsawer)


Lesenswert?

Ja! Lass auf der Mailingliste weiter machen. Hast du nen link oder so?

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


Lesenswert?


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.