こんにちは。
ハギと申します。
RX Simulatorを使用してプログラムを実行しています。
プログラムは動作していますが、外部アドレス空間(SDRAM領域 0x08000000 ~ 0x08ffffff)に割り当てられた変数の中を見ようとすると、以下の画像のエラーが出て見ることができません。
解決方法などご存じの方いればご教示いただきたいです。
よろしくお願いします。
環境
Debug harware: RX Simulator
Target Device: R5F572NN_DUAL
Toolchain:Renesas CCRX v3.03.00
IDE:Renesas e2 studio 2021-04
ハギさん、こんにちは。NoMaYです。すみません、以下の画面コピーのように、e2 studioでDebugger Consoleビューを開いて i mem とコマンドを打つと何が表示されますでしょうか?画面コピー (以下はe2 studio 2021-10でのものですけど、予感的に2021-04とは結果が異なっている気もします。)
NoMaYさん
ハギです。
いつもお早いお返事ありがとうございます。
以下の表示が得られました。
i memUsing memory regions provided by the target.Num Enb Low Addr High Addr Attrs 0 y 0x00000000 0x00080000 rw nocache 1 y 0x00080000 0x00084000 rw nocache 2 y 0x00086000 0x00088000 rw nocache 3 y 0x00088000 0x000a0000 rw nocache 4 y 0x000a0000 0x000a4000 rw nocache 5 y 0x000a4000 0x000a6000 rw nocache 6 y 0x000a6000 0x000c0000 rw nocache 7 y 0x000c0000 0x000e0000 rw nocache 8 y 0x000e0000 0x00100000 rw nocache 9 y 0x00100000 0x00108000 rw nocache 10 y 0x007fc000 0x007fd000 rw nocache 11 y 0x007fe000 0x00800000 rw nocache 12 y 0x00800000 0x00880000 rw nocache 13 y 0x00ff8000 0x01000000 rw nocache 14 y 0xfe7f5d00 0xfe7f5d80 rw nocache 15 y 0xfe7f7d70 0xfe7f7da0 rw nocache 16 y 0xffc00000 0x100000000 rw nocache
ハギさん、こんにちは。NoMaYです。情報どうもありがとうございました。では、今度は以下のコマンドを打った後で、Resume → Break させると、式ビューの表示はどうなりますか?(どうも64bit版e2 studioで式ビューのリフレッシュボタンが削除されてしまったようなので、Resume → Break させることにしました。) 私の手元のPCのe2 studio 2021-10で擬似的に試した印象では、このやり方でe2 studio 2021-04でやれるようになるのではないかという気がするのです。mem 0x08000000 0x08ffffff rw nocache以下、e2 studio 2021-10での画面コピーです。擬似的にe2 studio 2021-04のデフォルトmem設定に合わせ込んでから上記のコマンドを入力してみたe2 studio 2021-04のデフォルトmem設定では式ビューの *(char *)0x8000000 には値が表示されない上記のコマンドを入力した後では式ビューの *(char *)0x8000000 には値が表示されるようになった
ご提示いただいた方法試したところ、変数の中を見ることができました。
i memでgdbがアクセスできる(認識している?)メモリ領域を表示し、e2studio 2021-04だと外部アドレス空間がデフォルトでは含まれていないのですね。
従って、mem 0x08000000 0x08ffffff rw nocache コマンドでメモリ領域を定義する必要があると。
2021-10だとデフォルトの領域が0x00000000 0x100000000になっているので、問題無いのですね。
GDBの初期化コマンドに以下の設定をしたところ、問題無く動くようになりました。
確かに前回の質問と原因は同じでした。
前回Renesas様から頂いた回答にはコマンドを実行欄に「mem auto」を入れるとありましたが、今回の件ではmem autoを実行してしまうとメモリ領域がデフォルトに戻されてしまうので上手くいかなかったということですね。
本当に助かりました。
ありがとうございました。