RL78 E2 LiteでのSTOPモードを含むプログラムの実行

こんにちは。いつもお世話になっております。ロジナカです。現在STOPモードを含むコードのデバッグをE2 Liteで行っているのですが、お聞きしたいことがありますので教えて頂けますと助かります。

質問:下のコードは一旦STOPモードに入り、外部割込み(INTP0)の立ち上がりエッジでSTOP解除、実行を再開というものです。

これをE2 Liteで ”一切のブレーク無し”でRUNさせるとSTOPで止まらずそのままSTOPの次の命令を実行してしまいます。
E2 Liteを外してエミュレータ無しで実行させるとSTOPで一旦止まり、外部割込みで実行再開することを確認しています。

E2 Lite上でデバッグした場合、そうなってしまうものなんでしょうか?

一応このフォーラムの過去ログをサーチして似た質問がないか確認しましたが、ステップ実行についての記事は発見できましたが、今回のような質問に該当するものは見当たりませんでしたので書込みさせて頂きました。

宜しくお願いします。

コードは:

 DI(); //すべての割込み禁止
    PIF0 = 0;    // 割込みフラグクリア
    PMK0 = 0;    // 割込み許可(マスク解除)
     // ** STOP **
    STOP();        // STOP命令
    // ** RESUME **
    PMK0 = 1;    // 割込み禁止
    PIF0 = 0;    // 割込みフラグクリア
    EI();        // 割込み再開

Parents Reply
  • 何に影響するか、何に影響されるか、が分かりにくいところがある機能の確認は大変ですよね。エミュレータありだとSTOPモード中の消費電力が大きくなるとか(STOPモードは消費電力削減の機能で使われるので)。

Children
  • Yamamoto様
    実験しました。私の予想はビンゴでした。やったことは:
    ●スマートコンフィグレータで「疑似RMM DMM」を「使用しない」にする。

    ●RL78 E2 Liteのプロパティ→デバグツール設定→実行中のメモリアクセス→「実行を一瞬中止してアクセス」「実行中に表示更新を行う」両方とも”いいえ”にする。

    です。これでエミュレータ有無によるSTOP命令での振る舞いに差異がなくなりました(勝手にSTOP解除することはなくなりました)
    解決の為のヒントを下さいましてどうもありがとうございました。