MCU:RX71M
e2studioを使用して、MCUの外部にある2つの並列16ビットコンポーネントからなる32ビットフラッシュROMにファームウェアを書き込むには、USD(User System Definition)ファイルが必要です。 USDファイルは、ルネサスWebサイトからExternal Flash Definition Editorツールをダウンロードすることで生成することができます。
External Flash Definition Editorツールを使用する場合、標準プログラム(Standered program)では2*16bitフラッシュ回路接続に対応しておらず、USDファイルを生成するためのカスタムプログラムの作成が必要です。
カスタムプログラムのサンプルプログラムがあり、これはHEWのプロジェクトファイルに.c .h .lib ファイルをコピーして、新たに作成したe2studioプロジェクトに格納したものです。
コンパイル時に以下のエラーが発生します。
E0562320:Section address overflowed out of range : "$ADDR_B_84080"
84080のアドレスはRXファミリーのIOアドレスなので、上記のようなエラーになります。 しかし、このアドレスは.cと.hのファイルでは使われておらず、.libのソースコードがなければ変更できない.libで使われていると推察されます。
プログラムのデバッグ中に外部フラッシュROMにファームウェアを書き込む必要がある場合の解決策を提示してください。
baobaoさん、こんにちは。NoMaYです。HEWでMAPファイルを詳細出力にしてビルドして以下が得られました。これはデバッグコンソールの入出力アドレスですね。なので、リンカのセクション設定でセクションを確保してやれば良いと思います。(今は昔よりチェックが厳しくなったのだと思われます。)
SECTION=$ADDR_B_84080FILE=EFE_RX_lib 00084080 00084087 8 _C2E_0 00084080 4 data ,g 0 _C2E_1 00084084 4 data ,g 0SECTION=$ADDR_B_84090FILE=EFE_RX_lib 00084090 00084097 8 _E2C_0 00084090 4 data ,g 0 _E2C_1 00084094 4 data ,g 0
以下、FITのBSPモジュールのlowlvl.cの抜粋です。
/***************************************************************************************Macro definitions***************************************************************************************/#define BSP_PRV_E1_DBG_PORT (*(volatile st_dbg_t R_BSP_EVENACCESS_SFR *)0x84080)#define BSP_PRV_TXFL0EN (0x00000100) /* debug tx flow control bit */#define BSP_PRV_RXFL0EN (0x00001000) /* debug RX flow control bit *//***************************************************************************************Typedef definitions***************************************************************************************/typedef struct{ uint32_t tx_data; /* Debug Virtual Console TX data */ char wk1[12]; /* spacer */ uint32_t rx_data; /* Debug Virtual Console RX data */ char wk2[44]; /* spacer */ uint32_t dbgstat; /* Debug Virtual Console Status */} st_dbg_t;
NoMaYさん、こんにちは。
ご回答ありがとうございます。組み込みは初めてなのでよくわかりませんですが、この問題を解決のため、どのようにセクションを確保しますか。
よろしくお願いいたします。
baobaoさん、こんにちは。NoMaYです。そうでしたか。RXマイコンの開発環境も初めてになりますね。ユーザフォーラムにビルド出来るプロジェクトのファイル一式が投稿されていても良いような案件なのかも、とも考えるようになりましたので、一度試してzipファイルに固めて投稿してみます。(libファイルまで入れたら、ルネサスさんの中の人に怒られる?かな、、、)今日1日ほどお待ち下さい。すみません、まだ自分では調べ始めていないのですけれども、e2 studioでも使えます、というのは何かのWeb頁もしくはドキュメント、ユーザーズマニュアル/ヘルプで確認済みでしょうか?10年ほどそのままになっているものですので、気になっているのです。
baobaoさん、こんにちは。NoMaYです。実は、CS+という開発環境があるのですが、HEWのプロジェクトを読み込む機能も備わっていて、それでくだんのサンプルプログラムを読み込んでビルドすると何事も無くビルド出来ますね。なので、セクション設定をどうのこうのするのでは無くて、昔と同レベルのエラーチェックしかしないようにする、という発想が正解な気がして来ました。あと、くだんのサンプルプログラムは必要に応じて改変した後、ビルド出来さえすれば良いわけですので、推測ですけれども、10年ほどそのままになっていても、ルネサスさんのサポート部門的には、CS+で開いてビルドして下さい、ということで済ませているのかも知れません。あと、CS+でビルドすると自動的にe2 studioで読み込むことが出来るプロジェクトファイルが生成されるのですけれども、それをe2 studioで読み込むことでも、何事も無くビルド出来ましたね。ですので、今しがた思い直し掛けていますのは、くだんのサンプルプログラムのフォルダツリーに上書き出来るようなフォルダ構成としておいて、CS+で変換した、CS+のプロジェクトファイル(mtpjファイル)とe2 studioで読み込むことが出来るプロジェクトファイル(rcpeファイル)をzipファイルに固めてみようか、という気がして来ています。
お疲れ様でした。ありがとうございます!
baobaoさん、こんにちは。NoMaYです。以下のzipファイルに以下のファイルを固めました。くだんのサンプルプログラムのフォルダツリーに上書きして下さい。また、e2 studioでrcpeファイルを開く手順に関しては以下のWeb頁を参照して下さい。EFE_Custom_Program_Sample_RX_20230120.zip
EFE_Custom_Program_Sample_RX/CUI/CUI.mtpjEFE_Custom_Program_Sample_RX/CUI/CUI.rcpeEFE_Custom_Program_Sample_RX/CUI/ProjectConvertInformation_CUI.txtEFE_Custom_Program_Sample_RX/JEDEC/JEDEC.mtpjEFE_Custom_Program_Sample_RX/JEDEC/JEDEC.rcpeEFE_Custom_Program_Sample_RX/JEDEC/ProjectConvertInformation_JEDEC.txt
CS+からe² studioへの移行方法www.renesas.com/jp/ja/software-tool/migration-csplus-to-e2studio「既存プロジェクトを変換してe² studioの新規プロジェクトを作成…作成手順1. e² studioでメニューバーの[ファイル]、またはプロジェクト・エクスプローラの右クリックメニューから[インポート]を選択します。 画像 e² studioで[インポート]を選択2. e² studio[インポート]ダイアログ内インポート先の選択で[Renesas CC-RX/CC-RL (CS+) プロジェクト]を選択します。 (32ビット版のe² studioでは[Renesas共通プロジェクト・ファイル]を選択してください) 画像 import_from_CSp_ja3. e² studio[インポート]ダイアログ内[ファイルの選択]で変換対象のCS+用プロジェクト・ファイル(*.rcpe)を指定します。 画像 [ファイルの選択]4. e² studio[インポート]ダイアログの[ターゲットの選択]は、プロジェクト・ファイルが指定されると自動的に入力されます。[Debug Hardware]で使用するデバッガを選択後、[終了]ボタンでダイアログを終了します。 画像 [終了]ボタンでダイアログを終了」
NoMaYさん、
ありがとうございます!