[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:23860] Re: シリアル入出力バッファの指定方法は?



大槻です

> 今ちょっと眺めていますが、tty の中でごちゃごちゃバッファリング
> していますねぇ。tty_flip_buffer をキーワードにして追っかけてく
> と捕まるかも。これ自体は 1024 byte バッファのようには見えますが。

512*2確かに1024ですね。

dmesgで下記のラインがあったため16550Aだと思っていたのですが勘違いでした
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ちょっと調べてみたのですが16550Aのバッファは16バイトでした、これだと
ttyのドライバが1024byteバッファを持っていたとしても、私のこの現状だと
受信が1024か16バイトになるはずだと思い、これはおかしいとマザーボード
(ASUS ME-99を使っています)のマニュアルを見てもシリアルのICことは書かれて
いなくて、ASUSホームページも不発でした。
憶測ですが 16550A互換でバッファが4096バイト相当のものがチップセットに含ま
れているようです。結構大きなバッファが16550Aに用意されているのはIrDAをサ
ポートしているためと思われます。

> あ、これは駄目です。現象は相手側のマイコンがとれないのではなく、
> linux 側が落としているんです。stty で -ixon -crtscts している
> んで、自分の出力が止められなくって自分の受信側で落としています。
> マイコン側で XON/OFF が受けられないなら crtscts にしてrs485 変
> 換のところか、そこまでのケーブルで細工すれば何とかなりそうだと
> は思います。

現在やろうとしている通信はコントロール線は一切無いためcrtsctsも使えません。



1024以上のデータを送信するときは1024ずつの送信と受信を繰り返すことにのし
ました、4096でないのは16550A互換のものが4096のバッファを持っていないもの
も存在するかもしれないためttyドライバーの1024の方に合わせました。
一応、通信は正常に行われています。


かねこさん、いろいろと答えていただきありがとうございました。


_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/  Yasuhiro Ootuki(大槻恭裕)            _/_/
_/_/  E-mail:otuki@xxxxxxxxxx              _/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/