Intermitente STM32 Nucleo de Raspberry Pi

Estoy usando una placa STM32 Nucleo conectada a una Raspberry Pi. Para actualizar la MCU, coloco un archivo binario en una unidad montada. El problema es que toma un tiempo aleatorio, y a veces largo, desde el momento en que dejo caer el archivo hasta el momento real en que se flashea la MCU. En cambio, tengo un resultado instantáneo al flashear desde Windows. ¿Hay alguna manera de acelerar el proceso?

El Nucleo y el RPi son partes de un robot. Cuando está cargado, no tengo acceso a la entrada USB. Cuando parpadeo a través del RPi, puedo hacerlo de forma inalámbrica.
El tamaño no es un problema cuando parpadeo desde Windows.
Debe describir el método de flasheo, implementado en el RPi.
Para profundizar en el proceso de flasheo: el Nucleo se monta en el RPi como una unidad flash en una carpeta específica. Para actualizarlo, copio el archivo binario a la carpeta mencionada anteriormente usando WinSCP. Intenté copiar el archivo desde el propio RPi con el mismo resultado.

Respuestas (1)

Linux piensa que es solo un almacenamiento externo y retiene las escrituras (cachés) mientras está montado. Puedes intentar

  • umountla interfaz de Nucleo después de la copia, lo que obliga a que todo se reescriba
  • emitir un synccomando después de copiar
  • montarlo con -o syncpara deshabilitar el almacenamiento en caché de escritura.

Se prefieren los primeros dos métodos -o sync(siempre y cuando funcionen), porque las escrituras aún se almacenan en caché hasta que se le indica al sistema que escriba todo, utilizando menos ciclos de escritura flash.

Si nada de lo anterior funciona de manera confiable, instale openocd o texane st-link en el pi y utilícelo para flashear.

@sas No olvide aceptar esta respuesta haciendo clic en la marca de verificación. :)