ARM GAS  C:\Users\antras\AppData\Local\Temp\cc6BGnau.s 			page 1


   1              		.cpu cortex-m3
   2              		.eabi_attribute 20, 1
   3              		.eabi_attribute 21, 1
   4              		.eabi_attribute 23, 3
   5              		.eabi_attribute 24, 1
   6              		.eabi_attribute 25, 1
   7              		.eabi_attribute 26, 1
   8              		.eabi_attribute 30, 1
   9              		.eabi_attribute 34, 1
  10              		.eabi_attribute 18, 4
  11              		.file	"usbd_desc.c"
  12              		.text
  13              	.Ltext0:
  14              		.cfi_sections	.debug_frame
  15              		.section	.text.USBD_FS_DeviceDescriptor,"ax",%progbits
  16              		.align	1
  17              		.global	USBD_FS_DeviceDescriptor
  18              		.syntax unified
  19              		.thumb
  20              		.thumb_func
  21              		.fpu softvfp
  23              	USBD_FS_DeviceDescriptor:
  24              	.LFB66:
  25              		.file 1 "Src/usbd_desc.c"
   1:Src/usbd_desc.c **** /* USER CODE BEGIN Header */
   2:Src/usbd_desc.c **** /**
   3:Src/usbd_desc.c ****   ******************************************************************************
   4:Src/usbd_desc.c ****   * @file           : usbd_desc.c
   5:Src/usbd_desc.c ****   * @version        : v2.0_Cube
   6:Src/usbd_desc.c ****   * @brief          : This file implements the USB device descriptors.
   7:Src/usbd_desc.c ****   ******************************************************************************
   8:Src/usbd_desc.c ****   * @attention
   9:Src/usbd_desc.c ****   *
  10:Src/usbd_desc.c ****   * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
  11:Src/usbd_desc.c ****   * All rights reserved.</center></h2>
  12:Src/usbd_desc.c ****   *
  13:Src/usbd_desc.c ****   * This software component is licensed by ST under Ultimate Liberty license
  14:Src/usbd_desc.c ****   * SLA0044, the "License"; You may not use this file except in compliance with
  15:Src/usbd_desc.c ****   * the License. You may obtain a copy of the License at:
  16:Src/usbd_desc.c ****   *                             www.st.com/SLA0044
  17:Src/usbd_desc.c ****   *
  18:Src/usbd_desc.c ****   ******************************************************************************
  19:Src/usbd_desc.c ****   */
  20:Src/usbd_desc.c **** /* USER CODE END Header */
  21:Src/usbd_desc.c **** 
  22:Src/usbd_desc.c **** /* Includes ------------------------------------------------------------------*/
  23:Src/usbd_desc.c **** #include "usbd_core.h"
  24:Src/usbd_desc.c **** #include "usbd_desc.h"
  25:Src/usbd_desc.c **** #include "usbd_conf.h"
  26:Src/usbd_desc.c **** 
  27:Src/usbd_desc.c **** /* USER CODE BEGIN INCLUDE */
  28:Src/usbd_desc.c **** 
  29:Src/usbd_desc.c **** /* USER CODE END INCLUDE */
  30:Src/usbd_desc.c **** 
  31:Src/usbd_desc.c **** /* Private typedef -----------------------------------------------------------*/
  32:Src/usbd_desc.c **** /* Private define ------------------------------------------------------------*/
  33:Src/usbd_desc.c **** /* Private macro -------------------------------------------------------------*/
ARM GAS  C:\Users\antras\AppData\Local\Temp\cc6BGnau.s 			page 2


  34:Src/usbd_desc.c **** 
  35:Src/usbd_desc.c **** /* USER CODE BEGIN PV */
  36:Src/usbd_desc.c **** /* Private variables ---------------------------------------------------------*/
  37:Src/usbd_desc.c **** 
  38:Src/usbd_desc.c **** /* USER CODE END PV */
  39:Src/usbd_desc.c **** 
  40:Src/usbd_desc.c **** /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
  41:Src/usbd_desc.c ****   * @{
  42:Src/usbd_desc.c ****   */
  43:Src/usbd_desc.c **** 
  44:Src/usbd_desc.c **** /** @addtogroup USBD_DESC
  45:Src/usbd_desc.c ****   * @{
  46:Src/usbd_desc.c ****   */
  47:Src/usbd_desc.c **** 
  48:Src/usbd_desc.c **** /** @defgroup USBD_DESC_Private_TypesDefinitions USBD_DESC_Private_TypesDefinitions
  49:Src/usbd_desc.c ****   * @brief Private types.
  50:Src/usbd_desc.c ****   * @{
  51:Src/usbd_desc.c ****   */
  52:Src/usbd_desc.c **** 
  53:Src/usbd_desc.c **** /* USER CODE BEGIN PRIVATE_TYPES */
  54:Src/usbd_desc.c **** 
  55:Src/usbd_desc.c **** /* USER CODE END PRIVATE_TYPES */
  56:Src/usbd_desc.c **** 
  57:Src/usbd_desc.c **** /**
  58:Src/usbd_desc.c ****   * @}
  59:Src/usbd_desc.c ****   */
  60:Src/usbd_desc.c **** 
  61:Src/usbd_desc.c **** /** @defgroup USBD_DESC_Private_Defines USBD_DESC_Private_Defines
  62:Src/usbd_desc.c ****   * @brief Private defines.
  63:Src/usbd_desc.c ****   * @{
  64:Src/usbd_desc.c ****   */
  65:Src/usbd_desc.c **** 
  66:Src/usbd_desc.c **** #define USBD_VID     1155
  67:Src/usbd_desc.c **** #define USBD_LANGID_STRING     1033
  68:Src/usbd_desc.c **** #define USBD_MANUFACTURER_STRING     "STMicroelectronics"
  69:Src/usbd_desc.c **** #define USBD_PID_FS     22336
  70:Src/usbd_desc.c **** #define USBD_PRODUCT_STRING_FS     "STM32 Virtual ComPort"
  71:Src/usbd_desc.c **** #define USBD_CONFIGURATION_STRING_FS     "CDC Config"
  72:Src/usbd_desc.c **** #define USBD_INTERFACE_STRING_FS     "CDC Interface"
  73:Src/usbd_desc.c **** 
  74:Src/usbd_desc.c **** /* USER CODE BEGIN PRIVATE_DEFINES */
  75:Src/usbd_desc.c **** 
  76:Src/usbd_desc.c **** /* USER CODE END PRIVATE_DEFINES */
  77:Src/usbd_desc.c **** 
  78:Src/usbd_desc.c **** /**
  79:Src/usbd_desc.c ****   * @}
  80:Src/usbd_desc.c ****   */
  81:Src/usbd_desc.c **** 
  82:Src/usbd_desc.c **** /* USER CODE BEGIN 0 */
  83:Src/usbd_desc.c **** 
  84:Src/usbd_desc.c **** /* USER CODE END 0 */
  85:Src/usbd_desc.c **** 
  86:Src/usbd_desc.c **** /** @defgroup USBD_DESC_Private_Macros USBD_DESC_Private_Macros
  87:Src/usbd_desc.c ****   * @brief Private macros.
  88:Src/usbd_desc.c ****   * @{
  89:Src/usbd_desc.c ****   */
  90:Src/usbd_desc.c **** 
ARM GAS  C:\Users\antras\AppData\Local\Temp\cc6BGnau.s 			page 3


  91:Src/usbd_desc.c **** /* USER CODE BEGIN PRIVATE_MACRO */
  92:Src/usbd_desc.c **** 
  93:Src/usbd_desc.c **** /* USER CODE END PRIVATE_MACRO */
  94:Src/usbd_desc.c **** 
  95:Src/usbd_desc.c **** /**
  96:Src/usbd_desc.c ****   * @}
  97:Src/usbd_desc.c ****   */
  98:Src/usbd_desc.c ****   
  99:Src/usbd_desc.c **** /** @defgroup USBD_DESC_Private_FunctionPrototypes USBD_DESC_Private_FunctionPrototypes
 100:Src/usbd_desc.c ****   * @brief Private functions declaration.
 101:Src/usbd_desc.c ****   * @{
 102:Src/usbd_desc.c ****   */
 103:Src/usbd_desc.c ****   
 104:Src/usbd_desc.c **** static void Get_SerialNum(void);
 105:Src/usbd_desc.c **** static void IntToUnicode(uint32_t value, uint8_t * pbuf, uint8_t len);
 106:Src/usbd_desc.c ****   
 107:Src/usbd_desc.c **** /**
 108:Src/usbd_desc.c ****   * @}
 109:Src/usbd_desc.c ****   */  
 110:Src/usbd_desc.c ****   
 111:Src/usbd_desc.c **** 
 112:Src/usbd_desc.c **** /** @defgroup USBD_DESC_Private_FunctionPrototypes USBD_DESC_Private_FunctionPrototypes
 113:Src/usbd_desc.c ****   * @brief Private functions declaration for FS.
 114:Src/usbd_desc.c ****   * @{
 115:Src/usbd_desc.c ****   */
 116:Src/usbd_desc.c **** 
 117:Src/usbd_desc.c **** uint8_t * USBD_FS_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length);
 118:Src/usbd_desc.c **** uint8_t * USBD_FS_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length);
 119:Src/usbd_desc.c **** uint8_t * USBD_FS_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length);
 120:Src/usbd_desc.c **** uint8_t * USBD_FS_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length);
 121:Src/usbd_desc.c **** uint8_t * USBD_FS_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length);
 122:Src/usbd_desc.c **** uint8_t * USBD_FS_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length);
 123:Src/usbd_desc.c **** uint8_t * USBD_FS_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length);
 124:Src/usbd_desc.c **** 
 125:Src/usbd_desc.c **** /**
 126:Src/usbd_desc.c ****   * @}
 127:Src/usbd_desc.c ****   */
 128:Src/usbd_desc.c **** 
 129:Src/usbd_desc.c **** /** @defgroup USBD_DESC_Private_Variables USBD_DESC_Private_Variables
 130:Src/usbd_desc.c ****   * @brief Private variables.
 131:Src/usbd_desc.c ****   * @{
 132:Src/usbd_desc.c ****   */
 133:Src/usbd_desc.c **** 
 134:Src/usbd_desc.c **** USBD_DescriptorsTypeDef FS_Desc =
 135:Src/usbd_desc.c **** {
 136:Src/usbd_desc.c ****   USBD_FS_DeviceDescriptor
 137:Src/usbd_desc.c **** , USBD_FS_LangIDStrDescriptor
 138:Src/usbd_desc.c **** , USBD_FS_ManufacturerStrDescriptor
 139:Src/usbd_desc.c **** , USBD_FS_ProductStrDescriptor
 140:Src/usbd_desc.c **** , USBD_FS_SerialStrDescriptor
 141:Src/usbd_desc.c **** , USBD_FS_ConfigStrDescriptor
 142:Src/usbd_desc.c **** , USBD_FS_InterfaceStrDescriptor
 143:Src/usbd_desc.c **** };
 144:Src/usbd_desc.c **** 
 145:Src/usbd_desc.c **** #if defined ( __ICCARM__ ) /* IAR Compiler */
 146:Src/usbd_desc.c ****   #pragma data_alignment=4
 147:Src/usbd_desc.c **** #endif /* defined ( __ICCARM__ ) */
ARM GAS  C:\Users\antras\AppData\Local\Temp\cc6BGnau.s 			page 4


 148:Src/usbd_desc.c **** /** USB standard device descriptor. */
 149:Src/usbd_desc.c **** __ALIGN_BEGIN uint8_t USBD_FS_DeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END =
 150:Src/usbd_desc.c **** {
 151:Src/usbd_desc.c ****   0x12,                       /*bLength */
 152:Src/usbd_desc.c ****   USB_DESC_TYPE_DEVICE,       /*bDescriptorType*/
 153:Src/usbd_desc.c ****   0x00,                       /*bcdUSB */
 154:Src/usbd_desc.c ****   0x02,
 155:Src/usbd_desc.c ****   0x02,                       /*bDeviceClass*/
 156:Src/usbd_desc.c ****   0x02,                       /*bDeviceSubClass*/
 157:Src/usbd_desc.c ****   0x00,                       /*bDeviceProtocol*/
 158:Src/usbd_desc.c ****   USB_MAX_EP0_SIZE,           /*bMaxPacketSize*/
 159:Src/usbd_desc.c ****   LOBYTE(USBD_VID),           /*idVendor*/
 160:Src/usbd_desc.c ****   HIBYTE(USBD_VID),           /*idVendor*/
 161:Src/usbd_desc.c ****   LOBYTE(USBD_PID_FS),        /*idProduct*/
 162:Src/usbd_desc.c ****   HIBYTE(USBD_PID_FS),        /*idProduct*/
 163:Src/usbd_desc.c ****   0x00,                       /*bcdDevice rel. 2.00*/
 164:Src/usbd_desc.c ****   0x02,
 165:Src/usbd_desc.c ****   USBD_IDX_MFC_STR,           /*Index of manufacturer  string*/
 166:Src/usbd_desc.c ****   USBD_IDX_PRODUCT_STR,       /*Index of product string*/
 167:Src/usbd_desc.c ****   USBD_IDX_SERIAL_STR,        /*Index of serial number string*/
 168:Src/usbd_desc.c ****   USBD_MAX_NUM_CONFIGURATION  /*bNumConfigurations*/
 169:Src/usbd_desc.c **** };
 170:Src/usbd_desc.c **** 
 171:Src/usbd_desc.c **** /* USB_DeviceDescriptor */
 172:Src/usbd_desc.c **** 
 173:Src/usbd_desc.c **** /**
 174:Src/usbd_desc.c ****   * @}
 175:Src/usbd_desc.c ****   */
 176:Src/usbd_desc.c **** 
 177:Src/usbd_desc.c **** /** @defgroup USBD_DESC_Private_Variables USBD_DESC_Private_Variables
 178:Src/usbd_desc.c ****   * @brief Private variables.
 179:Src/usbd_desc.c ****   * @{
 180:Src/usbd_desc.c ****   */
 181:Src/usbd_desc.c **** 
 182:Src/usbd_desc.c **** #if defined ( __ICCARM__ ) /* IAR Compiler */
 183:Src/usbd_desc.c ****   #pragma data_alignment=4
 184:Src/usbd_desc.c **** #endif /* defined ( __ICCARM__ ) */
 185:Src/usbd_desc.c **** 
 186:Src/usbd_desc.c **** /** USB lang indentifier descriptor. */
 187:Src/usbd_desc.c **** __ALIGN_BEGIN uint8_t USBD_LangIDDesc[USB_LEN_LANGID_STR_DESC] __ALIGN_END =
 188:Src/usbd_desc.c **** {
 189:Src/usbd_desc.c ****      USB_LEN_LANGID_STR_DESC,
 190:Src/usbd_desc.c ****      USB_DESC_TYPE_STRING,
 191:Src/usbd_desc.c ****      LOBYTE(USBD_LANGID_STRING),
 192:Src/usbd_desc.c ****      HIBYTE(USBD_LANGID_STRING)
 193:Src/usbd_desc.c **** };
 194:Src/usbd_desc.c **** 
 195:Src/usbd_desc.c **** #if defined ( __ICCARM__ ) /* IAR Compiler */
 196:Src/usbd_desc.c ****   #pragma data_alignment=4
 197:Src/usbd_desc.c **** #endif /* defined ( __ICCARM__ ) */
 198:Src/usbd_desc.c **** /* Internal string descriptor. */
 199:Src/usbd_desc.c **** __ALIGN_BEGIN uint8_t USBD_StrDesc[USBD_MAX_STR_DESC_SIZ] __ALIGN_END;
 200:Src/usbd_desc.c **** 
 201:Src/usbd_desc.c **** #if defined ( __ICCARM__ ) /*!< IAR Compiler */
 202:Src/usbd_desc.c ****   #pragma data_alignment=4   
 203:Src/usbd_desc.c **** #endif
 204:Src/usbd_desc.c **** __ALIGN_BEGIN uint8_t USBD_StringSerial[USB_SIZ_STRING_SERIAL] __ALIGN_END = {
ARM GAS  C:\Users\antras\AppData\Local\Temp\cc6BGnau.s 			page 5


 205:Src/usbd_desc.c ****   USB_SIZ_STRING_SERIAL,
 206:Src/usbd_desc.c ****   USB_DESC_TYPE_STRING,
 207:Src/usbd_desc.c **** };
 208:Src/usbd_desc.c **** 
 209:Src/usbd_desc.c **** /**
 210:Src/usbd_desc.c ****   * @}
 211:Src/usbd_desc.c ****   */
 212:Src/usbd_desc.c **** 
 213:Src/usbd_desc.c **** /** @defgroup USBD_DESC_Private_Functions USBD_DESC_Private_Functions
 214:Src/usbd_desc.c ****   * @brief Private functions.
 215:Src/usbd_desc.c ****   * @{
 216:Src/usbd_desc.c ****   */
 217:Src/usbd_desc.c **** 
 218:Src/usbd_desc.c **** /**
 219:Src/usbd_desc.c ****   * @brief  Return the device descriptor
 220:Src/usbd_desc.c ****   * @param  speed : Current device speed
 221:Src/usbd_desc.c ****   * @param  length : Pointer to data length variable
 222:Src/usbd_desc.c ****   * @retval Pointer to descriptor buffer
 223:Src/usbd_desc.c ****   */
 224:Src/usbd_desc.c **** uint8_t * USBD_FS_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
 225:Src/usbd_desc.c **** {
  26              		.loc 1 225 0
  27              		.cfi_startproc
  28              		@ args = 0, pretend = 0, frame = 0
  29              		@ frame_needed = 0, uses_anonymous_args = 0
  30              		@ link register save eliminated.
  31              	.LVL0:
 226:Src/usbd_desc.c ****   UNUSED(speed);
 227:Src/usbd_desc.c ****   *length = sizeof(USBD_FS_DeviceDesc);
  32              		.loc 1 227 0
  33 0000 1223     		movs	r3, #18
  34 0002 0B80     		strh	r3, [r1]	@ movhi
 228:Src/usbd_desc.c ****   return USBD_FS_DeviceDesc;
 229:Src/usbd_desc.c **** }
  35              		.loc 1 229 0
  36 0004 0048     		ldr	r0, .L2
  37              	.LVL1:
  38 0006 7047     		bx	lr
  39              	.L3:
  40              		.align	2
  41              	.L2:
  42 0008 00000000 		.word	.LANCHOR0
  43              		.cfi_endproc
  44              	.LFE66:
  46              		.section	.text.USBD_FS_LangIDStrDescriptor,"ax",%progbits
  47              		.align	1
  48              		.global	USBD_FS_LangIDStrDescriptor
  49              		.syntax unified
  50              		.thumb
  51              		.thumb_func
  52              		.fpu softvfp
  54              	USBD_FS_LangIDStrDescriptor:
  55              	.LFB67:
 230:Src/usbd_desc.c **** 
 231:Src/usbd_desc.c **** /**
 232:Src/usbd_desc.c ****   * @brief  Return the LangID string descriptor
 233:Src/usbd_desc.c ****   * @param  speed : Current device speed
ARM GAS  C:\Users\antras\AppData\Local\Temp\cc6BGnau.s 			page 6


 234:Src/usbd_desc.c ****   * @param  length : Pointer to data length variable
 235:Src/usbd_desc.c ****   * @retval Pointer to descriptor buffer
 236:Src/usbd_desc.c ****   */
 237:Src/usbd_desc.c **** uint8_t * USBD_FS_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
 238:Src/usbd_desc.c **** {
  56              		.loc 1 238 0
  57              		.cfi_startproc
  58              		@ args = 0, pretend = 0, frame = 0
  59              		@ frame_needed = 0, uses_anonymous_args = 0
  60              		@ link register save eliminated.
  61              	.LVL2:
 239:Src/usbd_desc.c ****   UNUSED(speed);
 240:Src/usbd_desc.c ****   *length = sizeof(USBD_LangIDDesc);
  62              		.loc 1 240 0
  63 0000 0423     		movs	r3, #4
  64 0002 0B80     		strh	r3, [r1]	@ movhi
 241:Src/usbd_desc.c ****   return USBD_LangIDDesc;
 242:Src/usbd_desc.c **** }
  65              		.loc 1 242 0
  66 0004 0048     		ldr	r0, .L5
  67              	.LVL3:
  68 0006 7047     		bx	lr
  69              	.L6:
  70              		.align	2
  71              	.L5:
  72 0008 00000000 		.word	.LANCHOR1
  73              		.cfi_endproc
  74              	.LFE67:
  76              		.section	.text.IntToUnicode,"ax",%progbits
  77              		.align	1
  78              		.syntax unified
  79              		.thumb
  80              		.thumb_func
  81              		.fpu softvfp
  83              	IntToUnicode:
  84              	.LFB74:
 243:Src/usbd_desc.c **** 
 244:Src/usbd_desc.c **** /**
 245:Src/usbd_desc.c ****   * @brief  Return the product string descriptor
 246:Src/usbd_desc.c ****   * @param  speed : Current device speed
 247:Src/usbd_desc.c ****   * @param  length : Pointer to data length variable
 248:Src/usbd_desc.c ****   * @retval Pointer to descriptor buffer
 249:Src/usbd_desc.c ****   */
 250:Src/usbd_desc.c **** uint8_t * USBD_FS_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
 251:Src/usbd_desc.c **** {
 252:Src/usbd_desc.c ****   if(speed == 0)
 253:Src/usbd_desc.c ****   {
 254:Src/usbd_desc.c ****     USBD_GetString((uint8_t *)USBD_PRODUCT_STRING_FS, USBD_StrDesc, length);
 255:Src/usbd_desc.c ****   }
 256:Src/usbd_desc.c ****   else
 257:Src/usbd_desc.c ****   {
 258:Src/usbd_desc.c ****     USBD_GetString((uint8_t *)USBD_PRODUCT_STRING_FS, USBD_StrDesc, length);
 259:Src/usbd_desc.c ****   }
 260:Src/usbd_desc.c ****   return USBD_StrDesc;
 261:Src/usbd_desc.c **** }
 262:Src/usbd_desc.c **** 
 263:Src/usbd_desc.c **** /**
ARM GAS  C:\Users\antras\AppData\Local\Temp\cc6BGnau.s 			page 7


 264:Src/usbd_desc.c ****   * @brief  Return the manufacturer string descriptor
 265:Src/usbd_desc.c ****   * @param  speed : Current device speed
 266:Src/usbd_desc.c ****   * @param  length : Pointer to data length variable
 267:Src/usbd_desc.c ****   * @retval Pointer to descriptor buffer
 268:Src/usbd_desc.c ****   */
 269:Src/usbd_desc.c **** uint8_t * USBD_FS_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
 270:Src/usbd_desc.c **** {
 271:Src/usbd_desc.c ****   UNUSED(speed);
 272:Src/usbd_desc.c ****   USBD_GetString((uint8_t *)USBD_MANUFACTURER_STRING, USBD_StrDesc, length);
 273:Src/usbd_desc.c ****   return USBD_StrDesc;
 274:Src/usbd_desc.c **** }
 275:Src/usbd_desc.c **** 
 276:Src/usbd_desc.c **** /**
 277:Src/usbd_desc.c ****   * @brief  Return the serial number string descriptor
 278:Src/usbd_desc.c ****   * @param  speed : Current device speed
 279:Src/usbd_desc.c ****   * @param  length : Pointer to data length variable
 280:Src/usbd_desc.c ****   * @retval Pointer to descriptor buffer
 281:Src/usbd_desc.c ****   */
 282:Src/usbd_desc.c **** uint8_t * USBD_FS_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
 283:Src/usbd_desc.c **** {
 284:Src/usbd_desc.c ****   UNUSED(speed);
 285:Src/usbd_desc.c ****   *length = USB_SIZ_STRING_SERIAL;
 286:Src/usbd_desc.c **** 
 287:Src/usbd_desc.c ****   /* Update the serial number string descriptor with the data from the unique
 288:Src/usbd_desc.c ****    * ID */
 289:Src/usbd_desc.c ****   Get_SerialNum();
 290:Src/usbd_desc.c ****   /* USER CODE BEGIN USBD_FS_SerialStrDescriptor */
 291:Src/usbd_desc.c ****   
 292:Src/usbd_desc.c ****   /* USER CODE END USBD_FS_SerialStrDescriptor */
 293:Src/usbd_desc.c ****   return (uint8_t *) USBD_StringSerial;
 294:Src/usbd_desc.c **** }
 295:Src/usbd_desc.c **** 
 296:Src/usbd_desc.c **** /**
 297:Src/usbd_desc.c ****   * @brief  Return the configuration string descriptor
 298:Src/usbd_desc.c ****   * @param  speed : Current device speed
 299:Src/usbd_desc.c ****   * @param  length : Pointer to data length variable
 300:Src/usbd_desc.c ****   * @retval Pointer to descriptor buffer
 301:Src/usbd_desc.c ****   */
 302:Src/usbd_desc.c **** uint8_t * USBD_FS_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
 303:Src/usbd_desc.c **** {
 304:Src/usbd_desc.c ****   if(speed == USBD_SPEED_HIGH)
 305:Src/usbd_desc.c ****   {
 306:Src/usbd_desc.c ****     USBD_GetString((uint8_t *)USBD_CONFIGURATION_STRING_FS, USBD_StrDesc, length);
 307:Src/usbd_desc.c ****   }
 308:Src/usbd_desc.c ****   else
 309:Src/usbd_desc.c ****   {
 310:Src/usbd_desc.c ****     USBD_GetString((uint8_t *)USBD_CONFIGURATION_STRING_FS, USBD_StrDesc, length);
 311:Src/usbd_desc.c ****   }
 312:Src/usbd_desc.c ****   return USBD_StrDesc;
 313:Src/usbd_desc.c **** }
 314:Src/usbd_desc.c **** 
 315:Src/usbd_desc.c **** /**
 316:Src/usbd_desc.c ****   * @brief  Return the interface string descriptor
 317:Src/usbd_desc.c ****   * @param  speed : Current device speed
 318:Src/usbd_desc.c ****   * @param  length : Pointer to data length variable
 319:Src/usbd_desc.c ****   * @retval Pointer to descriptor buffer
 320:Src/usbd_desc.c ****   */
ARM GAS  C:\Users\antras\AppData\Local\Temp\cc6BGnau.s 			page 8


 321:Src/usbd_desc.c **** uint8_t * USBD_FS_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
 322:Src/usbd_desc.c **** {
 323:Src/usbd_desc.c ****   if(speed == 0)
 324:Src/usbd_desc.c ****   {
 325:Src/usbd_desc.c ****     USBD_GetString((uint8_t *)USBD_INTERFACE_STRING_FS, USBD_StrDesc, length);
 326:Src/usbd_desc.c ****   }
 327:Src/usbd_desc.c ****   else
 328:Src/usbd_desc.c ****   {
 329:Src/usbd_desc.c ****     USBD_GetString((uint8_t *)USBD_INTERFACE_STRING_FS, USBD_StrDesc, length);
 330:Src/usbd_desc.c ****   }
 331:Src/usbd_desc.c ****   return USBD_StrDesc;
 332:Src/usbd_desc.c **** }
 333:Src/usbd_desc.c **** 
 334:Src/usbd_desc.c **** /**
 335:Src/usbd_desc.c ****   * @brief  Create the serial number string descriptor 
 336:Src/usbd_desc.c ****   * @param  None 
 337:Src/usbd_desc.c ****   * @retval None
 338:Src/usbd_desc.c ****   */
 339:Src/usbd_desc.c **** static void Get_SerialNum(void)
 340:Src/usbd_desc.c **** {
 341:Src/usbd_desc.c ****   uint32_t deviceserial0, deviceserial1, deviceserial2;
 342:Src/usbd_desc.c **** 
 343:Src/usbd_desc.c ****   deviceserial0 = *(uint32_t *) DEVICE_ID1;
 344:Src/usbd_desc.c ****   deviceserial1 = *(uint32_t *) DEVICE_ID2;
 345:Src/usbd_desc.c ****   deviceserial2 = *(uint32_t *) DEVICE_ID3;
 346:Src/usbd_desc.c **** 
 347:Src/usbd_desc.c ****   deviceserial0 += deviceserial2;
 348:Src/usbd_desc.c **** 
 349:Src/usbd_desc.c ****   if (deviceserial0 != 0)
 350:Src/usbd_desc.c ****   {
 351:Src/usbd_desc.c ****     IntToUnicode(deviceserial0, &USBD_StringSerial[2], 8);
 352:Src/usbd_desc.c ****     IntToUnicode(deviceserial1, &USBD_StringSerial[18], 4);
 353:Src/usbd_desc.c ****   }
 354:Src/usbd_desc.c **** }
 355:Src/usbd_desc.c **** 
 356:Src/usbd_desc.c **** /**
 357:Src/usbd_desc.c ****   * @brief  Convert Hex 32Bits value into char 
 358:Src/usbd_desc.c ****   * @param  value: value to convert
 359:Src/usbd_desc.c ****   * @param  pbuf: pointer to the buffer 
 360:Src/usbd_desc.c ****   * @param  len: buffer length
 361:Src/usbd_desc.c ****   * @retval None
 362:Src/usbd_desc.c ****   */
 363:Src/usbd_desc.c **** static void IntToUnicode(uint32_t value, uint8_t * pbuf, uint8_t len)
 364:Src/usbd_desc.c **** {
  85              		.loc 1 364 0
  86              		.cfi_startproc
  87              		@ args = 0, pretend = 0, frame = 0
  88              		@ frame_needed = 0, uses_anonymous_args = 0
  89              		@ link register save eliminated.
  90              	.LVL4:
 365:Src/usbd_desc.c ****   uint8_t idx = 0;
 366:Src/usbd_desc.c **** 
 367:Src/usbd_desc.c ****   for (idx = 0; idx < len; idx++)
  91              		.loc 1 367 0
  92 0000 0023     		movs	r3, #0
  93              	.LVL5:
  94 0002 9342     		cmp	r3, r2
ARM GAS  C:\Users\antras\AppData\Local\Temp\cc6BGnau.s 			page 9


  95 0004 16D2     		bcs	.L15
 364:Src/usbd_desc.c ****   uint8_t idx = 0;
  96              		.loc 1 364 0
  97 0006 30B4     		push	{r4, r5}
  98              	.LCFI0:
  99              		.cfi_def_cfa_offset 8
 100              		.cfi_offset 4, -8
 101              		.cfi_offset 5, -4
 102 0008 0BE0     		b	.L11
 103              	.L9:
 368:Src/usbd_desc.c ****   {
 369:Src/usbd_desc.c ****     if (((value >> 28)) < 0xA)
 370:Src/usbd_desc.c ****     {
 371:Src/usbd_desc.c ****       pbuf[2 * idx] = (value >> 28) + '0';
 372:Src/usbd_desc.c ****     }
 373:Src/usbd_desc.c ****     else
 374:Src/usbd_desc.c ****     {
 375:Src/usbd_desc.c ****       pbuf[2 * idx] = (value >> 28) + 'A' - 10;
 104              		.loc 1 375 0
 105 000a 3734     		adds	r4, r4, #55
 106 000c 01F81340 		strb	r4, [r1, r3, lsl #1]
 107              	.L10:
 376:Src/usbd_desc.c ****     }
 377:Src/usbd_desc.c **** 
 378:Src/usbd_desc.c ****     value = value << 4;
 108              		.loc 1 378 0 discriminator 2
 109 0010 0001     		lsls	r0, r0, #4
 110              	.LVL6:
 379:Src/usbd_desc.c **** 
 380:Src/usbd_desc.c ****     pbuf[2 * idx + 1] = 0;
 111              		.loc 1 380 0 discriminator 2
 112 0012 5C00     		lsls	r4, r3, #1
 113 0014 0134     		adds	r4, r4, #1
 114 0016 0025     		movs	r5, #0
 115 0018 0D55     		strb	r5, [r1, r4]
 367:Src/usbd_desc.c ****   {
 116              		.loc 1 367 0 discriminator 2
 117 001a 0133     		adds	r3, r3, #1
 118              	.LVL7:
 119 001c DBB2     		uxtb	r3, r3
 120              	.LVL8:
 121 001e 9342     		cmp	r3, r2
 122 0020 06D2     		bcs	.L16
 123              	.L11:
 369:Src/usbd_desc.c ****     {
 124              		.loc 1 369 0
 125 0022 040F     		lsrs	r4, r0, #28
 126 0024 092C     		cmp	r4, #9
 127 0026 F0D8     		bhi	.L9
 371:Src/usbd_desc.c ****     }
 128              		.loc 1 371 0
 129 0028 3034     		adds	r4, r4, #48
 130 002a 01F81340 		strb	r4, [r1, r3, lsl #1]
 131 002e EFE7     		b	.L10
 132              	.L16:
 381:Src/usbd_desc.c ****   }
 382:Src/usbd_desc.c **** }
ARM GAS  C:\Users\antras\AppData\Local\Temp\cc6BGnau.s 			page 10


 133              		.loc 1 382 0
 134 0030 30BC     		pop	{r4, r5}
 135              	.LCFI1:
 136              		.cfi_restore 5
 137              		.cfi_restore 4
 138              		.cfi_def_cfa_offset 0
 139 0032 7047     		bx	lr
 140              	.L15:
 141 0034 7047     		bx	lr
 142              		.cfi_endproc
 143              	.LFE74:
 145              		.section	.text.Get_SerialNum,"ax",%progbits
 146              		.align	1
 147              		.syntax unified
 148              		.thumb
 149              		.thumb_func
 150              		.fpu softvfp
 152              	Get_SerialNum:
 153              	.LFB73:
 340:Src/usbd_desc.c ****   uint32_t deviceserial0, deviceserial1, deviceserial2;
 154              		.loc 1 340 0
 155              		.cfi_startproc
 156              		@ args = 0, pretend = 0, frame = 0
 157              		@ frame_needed = 0, uses_anonymous_args = 0
 158 0000 38B5     		push	{r3, r4, r5, lr}
 159              	.LCFI2:
 160              		.cfi_def_cfa_offset 16
 161              		.cfi_offset 3, -16
 162              		.cfi_offset 4, -12
 163              		.cfi_offset 5, -8
 164              		.cfi_offset 14, -4
 343:Src/usbd_desc.c ****   deviceserial1 = *(uint32_t *) DEVICE_ID2;
 165              		.loc 1 343 0
 166 0002 0A4B     		ldr	r3, .L21
 167 0004 1868     		ldr	r0, [r3]
 168              	.LVL9:
 344:Src/usbd_desc.c ****   deviceserial2 = *(uint32_t *) DEVICE_ID3;
 169              		.loc 1 344 0
 170 0006 0433     		adds	r3, r3, #4
 171 0008 1C68     		ldr	r4, [r3]
 172              	.LVL10:
 345:Src/usbd_desc.c **** 
 173              		.loc 1 345 0
 174 000a 0433     		adds	r3, r3, #4
 175 000c 1B68     		ldr	r3, [r3]
 176              	.LVL11:
 349:Src/usbd_desc.c ****   {
 177              		.loc 1 349 0
 178 000e C018     		adds	r0, r0, r3
 179              	.LVL12:
 180 0010 00D1     		bne	.L20
 181              	.LVL13:
 182              	.L17:
 183 0012 38BD     		pop	{r3, r4, r5, pc}
 184              	.LVL14:
 185              	.L20:
 351:Src/usbd_desc.c ****     IntToUnicode(deviceserial1, &USBD_StringSerial[18], 4);
ARM GAS  C:\Users\antras\AppData\Local\Temp\cc6BGnau.s 			page 11


 186              		.loc 1 351 0
 187 0014 064D     		ldr	r5, .L21+4
 188 0016 0822     		movs	r2, #8
 189 0018 A91C     		adds	r1, r5, #2
 190 001a FFF7FEFF 		bl	IntToUnicode
 191              	.LVL15:
 352:Src/usbd_desc.c ****   }
 192              		.loc 1 352 0
 193 001e 0422     		movs	r2, #4
 194 0020 05F11201 		add	r1, r5, #18
 195 0024 2046     		mov	r0, r4
 196 0026 FFF7FEFF 		bl	IntToUnicode
 197              	.LVL16:
 354:Src/usbd_desc.c **** 
 198              		.loc 1 354 0
 199 002a F2E7     		b	.L17
 200              	.L22:
 201              		.align	2
 202              	.L21:
 203 002c E8F7FF1F 		.word	536868840
 204 0030 00000000 		.word	.LANCHOR2
 205              		.cfi_endproc
 206              	.LFE73:
 208              		.section	.text.USBD_FS_SerialStrDescriptor,"ax",%progbits
 209              		.align	1
 210              		.global	USBD_FS_SerialStrDescriptor
 211              		.syntax unified
 212              		.thumb
 213              		.thumb_func
 214              		.fpu softvfp
 216              	USBD_FS_SerialStrDescriptor:
 217              	.LFB70:
 283:Src/usbd_desc.c ****   UNUSED(speed);
 218              		.loc 1 283 0
 219              		.cfi_startproc
 220              		@ args = 0, pretend = 0, frame = 0
 221              		@ frame_needed = 0, uses_anonymous_args = 0
 222              	.LVL17:
 223 0000 08B5     		push	{r3, lr}
 224              	.LCFI3:
 225              		.cfi_def_cfa_offset 8
 226              		.cfi_offset 3, -8
 227              		.cfi_offset 14, -4
 285:Src/usbd_desc.c **** 
 228              		.loc 1 285 0
 229 0002 1A23     		movs	r3, #26
 230 0004 0B80     		strh	r3, [r1]	@ movhi
 289:Src/usbd_desc.c ****   /* USER CODE BEGIN USBD_FS_SerialStrDescriptor */
 231              		.loc 1 289 0
 232 0006 FFF7FEFF 		bl	Get_SerialNum
 233              	.LVL18:
 294:Src/usbd_desc.c **** 
 234              		.loc 1 294 0
 235 000a 0148     		ldr	r0, .L25
 236 000c 08BD     		pop	{r3, pc}
 237              	.L26:
 238 000e 00BF     		.align	2
ARM GAS  C:\Users\antras\AppData\Local\Temp\cc6BGnau.s 			page 12


 239              	.L25:
 240 0010 00000000 		.word	.LANCHOR2
 241              		.cfi_endproc
 242              	.LFE70:
 244              		.section	.text.USBD_FS_ProductStrDescriptor,"ax",%progbits
 245              		.align	1
 246              		.global	USBD_FS_ProductStrDescriptor
 247              		.syntax unified
 248              		.thumb
 249              		.thumb_func
 250              		.fpu softvfp
 252              	USBD_FS_ProductStrDescriptor:
 253              	.LFB68:
 251:Src/usbd_desc.c ****   if(speed == 0)
 254              		.loc 1 251 0
 255              		.cfi_startproc
 256              		@ args = 0, pretend = 0, frame = 0
 257              		@ frame_needed = 0, uses_anonymous_args = 0
 258              	.LVL19:
 259 0000 08B5     		push	{r3, lr}
 260              	.LCFI4:
 261              		.cfi_def_cfa_offset 8
 262              		.cfi_offset 3, -8
 263              		.cfi_offset 14, -4
 264 0002 0A46     		mov	r2, r1
 252:Src/usbd_desc.c ****   {
 265              		.loc 1 252 0
 266 0004 28B1     		cbz	r0, .L31
 258:Src/usbd_desc.c ****   }
 267              		.loc 1 258 0
 268 0006 0549     		ldr	r1, .L32
 269              	.LVL20:
 270 0008 0548     		ldr	r0, .L32+4
 271              	.LVL21:
 272 000a FFF7FEFF 		bl	USBD_GetString
 273              	.LVL22:
 274              	.L29:
 261:Src/usbd_desc.c **** 
 275              		.loc 1 261 0
 276 000e 0348     		ldr	r0, .L32
 277 0010 08BD     		pop	{r3, pc}
 278              	.LVL23:
 279              	.L31:
 254:Src/usbd_desc.c ****   }
 280              		.loc 1 254 0
 281 0012 0249     		ldr	r1, .L32
 282              	.LVL24:
 283 0014 0248     		ldr	r0, .L32+4
 284              	.LVL25:
 285 0016 FFF7FEFF 		bl	USBD_GetString
 286              	.LVL26:
 287 001a F8E7     		b	.L29
 288              	.L33:
 289              		.align	2
 290              	.L32:
 291 001c 00000000 		.word	USBD_StrDesc
 292 0020 00000000 		.word	.LC0
ARM GAS  C:\Users\antras\AppData\Local\Temp\cc6BGnau.s 			page 13


 293              		.cfi_endproc
 294              	.LFE68:
 296              		.section	.text.USBD_FS_ManufacturerStrDescriptor,"ax",%progbits
 297              		.align	1
 298              		.global	USBD_FS_ManufacturerStrDescriptor
 299              		.syntax unified
 300              		.thumb
 301              		.thumb_func
 302              		.fpu softvfp
 304              	USBD_FS_ManufacturerStrDescriptor:
 305              	.LFB69:
 270:Src/usbd_desc.c ****   UNUSED(speed);
 306              		.loc 1 270 0
 307              		.cfi_startproc
 308              		@ args = 0, pretend = 0, frame = 0
 309              		@ frame_needed = 0, uses_anonymous_args = 0
 310              	.LVL27:
 311 0000 10B5     		push	{r4, lr}
 312              	.LCFI5:
 313              		.cfi_def_cfa_offset 8
 314              		.cfi_offset 4, -8
 315              		.cfi_offset 14, -4
 272:Src/usbd_desc.c ****   return USBD_StrDesc;
 316              		.loc 1 272 0
 317 0002 044C     		ldr	r4, .L36
 318 0004 0A46     		mov	r2, r1
 319 0006 2146     		mov	r1, r4
 320              	.LVL28:
 321 0008 0348     		ldr	r0, .L36+4
 322              	.LVL29:
 323 000a FFF7FEFF 		bl	USBD_GetString
 324              	.LVL30:
 274:Src/usbd_desc.c **** 
 325              		.loc 1 274 0
 326 000e 2046     		mov	r0, r4
 327 0010 10BD     		pop	{r4, pc}
 328              	.L37:
 329 0012 00BF     		.align	2
 330              	.L36:
 331 0014 00000000 		.word	USBD_StrDesc
 332 0018 00000000 		.word	.LC1
 333              		.cfi_endproc
 334              	.LFE69:
 336              		.section	.text.USBD_FS_ConfigStrDescriptor,"ax",%progbits
 337              		.align	1
 338              		.global	USBD_FS_ConfigStrDescriptor
 339              		.syntax unified
 340              		.thumb
 341              		.thumb_func
 342              		.fpu softvfp
 344              	USBD_FS_ConfigStrDescriptor:
 345              	.LFB71:
 303:Src/usbd_desc.c ****   if(speed == USBD_SPEED_HIGH)
 346              		.loc 1 303 0
 347              		.cfi_startproc
 348              		@ args = 0, pretend = 0, frame = 0
 349              		@ frame_needed = 0, uses_anonymous_args = 0
ARM GAS  C:\Users\antras\AppData\Local\Temp\cc6BGnau.s 			page 14


 350              	.LVL31:
 351 0000 08B5     		push	{r3, lr}
 352              	.LCFI6:
 353              		.cfi_def_cfa_offset 8
 354              		.cfi_offset 3, -8
 355              		.cfi_offset 14, -4
 356 0002 0A46     		mov	r2, r1
 304:Src/usbd_desc.c ****   {
 357              		.loc 1 304 0
 358 0004 28B1     		cbz	r0, .L42
 310:Src/usbd_desc.c ****   }
 359              		.loc 1 310 0
 360 0006 0549     		ldr	r1, .L43
 361              	.LVL32:
 362 0008 0548     		ldr	r0, .L43+4
 363              	.LVL33:
 364 000a FFF7FEFF 		bl	USBD_GetString
 365              	.LVL34:
 366              	.L40:
 313:Src/usbd_desc.c **** 
 367              		.loc 1 313 0
 368 000e 0348     		ldr	r0, .L43
 369 0010 08BD     		pop	{r3, pc}
 370              	.LVL35:
 371              	.L42:
 306:Src/usbd_desc.c ****   }
 372              		.loc 1 306 0
 373 0012 0249     		ldr	r1, .L43
 374              	.LVL36:
 375 0014 0248     		ldr	r0, .L43+4
 376              	.LVL37:
 377 0016 FFF7FEFF 		bl	USBD_GetString
 378              	.LVL38:
 379 001a F8E7     		b	.L40
 380              	.L44:
 381              		.align	2
 382              	.L43:
 383 001c 00000000 		.word	USBD_StrDesc
 384 0020 00000000 		.word	.LC2
 385              		.cfi_endproc
 386              	.LFE71:
 388              		.section	.text.USBD_FS_InterfaceStrDescriptor,"ax",%progbits
 389              		.align	1
 390              		.global	USBD_FS_InterfaceStrDescriptor
 391              		.syntax unified
 392              		.thumb
 393              		.thumb_func
 394              		.fpu softvfp
 396              	USBD_FS_InterfaceStrDescriptor:
 397              	.LFB72:
 322:Src/usbd_desc.c ****   if(speed == 0)
 398              		.loc 1 322 0
 399              		.cfi_startproc
 400              		@ args = 0, pretend = 0, frame = 0
 401              		@ frame_needed = 0, uses_anonymous_args = 0
 402              	.LVL39:
 403 0000 08B5     		push	{r3, lr}
ARM GAS  C:\Users\antras\AppData\Local\Temp\cc6BGnau.s 			page 15


 404              	.LCFI7:
 405              		.cfi_def_cfa_offset 8
 406              		.cfi_offset 3, -8
 407              		.cfi_offset 14, -4
 408 0002 0A46     		mov	r2, r1
 323:Src/usbd_desc.c ****   {
 409              		.loc 1 323 0
 410 0004 28B1     		cbz	r0, .L49
 329:Src/usbd_desc.c ****   }
 411              		.loc 1 329 0
 412 0006 0549     		ldr	r1, .L50
 413              	.LVL40:
 414 0008 0548     		ldr	r0, .L50+4
 415              	.LVL41:
 416 000a FFF7FEFF 		bl	USBD_GetString
 417              	.LVL42:
 418              	.L47:
 332:Src/usbd_desc.c **** 
 419              		.loc 1 332 0
 420 000e 0348     		ldr	r0, .L50
 421 0010 08BD     		pop	{r3, pc}
 422              	.LVL43:
 423              	.L49:
 325:Src/usbd_desc.c ****   }
 424              		.loc 1 325 0
 425 0012 0249     		ldr	r1, .L50
 426              	.LVL44:
 427 0014 0248     		ldr	r0, .L50+4
 428              	.LVL45:
 429 0016 FFF7FEFF 		bl	USBD_GetString
 430              	.LVL46:
 431 001a F8E7     		b	.L47
 432              	.L51:
 433              		.align	2
 434              	.L50:
 435 001c 00000000 		.word	USBD_StrDesc
 436 0020 00000000 		.word	.LC3
 437              		.cfi_endproc
 438              	.LFE72:
 440              		.global	USBD_StringSerial
 441              		.comm	USBD_StrDesc,512,4
 442              		.global	USBD_LangIDDesc
 443              		.global	USBD_FS_DeviceDesc
 444              		.global	FS_Desc
 445              		.section	.data.FS_Desc,"aw",%progbits
 446              		.align	2
 449              	FS_Desc:
 450 0000 00000000 		.word	USBD_FS_DeviceDescriptor
 451 0004 00000000 		.word	USBD_FS_LangIDStrDescriptor
 452 0008 00000000 		.word	USBD_FS_ManufacturerStrDescriptor
 453 000c 00000000 		.word	USBD_FS_ProductStrDescriptor
 454 0010 00000000 		.word	USBD_FS_SerialStrDescriptor
 455 0014 00000000 		.word	USBD_FS_ConfigStrDescriptor
 456 0018 00000000 		.word	USBD_FS_InterfaceStrDescriptor
 457              		.section	.data.USBD_FS_DeviceDesc,"aw",%progbits
 458              		.align	2
 459              		.set	.LANCHOR0,. + 0
ARM GAS  C:\Users\antras\AppData\Local\Temp\cc6BGnau.s 			page 16


 462              	USBD_FS_DeviceDesc:
 463 0000 12       		.byte	18
 464 0001 01       		.byte	1
 465 0002 00       		.byte	0
 466 0003 02       		.byte	2
 467 0004 02       		.byte	2
 468 0005 02       		.byte	2
 469 0006 00       		.byte	0
 470 0007 40       		.byte	64
 471 0008 83       		.byte	-125
 472 0009 04       		.byte	4
 473 000a 40       		.byte	64
 474 000b 57       		.byte	87
 475 000c 00       		.byte	0
 476 000d 02       		.byte	2
 477 000e 01       		.byte	1
 478 000f 02       		.byte	2
 479 0010 03       		.byte	3
 480 0011 01       		.byte	1
 481              		.section	.data.USBD_LangIDDesc,"aw",%progbits
 482              		.align	2
 483              		.set	.LANCHOR1,. + 0
 486              	USBD_LangIDDesc:
 487 0000 04       		.byte	4
 488 0001 03       		.byte	3
 489 0002 09       		.byte	9
 490 0003 04       		.byte	4
 491              		.section	.data.USBD_StringSerial,"aw",%progbits
 492              		.align	2
 493              		.set	.LANCHOR2,. + 0
 496              	USBD_StringSerial:
 497 0000 1A       		.byte	26
 498 0001 03       		.byte	3
 499 0002 00000000 		.space	24
 499      00000000 
 499      00000000 
 499      00000000 
 499      00000000 
 500              		.section	.rodata.USBD_FS_ConfigStrDescriptor.str1.4,"aMS",%progbits,1
 501              		.align	2
 502              	.LC2:
 503 0000 43444320 		.ascii	"CDC Config\000"
 503      436F6E66 
 503      696700
 504              		.section	.rodata.USBD_FS_InterfaceStrDescriptor.str1.4,"aMS",%progbits,1
 505              		.align	2
 506              	.LC3:
 507 0000 43444320 		.ascii	"CDC Interface\000"
 507      496E7465 
 507      72666163 
 507      6500
 508              		.section	.rodata.USBD_FS_ManufacturerStrDescriptor.str1.4,"aMS",%progbits,1
 509              		.align	2
 510              	.LC1:
 511 0000 53544D69 		.ascii	"STMicroelectronics\000"
 511      63726F65 
 511      6C656374 
ARM GAS  C:\Users\antras\AppData\Local\Temp\cc6BGnau.s 			page 17


 511      726F6E69 
 511      637300
 512              		.section	.rodata.USBD_FS_ProductStrDescriptor.str1.4,"aMS",%progbits,1
 513              		.align	2
 514              	.LC0:
 515 0000 53544D33 		.ascii	"STM32 Virtual ComPort\000"
 515      32205669 
 515      72747561 
 515      6C20436F 
 515      6D506F72 
 516              		.text
 517              	.Letext0:
 518              		.file 2 "c:\\program files (x86)\\gnu tools arm embedded\\6 2017-q2-update\\arm-none-eabi\\include
 519              		.file 3 "c:\\program files (x86)\\gnu tools arm embedded\\6 2017-q2-update\\arm-none-eabi\\include
 520              		.file 4 "c:\\program files (x86)\\gnu tools arm embedded\\6 2017-q2-update\\arm-none-eabi\\include
 521              		.file 5 "c:\\program files (x86)\\gnu tools arm embedded\\6 2017-q2-update\\lib\\gcc\\arm-none-eab
 522              		.file 6 "c:\\program files (x86)\\gnu tools arm embedded\\6 2017-q2-update\\arm-none-eabi\\include
 523              		.file 7 "c:\\program files (x86)\\gnu tools arm embedded\\6 2017-q2-update\\arm-none-eabi\\include
 524              		.file 8 "c:\\program files (x86)\\gnu tools arm embedded\\6 2017-q2-update\\arm-none-eabi\\include
 525              		.file 9 "Drivers/CMSIS/Include/core_cm3.h"
 526              		.file 10 "Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h"
 527              		.file 11 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h"
 528              		.file 12 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h"
 529              		.file 13 "Inc/usbd_desc.h"
 530              		.file 14 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h"
ARM GAS  C:\Users\antras\AppData\Local\Temp\cc6BGnau.s 			page 18


DEFINED SYMBOLS
                            *ABS*:00000000 usbd_desc.c
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:16     .text.USBD_FS_DeviceDescriptor:00000000 $t
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:23     .text.USBD_FS_DeviceDescriptor:00000000 USBD_FS_DeviceDescriptor
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:42     .text.USBD_FS_DeviceDescriptor:00000008 $d
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:47     .text.USBD_FS_LangIDStrDescriptor:00000000 $t
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:54     .text.USBD_FS_LangIDStrDescriptor:00000000 USBD_FS_LangIDStrDescriptor
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:72     .text.USBD_FS_LangIDStrDescriptor:00000008 $d
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:77     .text.IntToUnicode:00000000 $t
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:83     .text.IntToUnicode:00000000 IntToUnicode
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:146    .text.Get_SerialNum:00000000 $t
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:152    .text.Get_SerialNum:00000000 Get_SerialNum
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:203    .text.Get_SerialNum:0000002c $d
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:209    .text.USBD_FS_SerialStrDescriptor:00000000 $t
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:216    .text.USBD_FS_SerialStrDescriptor:00000000 USBD_FS_SerialStrDescriptor
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:240    .text.USBD_FS_SerialStrDescriptor:00000010 $d
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:245    .text.USBD_FS_ProductStrDescriptor:00000000 $t
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:252    .text.USBD_FS_ProductStrDescriptor:00000000 USBD_FS_ProductStrDescriptor
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:291    .text.USBD_FS_ProductStrDescriptor:0000001c $d
                            *COM*:00000200 USBD_StrDesc
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:297    .text.USBD_FS_ManufacturerStrDescriptor:00000000 $t
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:304    .text.USBD_FS_ManufacturerStrDescriptor:00000000 USBD_FS_ManufacturerStrDescriptor
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:331    .text.USBD_FS_ManufacturerStrDescriptor:00000014 $d
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:337    .text.USBD_FS_ConfigStrDescriptor:00000000 $t
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:344    .text.USBD_FS_ConfigStrDescriptor:00000000 USBD_FS_ConfigStrDescriptor
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:383    .text.USBD_FS_ConfigStrDescriptor:0000001c $d
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:389    .text.USBD_FS_InterfaceStrDescriptor:00000000 $t
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:396    .text.USBD_FS_InterfaceStrDescriptor:00000000 USBD_FS_InterfaceStrDescriptor
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:435    .text.USBD_FS_InterfaceStrDescriptor:0000001c $d
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:496    .data.USBD_StringSerial:00000000 USBD_StringSerial
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:486    .data.USBD_LangIDDesc:00000000 USBD_LangIDDesc
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:462    .data.USBD_FS_DeviceDesc:00000000 USBD_FS_DeviceDesc
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:449    .data.FS_Desc:00000000 FS_Desc
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:446    .data.FS_Desc:00000000 $d
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:458    .data.USBD_FS_DeviceDesc:00000000 $d
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:482    .data.USBD_LangIDDesc:00000000 $d
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:492    .data.USBD_StringSerial:00000000 $d
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:501    .rodata.USBD_FS_ConfigStrDescriptor.str1.4:00000000 $d
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:505    .rodata.USBD_FS_InterfaceStrDescriptor.str1.4:00000000 $d
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:509    .rodata.USBD_FS_ManufacturerStrDescriptor.str1.4:00000000 $d
C:\Users\antras\AppData\Local\Temp\cc6BGnau.s:513    .rodata.USBD_FS_ProductStrDescriptor.str1.4:00000000 $d
                     .debug_frame:00000010 $d

UNDEFINED SYMBOLS
USBD_GetString
