【注意事項】RXファミリ 組み込み用TCP/IP M3S-T4-Tiny

Similar documents
【注意事項】RX Driver Package、 RXファミリ RTC モジュール Firmware Integration Technology

SuperH RISC engineファミリ用 C/C++コンパイラパッケージ V.7~V.9 ご使用上のお願い

RX600 & RX200シリーズ アプリケーションノート RX用仮想EEPROM

統合開発環境CS+ V へのリビジョンアップのお知らせ

統合開発環境CubeSuite+ V へのバージョンアップのお知らせ

AN424 Modbus/TCP クイックスタートガイド CIE-H14

SH-4 組み込み用TCP/IP M3S-T4-Tiny: 導入ガイド

帯域を測ってみよう (適応型QoS/QoS連携/帯域検出機能)

DA100データアクイジションユニット通信インタフェースユーザーズマニュアル

統合開発環境CubeSuite+ V へのバージョンアップのお知らせ

wireshark dissector with lua

// このクラスの有効期間中の各呼び出しに使用される キャッシュされた Socket オブジェクト Socket socket = null; // 非同期処理が完了したことを通知するために信号を送るオブジェクト static ManualResetEvent clientdone = new Ma

ITRON TCP/IP API仕様

needlework_update_manual_rev1.4

目次 改訂履歴... はじめに... IPsec-VPN 設定.... ユーザ ユーザグループの作成..... ユーザの作成..... ユーザグループの作成.... ファイアウォールアドレスの作成.... VPN ウィザードの作成 VPN フェーズ 設定変更 ファイアウォール

GIGA光SW-HUB

R70_Software_Manual_JP1.3

AN1530 Etherサンプルプログラム解説(RX71M)

目次 1. DB 更新情報受信 SW 仕様書 構成および機能 全体の構成 DB 更新情報受信 SW の機能 ソフトウェアの設計仕様 DB 更新情報受信 SW の仕様 資料編... 5

CashDrawer ライブラリ API 仕様書 2014/07/09 CashDrawer ライブラリ API 仕様書 Rev / 10

Microsoft PowerPoint ppt [互換モード]

D-Link DWL-3500AP/DWL-8500AP 設定ガイド

スライド 1

RT300i/RT140x/RT105i 取扱説明書

PowerPoint プレゼンテーション

S1C17 Family Application Note S1C17 シリーズ PORT 多重割り込みアプリケーションノート Rev.1.0

RT300/140/105シリーズ 取扱説明書

Copyright 2008 NIFTY Corporation All rights reserved. 2

Copyright 2006 KDDI Corporation. All Rights Reserved page1

F O M A P P P 接続参考資料 DTE~FOMA パケット網間インタフェース 第 1.4 版 株式会社 NTT ドコモ Unpublished copyright 2007 NTT DoCoMo, Inc. All rights reserved. Unpublished copyrigh

NetSHAKER Version5.0検疫システムセットアップマニュアル

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

改訂履歴 版番号改訂日改訂者改訂内容 年 2 月 12 日ネットワールド 新規 I

設定例集

IP.dvi

アライドテレシス・コアスイッチ AT-x900 シリーズとディストリビューションスイッチ AT-x600 シリーズで実現するACLトラフィックコントロール

owners.book

CSS のスパニングツリー ブリッジの設定

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

形B5Z 画像型人感センサ(HVC-F) コマンド仕様書

ネーミング(1)

RL78/F13, F14 割り込み要因判別方法

1

Renesas Synergy アプリケーションノート NetXを使ったソケット通信の応用例:マルチクライアントサーバ

KDDI

p_network-management_old-access_ras_faq_radius2.xlsx

統合開発環境 High-performance Embedded Workshop V へのリビジョンアップのお知らせ

初めてのBFD

インターネットVPN_IPoE_IPv6_fqdn

UsersGuide_INR-HG5497c_.doc

untitled

TM-m30 詳細取扱説明書

CS+ RL78コンパイラ CC-RL V リリースノート

Microsoft PowerPoint - CproNt02.ppt [互換モード]

ict2-.key

TM-m30 詳細取扱説明書

III 1 R el A III 4 TCP/IP プロトコルと 関連する各種上位プロトコルの基礎を学ぶ 具体的には 各プロトコルを実装したコマンド ( アプリケーションプログラム ) を実行し 各プロトコルの機能等を確認する また 同じプロトコルを実装したコンピュータ間では OS

RTX830 取扱説明書

通信プログラムの試作ーーー UDP を用いたじゃんけんゲームシステム ーーーー裘彬濱 南山大学情報理工学部 ソフトウェア工学科青山研究室

改訂履歴 版番号改訂日改訂者改訂内容 年 2 月 2 日ネットワールド 新規 I

3 3.1 LAN ISDN (IP) 2 TCP/UDP IP IP IP IP (Ethernet) Ethernet LAN TCP/UDP LAN Ethernet LAN 2: Ethernet ATM, FDDI, LAN IP IP IP 3 IP 2 IP IP IP IP IP 3

アプリケーションノート 1版( )

... 4 HTML IP TC

Ethernet 開発支援ツール ACCEL ti2k (LastUpdate Mar 1, 2019) 概要ターミナルツール (1) TcpTermS.exe ターミナルツール (2) TcpTermM.exe ターミナルツール (3) UdpTermS.exe ターミナルツール (

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

RXファミリ アプリケーションノート 組み込み用TCP/IP M3S-T4-Tiny 導入ガイド Firmware Integration Technology

SRT/RTX/RT設定例集

TFTP serverの実装

RL78/G1D評価ボード搭載モジュール 基板設計データ

SIP を使った簡単な通話 ( とりあえず試してみよう ) 相手 IP アドレスがわかっており ネットワークに接続されているとき INVITE 200 OK SIP 端末 (MSN Messenger) SIP 端末 (YAMAHA ルータ ) SIP アド

tcp/ip.key

para02-2.dvi

MINI2440マニュアル

IP L09( Tue) : Time-stamp: Tue 14:52 JST hig TCP/IP. IP,,,. ( ) L09 IP (2017) 1 / 28

buho210.dvi

User's Manual補足:遠隔監視

TCP_BP3591 の説明 V /03/28 ROHM 社製 WIFi モジュール BP3591 を使用して 無線 LAN により TCP/IP 通信を行うプログラムです 簡単な文字列によるコマンド ( 例 : LED0 ON ) を受信して LED の ON/OFF を行います 受

DIGNO® ケータイ ユーザーガイド

AN1526 RX開発環境の使用方法(CS+、Renesas Flash Programmer)

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

Android プログラム ガイド

R1RW0408D シリーズ

VG シリーズ用ローカルファームアップ / 自動ファームウェア更新設定手順書 VG400aⅡ ローカルファームアップ / 自動ファームウェア更新設定手順書

1

TM-m30 詳細取扱説明書

目次 目次... 1 はじめに... 3 概要... 4 サポート環境... 5 関数... 6 MEC_OpenDevice... 7 MECDevice_Release... 8 MECDevice_GetFirmVersion... 9 MECDevice_GetCoreTemperature

thesis.dvi

IPSEC(Si-RGX)

スライド 1

InfoPrint 5577/5579 ネットワーク設定ガイド(第5章 UNIX/Linux環境で使用する)

InfoPrint 5577/5579 ネットワーク設定ガイド(第4章 UNIX/Linux環境で使用する)

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受

技術情報:Si-R/Si-R brinシリーズ設定例 「Oracle Cloud Infrastructure Classic」との接続

00.目次_ope

第1回 ネットワークとは

簡単設定でスマホをブロック!仮想化時代の情報漏えい対策に最適なツール

InfoPrint 5577-G05/H05 ネットワーク設定ガイド(第7章 Q&A)

<4D F736F F D E096BE8E9197BF5F984193AE F B40945C432E646F63>

Microsoft Word - (修正)101.BLU-103のVoIP設定方法.docx

Transcription:

注意事項 RX ファミリ組み込み用 TCP/IP M3S-T4-Tiny R20TS0227JJ0100 Rev.1.00 号 概要 RX ファミリ組み込み用 TCP/IP M3S-T4-Tiny ( 注 ) の使用上の注意事項を連絡します 1. Ping Reply パケットに関する注意事項 2. LAN ネットワーク環境に関する注意事項 3. select() 関数のタイムアウト設定値に関する注意事項 4. sendto() 関数で送信する UDP パケットの宛先 IP アドレスに関する注意事項注 : 詳細は各項の 該当製品 をご参照ください 1. Ping Reply パケットに関する注意事項 1.1 該当製品 RX ファミリ組み込み用 TCP/IP M3S-T4-Tiny を用いたサンプルプログラム Firmware Integration Technology V.1.00~V.1.06 RX ファミリ組み込み用 TCP/IP M3S-T4-Tiny Firmware Integration Technology V.1.03~V.2.06 1.2 該当 MCU RX ファミリ 1.3 内容 M3S-T4-Tiny の Ping Reply パケットの送信処理に誤りがあり IP ヘッダの IP Total length フィールドに間違った値を設定します そのため Ping Request を送信した端末が Ping Reply を異常なパケットと認識し 正常な応答とみなさない場合があります 1.4 発生条件受信した Ping Request パケットに含まれる IP ヘッダの IP Total length が 45 以下の場合に発生します 1.5 回避策回避策はありません 1.6 恒久対策今後のバージョンで改修予定です R20TS0227JJ0100 Rev.1.00 Page 1 of 11

2. LAN ネットワーク環境に関する注意事項 2.1 該当製品 RX ファミリ組み込み用 TCP/IP M3S-T4-Tiny を用いたサンプルプログラム Firmware Integration Technology V.1.00~V.1.06 RX ファミリ Ethernet ドライバと組み込み用 TCP/IP M3S-T4-Tiny のインタフェース変換モジュール Firmware Integration Technology V.1.00~V.1.06 2.2 該当 MCU RX ファミリ 2.3 内容 10BASE 半二重モードで通信する LAN ネットワーク環境でサンプルプログラムを動作させた場合 ボードによっては送信したパケットが RX マイコンに返ります そのため DHCP 機能が正常に動作しません 2.4 発生条件 10BASE 半二重モードで接続した場合に発生します R20TS0227JJ0100 Rev.1.00 Page 2 of 11

2.5 回避策 受信したパケットの送信 MAC アドレスが RX マイコンに設定した MAC アドレスと同じであれば 受信したパケットを破棄します 以下の関数に赤字部分を追加してください r_t4_driver_rx src t4_driver.c: lan_read() H lan_read(ub lan_port_no, B **buf) int32_t driver_ret; H return_code; UB *data; driver_ret = R_ETHER_Read_ZC2(lan_port_no, (void **)buf); if (driver_ret > 0) data = (B *)*buf; if(0 == memcmp(&data[6],&_myethaddr[lan_port_no],6)) rcv_buff_release(lan_port_no); return_code = -1; return return_code; t4_stat[lan_port_no].t4_rec_cnt++; t4_stat[lan_port_no].t4_rec_byte += (UW)driver_ret; return_code = (H)driver_ret; else if (driver_ret == 0) 2.6 恒久対策今後のバージョンで改修予定です R20TS0227JJ0100 Rev.1.00 Page 3 of 11

3. select() 関数のタイムアウト設定値に関する注意事項 3.1 該当製品 RX ファミリ組み込み用 TCP/IP M3S-T4-Tiny を用いたサンプルプログラム Firmware Integration Technology V.1.05 RX ファミリ組み込み用 TCP/IP M3S-T4-Tiny ソケット API モジュール Firmware Integration Technology V.1.31 3.2 該当 MCU RX ファミリ 3.3 内容 select() 関数の第 5 引数に指定するタイムアウト時間の処理に誤りがあり 以下 2 点の注意事項があります (1) 指定した時間より短い時間でタイムアウトが発生します (2) select() 関数が終了するまで最大 10 ミリ秒かかります 3.4 発生条件 (1) 3.3 (1) の発生条件常に発生します 以下に発生例を記します struct timeval select_timer; /* 1.5 second */ select_timer.tv_sec = 1; select_timer.tv_usec = 500000; nready = select(1, NULL, NULL, NULL, &select_timer); 上記設定の場合においても tv_usec メンバの設定値が無視されて 0 を設定した場合と同じ動作になります そのため 指定した時間より短い時間でタイムアウトが発生します (2) 3.3 (2) の発生条件 tv_sec および tv_usec メンバにともに 0 を設定した場合に発生します R20TS0227JJ0100 Rev.1.00 Page 4 of 11

3.5 回避策 以下の関数に赤字部分を追加してください ソケット API モジュールのソースコード r_socket.c の select() 関数 uint32_t polling = 0; ( 中略 ) if ( timeout == NULL ) else if ((timeout->tv_usec >= 1000000) (timeout->tv_usec < 0) (timeout->tv_sec < 0)) timeout = NULL; else if ((timeout->tv_sec == 0) && (timeout->tv_usec == 0)) polling = 1; else // timeout->tv_usec /= 10000; timer1 = tcpudp_get_time(); ( 中略 ) if (tot_count > 0) break; if(polling == 1) break; if (timeout!= NULL) 3.6 恒久対策 今後のバージョンで改修予定です R20TS0227JJ0100 Rev.1.00 Page 5 of 11

4. sendto() 関数で送信する UDP パケットの宛先 IP アドレスに関する注意事項 4.1 該当製品 RX ファミリ組み込み用 TCP/IP M3S-T4-Tiny を用いたサンプルプログラム Firmware Integration Technology V.1.05 RX ファミリ組み込み用 TCP/IP M3S-T4-Tiny ソケット API モジュール Firmware Integration Technology V.1.31 4.2 該当 MCU RX ファミリ 4.3 内容 UDP パケットを送信する sendto() 関数で指定された宛先 IP アドレスの処理に誤りがあり 以下の注意事項があります (1) 間違った IP アドレスに UDP パケットを送信する場合があります 4.4 発生条件 ソケットが sendto() 関数を実行するタイミングと同時に 別の IP アドレスから UDP パケットを受信した場合に発生します R20TS0227JJ0100 Rev.1.00 Page 6 of 11

4.5 回避策 送信制御用と受信制御用に IP アドレス情報を分離して制御します 以下の赤字部分を修正してください (1) r_socket_rx_if.h 修正前 typedef struct _tag_bsdsocket BSD_STATE state; /* BSD socket states */ uint32_t T4status; /* T4 current status */ int event; /* T4 event occuring in callback */ ID socket_type; /* SOCK_STREAM or SOCK_DGRAM */ ID backlog; /* No Used */ T_IPV4EP dstaddr; /* Partners Address */ TMO tmout; /* Time out */ ( 以下省略 ) BSDSocket; 修正後 typedef struct _tag_bsdsocket BSD_STATE state; /* BSD socket states */ uint32_t T4status; /* T4 current status */ int event; /* T4 event occuring in callback */ ID socket_type; /* SOCK_STREAM or SOCK_DGRAM */ ID backlog; /* No Used */ T_IPV4EP dstaddr; /* Partners Address */ T_IPV4EP udpsndaddr; /* UDP Send Address */ TMO tmout; /* Time out */ ( 以下省略 ) BSDSocket; (2) r_socket_rx.c R_SOCKET_Open() 修正前 sockets[i].dstaddr.ipaddr = 0; sockets[i].dstaddr.portno = 0; sockets[i].tmout = 0; /* default is TMO_POL */ sockets[i].t4proc = 0; sockets[i].rcvlen = 0; 修正後 sockets[i].dstaddr.ipaddr = 0; sockets[i].dstaddr.portno = 0; sockets[i].udpsndaddr.ipaddr = 0; sockets[i].udpsndaddr.portno = 0; sockets[i].tmout = 0; /* default is TMO_POL */ sockets[i].t4proc = 0; sockets[i].rcvlen = 0; R20TS0227JJ0100 Rev.1.00 Page 7 of 11

(3) r_socket_rx.c connect() 修正前 修正後 else /* UDP: remote port is used as a filter only. no need to call connect() */ /* TODO any check for addr range, port range? */ sockets[sock].dstaddr.portno = remote_port; sockets[sock].dstaddr.ipaddr = remote_ip; sockets[sock].state = BSD_CONNECTED; return E_OK; else /* UDP: remote port is used as a filter only. no need to call connect() */ /* TODO any check for addr range, port range? */ sockets[sock].dstaddr.portno = remote_port; sockets[sock].dstaddr.ipaddr = remote_ip; sockets[sock].udpsndaddr.portno = remote_port; sockets[sock].udpsndaddr.ipaddr = remote_ip; sockets[sock].state = BSD_CONNECTED; return E_OK; R20TS0227JJ0100 Rev.1.00 Page 8 of 11

(4) r_socket_rx.c sendto() 修正前 if ( sockets[sock].state < BSD_CONNECTED ) sockets[sock].dstaddr.portno = addr->sin_port; sockets[sock].dstaddr.ipaddr = addr->sin_addr.s_un.s_addr; memcpy( sockets[sock].snd_buf, buffer, length ); sockets[sock].sndlen = 0; sockets[sock].sndsz = length; sockets[sock].pending_sndlen = length; sockets[sock].t4proc &= ~(T4_PROC_SND_END); sockets[sock].t4proc = (T4_PROC_SND_START); ercd = udp_snd_dat( cepid, (T_IPV4EP*) & sockets[sock].dstaddr, (VP)sockets[sock].snd_buf, length, TMO_NBLK ); if ( ercd == E_WBLK ) ercd = length; /* Return length of data even though it may not been sent*/ 修正後 if ( sockets[sock].state < BSD_CONNECTED ) sockets[sock].udpsndaddr.portno = addr->sin_port; sockets[sock].udpsndaddr.ipaddr = addr- >sin_addr.s_un.s_addr; memcpy( sockets[sock].snd_buf, buffer, length ); sockets[sock].sndlen = 0; sockets[sock].sndsz = length; sockets[sock].pending_sndlen = length; sockets[sock].t4proc &= ~(T4_PROC_SND_END); sockets[sock].t4proc = (T4_PROC_SND_START); ercd = udp_snd_dat( cepid, (T_IPV4EP*) & sockets[sock].udpsndaddr, (VP)sockets[sock].snd_buf, length, TMO_NBLK ); if ( ercd == E_WBLK ) ercd = length; /* Return length of data even though it may not been sent*/ R20TS0227JJ0100 Rev.1.00 Page 9 of 11

(5) r_socket_rx.c t4_udp_generic_callback() 修正前 修正後 case TFN_UDP_SND_DAT: sockets[i].t4proc &= ~((uint32_t)t4_proc_snd_start); sockets[i].event = SOCKET_SND_DAT; sockets[i].sndlen += ercd; remain_size = sockets[i].sndsz - sockets[i].sndlen; if ( remain_size > 0 ) udp_snd_dat(cepid, &sockets[i].dstaddr, (VP)(&sockets[i].snd_buf[sockets[i].sndLen]), remain_size, TMO_NBLK); sockets[i].t4proc = ((uint32_t)t4_proc_snd_start); case TFN_UDP_SND_DAT: sockets[i].t4proc &= ~((uint32_t)t4_proc_snd_start); sockets[i].event = SOCKET_SND_DAT; sockets[i].sndlen += ercd; remain_size = sockets[i].sndsz - sockets[i].sndlen; if ( remain_size > 0 ) udp_snd_dat(cepid, &sockets[i].udpsndaddr, (VP)(&sockets[i].snd_buf[sockets[i].sndLen]), remain_size, TMO_NBLK); sockets[i].t4proc = ((uint32_t)t4_proc_snd_start); (6) r_socket_rx.c reset_socket () 修正前 if ( sock!= -1 ) sockets[sock].state = BSD_CLOSED; sockets[sock].t4status = T4_CLOSED; sockets[sock].event = -1; sockets[sock].socket_type = 0; sockets[sock].backlog = 0; sockets[sock].dstaddr.ipaddr = 0; sockets[sock].dstaddr.portno = 0; sockets[sock].tmout = 0; //default is TMO_POL 修正後 if ( sock!= -1 ) sockets[sock].state = BSD_CLOSED; sockets[sock].t4status = T4_CLOSED; sockets[sock].event = -1; sockets[sock].socket_type = 0; sockets[sock].backlog = 0; sockets[sock].dstaddr.ipaddr = 0; sockets[sock].dstaddr.portno = 0; sockets[sock].udpsndaddr.ipaddr = 0; sockets[sock].udpsndaddr.portno = 0; sockets[sock].tmout = 0; //default is TMO_POL 4.6 恒久対策 今後のバージョンで改修予定です 以上 R20TS0227JJ0100 Rev.1.00 Page 10 of 11

改訂記録 Rev. 発行日 ページ 1.00 - 新規発行 改訂内容ポイント ルネサスエレクトロニクス株式会社 135-0061 東京都江東区豊洲 3-2-24( 豊洲フォレシア ) 総合お問い合わせ先 https://www.renesas.com/contact/ 本資料に記載されている情報は 正確を期すため慎重に作成したものですが 誤りがないことを保証するものではありません 万一 本資料に記載されている情報の誤りに起因する損害がお客様に生じた場合においても 当社は 一切その責任を負いません 過去のニュース内容は発行当時の情報をもとにしており 現時点では変更された情報や無効な情報が含まれている場合があります ニュース本文中の URL を予告なしに変更または中止することがありますので あらかじめご承知ください すべての商標および登録商標は それぞれの所有者に帰属します 2017 Renesas Electronics Corporation. All rights reserved. TS Colophon 2.0 R20TS0227JJ0100 Rev.1.00 Page 11 of 11