このライブラリは、イーサネット ドライバー上に ARP、IPv4、UDP、DNS、および DHCP プロトコルを実装するモジュラー ネットワーク スタックです。これは、ハードウェアに依存しないコアと、STM32F7xx および STM32F4xx ボード用の特定のドライバーの 2 つの部分に分かれています。これにより、プロジェクトへの IPv4 ネットワーク アクセスを簡単に提供できるようになります。このライブラリは、ネットワーク トラフィックをキャプチャして分析するために EtherScope プロジェクトによって利用されます (https://github.com/stcarrez/etherscope を参照)。
次のプロトコルがサポートされています。
コア部分には依存関係はありませんが、STM32 ドライバーはそこで定義された MDIO インターフェイスを実装するため、イーサネット クレートに依存します。
Alire でライブラリを使用するにはalr with enet
実行するだけです (コア部分の場合)。 STM32 ドライバーを使用するにはalr with enet_stm32
実行します。
詳細については Wiki を参照してください。
簡単な ping_text_io デモを提供します。このデモは特定のボードから独立しており、必要なランタイムを提供することでビルドできます。次に例を示します。
alr -C demos/ping_text_io/ build -- -XRUNTIME=embedded-stm32f746disco
実行可能ファイルをフラッシュすると、ボードは DHCP 経由で IP アドレスを受け取り、デフォルト ゲートウェイに ping を送信します。標準の Ada.Text_IO ルーチンを使用して発行された ping メッセージを確認できます。
さまざまなネットワーク機能の使用方法を説明するために、4 つの追加のデモ アプリケーションが提供されています。実行するには、STM32F429、STM32F746、または STM32F769 Discovery ボードが必要です。これらの例は Ada_Drivers_Library に依存しており、ビルドに Alire を使用しません。代わりに、 PATH
に GNAT ARM クロス ツールチェーンがあることを確認してから、次を実行します。
configure --with-board=stm32f746 # or stm32f769 or stm32f429
次に、 make checkout
を実行して必要な依存関係をダウンロードします。最後に、 make all
実行すると 4 つのデモすべてがビルドされます。
デモ アプリケーションは、DHCP クライアントを使用して IPv4 アドレスを取得し、デフォルト ゲートウェイと DNS を取得します。
一部のデモ アプリケーションでは、 demos/utils/demo.adbファイルを編集し、次の行のコメントを解除して変更することで、静的 IP 構成に切り替えることができます。
Ifnet.Ip := ( 192 , 168 , 1 , 2 );
Ifnet.Gateway := ( 192 , 168 , 1 , 240 );
Ifnet.Dns := ( 192 , 168 , 1 , 240 );
次の行をコメント化して DHCP 構成を無効にします。
-- Dhcp.Initialize (Ifnet'Access);
ping アプリケーションは、複数のホスト上で単純な ping を実装し、STM32F LCD ディスプレイに ping カウンタを表示します。アプリケーションは ping リクエストにも応答します。
Ping アプリケーションを構築するには、次のコマンドを実行します。
make ping
ping イメージをフラッシュするには、以下を使用できます。
make flash-ping
エコー アプリケーションは、受信したパケットをエコーする単純な UDP サーバーを示します (RFC 862)。 UDP ポート 7 でリッスンし、UDP パケットをループして待機し、パケットを返し、STM32 LCD ディスプレイに表示される受信パケットのカウンターを増分します。エコー アプリケーションについては、記事「STM32F746 の Simple UDP Echo Server」で説明されています。
Echo アプリケーションを構築するには、次のコマンドを実行します。
make echo
エコー画像をフラッシュするには、以下を使用できます。
make flash-echo
また、echo UDP サーバーをテストするには、GNU/Linux でsocatコマンドを使用できます。例えば:
echo -n ' Hello! Ada is great! ' | socat - UDP:192.168.1.156:7
DNS アプリケーションは、DNS にクエリを実行してホストのリストを解決する単純な DNS クライアント リゾルバーを示します。
DNS アプリケーションを構築するには、次のコマンドを実行します。
make dns
DNS イメージをフラッシュするには、次を使用できます。
make flash-dns
時刻アプリケーションは、NTP クライアントを使用して NTP サーバーから GMT 日付を取得し、NTP 同期が得られるとすぐに GMT 時刻を表示します。アプリケーションは ping リクエストにも応答します。
Time アプリケーションを構築するには、次のコマンドを実行します。
make time
時間画像をフラッシュするには、次を使用できます。
make flash-time
Apache-2.0 © Stephane Carrez