l búfer del puerto serie Linux no está vacío al abrir el dispositi

Tengo un sistema en el que veo un comportamiento extraño con los puertos serie que no espero. Anteriormente he visto esto en ocasiones con adaptadores USB a serie, pero ahora también lo veo en puertos serie nativos, con mucha mayor frecuencia.

El sistema está configurado para ejecutar pruebas automatizadas y primero realizará algunas tareas que provocan que se genere una gran cantidad de datos desde el dispositivo en serie mientras no tenga los puertos abiertos. El dispositivo también se reiniciará. Solo las líneas tx / rx están conectadas. No hay control de flujo.

Después de completar estas tareas, el software de prueba abre los puertos serie e inmediatamente falla porque recibe respuestas inesperadas. Cuando reproduzco esto, descubrí que si abro el puerto serie en un programa de terminal, veo varios kilobytes de datos antiguos (que parecen haber sido enviados cuando se cerró el puerto) inmediatamente vaciados. Una vez que cierre este programa, puedo ejecutar las pruebas como se esperaba.

¿Qué podría hacer que esto suceda? ¿Cómo maneja Linux el almacenamiento en búfer del puerto serie cuando el dispositivo está cerrado? Si abriera un dispositivo, hiciera que enviara salida y luego lo cerrara sin leerlo, ¿esto causaría el mismo problema?

Respuestas a la pregunta(1)

Su respuesta a la pregunta