GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
がじぇるね岡宮です。
仕事がらGCCでなく、CC-RXやスマートコンフィギュレータ(以降SC)を使うことになったので、GR-ROSE用のbinファイルの作り方を書きたいと思います。
■はじめに
GR-ROSEには出荷時にUSBファームが書き込まれており、リセットボタンを押すとUSBストレージになり、そのUSBストレージにbinを書き込むとプログラムが実行されるようになっています。このUSBファームウェアの仕様、ソースは以下に記載されています。
https://www.renesas.com/jp/ja/products/gadget-renesas/boards/gr-rose.html#resources
要点を書くと、
・bin書込み後、0xFFE00000番地に飛んでくる仕様なので、この領域にスタートアップルーチンを配置する必要がある
・binにアドレス情報はないので、オプション設定メモリ(0xFE7F5D00~)や、固定ベクタの領域を削除する必要がある。
※逆に言えば、オプション設定や固定ベクタはUSBファームの設定のままになるので、注意してください。
■やり方
・resetprg.cにあるPowerON_ResetPCの処理を0xFFE00000に配置したいので、まずは以下のように「ResetPRG」セクションとして宣言します。
#if defined(__CCRX__)#pragma section ResetPRG //★ここを追加#pragma entry PowerON_Reset_PC#endif /* defined(__CCRX__) */
・「ResetPRG」を0xFFE00000に配置します。ついでに「EXCEPTVECT」,「RESETVECT」のセクションアドレスを削除します。
・「vecttbl.c」にあるオプション設定メモリの記載をif 0とかで無効にします。
#if 0#if defined(__CCRX__)#pragma address __MDEreg = 0xFE7F5D00#pragma address __OFS0reg = 0xFE7F5D04#pragma address __OFS1reg = 0xFE7F5D08(略)#pragma public_equ = "__FAW", BSP_CFG_FAW_REG_VALUE#pragma public_equ = "__ROM_CODE", BSP_CFG_ROMCODE_REG_VALUE#endif /* defined(__CCRX__), defined(__GNUC__), defined(__ICCRX__) */#endif
・プロジェクトプロパティ「ツール設定タブ」の「Linker」の「出力」で、以下のように「バイナリ・ファイルを出力する」に設定します。
・以上で設定は終わりです。ビルドしてください。念のためビルド後にマップファイル(.map)で確認することをお勧めします。HardwareDebugフォルダに生成されているはずです。
以下のように、「PResetPRG」が0xFFE00000に配置され、「EXCEPTVECT」,「RESETVECT」は、ROM領域の末尾にないことを確認します。
PResetPRG ffe00000 ffe00063 64 1P ffe00064 ffe01994 1931 1C_1 ffe01995 ffe01995 0 1C_2 ffe01996 ffe0199b 6 2C ffe0199c ffe01a13 78 4C$DSEC ffe01a14 ffe01a37 24 4C$BSEC ffe01a38 ffe01a4f 18 4C$VECT ffe01a50 ffe01e4f 400 4D ffe01e50 ffe01f47 f8 4D_1 ffe01f48 ffe01f97 50 1D_2 ffe01f98 ffe01f98 0 1W ffe01f98 ffe01f98 0 4W_1 ffe01f98 ffe01fa7 10 1W_2 ffe01fa8 ffe01fa8 0 2L ffe01fa8 ffe01fed 46 4EXCEPTVECT ffe01ff0 ffe0206b 7c 4RESETVECT ffe0206c ffe0206f 4 4
・GR-ROSEに書き込む前に、生成されたbinファイルのファイルサイズも一応確認しておきましょう。オプション設定メモリの領域が残っていたりすると20MBくらいになっていたりします。正しく設定がされていれば、1MB以下です。ほとんど何もしないアプリケーションなら10kB程度です。
■サンプルプロジェクト
参考までにSCとCC-RXのプロジェクトで、Lチカするサンプルを貼り付けておきます。インポートしてお使いください。
rx_sc_test.zip
■注意
以下のスレッドで、たかぶーさんがご指摘のように、GR-ROSEの出荷ファームでは不用意にCMT0が動いているため、ユーザーアプリ側でCMT0の割り込み処理がない場合、どこかに飛んで行ってしまいますので、ユーザアプリでCMT0を止めるか、CMT0の割り込み処理を何かしら行う必要があります。
http://japan.renesasrulz.com/gr_user_forum_japanese/f/gr-rose/5215/gr-rose-usb/29643#29643