Linux serielle Schnittstelle buffer nicht leer beim öffnen Gerät

Ich habe ein system wo ich da ein merkwürdiges Verhalten mit der seriellen ports dass ich nicht erwarten. Ich habe vorher gesehen das bei Gelegenheit mit usb-zu-Seriell-Adapter, aber ich bin jetzt sehen, es auf native serial-ports als auch mit viel größerer Häufigkeit.

Das system eingerichtet ist, führen Sie automatisierte tests und führen Sie zunächst einige Aufgaben, die zu einer großen Menge an Daten, die ausgegeben werden von der seriellen Gerät, während ich nicht die ports öffnen. Das Gerät wird auch zurückgesetzt. Nur die tx/rx-Leitungen verbunden sind. Es gibt keine flow-control.

Nachdem diese Aufgaben abgeschlossen sind, die testware öffnet den seriellen Port und sofort schlägt fehl, da bekommt er unerwartete Antworten. Wenn ich Schreibe das, fand ich, dass wenn ich öffnen Sie die serielle Schnittstelle in einem terminal-Programm, ich sehe einige Kilobyte der alten Daten (die wird angezeigt, gesendet wurden, wenn der port geschlossen wurde) sofort gespült. Sobald ich in der Nähe dieses Programm kann ich dann die tests ausführen wie erwartet.

Was könnte dies geschehen? Wie funktioniert Linux behandeln die Pufferung der seriellen Schnittstelle, wenn das Gerät geschlossen ist? Wenn ich ein Gerät neu geöffnet, machte ihn zu senden, und dann wird es geschlossen ohne zu Lesen, würde dies dazu führen, die gleichen problem?

InformationsquelleAutor djs | 2011-11-10
Schreibe einen Kommentar