1. Nios® Vエンベデッド・プロセッサーについて
2. Quartus® Prime開発ソフトウェアおよびプラットフォーム・デザイナーでの Nios® Vプロセッサー・ハードウェア・システム・デザイン
3. Nios® Vプロセッサーのソフトウェア・システム・デザイン
4. Nios® Vプロセッサーのコンフィグレーションとブート・ソリューション
5. Nios® Vプロセッサー: MicroC/TCP-IPスタックの使用
6. Nios® Vプロセッサーのデバッグ、検証、およびシミュレーション
7. Nios® Vプロセッサー: リモート・システム・アップデート
8. Nios® Vプロセッサー: カスタム命令の使用
9. Nios® Vエンベデッド・プロセッサー・デザイン・ハンドブックのアーカイブ
10. Nios® Vエンベデッド・プロセッサー・デザイン・ハンドブックの改訂履歴
5.7.3.2. ネットワーク・インターフェイスのコンフィグレーション
µC/TCP-IPは、受信および送信データをネットワーク・バッファー (受信バッファーおよび送信バッファーとも呼ばれる) に格納します。これらのネットワーク・バッファーのサイズは、ネットワーク・インターフェイスの最小および最大パケット・フレーム・サイズに対応している必要があります。
µC/TCP-IPアプリケーションの要件に基づき、software/app/uc_tcp_ip_init.c ソースコードで、ニーズをより満たすようにネットワーク・バッファーをコンフィグレーションします。コンフィグレーション可能なネットワーク・バッファーは次のとおりです。
- 大容量受信バッファー
- 大容量送信バッファー
- 小容量送信バッファー
大容量バッファーのサイズは最大フレームサイズで維持するのが最適です。小容量バッファーのサイズを小さくしてシステムの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 = "",
};
6 このフィールドは、メインメモリーの場合は NET_IF_MEM_TYPE_MAIN に設定し、専用記述子メモリーの場合は NET_IF_MEM_TYPE_DEDICATED に設定する必要があります。
7 NET_IF_MEM_TYPE_DEDICATED に設定できるバッファータイプは1つだけです (受信バッファーまたは送信バッファー)。
8 このフィールドは、NUM_RX_LISTS および ALTERA_TSE_MSGDMA_RX_DESC_CHAIN_SIZE に基づき導出されます。
9 専用の記述子メモリーがシステムにない場合は、このフィールドを NULL に設定する必要があります。