STM32CubeIDE Debuggen ohne Flashen, geht das?

Gast #6435777
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
Moderator (Firma: Titel) Persönliche Seite #6435864
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.
(Firma: www.harerod.de) Persönliche Seite #6435935
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...
Gast #6435983
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren