STM32 Nucleo vom Raspberry Pi flashen

Ich verwende ein STM32 Nucleo-Board, das mit einem Raspberry Pi verbunden ist. Um die MCU zu flashen, lege ich eine Binärdatei auf ein gemountetes Laufwerk. Das Problem ist, dass es eine zufällige und manchmal lange Zeit dauert, von dem Moment an, in dem ich die Datei ablege, bis zum tatsächlichen Moment, in dem die MCU geflasht wird. Im Gegensatz dazu habe ich ein sofortiges Ergebnis, wenn ich von Windows aus flashe. Gibt es eine Möglichkeit, den Prozess zu beschleunigen?

Nucleo und RPi sind Teile eines Roboters. Wenn es geladen ist, habe ich keinen Zugriff auf den USB-Eingang. Wenn ich über das RPi flashe, kann ich drahtlos flashen.
Die Größe ist kein Problem, wenn ich von Windows flashe.
Sie sollten die Flash-Methode beschreiben, die auf dem RPi implementiert ist.
Um den Flash-Vorgang näher auszuführen: Der Nucleo wird auf dem RPi als Flash-Laufwerk in einem bestimmten Ordner gemountet. Um es tatsächlich zu flashen, kopiere ich die Binärdatei mit WinSCP in den oben genannten Ordner. Ich habe versucht, die Datei aus dem RPi selbst zu kopieren, mit dem gleichen Ergebnis.

Antworten (1)

Linux denkt, dass es sich nur um einen externen Speicher handelt, und hält (cacht) Schreibvorgänge zurück, während es gemountet ist. Sie können es versuchen

  • umountdie Nucleo-Schnittstelle nach dem Kopieren, wodurch alles zurückgeschrieben werden muss
  • Geben Sie nach dem Kopieren einen syncBefehl aus
  • mounten Sie es mit, -o syncum das Schreib-Caching zu deaktivieren.

Die ersten beiden Methoden werden bevorzugt -o sync(solange sie funktionieren), da Schreibvorgänge immer noch zwischengespeichert werden, bis das System angewiesen wird, alles zu schreiben, wodurch weniger Flash-Schreibzyklen verbraucht werden.

Wenn keines der oben genannten Dinge zuverlässig funktioniert, installieren Sie openocd oder texane st-link auf dem Pi und verwenden Sie das zum Flashen.

@sas Vergiss nicht, diese Antwort dann zu akzeptieren, indem du auf das Häkchen klickst. :)