Forum: Mikrocontroller und Digitale Elektronik STM32CubeIDE Debuggen ohne Flashen, geht das?


von Zeus (Gast)


Lesenswert?

Hallo liebe Mitglieder,

ich habe eine Frage zur STM32CubeIDE: Mein Nucleo läuft und ich möchte 
Variablen über die IDE auslesen, funktioniert alles wunderbar. Ich muss 
dies sehr häufig tun, das Projekt ist sehr umfangreich und möchte ich 
dabei nicht immer wieder das Programm auf den µC flashen, da der 
Flash-Speicher auch nur begrenzte Schreibzyklen hat (meines Wissens nach 
ca. 10k Minimum, aber ich will nichts ausreizen und hab noch viel vor 
mit dem Board).

Gibt es in der IDE die Möglichkeit das Programm zu starten und zu 
debuggen, ohne, dass das Programm jedes Mal geflashed wird?

Danke und Lg

von Harry L. (mysth)


Lesenswert?

Zeus schrieb:
> Gibt es in der IDE die Möglichkeit das Programm zu starten und zu
> debuggen, ohne, dass das Programm jedes Mal geflashed wird?

Nein!

von pegel (Gast)


Lesenswert?

Bei Debug Configuration -> Startup den Haken bei Download entfernen.

von Programmierer (Gast)


Lesenswert?

Wenn sich das Programm nicht geändert hat, wird der Flash sowieso nicht 
überschrieben. Wenn es sich geändert hat, sollte man auch neu flashen, 
denn sonst geht das debuggen schief.

von pegel (Gast)


Lesenswert?

Programmierer schrieb:
> Wenn sich das Programm nicht geändert hat, wird der Flash sowieso nicht
> überschrieben.

Sicher?

von Ben S. (bensch123)


Lesenswert?

Geht immernoch nicht.

von Zeus (Gast)


Lesenswert?

@pegl und @Programmierer:
eben da bin ich mir auch nicht zu 100% sicher, danke für den Tipp mit 
dem Haken @pegel!!!

von pegel (Gast)


Lesenswert?

Im Zweifelsfall die Ausgabe des Console Fensters ansehen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Zeus schrieb:
> Ich muss dies sehr häufig tun, das Projekt ist sehr umfangreich und
> möchte ich dabei nicht immer wieder das Programm auf den µC flashen, da
> der Flash-Speicher auch nur begrenzte Schreibzyklen hat
Ich würde mir an deiner Stelle erst mal keinen Gedanken darum machen. 
Und wenn dann nach einem Jahr tatsächlich das Nucleo zu Tode geflasht 
ist, dann würde ich abwägen, ob ich mir graue Haare um diesen Download 
mache, oder ob mir das einfach egal ist und bis dahin das Nucleo sowieso 
schon einen anderen Tod gestorben ist.

> meines Wissens nach ca. 10k Minimum
Und diese Zahl gilt im Grenztemperaturbereich. Ich habe mit "normalem" 
Programmieren auf dem Schreibtisch noch keinen STM32 kaputt bekommen. 
Lediglich ein Test, der die Schreibzyklen des Flash-Speichers testet, 
bricht nach ca. 15k Durchläufen (im Klimaschrank bei Extremtemperaturen) 
mit einem Fehler ab.

von Marcus H. (Firma: www.harerod.de) (lungfish) Benutzerseite


Lesenswert?

Zeus schrieb:
...
> Gibt es in der IDE die Möglichkeit das Programm zu starten und zu
> debuggen, ohne, dass das Programm jedes Mal geflashed wird?
...
Wenn Code und Daten ins MCU SRAM passen - Linkerscript anpassen und im 
SRAM debuggen. Allerdings ist die Ausführungsgeschwindigkeit, je nach 
Variante, mehr oder weniger anders. Z.B. beim F4->ART.
Zusammengefasst: dieser Ansatz lohnt sich höchstens, wenn man an einem 
kleinen Algorithmus frickelt und einem das FLASH leid tut.

Stichwort FLASH: das stirbt nicht von jetzt auf sofort, vielmehr 
reduziert sich die Retentionszeit nach ein paar tausend Zyklen. Siehe 
Datenblatt. Der Speicherinhalt wird aber auch nach vielen tausend Zyklen 
noch einige Zeit erhalten bleiben.

Da das Evalboard idealerweise sowieso nicht jahrelang laufen muss, ist 
das also kein Grund sich ums FLASH gedanken zu machen.

In den Produktiveinsatz sollten selbstredend nur MCUs gehen, die streng 
nach Datenblatt betrieben werden.

Die einzige produktive Anwendung für Code im SRAM wäre wohl im Bereich 
Firmwareupdate, oder generell bei selbstmodifizierendem Code zu suchen.
Das könnte dann vielleicht ein Algorithmus sein, der sich zur Laufzeit 
selbst optimiert...

von Johannes S. (Gast)


Lesenswert?

STM32CubeIDE habe ich noch nicht installiert, aber andere Ecplipsen 
haben eine Launch- und eine Attachkonfiguration. Attach ist zum anhängen 
an einen laufenden Prozess, das geht mit dem darunter liegenden gdb auch 
für uC. Das Laden der Symbole aus dem .elf und das flashen sind zwei 
verschiedene Befehle. Bei STM32CubeIDE ist es wohl über das von pegel 
genannte Häkchen unterschieden.

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.