Ich verwende für meine Anwendung einen STM32L031 mit Eclipse. Im Debug-Modus funktioniert alles einwandfrei. Aber wenn ich den Debug-Modus stoppe oder das Gerät aus- und wieder einschalte, funktioniert der STM32L031 nicht mehr.
Ich hatte erwartet, dass es nach dem Herunterladen des Codes in den Chip funktionieren sollte, wenn ich ihn einschalte.
Und da ich kein Evaluierungsboard verwende, gibt es keine Reset-Taste, sodass ich es nicht zurücksetzen kann.
Wie kann man dieses Problem lösen? Oder gibt es eine Möglichkeit, den Chip zurückzusetzen, ohne dass die Reset-Tastenhardware erforderlich ist?
Eine Sache, die die Ausführung verhindern kann, ist, wenn Sie Semi-Hosting verwenden. Versuchen Sie in Ihren Projekteigenschaften, die folgenden zwei Symbole zu entfernen:
Ich habe mehrere Projekte, und nur bei einigen muss Semi-Hosting entfernt werden. Ich habe noch nicht herausgefunden, warum es für einige notwendig ist und für andere nicht ...
Oh, und wenn das Aus- und Wiedereinschalten des Boards nicht funktioniert, würde ein Reset-Knopf auch nicht funktionieren.
printf()
. Wenn Sie diese Funktionen nicht aufrufen, unterscheidet sich Ihre Anwendung mit und ohne Semihosting nicht.main
, im Gegensatz zu "nicht gehosteten" Anwendungen, die mit so etwas wie beginnen __program_start
. Übrigens, wenn Sie ungehostet laufen, müssen Sie STDOUT selbst initialisieren, bevor Sie verwenden können printf
, aber das ist möglicherweise nicht der einzige Unterschied.
Sean Houlihane
Arsenal
Chris Stratton
Sean Houlihane
jaskij
Dmitri Grigorjew