Rev 1.00.00

Renesas RZ 用リモートデバッガ・ナノ(DEFnano)の初期導入と操作手順の概略説明（RZAT）（ルネサス ＲＺ／Ａ１Ｈ、ＲＺ／Ｔ１「Cortex-R4F」)【追記】DEFnano Ver3.00 より、MP-RZT1-01(RZ/T1)対応を追加する。
１．
「DEFnano(RZAT)」をインストールします。
ご購入ＣＤに保存してある「DEFnano_Install」の「setup.exe」をクリックします。

後の操作は、操作案内に従い進めて下さい。
デスクトップ上にこのアイコンが登録される。

インストール終了画面

1２．ハード環境を用意する。
２－１．MP-RZA1H/**-01 基板の用意（電源 OFF の状態）

CN8
USB Type mini-B
USB HID クラス

DC5V 入力
1. +5V
2. GNDSW4
1 番 OFF

２－２．MP-RZT1-01 基板の用意（電源 OFF の状態）

CN8
USB Type mini-B
USB HID クラス

SW2
1 番 OFF
2 番 OFF
3 番 ON
4 番 未使用DC5V 入力
1. +5V
2. GND

2

２－３．ＵＳＢケーブルのＴｙｐｅＡ側をＰＣのＵＳＢ口に接続する。
（USB2.0/USB3.0）

２－４．ＭＣＵ基板のＤＣ５Ｖ電源を ON にする。
エニュメレーション処理を開始する。
２－５．ＰＣにＨＩＤドライバーが登録されるのを待ちます。
HID 準拠デバイス
USB 入力デバイス
VID _2784 PID_00D03

３．DEFnano を起動し、デバッグ操作をする。
３－１．デスクトップ上のアイコンをクリックする。
または、「C:¥Program Files¥Aone¥DEFnano¥DEFnano.exe」を実行させます。

画面左下済の「Start」をクリック
CPU タイプ・RZ/A1H・RZ/T1
自動認識する。

MCU 基板のデバッガバージョンが追加で表示される。
【RZ/A1H】先頭アドレス「0x2008000」【RZ/T1】 先頭アドレス「0x0000000」からの逆アセンブラを表示する。

4

３－２．ダウンロード方式を設定する。
【ファイル】－【アブソリュ－トファイル設定】☑アブソリュ－トファイルの指定でダウンロードする。

☑[-m]重複モジュ－ル情報を CView にマージする。
☑[-g]スタティック変数をグローバル化する。
この 2 アイテムを☑する。
①「[-r]ディレクトリ情報を作成しない」☑すると C ソースデバッグが不可になる。
②「[-i]重複モジュール情報をを削除する」 時として不整合な情報が生成された場合に☑
③「[-s]ラインシンボル情報をソートしない」旧 ELF バージョン時に追加、現状不要④「[-f]展開可能なインクルードファイルを CView に登録」*.h 等の取得可能なファイルを登録

5

３－３．サンプルプロジェクトをダウンロードする。
３－３－１．
【ファイル】－【ダウンロード】

プロジェクトフォルダー下の「Debug」フォルダ下にアブソリュートファイルがあります。
【ARMC】拡張子*.axf【IAR】拡張子*.out【GNU-Tools】拡張子*.x
固定にて判定する。

「開く」をクリックしますと、DEFnano は、指定されたアブソリュートファイルからシンボル情報を抽出する。
「*.sym/*.lin」【ARMC】ACsymconv.exe「シンボルコンバータ」【IAR】IARsymconv.exe「シンボルコンバータ」【GNU-Tools】GCsymconv.exe「シンボルコンバータ」
6３－３－２．シンボルコンバ－タの起動
・指定拡張子により、起動するコンバータを自動判別します。
１）ARMC「*.axf」 ARM 社【起動】ACsymconv.exe
２）ICC「 *.out」 IAR 社【起動】IARsymconv.exe
３）GCC

「*.x」

KPIT-GNU【起動】GCCsymconv.exe
４）共通の注意事項
各コンパイラによって、生成される ELF/Dwarf2 コードに相違があります。
特に、IAR・GCC に関しては、独自の非公開 Dwarf コードを生成しているため、複雑なシンボル構造の場合、コンバート出来ない場合があります。特に多重構造体の場合は、分析不可となり、シンボルがカットされます。

7

３－３－３．プログラムコードのダウンロード

シンボルの抽出終了後、ターゲット MCU の内蔵 RAMに実行コードをダウンロードする。

ダウンロードが正常に終了しますと、このようにベクタテーブル定義ソースが CView 画面に表示される。
前回 DWL してその時のアドレスが記憶されている場合は、表示されませんのでショート PB「RstMon」をクリックしますとベクタテーブル定義ソース画面になります。
RZ/T1 の場合は、リセットにて内蔵 RAM がハード機能でオールゼロになりますので、再度、ダウンロードを開始します。

再ダウンロード時の注意事項
USB-CH1(ITF_LIB)を使用したアプリ開発時に再ダウンロードする場合、出来るだけ USB-CH1側のケーブルを抜いた状態で実施して下さい。理由は、ダウンロード完了時にターゲットをリセットする仕組みになっていますので、ケーブルを刺した状態だと Windows が USB-CH1 のドライバー切り離し処理とデバッガ側の USB(HID)のエニュメレーション処理を開始しますので完了まで通常より時間が必要になります。

8

３－３－４．プログラム実行とブレーク設定と強制停止方法

プログラム実行「Go」をクリックする。

ブレークポイントの設定は、C ソース上で直接ダブルクリックします。MAX[8]ポイント

9

実行中の強制ブレークは、「Break」をクリック「Trace」Asm レベルの StepIN「Step」 Asm レベルの StepOUT「CTrac」C ソースレベルの StepIN「CStep」Ｃソースレベルの StepOUT・ステップ／トレース機能を使用する場合は、＜オプション＞－＜環境設定＞の「Page1」「トレース／ステップ実行の動作」を「許可」にチェックして下さい。

10

RTOS 下での Trace(トレース)/CTrac(Ｃトレース)使用時の注意事項
RTOS のカーネルは、SWI(SVC)を使用して実現しています。本リモートデバッガは、当命令への対応はしておりません。実行ポイントがカーネルへの関数になった場合は、Step(ステップ)/CStep(Ｃステップ)に切り替えて操作して下さい。

11

３－３－５．変数の内容をダンプとウォッチと評価について周期に☑しますと、実行中でも周期的にサンプリングしてダンプ表示する。

ダンプ表示
シンボルまたはアドレスを入力する。

Watch 表示シンボルまたはアドレスを入力する。

周期に☑しますと、実行中でも周期的にサンプリングしてWatch 表示する。

ショート PB「Watch」をクリック

12構造体や多次元配列の場合は、「評価／変更」を使用する。

周期サンプリング使用時の注意事項
周期サンプリングの仕組みは、ユーザープログラムの実行中に USB0 の IRQ 割り込みを利用してデータを取得しています。USB 割り込みの特性上、1 バイト～64 バイトまでのデータ情報の取得に「250usec～500usec」の割り込み処理が実行されます。
この周期サンプリングがアプリ側処理の妨げになる場合は使用しないで下さい。

３－３－６．その他のデバッグ操作
その他、詳細なデバッグ操作は【ヘルプ】－【ヘルプ】をご覧下さい。

13

４．デバッグが完了しシリアルフラッシュ ROM にプログラムを書き込む方法【オプション】－【フラッシュ ROM ライタ】

４－１．ＲＺ／Ａ１Ｈの場合「ファイル選択」
をクリック

14

ライターモードでは 、「 *.mot 」 のHex ファイルを指定する。

「開く」をクリックする。

「書込み開始」をクリックする。

内部処理に応じてインジケータ表示①RAM にダウンロード中②セクターイレーズ③シリアルフラッシュに書込み中④ベリファイ中15

正常終了しますと、「書込みは正常に終了しました。
」と表示され、個数がカウントアップします。
個数は、この窓を閉じますとゼロになります。

「全消去開始」をクリックしますと、アプリケーションエリア(セクター２～１５３)を消去します。

シリアルフラッシュ ROM マップ(MP-RZA1H/**-01)
ローダ・デバッグ用ファーム
０～１セクター
0x0 ～0x1_FFFF
アプリケーションエリア
２～１５３セクター0x2_0000～0x99_FFFF16４－２．ＲＺ／Ｔ１の場合

先頭を☑後、Cortex-M3 側の Hex ファイ
ルを指定す
る。

先頭を☑後、Cortex-R4F 側の Hex ファイ
ルを指定する。

ライターモードでは 、「 *.mot 」 のHex ファイルを指定する。

「開く」をクリックする。

「書込み開始」をクリックする。
☑選択されたファイルを書き込みます。

17

【Cortex-M3 側】
内部処理に応じてインジケータ表示①RAM にダウンロード中②セクターイレーズ③シリアルフラッシュに書込み中④ベリファイ中【Cortex-R4F 側】
内部処理に応じてインジケータ表示①RAM にダウンロード中②セクターイレーズ③シリアルフラッシュに書込み中④ベリファイ中正常終了しますと、「書込みは正常に終了しました。
」と表示され、個数がカウントアップします。個数は、この窓を閉じますとゼロになります。
この例は、R4F 側のみを Write した時の画面です。

18

「全消去開始」をクリックしますと、アプリケーションエリア(セクター２～３１)を全消去します。M3/R4F 側の個別指定はできません。

シリアルフラッシュ ROM マップ(MP-RZT1-01)
ローダ・デバッグ用ファーム
０～１セクター
0x0 ～0x1_FFFF
アプリケーションエリア
２～１５セクター
Cortex-M3
0x2_0000～0x9_FFFF
0xA_000～0xF_FFFF（予備）アプリケーションエリア
１６～３１セクター
Cortex-R4F
0x10_0000～0x17_FFFF
0x18_0000～0x1F_FFFF（予備）19

５．ローダーとデバッガファームのバージョンアップ方法【オプション】－【ファームバージョンアップ】【RZ/A1H】AHmoni.bin」【RZ/T1】AHmoni_R4.binのバイナリーファイルを指定します。

「開く」をクリックする。

20

【RZ/A1H】<AH_VUP>のファイル名①AHmoni.bin②CODE_SPIBSC_INIT.bin③VECTOR_TABLE.binの 3 ファイルになります。

【RZ/T1】<AH_VUP_T1>のファイル名①AHmoni_R4.bin②Loader_R4.binの 2 ファイルになります。

フラッシュ ROM への書込みに対する警告表示です。
「OK」をクリックします。

内部処理に応じてインジケータ表示①RAM にダウンロード中②セクターイレーズ③シリアルフラッシュに書込み中④ベリファイ中sFROM の２セクター使用する。

21

ファームのバージョンアップが正常に終了したメッセージです。
この状況ですと、RAM 上のファームは古いままで動作していますので、必ず、ターゲットの電源を入れ直して下さい。
「OK」をクリックする。

６．その他の注意事項
１）ファームのバージョンアップ中に USB ケーブル等が抜けて失敗した場合は、内蔵 RAM にファームが常駐していますので、リセット及び電源の再立上げ等を実施しないでバージョンアップ操作を再実施して下さい。
２）DEFnano デバッガは、USB エニュメレーションを実施するタイミングはターゲットの電源ON 時のみに処理する仕組みになっていますのでデバッガを有効にしたい場合は電源 ON 時にターゲットの USB 口にケーブルを刺した状態でいて下さい。
３）デバッガを切り離してシリアルフラッシュ ROM ブートで動作させたい場合は、ターゲット側の USB 口からケーブルを抜いた状態で電源 ON しますとローダーが判断して ROM 側のプログラムを内蔵 RAM に展開して RUN させる仕組みになっています。
【RZ/T1】特記
MP-RZT1-01 の場合は、SW2-3 を OFF にして下さい。
（USB デバッグモニタ未使用）
４）プログラムのデバッグ中は、完成されていないプログラムのため、プログラムミスにより閉ループに入り抜けてこなくなる場合もあります。その時に割り込み禁止状態に陥り、リモートデバッガの性質上、強制 Break さえ効かなくなる場合もあります。このような状態に陥った場合は、MCU 基板上にある「ResetSW」を押して、初期状態からデバッグを開始して下さい。

22

６．DEFnano を使用する場合のアプリケーション側ソフトの手続きについて
１）デバッグモニタは、割り込みは[Prefetch]と[IRQ]を利用しています。
注意事項
・IRQ_SP と ABT_SP は、別空間になるようにスタックポインタを設定して下さい。
２）Prefetch・IRQ ハンドラーには、デバックモニタ用マクロ定義が必要になります。
;********************************************************************************;* _init_handler.s;* デバックモニタを使用する場合の割り込みハンドラーの記述;********************************************************************************;===============================================================================;

Prefetch_handler;BRK 割り込みハンドラー

Start+0x000C : プリフェッチアボート;===============================================================================
Prefetch_Handler
SUBlr, lr, #4;;; [-4]する必要あり BRK コードの PC 位置を知るため;;-----------------------------------------------------GET_REGSTER #ABT_MODE,Abt_end;;; モニタ用にレジスタ数値をメモリにストアする。

;;-----------------------------------------------------SRSDB

sp!, #ABT_MODE;;; 現在のモードの LR_abt と SPSR_abt を Stack に退避

PUSH{r0-r12};;; レジスタを退避;;-----------------------------------------------------BL

SwiMoniter;;; デバックモニタ処理;;-----------------------------------------------------CPS#ABT_MODE;;; ABT ModePOP{r0-r12};;; レジスタの復帰RFEIA

sp!

;;; 割り込みの復帰処理;===============================================================================;*IRQ Handler

Start+0x0018 : IRQ;===============================================================================
IRQ_Handler
sublr, lr, #4;;-----------------------------------------------------GET_REGSTER #IRQ_MODE,Irq_end;;; モニタ用にレジスタ数値をメモリにストアする。

;;-----------------------------------------------------;;↑先頭に定義;;↓は、ユーザー側で記述;===============================================================================

黄色 の記述は必ず必要です。詳細は、サンプルプロジェクトの【RZ/A1H】「src_app¥_init_handlers_s..s」を参照【RZ/T1】「R4F¥src¥monitor¥ inter_handler.asm」を参照

23

３）デバックモニタプログラムの初期化する関数をメインの先頭で呼ぶ手続きが必要です//******************************************************************************//①RTOS(NORTi)用の記述例 [Nmoniter.c]のリンクが必要！！
//******************************************************************************#include "Nmoniter.h"// RTOS(NORTi)用のヘッダーファイル//-----------------------------------------------------------------------------//
main 関数//-----------------------------------------------------------------------------int
main(void){sysini();// システム初期化
MoniterInit();// モニタの初期化（必ず sysint()の後で!!）}//-----------------------------------------------------------------------------//******************************************************************************//②ベアメタル用の記述例 [Umoniter.c]のリンクが必要！！
//******************************************************************************#include "Umoniter.h"// ベアメタル用のヘッダーファイル//-----------------------------------------------------------------------------//
main 関数//-----------------------------------------------------------------------------intmain(void){MoniterInit();// モニタの初期化（必ず main()の先頭で!!）}//------------------------------------------------------------------------------

１）Nmoniter.h/Umoniter.h は、サンプルで用意してあります。そのまま利用する。
２）コメントに記述してある注意事項に従ってポーティングする。

以上です。

24

７．注意事項
・本文書の著作権は、エーワン（株）が保有します。
・本文書を無断での転載は一切禁止します。
・本文書に記載されている内容についての質問やサポートはお受けすることが出来ません。
・本文章に関して、ARM 社およびルネサス エレクトロニクス社への問い合わせは御遠慮願います。
・本文書の内容に従い、使用した結果、損害が発生しても、弊社では一切の責任は負わないものとします。
・本文書の内容に関して、万全を期して作成しましたが、ご不審な点、誤りなどの点がありましたら弊社までご連絡くだされば幸いです。
・本文書の内容は、予告なしに変更されることがあります。
８．商標
・ARM DS-5 は、ARM 社の登録商標、または商品名称です。
・EWARM は、IAR 社の登録商標、または商品名称です。
・ ARM Cortex, Thumb および ARM Cortex-M3/R4F は ARM Limited の EU およびその他の国における商標および登録商標です
・RZ および RZ/A1H は、ルネサス エレクトロニクス株式会社の登録商標、または商品名です。
・その他の会社名、製品名は、各社の登録商標または商標です。
９．参考文献・「RZ/A1H グループ ユーザーズマニュアル ハードウェア編」
ルネサス エレクトロニクス株式会社
・「RZ/T1 グループ ユーザーズマニュアル ハードウェア編」
ルネサス エレクトロニクス株式会社
・ルネサス エレクトロニクス株式会社提供のサンプル集
・「armcc ユーザガイド DUI 0472JJ」 ARM 社
・「アセンブラの使用 DUI 0473GJ」 ARM 社
・「リンカの使用 DUI 0474GJ」 ARM 社
・「コンパイラリファレンスガイド DUI 0328BJ」 ARM 社
・「アセンブラリファレンス DUI 0489GJ」 ARM 社
・「armkink リファレンスガイド DUI 0804AJ」 ARM 社
・「IDE プロジェクト管理およびビルドガイド UIDEARM-9-j」 IAR 社
・「IAR C/C++開発ガイド コンパイラおよびリンク DARM-14-j」 IAR 社
・「IAR アセンブラリファレンスガイド AARM-9-j」 IAR 社
・「IAR デバッグプローブガイド IARprobes-2-j」 IAR 社
・その他〒486-0852
愛知県春日井市下市場町 6-9-20
エーワン株式会社

http://www.robin-w.com25