[Armadillo:02091] Re: シリアル受信でデータ取りこぼし

Yasushi SHOJI email@hidden
2007年 9月 26日 (水) 16:25:58 JST


Hiroki Nakamura さんは書きました:
> ご回答有難うございます。
> 
>> a9の com2はフロー制御できませんが、だいじょうぶですか?
> 
> 大丈夫でないです。

(^^;

http://armadillo.atmark-techno.com/howto/free-com1

>> としていると思うのですが、大量のデータの場合 do_something()に時間がか
>> かり、次のフレームを読み込めず fifoがあふれたりしませんか?
>> プログラムを「ただ読み捨てる」ように変更すると受信データ量が
>> 送信側と同じになりませんか?
> 
> 処理を軽減したところ、受信出来るようになりました。
> しかし、実際にはもっと大きいデータを扱う必要があるので、
> フロー制御(com1)の使用を検討する必要がありますね。

フロー制御しても良い環境であればそれが簡単かもしれませんね。

具体的には、どのような処理をしているかによりますが

 - thread化する
 - 逐次処理する ie. 1byteづつread()していくとか
 - とりあえず、溜め込む

など、通信パターンによっては他にも方法があるかもしれません。
-- 
          yashi

# serial driverのbufferサイズを変更できたような気がするが
# 思い出せない...



armadillo メーリングリストの案内