66#define USBD_VID 0x1d50
67#define USBD_LANGID_STRING 1033
68#define USBD_MANUFACTURER_STRING "OpenBLT User"
69#define USBD_PID_FS 0x60ac
70#define USBD_PRODUCT_STRING_FS "WinUSB Bulk Device"
71#define USBD_CONFIGURATION_STRING_FS "Default"
72#define USBD_INTERFACE_STRING_FS "WinUSB Bulk Interface"
74#define USB_SIZ_BOS_DESC 0x0C
107static void IntToUnicode(uint32_t value, uint8_t * pbuf, uint8_t len);
125#if (USBD_LPM_ENABLED == 1)
147#if (USBD_LPM_ENABLED == 1)
152#if defined ( __ICCARM__ )
153 #pragma data_alignment=4
156__ALIGN_BEGIN uint8_t USBD_FS_DeviceDesc[USB_LEN_DEV_DESC]
__ALIGN_END =
159 USB_DESC_TYPE_DEVICE,
173 USBD_IDX_PRODUCT_STR,
175 USBD_MAX_NUM_CONFIGURATION
189#if defined ( __ICCARM__ )
190 #pragma data_alignment=4
194__ALIGN_BEGIN uint8_t USBD_LangIDDesc[USB_LEN_LANGID_STR_DESC]
__ALIGN_END =
196 USB_LEN_LANGID_STR_DESC,
197 USB_DESC_TYPE_STRING,
198 LOBYTE(USBD_LANGID_STRING),
199 HIBYTE(USBD_LANGID_STRING)
202#if defined ( __ICCARM__ )
203 #pragma data_alignment=4
206__ALIGN_BEGIN uint8_t USBD_StrDesc[USBD_MAX_STR_DESC_SIZ]
__ALIGN_END;
208#if defined ( __ICCARM__ )
209 #pragma data_alignment=4
211__ALIGN_BEGIN uint8_t USBD_StringSerial[USB_SIZ_STRING_SERIAL]
__ALIGN_END = {
212 USB_SIZ_STRING_SERIAL,
213 USB_DESC_TYPE_STRING,
234 *length =
sizeof(USBD_FS_DeviceDesc);
235 return USBD_FS_DeviceDesc;
247 *length =
sizeof(USBD_LangIDDesc);
248 return USBD_LangIDDesc;
261 USBD_GetString((uint8_t *)USBD_PRODUCT_STRING_FS, USBD_StrDesc, length);
265 USBD_GetString((uint8_t *)USBD_PRODUCT_STRING_FS, USBD_StrDesc, length);
279 USBD_GetString((uint8_t *)USBD_MANUFACTURER_STRING, USBD_StrDesc, length);
292 *length = USB_SIZ_STRING_SERIAL;
300 return (uint8_t *) USBD_StringSerial;
311 if(speed == USBD_SPEED_HIGH)
313 USBD_GetString((uint8_t *)USBD_CONFIGURATION_STRING_FS, USBD_StrDesc, length);
317 USBD_GetString((uint8_t *)USBD_CONFIGURATION_STRING_FS, USBD_StrDesc, length);
332 USBD_GetString((uint8_t *)USBD_INTERFACE_STRING_FS, USBD_StrDesc, length);
336 USBD_GetString((uint8_t *)USBD_INTERFACE_STRING_FS, USBD_StrDesc, length);
348 uint32_t deviceserial0, deviceserial1, deviceserial2;
350 deviceserial0 = *(uint32_t *) DEVICE_ID1;
351 deviceserial1 = *(uint32_t *) DEVICE_ID2;
352 deviceserial2 = *(uint32_t *) DEVICE_ID3;
354 deviceserial0 += deviceserial2;
356 if (deviceserial0 != 0)
374 for (idx = 0; idx < len; idx++)
376 if (((value >> 28)) < 0xA)
378 pbuf[2 * idx] = (value >> 28) +
'0';
382 pbuf[2 * idx] = (value >> 28) +
'A' - 10;
387 pbuf[2 * idx + 1] = 0;
uint8_t * USBD_FS_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
Return the product string descriptor.
uint8_t * USBD_FS_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
Return the device descriptor.
uint8_t * USBD_FS_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
Return the configuration string descriptor.
uint8_t * USBD_FS_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
Return the manufacturer string descriptor.
static void IntToUnicode(uint32_t value, uint8_t *pbuf, uint8_t len)
Convert Hex 32Bits value into char.
uint8_t * USBD_FS_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
Return the serial number string descriptor.
uint8_t * USBD_FS_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
Return the interface string descriptor.
uint8_t * USBD_FS_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
Return the LangID string descriptor.
uint8_t * USBD_FS_USR_BOSDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
static void Get_SerialNum(void)
Create the serial number string descriptor.
__ALIGN_BEGIN uint8_t USBD_FS_DeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END
USBD_DescriptorsTypeDef FS_Desc
UNUSED(samplingTimeSeconds)
: Header for usbd_conf.c file.
Header file for usbd_core.c file.
: Header for usbd_conf.c file.