Forum: Mikrocontroller und Digitale Elektronik STM32 und externes RAM


von Holzmichl (Gast)


Lesenswert?

Hallo STM32 Experten,

ich wollte per GDB (+OpenOCD oder JLinkGDBServer) ein Progrämmchen (eCos 
hello world) in das externe RAM des STM3210E Boards laden (per 'load'), 
das geht auch ohne Fehlermeldung ab:
1
Loading section .rom_vectors, size 0x8 lma 0x68008000
2
Loading section .ARM.exidx, size 0x8 lma 0x68008008
3
Loading section .text, size 0x968c lma 0x68008010
4
Loading section .rodata, size 0x234 lma 0x680116a0
5
Loading section .data, size 0x1a0 lma 0x680118e0
6
Start address 0x68008010, load size 39536
7
Transfer rate: 80 KB/sec, 5648 bytes/write.
8
(gdb)

Wenn ich dann den Speicher ab 0x68008000 anschaue, stehen da aber nur 
Nullen
drin.

Dasselbe passiert, wenn ich mit JLinkExe einzelne Werte in den externen 
RAM-Bereich schreibe, jeder Wert wird als 0 zurückgelesen.
Ist mein RAM kaputt?
Oder liegt es vielleicht daran, dass die entsprechenden FSMC Register, 
die für die Konfiguration von externem Speicher zuständig sind, zuerst 
initialisiert werden müssen, bevor auf das RAM zugegriffen werden kann?

Habe auch schon versucht, den eingebauten Bootlader zu starten, in der 
Hoffnung, der würde die FSMC Register beschreiben, den zu stoppen und 
und dann das Image mit dem GDB in's ext RAM zu laden.
Hilft aber alles nix.

Danke für jegliche Hinweise.

Holzmichl

von (prx) A. K. (prx)


Lesenswert?

Ich könnte mir sehr gut vorstellen, dass man das FSMC erst einschalten 
und konfigurieren muss, bevor es sich mit externem RAM verwenden lässt. 
Wenn der JTAG-Loader dies nicht macht, dann kann man damit wohl auch 
nicht direkt ins externe RAM laden.

Der integrierte Bootloader hat keine Ahnung, was für eine Konfiguration 
und Vorgehensweise notwendig ist, um den externen Speicher zu 
beschreiben. Vielleicht lässt sich der OpenOCD/GDB per Konfiguration 
oder Script irgendwie dazu überreden, vorher die Konfigurationsregister 
mit Leben zu füllen.

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.