初めて投稿させていただきます もぐら と申します。
よろしくお願い致します。
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と申します。チョコさんのリプライに追加しますと、> RL78G13マイコンのコード・フラッシュメモリはCS+からのメモリダンプやプログラムからのリードでは確認することが出来ないのでしょうか?そういうことでは無いです。オンチップデバッグ機能と関わりのある何箇所かの領域において、MOTファイルのHEXデータを書き換えて、マイコンのフラッシュメモリに書き込むようになっているのです。とっさの記憶では、以下の領域がMOTファイルと異なる値になっている筈です。0x00番地,0x01番地:MOTファイルではユーザプログラムのリセット番地、実際に書かれる値はオンチップデバッグ用モニタプログラムに関する何かのおまじないの値0xCE番地~0xD7番地:MOTファイルでは0xFF×10、実際に書かれる値はオンチップデバッグ用モニタプログラムに関する何かのおまじないの値ROMの終わりの256バイトもしくは512バイト:MOTファイルでは0xFF×256もしくは0xFF×512、実際に書かれる値はオンチップデバッグ用モニタプログラムの機能の一部分あと、初学者さんへ伝えたいこととしては、ソフトウェアブレークポイントを設定するとフラッシュメモリの該当箇所の命令が(命令セット上は非公開の)ソフトウェアブレークポイント命令へとデバッガにより書き換えられます。ですので、その時にユーザプログラムで該当箇所を読むとMOTファイルとは異なる値が読めます。(デバッガのメモリウィンドウや逆アセンブルウィンドウではMOTファイルの値(書き換えられる前の値)が表示されます。)