Forum: Mikrocontroller und Digitale Elektronik [SAM7] Prog. aus RAM starten


von ToniT (Gast)


Lesenswert?

Hallo,

ich versuche mich ein wenig an den SAM7 zu nähern. Das WINARM Sample
konnte ich erfolgreich an das Olimex Board anpassen und im Flash
gespeichert starten. Wenn ich nun versuche das selbe aus dem RAM zu
starten bin ich leider nicht erfolgreich :(

Muss ich an meinem Code noch etwas ändern ? Das Makefile habe ich wie
folgt geändert :

## Create ROM-Image (final)
#RUN_MODE=ROM_RUN
## Create RAM-Image (debugging)
RUN_MODE=RAM_RUN

Das BIN File schreibe ich dann mit SAM-BA ins RAM und starte mit "go"
ab Adresse 0x202000.

Ergebniss - Keins :( Ein JTAG habe ich mir leider noch nicht zusammen
gebastelt.

Kennt jemand weitere Codebeispiele für SAM7 und WINARM ? Leider sind
alle AP Notes für IAR und beim Versuch diese ans laufen zu bringen
mache ich mehr Fehler als Fortschritte :(

Insbesondere wäre ich an USB Exsamples interessiert da ich den SAM7
auch aufgrund der USB Unterstützung gewählt habe.

Danke und Gruß

von mthomas (Gast)


Lesenswert?

Kann gut sein, dass das Beispiel aus WinARM 8/05 nicht in "RAM_RUN"
funktioniert. Das Linker-Skript fuer "RAM" ist nicht in Ordnung. Ich
hatte im August noch kein SAM7-Board zum Ausprobieren. Fuer "ROM_RUN"
hatte ich eine "es funktioniert" Bestaetigung.
Das Beispiel
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/index_at91.html#at91uart_and_aic
funktioniert auch "im RAM". Allerdings nicht mit SAM-BA getestet.

Martin Thomas

von Dirk D. (dirkd)


Lesenswert?

Hallo!

Ich hatte vor kurzem ähnliche Problem.

Schau Dir mal diesen Thread an (auch wenn es um JTAG-Wiggler geht):

http://www.mikrocontroller.net/forum/read-1-267330.html#new

Dort findest Du auch den Source + Makefile für ein Projekt, daß im RAM
läuft. Dazu waren Anpassungen am WinARM Beispiel notwendig

Dirk

von ToniT (Gast)


Lesenswert?

Hmmm... jetzt hab ich mir noch einmal das File hier aus dem Forum
geholt. Das Makefile auf "RUN_MODE=RAM_RUN" gesetzt und make
aufgerufen.
Ich sehe auch das als Compileroption -DRAM_RUN genutzt wird. Wenn ich
jetzt das .bin File via SAM-BA ins SRAM schreibe und dann ausführe
funktioniert leider nichts :(

TCL Ausgabe SAM-BA :

(SAM-BA 1.7) 49 % send_file SRAM:: "C:/arm/uart_ram/main.bin"
"0x202000" 0
-I- Send File C:/arm/uart_ram/main.bin at address 0x202000
-I- File size = 2516 byte(s)
(SAM-BA 1.7) 49 % compare_file SRAM:: "C:/arm/uart_ram/main.bin"
"0x202000" 0
-I- Compare File : C:/arm/uart_ram/main.bin with memory at address :
0x202000 , for 2516 byte(s)
-I- Read File at address 0x202000
(SAM-BA 1.7) 49 % go 0x202000
-I- Launch AT91SAM7S64-EK at address 0x202000
-I- USB connection closed
-I- USB connection opened
(SAM-BA 1.7) 50 %

aber weder die Leds leuchten noch habe ich eine Ausgabe vom UART.
Im Flash funktioniert das Proggi ohne Probleme, natürlich nach
anpassung des Makefiles.

von ToniT (Gast)


Lesenswert?

@mthomas: Dein Beispiel ist leider für das SRAM vom S64 zu groß :(

von ToniT (Gast)


Lesenswert?

Kurze Rückmeldung.
Nachdem ich im RAM-Linker Script die Memorydefinition für "DATA" auf
ORIGIN = 0x00202000 gesetzt habe läuft das ganze auch bei mir.

Gruß und Dank

von mthomas (Gast)


Lesenswert?

>... zu groß

Woduch wird die Aussage belegt? Ausgabe der binutils zeigen "klein
genug" und Tests "hier" waren erfolgreich. Wie geschrieben
allerdings nicht mit SAM-BA ausprobiert, sondern mit der von den
WinARM-Tools erzeugten "RAM-RUN"-elf-Datei in einem kommerziellen
Debugger und upload ueber JTAG-Schnittstelle.

Martin Thomas

von ToniT (Gast)


Lesenswert?

Vieleicht sollte ich zu groß anders definieren :)

Ich glaube das "zu groß" liegt ein wenig mit an SAM-BA, anscheinend
kann ich mit SAM-BA erst ab 0X202000 auf das SRAM schreiben.

Ich denke wenn ich das SRAM über JTAG ab 0x200000 beschreiben würde
dann sollte es auch wieder passen.

Ist aber erstmal nur ne Vermutung. SAM-BA behauptet halt beim schreiben
ins SRAM das es nicht genug Platz hat.

@mthomas: Auf diesem Wege möchte ich mich mal für Deine wirklich sehr
Informative Website und die vermutlich große menge an Arbeit die du in
WINARM und deine Site steckst bedanken.

:)) Genug geschleimt :))

Gruß und Dank

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.