デバイスドライバとは?
デバイスドライバとは、ハードウェアのレジスタ操作や割込み処理を隠蔽し、上位ソフトウェアへ統一的なインタフェース(オープン/リード/ライト/制御)を提供するソフトウェア層。ハードウェアの差異を吸収し、移植性を高める。
エンベデッドシステムスペシャリスト試験の過去問では2回出題されています(2016年度〜2019年度)。
でばいすどらいば
デバイスドライバの意味
ハードウェアのレジスタ操作や割込み処理を隠蔽し、上位ソフトウェアへ統一的なインタフェース(オープン/リード/ライト/制御)を提供するソフトウェア層。ハードウェアの差異を吸収し、移植性を高める。
デバイスドライバの具体例
ハードウェア依存部をHAL(Hardware Abstraction Layer)として切り出しておくと、マイコンを変更してもアプリケーション層の修正が不要になる。
デバイスドライバは試験でどう引っ掛けられる?
移植性が上がるのは上位のアプリケーション側であって、ドライバ自身はハードウェア依存のまま残る(差異を吸収する側が依存を引き受ける)。また割込みハンドラはドライバの一部だが、ドライバ=割込みハンドラではない(初期化、レジスタ操作、排他制御、上位向けAPIも含む)。
デバイスドライバと関連する用語
デバイスドライバが出た過去問
リアルタイムシステムにおいて、アプリケーションタスクの要求によって入出力を行うデバイスドライバのタスク部が、要求された処理が完了したときに行う通知処理はどれか。
正解:イベントフラグを使って入出力要求元のタスクに入出力完了を通知する。
要点:完了通知はOSでなく要求元タスクへ同期機能で行う
デバイスドライバのタスク部は、割込みハンドラから処理完了を受け取ったあと、その事実を要求元のアプリケーションタスクへ知らせる必要がある。リアルタイムOSではイベントフラグやセマフォといった同期機能を使い、完了を待って待ち状態になっているタスクを実行可能状態へ戻す。通知の相手はOSやハードウェアではなく、あくまで待っているタスクである。
出典:平成28年度 春期 エンベデッドシステムスペシャリスト試験 am2 問7(IPA)組込みソフトウェア開発を行うために、ターゲットシステム上で未完成の周辺ハードウェアが正しく動作しているようにエミュレーションするデバイスドライバを開発した。この…
正解:スタブ
要点:未完成の下位機能を代替する仮モジュールがスタブ
スタブとは、テスト対象から呼び出される下位のモジュールがまだ完成していないときに、その代わりを務める仮のモジュールである。ここでは未完成の周辺ハードウェアの振る舞いを模擬するデバイスドライバが、上位のソフトウェアから呼ばれる下位側の代役となっているのでスタブに当たる。逆に上位モジュールの代わりに下位を呼び出す役はドライバと呼ばれる。
出典:令和1年度 春期 エンベデッドシステムスペシャリスト試験 am2 問22(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。