メディア

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

» 2026年02月26日 10時00分 公開

割り込み優先度の制御

 割り込み優先度の段階の設定には、「割り込み優先度レジスタ」を使います。このレジスタの中のPRI_Nフィールド(Nは割り込み番号を表す)を設定することで、優先度を割り当てることができます。PRI_Nフィールドがフル実装の8ビットであれば、各割り込みを256段階の0〜255に割り当てることができます。ただし、STM32L4シリーズの場合は、上位4ビットのみの実装なので、16段階の0〜15になります。

<strong>図1:STM32L4の割り込み優先度レジスタ」のPRI_Nフィールド(再掲)</strong> 図1:STM32L4の割り込み優先度レジスタ」のPRI_Nフィールド(再掲)[クリックで拡大]

 PRI_Nフィールドの値で決まる割り込み優先度の「横取り優先度」と「サブ優先度」の段階数は、「アプリケーション割り込みおよびリセット制御レジスタ」のPRIGROUPフィールドで決まります。

 例えば、PRIGROUPフィールドを100(二進数)に設定します。この時、横取り優先度にPRI_NフィールドのMSB側の3ビットが割り当てられ、サブ優先度にLSB側の5ビットが割り当てられます。横取り優先度が3ビットですので2の3乗の8段階になり、サブ優先度が5ビットですので、32段階になります。8段階×32段階で合計256段階に優先度が割り当てられます。

<strong>図4:アプリケーション割り込みおよびリセット制御レジスタ</strong> 図4:アプリケーション割り込みおよびリセット制御レジスタ[クリックで拡大]

 STM32L4の場合は、割り込み用優先度レジスタのPRI_Nフィールドの8ビットのうちMSB側の4ビットしか実装されていないので、LSB側の4ビットは常に0として読み出されることになります。この場合、PRIGROUPフィールドは011〜111(二進数)が有効になり、優先度の割り当ては16段階になります。

 例えば、PRIGROUPフィールドが101(二進数)の場合、横取り優先度は4段階、サブ優先度も4段階で、合計16段階になります。

<strong>図5:STM32L4の割り込み優先度割付</strong> 図5:STM32L4の割り込み優先度割付[クリックで拡大]

Copyright © ITmedia, Inc. All Rights Reserved.

特別協賛PR
スポンサーからのお知らせPR
Pickup ContentsPR
Special SitePR
あなたにおすすめの記事PR

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.