Forum: Mikrocontroller und Digitale Elektronik STM32 beim Neustart wieder mit Default Programm


von Alexander M. (a_lexander)


Lesenswert?

Hallo,

Vielleicht will mir hier jemand den entscheidenden Hinweis geben:
Ich habe eine STM32G474 und würde hier ein Programm aufspielen, was 
soweit auch funktioniert. Nach jedem Neustart verliere ich das Programm 
aber wieder und es es wird wieder das Default Programm ausgeführt.

- Ich habe über STM32CubeProgrammer ein leeres Projekt erzeugt und diese 
aufgespielt.
- Eine weitere Möglichkeit wäre über das ST-LINK Utility Programm das 
Programm aufzuspielen.

Danke für die Hilfe ;)

Grüße

von STK500-Besitzer (Gast)


Lesenswert?

In welchen Speicher scheibst du das Programm?
Ich würde vermuten, dass es im RAM (statt im FLASH) landet...

von Cyblord -. (cyblord)


Lesenswert?

Alexander M. schrieb:
> Hallo,
>
> Vielleicht will mir hier jemand den entscheidenden Hinweis geben:
> Ich habe eine STM32G474 und würde hier ein Programm aufspielen, was
> soweit auch funktioniert. Nach jedem Neustart verliere ich das Programm
> aber wieder und es es wird wieder das Default Programm ausgeführt.
>
> - Ich habe über STM32CubeProgrammer ein leeres Projekt erzeugt und diese
> aufgespielt.

Du verwechselt den STM32CubeProgrammer mit der IDE.
Der Programmer kann nur programmieren und ist der Nachfolger des ST-Link 
Utility.

Also spiele mal mit dem Programmer dein Projekt in den Flash. Dann 
bleibt es da auch drin.

von Alexander M. (a_lexander)


Lesenswert?

Danke. Das wird wohl der Fehler sein...

Vielleicht noch eine weitere Frage: Wo kann ich denn zwischen RAM und 
Flash hier wechseln?

Grüße

von Cyblord -. (cyblord)


Lesenswert?

Alexander M. schrieb:
> Danke. Das wird wohl der Fehler sein...
>
> Vielleicht noch eine weitere Frage: Wo kann ich denn zwischen RAM und
> Flash hier wechseln?
>
> Grüße

Beim Cube Programmer gar nicht.

Ich denke beim Debuggen über die IDE kann man das Programm rein aus dem 
RAM ausführen lassen. Ist bei STMs aber doch eher ungewöhnlich.

von Lothar (Gast)


Lesenswert?

Cyblord -. schrieb:
> beim Debuggen über die IDE kann man das Programm rein aus dem
> RAM ausführen lassen

Bei den LPC mit externem Flash ist das auch so. Der Flash hat ja 
Waitstates. Und geht vielleicht irgendwann auch kaputt, so nach 10k 
Zyklen.

von Uli N. (uln)


Angehängte Dateien:

Lesenswert?

Wo ein Programm landet, dürfte auch bei Dir über ein Linker
Sript festgelegt sein. Die STM32CubeIDE scheint mir z.B.
sowohl ein Script für das Flash wie auch ein Script für ein
Laden ins RAM zur Verfügung zu stellen. Bei den Einstellungen wird der 
Linker bei mir dann angewissen, das Script für das Flash zu verwenden.

Also müsstest Du das Linker Script abändern oder, falls vorhanden,
ein Script für's Flash zur Anwendung bringen.

: Bearbeitet durch User
von Alexander M. (a_lexander)


Lesenswert?

Uli N. schrieb:
> Wo ein Programm landet, dürfte auch bei Dir über ein Linker
> Sript festgelegt sein. Die STM32CubeIDE scheint mir z.B.
> sowohl ein Script für das Flash wie auch ein Script für ein
> Laden ins RAM zur Verfügung zu stellen. Bei den Einstellungen wird der
> Linker bei mir dann angewissen, das Script für das Flash zu verwenden.
>
> Also müsstest Du das Linker Script abändern oder, falls vorhanden,
> ein Script für's Flash zur Anwendung bringen.

Danke. Von den Einstellungen sollte es eigentlich passen, trotzdem will 
das noch nicht so wie erwartet...
Muss mir das morgen nochmal anschauen..

Grüße

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.