お世話になります
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です。プロジェクトの設定で、AS100なんちゃら、という指定を解除して頂けませんか。(たぶん、プロジェクト作成時に手が滑って、うっかりチェックしてしまったのだと思いますが、皆さん、普通はチェックせずにおくものです。) こちらではDebugビルド(RX Simulator向け)で期待通りに式ビューに表示されるようになりましたが、そちらではHardwareDebugビルド(E2Lite向け)でどうなりますでしょうか。以下、e2 studioの現象解消時の画面コピーです。
NoMaY様
お世話になります。
>プロジェクトの設定で、AS100なんちゃら、という指定を解除して頂けませんか
さっそく試してみたところ正常に動作するようになりました、ありがとうございます。
こちらの手違いでお手数をおかけしてしまい申し訳ありませんでした。