• 検索結果がありません。

DriverWizard の使い方

ドキュメント内 WinDriver V10.10 ユーザーズ ガイド (ページ 50-67)

次に DriverWizard の使い方を説明します。

1. ハードウェアをコンピュータに接続します。

PCI カードの場合、コンピュータの適切なスロットに接続します。USB デバイスの場合、コンピュータの USB ポートに接続します。

または、DriverWizard を使用して、実際のデバイスをインストールすることなく、仮想 PCI デバイスの コードを生成するオプションがあります。この DriverWizard の PCI Virtual Device オプションを選 択すると、DriverWizard は 仮想 PCI デバイスのコードを生成します。

2. DirverWizard を起動して対象のデバイスを選択します。

① [スタート] メニューから [プログラム] - [WinDriver] - [DriverWizard] を選択するか、デスクトッ

プの [DriverWizard] アイコンをダブル クリックします。または WinDriver/wizard/ ディレ クトリから wdwizard ユーティリティを実行します。

注意: Windows Vista および 7 では、管理者権限で DriverWizard を起動する必要がありま す。

② [New host driver project] をクリックして新しいプロジェクトを開始します。または、[Open an

existing project] をクリックして保存したセッションを開きます。

図 5.1: WinDriver のプロジェクトを開く、または新規作成

③ DriverWizard が検出したデバイスの一覧からデバイスを選択します。PCI の場合、

Plug-and-Play カードを選択します。Plug-and-Play カード以外の場合、ISA を選択します。

接続していないデバイスのコードを生成する場合、PCI Virtual Device を選択します。

図 5.2: デバイスの選択

3. DriverWizard で INF ファイルを作成します。

Plug-and-Play Windows オペレーティングシステム (Windows 2000 / XP / Server 2003 / Server

2008 / Vista / 7) 用のドライバを開発する場合は、対象のデバイスの INF ファイルをインストールす

る必要があります。このファイルは、windrvr6.sys ドライバと動作するように Plug-and-Play デバ イスを登録します。このステップで DriverWizard が生成したファイルは、Windows 2000 / XP /

Server 2003 / Server 2008 / Vista / 7 を使用しているユーザーに配布する際に、その PC にインス トールする必要があります。

また、生成した INF ファイルは、DriverWizard がデバイスの診断を行う際に使用します (たとえば、

PCI / USB デバイス用のドライバがインストールされていない場合で使用します)。上記で説明した

とおり、これは、WinDriver を使用して、Plug-and-Play システム (Windows 2000 / XP / Server 2003 / Server 2008 / Vista / 7) で Plug-and-Play デバイス (PCI / PCMCIA / USB) をサポートする場合のみ 必要です。INF ファイルの必要性は、セクション 15.1.1 で説明します。

INF ファイルを生成する必要がない場合 (DriverWizard を Linux で使用している場合など) は、以下のステップをスキップしてください。

以下のステップで、DriverWizard で INF ファイルを生成します。

① [Select Your Device] 画面で、[Generate .INF file] ボタンまたは [Next] ボタンを押します。

② DriverWizard は、Vendor ID、Device ID、Device Class、メーカー名およびデバイス名を含む デバイスに関する情報を問い合わせます。メーカーおよびデバイス名、およびデバイスのクラ ス情報を変更することができます。

図 5.3: DriverWizard INF ファイル情報

③ マルチインターフェイスの USB デバイスの場合、各インターフェイスに対して別々に INF ファ イルを作成するか、すべてまたはマルチインターフェイスに対して 1 つの INF ファイルを作成 するかを選択することができます。

− 各インターフェイスの USB デバイスに対して別々に INF ファイルを作成する場合、

[Enter Information for INF File] ダイアログで各インターフェイスに対する INF ファイルを 設定します。

図 5.4: DriverWizard のマルチ インターフェイスの INF ファイル情報 (特定のインターフェイスをそれぞれ設定する場合)

− マルチインターフェイスに対して 1 つの INF ファイルを作成する場合、[Enter

Information for INF File] ダイアログでルートデバイス用の INF ファイルの生成、または

特定のインターフェイス用の INF ファイルの生成を選択することができます。ルートデバ

イス用の INF ファイルの生成を選択すると、複数のアクティブなインターフェイスを処理 できるようになります。

図 5.5: DriverWizard のマルチ インターフェイスの INF ファイル情報 (1 つのインターフェイスを設定する場合)

④ [Next] を押して、生成される INF ファイルを保存するディレクトリを選択します。DriverWizard

は、自動的に INF ファイルを生成します。

DriverWizard で [Automatically Install INF file] オプションをオン (USB デバイスでは、このオ プションはデフォルトでオンです) にすることによって INF ファイルを自動的に DriverWizard からインストールできます。

INF ファイルの自動インストールに失敗した場合、DriverWizard は手動での INF ファイルの インストール方法を表示します。セクション 15.1 で説明します。

⑤ INF ファイルのインストールが終了すると、[Select Your Device] 画面の一覧からデバイスを選 択して開きます。

注意: PCI MSI (Message-Signaled Interrupts) と MSI-X (Extended Message-Signaled Interrupts) の 処理を行うには、セクション 9.2.6.1 の説明のとおり、デバイスの INF ファイルに特定の設定が必要 です。

Windows Vista およびそれ以降で、対象のハードウェアが MSI か MSI-X をサポートする場合、

DriverWizard の INF 生成ダイアログの Support Message Signaled Interrupts オプションが デフォルトで有効になります。このオプションをチェックすると、対象のデバイス用に DriverWizard で生成した INF ファイルに MSI / MSI-X 処理のサポートが含まれます。ただし、このオプションの チェックを外すと (無効にすると)、対象のハードウェアと OS が MSI / MSI-X をサポートしてる場合 でも、PCI 割り込みをレガシーなレベルセンシティブ割り込みの方法を使用して処理します。

4. デバイスの INF ファイルのアンインストールします。

アンインストールオプションを使用して、対象の Plug-and-Play デバイス (PCI / PCMCIA / USB) の INF ファイルをアンインストールします。INF ファイルをアンインストールすると、そのデバイスは windrvr6.sys と動作するように登録されず、Windows のルートディレクトリから INF ファイルを 削除します。

INF ファイルをアンインストールする必要がない場合、このステップをスキップしてください。

① [Select Your Device] 画面で、[Uninstall .INF file] ボタンをクリックします。

② INF ファイルを選択し、削除します。

5. デバイスの診断

デバイスドライバのコードを記述する前に、ハードウェアが正常に動作することを確認します。

DriverWizard を使用してハードウェアを診断します。すべてのアクティビティは DriverWizard のロ

グに残るので、テスト結果を分析できます。

PCI デバイスの場合

① デバイスを診断します。

② PCI デバイスの I/O、メモリ範囲、レジスタ、割り込みを定義および検証します。

− DirverWizard は自動的に Plug-and-Play ハードウェアリソース (I/O 範囲、メモリ範囲、割 り込み) を検出します。

非 Plug-and-Play ハードウェアの場合、ハードウェアのリソースを手動で定義します。

図 5.7: PCI のリソース画面 レジスタを手動で定義します。

図 5.8: レジスタの定義

注意: [Register Information] ウィンドウの [Auto Read] チェック ボックスがあります。[Auto Read] チェック ボックスを ON にしたレジスタを Wizard で実行したレジスタの read (読み込み) / write (書き込み) で実行自動的に読み込みます (Wizard の [Log] ウィンドウに読み込み結 果を表示します)。

− I/O ポート、メモリスペース、定義したレジスタへの読み込みと書き込みをします。

注意: メモリマップ範囲にアクセスする際に、LinuxPowerPCでメモリストレージをビッグ エンディアンを使用して処理する場合、リトルエンディアンを使用するPCIバスとは反対にな るので注意してください。詳細は、セクション 9.7「バイトオーダー」を参照してください。

図 5.9: メモリおよび I/O の Read / Write

− ハードウェアの割り込みを ‘Listen’ (確認) します。

図 5.10: 割り込みの Listen (確認)

注意: レガシーな PCI カードの割り込みなど、レベル センシティブな割り込みの場合、

DriverWizard で割り込みの確認をする前に、DriverWizard を使用して、割り込みステータス

レジスタを定義し、割り込みを認識 (解除) するための read (読み込み) / write (書き込み) コ マンドを割り当てる必要があります。正確に定義しない場合には、OS がハングする可能性が あります。以下、図 5.11 で、定義済みの INTCSR ハードウェアレジスタ用の割り込み確認コ マンドを定義する方法を紹介します。ただし、割り込みの確認情報はハードウェア独自となり ます。

図 5.11: レベル センシティブな割り込みの転送コマンドの定義 USB デバイスの場合

① USB デバイスにおける代替設定を選択します。

図 5.12: USB デバイスのインターフェースの選択

DriverWizard はサポートするすべてのデバイスの代替設定を読み込み表示します。表示されたリ

ストから設定する代替設定を選択します。

注意: 設定されている代替設定が 1 つしかない USB デバイスの場合、DriverWizard は自動的に 検出された代替設定を選択するので、[Select Device Interface] ダイアログは表示されません)。

② USB デバイスのパイプを検証します。

図 5.13: USB コントロール転送

DriverWizard は、選択した代替設定により検出したパイプを表示します。USB データ転送を 行う場合は、次の手順に従ってください。

i. 使用するパイプを選択します。

ii. コントロール パイプ (双方向パイプ) の場合、[Read/Write to Pipe] を選択します。新しい ダイアログ ボックスが表示され、標準 USB 要求 (図 5.8 を参照) を選択またはカスタム要 求を入力できます。

利用可能な標準 USB 要求を選択すると、選択した要求のセットアップ パケット情報を自 動的に入力し、[Request Description] ボックスに要求の詳細を表示します。

カスタム要求の場合、セットアップ パケット情報を入力し、データ (ある場合) を書き込む 必要があります。セットアップ パケットのサイズは 8 バイト長にし、リトル エンディアン バイ ト オーダーを使用して定義します。セットアップ パケット情報は、USB 設定パラメータ (bmRequestType、bRequest、wValue、wIndex、wLength) を設定します。

注意: 標準 USB 要求の詳細は、セクション 9.3 「USB コントロール転送」およびセク ション 9.4 「WinDriver でコントロール転送を行う」を参照してください。

iii. 入力パイプ (データをデバイスからホストに転送) の場合、[Listen to Pipe] を選択します。

HID 以外のデバイスでこの操作を正しく行うには、まずデバイスがデータをホストに送る かどうかを確認する必要があります。データが送信されない場合、しばらく listening をし たあとに「Transfer Failed」と表示されます。

iv. 読み込みを中止する場合は、[Stop Listen to Pipe] をクリックします。

図 5.14: パイプの確認

v. 出力パイプ (データをホストからデバイスに転送) の場合、[Write to Pipe] を選択します。

新しいダイアログ ボックス (図 5.9 を参照) が表示され、書き込みデータを入力します。

DriverWizard はこの操作の結果を記録します。

図 5.15: パイプへの書き込み

vi. 選択したパイプで [Reset Pipe] をクリックして、入力パイプと出力パイプをリセットできま す。

6. 雛型となるドライバコードを生成します。

① [Project] メニューから [Generate Code] を選択、または [Generate Code] ツールバー アイコン を選択してコードを生成します。

② [Select Code Generation Options] ダイアログボックスが表示されます。生成されるコードの言

語と開発環境を選択し、[Next] を選択してコードを生成します。

ドキュメント内 WinDriver V10.10 ユーザーズ ガイド (ページ 50-67)