GR-CITRUSでCS+のRXシリアルデバッガを使えるようにしてみた(CC-RX&CS+編)

[CS+ V5.00.00でも確認済みです。(但しCC-RXはUSBMSCファームウェアをビルドしたV2.03.00を使用) 2017/02/04]
GR-CITRUSでCS+のRXシリアルデバッガが使えたら便利そうな気がしましたので、以下のことをしてみました。
(IDE for GR編、CC-RX&CS+編、実装編、の3本立てブログの1つです。)

以前のUSBMSCファームウェアとRXシリアルデバッグモニタをバージョンアップして、CS+とCC-RXでビルドした
プログラムをGadgetRenesasのスケッチを書き込むのと同じ手順でGR-CITRUSに書き込んで実行したり
RXシリアルデバッグ出来るようにしたりしてみました。また、併せて、CS+のプロジェクト作成ウィザードで作成した
プロジェクトとFIT USBモジュールのサンプルプログラムを例にして、そのように書き込み可能なbinファイルを
作成する方法をまとめてみました。

予め必要な情報

RXシリアルデバッガ
製品情報

統合開発環境CS+ (旧CubeSuite+)
製品情報
オンラインヘルプ

FIT (Firmware Integration Technology)
FITとは
製品情報
RXマイコン周辺機能概要

GR-CITRUS
製品情報
特設ページ:Webコンパイラでスケッチ
スケッチリファレンス

今回のバージョン(V2.0)でやったこと

・可変ベクタが0xFFE00000にあるプログラムもマスストレージ経由で書き込んで実行出来るよう機能追加
 (ちなみに以前のV1.0でやったことを同じ書き方で表すと、可変ベクタが0xFFE00000にあるプログラムも
 マスストレージ経由で書き込んで『デバッグ』出来るよう機能追加、というような書き方になります。)
・USBMSCファームウェアとRXシリアルデバッグモニタのバージョン(まとめて1つ)とタイプを表す文字列を
 0xFFFF0500から埋め込んでおくようにした。

一緒に今回やったこと

・528Kバイトまでしかフラッシュ書き換え出来ない不具合の修正
・外部バスを有効にしてしまっている不具合(GR-CITRUSでは表面化せず)の修正

とりあえず試してみるのに必要なファイル一式

GR-CITRUS-CCRX-RXSDBG-20161217.zip

以下の画面コピーは、埋め込んでおいたバージョンとタイプの表示例とCS+のプロジェクト作成ウィザードで
作成したプロジェクトやFIT USBモジュールのサンプルプログラムのデバッグ時の画面です。





手順は大まかに以下のようになります。

(1) GR-CITRUSのUSBMSCファームウェアの更新(スケッチのbinファイルを書き込む手順と同じ)

(2) CS+のプロジェクト作成ウィザードで作成したプロジェクトでの例
(2-1) zip内のプロジェクト(ソース一式)
(2-2) ソースコードの変更箇所
(2-3) セクション配置の変更箇所
(2-4) binファイルを生成させる為のビルド設定の変更箇所
(2-5) RXシリアルデバッガのプロパティ設定
(2-6) ブックマーク一覧

(3) FIT USBモジュールのPCDCサンプルプログラムでの例
(3-1) zip内のプロジェクト(追加ソースのみ)
(3-2) ソースコードの変更箇所
(3-3) セクション配置の変更箇所
(3-4) binファイルを生成させる為のビルド設定の変更箇所
(3-5) RXシリアルデバッガのプロパティ設定
(3-6) ブックマーク一覧

これらの詳細は以下の通りです。

(1) GR-CITRUSのUSBMSCファームウェアの更新(スケッチのbinファイルを書き込む手順と同じ)

今回のファイル一式を固めたzipファイルには以下のbinファイルが含まれていますので、通常のスケッチの
binファイルを書き込む場合と同じ手順で書き込んで下さい。

ccrx-rxsdbg\usbfw_updater\citrus_rxsdbg_Serial1_OpenDrain.bin



正常に更新された場合、最後にGR-CITRUSのLEDがゆっくり(約1秒間隔で)3回点灯した後、ちょっと間が空いて
から、LEDが点灯したままになります。この時、再びGR-CITRUSのドライブがマウントされ、通常のスケッチの
binファイルが書き込み出来るようになっています。もし更新に失敗した場合、GR-CITRUSのLEDが速く(約0.2秒
間隔で)点滅したままになります。この場合、以下の手順に従い初期USBMSCファームウェアを復旧させる必要が
あります。(復旧には特別なハードウェアは必要ありませんが、ジャンパワイヤが1本必要になります。また、RFP
(Renesas Flash Programmer)というソフトウェアをインストールする必要があります。RFPはWindows版のみ
しかありませんが、CS+がWindows版しかありませんので、他のOSで試される人はそもそもいないと思います。)

GR-CITRUS 初期ファームウェア (2016/7/14版)
ルネサス→Rulz→/gr_user_forum_japanese/m/mediagallery/309.aspx

(2) CS+のプロジェクト作成ウィザードで作成したプロジェクトでの例

(2-1) zip内のプロジェクト(ソース一式)

以下のフォルダにソース一式とプロジェクトファイル(.mtpjと.mtud)が含まれていますので、mtudファイルの方の
'UserName'の部分をWindowsの自分のユーザ名に変更してから、CS+でmtpjファイルを読み込んで下さい。
なお、blinky.cとhwsetup.cとresetprg.c以外のソースはプロジェクト作成ウィザードで作成した時点のままです。

ccrx-rxsdbg\Blinky\



(2-2) ソースコードの変更箇所

以下のコードをresetprg.cの#pragma setcion ResetPRGと#pragma entry PoserON_Reset_PCの直後に追加して
います。(blinky.cとhwsetup.cに関しては今回の件とは無関係なプログラム自体の変更ですので省略します。)

ccrx-rxsdbg\Blinky\resetprg.cに追加した部分



(2-3) セクション配置の変更箇所

以下の通りにセクション配置を変更しています。

変更前:


変更後:


(2-4) binファイルを生成させる為のビルド設定の変更箇所

以下のコマンドを[ビルド後に実行するコマンド]に記述しています。

@echo *%BuildModeName%\%ProjectName%.bin&@rlink -nologo %BuildModeName%\%ProjectName%.abs -form=binary -output=%BuildModeName%\%ProjectName%.bin=FFE00000-FFEEFFFF



(2-5) RXシリアルデバッガのプロパティ設定

今回のCS+プロジェクトのRXシリアルデバッガのプロパティ設定を以下に載せておきます。気を付ける必要がある
のは、以下の点です。(他は、好みだったり、デバッガがエラーになったり、とか。)

・ダウンロード前にフラッシュROMを消去する設定にしておくとUSBMSCファームウェアも消えてしまう

また、RXシリアルデバッガでデバッグ作業を行う時は、GR-CITRUSをCS+のデバッグコマンド待ち状態にする為に、
デバッグ用にビルドしたbinファイルをスケッチのbinファイルを書き込むのと同じ手順でGR-CITRUSに書き込んで
からRXシリアルデバッグ作業を開始して下さい。

なお、以下の設定は、CS+が自動設定する[ダウンロードするファイル]のパス名以外、この後の(3-5)と同じです。






(2-6) ブックマーク一覧

プロジェクトファイル(.mtpjと.mtud)のうち、mtudファイルの方には以下のブックマークを設定してあります。



(3) FIT USBモジュールのPCDCサンプルプログラムでの例

(3-1) zip内のプロジェクト(追加ソースのみ)

以下のフォルダにプロジェクトファイル(.mtpjと.mtud)及びFIT USBモジュールのPCDCサンプルプログラムに追加
するソースが含まれていますので、PCDCサンプルプログラムのダウンロードページから取得したzipファイルを
解凍して同名フォルダ以下のファイル一式をコピーして下さい。そして、プロジェクトファイル(.mtpjと.mtud)のうち、
mtudファイルの方の'UserName'の部分をWindowsの自分のユーザ名に変更してから、CS+でmtpjファイルを読み
込んで下さい。

an_r01an2238jj0120_usb\workspace\RX63N\

PCDCサンプルプログラムのダウンロードページ
ルネサス→/software/D6000454.html
zipファイル
an_r01an2238jj0120_usb.zip




(3-2) ソースコードの変更箇所

まず最初に、今回の件とは無関係なプログラム自体の変更になりますが、FIT USBモジュールのPCDCサンプル
プログラムに対して以下の投稿に書かれているように修正しています。

FIT USBモジュールをRX631用にコンパイルするとコンパイルエラーになる
ルネサス→Rulz→/cafe_rene/f/forum5/3829/fit-usb-rx631

そして、今回の件に関しては以下のソースを追加しています。

an_r01an2238jj0120_usb\workspace\RX63N\r_bsp\board\rskrx63n\rxsdbgsig.c



(3-3) セクション配置の変更箇所

以下の通りにセクション配置を変更しています。

変更前:


変更後:


(3-4) binファイルを生成させる為のビルド設定の変更箇所

以下のコマンドを[ビルド後に実行するコマンド]に記述しています。

@echo *%BuildModeName%\%ProjectName%.bin&@rlink -nologo %BuildModeName%\%ProjectName%.abs -form=binary -output=%BuildModeName%\%ProjectName%.bin=FFE00000-FFEEFFFF



(3-5) RXシリアルデバッガのプロパティ設定

今回のCS+プロジェクトのRXシリアルデバッガのプロパティ設定を以下に載せておきます。気を付ける必要が
あるのは、以下の点です。(他は、好みだったり、デバッガがエラーになったり、とか。)

・ダウンロード前にフラッシュROMを消去する設定にしておくとUSBMSCファームウェアも消えてしまう

また、RXシリアルデバッガでデバッグ作業を行う時は、GR-CITRUSをCS+のデバッグコマンド待ち状態にする為に、
デバッグ用にビルドしたbinファイルをスケッチのbinファイルを書き込むのと同じ手順でGR-CITRUSに書き込んで
からRXシリアルデバッグ作業を開始して下さい。

なお、以下の設定は、CS+が自動設定する[ダウンロードするファイル]のパス名以外、先ほどの(2-5)と同じです。






(3-6) ブックマーク一覧

プロジェクトファイル(.mtpjと.mtud)のうち、mtudファイルの方には以下のブックマークを設定してあります。