Hallo zusammen,
ich entwickle unter embedded Linux Software für den Freescale iMX6 Prozessor in C.
dabei ich habe folgendes Problem: wenn ich unter embedded Linux eine ganz normal ASCII-Datei mit einer Größe von ca 100 kB über eine serielle Schnittstelle und Linux an ein Terminalprogramm (hterm) auf einen Windows-PC senden will, wird die Übertragung nach 6143 bzw 4095 Bytes mit der Meldung 'File sent successfully, 6143 Bytes...' abgebrochen. Ich verwende keine Handshake-Signale, sondern übergebe die ASCII-File direkt über den 'write'-Befehl an die Schnittstelle.
Das Programm stürzt hierbei nicht ab, sondern macht so weiter, als wäre die Datei nur 6 kB lang gewesen. Die Schnittstelle funktioniert ansonsten sende- und auch empfangsmäßig einwandfrei. Ich habe schon versucht, die verschiedensten Parameter des UART zu ändern, alles erfolglos.
Deshalb meine Frage:
Kann es sein, dass Linux intern einen eigenen (UART)-Sendepuffer mit ca 6 kB hat, auf den man keinen direkten Zugriff hat? Wenn ja, wie kann ich den verändern? Oder gibt es eine andere Möglichkeit, den UART anderweitig zum richtigen fumktionieren zu überreden?
Ich bin ziemlicher Linux-Neuling und tue mich manchmal schon noch schwer. Auch habe ich über Google nichts gefunden, was mir weiterhelfen könnte.
Deshalb hoffe ich, dass ich hier im Forum evtl. eine vernünftige Antwort erhalte.
Bei Fragen hierzu bitte melden!
Für eure Antworten bedanke ich mich schon mal im Voraus.
LG
Roland
Lesezeichen