33#include "usbd_ctlreq.h"
85 USBD_SetupReqTypedef *req);
100__ALIGN_BEGIN
static uint8_t USBD_Bulk_DeviceQualifierDesc[USB_LEN_DEV_QUALIFIER_DESC]
__ALIGN_END =
102 USB_LEN_DEV_QUALIFIER_DESC,
103 USB_DESC_TYPE_DEVICE_QUALIFIER,
121#if defined ( __ICCARM__ )
122 #pragma data_alignment=4
124__ALIGN_BEGIN
static volatile uint32_t usbd_bulk_AltSet
__ALIGN_END = 0;
125__ALIGN_BEGIN uint8_t USB_Rx_Buffer[BULK_DATA_MAX_PACKET_SIZE]
__ALIGN_END ;
148__ALIGN_BEGIN uint8_t USBD_Bulk_CfgFSDesc[USB_BULK_CONFIG_DESC_SIZ]
__ALIGN_END =
152 USB_DESC_TYPE_CONFIGURATION,
153 USB_BULK_CONFIG_DESC_SIZ,
165 USB_DESC_TYPE_INTERFACE,
177 USB_DESC_TYPE_ENDPOINT,
180 LOBYTE(BULK_DATA_MAX_PACKET_SIZE),
181 HIBYTE(BULK_DATA_MAX_PACKET_SIZE),
186 USB_DESC_TYPE_ENDPOINT,
189 LOBYTE(BULK_DATA_MAX_PACKET_SIZE),
190 HIBYTE(BULK_DATA_MAX_PACKET_SIZE),
219 BULK_DATA_FS_IN_PACKET_SIZE);
225 BULK_DATA_FS_OUT_PACKET_SIZE);
231 BULK_DATA_FS_OUT_PACKET_SIZE);
265 USBD_SetupReqTypedef *req)
267 uint16_t len=USB_BULK_DESC_SIZ;
268 uint8_t *pbuf=USBD_Bulk_CfgFSDesc + 9;
270 switch (req->bmRequest & USB_REQ_TYPE_MASK)
272 case USB_REQ_TYPE_STANDARD:
273 switch (req->bRequest)
275 case USB_REQ_GET_DESCRIPTOR :
276 if ( (req->wValue >> 8) == BULK_DESCRIPTOR_TYPE)
278 pbuf = USBD_Bulk_CfgFSDesc + 9 + (9 * USBD_MAX_NUM_INTERFACES);
279 len = MIN(USB_BULK_DESC_SIZ , req->wLength);
282 USBD_CtlSendData (pdev, pbuf, len);
285 case USB_REQ_GET_INTERFACE :
286 USBD_CtlSendData (pdev,
287 (uint8_t *)&usbd_bulk_AltSet,
291 case USB_REQ_SET_INTERFACE :
292 if ((uint8_t)(req->wValue) < USBD_MAX_NUM_INTERFACES)
294 usbd_bulk_AltSet = (uint8_t)(req->wValue);
299 USBD_CtlError (pdev, req);
346 if (pdev->dev_state == USBD_STATE_CONFIGURED )
364 *length =
sizeof (USBD_Bulk_CfgFSDesc);
365 return USBD_Bulk_CfgFSDesc;
376 *length =
sizeof (USBD_Bulk_DeviceQualifierDesc);
377 return USBD_Bulk_DeviceQualifierDesc;
386 return &USB_Rx_Buffer[0];
static uint8_t USBD_Bulk_DataIn(USBD_HandleTypeDef *pdev, uint8_t epnum)
USBD_Bulk_DataIn Data sent on non-control IN endpoint.
static uint8_t USBD_Bulk_DataOut(USBD_HandleTypeDef *pdev, uint8_t epnum)
USBD_Bulk_DataOut Data received on non-control Out endpoint.
static uint8_t * USBD_Bulk_GetFSCfgDesc(uint16_t *length)
USBD_Bulk_GetFSCfgDesc Return configuration descriptor.
static uint8_t USBD_Bulk_SOF(USBD_HandleTypeDef *pdev)
USBD_Bulk_SOF Start Of Frame event management.
static uint8_t USBD_Bulk_DeInit(USBD_HandleTypeDef *pdev, uint8_t cfgidx)
USBD_Bulk_DeInit DeInitialize the Bulk layer.
void UsbTransmitPipeBulkIN(void)
static uint8_t USBD_Bulk_Init(USBD_HandleTypeDef *pdev, uint8_t cfgidx)
USBD_Bulk_Init Initialize the Bulk interface.
uint8_t * USBD_Bulk_GetDeviceQualifierDescriptor(uint16_t *length)
DeviceQualifierDescriptor return Device Qualifier descriptor.
static uint8_t USBD_Bulk_Setup(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req)
USBD_Bulk_Setup Handle the bulk specific requests.
static __ALIGN_BEGIN uint8_t USBD_Bulk_DeviceQualifierDesc[USB_LEN_DEV_QUALIFIER_DESC] __ALIGN_END
void UsbReceivePipeBulkOUT(uint8_t epnum)
uint8_t * USBD_Bulk_GetRxBufferPtr(void)
USBD_Bulk_GetRxBufferPtr.
USBD_ClassTypeDef USBD_Bulk
USBD_StatusTypeDef USBD_LL_PrepareReceive(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uint8_t *pbuf, uint32_t size)
Prepares an endpoint for reception.
USBD_StatusTypeDef USBD_LL_OpenEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr, uint8_t ep_type, uint16_t ep_mps)
Opens an endpoint of the low level driver.
USBD_StatusTypeDef USBD_LL_CloseEP(USBD_HandleTypeDef *pdev, uint8_t ep_addr)
Closes an endpoint of the low level driver.
header file for the usbd_bulk.c file.
static void uint8_t epnum
: Header for usbd_conf.c file.