開発環境:e2 studio (Version: 2023-01 (23.1.0))Toolchains:GCC for Renesas RX - 8.3.0.202204FITDemosのrskrx65n_2mb_udp_nonblockingを参考にUDPのエコーサーバーを作成しました。r_t4_rxのDHCPはEnableに設定しており、正常にIPが割り当てられエコーサーバーも正常に動作していました。このアプリに.h、.cファイルを追加していき、プログラムが大きくなってくると、ある時からイーサネットの機能が動かなくなりました。具体的にはDHCPのDiscoveryが送信されなくなりました。この時イーサネットの開始に必要な以下の処理は成功しています。lan_open() →成功tcpudp_get_ramsize() →バッファサイズ正常tcpudp_open() →成功また、メインループは正常に動いていている(LED点滅)ことを確認しています。(.h、.cを削除して処理を削ると、また正常に動作するようになります)イーサネットが機能しなくなる件について、情報をお持ちであったり、心当たりがある方がいらっしゃいましたら教えていただけると幸いです。よろしくお願いします。
NoMaYさん、hirakuni45さん、シェルティさんイーサネットが正常に動作し、本件は解決しました。原因はみなさんにご指摘いただいたEDMAC関連データのアライメントでした。実施した対策はシェルティさんに教えていただいたEtherドライバ資料の「5.1.1 GCC for Renesas RX のセクション設定例」です。hirakuni45さんの環境で起きているgccバージョン問題は当方では確認されず、GNU-RX gcc-8.3.0でビルドしています。
なれない分野での開発ですが、今回の件は非常に勉強になりました。
みなさま、ご協力ありがとうございました。
キャンディさん
こんにちは、シェルティです。
うまく動いてよかったです。また他にも何か問題が出たら教えてください。可能な限り支援します。
以下何年か前まで私が講師で実施していたネットワークセミナーの資料です。Etherコントローラの動きとかT4ライブラリの動きとか、そもそもTCP/IPって何だ、みたいな話をまとめていて今後の勉強の参考になるかもしれません。
組み込み用TCPIPの活用法.pptx
以上です
シェルティさん、ありがとうございます!参考にさせていただきます!