インテルのみ表示可能 — GUID: hvv1645775209835
Ixiasoft
インテルのみ表示可能 — GUID: hvv1645775209835
Ixiasoft
5.7.3.2. ネットワーク・インターフェイスのコンフィグレーション
µC/TCP-IPは、受信および送信データをネットワーク・バッファー (受信バッファーおよび送信バッファーとも呼ばれる) に格納します。これらのネットワーク・バッファーのサイズは、ネットワーク・インターフェイスの最小および最大パケット・フレーム・サイズに対応している必要があります。
- 大容量受信バッファー
- 大容量送信バッファー
- 小容量送信バッファー
大容量バッファーのサイズは最大フレームサイズで維持するのが最適です。小容量バッファーのサイズを小さくしてシステムのRAM使用量を減らすことで、システム・パフォーマンスをさらに向上させることができます。さらに、デバイスに割り当てられる受信バッファーと送信バッファーの数をコンフィグレーションすることができます。各ネットワークに少なくとも1つのバッファーを指定する必要があることに注意してください。
ネットワーク・バッファーをコンフィグレーションしたら、それらを有効なメモリー位置 (メイン・システムメモリーまたは専用記述子メモリー) にレジスターします。専用の記述子メモリーを使用している場合は、ソースコードで記述子メモリーの開始アドレスとメモリースパンを定義します。
µC/TCP-IPのデザイン例におけるデフォルトのコンフィグレーションに関しては、ネットワーク・バッファーのコンフィグレーションの表を参照してください。専用の記述子メモリーはハードウェア・システムで提供され、受信バッファーにレジスターされます。送信バッファーは、メインメモリーにルーティングされます。
設定 | 詳細 | デフォルト値 |
---|---|---|
.RxBufPoolType | 受信データバッファーのメモリー位置 6 7 | NET_IF_MEM_TYPE_DEDICATED |
.RxBufLargeNbr | デバイスに割り当てられる受信バッファーの数 | NUM_RX_BUFFERS 8 |
.TxBufPoolType | 送信データバッファーのメモリー位置 6 7 | NET_IF_MEM_TYPE_MAIN |
.TxBufLargeNbr | デバイスに割り当てられる送信バッファーの数 | 5u |
.TxBufSmallSize | 小容量送信バッファーのサイズ | 60u |
.TxBufSmallNbr | デバイスに割り当てられる小容量送信バッファーの数 | 5u |
.MemAddr | 専用記述子メモリーの開始アドレス 9 | SYS_DESC_MEM_BASE |
.MemSize | 専用記述子メモリーのサイズ (バイト単位) | SYS_DESC_MEM_SPAN |
uc_tcp_ip_init.c におけるデフォルトのネットワーク・インターフェイスのコンフィグレーション
static const CPU_INT08U NUM_RX_LISTS = 2; static const NET_BUF_QTY NUM_RX_BUFFERS = 2 * NUM_RX_LISTS * ALTERA_TSE_MSGDMA_RX_DESC_CHAIN_SIZE; static NET_DEV_CFG_ETHER NetDev_Cfg_Ether_TSE = { .RxBufPoolType = NET_IF_MEM_TYPE_DEDICATED, .RxBufLargeSize = 1536u, .RxBufLargeNbr = NUM_RX_BUFFERS, .RxBufAlignOctets = 4u, .RxBufIxOffset = 2u, .TxBufPoolType = NET_IF_MEM_TYPE_MAIN, .TxBufLargeSize = 1518u, .TxBufLargeNbr = 5u, .TxBufSmallSize = 60u, .TxBufSmallNbr = 5u, .TxBufAlignOctets = 4u, .TxBufIxOffset = 0u, .MemAddr = SYS_DESC_MEM_BASE, .MemSize = SYS_DESC_MEM_SPAN, .Flags = NET_DEV_CFG_FLAG_NONE, .RxDescNbr = 8u, // NOTE: Not configurable. .TxDescNbr = 1u, // NOTE: Not configurable. .BaseAddr = 0, .DataBusSizeNbrBits = 0, .HW_AddrStr = "", };