Home
Services
Services and Training

Driver Training

Technical support portal
Course dates + locations
Questions?
Contact us
Foundry27
Source, upgrades, community forums, and more
BSPs and drivers
Community resources
Documentation library

QNX Neutrino デバイス ドライバ トレーニング コース

目標

このコースは、QNX Neutrino でのドライバ開発を行うプログラマを対象に構成されています。コースでは、何種類かのサンプルドライバの記述を行います。

  1. QNX Neutrino RTOS での様々なタイプのドライバ記述方法を学習します。
  2. 実践的な問題解決テクニックを習得します。
  3. 実践問題に取り組み、コースを通じて紹介されるコンセプトを応用します。

トピック
本コースは、以下のセクションから構成されます。

概要
まず、QNX Neutrino RTOS と QNX ドライバのキーポイントとなる機能、サービス、アーキテクチャなどの概要について学びます。この概要は、コース全体の「ロードマップ」の役割を果たし、QNX Neutrino RTOS 用ドライバを記述する際の「感触」を得ていただくことを目標にしています。

コンパイルとデバッグ
コマンドライン ツールおよび QNX Momentics 開発スイートのIDEを使用したアプリケーション開発について解説します。ターゲット システムへのダウンロードとデバッギングについて学習します。

QNX Neutrino RTOS プログラミングの基礎
スレッド、ミューテックス、メッセージ パッシング、パルス、タイミングなど、QNX Neutrino RTOS プログラミングの基礎的なコンセプトを解説します。このセクションは、以前に QNX の基礎知識を取得しており、実践から遠ざかっていたプログラマにとって格好の復習内容となります。また、ほかのコース トピックで必要な基礎知識を提供します。

リソース マネージャの概要
パス名解析、IPCメッセージ フォーマット、一般的な構造など、リソース マネージャの機能について解説します。実習では、/dec/null/ を実装する非常にシンプルなリソース マネージャから、複数のデバイスをサポートするより複雑な例まで、複数の実践問題に取り組みます。

リソース マネージャ上級トピック
概要のセクションに続き、リソース マネージャについてさらに詳しく解説します。ハンドラからリターンする様々な方法、アクセス時間と更新時間の管理、クライアントをブロック状態にする方法、マルチスレッドのリソース マネージャ、結合メッセージの実装、ブロック解除処理、パルスの受信、select() および ionotify() の使用法など、広範な内容を学習します。また、練習実践問題により、リソース マネージャ概念の理解を深めます。

I/O
ドライバの I/O に関する詳細を解説します。ポート I/O とメモリマップ I/O、DMA メモリ設定、PCI API の使用方法などについて学習します。

割り込み
従来的なオペレーティング システムとは異なり、QNX Neutrinoでの割り込みハンドラ記述とデバッグは、比較的簡単です。このセクションでは、割り込みハンドラに対する複数のアプローチを紹介し、ハンドラをどのようにリソース マネージャに結びつけるか学習します。実践問題では、これらの概念を現実的な問題解決に応用していきます。

I/O の練習
ドライバ記述を学習中のプログラマに最適な練習問題集です。練習問題は使用するハードウエアによって異なり、以下から選ぶことができます。

スクリーン ドライバの練習(1時間)
クライアント アプリケーションからデータを受け取るリソース マネージャに I/O パーツを追加し、データをビデオ メモリに書き込みます。

キーボード ドライバの練習(1時間)
PC キーボードから読み込みを行うドライバに I/O パーツを追加します。

サウンド ブラスタ ドライバの練習(1.75 時間)
ドライバの複数の I/O パーツを変更し、サウンドプレイ、プレイ レートの変更、ボリュームの制御ができるようにします。

X10 ドライバの練習(3.5 時間)
割り込みハンドラ、タイマ、イベントなど、さまざまなコンポーネントを設定します。上級プログラマは、I/O の大部分も処理します。

ファイルシステム リソース マネージャ
データをファイルまたはファイルシステムの形で表現するプロセスである、ファイルシステム リソース マネージャの記述について解説します。このセクションでは、tar ファイルをファイルシステムとして表現するリソース マネージャを記述します。

フラッシュ ファイルシステム ドライバのカスタマイズ
ファイルシステムの詳細を隠す API を使用してフラッシュ ファイルシステム ドライバを記述する方法を学習します。ソケット サービスのレイヤを変更する方法、および、メモリ テクノロジ ドライバ(MTD)ライブラリを選択する方法について解説します。

ネットワーク ドライバの記述
ネットワーク ドライバは、QNX Neutrino RTOS のネットワーク マネージャである io-net とのインターフェイスとなるハードウエア レベルのプロセスです。このセクションでは、ネットワーク ドライバ記述の詳細について学習します。

実践問題
コース全体を通じ、各セクションの最後で学習内容を実践に活かす練習問題を用意しています。それぞれのプログラミング テクニックを学習するごとに、これを実際のアプリケーションで発生し得る状況に応用していきます。クラスで学習する練習問題とその回答を含んだディスケットを、コースの最後に配布します。また、各自の作業内容を持ち帰れるよう、空のディスケットも配布します。