C.1 ファームウェア ライブラリの API
C.1.2 wdf_microchip_lib .h 関数およびマクロ
このセクションでは、ファームウェア ライブラリの一般的な関数およびマクロについて説明します。
クションで説明する関数およびマク wdf_microchip_lib .h ヘッダーファイルで宣言、定義さ rWizard で生成された wdf_mic
lib wdf_microchip_18f4550_e ) で
ます。詳細は、WinDriver ユー ョン 15.3.5 を参照してください。
.1 WDF_EPConfig()
指定された USB 転送用のエンドポイントを設定
プロトタイプ
このセ ロは、
れ、Drive 18F4550\
rochip_lib .c ファイル (登録ユーザーの場合)、または val.lib 評価版ファームウェアライブラリ (評価版ユーザー
実装され ザーズ ガイドのセクシ
C.1.2 目的
• し、有効にします。
void WDF_EPConfig(
EP_DATA *ep_data, byte ep_num, EP_DIR dir, EP_TYPE type, word max_packet, near byte *reg, BDT *e_bdt, byte *e_buffer, BDT *o_bdt, byte *o_buffer);
W I N D R I V E R U S B
パラメータ
名前 型 入出力
ep_data EP_DATA* 入力/出力
ep_num byte 入力
dir EP_DIR 入力
type EP_TYPE 入力
max_packet word 入力
reg near byte* 入力
e_bdt BDT* 入力
e_buffer byte* 入力
o_bdt BDT* 入力
o_buffer byte* 入力
説明
名前 説明
ep_data エンドポイントデータの構造体 [C.1.1.11] へのポインタ
ep_num エンドポイントの数
dir エンドポイントの方向 [C.1.1.1]
type エンドポイントの転送の種類 [C.1.1.2]
max_packet エンドポイントのバイト単位での最大パケットサイズ
reg エンドポイントの UEPn レジスタへのポインタ
e_bdt エンドポイントの偶数バッファディスクリプタテーブル [C.1.1.5]
へのポインタ
e_buffer エンドポイントの偶数データ バッファへのポインタ
o_bdt エンドポイントの奇数バッファ ディスクリプタ テーブル [C.1.1.5]
ブル バッファリングが無効の場合は NULL にすることができま す。
へのポインタ ダ
o_buffer エンドポイントの奇数データ バッファ
は NULL にすることができま す。
ダブルバッファリングが無効の場合
戻り値
なし。C.1.2.2 WDF_EPWrite()
エンドポイントへデータを書き込みます。
後に、WDF_TriggerWriteTransfer() [C.1.2.9] または WDF_TriggerOptionWriteTransfer() [C.1.2.10] を呼び出す必要があります。
プロトタイプ 目的
• RAM バッファから指定された この関数を呼び出した
void WDF_EPWrite(
EP_DATA *ep_data, byte *buffer, word len);
パラメータ
名前 型 入出力
ep_data EP_DATA* 入力
buffer byte* 入力
len word 入力
説明
名前 説明
ep_data エンドポイント データの構造体 [C.1.1.11] へのポインタ
buffer 書き込むデータを保持するバッファへのポインタ
len 書き込むバイト数
戻 値
なし。り
目的
• ROM バッファから指定されたエンドポイントへデータを書き込みます。
riggerWriteTransfer() [C.1.2.9] または ransfer() [C.1.2.10] を呼び出す必要があります。
C.1.2.3 WDF_EPWriteRom()
この関数を呼び出した後に、WDF_T WDF_TriggerOptionWriteT
W I N D R I V E R U S B
プロトタイプ
void WDF_EPWriteRom(
EP_DATA *ep_data, rom byte *buffer, word len);
パラメータ
型 入出力
名前
ep_data EP_DATA* 入力
buffer byte* 入力
len word 入力
説明
説明 名前
ep_data エンドポイントデータの構造体 [C.1.1.11] へのポインタ
buffer 書き込むデータを保持する ROM バッファへのポインタ
len 書き込むバイト数
戻り値
し。C.1.2.4 WDF_EPWriteNoCopy() 目的
用して、指定されたエンドポイントへデータを書き込みます。
(ep_data) で保持されるデータバッファへコピーされず、関数の レス(addr) から直接書き込まれます。注意: この関数への呼び出しでイン は、0x400 から 0x7FF の間の 1KB RAM アドレス空間になければなりません。
出した後に、WDF_TriggerWriteTransfer() [C.1.2.9] または WDF_TriggerOptionWriteTransfer() [C.1.2.10] を呼び出す必要があります。
タイプ
な• インプット RAM バッファを使 データ構造体 データは、エンドポイントの
ファアド インプットデータバッ プット データ buffer この関数を呼び
プロト
void WDF_EPWriteNoCopy(
EP_DATA *ep_data, byte *buffer, word len);
パラメータ
入出力
名前 型
ep_data EP_DATA* 入力
buffer rom byte* 入力
len word 入力
説明
名前 説明
ep_data エンドポイント データの構造体 [C.1.1.11] へのポインタ
buffer 書き込むデータを保持するバッファへのポインタ
len 書き込むバイト数
戻り値
なし。DF_EPRead() 目的
たエンドポイントから RAM み取ります。
この関数を呼び出した後に、WDF_TriggerReadTransfer() [C.1.2.11] または iggerOptionReadTransfer() [C.1.2.12] を呼び出す必要があります。
プロトタイプ C.1.2.5 W
• 指定され へデータを読
WDF_Tr
word WDF_EPRead(
EP_DATA *ep_data, byte *buffer, word len);
パラメータ
名前 型 入出力
ep_data EP_DATA* 入力
buffer byte* 出力
len word 入力
W I N D R I V E R U S B
説明
名前 説明
ep_data エンドポイント データの構造体 [C.1.1.11] へのポインタ
buffer 読み取ったデータで更新するバッファへのポインタ
len 読み取るバイト数
戻り値
読み取ったバイト数を返します。
WDF_IsEPStall()
プロトタイプ C.1.2.6 目的
• 指定されたエンドポイントが現在ストールされているかどうかを確認します。
BOOL WDF_IsEPStall(EP_DATA *ep_data);
パラメータ
名前 型 入出力
ep_data EP_DATA* 入力
説明
名前 説明
ep_data エンドポイント データの構造体 [C.1.1.11] へのポインタ
戻り値
エンドポイントが現在ストールされている場合は TRUE を返します。そうでない場合は FALSE を返します。
WDF_IsEPBusy() C.1.2.7
目的
• 指定されたエンドポイントが現在ビジーかどうかを確認します。
プロトタイプ
WDF_IsEPBusy(ep_data)
パ メータ ラ
型 入出力
名前
ep_data EP_DATA* 入力
説明
名前 説明
ep_data エンドポイントデータの構造体 [C.1.1.11] へのポインタ
戻り値
エンドポイントが現在ビジーな場合は TRUE を返します。そうでない場合は FALSE を返します。
WDF_IsEPDataReady()
定されたエンドポイントにホストから受け取ったデータが含まれているかどうかを確認します。
プロトタイプ C.1.2.8 目的
• 指
WDF_IsEPDataReady(ep_data)
パラメータ
力
名前 型 入出
ep_data EP_DATA* 入力
説明
名前 説明
ep_data エンドポイント データの構造体 [C.1.1.11] へのポインタ
戻り値
トにホストからのデータが含まれている場合は TRUE を返します。そうでない場合は FALSE を 返します。
エンドポイン
W I N D R I V E R U S B
C.1.2.9 WDF_TriggerWriteTransfer()
されたエンドポイントのデータ タのUSB
SIE へ転送します。
プロトタイプ 目的
• 指定 書き込み転送をトリガーし、関連するバッファディスクリプ の所有権を
WDF_TriggerWriteTransfer(ep_data)
パラメータ
入出力
名前 型
ep_data EP_DATA* 入力
説 明
名前 説明
ep_data エンドポイントデータの構造体 [C.1.1.11] へのポインタ
戻り値
なし。DF_TriggerOptionW r()
目的
• 指定されたエンドポイントのデータ書き込み転送をトリガーし、関連するバッファディスクリプタのUSB 権を SIE へ転送します。
書き込み転送のトリガーオプション [C.1.1.3] を設定することができます。
プロトタイプ
C.1.2.10 W riteTransfe
の所有 この関数では、
void WDF_TriggerOptionWriteTransfer(
EP_DATA *ep_data, byte options);
パラメータ
名前 型 入出力
p_data EP_DATA* 入力
e
options byte 入力
説明
名前 説明
ep_data エンドポイント データの構造体 [C.1.1.11] へのポインタ
options トリガーオプション – 0 (オプションなし) または
WDF_TRIGGER_OPTIONS 列挙値 [C.1.1.3] を設定できます
戻り値
なし。
1 WDF_TriggerReadTransfer() 目的
されたエンドポイントのデータ読み取り転送をトリガーし、関連するバッファ USB SIE へ転送します。
プロトタイプ C.1.2.1
• 指定
の所有権を
ディスクリプタの
WDF_TriggerReadTransfer(ep_data)
パラメータ
名前 型 入出力
ep_data EP_DATA* 入力
説明
名前 説明
ep_data エンドポイントデータの構造体 [C.1.1.11] へのポインタ
戻り値
()
• 指定されたエンドポイントのデータ読み取り転送をトリガーし、関連するバッファディスクリプタのUSB の所有権を SIE へ転送します。
この関数では、読み取り転送のトリガーオプション [C.1.1.3] を設定することができます。
なし。
C.1.2.12 WDF_TriggerOptionReadTransfer
目的
W I N D R I V E R U S B
プロトタイプ
void WDF_TriggerOptionReadTransfer(
EP_DATA *ep_data, byte options);
パラメータ
名前 型 入出力
ep_data EP_DATA* 入力
options byte 入力
説明
説明 名前
ep_data エンドポイント データの構造体 [C.1.1.11] へのポインタ
options トリガーオプション – 0 (オプションなし) または
WDF_TRIGGER_OPTIONS 列挙値 [C.1.1.3] を設定できます
戻り値
ansferNoCopy()
るバッファディスクリプタのUSB の所 有権を SIE へ転送します。
ータは、エンドポイントのデータ構造体 (ep_data) で保持されるデータバッファではなく、関 数のインプットデータバッファアドレス (addr) にコピーされます。
関数のインプット データ バッファ (addr) は、0x400 から 0x7FF の間の AM アドレス 空間になければなりません。
出した後、読み取ったデータは、呼び出し元のデータ バッファ (addr なります。そのため、WDF_EPRead() [C.1.2.5] への呼び出しは必要ありません。
プロトタイプ
なし。C.1.2.13 WDF_TriggerReadTr 目的
指定されたエンドポイントのデータ読み取り転送をトリガーし、関連す 読み取ったデ
注意: アドレス 1KB R
この関数を呼び ) で利用できるように
void WDF_TriggerReadTransferNoCopy(
EP_DATA *ep_data, byte *addr);
パラメータ
名前 型 入出力
ep_data EP_DATA* 入力
addr byte* 入力
説明
名前 説明
ep_data エンドポイント データの構造体 [C.1.1.11] へのポインタ
addr 読み取ったデータがコピーされるデータ バッファの初めへのポイ
ンタ
戻り値
C.1.2.14 WDF_GetReadBytesCount()
• 指定されたエンドポイントの読み取りバッファの現在のバイトカウントを取得します。
[C.1.2.5] を呼び出してエンドポイントから読み取る前に、この関数を呼び出し、読み取る を割り出す必要があります。
プロトタイプ
なし。目的
WDF_EPRead() バイト数
WORD WDF_GetReadBytesCount(EP_DATA *ep_data);
パラメータ
名前 型 入出力
ep_data EP_DATA* 入力
説明
名前 説明
ep_data エンドポイント データの構造体 [C.1.1.11] へのポインタ
戻り値
エンドポイントの読み取りバッファのバイト数を返します。
W I N D R I V E R U S B
C.1.2.15 WDF_DisableEP1to15() 目的
イプ
• エンドポイント1 から 15 を無効にします。
プロトタ
void WDF_DisableEP1to15(void);
戻り値
なし。• 指定されたエンドポイントを無効にします。
タイプ
C.1.2.16 WDF_DisableEP() 目的
プロト
void WDF_DisableEP(EP_DATA *ep);
パラメータ
名前 型 入出力
ep_data EP_DATA* 入力
説明
名前 説明
ep_data エンドポイントデータの構造体 [C.1.1.11] へのポインタ