[Armadillo:02131] Re: シリアル受信でデータ取りこぼし
mizo
email@hidden
2007年 9月 29日 (土) 19:01:53 JST
溝渕です。
確認した結果、ハードウェアフロー制御はONになっておりました。
確認方法ですが、
1: PC → Armadillo-9 へ10KBのデータをwrite()関数で一気に転送
2: Armadillo-9 側で、read(), sleep(1)を繰り返す
この際に、PC側から、statserialでシリアルポートを監視したところ、PC側の
CTSがon/offを繰り返していました。
また、テストに使用したArmadillo-9のユーザランドイメージですが、
http://armadillo.atmark-techno.com/howto/free-com1
にある、inittab(atmark-dist-20070914/vendors/AtmarkTechno/Armadillo-
9/etc/inittab)の変更までを行なった状態で、ビルドしたイメージを使用してい
ます。
>> また、この時、データを取りこぼしていました。
>> (5164byte送信して、5158byte受信)
確認していただきたいのですが、
struct termios newtio;
と宣言した場合に、
newtio.c_cc[VMIN]
の値はいくつに設定されているでしょうか?
select()でデータを待つ場合、この値以上のサイズのデータが来なければ、
select()を抜けません。
7以上の値を設定していたりはしないでしょうか?
よろしくお願いします。
armadillo メーリングリストの案内