Rev 1.30.00

Renesas RZ/A1H 用リモートデバッガ・ナノ(DEFnano)の初期導入と操作手順の概略説明（ルネサス ＲＺ／Ａ１Ｈ)

１．
「DEFnano」をインストールします。
ご購入ＣＤに保存してある「DEFnano_Install」の「setup.exe」をクリックします。

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

インストール終了画面

1２．ハード環境を用意する。
１）ＭＣＵ基板の用意（電源 OFF の状態）

SW4
1 番 OFF

DC5V 入力
1. +5V
2. GND

CN8
USB Type mini-B
USB HID クラス

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

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

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

画面左下済の「Start」をクリック

MCU 基板のデバッガバージョンが追加で表示される。

先頭アドレス「0x2008000」からの逆アセンブラを表示する。

3

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

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

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

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

「開く」をクリックしますと、DEFnano は、指定されたアブソリュートファイルからシンボル情報を抽出する。
「*.sym/*.lin」【ARMC】ACsymconv.exe「シンボルコンバータ」【IAR】IARsymconv.exe「シンボルコンバータ」【GNU-Tools】GCsymconv.exe「シンボルコンバータ」
5シンボルの抽出終了後、ターゲット MCU の内蔵 RAMに実行コードをダウンロードする。

ダウンロードが正常に終了しますと、このようにベクタテーブル定義ソース「先頭アドレス 0x2008000」がCView 画面に表示される。
前回 DWL してその時のアドレスが記憶されている場合は、表示されませんのでショート PB「RstMon」をクリックしますとベクタテー
ブル定義ソース画面になる。

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

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

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

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

7

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

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

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

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

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

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

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

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

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

10

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

「ファイル選択」
をクリック

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

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

11

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

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

「全消去開始」をクリックしますと、アプリケーションエリア(セクター２以降)のみを消去します。
ローダーとデバッガファームエリアは消去しません。

12

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

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

13

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

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

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

６．リモートデバッガ・ナノを使用する場合のアプリケーション側ソフトの手続きについて
１）デバッグモニタは、割り込みは[Prefetch]と[IRQ]を利用しています。
注意事項
・IRQ_SP と ABT_SP は、別空間になるようにスタックポインタを設定して下さい。

２）Prefetch・IRQ ハンドラーには、デバックモニタ用マクロ定義が必要になります。
;********************************************************************************;* _init_handler.s;* デバックモニタを使用する場合の割り込みハンドラーの記述;********************************************************************************
INCLUDE _init_handler.inc;;; デバックモニタ用

IMPORT SwiMoniter;;; モニタ用の宣言;===============================================================================;

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;;; デバックモニタ処理;;-----------------------------------------------------POP{r0-r12};;; レジスタの復帰

RFEIA

sp!

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

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

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

黄色 の記述は必ず必要です。詳細は、サンプルプロジェクトの「src_app¥_init_handlers_s..s」を参照
15

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

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

以上です。

16

７．注意事項
・本文書の著作権は、エーワン（株）が保有します。
・本文書を無断での転載は一切禁止します。
・本文書に記載されている内容についての質問やサポートはお受けすることが出来ません。
・本文章に関して、ARM 社およびルネサス エレクトロニクス社への問い合わせは御遠慮願います。
・本文書の内容に従い、使用した結果、損害が発生しても、弊社では一切の責任は負わないものとします。
・本文書の内容に関して、万全を期して作成しましたが、ご不審な点、誤りなどの点がありましたら弊社までご連絡くだされば幸いです。
・本文書の内容は、予告なしに変更されることがあります。
８．商標
・ARM DS-5 は、ARM 社の登録商標、または商品名称です。
・EWARM は、IAR 社の登録商標、または商品名称です。
・RZ および RZ/A1H は、ルネサス エレクトロニクス株式会社の登録商標、または商品名です。
・その他の会社名、製品名は、各社の登録商標または商標です。
９．参考文献・「RZ/A1H グループ ユーザーズマニュアル ハードウェア編」
ルネサス エレクトロニクス株式会社
・ルネサス エレクトロニクス株式会社提供のサンプル集
・「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.com
17