土谷@気がついたら1年以上ROMしてました、です。
> CMOS-EYEというカメラのボードからRS232C、115200bpsで画像
> の信号(320x240x3(RGB))が出て来ます。ハード的にハンドシェ
> ークの機能はなく、getchar(標準入出力経由)でも、fgetcで
> も、readを使っても、数%くらいデータを取りこぼします。ボー
> ドの付録のWindows用画像ビューワでは取りこぼしが起こらない
> ので、なんとかLinuxでも画像ビューワを作りたいのですが、、、
> シリアルポートを読んでいるときは「他の仕事動くな、ちょとま
> て」みたいなことは出来ないのでしょうか?
スペックが同等のPCで比較した場合、LinuxよりもWindowsの方が
よっぽど取りこぼしが発生しやすいと思います。
もし、同等PCでLinuxだけで発生するのであれば、デバイスドライバ
の相性とか、プログラムミスの方を疑った方がいいでしょう。
私だったらこのあたりを調べるだろうな、という項目を列挙しますが、
釈迦に説法の内容でしたら、ごめんなさいです。
1. シリアルインタフェースが他のデバイスと割り込みをシェアして
いないか?
dmesg | grep ttyS
cat /proc/interrupts
2. ボーレート、ビット長、パリティの設定は正しいか?
3. cfmakeraw()関数等を使用してちゃんとRawModeに設定されているか?
4. topコマンドでCPU使用率を観察し、異常なプロセスがないか?
あと、もしUSB-Serial変換ケーブルを使用している場合は、別メーカの
変換ケーブルを試すと状況が変わるかも知れません。
--
土谷@習志野
m.tsuchiya@xxxxx