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


von ziggner (Gast)


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)


Lesenswert?

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

Hast du das Programm ins RAM gelegt?

von ziggner (Gast)


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)


Lesenswert?

Ein weiterer Grund könnten printf() Ausgaben über ITM sein.

von holger (Gast)


Lesenswert?

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

Bzw. Semihosting benutzt.

von Markus M. (adrock)


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)


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)


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)


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)


Lesenswert?

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

von m.n. (Gast)


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)


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)


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:

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


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

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.