[Suzaku:01192] Re: TCP/IP通信時の他のプログラムの実行について
kawaoka
email@hidden
2008年 7月 6日 (日) 11:14:49 JST
川岡です。
ごくハード的な手法ですが、FIFOを実装されてはいかがでしょうか。
センサ読み込み -> FIFO(数kバイト) -> CPU
としてあげれば、FIFO部でかなりの時間が稼ぐことができます。
FIFOを実装しないと、データを取りこぼす可能性があると思います。
データは1KHz程度とのことなので、
ソフトがドライバ内で動作している間は、もしかしたら問題ないかもしれませんが、
アプリケーションに返ったあと、スケジューリングで次の1mSまでに
動作させてもらえるかは保証できないところかと思われます。
ADボードやAVボードなどもFIFOを実装して、
データの取りこぼしが無いようにしています。
参考にしていただければと思います。
http://suzaku.atmark-techno.com/series/ad-board
http://suzaku.atmark-techno.com/series/av-board
Ken-ichiro Ishikawa さんは書きました:
> suzakuMLの皆様。
>
> 石川と申します。
>
> よろしくお願いします。
>
> SUZAKU-Vを使ってリアルタイムにFPGA部に接続されたセンサの値を取得しながら
> TCP/IPでPCにセンサの値を送るプログラムを作っています。
>
> いろいろ試してみたのですが
> TCP/IPのソケットにwriteで送りたいデータを書き込んで
> データを転送しようとすると他のプログラムがその間止まってしまうらしく
> センサのデータを拾い損ねてしまいます。
>
> SZ310でuClinux-dist-20040408を使って開発をしてます。
> FPGA→ドライバ→ドライバから受け取りファイルに書き出すプログラム→本体のプログラム
> という構成になっています。
> 1KHzで測定しているのですが、通信を始めると100個前後データを測定できません。
>
> 通信を細切れにしたり、ノンブロッキングにしたりといろいろしているのですが、
> 通信をしてしまうと測定できないデータが出てしまうようです。
>
> 何か良い方法はないでしょうか?お知恵をお貸しください。
> _______________________________________________
> suzaku mailing list
> email@hidden
> http://lists.atmark-techno.com/mailman/listinfo/suzaku
suzaku メーリングリストの案内