Forum: Mikrocontroller und Digitale Elektronik AT91SAM7A3 - Verständnisproblem


von Ray (Gast)


Lesenswert?

Hallo,

ich mache gerade meine ersten Schritte auf dem ARM Gebiet und stolpere 
im Moment über folgendes Problem:
ich habe mein erstes Programm mit der Yagarto-Toolchain erstellt und 
habe es auch im Debugger starten und durchsteppen können, läuft im Flash 
(PC im Bereich 0x100000). Soweit so gut, wenn ich jetzt aber den JTAG 
abziehe und die Kiste neu starte, läuft gar nix (sollte eigentlich eine 
LED blinken).
Entweder hängt der ARM irgendwo in der Initialisierung, aber das müsste 
ja dann auch im Debugger passieren,
oder die Resetvektoren stimmen nicht und der ARM springt an die falsche 
Stelle, aber dann dürfte er im Debugger ja auch nicht hoch kommen.
Irgendwie bin ich im Moment ratlos und wäre für einen Hinweis dankbar.

bye

Ray

von Weingut P. (weinbauer)


Lesenswert?

kenn ich, du hast ins RAM geschrieben und nicht ins Flash

von Ray (Gast)


Lesenswert?

Hallo

wenn ich ins RAM geschrieben hätte, müsste der Debugger für den PC ja 
irgendetwas im Bereich 0x200000 anzeigen, tut er aber nicht, sondern 
zeigt - wie es für das Flash ja sein soll - irgendetwas im Bereich 
0x100000 an. Im Flash steht auch etwas, wenn man sich das ganze per 
Memorydump anschaut - ausser es wäre etwas altes, das er früher schon 
mal geschrieben hat -> dann müsste das (alte) Programm im Flash aber 
etwas anderes tun, als das was ich debuggen will, tut es aber nicht.
Da ich jetzt mal nicht annehme, dass das Programm im RAM läuft, mir der 
Debugger aber einen PC im Flash vorspiegelt, sollte das Programm wenn es 
läuft ja dann auch geflasht sein?
Daher bin ich etwas ratlos, da es - zumindest wenn der Debugger nicht 
lügt ;) - beim Debuggen im Flash läuft, aber ohne Debugger nix tut.

bye
Ray

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

Nachsehen, ob bei der Initialisierung des Debuggers irgendwelche 
Operationen durchgeführt werden, die im eigenen Code nicht enthalten 
sind. Da keine Informationen zur verwendeten Debughard und -software 
gegeben wurde, kann man nur schwer weiterhelfen.

von Ray (Gast)


Lesenswert?

Hallo,

>Nachsehen, ob bei der Initialisierung des Debuggers irgendwelche
>Operationen durchgeführt werden, die im eigenen Code nicht enthalten
>sind.
das war auch mein erster Gedanke, als es nicht gelaufen ist, habe ich 
schon kontrolliert und um sicher zu gehen, Zugriffe auf 
Konfigurationsregister angeglichen, so Unterschiede vorhanden waren. 
Dann dachte ich, dass evtl. die PLL nicht richtig tut und verwende nun 
main_clk, läuft halt das Teil nur mit einem Viertel der Geschwindigkeit, 
ohne Debugger tut sich aber auch hier nichts.

>Da keine Informationen zur verwendeten Debughard und -software
>gegeben wurde, kann man nur schwer weiterhelfen.
Debug-Hardware Olimex ARM-USB-OCD, der ARM sitz auf einer 
selbstgestrickten LP.
Debug-Software: Yagarto-Toolchain: Eclipse als IDE, OpenOCD und 
arm-elf-gdb mit Zylin Embedded Debugger (Native) - so wie es Michael 
Fischer auf Yagarto.de beschrieben hat aufgesetzt und getestet.

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.