お世話になります
e2studioでgcc for RXの環境設定とテストを行っていたところ
実際の変数のアドレスと変数のビューウィンドウやホバー表示が示すアドレスとが食い違っていて、
変数の値もそのアドレスの内容を表示してしまう症状が発生してしまっています。
実際のコードは以下の通りで
volatile int i = 0;
while{ i++; }
上記コードの逆アセンブルの内容は以下の通りでr0には最初0x69cが格納されていました
main:fffe8880: sub #4, r0LM11:fffe8882: mov.l [r0], r5fffe8884: add #1, r5fffe8886: mov.l r5, [r0]fffe8888: bra.b 0xfffe8882 <LM11>
mapファイルのustackは以下の通り
ustack 0x0000000000000700 0x0
メモリやレジスタを確認すると変数iは0x69cから4引いたアドレス0x698の中身がインクリメントされているのですが
変数のビューやホバーは画像の通りアドレス0x700の値を表示してしまいます。
また、変数を増やしていくと実際のアドレスとは逆方向にアドレスが伸びて行ってしまいます。
この症状はRX simulatorを使用しているときは発生せず、E2liteでターゲットに接続しているときのみ発生します
どなたか解決方法をご教授願えますでしょうか?
ななしき さん、こんにちは。NoMaYです。Debugビルド(RX Simulator向け)の設定をHardwareDebugビルド(E2Lite向け)の設定に合わせてみたところ、Debugビルド(RX Simulator向け)でも現象が発生しました。更に調べてみますね。修正した.cprojectファイルtest_cproject_update_20230109.zip以下、e2 studioの現象発生時の画面コピーです。