RXイーサネット通信初心者...トラブル中です

こんにちは。ロジナカといいます。よろしくお願いします。今回RXを使ったイーサネット通信に初めて挑みます。なのでイーサネット通信"超"初心者です。スタートとしてGit-Hubに紹介がある記事をもとにコードを入力したのですがうまく動作しません。ある程度自分で戦ってはみたもののもはやバンザイ状態なので、イーサネット通信の"達人"様からアドバイスもらえますととてもありがたいです。

・もとにした記事→https://github.com/renesas/rx72n-envision-kit/wiki/1-Ether-TCP-IP

・ベアメタルでのイーサネット通信を習得したい

・ターゲット:RX72N Envision Kit

・e2studio 2022-07 + CC-RX v3.04.00

・ソースコード(添付します。ほとんど記事のまんまです。ただ記事のままだどビルドが通らないので多少改変しています)

※改変した点: 記事のままだと t4_driver.cにて r_tsip_rx_if.h がないと怒ってくるので、スマートコンフィギュレータから r_tsip_rx コンポーネントを追加しています。

・症状 GitHub記事ですと、出力結果が

Hello World
^^>>>user_cb<<< ch:0,eventID = ETHER_EV_LINK_ON
^^>>>user_cb<<< ch:0,eventID = DHCP_EV_INIT
^^>>>user_cb<<< ch:0,eventID = DHCP_EV_LEASE_IP
DHCP.ipaddr[4]   192.168.1.207
DHCP.maskaddr[4] 255.255.255.0
DHCP.gwaddr[4]   192.168.1.1
DHCP.dnsaddr[4]  192.168.1.1
DHCP.dnsaddr2[4] 0.0.0.0
DHCP.macaddr[6]  74:90:50:00:79:03
DHCP.domain[0]

のようになるとのことですが、私の環境だと
Hello World
^^>>>user_cb<<< ch:0,eventID = ETHER_EV_LINK_ON

で表示が止まってしまい、まてどくらせどそこから先が表示されません。

自力で調査した結果:
・LAN環境は問題ありません(HUBが壊れていたとか、LANケーブルが断線していたとかそういうオチは無し)
・コード中 lan_open() tcpudp_get_ramsize() tcpudp_open() の3つの関数がありますが、どれも正常な値ないしE_OKが返されています。

すみませんが、アドバイス頂けますととてもうれしいです(RXを使ったイーサネット通信をなんとかものにしたいので...)
よろしくお願いします。

RX72N_EnvisionTest_C1.zip





Parents
  • TO : ロジナカさん

    モッチーです、はじめまして。

    コードの内容を確認させて頂きました。
    t4_driver.cにてTSIP FITモジュールのAPI関数を呼び出しているのですが、R_TSIP_Open関数を呼び出す前にこれらのAPI関数が呼び出されているので、実行に失敗しているようです。
    main関数内でlan_open関数を実行する前にR_TSIP_Open関数を実行して、TSIP機能を使用可能な状態にしておくと上手くいくと思います。
    コードを見る限りEthernetとTCP/IP関連の設定は正しくできていると思います。

    #include "r_tsip_rx_if.h"

    ....

    R_TSIP_Open(NULL, NULL);

    以上よろしくお願いいたします。

  • モッチー様

    さっそくのご返信ありがとうございます!仰せの方法でできました!pingも通りました! これでRXを使ったイーサネットソフト開発の”海”へ船出できます!ありがとうございますっっ!

    (出航したものの、いきなり座礁する可能性”大”ですが、その時は懲りずにおつきあい下さるとうれしいです!)

    Hello World
    **R_TSIP_Open() success
    **lan_open() success.
    T4 work size=11276 OK
    **tcpudb_open() success.
    ^^>>>user_cb<<< ch:0,eventID = ETHER_EV_LINK_ON
    ^^>>>user_cb<<< ch:0,eventID = DHCP_EV_INIT
    ^^>>>user_cb<<< ch:0,eventID = DHCP_EV_LEASE_IP
    DHCP.ipaddr[4]   192.168.1.73
    DHCP.maskaddr[4] 255.255.255.0
    DHCP.gwaddr[4]   192.168.1.1
    DHCP.dnsaddr[4]  192.168.1.1
    DHCP.dnsaddr2[4] 0.0.0.0
    DHCP.macaddr[6]  74:90:50:10:FE:77
    DHCP.domain[0]

    Microsoft Windows [Version 10.0.18363.1379]
    (c) 2019 Microsoft Corporation. All rights reserved.

    C:\Users\xxxxxxx\Desktop>ping 192.168.1.73

    192.168.1.73 に ping を送信しています 32 バイトのデータ:
    192.168.1.73 からの応答: バイト数 =32 時間 <1ms TTL=80
    192.168.1.73 からの応答: バイト数 =32 時間 <1ms TTL=80
    192.168.1.73 からの応答: バイト数 =32 時間 <1ms TTL=80
    192.168.1.73 からの応答: バイト数 =32 時間 <1ms TTL=80

    192.168.1.73 の ping 統計:
        パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
    ラウンド トリップの概算時間 (ミリ秒):
        最小 = 0ms、最大 = 0ms、平均 = 0ms

  • TO : ロジナカさん

    モッチーです、お世話になっております。

    無事pingが通るようになって良かったです。
    かふぇルネの内容はよく見ているので、また何か困ったことあったら書き込んでみてください。
    私以外にもEthernetとTCP/IPに詳しい人がいると思うので、解決の手助けになると思います。

    以上よろしくお願いいたします。

Reply
  • TO : ロジナカさん

    モッチーです、お世話になっております。

    無事pingが通るようになって良かったです。
    かふぇルネの内容はよく見ているので、また何か困ったことあったら書き込んでみてください。
    私以外にもEthernetとTCP/IPに詳しい人がいると思うので、解決の手助けになると思います。

    以上よろしくお願いいたします。

Children
No Data