Forum: Mikrocontroller und Digitale Elektronik ARM -Yagarto- läuft, aber programm stimmt wohl nicht übere


von Marius M. (mfd2004)


Angehängte Dateien:

Lesenswert?

Hallo,

habe heute mein ARM-board (AT91SAM7_EX256) aus dem Shop mal abgestaubt 
und rausgeholt.
Habe dann das Toturial von yagarto durchgearbeitet und läuft auch alles 
ganz gut. bei Eclipse starte ich meine Session "openocd-ftd2xx -f 
.\prj\at91r40008_armusbocd.cfg" vorher habe ich mein projekt compiliert. 
Nach den beiden schritten starte ich mein debuggen. das führt er auch 
ganz gut aus. ich kann nur nicht mein main file sehen und debuggen. Er 
spuckt diese Meldung aus:

No source available for "_vectors() n

(siehe Bild)

Kann auch auf Run gehen, macht er auch ohne Fehhlermeldung.

Ich vermute, das irgendwas auf dem Chip schon drauf ist und evtl 
fuse-bits gesetzt sind!?! kann das sein? ist das schlüssig? würde er mir 
dann das auf irgendeine weise ausspucken?

Danke und Gruß
Mfd2004

von Gast (Gast)


Lesenswert?

"Nach den beiden schritten starte ich mein debuggen. das führt er auch
ganz gut aus. ich kann nur nicht mein main file sehen und debuggen."

Hä?

Lies doch nochmal den Abschnitt im Tutorial über das Debuggen mit GDB!

von Marius M. (mfd2004)


Lesenswert?

Ja, ich glaub ich habe mich ziemlich unverständlich ausgedrückt.

Ich benutze den arm-elf-gdb über eclipse. Nach erfolgreichem compilieren 
starte ich openocd. Danach starte ich über den vorher eingerichteten 
Debugdialog im eclipse den debugger (yagarto\bin\arm-elf-gdb.exe). Jetzt 
wechselt er in die Debug-Ansicht (siehe 1. Beitrag angefügtes Bild). Nun 
kannte ich es von "damals" das ich nun meine main.c offen vor mit hatte 
und der Breakpoint an den Anfang meiner main stand. ein anschließendes 
"Run" startete meinen uC und ich konnte damit arbeiten.

Nun ist es aber so, das ich nicht mit meiner main.c arbeiten kann. Er 
scheint etwas abzuarbeiten, was schon drin ist. leider nicht mein 
programm was drauf sollte. Bisher kannte ich es so, das ich eine 
Fehlermeldung bekommen habe und das er "run" damit abgebrochen hat. Nun 
läuft er weiter, als wenn nichts wäre. Das meinte ich mit:

"Nach den beiden schritten starte ich mein debuggen. das führt er auch
ganz gut aus. ich kann nur nicht mein main file sehen und debuggen."

Hoffe, das ich es rüber bringen konnte.
Würden fuse-bits gesetzt sein würde er mir eine Fehlermeldung rausgeben?

Kennt jemand das Problem???

Grüße
Marius

von Gast (Gast)


Lesenswert?

Wie schauen denn Deine GDB-Befehle aus? Kommt da ein "break main" vor?
Hast Du auch entsprechend kompiliert? Ich meine, wenn Du im RAM debuggen 
willst, hast Du das auch dem Linker gesagt?

von Gast2 (Gast)


Lesenswert?

Hi,
hatte das gleiche Problem, konnte es aber beheben indem ich statt dem 
Native-Debugger den Cygwin benutzt habe.

von Marius M. (mfd2004)


Angehängte Dateien:

Lesenswert?

Hi,
danke Gast2!! Also das war wohl das Problem. :-)
Leider hat sich ein zweites Problem eingeschlichen. (kleiner- hoffe ich! 
)

Bekomme Fehlermedlung siehe Anahng oder hier:
1
target remote localhost:3333
2
Remote communication error: Bad file descriptor.
3
monitor reset
4
"monitor" command not supported by this target.
5
monitor sleep 500
6
"monitor" command not supported by this target.
7
monitor poll
8
"monitor" command not supported by this target.
9
monitor soft_reset_halt
10
"monitor" command not supported by this target.
11
monitor arm7_9 sw_bkpts enable
12
"monitor" command not supported by this target.
13
monitor mww 0xFFE00000 0x1000213D
14
"monitor" command not supported by this target.
15
monitor mww 0xFFE00004 0x20003E3D
16
"monitor" command not supported by this target.
17
monitor mww 0xFFE00020 0x00000001
18
"monitor" command not supported by this target.
19
monitor mdw 0xFFE00000 1
20
"monitor" command not supported by this target.
21
monitor mdw 0xFFE00004 1
22
"monitor" command not supported by this target.
23
break main
24
Breakpoint 1 at 0xec: file src/main.c, line 67.
25
load
26
You can't do that when your target is `exec'
27
No registers.
28
Warning: /cygdrive/C/Users/Marius/workspace/TEST/src: No such file or directory.
29
Warning: /cygdrive/C/Users/Marius/workspace/TEST/prj: No such file or directory.
30
Warning: /cygdrive/C/Users/Marius/workspace/TEST/inc: No such file or directory.
31
Warning: /cygdrive/C/Users/Marius/workspace/TEST/.dep: No such file or directory.
32
Warning: /cygdrive/C/Users/Marius/workspace/TEST: No such file or directory.
33
Don't know how to run.  Try "help target".
Habe jetzt das ganze Projekt aufgeräumt und nochmal gemacht. Irgendwo 
steckt der Wurm. Dann bin ich nochmal die Yagarto anleitung 
durchgegangen ... Aber mir ist nichts aufgefallen, was ich anders habe 
(außer das mein GDB jetzt über Cygwin läuft).

Mit den ersten Fehlermeldungen die sich ja auf meine 
Initialisierungs-Befehle beziehen kann ich gar nicht soo viel anfangen.
Was mich wundert sind die letzten zeilen. "Warning: /cygdrive/C/User 
...."
Wo und warum setzt er cygdrive vor C ?? Ist das richtig? Habe die 
Hilfe schon durchsucht, aber nichts gefunden...

Habt Ihr eine Ahnung?

MFG
Marius

von Marius M. (mfd2004)


Lesenswert?

Also das Problem mit den Initialisierungs-Befehlen ist weg. Fragt nicht 
wieso, oder warum :-)
Habe nur noch das Problem mit dem directory:

Warning: /cygdrive/C/Users/Marius/workspace/TEST/src: No such file or 
directory.
Warning: /cygdrive/C/Users/Marius/workspace/TEST/prj: No such file or 
directory.
Warning: /cygdrive/C/Users/Marius/workspace/TEST/inc: No such file or 
directory.
Warning: /cygdrive/C/Users/Marius/workspace/TEST/.dep: No such file or 
directory.
Warning: /cygdrive/C/Users/Marius/workspace/TEST: No such file or 
directory.
Don't know how to run.  Try "help target".

woher bezieht er diese Addresse? also der Pfad stimmt bis auf dieses 
/cygdrive.

MFG und Danke,
Marius

von Tilo (Gast)


Lesenswert?

Irgend wie muss man die Windows-Laufwerke auf Unix-Pfade anpassen
/cygdrive/C passt also.

von Marius M. (mfd2004)


Lesenswert?

Aber wieso findet er dort nicht den richtigen Pfad, obwohl genau dort 
mein Projekt mit den Dateien liegt?

von Gast (Gast)


Lesenswert?

Vielleicht ne blöde Frage, aber hast Du eingestellt wo sich Deine 
elf-Datei befindet und wo die arm-elf-gdb.exe steckt?

von Marius M. (mfd2004)


Lesenswert?

Keine Frage ist blöd! Bin ja gerade hier im Forum um Hilfe zu bekommen!

Bei Eclipse habe ich im Debug-Dialog die test.elf als Application 
angegeben. Im GDB-Debugger steht C:\Program 
Files\yagarto\bin\arm-elf-gdb.exe. GDB-Commandfile ist leer. Unter 
commands steht:
1
target remote localhost:3333
2
monitor reset
3
monitor sleep 500
4
monitor poll
5
monitor soft_reset_halt
6
monitor arm7_9 sw_bkpts enable
7
monitor mww 0xFFE00000 0x1000213D
8
monitor mww 0xFFE00004 0x20003E3D
9
monitor mww 0xFFE00020 0x00000001
10
monitor mdw 0xFFE00000 1
11
monitor mdw 0xFFE00004 1
12
break main
13
load

Der Rest ist eigentlich so belassen. Denke das es nicht an den Commands 
liegt, da diese ja auch ausgeführt werden ohne Fehlermeldung anzuzeigen. 
Erst, wenn er dann auf die main.c zugreifen will findet er diese nicht, 
obwohl der Pfad doch stimmt!

Das wird ausgeführt:
1
break main
2
Breakpoint 1 at 0xec: file src/main.c, line 67.
3
load
4
Loading section .text, size 0x130 lma 0x0
5
Start address 0x40, load size 304
6
Transfer rate: 105739 bits/sec, 304 bytes/write.
7
Warning: /cygdrive/C/Users/Marius/workspace/TEST/src: No such file or directory.
8
Warning: /cygdrive/C/Users/Marius/workspace/TEST/prj: No such file or directory.
9
Warning: /cygdrive/C/Users/Marius/workspace/TEST/inc: No such file or directory.
10
Warning: /cygdrive/C/Users/Marius/workspace/TEST/.dep: No such file or directory.
11
Warning: /cygdrive/C/Users/Marius/workspace/TEST: No such file or directory.

Demmnach schreibt er ja. Den rest ... Ich bin leider nur einsteiger und 
erstmal ratlos.
Mal sehen, was der morgige Tag bringt. Vielleicht finde ich den Fehler 
ja oder jemand kann mir helfen!

MFG
Marius

von Tilo (Gast)


Lesenswert?

Marius Merten wrote:
> Bei Eclipse habe ich im Debug-Dialog die test.elf als Application
> angegeben. Im GDB-Debugger steht C:\Program
> Files\yagarto\bin\arm-elf-gdb.exe. GDB-Commandfile ist leer. Unter
> commands steht:

Leerzeichen im Pfad haben bei mir schon zu Problemen geführt. Die
PATH-Variable hast du angepasst, damit alles gefunden wird?


> Warning: /cygdrive/C/Users/Marius/workspace/TEST/src: No such file or
> directory.
> Warning: /cygdrive/C/Users/Marius/workspace/TEST/prj: No such file or
> directory.
> Warning: /cygdrive/C/Users/Marius/workspace/TEST/inc: No such file or
> directory.
> Warning: /cygdrive/C/Users/Marius/workspace/TEST/.dep: No such file or
> directory.
> Warning: /cygdrive/C/Users/Marius/workspace/TEST: No such file or
> directory.

Existieren diese Verzeichnisse? Warum werden diese Verzeichnisse
gesucht?

Ansonsten kann ich dir nur empfehlen, das Tutorial Schritt für Schritt
durcharbeiten, bis du einen Fehler findest.


Bis dann, Tilo

von Marius M. (mfd2004)


Lesenswert?

Danke dir erstmal Tilo für den Beitrag!

Denke nicht, das es mit den Leerzeichen zu tun hat, da ich ja vorher 
compilieren muss und den Pfad von arm-elf-gcc im eclipse angeben muss. 
dieser lautet bei mir:
C:\Program Files\yagarto\bin\arm-elf-gcc.exe

Und er compiliert einwandfrei.

Die Path-Variablen. Ja, da gab es einige Probleme. Angefangen mit dem 
Compilieren. Jedoch habe ich PATH umgeschrieben, das es dem unter 
normalem Windows entspricht. Danach ging das Compilieren auch tadelos.

Die Verzeichnisse stimmen. Du hast ja auch geschrieben das /cygdrive 
richtig ist. konnte es in einem Buch auch nachlesen.

Warum arm-elf-gdb.exe irgendwelche Dateien oder Pfade brauch, was er 
sucht, weis ich nicht. eigentlich ist auszuschließen, das das 
verzeichniss nicht zu finden ist, da es haargenau stimmt. Also findet er 
die Dateien nicht, aber alle Projektdateien sind doch vom Compilieren 
dort drin!?
Sackgasse ...

Danke erstmal ... werde alles nochmal neu anfangen und Yagarto 
durcharbeiten.

MFG
Marius

von Jansus (Gast)


Lesenswert?

Im Debug Dialog Fenster, da wo Du auch die Commands eingibst, unter dem 
Punkt Source muss der Pfad Deines Projekts eingestellt sein.
Wenn da nur unter Default "Absolut File Path" steht, dann klicke auf 
Add... und füge Dein Projekt hinzu.

HTH
Jansus

von Marius M. (mfd2004)


Lesenswert?

Hey, vielen Dank! :-)
Bei mir funzt jetzt alles! Man sollte einfach genauer, konzentrierter 
lesen und nicht mal schnell eben so ungeduldig rüberfliegen.

Danke Leute!

Grüße
Marius

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.