こんにちはチーム、
あいさつ!
私はIMXRT1170-EVKBボードに取り組み、デュアルイーサネット(ETH0とETH1)を実装して、100Mと1Gの速度で同時に動作するようにしています。
まず、同じワークスペース内でスタンドアロンモードで正常に動作するSDKサンプル「evkbmimxrt1170_lwip_ping_bm_cm7」をインポートしました。イーサネットポートの選択は、次のものを使用して制御されます。
- 「BOARD_NETWORK_USE_100M_ENET_PORT(1U)」
- 「BOARD_NETWORK_USE_100M_ENET_PORT(0U)」
ただし、両方のイーサネットポート(100Mと1G)を同時に有効にする必要があります。これを達成するために、私は持っています:
- lwIP を使用して 2 つのイーサネット インターフェイス (100M と 1G) を設定および初期化しました。
- 一意のMACアドレス、PHYリソース、およびクロック構成を割り当てました。
- 各インターフェースに「netif_100M」と「netif_1G」の構造体を作成しました。
ドライバーと設定ファイルの変更:
1. opt.h の "IP_FORWARD" を有効にしました。
2. 両方のイーサネットインターフェイスのping初期化をイネーブルに。
3.「lwipopts.h」を更新しました。
- 「LWIP_SINGLE_NETIF = 0」を設定すると、複数のインターフェイスが許可されます。
- 「LWIP_NUM_NETIF = 2」を設定して、ネットワークインターフェースの最大数を定義します。
これらの変更を統合すると、両方のイーサネット入力に対して ping を正常に送信できます。ただし、「1G イーサネット (ETH1) が応答する」だけで、「100M イーサネット (ETH0) は応答を受信しません」。
参照用に、ターミナルのスクリーンショットと完全に変更されたプロジェクト「evkbmimxrt1170_lwip_ping_bm_cm7」を添付しました。私の構成を確認し、この問題の原因となっている可能性のある不足している手順を提案していただけませんか?
ご指導を楽しみにしています。
お手数ですが、よろしくお願いいたします。
よろしくお願いいたします
クマール王子
こんにちはサム、
迅速な対応ありがとうございました。
提案どおりに変更を加えました。削除/コメント "netif_set_default(&netif_100M);」しかし、それでも同じ問題が発生します。たとえば、100Mからではなく、1Gからのみ応答を取得するpingのようなものです。
B.R.、
クマール王子