Rev 1.00.00

Renesas R5F565NE(CK-RX65N)用サンプル(e2studio RX65N_gnu_SMTP_TLS_uselib)の説明（e2studio Version:2024-04 / Azure RTOS Version 6.2.1 rel-rx-2.0.0)
１． Sample の免責について
・Sample に関する Tel/Fax でのご質問に関してはお受けできません。ただし、メールでのご質問に関してはお答えするよう努力はしますが、都合によりお答えできない場合もありますので予めご了承願います。
・Sample ソフトの不具合が発見された場合の対応義務はありません。また、この関連ソフトの使用方法に関する質問の回答義務もありませんので承知の上ご利用下さい。
・Sample ソフトは、無保証で提供されているものであり、その適用可能性も含めて，いかなる保証も行いません。また，本ソフトウェアの利用により直接的または間接的に生じたいかなる損害に関しても，その責任を負わないものとします。

２．サンプルのプロジェクト名
ワークスペース名概要

プロジェクト名Azure_sample_gnu_CK

有線 LAN 接続した DHCP と RX65N_gnu_SMTP_TLS_uselib
SMTP クライアントのサンプ
Azure RTOS モードで動作
ルYahoo メールの SMTP サーバ NetX Duo DHCP Client
ーに接続して TLS セッション (dhcp_client)でクライアント認証後、メーNetX Duo DNS Client
ル送信をする。
(nx_dns_.......)NetX Duo SMTP Client(nx_smtp_.......)NetX Duo TLS/DTLS Session(nx_secure_......)

統合開発環境Renesas e2studio(Version 2024-04)
Azure RTOS (Version 6.2.1 rel-rx 2.0.0)
GCC for Renesas RX(Version 8.3.0.202305)
テキストファイル・エンコード(UTF-8)
ハード環境
CK-RX65N (ルネサス製)

1

３．Tera Term Pro のインストール①「teraterm-4.106.exe」を検索してダウンロードする。
②PC にインストールし実行する③シリアルポートの設定
COM 番号は、PC 側でシリアル通信可能な番号を指定する。
115200BPS
8bit
none
1bit
noneの仕様にする。

④端末の設定USB シリアルコンバータ使用時に CR コードがカットされる
設定の場合は、受信：LF にして下さい。

赤枠の設定にする。

2４．動作構成

USB 接続（JTAG デバッガ、給電） LED4 100ms 毎点滅
LED6 100ms 毎点滅
TeraTerm

RS232C 送信（表示文字）

TLS 認証&TLS 認証&メール送信
メール送信
ルータ
＜Yahoo SMTP サーバー＞＜CK-RX65N 基板＞
クライアント側

WAN＜RX65N_gnu_SMTP_TLS_uselib＞
１．OpenSSL を使用して取得した Yahoo メールの SMTP サーバ証明書は登録済み。
２．SSL/TLS 対応の API を実装する。
（NetX Duo TLS/DTLS Session)
３．現バージョンの AzureRTOS NetX Duo SMTP Client は、SSL/TLS に対応していないため SSL/TLS対応に追加した SMTP クライアントを実装する。
４．定義済みのメール文を「送信先メールアドレス」に送信する。

3Debugger
E2 Lite(Fine)
USB(Vbus)+5Vを基板に供給

異常 LED6 点滅

取得 LED3 点滅
送信 LED4 点滅

USB TO SERIAL
SCIx

ジャンパ
J2
J15
J16
J21
J22
J11

有線 LAN 接続

備考ショートオープン
１－２ショートショートオープン
オープン

Current Measurement point for MCU
Select debugger comms mode

DEBUG
Enable USB boot mode
Select USB boot mode power supply method
Configures the MCU for normal boot m ode4５．
「RX65N_gnu_SMTP_TLS_uselib」サンプルの説明
５－１．フォルダ構成とファイル名【 <ホルダ名>を示す】<Azure_sample_gnu_CK><rx_gnu_filex_lib>
AzureRTOS FileX ライブラリ作成用ホルダ<rx_gnu_netxduo_addons_lib> AzureRTOS NetX Duo Addons ライブラリ作成用ホルダ◎SMTP クライアントソースはビルド除外にする。
<rx_gnu_netxduo_lib>
AzureRTOS NetX Duo ライブラリ作成用ホルダ<rx_gnu_threadx_lib>
AzureRTOS ThredX ライブラリ作成用ホルダ<RX65N_gnu_SMTP_TLS_us
elib><HardwareDebug><lib>

DHCP / TLS 認証 / メール送信 サンプルプロジェクト
RX65N_gnu_SMTP_TLS_u
selib.elf
RX65N_gnu_SMTP_TLS_u
selib.map
RX65N_gnu_SMTP_TLS_u
selib.mot
その他<filex><netxduo><netxduo_addons><thredx><src>

librx_gnu_filex_lib.a
librx_gnu_netxduo_addons_lib.a
librx_gnu_netxduo_lib.a
ibrx_gnu_threadx_lib.a<rtos_config><smc_gen>ELF ファイル、JTAG で使用
MAP ファイル、アドレス情報
モトローラーHEX ファイル
自動生成ファイルFileX(全Ｃソースはビルド除外)
NetX Duo(全Ｃソースはビルド除外)
NetX Duo Addons(全Ｃソースはビルド除外)
ThreadX(全Ｃソースはビルド除外)
FileX ライブラリ
NetX Duo Addons ライブラリ
NetX ライブラリ
ThredX ライブラリ
スマートコンフィグレータにより作成
スマートコンフィグレータにより作成<rtos_skeleton>|dhcp_fixed_entry.c|SMTP_thread_entry.c
demo_printf.c

DHCP スレッド処理のソース
SMTP スレッド処理のソース
コンソール入出力処理のソース

demo_printf.h
hardware_setup.c

demo_printf.c のヘッダー
周辺 I/O デバイス初期化ソース

hardware_setup.h
nx_driver_rx_fit.c
nx_driver_rx_fit.h
nxd_smtp_client.c

hardware_setup.c のヘッダー
Renesas RX FIT driver. Control
nx_driver_rx_fit.c のヘッダー
TLS 通信を追加した SMTP ク
ライアントソース
nxd_smtp_client.c のヘッダー
NetX 等初期化サンプルソース
sample_netx_duo_ping.c のヘッダー

nxd_smtp_client.h
sample_netx_duo_ping.c
sample_netx_duo_ping.h5linker_script.h
RX65N_gnu_SMTP_TLS_uselib.scfg
その他

リンカースクリプトファイル

スマートコンフィグレータの管理ファイル
自動生成ファイル

１）MAC アドレスの定義場所

84 行

nx_driver_rx_fit.c
tatic UCHAR _netx_driver_rx_fit_mac_address[] ={0x74,0x90,0x50,0x10,0xa5,0x36}; // MAC アドレス２）ライブラリの変更
nx_gnu_netxduo_addons_lib¥src¥netxduo_addons¥crypto_libraries¥src¥
nx_crypto_generic_ciphersuites.c

Ciphersuite table の変更

NX_SECURE_TLS_CIPHERSUITE_INFO_nx_crypto_ciphersuite_lookup_table[] ={..... // 省略 ソースを参照};

３）ＤＮＳサーバとゲートウェイのＩＰアドレス変更

310 行¥src¥rtos_skeleton¥SMTP_thread_entry.c#define DNS_SERVER_ADDRESS IP_ADDRESS(192,168,xx,xxx)

311 行#define GATEWAY_ADDRESS IP_ADDRESS(192,168,xx,xxx)

6

５－２．Macro Defines の説明
Macro Name
NX_DNS_CACHE_ENABLE
SecureTLS

TX_INCLUDE_USER_DEFINE_FILE

説明
DNS キャッシュを有効にする。
証明書の検証が不要な SMTP サーバーの場合
証明書の検証が必要な SMTP サーバーの場合
DHCP Client Disable◎ソースコードに直接 IP アドレスを記述
sample_netx_duo_ping.c：status = nx_ip_create(&ip_0,"NetX IP Instance 0",#if (NX_ENABLE_DHCP == 1)
IP_ADDRESS(0,0,0,0),
IP_ADDRESS(255,255,255,0),#else
IP_ADDRESS(192,168,21,19), // 固定 IP アドレス
IP_ADDRESS(255,255,255,0), // サブネットマスク#endif&pool_0,
nx_driver_rx_fit,(UCHAR*)ip_thread_stack,sizeof(ip_thread_stack),
1);
DHCP Client Enable「tx_user.h」を有効にする

NX_INCLUDE_USER_DEFINE_FILE「nx_user.h」を有効にする

FX_INCLUDE_USER_DEFINE_FILE「fx_user.h」を有効にする

NXD_MQTT_CLOUD_ENABLE

MQTT メッセージングプロトコルを有効にする

NX_SECURE_ENABLE

MQTT クライアントは TLS サポート付きで構築される
多くのコールバック フックを有効にする

NX_ENABLE_DHCP

値0101NX_ENABLE_EXTENDED_NOTIFY_SUPPORT
NX_ENABLE_IP_PACKET_FILTER

IP パケットを有効にする

FLATCC_NO_ASSERTNX_AZURE_IOT_LOG_LEVELFLATCC をアサートしない
0123

NX_AZURE ログ関数を使用しない
LogError(...)を使用する
LogError(...) / LogInfo(...)を使用する
LogError(...) / LogInfo(...) / LogDebug(...)を使用する

7

５－３．サンプルの動作説明（基板側 CK-RX65N ）１）DHCP 無効時（NX_ENABLE_DHCP = 0）
＜DHCP FIXED Thread＞
Term 画面＜１＞「"Driver INITIALIZE_DONE...”」＜２＞「"<Wait for IP address acquisition>..”」＜３＞「"LINK Status Check...”」＜成功画面＞IP アドレス確立により、基板上の LED3/LED4 を 100msec 毎に点滅

固定 IP アドレス

DNS クライアント処理
smtp.mail.yahoo.co.jp の IP アドレス
を取得する

TLS セッションの初期化
・ルート証明書の追加
・中間証明書の追加
・パケットバッファーの登録

SMTP クライアント処理

送信先へのメール送信成功

8２）DHCP 有効時（NX_ENABLE_DHCP = 1）
＜DHCP FIXED Thread＞
Term 画面＜１＞「"Driver INITIALIZE_DONE...”」＜２＞「"<Wait for IP address acquisition>..”」＜３＞「"LINK Status Check...”」＜４＞「" DHCP In Progress...”」＜５＞「" Wait until address resolved...”」＜成功画面＞IP アドレス確立により、基板上の LED3/LED4 を 100msec 毎に点滅取得した IP アドレス

DNS クライアント処理smtp.mail.yahoo.co.jp の IP アドレスを取得する

TLS セッションの初期化
・ルート証明書の追加
・中間証明書の追加
・パケットバッファーの登録

SMTP クライアント処理

送信先へのメール送信成功

9３）TLS 接続とメール送信が成功した時の WireShark のキャプチャ画面

10４）メール送信成功時のメイラー画面５）＜失敗画面＞IP アドレス未確立により、基板上の LED6（赤色）を 100msec 毎に点滅

失敗11

６．注意事項
・本文書の著作権は、エーワン（株）が保有します。
・本文書を無断での転載は一切禁止します。
・本文書に記載されている内容についての質問やサポートはお受けすることが出来ません。
・本文章に関して、ルネサス エレクトロニクス社への問い合わせは御遠慮願います。
・本文書の内容に従い、使用した結果、損害が発生しても、弊社では一切の責任は負わないものとします。
・本文書の内容に関して、万全を期して作成しましたが、ご不審な点、誤りなどの点がありましたら弊社までご連絡くだされば幸いです。
・本文書の内容は、予告なしに変更されることがあります。
７．商標
・e2studio・RX65N は、ルネサス エレクトロニクス株式会社の登録商標または商品名称です。
・CK-RX65N は、ルネサス エレクトロニクス株式会社の商品名です。
・その他の会社名、製品名は、各社の登録商標または商標です。
８．参考文献・「RX65N ユーザーズマニュアル ハードウェア編」 ルネサス エレクトロニクス株式会社
・「e2studio ユーザーズマニュアル 入門ガイド」
ルネサス エレクトロニクス株式会社
・「AzureRTOS 」
マイクロソフト株式会社
・ルネサス エレクトロニクス株式会社提供のサンプル集
・その他〒486-0852
愛知県春日井市下市場町 6-9-20
エーワン株式会社

https://www.aone.co.jp
12