e2 studio で、メモリ埋め、メモリダンプ

e2 studio になってから、以下、操作があるかどうかご教授お願いします。

・メモリエリアの全0xff 埋め

・全メモリエリアのダンプ出力 

  • Breezeさん
    ほや です。こんにちは。

    じま さん御指摘のように、何を目的にどの開発環境の組み合わせでそのような事を実現しようと
    お考えなのかも書き添えて戴けると答え易いです。

    デバッガでメモリを埋めるには、「メモリー」ビューの右上の方にある▼マークをクリックして出て来るメニューの「検索/置換」を選ぶとそれっぽい画面が現われます。
    そこでFill Memoryに切り替えるとfill操作もできるようになります。

    CC-RLでビルド時にリンカが空き領域を埋めるオプションの話ならCC-RLヘルプの  -space の項を見てください。

  • こんにちは

    >・メモリエリアの全0xff 埋め
    こちらはもしかしたらビルドツールの設定のことでしょうか?
    それともエミュレータを接続するときの設定とか?

    >・全メモリエリアのダンプ出力
    デバッグ中メモリ参照であれば以下資料の「5.3.4. メモリービュー」でできるのではないかと思いましたが、
    www.renesas.com/.../r20ut2858jj0400_e2_start_s.pdf

    e2 studioと比較されている開発環境やその機能名などがわかれば、もっと的確な返事をもらえるかもしれません。
  • メモリービューにはファイル出力機能はないので、(訂正:ツールバーにはimport/exportボタンがありますね)
    「Debugger Console」ビューにGDBコマンドをコピペしてください。
    GDBコマンドの内容は以下のリンク先にあるマニュアルを見てください。

    単にメモリダンプを取るならxコマンドを使います。

    x/16b 0x2000

    ↑アドレス0x2000から 16バイトをダンプする場合
    (参考) https://sourceware.org/gdb/onlinedocs/gdb/Memory.html

    dump/restoreコマンドを使えばメモリ内容をファイルに出力したり、ファイルから読み込んだりできます。
    (参考) https://sourceware.org/gdb/onlinedocs/gdb/Dump_002fRestore-Files.html
    例えば2000-20FFのメモリをS-formatファイルに出力する時は:

    dump srec memory memdump.mot 0x2000 0x2100

    反対にファイルからメモリに書き込むには

    restore writemem.srec 0 0x2000 0x2100

    のようになります。(ファイルの置き場所はプロジェクトフォルダです)
    試してみてください。

  • ご教授ありがとうございました、当方のやりたいこととしては、リセットスタート後に、メモリー全エリアに0xff等を埋めて起動し、所定の完了箇所で、初期化が実際に全て行われているかテストする目的ですので、メモリーの置換機能でいけそうです。ブレーク時点での全RAMエリアのダンプ出力などする方法があれば、さらにご教授いただけると助かります。
  • コマンドで何でもできる訳ではありません。
    GDBコマンドを実行した結果、マイコン側の動作状態とデバッガGUIが覚えている(想定している)状態がズレてしまった場合に動作がうまく行かなくなります。
    リセットはその典型なので、動かなくなると思います。ホドホドに。

  • GDB コマンド実行で、メモリダンプ出力が可能な事を確認できました、有り難うございます。
    ちなみに本件とは直接関係無いですが、このコンソールを使って、停止→メモリ書換→リセットスタート→時間待ち→ 停止... 等のスクリプト(自動検証)を実施することは出来ますでしょうか?
  • GDBの活用に関して、ご回答有り難うございました。