Forum: Mikrocontroller und Digitale Elektronik Eclipse Debuggen trotz Anleitung kein Erfolg.


von Alex (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,
ich sitze schon sein ein paar Tagen dran und kriege das on device 
debugging einfach nicht hin.
Zum Einrichten von Eclipse hab ich folgende Anleitungen benutzt.
http://www.mikrocontroller.net/articles/AVR_Eclipse
http://avr-eclipse.sourceforge.net/wiki/index.php/Debugging
Meine Hardware ist das Atmel Evaluationboard v2.01, AVR-JTAG-USB von 
Olimex und das SYSBAS Multi-2U/RS232.
Software: win7 64bit, Eclipse Helios (Wascana 1.0), WinAVR-20100110 und 
AVR Plugin V2.3.4.

Jetzt zum den Problemen.

Wenn ich das AVR-JTAG einstecke und avarice starte
(avarice --mkI --ignore-intr  --jtag /dev/com8 :4242)
bekomme ich folgende Fehlermeldung.
1
AVaRICE version 2.9, Jan  7 2010 22:42:57
2
3
Defaulting JTAG bitrate to 250 kHz.
4
5
JTAG config starting.
6
JTAG ICE communication failed: Permission denied

Wenn genau die gleiche Eingabe gleich darauf wiederholt wird, startet es 
anscheinend ohne Probleme.
1
AVaRICE version 2.9, Jan  7 2010 22:42:57
2
3
Defaulting JTAG bitrate to 250 kHz.
4
5
JTAG config starting.
6
Hardware Version: 0xce
7
Software Version: 0x80
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.
Berechtigung: avarice hat vollen Zugriff  unter allen Gruppen und 
Benutzern.
Das geschieht immer beim eisten Aufruf wenn der AVR-JTAG eingesteckt und 
das avarice gestartet wird.
Erste Frage: Ist das normal?

Zweites Problem:

Unter Run->Debug Configuration->GDB Hardware Debugging habe ich folgende 
Einstellungen. (siehe Bilder)

Wenn ich dann den Server und den Debugger Starte wechselt das Eclipse in 
die Debugger Perspektive, wartet bei main() und unter avr-gbt hab ich 
dieses Logfile.
Als Testprogram benutze ich das Blink LED aus der ersten Anleitung.
Logfile:
1
3-gdb-set confirm off
2
23^done
3
(gdb) 
4
24-gdb-set width 0
5
24^done
6
(gdb) 
7
25-gdb-set height 0
8
25^done
9
(gdb) 
10
26-interpreter-exec console echo
11
26^done
12
(gdb) 
13
27-gdb-show prompt
14
27^done,value="(gdb) "
15
(gdb) 
16
28-gdb-set new-console on
17
&"No symbol table is loaded.  Use the \"file\" command.\n"
18
28^error,msg="No symbol table is loaded.  Use the \"file\" command."
19
(gdb) 
20
No symbol table is loaded.  Use the "file" command.
21
29 symbol-file "D:\\FH\\Prog Workspace\\AVR-Test32\\Debug\\AVR-Test32.elf"
22
&"symbol-file \"D:\\\\FH\\\\Prog Workspace\\\\AVR-Test32\\\\Debug\\\\AVR-Test32.elf\"\n"
23
29^done
24
(gdb) 
25
symbol-file "D:\\FH\\Prog Workspace\\AVR-Test32\\Debug\\AVR-Test32.elf"
26
30 target remote localhost:4242
27
&"target remote localhost:4242\n"
28
target remote localhost:4242
29
~"0x00000000 in __vectors ()\n"
30
0x00000000 in __vectors ()
31
30^done
32
(gdb) 
33
31 load "D:\\FH\\Prog Workspace\\AVR-Test32\\Debug\\AVR-Test32.elf" 
34
&"load \"D:\\\\FH\\\\Prog Workspace\\\\AVR-Test32\\\\Debug\\\\AVR-Test32.elf\" \n"
35
load "D:\\FH\\Prog Workspace\\AVR-Test32\\Debug\\AVR-Test32.elf" 
36
~"Loading section .text, size 0x110 lma 0x0\n"
37
Loading section .text, size 0x110 lma 0x0
38
26+download,{section=".text",section-size="272",total-size="2923"}
39
26+download,{section=".text",section-sent="32",section-size="272",total-sent="32",total-size="2923"}
40
26+download,{section=".text",section-sent="192",section-size="272",total-sent="192",total-size="2923"}
41
~"Start address 0x0, load size 272\n"
42
Start address 0x0, load size 272
43
~"Transfer rate: 285 bytes/sec, 30 bytes/write.\n"
44
Transfer rate: 285 bytes/sec, 30 bytes/write.
45
31^done
46
(gdb) 
47
32-environment-directory "D:/FH/Prog Workspace/AVR-Test32" "D:/FH/Prog Workspace/AVR-Test32/.settings" "D:/FH/Prog Workspace/AVR-Test32/Debug"
48
32^done,source-path="D:/FH/Prog Workspace/AVR-Test32;D:/FH/Prog Workspace/AVR-Test32/.settings;D:/FH/Prog Workspace/AVR-Test32/Debug;$cdir;$cwd"
49
(gdb) 
50
33 info threads
51
&"info threads\n"
52
&"warning: RMT ERROR : failed to get remote thread list.\n"
53
33^done
54
(gdb) 
55
34-data-list-register-names
56
34^done,register-names=["r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","r10","r11","r12","r13","r14","r15","r16","r17","r18","r19","r20","r21","r22","r23","r24","r25","r26","r27","r28","r29","r30","r31","SREG","SP","PC"]
57
(gdb) 
58
35 tbreak main
59
tbreak main
60
&"tbreak main\n"
61
~"Breakpoint 1 at 0xc8: file ../AVR-Test32.c, line 20.\n"
62
Breakpoint 1 at 0xc8: file ../AVR-Test32.c, line 20.
63
35^done
64
(gdb) 
65
36-break-list
66
36^done,BreakpointTable={nr_rows="1",nr_cols="6",hdr=[{width="7",alignment="-1",col_name="number",colhdr="Num"},{width="14",alignment="-1",col_name="type",colhdr="Type"},{width="4",alignment="-1",col_name="disp",colhdr="Disp"},{width="3",alignment="-1",col_name="enabled",colhdr="Enb"},{width="10",alignment="-1",col_name="addr",colhdr="Address"},{width="40",alignment="2",col_name="what",colhdr="What"}],body=[bkpt={number="1",type="breakpoint",disp="del",enabled="y",addr="0x000000c8",func="main",file="../AVR-Test32.c",fullname="D:/FH/Prog Workspace/AVR-Test32/.settings/../AVR-Test32.c",line="20",times="0"}]}
67
(gdb) 
68
37 continue
69
&"continue\n"
70
continue
71
~"main () at ../AVR-Test32.c:20\n"
72
main () at ../AVR-Test32.c:20
73
~"20\t{\n"
74
20  {
75
37^done
76
(gdb) 
77
38 info proc
78
&"info proc\n"
79
&"Undefined info command: \"proc\".  Try \"help info\".\n"
80
38^error,msg="Undefined info command: \"proc\".  Try \"help info\"."
81
(gdb) 
82
39 info program
83
&"info program\n"
84
~"Debugging a target over a serial line.\n"
85
~"Program stopped at 0xc8.\n"
86
~"It stopped at a breakpoint that has since been deleted.\n"
87
~"Type \"info stack\" or \"info registers\" for more information.\n"
88
39^done
89
(gdb) 
90
40 info threads
91
&"info threads\n"
92
&"warning: RMT ERROR : failed to get remote thread list.\n"
93
40^done
94
(gdb) 
95
41-stack-info-depth
96
41^done,depth="1"
97
(gdb) 
98
42-stack-list-frames 0 1
99
42^done,stack=[frame={level="0",addr="0x000000c8",func="main",file="../AVR-Test32.c",fullname="D:/FH/Prog Workspace/AVR-Test32/.settings/../AVR-Test32.c",line="20"}]
100
(gdb) 
101
43-data-list-changed-registers
102
43^done,changed-registers=["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34"]
103
(gdb) 
104
44 info sharedlibrary
105
&"info sharedlibrary\n"
106
~"No shared libraries loaded at this time.\n"
107
44^done
108
(gdb) 
109
45-stack-list-arguments 0 0 0
110
45^done,stack-args=[frame={level="0",args=[]}]
111
(gdb) 
112
46-stack-list-locals 0
113
46^done,locals=[]
114
(gdb)

Wenn ich jetzt den Step in Pfeil anklicke passiert folgendes.
Der Zeilenzeiger verschwindet.
Die LED am AVR-JTAG-USB fängt an zu blinken.
Die LED auf dem Atmel Evalutionsboard bleibt aus.
Die Step in & Step over buttens werden grau.

Setze ich einen breack point innerhalb der while() Schleife arbeitet es 
anscheinend einmal die Schleife bis zum breack point ab. Aber die Led 
auf dem Atmel board bleibt trotzdem aus.
Log einer Schleife:
1
242-exec-step 1
2
242^running
3
(gdb) 
4
242*stopped,reason="breakpoint-hit",bkptno="1",thread-id="0",frame={addr="0x000000de",func="main",args=[],file="../AVR-Test32.c",fullname="D:/FH/Prog Workspace/AVR-Test32/.settings/../AVR-Test32.c",line="28"}
5
243 info threads
6
(gdb) 
7
&"info threads\n"
8
&"warning: RMT ERROR : failed to get remote thread list.\n"
9
243^done
10
(gdb) 
11
244-stack-info-depth
12
244^done,depth="1"
13
(gdb) 
14
245-stack-list-frames 0 1
15
245^done,stack=[frame={level="0",addr="0x000000de",func="main",file="../AVR-Test32.c",fullname="D:/FH/Prog Workspace/AVR-Test32/.settings/../AVR-Test32.c",line="28"}]
16
(gdb) 
17
246-data-list-changed-registers
18
246^done,changed-registers=["0","33"]
19
(gdb) 
20
247 info sharedlibrary
21
&"info sharedlibrary\n"
22
~"No shared libraries loaded at this time.\n"
23
247^done
24
(gdb) 
25
248-stack-list-arguments 0 0 0
26
248^done,stack-args=[frame={level="0",args=[]}]
27
249-stack-list-locals 0
28
(gdb) 
29
249^done,locals=[]
30
(gdb)

Ich hab schon google befragt doch nichts gefunden.
Selbst einiges ausprobiert doch nichts Klappt.

Was muss noch gemacht werden damit es funktioniert?

Danke im Voraus!

von TOOOHMAAATOOOH (Gast)


Lesenswert?

hast du alle compile und linker optionen richtig eingestellt?

von Alex (Gast)


Lesenswert?

Bei compile hab ich die gleichen Einstellungen vorgenommen wie in den 
Tutorial Bildern zu sehen ist.

http://www.mikrocontroller.net/articles/Datei:ProjectProperties.png
http://avr-eclipse.sourceforge.net/wiki/index.php/File:Debugging_debug_settings.png

Die linker Optionen hab ich nicht angerührt da es in den Tutorials 
nichtz dazu steht bzw. nichts wenn man es unter Windows einrichtet.

von Alex (Gast)


Lesenswert?

Hat keiner mehr ein Tipp oder kennt die Ursache des Problems?

von Katsching (Gast)


Lesenswert?

Mir fällt spontan noch ein, dass dort wo GDB Hardware Debugging steht 
eigentlich GDB !Remote! Debugging stehen müsste...
Weißt du was ich meine?

von Alex (Gast)


Lesenswert?

Ich glaube schon.
Du meinst bei den Debugger Einstellungen müsste noch das stehen
|C/C++ Remote Application|
Gehört das aber nicht zu etwas Anderem? Da es in den Tut. Bildern auch 
nicht vorkommt hab ich mich darum nicht gekümmert.

von TOOOHMAAATOOOH (Gast)


Lesenswert?

Ich glaub nicht das dir jemand helfen kann ohne dein Projekt vor sich zu 
haben, daher musst du dich wohl selbst mit dem Compiler/Linker Optionen 
und dem Debugger Einstellungen quälen.

Ich hatte ein ähnliches Problem, das ich durch den code nicht springen 
konnte im Debugger, da er die C-Files nicht mit dem Disassembly 
verknüpfen konnte. Nach langem Suchen hab ich gemerkt das ich in den 
Compile Optionen ein Debug flag nicht aktiviert hatte.

von Alex (Gast)


Lesenswert?

Tag,
hilft es wenn ich das Projekt hier hochlande?
Ich hab nämlich keinen Anhaltspunkt mehr was ich in den Einstellungen 
alles ändern oder erweitern sollte.
Und nach fünf Tagen ohne Erfolg wird es langsam deprimierend. :(

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.