Ich habe mir mit STM32CubeMX eine Programmstruktur mit den benötigen
IOs, Timern etc. erzeugt. Das Ganze ist ohne Fehlermeldung compiliert
worden (mit OpenSTM32 in Eclipse). Ich habe das erzeugte Hex-file
spaßeshalber mal geflasht, sinnvollen Inhalt hat der Code ja noch
keinen, es wird nur die ganze Peripherie initialisiert. Nach dem Flashen
ist nun der Controller mit dem ST-Link-Utility nicht mehr ansprechbar.
Ich habe die Clock auf internen Oszillator gestellt, da kein externer
angeschlossen ist.
Danke für die schnelle Antwort! Und was heißt das? Wie bekomme ich den
Prozessor wieder ans Leben?
Die Suche nach "SWD nicht eingeschaltet" hat mich nicht
weitergebracht...
Gruß
hochsitzcola
Vermutlich deaktiviert dein Programm die SWD Schnittstelle.
Während des Reset ist sie aktiv. Du musst dann die Einstellung "Connect
under Reset" benutzen, den Reset Knopf gedrückt halten und im richtigen
Moment beim Verbindungsaufbau loslassen.
pegel schrieb:> Aber wieso nimmst du das ST-Link-Utility?> Das SW4STM32 hat ein OpenOcd zum debuggen und flashen eingebaut.
Ist doch egal, das macht hier keinen Unterschied.
pegel schrieb:> Das SW4STM32 hat ein OpenOcd zum debuggen und flashen eingebaut.
Das habe ich nicht ans Laufen bekommen. Es gibt Fehlermeldungen in einem
PopUp-Fenster:
Bei meinem BluePill hatte ich Anfangs auch solche Probleme.
1. in der <Projekt>.cfg musste das srst_only entfernt werden
2. Pfad und Dateiname waren zu lang
3. habe die <Projekt>.cfg in den workspace (einen Pfad höher) gelegt und
ihr einen kürzeren Namen gegeben
4. diese in der Debug configuration auswählen
hochsitzcola schrieb:> Error: timed out while waiting for target halted> TARGET: STM32F103C6Tx.cpu - Not halted> in procedure 'reset'
Du hast hier wie gesagt das gleiche Problem wie mit der ST-Link
Software. Er kann die CPU nicht anhalten, weil SWD deaktiviert ist. Auch
hier kannst du die Option "Connect under Reset" mit manuellem Druck auf
die Reset Taste kombinieren.
Also in sw4stm32 kann man bei neueren Versionen bei den
Starteinstellungen das Script konfigurieren und eine der Optionen ist
für Hardware/Software reset.
> Hm, die .cfg Datei wird bei jedem Mal neu erzeugt.
Nicht wenn du in den Debugger Optionen bei "Configuration Script" die
Option "User Defined" einstellt.
> Also in sw4stm32 kann man bei neueren Versionen bei den> Starteinstellungen das Script konfigurieren und eine der> Optionen ist für Hardware/Software reset.
Genau. Lies das mal:
http://stefanfrings.de/stm32/index.html#swj
Ahh, ich musste die "generator options" erst ausklappen. Jetzt habe ich
auf "Software system reset" gestellt, jetzt klappt es!
Vielen Dank für die Hilfe!
Gruß
hochsitzcola
hochsitzcola schrieb:> Jetzt habe ich> auf "Software system reset" gestellt, jetzt klappt es!
Dann ist bei Dir die SWD Schnittstelle nicht deaktiviert. So ist es
praktischer.
hochsitzcola schrieb:> Hm, die .cfg Datei wird bei jedem Mal neu erzeugt. Somit kann ich die> Zeilen mit dem reset auskommentieren, das wird gleich wieder> überschrieben...>>
1
>
2
> # This is an LishuiFOC_01 board with a single STM32F103C6Tx chip
3
...
4
>
Ist denn Dein Board das oben bezeichnete? Oder ist es ein Anderes?
Das der Verbindungsaufbau mit einem manuellen Reset funktioniert, sonst
aber nicht, ist mit den Informationen die ich hier sonst lese, erst mal
ein Zeichen, dass Reset entweder nicht angeschlossen ist oder irgendwie
exotisch verdrahtet; was ja vorkommt.
Dass es mit Entfernung von srst_only geht, könnte das bestätigen,
widerspricht dem jedenfalls nicht. Vermutlich nutzt er dann das
JTAG-Reset.
Um das für die Zukunft und andere Fälle resp. Fragesteller nutzen zu
können, wären ein paar Details hilfreich. Mindestens aber, die
Bezeichnung des Boards bzw. der Schaltplan.
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