« 英語アナウンス | トップページ | 資金とか »

2019年7月25日 (木)

stm32のEthernet MAC

簡単なUDP/IPスタックを実装して、PCとデータのやり取りをする。

まあまあ動くものはできているんだけど、色々ブラッシュアップ。
送信バッファを多重化して、転送速度を稼ぎたい、と思って色々トライ。

フルスペックのTCP/IPプロトコルスタックは、色々な理由で使いたくない。
まあ、やりたいことは少ない/大したことじゃないのに、
リソースを食われたくない、とかまあありがちな理由。

さりとて速度自体は欲しいので、ハードウエア的に用意されている
DMAだのなんだの、高速化のための機能は十分使いたい
この辺は自前でスタック作りたい理由でもあるな...


どうにも、この辺りになってくると、参考にできるドキュメントが少ない。

そりゃま、テクニカルシートには最低限の事しか書かない
(ボリューム的に書けない)し、これ以上詳しいことは、
実際のコード見てね、って事だろうから、まあ仕方ない。

TCP/IPプロトコルスタック、まともに書いたら、
最低限機能する だけ としても、サンプルコードとかの
ボリュームに収まらないだろうしね。

なので、リファレンスマニュアルとwiresharkあたりで
実機デバッグ(トライ?)に励むことになる。

------

受信バッファと送信バッファ、それぞれ別に管理されているんだけど
それ用のディスクリプタの構造、というかバッファの取り扱いが
送受信で微妙に違う(処理済みフラグに対する挙動と言うか...)

これに気づけなかったので、送信ディスクリプタ/バッファが
ずっと一つしか使えてなかったんだけど、やっと理解できたようだ。

とりあえず、4つのバッファを順番に使ってパケット送信
出来るようになった。
これで、ようやく他の所も進められる。

まあ、楽しいんだけど、時間が無限に溶けるな...

| |

« 英語アナウンス | トップページ | 資金とか »

コメント

コメントを書く



(ウェブ上には掲載しません)




« 英語アナウンス | トップページ | 資金とか »