検索
連載

マイコンの割り込み優先度、変更する理由とその仕組みQ&Aで学ぶマイコン講座(112)(4/4 ページ)

マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「割り込み優先度」についてです。

Share
Tweet
LINE
Hatena
前のページへ |       

優先度に関するその他の機能

 Arm Cortex-Mプロセッサには、ピンポイントで、割り込み順位を制御する機能があります。PRIMASKとFAULTMASKとBASEPRIです。これらのマスクレジスタはMRS命令とMSR命令でアクセスします。

 PRIMASKを設定すると、実行優先権は0に上げられます。すなわち、NMIとハードフォールト以外の全ての割り込みが禁止されます。

 FAULTMASKを設定すると、実行優先権は-1に上げられます。すなわち、NMI以外の全ての割り込みが禁止されます。

 BASEPRIを設定すると、特定の優先度N(最も低い構成可能な優先度)またはN以下の優先度の低い割り込みが全て禁止されます。Nは各マイコン製品で実装されているビット数に依存します。最大で9ビットです。0でない値は優先度マスクとして動作します。これによって定義された優先度が同じであるか、または現在実行されている優先度よりも高いときに、実行優先度に影響します。

 PRIMASKとBASEPRIは、一時的に割り込みを無効にする時に役立ちます。FAULTMASKは一時的にフォールト処理を無効にする時に役立ちます。

 PRIMASKとFAULTMASKは、非特権アクセス(ユーザーアクセス)状態ではセットできません。

 これらのメカニズムは横取り優先度にだけ影響し、サブ優先度には影響ありません。

注意点

 今回は、Arm Cortex-Mプロセッサを搭載しているSTM32L4シリーズを題材にして解説しましたが、同じArm Cortex-Mプロセッサが搭載されているマイコンでも、割り込みの仕様はさまざまです。必ずマニュアルを確認して使用してください。

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る