多重割り込み時に優先順位が同じ場合のとき

こんばんわ。うさぎと申します。

「RL78/G14 ユーザーズマニュアル ハードウェア編 Rev. 3.30 2016.08」の

P1021に「現在処理中の割り込みと同レベルか,より低い優先順位の割り込み要求が発
生した場合には,多重割り込みとして受け付けられません。ただしレベル0 の割り込み中にIE フラグをセット
(1)した場合には,レベル0の他の割り込みも許可されます。」とあります。

しかしP1022の「表21 - 11 割り込み処理中に多重割り込み可能な割り込み要求の関係」を見ると、

レベル0以外の場合でも、同じレベルの多重割り込みは受け付けられるように読み取れます。

たとえば、処理中の割り込みレベルがISP0=1,ISP1=0 の時、IE=1でPRが10のときに○(多重割り込み可能)となっています。

また、P1019の「図21 - 11 割り込み要求受け付け処理アルゴリズム」では、

フローチャート中の割り込み要求受付の条件式が(××PR1,××PR0)≦ (ISP1,ISP0)となっていて、同じレベルなら多重割り込みが受け付けられるように思えます。

表や式の解釈が間違っているのでしょうか…。

実機で試してみればよいのでしょうが、どなたかご存知の方がいらっしゃれば、ご教示頂きたく、よろしくお願いいたします。

Parents
  • usagiさん、こんにちは。NoMaYです。

    > NoMaYさん、とてもわかりやすいPDFとプロジェクトを本当にありがとうございました

    PDFとプロジェクトはEB68さんですよ。私はEB68さんのリプライをもとにマニュアルの表の画面コピーにちょっと赤入れしただけですね、、、(^_^;)

    チョコさん、こんにちは。

    > 表の一番下の「ソフトウェア割り込み」のところに問題があります。

    暫く考えていて気付きました。ソフトウェア割り込み(BRK命令の実行)は、ISP1,ISP0の各組み合わせ毎にあり得る話なので、1行のみで書き表すのは不正確であり4行で書かないといけないものですね。(表の一番下のものは、ISP1,ISP0=1,1の時にBRK命令が実行された状況下での場合に対応するものですね。)

Reply
  • usagiさん、こんにちは。NoMaYです。

    > NoMaYさん、とてもわかりやすいPDFとプロジェクトを本当にありがとうございました

    PDFとプロジェクトはEB68さんですよ。私はEB68さんのリプライをもとにマニュアルの表の画面コピーにちょっと赤入れしただけですね、、、(^_^;)

    チョコさん、こんにちは。

    > 表の一番下の「ソフトウェア割り込み」のところに問題があります。

    暫く考えていて気付きました。ソフトウェア割り込み(BRK命令の実行)は、ISP1,ISP0の各組み合わせ毎にあり得る話なので、1行のみで書き表すのは不正確であり4行で書かないといけないものですね。(表の一番下のものは、ISP1,ISP0=1,1の時にBRK命令が実行された状況下での場合に対応するものですね。)

Children
  • チョコです。
    >(表の一番下のものは、ISP1,ISP0=1,1の時にBRK命令が実行された状況下での場合に対応するものですね。)
    NoMaYさん,その通りです。
    BRK命令の説明を見ても,DIにはするが,ISPを操作するとは書いていません。
    つまり,この1行は,書く必要のない情報を記述して,しかも間違えているパターンだと思います。ここは,上の行の右側にある「ソフトウェア割り込み要求はいつでも受付可能」だけで十分だと思います。
  • 毎年この季節になると、RL78を使わせて頂く宿命らしく、また多重割り込みで???となるので(1年経つとすっかり忘れている)、このページはとてもお世話になっています。長らく使っていた「RL78/G14 Stick」ボードとそろそろお別れして「RL78/G1P Fast Prototyping Board」に乗り換えるべくRL78/G1P ユーザーズマニュアル(2019/11発行!新しい!!)の割り込みの章を、期待を込めて紐解いてみると…変わってませんでした!というわけで今後もこのページは忘れっぽい私にとってお守りになりそうです。親切に解説いただいた皆様、ほんとうにありがとうございました。