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

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

「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
  • 皆様、反応が遅れまして大変申し訳ありません!!
    私の質問、読み返すととてもわかりにくくてすみません。。
    そして、こんなに丁寧に解説いただき感動しております。

    お一人お一人Replayが正しいのか、まとめてがいいのか迷いましたが、
    とりあえずまとめてお礼申し上げます。

    てっきりRXマイコンと同じ動きなんだろう…と思い込んでました。
    なので、EB68さんの回答がよくわからず、それこそ目を皿にしてなんども読み返していました。
    なんで優先順位がずれてるのだろうか??

    そして、Kirinさんの解説で、気が付きました。
    なんと「“-1” された値がISP0,ISP1 フラグに転送」されるとは…

    そうなんです、
    「受け付けた割り込みの優先順位指定フラグの内容をISP1, ISP0フラグへ転送します。」を
    そのまま信じ込んでおりました。(涙)

    NoMaYさん、とてもわかりやすいPDFとプロジェクトを本当にありがとうございました!
    私もRL78/G14 Stick 愛用してます!
    ブレッドボードに差し込めるし、使いやすいですよね。
    動作確認してさらに理解が深まりました。
    確認方法も、とても参考になりました。

    そうなると、あらためてEB68さんの解説がよくわかりました。
    EB68さん、とても丁寧な解説をありがとうございます。

    チョコさんの、リードオンリーのレジスタを、スタック経由で設定の話、
    なんだか昔そんなコード(アセンブリ言語)みたことあるなぁと懐かしかったです。

    新人の頃、紙のデータシートをぼろぼろになるまで読み返して、
    「ここまで読み込んで、もう目を通してないページはないかも」と誇らしく思ったりしてましたが、
    初心忘れるべからずですかね。

    でもでも、Kirinさんのおっしゃるところの、表現のゆらぎ(?)はですね、
    もしUM訂正される機会がありましたら、"-1されて転送される"と揃えていただきたいような。

    それにしても、同じレベルの割り込みが多重割り込みしてしまうのを、
    割り込みコントローラの優先順位判定回路の修正ではなく、
    PRを-1して転送することで解決してたんですね。。

    とても面白いお話が聞けてうれしいです。

    ここで質問してみて、助かりました。
    本当にみなさま、ありがとうございました。
Reply
  • 皆様、反応が遅れまして大変申し訳ありません!!
    私の質問、読み返すととてもわかりにくくてすみません。。
    そして、こんなに丁寧に解説いただき感動しております。

    お一人お一人Replayが正しいのか、まとめてがいいのか迷いましたが、
    とりあえずまとめてお礼申し上げます。

    てっきりRXマイコンと同じ動きなんだろう…と思い込んでました。
    なので、EB68さんの回答がよくわからず、それこそ目を皿にしてなんども読み返していました。
    なんで優先順位がずれてるのだろうか??

    そして、Kirinさんの解説で、気が付きました。
    なんと「“-1” された値がISP0,ISP1 フラグに転送」されるとは…

    そうなんです、
    「受け付けた割り込みの優先順位指定フラグの内容をISP1, ISP0フラグへ転送します。」を
    そのまま信じ込んでおりました。(涙)

    NoMaYさん、とてもわかりやすいPDFとプロジェクトを本当にありがとうございました!
    私もRL78/G14 Stick 愛用してます!
    ブレッドボードに差し込めるし、使いやすいですよね。
    動作確認してさらに理解が深まりました。
    確認方法も、とても参考になりました。

    そうなると、あらためてEB68さんの解説がよくわかりました。
    EB68さん、とても丁寧な解説をありがとうございます。

    チョコさんの、リードオンリーのレジスタを、スタック経由で設定の話、
    なんだか昔そんなコード(アセンブリ言語)みたことあるなぁと懐かしかったです。

    新人の頃、紙のデータシートをぼろぼろになるまで読み返して、
    「ここまで読み込んで、もう目を通してないページはないかも」と誇らしく思ったりしてましたが、
    初心忘れるべからずですかね。

    でもでも、Kirinさんのおっしゃるところの、表現のゆらぎ(?)はですね、
    もしUM訂正される機会がありましたら、"-1されて転送される"と揃えていただきたいような。

    それにしても、同じレベルの割り込みが多重割り込みしてしまうのを、
    割り込みコントローラの優先順位判定回路の修正ではなく、
    PRを-1して転送することで解決してたんですね。。

    とても面白いお話が聞けてうれしいです。

    ここで質問してみて、助かりました。
    本当にみなさま、ありがとうございました。
Children
No Data