mikrocontroller.net

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


Autor: Marius Merten (mfd2004)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Marius Merten (mfd2004)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Gast2 (Gast)
Datum:

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

Autor: Marius Merten (mfd2004)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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:
target remote localhost:3333
Remote communication error: Bad file descriptor.
monitor reset
"monitor" command not supported by this target.
monitor sleep 500
"monitor" command not supported by this target.
monitor poll
"monitor" command not supported by this target.
monitor soft_reset_halt
"monitor" command not supported by this target.
monitor arm7_9 sw_bkpts enable
"monitor" command not supported by this target.
monitor mww 0xFFE00000 0x1000213D
"monitor" command not supported by this target.
monitor mww 0xFFE00004 0x20003E3D
"monitor" command not supported by this target.
monitor mww 0xFFE00020 0x00000001
"monitor" command not supported by this target.
monitor mdw 0xFFE00000 1
"monitor" command not supported by this target.
monitor mdw 0xFFE00004 1
"monitor" command not supported by this target.
break main
Breakpoint 1 at 0xec: file src/main.c, line 67.
load
You can't do that when your target is `exec'
No registers.
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".
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

Autor: Marius Merten (mfd2004)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Tilo L. (katagia)
Datum:

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

Autor: Marius Merten (mfd2004)
Datum:

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

Autor: Gast (Gast)
Datum:

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

Autor: Marius Merten (mfd2004)
Datum:

Bewertung
0 lesenswert
nicht 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:
target remote localhost:3333
monitor reset
monitor sleep 500
monitor poll
monitor soft_reset_halt
monitor arm7_9 sw_bkpts enable
monitor mww 0xFFE00000 0x1000213D
monitor mww 0xFFE00004 0x20003E3D
monitor mww 0xFFE00020 0x00000001
monitor mdw 0xFFE00000 1
monitor mdw 0xFFE00004 1
break main
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:
break main
Breakpoint 1 at 0xec: file src/main.c, line 67.
load
Loading section .text, size 0x130 lma 0x0
Start address 0x40, load size 304
Transfer rate: 105739 bits/sec, 304 bytes/write.
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.

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

Autor: Tilo L. (katagia)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marius Merten (mfd2004)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jansus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marius Merten (mfd2004)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.