Catを使用してシリアルポートを介してファイルを転送するのは遅いです。

Catを使用してシリアルポートを介してファイルを転送するのは遅いです。

私はバイナリファイルを組み込みデバイスに転送するためにカスタムATコマンドセットを使用しています。

仮想マシン(Windows 7ホスト)でLubuntu Linuxを実行しており、仮想Linuxゲストが物理シリアルポートを制御します。

Windowsではこれを行う独自のソフトウェアがあり、Linuxではbashコンソールを使用します。

速度を115200ボードに設定しました。

stty -F /dev/ttyS0 115200

前後を確認してみると速度が9600から115200に出ましたね。

私は命令を送る

echo -ne "AT\r" > /dev/ttyS0

私が実行した他の端末から返信を読みました。

cat /dev/ttyS0

問題は、デバイスがバイナリをフラッシュする必要があるときに特定のATコマンドを送信し、デバイスがストリームを待つことです。次に入力します。

cat $myFile > /dev/ttyS0

すべてが機能しますが、必要以上に時間がかかります。 600kファイルは約10分かかり、115200ボードでは約1分かかります。

ボトルネックは何ですか? VirtualBoxですか、それとも「cat」コマンドですか?何らかの理由で認知速度がデフォルト9600で停止していますか?

ありがとう

関連情報