Forum: Mikrocontroller und Digitale Elektronik STM32 wie kann Programmausführungsmodus festgestellt werden


von Rainer S. (rsonline)


Lesenswert?

Ist es möglich beim STM32 den Programmausführungsmodus anhand des 
Zustands bestimmten Pins festzustellen?

Upload von Blink-LED Programm über die serielle Schnittstelle 
funktioniert, aber es blinkt keine LED.

Jetzt ist die Frage halt ob der Programmausführungsmodus überhaupt 
aktiviert wird. Laut Boot Pins ja.

von (prx) A. K. (prx)


Lesenswert?

Ausserhalb von Reset und ohne aktivem JTAG/SWD-Debugger führt der 
Controller entweder ein Programm aus, oder hat sich zwecks Strom sparens 
schlafen gelegt, oder hat sich aufhängt.

Wenn selbst ein Trivialprogramm nicht zur Aktivierung von LEDs führt, 
dann ist entweder die LED-Steuerung nicht korrekt - was beim STM32 
leicht der Fall sein kann, weil deutlich komplexer als bei 51/PIC/AVR - 
oder es scheitert schon in der Startphase vor dem Aufruf von main().

Wär besser Du verrätst mehr über Programm und Entwicklungsumgebung.

von hp-freund (Gast)


Lesenswert?

Rainer S. schrieb:
> ... anhand des
> Zustands bestimmten Pins festzustellen?

Ja, am blinken der LED ;-)

Takt für Port aktiviert? Endlosschleife am Schluss? Reset ok?
Zeig doch mal den Code.

von Uwe Bonnes (Gast)


Lesenswert?

Beim internen Bootloader gibt es meines Wissens keine solche 
Indikatorpins. Beim internen USB Bootloader sieht man, ob es sich 
entsprechend am USB Port enummeriert. An der seriellen Schnittstelle 
koennte man probieren, ob er sich dem Protokoll entsprechend verhaelt.

von Rainer S. (rsonline)


Lesenswert?

hp-freund schrieb:
> Ja, am blinken der LED ;-)

Ja, das wäre mal ein schönes Weihnachtsgeschenk!

> Takt für Port aktiviert? Endlosschleife am Schluss? Reset ok?
> Zeig doch mal den Code.

Hier ist ein Beitrag dazu:
Beitrag "STM32 kann jemand ein Demo Programm schreiben?"

Hier der Code:
Beitrag "Re: STM32 kann jemand ein Demo Programm schreiben?"

Uwe Bonnes schrieb:
> Beim internen Bootloader gibt es meines Wissens keine solche
> Indikatorpins. Beim internen USB Bootloader sieht man, ob es sich
> entsprechend am USB Port enummeriert. An der seriellen Schnittstelle
> koennte man probieren, ob er sich dem Protokoll entsprechend verhaelt.

Wenn der Boot0 Pin auf high gelegt wird dann wird korrekt in den
Bootloadermodus gestartet und das Programm kann geflashed werden. Das 
funktioniert.

Wenn der Boot0 Pin auf low ist (Boot1 pin ist hierbei egal) dann 
funktioniert der Bootloadermodus NICHT. Also kann nach meiner Logik dann 
nur noch der Programmausführungsmodus aktiviert sein.

Ich denke das ist ein Softwareproblem. Die Hardware scheint in Ordnung 
zu sein.

von Rainer S. (rsonline)


Lesenswert?

Hat jemand eine Idee?

von (prx) A. K. (prx)


Lesenswert?

Rainer S. schrieb:

> Hat jemand eine Idee?

Nein, meine Klaskugel zeigt leider nur wirres Zeug an und der Hersteller 
weigert sich, sie auf Kulanz zu reparieren. Sagt, das wäre "works as 
designed".

von Rainer S. (rsonline)


Lesenswert?

A. K. schrieb:
> Nein, meine Klaskugel zeigt leider nur wirres Zeug an

Was kaufst Du Dir auch so'n Zeug?

von (prx) A. K. (prx)


Lesenswert?

Yep. Nimm lieber nen LM3.

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.