FM0+、FM3、およびFM4のNVICでの割り込みネスティングに関する考慮事項 - KBA228323 - Community Translated (JA)

Version 1

    Community Translated by  NoTa_4591161           Version: **

     

    Translation - English: Considerations for Interrupt Nesting with NVIC in FM0+, FM3, and FM4 - KBA228323

     

     

    FM0+FM3及びFM4シリーズでの Arm®コアマイコンはネスト型ベクタ割り込みコントローラ(NVIC)を有しています。

     

    32ビットマイクロコントローラFM3ファミリペリフェラルマニュアル7-27-4章を参照してください。

     

    割り込みが処理されているときに、現在処理されている割り込みよりも優先度の低い別の割り込みが発生した場合、優先度の低い割り込み要求はNVIC内で保留されたままになります。後続のプロセスとして、優先順位が最も高い保留中の割り込みは、前の割り込み処理が完了した後に処理されます。

    ただし、前の割り込みによってトリガされた割り込みサービスルーチン(ISR)中の次の割り込み要求を処理する必要がない場合は、ペリフェラルからの割り込み要求とNVIC内で保留されていた割り込み要求の両方をクリアする必要があります。

    たとえば、2バイトのシリアルデータは、次のように1つのISRで提供されます。

     

    Untitled.png 

     

    1番目の割り込みによってトリガされた1番目のISR2番目のバイトデータがすでに受信されているため、2番目の割り込みをキャンセルする必要があります。

    1番目のISR2番目の割り込みをキャンセルすると、ペリフェラルからの2番めの割り込み要求のみがクリアされます。 この場合、2番目の割り込み要求はNVICで保留されているため、この保留中の2番目の割り込み要求は、1番目のISRが完了した後で予期しないISRをトリガしてしまいます。

     

    Untitled.png 

     

    予期しない割り込みを回避するための解決策は、次の図に示すように、NVICではなく、ISRの先頭で割り込みをマスクすることです。

     

    Untitled.png

    これらの例は、シリアルデータ通信からの割り込みのケースを説明していますが、ソリューションは他のペリフェラルからの割り込み要求にも適用できます。