初めて投稿させていただきます もぐら と申します。
よろしくお願い致します。
RL78G13マイコンをE2シミュレータLiteを使用してCS+でデバッグを行っております。
CS+にてメモリ表示機能([表示]->[メモリ])を使ってコード・フラッシュメモリを確認してみたところ、
ベクタテーブルの0x00000番地がダウンロードしたmotファイルと異なるデータとなっておりました。
■ダウンロードしたmotファイルのデータ
S1130000D800FFFF00000000000000000000000016
■CS+からメモリ表示機能を使用した時に表示されたデータ
00000 | D0 00 FF FF 00 00 00 00 00 00 00 00 00 00 00 00
また、プログラムで0x00000番地を直接リードしてみましたが、こちらもメモリ表示機能と同じく”0xD0”が取得されました。
そこで質問させていただきたいのですが、RL78G13マイコンのコード・フラッシュメモリはCS+からのメモリダンプや
プログラムからのリードでは確認することが出来ないのでしょうか?
また、リードするための設定や手順などありましたら教えていただけると幸いです。
もぐら さん、こんにちは。NoMaYです。ひょっとしてその場所にブレークポイントを設定されていませんか?> CS+のメモリ表示機能で表示されたデータ:0x30> motファイルのデータ:0x30> プログラムでリードした値:0xFFこれは、私が以前に書いた以下の件(正確にはそのシミュレータ版の事例)ではないかなぁ、という気がするのです。> あと、初学者さんへ伝えたいこととしては、ソフトウェアブレークポイントを設定するとフラッシュメモリの該当箇所の命令が(命令セット上は非公開の)ソフトウェアブレークポイント命令へとデバッガにより書き換えられます。ですので、その時にユーザプログラムで該当箇所を読むとMOTファイルとは異なる値が読めます。(デバッガのメモリウィンドウや逆アセンブルウィンドウではMOTファイルの値(書き換えられる前の値)が表示されます。)