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

デバイス ファームウェアの開発

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

第 9 章 実行に当たっての問題

16.4 WinDriver USB Device の開発プロセス

16.4.3 デバイス ファームウェアの開発

ウィザードでファームウェアコードを生成した後、必要に応じて、コードを修正できます。開発が効率的に行 えるように、ライブラリおよび生成した WinDriver USB Device ファームウェア API を使用して、必要なファー ムウェアの機能を実装します。

USB ファームウェアの API および生成されるコードは、リファレンスで説明します。

注意: WinDriver ライブラリおよび生成したデバイスのファームウェアコードを修正する場合、コードがター ゲットハードウェアの仕様を満たしていることを確認してください。

z FX2LP CY7C68013A ボードの場合: EZ-USB_TRM.pdf - 特に、セクション 15.6「Endpoint

Configuration」を参照してください。このドキュメントは、Cypress\USB\Doc\FX2LP\ ディレクト リにあります。次の URL からオンラインでも入手できます。

http://www.keil.com/dd/docs/datashts/cypress/fx2_trm.pdf

z PIC18F4550 ボードの場合: 39632b.pdf (特に、セクション 17.3「USB RAM」および 17.4「Buffer Descriptors and the Buffer Descriptors Table」を参照してください。このドキュメントは、次の Web サ イトから入手できます。

http://ww1.microchip.com/downloads/en/DeviceDoc/39632b.pdf

z PDIUSBD12 の場合: PDIUSBD12-08.pdf。次の Web サイトから入手できます。

http://www.semiconductors.philips.com/pip/PDIUSBD12D.html#datasheet

z Silicon Laboratories C8051F320 ボードの場合: C8051F32xRev1_1.pdf (特に、セクション 15.5

「FIFO Management」および 15.11 「Configuring Endpoints 1-3」を参照してください。このドキュメン トは、Silabs\MCU\Documentation\Datasheets\ ディレクトリにあります (Silicon Laboratories IDE をインストールした場合)。また、次の Web サイトからも入手できます。

http://www.keil.com/dd/docs/datashts/silabs/c8051f32x.pdf

16.4.3.1 DriverWizard で生成される USB デバイス ファームウェア ファイル

デバイスのファームウェアコードを生成するとき、DriverWizard は xxx_FW ディレクトリに次のファイルを作 成します:

z periph.c: WinDriver\wdf\<vendor>\<hardware>\include\ periph.h ヘッダー ファイル (例: WinDriver\wdf\cypress\FX2LP\include\ periph.h) [16.3.1] で宣言さ れる、デバイス用の USB 周辺機器機能をサポートする関数の実装を含む C のソース ファイル。関 数の実装は、DriverWizard で定義した特定のデバイス設定により行われます。

z DriverWizard で定義した情報を利用する、デバイス記述子情報:

○ Cypress EZ-USB FX2LP CY7C68013A ハードウェアの場合:

wdf_dscr.a51: アセンブリ ファイル

○ Microchip PIC18F4550、Philips PDIUSBD12 および Silicon Laboratories C8051F320 ハード ウェアの場合:

wdf_dscr.c および wdf_dscr.h (Microchip および Silicon Laboratories): C ファイル z build.bat: ファームウェア コードのビルド用のコマンドライン ユーティリティ

z xxx.Uv2/mcp/wsp/mak: ([Select Code Generation Options] ダイアログボックスでコンパイラ / IDE を選択した場合) 指定されたコンパイラ / IDE (Keil uVision / Microchip MPLAB / Silicon Laboratories IDE / Turbo C) でコードをビルドするための project / make ファイル

z Microchip PIC18F4550 ボードの場合:

xxx.lkr: リンカ ファイル

○ ボード用の Mass Storage ファームウェアを生成する場合:

wdf_xxx_hw.c: ハードウェア固有のストレージ メディア アクセス関数

(18F4550\include\classmsd\wdf_disk.h ヘッダー ファイルで宣言される [16.3.2]) の実装用 stub を含む C ソース ファイル

次のファイルは、WinDriver USB Device ファームウェアライブラリのソースコードを含みます。これらのファイ

ルは、WinDriver USB Device ツールキットの登録版 (評価版と登録版の違いについては、セクション

16.4.3.2 を参照) を使用している場合にのみ生成されます。

z main.c: ファームウェアのメインのエントリ ポイントの実装を含む C ソース ファイル。Silicon Laboratories C8051F320 ハードウェアおよび Philips PDIUSBD12 ハードウェアをベースとしたデバ イスの場合、必要な USB 割り込みサービス ルーチン (USB_ISR() (Silicon Laboratories) / UsbISR() (Philips)) の実装も含まれます。

注意: Philips コードの ISR の実装は、プラットフォームに依存します。デフォルトの実装は

D12-ISA (PC) Eval Kit で、ターゲットは x86 です。その他のマイクロコントローラをサポートするよう

に、実装を変更することができます (セクション 16.4.3.2 を参照)。

z wdf_<vendor>_lib.c (Cypress、Microchip および Silicon Laboratories の場合。

例: wdf_cypress_lib.c) / <hardware>_lib.c (Philips の場合。例: d12_lib.c): 選択さ れたターゲットハードウェア用の WinDriver USB Device ファームウェアライブラリ関数の実装を含 む C ソースファイル

z Microchip PIC18F4550 ボードの場合:

wdf_usb9.c: wdusb9_.h ヘッダーファイル [16.3.2] で宣言される、ファームウェアライブ

ラリ USB ディクスリプタ関数の実装を含む C ソースファイル

○ ボード用の Mass Storage デバイスファームウェアを生成する場合:

wdf_msd.c: WinDriver\wdf\microchip\18F4550\include\class\msd\

wdf_msd.h ヘッダーファイル [16.3.2] で宣言される、Mass Storage Class ファームウェ ア関数の実装を含む C ソースファイル

z Philips PDIUSBD12 の場合:

d12_ci.h および d12_ci.c: PDIUSBD12 コマンドインターフェイスの一般的な定義と関 数の宣言を含むヘッダーファイル (d12_ci.h)、およびコマンド関数の実装を含む C ソース ファイル (d12_ci.c)

d12_io.c: d12_io.h ヘッダー ファイル [16.3.2] で宣言される、ハードウェア固有のファー ムウェア ライブラリ関数の実装を含む C ソース ファイル

16.4.3.2 DriverWizard で生成されたファームウェアのビルド

生成されたファームウェアコードをビルドするには、次のいずれかの方法を使用します。

z コマンドラインから生成された build.bat ユーティリティを実行する

z サポートされている IDE (Cypress および Silicon Laboratories の場合は Keil uVision。Microchip の場合は Microchip MPLAB。Silicon Laboratories の場合は Silicon Laboratories IDE) 用のプロ ジェクトファイルの生成を選択した場合、この IDE を使用して生成されたプロジェクトをビルドする ビルド出力は、 xxx.hex ファームウェアファイル (Cypress、Microchip および Silicon Laboratories の場合)

/ XXX.EXE ファームウェアファイル (Philips PDIUSBD12 の場合) です。xxx はファームウェアプロジェクト

用に選択した名前です。

注意: 生成される build.bat およびコンパイラ固有のプロジェクト ファイルまたは make ファイルは、

WinDriver USB Device の登録版と評価版で異なります。また、出力も異なります。

評価版の場合、評価用ファームウェアライブラリが使用され、転送に制限 (標準のライブラリの場合は最大 25,000、Microchip PIC18F4550 Mass Storage ライブラリの場合は 1,000,000) があります ([16.3.5] を参照)。 登録版の場合、生成されたライブラリ ソース ファイルが使用され、転送に制限はありません。

Philips PDIUSBD12 ファームウェアライブラリおよびこのライブラリを利用するサンプルは、ISA カードを使用

して PDIUSBD12 ベースのボードを x86 に接続する D12-ISA (PC) Eval Kit をターゲットとしています。この

ため、作成されるファームウェアは、DOS 実行ファイルです。登録版の WinDriver USB Device ユーザー は、他のマイクロコントローラをサポートするために、ライブラリの x86 ハードウェア固有の部分 (特に、

d12_io.h、d12_io.c [16.4.3.1] および main.c のISR) とサンプルソースコードを変更し、サポートされ ている方法でそのマイクロコントローラ用のファームウェアをビルドおよびダウンロードすることができます。

Windriver USB Device ツールキットの評価期間中に作成したファームウェア プロジェクト ファイル

(xxx.wdp) がある場合は、WinDriver USB Device ツールキットを登録後に、これらのファイルを開いてウィ

ザードでファームウェアコードを再生成し、新しい登録版の build.bat とプロジェクトファイルを作成して

ください。それから、これらのファイルを使用して登録版のフル機能のファームウェアをビルドし、ファーム ウェアをデバイスにダウンロードしてください。

16.4.3.3 デバイスへのファームウェアのダウンロード

ファームウェアをビルドした後、ハードウェアのベンダーのファームウェアダウンロードツールを使用して ファームウェアをハードウェアにダウンロードします。

注意: WinDriver USB ドライバ開発キットの登録版または評価版を使用している場合、サンプル ファーム ウェア ダウンロード アプリケーション (Cypress: WinDriver\ cypress\ firmware_sample\WIN32\

download_sample.exe、Microchip: WinDriver\ microchip\ pic18f4550\

bootloader_sample\WIN32\bootloader_demo.exe) を使用して、Cypress EZ-USB FX2LP CY7C68013A ファームウェアおよび標準のMicrochip PIC18F4550 ファームウェアをダウンロードできます。

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