Skip to content

Instantly share code, notes, and snippets.

@eggman
Created July 22, 2016 02:26
Show Gist options
  • Save eggman/41baa74fb13992df8a21b085f85339c3 to your computer and use it in GitHub Desktop.
Save eggman/41baa74fb13992df8a21b085f85339c3 to your computer and use it in GitHub Desktop.
espthernet のソースコードを読んでみました。
このソフトウェアの特徴は、「ESP8266 + I2S = Software-based 10-Base-T Ethernet Driver」の部分です。
802.11のフレーム受信から有線eternetの送信までを追っかけてみました。
# promisc_cb
* sendbuffer[]にバッファを詰める
# TickPacketSet
* propTaskで定期的に呼ばれる。
* TCPのバッファにヘッダを書く
# TickTCP
* タイマーイベントでmyTimer()から定期的に呼ばれる。
* et_xmitpacketを呼ぶ
# et_xmitpacket
* crcを付加する
* SendPacketDataを呼ぶ
# SendPacketData
* データをマンチェスタ符号化しながら、DMAでI2Sのバッファにコピーする。
* SendI2SPacketを呼ぶ
# SendI2SPacket
* I2Sの端子から送信
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment