メディア
連載
» 2016年06月21日 11時45分 公開

Q&Aで学ぶマイコン講座(27):割り込みハンドラとは? (3/3)

[菅井賢(STマイクロエレクトロニクス),EDN Japan]
前のページへ 1|2|3       

割り込みハンドラの動作

 マイコンには、さまざまなペリフェラルが搭載されています。前述したタイマ、通信ペリフェラル、A-Dコンバーター、外部端子の他にも、LCD(Liquid Crystal Display:液晶ディスプレイ)コントローラー/ドライバ、DMA(Direct Memory Access)、暗号化回路などがあります。また、通信ペリフェラルといってもUART (Universal Asynchronous Receiver Transmitter)、SPI(Serial Peripheral Interface)、I2C((Inter-Integrated Circuit)、USB(Universal Serial Bus)、CAN(Controller Area Network)などがあり、それぞれの機能によって割り込みの処理内容が異なります。

 例えば、A-Dコンバーターの場合、変換結果を取り込みます。通信ペリフェラルは、受信時には受信データを取り込みますが、送信時には送信データをセットします。その他エラーが発生したときのエラー処理も割り込みハンドラが行います。

 タイマはオーバーフロー、アンダーフローした際の時間に関係する処理や、コンペアマッチ、インプットキャプチャーのイベントが発生した際の処理も行います。

 表1に代表的な割り込みハンドラの種類と処理の概要を示します。実際の処理内容はユーザーのアプリケーションで異なります。

表1:割り込みハンドラの処理内容 (クリックで拡大)

ハンドラモード

 マイコンによっては、割り込みハンドラが動作している状態を「ハンドラモード」と呼ぶ場合があります。ARMのCortex-Mプロセッサは、スレッドモードとハンドラモードの2つの動作モードを定義しています(図3参照)。

図3:ARM Cortex-Mのハンドラモード (クリックで拡大)

 通常、リセット後にメインプログラムを実行し始める時は、スレッドモードであり、例外処理などが発生したときにハンドラモードに入ります。ここでいうハンドラとは、割り込みハンドラと同じように、例外処理(割り込み、フォールトなど)によって起動される専用プログラムのことを指しています。

連載バックナンバーはこちら

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

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