RX65NのコードフラッシュメモリP/Eモード移行

いつもお世話になっております。ななと申します。

RX65Nでオプション機能選択レジスタの値を書き換えるためにコードフラッシュ書き込みをしたいのですが、データシートのコードフラッシュメモリP/Eモード移行にある通りにFENTRYRレジスタに0xAA01を書き込むと、フラッシュ書き換えモード中のため内蔵ROM領域にアクセスできませんと出ます。フラッシュの制御はFITモジュールを使用することでしか経験がないため、任意のタイミングでFACIコマンドだけ使用する方法がまだまだ曖昧です。設定漏れを見つける手掛かりが見つかればと思い、投稿させていただきます。

  • こんにちは

    実際に使ったことがないのでご質問の症状と関係があるかわからないですが、P/Eについてテクニカルアップデートがありますね。
    www.renesas.com/.../tnrxa183bj.pdf
  • いろいろ書いていますが、オプション設定メモリの値を変える方法がわかりません、ということです。目的はRTCでバッテリーバックアップを使いたいので電圧監視0リセットを有効にすることです。初めて触れる機能は当たりのつけ方も難しいです。
  • >オプション設定メモリの値を変える方法

    下記のようなの見つけて、変更してみては

    各意味は十分に調べてからにしてくださいね

    #pragma address id_code=0xffffffa0 // ID codes (Default)
    const unsigned long id_code[4] = {
    0xffffffff,
    0xffffffff,
    0xffffffff,
    0xffffffff,
    };

    #pragma address MDEreg=0xffffff80 // MDE register (Single Chip Mode)
    #ifdef __BIG
    const unsigned long MDEreg = 0xfffffff8; // big
    #else
    const unsigned long MDEreg = 0xffffffff; // little
    #endif

    #pragma address OFS1reg=0xffffff88
    const unsigned long OFS1reg = 0xfffffffb;
  • ご回答ありがとうございました。少しずつ理解できました。
    プログラムを実行することで書き換えるものではなく、プログラムを書き込むときに一緒にメモリの値を変えるものと理解しました。
    オプション設定メモリのアドレスの記述はvecttbl.cにありました。
    設定する値はr_bsp_config.hを参照しており、スマートコンフィグレータでコード生成することで変更できました。
    ただし、電圧監視リセット0に関してはエミュレータが強制的にリセット無効に戻す仕様になっていました。
    なので、RFPを使用して書き込みを行う必要があるようです。