デュアルバンク機能時の割り込み処理について

RX65N(2MB)で、FIT(r_flash_rx)を使用してコードフラッシュの書き換え機能を実装しています。

デュアルバンク機能を用いて、非動作バンクへ書き込む処理をしていますが、

フラッシュのアクセス時に、割り込みが発生するとプログラムが停止してしまいます。

当該箇所を割り込み禁止にすることで期待する処理は実装できるのですが、デュアルバンク機能では

割り込み処理をRAMに置く必要がないという認識でしたので、納得がいっておりません。

この認識は間違っているのでしょうか?

また、デュアルバンクなら動作バンクのフェッチが可能だと思うのですが、r_flash_rx の一部の関数を

RAMに配置する必要があるのは何故なのでしょうか?

Parents
  • YYさん

    シェルティです、こんにちは。ルネサスの中の人です。

    >>この認識は間違っているのでしょうか?

     ⇒認識は合っていますが、一部例外があります。

    >>r_flash_rx の一部の関数をRAMに配置する必要があるのは何故なのでしょうか?

     ⇒オプション設定メモリがコードフラッシュメモリとtiedになっているためです。オプション設定メモリを書き換える際はRAM実行が必要でしてこれが上述の一部例外となります。コードフラッシュ内のバンク0と1においては、0で1を書き換え、1で0を書き換えはRAM実行が不要です。

    以上です

Reply
  • YYさん

    シェルティです、こんにちは。ルネサスの中の人です。

    >>この認識は間違っているのでしょうか?

     ⇒認識は合っていますが、一部例外があります。

    >>r_flash_rx の一部の関数をRAMに配置する必要があるのは何故なのでしょうか?

     ⇒オプション設定メモリがコードフラッシュメモリとtiedになっているためです。オプション設定メモリを書き換える際はRAM実行が必要でしてこれが上述の一部例外となります。コードフラッシュ内のバンク0と1においては、0で1を書き換え、1で0を書き換えはRAM実行が不要です。

    以上です

Children
  • シェルティさん、回答ありがとうございます。

    >> ⇒認識は合っていますが、一部例外があります。
    >> オプション設定メモリを書き換える際はRAM実行が必要でしてこれが上述の一部例外となります。

    一部例外、というのは、RAM実行の関数処理中は割り込みを禁止するか、発生する可能性のある割り込み処理をRAMに置く必要があるという事でしょうか?

  • YYさん

    シェルティです、こんにちは。

    こちらに回答しますと、Yesになります。

    以上です