(toppers-users 1442) Re: データキューに入るデータのサイズについて

mkishida mkishida @ fecsi.furuno.co.jp
2004年 4月 30日 (金) 11:49:38 JST


きしだです
すいません、2回もメールを書かせるような事をして、、

Imai Kazuhiko wrote:

> 宮城県産業技術総合センターの今井です。
> 
> CQ出版Intercafe誌6月号のTOPPERS連載記事でデータキューについて
> おやっと思う箇所がありましたのでお送りします。
> (著者の岸田さんにご相談したところ、情報共有の意味でこちらに
> も投稿した方がよいだろうということになりました。)

いえいえ、お前が原因と言われればそれまでですが、ご指摘いただける
ことはしあわせだと思っています。
いきなりusers-MLに流していただいて結構ですので、気にせず指摘して
ください。ありがたく頂きます。
# 某社長のケンカ上等に通じる部分もありますが、、

> P170の囲み記事でデータキューに入るデータのサイズは16ビットと
> ありますが、実際はVP_INT型なので、データサイズはプロセッサや
> コンパイラに依存します。
> (int型とポインタ型のどちらでも格納できる。)

ご指摘、ありがとうございます。
これは修正記事としてあげておきます。

毎度ですが、そういう視点の補足が不足していますね。
図のコメントとして、「16bitの場合は」とか、入れておく必要はあると
認識していたのですが、完成図から抜けちゃってます。
すいません。

> μITRONで割り込みからのメール送信をサポートしていないのは、
> 「メール送信する前にメモリ確保が必要であり、割り込みハンドラ
> 内でそれを行うのは好ましくない」という理由からだと高田先生から
> お聞きしました。
> (その点、データキューであれば、コンパイル時にメモリ領域は
>  確保してあるので安全)

そうです、メモリ領域が確保されているで安全は安全です。
ただし、リングバッファのサイズは固定です。プロトコルスタックみたいに
階層構造であれば、各層との切り口でリングバッファを用意することに
なります。ボトルネックが怖いので私なら、全部同じ程度のサイズで
そろえるかもしれません。
メール送信であれば、リングバッファのサイズを気にする必要はありません。
限度はありますが、必要な所に必要なだけ、確保できます。

一度、MLに聞いたのもその辺りがあり、多分そうなんだろうと思ったの
ですが、プロトコルスタックを簡単に作る事を考えた時、メッセージ
駆動型の仕組みと状態遷移図があれば割合簡単に作れるのですが、その時
メール送信だと切り口が綺麗かなと。
# マルチCPUとかで、タスク分割後、各タスクをCPUに割付とか、、、
# 安物のCPUが佃煮みたいに載ってるボードとかが想像している対象に近い
# かもしれません。
# 386 20MHz x2 とか、8051 20MHz x5 とかで色々通信させたいのです。

こう言う時に、ethernetを選択し、ドライバを作るとすると、DMA転送用の
バッファを何本か用意するので、これをメール送信とかで使えると全体の
仕組みが判り良いかと思ったのです。
# 何本かと言う所が味噌で、同時に扱える量を規定してしまいかねません
# が、、、こういう部分が突込みどころなのでしょう。

やっぱり、と言うか、その時は、、
むらなか社長には「パフォ−マンス出ないでしょ?」って突っ込みを
うけました。着眼点が違いますね。
動けば良いんじゃない?なんていうスチャラカな考えを反省しております。

# ま、教育用途に限れば、TCP/IPの有名な3冊組の本そのままに実装しても
# 良いとは思います(やってみたいテーマでもありますし)

以上、参考になりました。
今後も宜しくお願いいたしますです。

では !

ps.
件のInterfaceの記事は、なんとか、全部のAPIの説明が終わり、次の方に
バトンを渡せそうです。
すいません、、

# 途中、何回か力尽きたとか、迷走したとかのありがたい御指摘は何時でも
# 歓迎して受けます。
# 俺ならこう書くと言う突っ込みも歓迎です。

# いや、思っているだけなら誰でもできるでしょうし、思っていても、形に
# 出来ない場合もありますが、それはそれ。
# 普段の蓄積が土壇場の力になると信じています。
# 突っ込みいただいた分は、どこかに何らかの形で残していく所存です。
# メモ書きでもなんでも意味がありそうと信じるならMLにでもなんでも入れて
# ください。
# 宜しく御願い致します。