|
|
|
@ -44,18 +44,18 @@ |
|
|
|
|
/** @defgroup USBD_DESC
|
|
|
|
|
* @brief USBD descriptors module |
|
|
|
|
* @{ |
|
|
|
|
*/
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
/** @defgroup USBD_DESC_Private_TypesDefinitions
|
|
|
|
|
* @{ |
|
|
|
|
*/
|
|
|
|
|
*/ |
|
|
|
|
/**
|
|
|
|
|
* @} |
|
|
|
|
*/
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
/** @defgroup USBD_DESC_Private_Defines
|
|
|
|
|
* @{ |
|
|
|
|
*/
|
|
|
|
|
*/ |
|
|
|
|
#define USBD_VID 1155 |
|
|
|
|
#define USBD_LANGID_STRING 1033 |
|
|
|
|
#define USBD_MANUFACTURER_STRING "MightyPork" |
|
|
|
@ -70,99 +70,105 @@ |
|
|
|
|
/* USER CODE END 0*/ |
|
|
|
|
/**
|
|
|
|
|
* @} |
|
|
|
|
*/
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
/** @defgroup USBD_DESC_Private_Macros
|
|
|
|
|
* @{ |
|
|
|
|
*/
|
|
|
|
|
*/ |
|
|
|
|
/**
|
|
|
|
|
* @} |
|
|
|
|
*/
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
/** @defgroup USBD_DESC_Private_Variables
|
|
|
|
|
* @{ |
|
|
|
|
*/
|
|
|
|
|
uint8_t * USBD_FS_DeviceDescriptor( USBD_SpeedTypeDef speed , uint16_t *length); |
|
|
|
|
uint8_t * USBD_FS_LangIDStrDescriptor( USBD_SpeedTypeDef speed , uint16_t *length); |
|
|
|
|
uint8_t * USBD_FS_ManufacturerStrDescriptor ( USBD_SpeedTypeDef speed , uint16_t *length); |
|
|
|
|
uint8_t * USBD_FS_ProductStrDescriptor ( USBD_SpeedTypeDef speed , uint16_t *length); |
|
|
|
|
uint8_t * USBD_FS_SerialStrDescriptor( USBD_SpeedTypeDef speed , uint16_t *length); |
|
|
|
|
uint8_t * USBD_FS_ConfigStrDescriptor( USBD_SpeedTypeDef speed , uint16_t *length); |
|
|
|
|
uint8_t * USBD_FS_InterfaceStrDescriptor( USBD_SpeedTypeDef speed , uint16_t *length); |
|
|
|
|
*/ |
|
|
|
|
uint8_t *USBD_FS_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); |
|
|
|
|
|
|
|
|
|
uint8_t *USBD_FS_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); |
|
|
|
|
|
|
|
|
|
uint8_t *USBD_FS_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); |
|
|
|
|
|
|
|
|
|
uint8_t *USBD_FS_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); |
|
|
|
|
|
|
|
|
|
uint8_t *USBD_FS_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); |
|
|
|
|
|
|
|
|
|
uint8_t *USBD_FS_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); |
|
|
|
|
|
|
|
|
|
uint8_t *USBD_FS_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); |
|
|
|
|
|
|
|
|
|
#ifdef USB_SUPPORT_USER_STRING_DESC |
|
|
|
|
uint8_t * USBD_FS_USRStringDesc (USBD_SpeedTypeDef speed, uint8_t idx , uint16_t *length);
|
|
|
|
|
uint8_t * USBD_FS_USRStringDesc (USBD_SpeedTypeDef speed, uint8_t idx , uint16_t *length); |
|
|
|
|
#endif /* USB_SUPPORT_USER_STRING_DESC */ |
|
|
|
|
|
|
|
|
|
USBD_DescriptorsTypeDef FS_Desc = |
|
|
|
|
{ |
|
|
|
|
USBD_FS_DeviceDescriptor, |
|
|
|
|
USBD_FS_LangIDStrDescriptor,
|
|
|
|
|
USBD_FS_ManufacturerStrDescriptor, |
|
|
|
|
USBD_FS_ProductStrDescriptor, |
|
|
|
|
USBD_FS_SerialStrDescriptor, |
|
|
|
|
USBD_FS_ConfigStrDescriptor, |
|
|
|
|
USBD_FS_InterfaceStrDescriptor, |
|
|
|
|
}; |
|
|
|
|
{ |
|
|
|
|
USBD_FS_DeviceDescriptor, |
|
|
|
|
USBD_FS_LangIDStrDescriptor, |
|
|
|
|
USBD_FS_ManufacturerStrDescriptor, |
|
|
|
|
USBD_FS_ProductStrDescriptor, |
|
|
|
|
USBD_FS_SerialStrDescriptor, |
|
|
|
|
USBD_FS_ConfigStrDescriptor, |
|
|
|
|
USBD_FS_InterfaceStrDescriptor, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
#if defined ( __ICCARM__ ) /*!< IAR Compiler */ |
|
|
|
|
#pragma data_alignment=4 |
|
|
|
|
#pragma data_alignment=4 |
|
|
|
|
#endif |
|
|
|
|
/* USB Standard Device Descriptor */ |
|
|
|
|
__ALIGN_BEGIN uint8_t USBD_FS_DeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END = |
|
|
|
|
{ |
|
|
|
|
0x12, /*bLength */ |
|
|
|
|
USB_DESC_TYPE_DEVICE, /*bDescriptorType*/ |
|
|
|
|
0x00, /* bcdUSB */
|
|
|
|
|
0x02, |
|
|
|
|
0x00, /*bDeviceClass*/ |
|
|
|
|
0x00, /*bDeviceSubClass*/ |
|
|
|
|
0x00, /*bDeviceProtocol*/ |
|
|
|
|
USB_MAX_EP0_SIZE, /*bMaxPacketSize*/ |
|
|
|
|
LOBYTE(USBD_VID), /*idVendor*/ |
|
|
|
|
HIBYTE(USBD_VID), /*idVendor*/ |
|
|
|
|
LOBYTE(USBD_PID_FS), /*idVendor*/ |
|
|
|
|
HIBYTE(USBD_PID_FS), /*idVendor*/ |
|
|
|
|
0x00, /*bcdDevice rel. 2.00*/ |
|
|
|
|
0x02, |
|
|
|
|
USBD_IDX_MFC_STR, /*Index of manufacturer string*/ |
|
|
|
|
USBD_IDX_PRODUCT_STR, /*Index of product string*/ |
|
|
|
|
USBD_IDX_SERIAL_STR, /*Index of serial number string*/ |
|
|
|
|
USBD_MAX_NUM_CONFIGURATION /*bNumConfigurations*/ |
|
|
|
|
} ;
|
|
|
|
|
{ |
|
|
|
|
0x12, /*bLength */ |
|
|
|
|
USB_DESC_TYPE_DEVICE, /*bDescriptorType*/ |
|
|
|
|
0x00, /* bcdUSB */ |
|
|
|
|
0x02, |
|
|
|
|
0x00, /*bDeviceClass*/ |
|
|
|
|
0x00, /*bDeviceSubClass*/ |
|
|
|
|
0x00, /*bDeviceProtocol*/ |
|
|
|
|
USB_MAX_EP0_SIZE, /*bMaxPacketSize*/ |
|
|
|
|
LOBYTE(USBD_VID), /*idVendor*/ |
|
|
|
|
HIBYTE(USBD_VID), /*idVendor*/ |
|
|
|
|
LOBYTE(USBD_PID_FS), /*idVendor*/ |
|
|
|
|
HIBYTE(USBD_PID_FS), /*idVendor*/ |
|
|
|
|
0x00, /*bcdDevice rel. 2.00*/ |
|
|
|
|
0x02, |
|
|
|
|
USBD_IDX_MFC_STR, /*Index of manufacturer string*/ |
|
|
|
|
USBD_IDX_PRODUCT_STR, /*Index of product string*/ |
|
|
|
|
USBD_IDX_SERIAL_STR, /*Index of serial number string*/ |
|
|
|
|
USBD_MAX_NUM_CONFIGURATION /*bNumConfigurations*/ |
|
|
|
|
}; |
|
|
|
|
/* USB_DeviceDescriptor */ |
|
|
|
|
|
|
|
|
|
#if defined ( __ICCARM__ ) /*!< IAR Compiler */ |
|
|
|
|
#pragma data_alignment=4 |
|
|
|
|
#pragma data_alignment=4 |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
/* USB Standard Device Descriptor */ |
|
|
|
|
__ALIGN_BEGIN uint8_t USBD_LangIDDesc[USB_LEN_LANGID_STR_DESC] __ALIGN_END = |
|
|
|
|
{ |
|
|
|
|
USB_LEN_LANGID_STR_DESC,
|
|
|
|
|
USB_DESC_TYPE_STRING,
|
|
|
|
|
LOBYTE(USBD_LANGID_STRING), |
|
|
|
|
HIBYTE(USBD_LANGID_STRING),
|
|
|
|
|
}; |
|
|
|
|
{ |
|
|
|
|
USB_LEN_LANGID_STR_DESC, |
|
|
|
|
USB_DESC_TYPE_STRING, |
|
|
|
|
LOBYTE(USBD_LANGID_STRING), |
|
|
|
|
HIBYTE(USBD_LANGID_STRING), |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
#if defined ( __ICCARM__ ) /*!< IAR Compiler */ |
|
|
|
|
#pragma data_alignment=4 |
|
|
|
|
#pragma data_alignment=4 |
|
|
|
|
#endif |
|
|
|
|
__ALIGN_BEGIN uint8_t USBD_StrDesc[USBD_MAX_STR_DESC_SIZ] __ALIGN_END; |
|
|
|
|
/**
|
|
|
|
|
* @} |
|
|
|
|
*/
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
/** @defgroup USBD_DESC_Private_FunctionPrototypes
|
|
|
|
|
* @{ |
|
|
|
|
*/
|
|
|
|
|
*/ |
|
|
|
|
/**
|
|
|
|
|
* @} |
|
|
|
|
*/
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
/** @defgroup USBD_DESC_Private_Functions
|
|
|
|
|
* @{ |
|
|
|
|
*/
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief USBD_FS_DeviceDescriptor
|
|
|
|
@ -171,10 +177,10 @@ __ALIGN_BEGIN uint8_t USBD_StrDesc[USBD_MAX_STR_DESC_SIZ] __ALIGN_END; |
|
|
|
|
* @param length : pointer to data length variable |
|
|
|
|
* @retval pointer to descriptor buffer |
|
|
|
|
*/ |
|
|
|
|
uint8_t * USBD_FS_DeviceDescriptor( USBD_SpeedTypeDef speed , uint16_t *length) |
|
|
|
|
uint8_t *USBD_FS_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) |
|
|
|
|
{ |
|
|
|
|
*length = sizeof(USBD_FS_DeviceDesc); |
|
|
|
|
return USBD_FS_DeviceDesc; |
|
|
|
|
*length = sizeof(USBD_FS_DeviceDesc); |
|
|
|
|
return USBD_FS_DeviceDesc; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -184,10 +190,10 @@ uint8_t * USBD_FS_DeviceDescriptor( USBD_SpeedTypeDef speed , uint16_t *length) |
|
|
|
|
* @param length : pointer to data length variable |
|
|
|
|
* @retval pointer to descriptor buffer |
|
|
|
|
*/ |
|
|
|
|
uint8_t * USBD_FS_LangIDStrDescriptor( USBD_SpeedTypeDef speed , uint16_t *length) |
|
|
|
|
uint8_t *USBD_FS_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) |
|
|
|
|
{ |
|
|
|
|
*length = sizeof(USBD_LangIDDesc);
|
|
|
|
|
return USBD_LangIDDesc; |
|
|
|
|
*length = sizeof(USBD_LangIDDesc); |
|
|
|
|
return USBD_LangIDDesc; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -197,17 +203,15 @@ uint8_t * USBD_FS_LangIDStrDescriptor( USBD_SpeedTypeDef speed , uint16_t *leng |
|
|
|
|
* @param length : pointer to data length variable |
|
|
|
|
* @retval pointer to descriptor buffer |
|
|
|
|
*/ |
|
|
|
|
uint8_t * USBD_FS_ProductStrDescriptor( USBD_SpeedTypeDef speed , uint16_t *length) |
|
|
|
|
uint8_t *USBD_FS_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) |
|
|
|
|
{ |
|
|
|
|
if(speed == 0) |
|
|
|
|
{
|
|
|
|
|
USBD_GetString (USBD_PRODUCT_STRING_FS, USBD_StrDesc, length); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
USBD_GetString (USBD_PRODUCT_STRING_FS, USBD_StrDesc, length);
|
|
|
|
|
} |
|
|
|
|
return USBD_StrDesc; |
|
|
|
|
if (speed == 0) { |
|
|
|
|
USBD_GetString(USBD_PRODUCT_STRING_FS, USBD_StrDesc, length); |
|
|
|
|
} |
|
|
|
|
else { |
|
|
|
|
USBD_GetString(USBD_PRODUCT_STRING_FS, USBD_StrDesc, length); |
|
|
|
|
} |
|
|
|
|
return USBD_StrDesc; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -217,10 +221,10 @@ uint8_t * USBD_FS_ProductStrDescriptor( USBD_SpeedTypeDef speed , uint16_t *len |
|
|
|
|
* @param length : pointer to data length variable |
|
|
|
|
* @retval pointer to descriptor buffer |
|
|
|
|
*/ |
|
|
|
|
uint8_t * USBD_FS_ManufacturerStrDescriptor( USBD_SpeedTypeDef speed , uint16_t *length) |
|
|
|
|
uint8_t *USBD_FS_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) |
|
|
|
|
{ |
|
|
|
|
USBD_GetString (USBD_MANUFACTURER_STRING, USBD_StrDesc, length); |
|
|
|
|
return USBD_StrDesc; |
|
|
|
|
USBD_GetString(USBD_MANUFACTURER_STRING, USBD_StrDesc, length); |
|
|
|
|
return USBD_StrDesc; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -230,17 +234,15 @@ uint8_t * USBD_FS_ManufacturerStrDescriptor( USBD_SpeedTypeDef speed , uint16_t |
|
|
|
|
* @param length : pointer to data length variable |
|
|
|
|
* @retval pointer to descriptor buffer |
|
|
|
|
*/ |
|
|
|
|
uint8_t * USBD_FS_SerialStrDescriptor( USBD_SpeedTypeDef speed , uint16_t *length) |
|
|
|
|
uint8_t *USBD_FS_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) |
|
|
|
|
{ |
|
|
|
|
if(speed == USBD_SPEED_HIGH) |
|
|
|
|
{
|
|
|
|
|
USBD_GetString (USBD_SERIALNUMBER_STRING_FS, USBD_StrDesc, length); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
USBD_GetString (USBD_SERIALNUMBER_STRING_FS, USBD_StrDesc, length);
|
|
|
|
|
} |
|
|
|
|
return USBD_StrDesc; |
|
|
|
|
if (speed == USBD_SPEED_HIGH) { |
|
|
|
|
USBD_GetString(USBD_SERIALNUMBER_STRING_FS, USBD_StrDesc, length); |
|
|
|
|
} |
|
|
|
|
else { |
|
|
|
|
USBD_GetString(USBD_SERIALNUMBER_STRING_FS, USBD_StrDesc, length); |
|
|
|
|
} |
|
|
|
|
return USBD_StrDesc; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -250,17 +252,15 @@ uint8_t * USBD_FS_SerialStrDescriptor( USBD_SpeedTypeDef speed , uint16_t *leng |
|
|
|
|
* @param length : pointer to data length variable |
|
|
|
|
* @retval pointer to descriptor buffer |
|
|
|
|
*/ |
|
|
|
|
uint8_t * USBD_FS_ConfigStrDescriptor( USBD_SpeedTypeDef speed , uint16_t *length) |
|
|
|
|
uint8_t *USBD_FS_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) |
|
|
|
|
{ |
|
|
|
|
if(speed == USBD_SPEED_HIGH) |
|
|
|
|
{
|
|
|
|
|
USBD_GetString (USBD_CONFIGURATION_STRING_FS, USBD_StrDesc, length); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
USBD_GetString (USBD_CONFIGURATION_STRING_FS, USBD_StrDesc, length);
|
|
|
|
|
} |
|
|
|
|
return USBD_StrDesc;
|
|
|
|
|
if (speed == USBD_SPEED_HIGH) { |
|
|
|
|
USBD_GetString(USBD_CONFIGURATION_STRING_FS, USBD_StrDesc, length); |
|
|
|
|
} |
|
|
|
|
else { |
|
|
|
|
USBD_GetString(USBD_CONFIGURATION_STRING_FS, USBD_StrDesc, length); |
|
|
|
|
} |
|
|
|
|
return USBD_StrDesc; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -270,28 +270,26 @@ uint8_t * USBD_FS_ConfigStrDescriptor( USBD_SpeedTypeDef speed , uint16_t *leng |
|
|
|
|
* @param length : pointer to data length variable |
|
|
|
|
* @retval pointer to descriptor buffer |
|
|
|
|
*/ |
|
|
|
|
uint8_t * USBD_FS_InterfaceStrDescriptor( USBD_SpeedTypeDef speed , uint16_t *length) |
|
|
|
|
uint8_t *USBD_FS_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) |
|
|
|
|
{ |
|
|
|
|
if(speed == 0) |
|
|
|
|
{ |
|
|
|
|
USBD_GetString (USBD_INTERFACE_STRING_FS, USBD_StrDesc, length); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
USBD_GetString (USBD_INTERFACE_STRING_FS, USBD_StrDesc, length); |
|
|
|
|
} |
|
|
|
|
return USBD_StrDesc;
|
|
|
|
|
if (speed == 0) { |
|
|
|
|
USBD_GetString(USBD_INTERFACE_STRING_FS, USBD_StrDesc, length); |
|
|
|
|
} |
|
|
|
|
else { |
|
|
|
|
USBD_GetString(USBD_INTERFACE_STRING_FS, USBD_StrDesc, length); |
|
|
|
|
} |
|
|
|
|
return USBD_StrDesc; |
|
|
|
|
} |
|
|
|
|
/**
|
|
|
|
|
* @} |
|
|
|
|
*/
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @} |
|
|
|
|
*/
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @} |
|
|
|
|
*/
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |
|
|
|
|