Forum: Mikrocontroller und Digitale Elektronik ST-LINK/V2: Programm dauerhaft auf STM32 laden?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von ziggner (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits,

ich programmiere meinen STM32f030 mit einem ST-Link/V2. Nun habe ich 
folgendes Problem:

- Spannungsversorgung wird eingeschalten
- ich lade ein Programm auf meinen STM
-> Programm wird ausgeführt
- ich trenne ST-LINK/V2 und Spannungsversorgung
- schalte Spannungsversorgung wieder ein
-> Nun wird mein vorher aufgespieltes Programm nicht mehr ausgeführt.

Jedoch will ich, dass es automatisch nach dem Einschalten der 
Spannungsversorgung wieder ausgeführt wird.

Das bedeutet doch, dass das Programm nicht auf dem µC gespeichert wird? 
Könnt ihr mir Tipps geben, woran das liegen kann?

Zur Info (falls es damit etwas zu tun hat): Der Boot Pin ist mit GND 
verbunden.

von holger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>-> Nun wird mein vorher aufgespieltes Programm nicht mehr ausgeführt.

Hast du das Programm ins RAM gelegt?

von ziggner (Gast)


Bewertung
0 lesenswert
nicht lesenswert
holger schrieb:
> Hast du das Programm ins RAM gelegt?

Ich weiß nicht in welchen Speicher ich das Programm schreibe, aber in 
den RAM sollte ich es wohl nicht schreiben.

Wie kann ich das bei Keil µVision nachschauen? Oder kann ich das auch im 
STCubeMX auswählen?

von holger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ein weiterer Grund könnten printf() Ausgaben über ITM sein.

von holger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Ein weiterer Grund könnten printf() Ausgaben über ITM sein.

Bzw. Semihosting benutzt.

von Markus M. (adrock)


Bewertung
0 lesenswert
nicht lesenswert
Evtl. musst Du den Pin BOOT0 auf GND legen. Der legt fest, von wo der 
Controller beim Reset (also auch Start) bootet, aus dem FLASH oder aus 
dem "System memory" aka. Bootloader (oder in Verbindung mit BOOT1 aus 
dem RAM).

Siehe RefManual Abschnitt 2.5 "Boot configuration".

von dasrotemopped (Gast)


Bewertung
0 lesenswert
nicht lesenswert
oder die Reset Leitung floatet ohne angesteckten Programmer.

>Oder kann ich das auch im STCubeMX auswählen?
Nein

>Wie kann ich das bei Keil µVision nachschauen?
Keil->Project->Options for Target-> und dann da irgendwo
Steht aber Default auf Flash.
Besser Boot0/1 und Reset erst mal prüfen.

von W.S. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
ziggner schrieb:
> Das bedeutet doch, dass das Programm nicht auf dem µC gespeichert wird?
> Könnt ihr mir Tipps geben, woran das liegen kann?

Lies doch einfach mal den Flash aus und vergleiche ihn mit deinem 
Programm. Oder laß deinen Programmer einfach mal ein Verify machen. Dann 
weißt du, ob im Flash das drin ist, was du haben willst. Wenn ja und es 
klappt noch immer nicht, dann hat du was an der Schaltung falsch 
gemacht.

W.S.

von ziggner (Gast)


Bewertung
0 lesenswert
nicht lesenswert
dasrotemopped schrieb:
> oder die Reset Leitung floatet ohne angesteckten Programmer.

Vielen Dank. Das war das Problem. Habe nun einen Pull-up ergänzt und es 
funktioniert einwandfrei.

W.S. schrieb:
> Lies doch einfach mal den Flash aus und vergleiche ihn mit deinem
> Programm. Oder laß deinen Programmer einfach mal ein Verify machen.

Auch wenn ich mein Problem gelöst habe interessiert es mich, wie ich den 
Flash auslesen oder ein Verify machen kann.

von Holger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Zum Auslesen und Verifizieren kannst du das "STM32 ST-LINK Utility" 
nehmen. Findest du direkt bei ST.

von m.n. (Gast)


Bewertung
1 lesenswert
nicht lesenswert
ziggner schrieb:
> dasrotemopped schrieb:
>> oder die Reset Leitung floatet ohne angesteckten Programmer.
>
> Vielen Dank. Das war das Problem. Habe nun einen Pull-up ergänzt und es
> funktioniert einwandfrei.

Dann hast Du den Fehler noch nicht gefunden. NRST hat einen internen 
Pullup Widerstand mit rund 40 k. Extern sollte ein 0,1 µF Kondensator 
zugeschaltet werden.

Markus M. schrieb:
> Evtl. musst Du den Pin BOOT0 auf GND legen.

Darum solltest Du Dich kümmern und zwar nicht eventuell sondern 
unbedingt.

von Markus M. (adrock)


Bewertung
0 lesenswert
nicht lesenswert
m.n. schrieb:

>
> Markus M. schrieb:
>> Evtl. musst Du den Pin BOOT0 auf GND legen.
>
> Darum solltest Du Dich kümmern und zwar nicht eventuell sondern
> unbedingt.

Jupp, das evtl. bezog sich auf "falls es nicht in der Schaltung schon so 
vorgesehen ist".

von W.S. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
ziggner schrieb:
> Auch wenn ich mein Problem gelöst habe interessiert es mich, wie ich den
> Flash auslesen oder ein Verify machen kann.

O ha. Du möchtest mit Mikrocontrollern umgehen und weißt nicht mal die 
Basics? Mit ner Harley umgehen wollen und nicht mal Fahrradfahren 
können?

Normalerweise bietet jedes ernstzunehmende Flash-Tool ein Verify und 
ein Auslesen des Flashs an. Genau so wie das dedizierte Löschen und den 
Blankcheck.

W.S.

von dasrotemopped (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
>O ha. Du möchtest mit Mikrocontrollern umgehen und weißt nicht mal die
>Basics?
>Normalerweise bietet jedes ernstzunehmende Flash-Tool ein Verify und ein 
>Auslesen des Flashs an.

@W.S.
Ich höre, wie lautet die Lösung für den STM32 ?

Gruß,
dasrotemopped.

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


Bewertung
0 lesenswert
nicht lesenswert
dasrotemopped schrieb:
>>Normalerweise bietet jedes ernstzunehmende Flash-Tool ein Verify und ein
>>Auslesen des Flashs an.
>
> @W.S.
> Ich höre, wie lautet die Lösung für den STM32 ?

ST-LINK_CLI.exe

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.