usbc_api.h
メンバ |
説明 |
struct usbd_usb_deviceinfo* usbdev; |
デバイス情報 Split管理情報も含む。(HUBクラスで格納する。) |
uhs_ubit32_t pipe; |
PIPE情報 Pipe情報は主にUSBコントロールブロックのメンバとしてパイプ操作やUSBリクエストの発行に使用します。 Pipe情報には、以下の情報が含まれます。 MAXパケットサイズ、EP種別、パケットID、EP番号、USBアドレス |
uhs_ubit8_t open_cnt; |
パイプのオープンカウンタ |
usb_device_request_t * setup_data; |
SETUPパケット格納(コントロール転送のみ) |
void * data_buf; |
データ格納バッファ(非キャッシュ領域) |
uhs_ubit32_t data_len; |
転送データサイズ格納 |
uhs_ubit32_t act_len; |
転送済みデータサイズ格納 |
usb_common_callback_t complete_func; |
完了CALLBACK関数ポインタ |
uhs_ubit32_t time_out; |
タイムアウト時間格納 |
uhs_status_t status; |
転送ステータス格納 次のAPIを使用時に下のエラーが格納されます。 Usbh_Api_ControlMsg Usbh_Api_BulkMsg Usbh_Api_SyncControlMsg Usbh_Api_SyncBulkMsg Usbh_Api_IntMsg Usbh_Api_CancelPipe Usbh_Api_GetDescriptor Usbh_Api_ClearFeature Usbh_Api_SetFeature Usbh_Api_GetStatus Usbh_Api_GetInterface Usbh_Api_GetConfiguration EUSB_NO_ERROR : 正常終了 EUSB_DATABUF_ERROR : Overrun/underrunエラー EUSB_BABBLE_DETECTED : Bubble検出エラー EUSB_TX_ERROR : 転送エラー検出(BadPID,CRC,Timeout) EUSB_MISSED_MICROFRAME : FS/LS Missed microフレーム EUSB_INTXFER_UNKNOWNSIZE : 転送サイズ未定。(Interruptの転送キャンセル時) EUSB_STOP_TRANS : 転送停止 EUSB_HALT : AnyError,STALL(上記エラーに引っかからないケース) EUSB_TIMEOUT : タイムアウト |
uhs_ubit8_t interval; |
同期転送時のインターバル時間 |
kernel_context_t ucb_mbx; |
同期転送用メールボックス(同期転送の待ち合せようにmailboxを生成する) |
uhs_boolean_t is_sync; |
同期時にTrue設定(転送完了Threadで参照) |
uhs_ubit8_t flags; |
フラグ フラグ無し |
uhs_ubit8_t request_flags; |
フラグ |
uhs_ubit8_t cancel_flags; |
フラグ |
void * context; |
コンテキストデータポインタ |
本構造体はUSBリクエストの発行やパイプ操作に使用します。
クラスドライバは本構造体のためにメモリを確保し、各メンバを適切に設定後、本構造体を使用してUSB HostのAPIを呼び出します。
生成タイミング : 随時
削除タイミング : コールバック関数が呼び出されるAPIの場合、コールバック関数が呼び出されるまで削除禁止