14 static uint8_t USBD_MSC_CDC_Init (
void *pudev, uint8_t ConfigIndex);
15 static uint8_t USBD_MSC_CDC_DeInit (
void *pudev, uint8_t ConfigIndex);
16 static uint8_t USBD_MSC_CDC_GetClassDescriptor (
void *pudev,
USB_DEVICE_REQ *req);
17 static uint8_t USBD_MSC_CDC_ClassReqHandle (
void *pudev,
USB_DEVICE_REQ *req);
18 static uint8_t USBD_MSC_CDC_GetInterface (
void *pudev,
USB_DEVICE_REQ *req);
19 static uint8_t USBD_MSC_CDC_SetInterface (
void *pudev,
USB_DEVICE_REQ *req);
20 static uint8_t USBD_MSC_CDC_EP0_RxReady (
void *pudev);
21 static uint8_t USBD_MSC_CDC_DataIn (
void *pudev, uint8_t EpID);
22 static uint8_t USBD_MSC_CDC_DataOut (
void *pudev, uint8_t EpID);
23 static uint8_t USBD_MSC_CDC_SOF (
void *pudev);
24 static uint8_t* USBD_MSC_CDC_GetCfgDesc (uint8_t USBSpeed, uint16_t *len);
25 static uint8_t USBD_MSC_CDC_ClearFeature (
void *pudev,
USB_DEVICE_REQ *req);
32 USBD_MSC_CDC_GetClassDescriptor,
33 USBD_MSC_CDC_ClassReqHandle,
34 USBD_MSC_CDC_GetInterface,
35 USBD_MSC_CDC_SetInterface,
37 USBD_MSC_CDC_EP0_RxReady,
41 USBD_MSC_CDC_GetCfgDesc,
42 USBD_MSC_CDC_ClearFeature
46 const uint8_t USBD_MSC_CDC_CfgDesc[USB_MSC_CDC_CONFIG_DESC_SIZE] =
49 USB_DESCTYPE_CONFIGURATION,
50 USB_MSC_CDC_CONFIG_DESC_SIZE,
84 LOWBYTE(MSC_DATA_PACKET_SIZE),
85 HIGHBYTE(MSC_DATA_PACKET_SIZE),
92 LOWBYTE(MSC_DATA_PACKET_SIZE),
93 HIGHBYTE(MSC_DATA_PACKET_SIZE),
111 USB_DESCTYPE_INTERFACE,
149 USB_DESCTYPE_ENDPOINT,
152 LOWBYTE(USB_CDC_CMD_PACKET_SIZE),
153 HIGHBYTE(USB_CDC_CMD_PACKET_SIZE),
158 USB_DESCTYPE_INTERFACE,
169 USB_DESCTYPE_ENDPOINT,
178 USB_DESCTYPE_ENDPOINT,
198 static uint8_t USBD_MSC_CDC_Init (
void *pudev, uint8_t ConfigIndex)
201 USBD_MSC_cb.Init(pudev, ConfigIndex);
204 USBD_CDC_cb.Init(pudev, ConfigIndex);
215 static uint8_t USBD_MSC_CDC_DeInit (
void *pudev, uint8_t ConfigIndex)
218 USBD_MSC_cb.DeInit(pudev, ConfigIndex);
221 USBD_CDC_cb.DeInit(pudev, ConfigIndex);
232 static uint8_t USBD_MSC_CDC_GetClassDescriptor (
void *pudev,
USB_DEVICE_REQ *req)
234 if (req->wIndex == MSC_INTERFACE)
236 return USBD_MSC_cb.GetClassDescriptor(pudev, req);
240 return USBD_CDC_cb.GetClassDescriptor(pudev, req);
251 static uint8_t USBD_MSC_CDC_ClassReqHandle (
void *pudev,
USB_DEVICE_REQ *req)
253 if (req->wIndex == MSC_INTERFACE)
255 return USBD_MSC_cb.ClassReqHandle(pudev, req);
259 return USBD_CDC_cb.ClassReqHandle(pudev, req);
269 static uint8_t USBD_MSC_CDC_GetInterface (
void *pudev,
USB_DEVICE_REQ *req)
271 if (req->wIndex == MSC_INTERFACE)
273 return USBD_MSC_cb.GetInterface(pudev, req);
277 return USBD_CDC_cb.GetInterface(pudev, req);
287 static uint8_t USBD_MSC_CDC_SetInterface (
void *pudev,
USB_DEVICE_REQ *req)
289 if (req->wIndex == MSC_INTERFACE)
291 return USBD_MSC_cb.SetInterface(pudev, req);
295 return USBD_CDC_cb.SetInterface(pudev, req);
305 static uint8_t* USBD_MSC_CDC_GetCfgDesc (uint8_t USBSpeed, uint16_t *len)
307 *len =
sizeof (USBD_MSC_CDC_CfgDesc);
309 return (uint8_t*)USBD_MSC_CDC_CfgDesc;
318 static uint8_t USBD_MSC_CDC_DataIn (
void *pudev, uint8_t EpID)
321 if (EpID == (CDC_DATA_IN_EP & ~0x80))
323 return USBD_CDC_cb.DataIn(pudev, EpID);
327 return USBD_MSC_cb.DataIn(pudev, EpID);
337 uint8_t USBD_MSC_CDC_DataOut(
void *pudev , uint8_t EpID)
340 if (EpID == (CDC_DATA_OUT_EP & ~0x80))
342 return USBD_CDC_cb.DataOut(pudev, EpID);
346 return USBD_MSC_cb.DataOut(pudev, EpID);
355 uint8_t USBD_MSC_CDC_SOF (
void *pudev)
358 return USBD_CDC_cb.SOF(pudev);
366 static uint8_t USBD_MSC_CDC_EP0_RxReady (
void *pudev)
369 USBD_CDC_cb.EP0_RxReady(pudev);
374 static uint8_t USBD_MSC_CDC_ClearFeature (
void *pudev,
USB_DEVICE_REQ *req)
376 USBD_MSC_cb.ClearFeature(pudev, req);
USB device class callback type define.
header file for the usbd_hid_cdc_wrapper.c file.
USB standard device request struct.