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

DriverWizard の使い方

ドキュメント内 WinDriver V9.0 ユーザーズ ガイド (ページ 54-67)

第 5 章 DriverWizard

5.2 DriverWizard の使い方

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

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

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

タの USB ポートに接続します。

または

DriverWizard を使用して、実際のデバイスをインストールすることなく、PCI デバイスのコードを生

成するオプションがあります。このオプションを選択すると、DriverWizard は仮想 PCI デバイスの コードを生成します。

注意: 仮想 PCI デバイス オプションを選択した場合、 デバイスのリソースの定義を行います。IO/メ モリ範囲を指定すると、ランタイム レジスタ (オフセットは、BARs に関連しています) をさらに細かく 定義することも可能です。また、ランタイム レジスタを通じて割り込みを認識するコードを生成した い場合、IRQ を指定する必要があります。IRQ ナンバーと IO/メモリ範囲のサイズは無関係です。

これらは、物理デバイスをインストールしたときに、DriverWizard により自動的に認識されます。

2. ウィザードを実行してデバイスを選択します。

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

プの [DriverWizard] アイコンをダブルクリックします。または WinDriver/wizard/ ディレ

クトリから wdwizard ユーティリティを実行します。

② [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: デバイスの選択

注意: Windows 98 の場合、一覧に対象の USB デバイスがない場合、USB デバイスを再接続して [新しいハードウェアの検出] ウィザードを表示します。次の手順でデバイスの INF が生成されるま でダイアログボックスを開いたままにします。

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

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

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

あります。このファイルは、windrvr6.sys ドライバと動作するように Plug-and-Play デバイスを登 録します。このステップで DriverWizard が生成したファイルは、Windows 98 / Me / 2000 / XP / Server 2003 / Vista を使用しているユーザーに配布する際に、その PC にインストールする必要が あります。

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

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

とおり、これは、WinDriver を使用して、Plug-and-Play システム (Windows 98 / Me / 2000 / XP / Server 2003 / Vista) で 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 ファイルを生成します。

Windows 2000 / XP / Server 2003 / Vista 上では、DriverWizard で [Automatically Install INF

file] オプションをオン (USB デバイスでは、このオプションはデフォルトでオンです) にするこ

とによって INF ファイルを自動的に DriverWizard からインストールできます。Windows 98 /

Me 上では、Windows の [新規ハードウェアの追加ウィザード] または [デバイスドライバの更

新ウィザード] を使用して INF ファイルを手動でインストールする必要があります。セクション

トールに失敗した場合、DriverWizard は手動での INF ファイルのインストール方法を表示し ます。

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

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 ポート、メモリスペース、定義したレジスタへの読み込みと書き込みをします。

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

注意: メモリ マップされた領域にアクセスする際には、Linux PowerPC は、PCI バス (リトル エンディアンを使用) とは対照的に、メモリ ストレージを処理するのにビッグ エンディアンを使 用します。リトル / ビッグ エンディアンに関する詳細情報はセクション [9.7] を参照してくださ い。

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

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

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

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

割り込みを認識 (解除) するための read (読み込み) / write (書き込み) コマンドを割り当てる必 要があります。正確に定義しない場合には、OS がハングする可能性があります。特定の割り 込みの認識情報はハードウェアの仕様となります。

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

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

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

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

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

注意: 設定されている代替設定が一つしかない 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 V9.0 ユーザーズ ガイド (ページ 54-67)