UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 20636

7.1 / 6.3 EDK LwIP v2.0 - 複数のソケットを作成し使用すると、ソフトウェアが 3 番目の accept() ルーチンで停止する

説明

キーワード : threads, Xilkernel, XMK, accept, スレッド

重要度 : 標準

概要 :
LWIP v2.0 のソケット ライブラリを EDK 6.3.1 または 6.3.2 で使用しています。 マルチ スレッドでソケットを作成し、使用していました。 しかし、6 つのソケットを 3 つの異なるポート接続で同時に使用すると、ソフトウェアが 3 番目の accept() ルーチンで停止してしまいます。 この問題は、接続の順序に関係なく発生します。

ソリューション

この問題は、 EDK 6.3 XPS/MLD のバグに起因して発生します。 ソケット メモリ コンフィギュレーション オプション カテゴリと呼ばれるカテゴリがありますが、表示はされません。このカテゴリは、SOCKETS_API に設定した API_MODE に依存しています。 この問題は、EDK 7.1 で修正される予定です。

修正されるまでの間、この問題を回避するには、次の手順に従ってください。
1. sw_services ディレクトリをプロジェクト内に作成します。
2. 手順 1 で作成した sw_services ディレクトリに $XILINX_EDK/sw/lib/sw_services/lwip_v2_00_a をコピーします。
3. socket_memory_options 用の sw_services/lwip_v2_00_a/data/lwip_v2_1_0.mld ファイルを編集します。

次の値を変更してください。
memp_num_netbuf = 25
memp_num_netconn = 30
memp_num_api_msg = 15
memp_num_tcpip_msg = 15

これらの値を変更し、LWIP メモリ オプションを増加させます。

さらに、XilKernel の設定に次のパラメータを含める必要があります。

max_sem = 50
AR# 20636
日付 04/13/2007
ステータス アーカイブ
種類 一般
このページをブックマークに追加