ARM GAS /tmp/ccuRTiWv.s page 1 1 .cpu cortex-m4 2 .arch armv7e-m 3 .fpu fpv4-sp-d16 4 .eabi_attribute 27, 1 5 .eabi_attribute 28, 1 6 .eabi_attribute 20, 1 7 .eabi_attribute 21, 1 8 .eabi_attribute 23, 3 9 .eabi_attribute 24, 1 10 .eabi_attribute 25, 1 11 .eabi_attribute 26, 1 12 .eabi_attribute 30, 1 13 .eabi_attribute 34, 1 14 .eabi_attribute 18, 4 15 .file "usbd_desc.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .file 1 "USB_DEVICE/App/usbd_desc.c" 20 .section .text.USBD_FS_DeviceDescriptor,"ax",%progbits 21 .align 1 22 .global USBD_FS_DeviceDescriptor 23 .syntax unified 24 .thumb 25 .thumb_func 27 USBD_FS_DeviceDescriptor: 28 .LVL0: 29 .LFB243: 1:USB_DEVICE/App/usbd_desc.c **** /* USER CODE BEGIN Header */ 2:USB_DEVICE/App/usbd_desc.c **** /** 3:USB_DEVICE/App/usbd_desc.c **** ****************************************************************************** 4:USB_DEVICE/App/usbd_desc.c **** * @file : App/usbd_desc.c 5:USB_DEVICE/App/usbd_desc.c **** * @version : v1.0_Cube 6:USB_DEVICE/App/usbd_desc.c **** * @brief : This file implements the USB device descriptors. 7:USB_DEVICE/App/usbd_desc.c **** ****************************************************************************** 8:USB_DEVICE/App/usbd_desc.c **** * @attention 9:USB_DEVICE/App/usbd_desc.c **** * 10:USB_DEVICE/App/usbd_desc.c **** * Copyright (c) 2025 STMicroelectronics. 11:USB_DEVICE/App/usbd_desc.c **** * All rights reserved. 12:USB_DEVICE/App/usbd_desc.c **** * 13:USB_DEVICE/App/usbd_desc.c **** * This software is licensed under terms that can be found in the LICENSE file 14:USB_DEVICE/App/usbd_desc.c **** * in the root directory of this software component. 15:USB_DEVICE/App/usbd_desc.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 16:USB_DEVICE/App/usbd_desc.c **** * 17:USB_DEVICE/App/usbd_desc.c **** ****************************************************************************** 18:USB_DEVICE/App/usbd_desc.c **** */ 19:USB_DEVICE/App/usbd_desc.c **** /* USER CODE END Header */ 20:USB_DEVICE/App/usbd_desc.c **** 21:USB_DEVICE/App/usbd_desc.c **** /* Includes ------------------------------------------------------------------*/ 22:USB_DEVICE/App/usbd_desc.c **** #include "usbd_core.h" 23:USB_DEVICE/App/usbd_desc.c **** #include "usbd_desc.h" 24:USB_DEVICE/App/usbd_desc.c **** #include "usbd_conf.h" 25:USB_DEVICE/App/usbd_desc.c **** 26:USB_DEVICE/App/usbd_desc.c **** /* USER CODE BEGIN INCLUDE */ 27:USB_DEVICE/App/usbd_desc.c **** 28:USB_DEVICE/App/usbd_desc.c **** /* USER CODE END INCLUDE */ 29:USB_DEVICE/App/usbd_desc.c **** ARM GAS /tmp/ccuRTiWv.s page 2 30:USB_DEVICE/App/usbd_desc.c **** /* Private typedef -----------------------------------------------------------*/ 31:USB_DEVICE/App/usbd_desc.c **** /* Private define ------------------------------------------------------------*/ 32:USB_DEVICE/App/usbd_desc.c **** /* Private macro -------------------------------------------------------------*/ 33:USB_DEVICE/App/usbd_desc.c **** 34:USB_DEVICE/App/usbd_desc.c **** /* USER CODE BEGIN PV */ 35:USB_DEVICE/App/usbd_desc.c **** /* Private variables ---------------------------------------------------------*/ 36:USB_DEVICE/App/usbd_desc.c **** 37:USB_DEVICE/App/usbd_desc.c **** /* USER CODE END PV */ 38:USB_DEVICE/App/usbd_desc.c **** 39:USB_DEVICE/App/usbd_desc.c **** /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY 40:USB_DEVICE/App/usbd_desc.c **** * @{ 41:USB_DEVICE/App/usbd_desc.c **** */ 42:USB_DEVICE/App/usbd_desc.c **** 43:USB_DEVICE/App/usbd_desc.c **** /** @addtogroup USBD_DESC 44:USB_DEVICE/App/usbd_desc.c **** * @{ 45:USB_DEVICE/App/usbd_desc.c **** */ 46:USB_DEVICE/App/usbd_desc.c **** 47:USB_DEVICE/App/usbd_desc.c **** /** @defgroup USBD_DESC_Private_TypesDefinitions USBD_DESC_Private_TypesDefinitions 48:USB_DEVICE/App/usbd_desc.c **** * @brief Private types. 49:USB_DEVICE/App/usbd_desc.c **** * @{ 50:USB_DEVICE/App/usbd_desc.c **** */ 51:USB_DEVICE/App/usbd_desc.c **** 52:USB_DEVICE/App/usbd_desc.c **** /* USER CODE BEGIN PRIVATE_TYPES */ 53:USB_DEVICE/App/usbd_desc.c **** 54:USB_DEVICE/App/usbd_desc.c **** /* USER CODE END PRIVATE_TYPES */ 55:USB_DEVICE/App/usbd_desc.c **** 56:USB_DEVICE/App/usbd_desc.c **** /** 57:USB_DEVICE/App/usbd_desc.c **** * @} 58:USB_DEVICE/App/usbd_desc.c **** */ 59:USB_DEVICE/App/usbd_desc.c **** 60:USB_DEVICE/App/usbd_desc.c **** /** @defgroup USBD_DESC_Private_Defines USBD_DESC_Private_Defines 61:USB_DEVICE/App/usbd_desc.c **** * @brief Private defines. 62:USB_DEVICE/App/usbd_desc.c **** * @{ 63:USB_DEVICE/App/usbd_desc.c **** */ 64:USB_DEVICE/App/usbd_desc.c **** 65:USB_DEVICE/App/usbd_desc.c **** #define USBD_VID 1155 66:USB_DEVICE/App/usbd_desc.c **** #define USBD_LANGID_STRING 1033 67:USB_DEVICE/App/usbd_desc.c **** #define USBD_MANUFACTURER_STRING "STMicroelectronics" 68:USB_DEVICE/App/usbd_desc.c **** #define USBD_PID_FS 22336 69:USB_DEVICE/App/usbd_desc.c **** #define USBD_PRODUCT_STRING_FS "STM32 Virtual ComPort" 70:USB_DEVICE/App/usbd_desc.c **** #define USBD_CONFIGURATION_STRING_FS "CDC Config" 71:USB_DEVICE/App/usbd_desc.c **** #define USBD_INTERFACE_STRING_FS "CDC Interface" 72:USB_DEVICE/App/usbd_desc.c **** 73:USB_DEVICE/App/usbd_desc.c **** #define USB_SIZ_BOS_DESC 0x0C 74:USB_DEVICE/App/usbd_desc.c **** 75:USB_DEVICE/App/usbd_desc.c **** /* USER CODE BEGIN PRIVATE_DEFINES */ 76:USB_DEVICE/App/usbd_desc.c **** 77:USB_DEVICE/App/usbd_desc.c **** /* USER CODE END PRIVATE_DEFINES */ 78:USB_DEVICE/App/usbd_desc.c **** 79:USB_DEVICE/App/usbd_desc.c **** /** 80:USB_DEVICE/App/usbd_desc.c **** * @} 81:USB_DEVICE/App/usbd_desc.c **** */ 82:USB_DEVICE/App/usbd_desc.c **** 83:USB_DEVICE/App/usbd_desc.c **** /* USER CODE BEGIN 0 */ 84:USB_DEVICE/App/usbd_desc.c **** 85:USB_DEVICE/App/usbd_desc.c **** /* USER CODE END 0 */ 86:USB_DEVICE/App/usbd_desc.c **** ARM GAS /tmp/ccuRTiWv.s page 3 87:USB_DEVICE/App/usbd_desc.c **** /** @defgroup USBD_DESC_Private_Macros USBD_DESC_Private_Macros 88:USB_DEVICE/App/usbd_desc.c **** * @brief Private macros. 89:USB_DEVICE/App/usbd_desc.c **** * @{ 90:USB_DEVICE/App/usbd_desc.c **** */ 91:USB_DEVICE/App/usbd_desc.c **** 92:USB_DEVICE/App/usbd_desc.c **** /* USER CODE BEGIN PRIVATE_MACRO */ 93:USB_DEVICE/App/usbd_desc.c **** 94:USB_DEVICE/App/usbd_desc.c **** /* USER CODE END PRIVATE_MACRO */ 95:USB_DEVICE/App/usbd_desc.c **** 96:USB_DEVICE/App/usbd_desc.c **** /** 97:USB_DEVICE/App/usbd_desc.c **** * @} 98:USB_DEVICE/App/usbd_desc.c **** */ 99:USB_DEVICE/App/usbd_desc.c **** 100:USB_DEVICE/App/usbd_desc.c **** /** @defgroup USBD_DESC_Private_FunctionPrototypes USBD_DESC_Private_FunctionPrototypes 101:USB_DEVICE/App/usbd_desc.c **** * @brief Private functions declaration. 102:USB_DEVICE/App/usbd_desc.c **** * @{ 103:USB_DEVICE/App/usbd_desc.c **** */ 104:USB_DEVICE/App/usbd_desc.c **** 105:USB_DEVICE/App/usbd_desc.c **** static void Get_SerialNum(void); 106:USB_DEVICE/App/usbd_desc.c **** static void IntToUnicode(uint32_t value, uint8_t * pbuf, uint8_t len); 107:USB_DEVICE/App/usbd_desc.c **** 108:USB_DEVICE/App/usbd_desc.c **** /** 109:USB_DEVICE/App/usbd_desc.c **** * @} 110:USB_DEVICE/App/usbd_desc.c **** */ 111:USB_DEVICE/App/usbd_desc.c **** 112:USB_DEVICE/App/usbd_desc.c **** /** @defgroup USBD_DESC_Private_FunctionPrototypes USBD_DESC_Private_FunctionPrototypes 113:USB_DEVICE/App/usbd_desc.c **** * @brief Private functions declaration for FS. 114:USB_DEVICE/App/usbd_desc.c **** * @{ 115:USB_DEVICE/App/usbd_desc.c **** */ 116:USB_DEVICE/App/usbd_desc.c **** 117:USB_DEVICE/App/usbd_desc.c **** uint8_t * USBD_FS_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); 118:USB_DEVICE/App/usbd_desc.c **** uint8_t * USBD_FS_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); 119:USB_DEVICE/App/usbd_desc.c **** uint8_t * USBD_FS_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); 120:USB_DEVICE/App/usbd_desc.c **** uint8_t * USBD_FS_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); 121:USB_DEVICE/App/usbd_desc.c **** uint8_t * USBD_FS_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); 122:USB_DEVICE/App/usbd_desc.c **** uint8_t * USBD_FS_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); 123:USB_DEVICE/App/usbd_desc.c **** uint8_t * USBD_FS_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); 124:USB_DEVICE/App/usbd_desc.c **** #if (USBD_LPM_ENABLED == 1) 125:USB_DEVICE/App/usbd_desc.c **** uint8_t * USBD_FS_USR_BOSDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); 126:USB_DEVICE/App/usbd_desc.c **** #endif /* (USBD_LPM_ENABLED == 1) */ 127:USB_DEVICE/App/usbd_desc.c **** 128:USB_DEVICE/App/usbd_desc.c **** /** 129:USB_DEVICE/App/usbd_desc.c **** * @} 130:USB_DEVICE/App/usbd_desc.c **** */ 131:USB_DEVICE/App/usbd_desc.c **** 132:USB_DEVICE/App/usbd_desc.c **** /** @defgroup USBD_DESC_Private_Variables USBD_DESC_Private_Variables 133:USB_DEVICE/App/usbd_desc.c **** * @brief Private variables. 134:USB_DEVICE/App/usbd_desc.c **** * @{ 135:USB_DEVICE/App/usbd_desc.c **** */ 136:USB_DEVICE/App/usbd_desc.c **** 137:USB_DEVICE/App/usbd_desc.c **** USBD_DescriptorsTypeDef FS_Desc = 138:USB_DEVICE/App/usbd_desc.c **** { 139:USB_DEVICE/App/usbd_desc.c **** USBD_FS_DeviceDescriptor 140:USB_DEVICE/App/usbd_desc.c **** , USBD_FS_LangIDStrDescriptor 141:USB_DEVICE/App/usbd_desc.c **** , USBD_FS_ManufacturerStrDescriptor 142:USB_DEVICE/App/usbd_desc.c **** , USBD_FS_ProductStrDescriptor 143:USB_DEVICE/App/usbd_desc.c **** , USBD_FS_SerialStrDescriptor ARM GAS /tmp/ccuRTiWv.s page 4 144:USB_DEVICE/App/usbd_desc.c **** , USBD_FS_ConfigStrDescriptor 145:USB_DEVICE/App/usbd_desc.c **** , USBD_FS_InterfaceStrDescriptor 146:USB_DEVICE/App/usbd_desc.c **** #if (USBD_LPM_ENABLED == 1) 147:USB_DEVICE/App/usbd_desc.c **** , USBD_FS_USR_BOSDescriptor 148:USB_DEVICE/App/usbd_desc.c **** #endif /* (USBD_LPM_ENABLED == 1) */ 149:USB_DEVICE/App/usbd_desc.c **** }; 150:USB_DEVICE/App/usbd_desc.c **** 151:USB_DEVICE/App/usbd_desc.c **** #if defined ( __ICCARM__ ) /* IAR Compiler */ 152:USB_DEVICE/App/usbd_desc.c **** #pragma data_alignment=4 153:USB_DEVICE/App/usbd_desc.c **** #endif /* defined ( __ICCARM__ ) */ 154:USB_DEVICE/App/usbd_desc.c **** /** USB standard device descriptor. */ 155:USB_DEVICE/App/usbd_desc.c **** __ALIGN_BEGIN uint8_t USBD_FS_DeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END = 156:USB_DEVICE/App/usbd_desc.c **** { 157:USB_DEVICE/App/usbd_desc.c **** 0x12, /*bLength */ 158:USB_DEVICE/App/usbd_desc.c **** USB_DESC_TYPE_DEVICE, /*bDescriptorType*/ 159:USB_DEVICE/App/usbd_desc.c **** #if (USBD_LPM_ENABLED == 1) 160:USB_DEVICE/App/usbd_desc.c **** 0x01, /*bcdUSB */ /* changed to USB version 2.01 161:USB_DEVICE/App/usbd_desc.c **** in order to support LPM L1 suspend 162:USB_DEVICE/App/usbd_desc.c **** resume test of USBCV3.0*/ 163:USB_DEVICE/App/usbd_desc.c **** #else 164:USB_DEVICE/App/usbd_desc.c **** 0x00, /*bcdUSB */ 165:USB_DEVICE/App/usbd_desc.c **** #endif /* (USBD_LPM_ENABLED == 1) */ 166:USB_DEVICE/App/usbd_desc.c **** 0x02, 167:USB_DEVICE/App/usbd_desc.c **** 0x02, /*bDeviceClass*/ 168:USB_DEVICE/App/usbd_desc.c **** 0x02, /*bDeviceSubClass*/ 169:USB_DEVICE/App/usbd_desc.c **** 0x00, /*bDeviceProtocol*/ 170:USB_DEVICE/App/usbd_desc.c **** USB_MAX_EP0_SIZE, /*bMaxPacketSize*/ 171:USB_DEVICE/App/usbd_desc.c **** LOBYTE(USBD_VID), /*idVendor*/ 172:USB_DEVICE/App/usbd_desc.c **** HIBYTE(USBD_VID), /*idVendor*/ 173:USB_DEVICE/App/usbd_desc.c **** LOBYTE(USBD_PID_FS), /*idProduct*/ 174:USB_DEVICE/App/usbd_desc.c **** HIBYTE(USBD_PID_FS), /*idProduct*/ 175:USB_DEVICE/App/usbd_desc.c **** 0x00, /*bcdDevice rel. 2.00*/ 176:USB_DEVICE/App/usbd_desc.c **** 0x02, 177:USB_DEVICE/App/usbd_desc.c **** USBD_IDX_MFC_STR, /*Index of manufacturer string*/ 178:USB_DEVICE/App/usbd_desc.c **** USBD_IDX_PRODUCT_STR, /*Index of product string*/ 179:USB_DEVICE/App/usbd_desc.c **** USBD_IDX_SERIAL_STR, /*Index of serial number string*/ 180:USB_DEVICE/App/usbd_desc.c **** USBD_MAX_NUM_CONFIGURATION /*bNumConfigurations*/ 181:USB_DEVICE/App/usbd_desc.c **** }; 182:USB_DEVICE/App/usbd_desc.c **** 183:USB_DEVICE/App/usbd_desc.c **** /* USB_DeviceDescriptor */ 184:USB_DEVICE/App/usbd_desc.c **** /** BOS descriptor. */ 185:USB_DEVICE/App/usbd_desc.c **** #if (USBD_LPM_ENABLED == 1) 186:USB_DEVICE/App/usbd_desc.c **** #if defined ( __ICCARM__ ) /* IAR Compiler */ 187:USB_DEVICE/App/usbd_desc.c **** #pragma data_alignment=4 188:USB_DEVICE/App/usbd_desc.c **** #endif /* defined ( __ICCARM__ ) */ 189:USB_DEVICE/App/usbd_desc.c **** __ALIGN_BEGIN uint8_t USBD_FS_BOSDesc[USB_SIZ_BOS_DESC] __ALIGN_END = 190:USB_DEVICE/App/usbd_desc.c **** { 191:USB_DEVICE/App/usbd_desc.c **** 0x5, 192:USB_DEVICE/App/usbd_desc.c **** USB_DESC_TYPE_BOS, 193:USB_DEVICE/App/usbd_desc.c **** 0xC, 194:USB_DEVICE/App/usbd_desc.c **** 0x0, 195:USB_DEVICE/App/usbd_desc.c **** 0x1, /* 1 device capability*/ 196:USB_DEVICE/App/usbd_desc.c **** /* device capability*/ 197:USB_DEVICE/App/usbd_desc.c **** 0x7, 198:USB_DEVICE/App/usbd_desc.c **** USB_DEVICE_CAPABITY_TYPE, 199:USB_DEVICE/App/usbd_desc.c **** 0x2, 200:USB_DEVICE/App/usbd_desc.c **** 0x2, /* LPM capability bit set*/ ARM GAS /tmp/ccuRTiWv.s page 5 201:USB_DEVICE/App/usbd_desc.c **** 0x0, 202:USB_DEVICE/App/usbd_desc.c **** 0x0, 203:USB_DEVICE/App/usbd_desc.c **** 0x0 204:USB_DEVICE/App/usbd_desc.c **** }; 205:USB_DEVICE/App/usbd_desc.c **** #endif /* (USBD_LPM_ENABLED == 1) */ 206:USB_DEVICE/App/usbd_desc.c **** 207:USB_DEVICE/App/usbd_desc.c **** /** 208:USB_DEVICE/App/usbd_desc.c **** * @} 209:USB_DEVICE/App/usbd_desc.c **** */ 210:USB_DEVICE/App/usbd_desc.c **** 211:USB_DEVICE/App/usbd_desc.c **** /** @defgroup USBD_DESC_Private_Variables USBD_DESC_Private_Variables 212:USB_DEVICE/App/usbd_desc.c **** * @brief Private variables. 213:USB_DEVICE/App/usbd_desc.c **** * @{ 214:USB_DEVICE/App/usbd_desc.c **** */ 215:USB_DEVICE/App/usbd_desc.c **** 216:USB_DEVICE/App/usbd_desc.c **** #if defined ( __ICCARM__ ) /* IAR Compiler */ 217:USB_DEVICE/App/usbd_desc.c **** #pragma data_alignment=4 218:USB_DEVICE/App/usbd_desc.c **** #endif /* defined ( __ICCARM__ ) */ 219:USB_DEVICE/App/usbd_desc.c **** 220:USB_DEVICE/App/usbd_desc.c **** /** USB lang identifier descriptor. */ 221:USB_DEVICE/App/usbd_desc.c **** __ALIGN_BEGIN uint8_t USBD_LangIDDesc[USB_LEN_LANGID_STR_DESC] __ALIGN_END = 222:USB_DEVICE/App/usbd_desc.c **** { 223:USB_DEVICE/App/usbd_desc.c **** USB_LEN_LANGID_STR_DESC, 224:USB_DEVICE/App/usbd_desc.c **** USB_DESC_TYPE_STRING, 225:USB_DEVICE/App/usbd_desc.c **** LOBYTE(USBD_LANGID_STRING), 226:USB_DEVICE/App/usbd_desc.c **** HIBYTE(USBD_LANGID_STRING) 227:USB_DEVICE/App/usbd_desc.c **** }; 228:USB_DEVICE/App/usbd_desc.c **** 229:USB_DEVICE/App/usbd_desc.c **** #if defined ( __ICCARM__ ) /* IAR Compiler */ 230:USB_DEVICE/App/usbd_desc.c **** #pragma data_alignment=4 231:USB_DEVICE/App/usbd_desc.c **** #endif /* defined ( __ICCARM__ ) */ 232:USB_DEVICE/App/usbd_desc.c **** /* Internal string descriptor. */ 233:USB_DEVICE/App/usbd_desc.c **** __ALIGN_BEGIN uint8_t USBD_StrDesc[USBD_MAX_STR_DESC_SIZ] __ALIGN_END; 234:USB_DEVICE/App/usbd_desc.c **** 235:USB_DEVICE/App/usbd_desc.c **** #if defined ( __ICCARM__ ) /*!< IAR Compiler */ 236:USB_DEVICE/App/usbd_desc.c **** #pragma data_alignment=4 237:USB_DEVICE/App/usbd_desc.c **** #endif 238:USB_DEVICE/App/usbd_desc.c **** __ALIGN_BEGIN uint8_t USBD_StringSerial[USB_SIZ_STRING_SERIAL] __ALIGN_END = { 239:USB_DEVICE/App/usbd_desc.c **** USB_SIZ_STRING_SERIAL, 240:USB_DEVICE/App/usbd_desc.c **** USB_DESC_TYPE_STRING, 241:USB_DEVICE/App/usbd_desc.c **** }; 242:USB_DEVICE/App/usbd_desc.c **** 243:USB_DEVICE/App/usbd_desc.c **** /** 244:USB_DEVICE/App/usbd_desc.c **** * @} 245:USB_DEVICE/App/usbd_desc.c **** */ 246:USB_DEVICE/App/usbd_desc.c **** 247:USB_DEVICE/App/usbd_desc.c **** /** @defgroup USBD_DESC_Private_Functions USBD_DESC_Private_Functions 248:USB_DEVICE/App/usbd_desc.c **** * @brief Private functions. 249:USB_DEVICE/App/usbd_desc.c **** * @{ 250:USB_DEVICE/App/usbd_desc.c **** */ 251:USB_DEVICE/App/usbd_desc.c **** 252:USB_DEVICE/App/usbd_desc.c **** /** 253:USB_DEVICE/App/usbd_desc.c **** * @brief Return the device descriptor 254:USB_DEVICE/App/usbd_desc.c **** * @param speed : Current device speed 255:USB_DEVICE/App/usbd_desc.c **** * @param length : Pointer to data length variable 256:USB_DEVICE/App/usbd_desc.c **** * @retval Pointer to descriptor buffer 257:USB_DEVICE/App/usbd_desc.c **** */ ARM GAS /tmp/ccuRTiWv.s page 6 258:USB_DEVICE/App/usbd_desc.c **** uint8_t * USBD_FS_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) 259:USB_DEVICE/App/usbd_desc.c **** { 30 .loc 1 259 1 view -0 31 .cfi_startproc 32 @ args = 0, pretend = 0, frame = 0 33 @ frame_needed = 0, uses_anonymous_args = 0 34 @ link register save eliminated. 260:USB_DEVICE/App/usbd_desc.c **** UNUSED(speed); 35 .loc 1 260 3 view .LVU1 261:USB_DEVICE/App/usbd_desc.c **** *length = sizeof(USBD_FS_DeviceDesc); 36 .loc 1 261 3 view .LVU2 37 .loc 1 261 11 is_stmt 0 view .LVU3 38 0000 1223 movs r3, #18 39 0002 0B80 strh r3, [r1] @ movhi 262:USB_DEVICE/App/usbd_desc.c **** return USBD_FS_DeviceDesc; 40 .loc 1 262 3 is_stmt 1 view .LVU4 263:USB_DEVICE/App/usbd_desc.c **** } 41 .loc 1 263 1 is_stmt 0 view .LVU5 42 0004 0048 ldr r0, .L2 43 .LVL1: 44 .loc 1 263 1 view .LVU6 45 0006 7047 bx lr 46 .L3: 47 .align 2 48 .L2: 49 0008 00000000 .word USBD_FS_DeviceDesc 50 .cfi_endproc 51 .LFE243: 53 .section .text.USBD_FS_LangIDStrDescriptor,"ax",%progbits 54 .align 1 55 .global USBD_FS_LangIDStrDescriptor 56 .syntax unified 57 .thumb 58 .thumb_func 60 USBD_FS_LangIDStrDescriptor: 61 .LVL2: 62 .LFB244: 264:USB_DEVICE/App/usbd_desc.c **** 265:USB_DEVICE/App/usbd_desc.c **** /** 266:USB_DEVICE/App/usbd_desc.c **** * @brief Return the LangID string descriptor 267:USB_DEVICE/App/usbd_desc.c **** * @param speed : Current device speed 268:USB_DEVICE/App/usbd_desc.c **** * @param length : Pointer to data length variable 269:USB_DEVICE/App/usbd_desc.c **** * @retval Pointer to descriptor buffer 270:USB_DEVICE/App/usbd_desc.c **** */ 271:USB_DEVICE/App/usbd_desc.c **** uint8_t * USBD_FS_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) 272:USB_DEVICE/App/usbd_desc.c **** { 63 .loc 1 272 1 is_stmt 1 view -0 64 .cfi_startproc 65 @ args = 0, pretend = 0, frame = 0 66 @ frame_needed = 0, uses_anonymous_args = 0 67 @ link register save eliminated. 273:USB_DEVICE/App/usbd_desc.c **** UNUSED(speed); 68 .loc 1 273 3 view .LVU8 274:USB_DEVICE/App/usbd_desc.c **** *length = sizeof(USBD_LangIDDesc); 69 .loc 1 274 3 view .LVU9 70 .loc 1 274 11 is_stmt 0 view .LVU10 71 0000 0423 movs r3, #4 ARM GAS /tmp/ccuRTiWv.s page 7 72 0002 0B80 strh r3, [r1] @ movhi 275:USB_DEVICE/App/usbd_desc.c **** return USBD_LangIDDesc; 73 .loc 1 275 3 is_stmt 1 view .LVU11 276:USB_DEVICE/App/usbd_desc.c **** } 74 .loc 1 276 1 is_stmt 0 view .LVU12 75 0004 0048 ldr r0, .L5 76 .LVL3: 77 .loc 1 276 1 view .LVU13 78 0006 7047 bx lr 79 .L6: 80 .align 2 81 .L5: 82 0008 00000000 .word USBD_LangIDDesc 83 .cfi_endproc 84 .LFE244: 86 .section .text.IntToUnicode,"ax",%progbits 87 .align 1 88 .syntax unified 89 .thumb 90 .thumb_func 92 IntToUnicode: 93 .LVL4: 94 .LFB251: 277:USB_DEVICE/App/usbd_desc.c **** 278:USB_DEVICE/App/usbd_desc.c **** /** 279:USB_DEVICE/App/usbd_desc.c **** * @brief Return the product string descriptor 280:USB_DEVICE/App/usbd_desc.c **** * @param speed : Current device speed 281:USB_DEVICE/App/usbd_desc.c **** * @param length : Pointer to data length variable 282:USB_DEVICE/App/usbd_desc.c **** * @retval Pointer to descriptor buffer 283:USB_DEVICE/App/usbd_desc.c **** */ 284:USB_DEVICE/App/usbd_desc.c **** uint8_t * USBD_FS_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) 285:USB_DEVICE/App/usbd_desc.c **** { 286:USB_DEVICE/App/usbd_desc.c **** if(speed == 0) 287:USB_DEVICE/App/usbd_desc.c **** { 288:USB_DEVICE/App/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_PRODUCT_STRING_FS, USBD_StrDesc, length); 289:USB_DEVICE/App/usbd_desc.c **** } 290:USB_DEVICE/App/usbd_desc.c **** else 291:USB_DEVICE/App/usbd_desc.c **** { 292:USB_DEVICE/App/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_PRODUCT_STRING_FS, USBD_StrDesc, length); 293:USB_DEVICE/App/usbd_desc.c **** } 294:USB_DEVICE/App/usbd_desc.c **** return USBD_StrDesc; 295:USB_DEVICE/App/usbd_desc.c **** } 296:USB_DEVICE/App/usbd_desc.c **** 297:USB_DEVICE/App/usbd_desc.c **** /** 298:USB_DEVICE/App/usbd_desc.c **** * @brief Return the manufacturer string descriptor 299:USB_DEVICE/App/usbd_desc.c **** * @param speed : Current device speed 300:USB_DEVICE/App/usbd_desc.c **** * @param length : Pointer to data length variable 301:USB_DEVICE/App/usbd_desc.c **** * @retval Pointer to descriptor buffer 302:USB_DEVICE/App/usbd_desc.c **** */ 303:USB_DEVICE/App/usbd_desc.c **** uint8_t * USBD_FS_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) 304:USB_DEVICE/App/usbd_desc.c **** { 305:USB_DEVICE/App/usbd_desc.c **** UNUSED(speed); 306:USB_DEVICE/App/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_MANUFACTURER_STRING, USBD_StrDesc, length); 307:USB_DEVICE/App/usbd_desc.c **** return USBD_StrDesc; 308:USB_DEVICE/App/usbd_desc.c **** } 309:USB_DEVICE/App/usbd_desc.c **** 310:USB_DEVICE/App/usbd_desc.c **** /** ARM GAS /tmp/ccuRTiWv.s page 8 311:USB_DEVICE/App/usbd_desc.c **** * @brief Return the serial number string descriptor 312:USB_DEVICE/App/usbd_desc.c **** * @param speed : Current device speed 313:USB_DEVICE/App/usbd_desc.c **** * @param length : Pointer to data length variable 314:USB_DEVICE/App/usbd_desc.c **** * @retval Pointer to descriptor buffer 315:USB_DEVICE/App/usbd_desc.c **** */ 316:USB_DEVICE/App/usbd_desc.c **** uint8_t * USBD_FS_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) 317:USB_DEVICE/App/usbd_desc.c **** { 318:USB_DEVICE/App/usbd_desc.c **** UNUSED(speed); 319:USB_DEVICE/App/usbd_desc.c **** *length = USB_SIZ_STRING_SERIAL; 320:USB_DEVICE/App/usbd_desc.c **** 321:USB_DEVICE/App/usbd_desc.c **** /* Update the serial number string descriptor with the data from the unique 322:USB_DEVICE/App/usbd_desc.c **** * ID */ 323:USB_DEVICE/App/usbd_desc.c **** Get_SerialNum(); 324:USB_DEVICE/App/usbd_desc.c **** /* USER CODE BEGIN USBD_FS_SerialStrDescriptor */ 325:USB_DEVICE/App/usbd_desc.c **** 326:USB_DEVICE/App/usbd_desc.c **** /* USER CODE END USBD_FS_SerialStrDescriptor */ 327:USB_DEVICE/App/usbd_desc.c **** return (uint8_t *) USBD_StringSerial; 328:USB_DEVICE/App/usbd_desc.c **** } 329:USB_DEVICE/App/usbd_desc.c **** 330:USB_DEVICE/App/usbd_desc.c **** /** 331:USB_DEVICE/App/usbd_desc.c **** * @brief Return the configuration string descriptor 332:USB_DEVICE/App/usbd_desc.c **** * @param speed : Current device speed 333:USB_DEVICE/App/usbd_desc.c **** * @param length : Pointer to data length variable 334:USB_DEVICE/App/usbd_desc.c **** * @retval Pointer to descriptor buffer 335:USB_DEVICE/App/usbd_desc.c **** */ 336:USB_DEVICE/App/usbd_desc.c **** uint8_t * USBD_FS_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) 337:USB_DEVICE/App/usbd_desc.c **** { 338:USB_DEVICE/App/usbd_desc.c **** if(speed == USBD_SPEED_HIGH) 339:USB_DEVICE/App/usbd_desc.c **** { 340:USB_DEVICE/App/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_CONFIGURATION_STRING_FS, USBD_StrDesc, length); 341:USB_DEVICE/App/usbd_desc.c **** } 342:USB_DEVICE/App/usbd_desc.c **** else 343:USB_DEVICE/App/usbd_desc.c **** { 344:USB_DEVICE/App/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_CONFIGURATION_STRING_FS, USBD_StrDesc, length); 345:USB_DEVICE/App/usbd_desc.c **** } 346:USB_DEVICE/App/usbd_desc.c **** return USBD_StrDesc; 347:USB_DEVICE/App/usbd_desc.c **** } 348:USB_DEVICE/App/usbd_desc.c **** 349:USB_DEVICE/App/usbd_desc.c **** /** 350:USB_DEVICE/App/usbd_desc.c **** * @brief Return the interface string descriptor 351:USB_DEVICE/App/usbd_desc.c **** * @param speed : Current device speed 352:USB_DEVICE/App/usbd_desc.c **** * @param length : Pointer to data length variable 353:USB_DEVICE/App/usbd_desc.c **** * @retval Pointer to descriptor buffer 354:USB_DEVICE/App/usbd_desc.c **** */ 355:USB_DEVICE/App/usbd_desc.c **** uint8_t * USBD_FS_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) 356:USB_DEVICE/App/usbd_desc.c **** { 357:USB_DEVICE/App/usbd_desc.c **** if(speed == 0) 358:USB_DEVICE/App/usbd_desc.c **** { 359:USB_DEVICE/App/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_INTERFACE_STRING_FS, USBD_StrDesc, length); 360:USB_DEVICE/App/usbd_desc.c **** } 361:USB_DEVICE/App/usbd_desc.c **** else 362:USB_DEVICE/App/usbd_desc.c **** { 363:USB_DEVICE/App/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_INTERFACE_STRING_FS, USBD_StrDesc, length); 364:USB_DEVICE/App/usbd_desc.c **** } 365:USB_DEVICE/App/usbd_desc.c **** return USBD_StrDesc; 366:USB_DEVICE/App/usbd_desc.c **** } 367:USB_DEVICE/App/usbd_desc.c **** ARM GAS /tmp/ccuRTiWv.s page 9 368:USB_DEVICE/App/usbd_desc.c **** #if (USBD_LPM_ENABLED == 1) 369:USB_DEVICE/App/usbd_desc.c **** /** 370:USB_DEVICE/App/usbd_desc.c **** * @brief Return the BOS descriptor 371:USB_DEVICE/App/usbd_desc.c **** * @param speed : Current device speed 372:USB_DEVICE/App/usbd_desc.c **** * @param length : Pointer to data length variable 373:USB_DEVICE/App/usbd_desc.c **** * @retval Pointer to descriptor buffer 374:USB_DEVICE/App/usbd_desc.c **** */ 375:USB_DEVICE/App/usbd_desc.c **** uint8_t * USBD_FS_USR_BOSDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) 376:USB_DEVICE/App/usbd_desc.c **** { 377:USB_DEVICE/App/usbd_desc.c **** UNUSED(speed); 378:USB_DEVICE/App/usbd_desc.c **** *length = sizeof(USBD_FS_BOSDesc); 379:USB_DEVICE/App/usbd_desc.c **** return (uint8_t*)USBD_FS_BOSDesc; 380:USB_DEVICE/App/usbd_desc.c **** } 381:USB_DEVICE/App/usbd_desc.c **** #endif /* (USBD_LPM_ENABLED == 1) */ 382:USB_DEVICE/App/usbd_desc.c **** 383:USB_DEVICE/App/usbd_desc.c **** /** 384:USB_DEVICE/App/usbd_desc.c **** * @brief Create the serial number string descriptor 385:USB_DEVICE/App/usbd_desc.c **** * @param None 386:USB_DEVICE/App/usbd_desc.c **** * @retval None 387:USB_DEVICE/App/usbd_desc.c **** */ 388:USB_DEVICE/App/usbd_desc.c **** static void Get_SerialNum(void) 389:USB_DEVICE/App/usbd_desc.c **** { 390:USB_DEVICE/App/usbd_desc.c **** uint32_t deviceserial0; 391:USB_DEVICE/App/usbd_desc.c **** uint32_t deviceserial1; 392:USB_DEVICE/App/usbd_desc.c **** uint32_t deviceserial2; 393:USB_DEVICE/App/usbd_desc.c **** 394:USB_DEVICE/App/usbd_desc.c **** deviceserial0 = *(uint32_t *) DEVICE_ID1; 395:USB_DEVICE/App/usbd_desc.c **** deviceserial1 = *(uint32_t *) DEVICE_ID2; 396:USB_DEVICE/App/usbd_desc.c **** deviceserial2 = *(uint32_t *) DEVICE_ID3; 397:USB_DEVICE/App/usbd_desc.c **** 398:USB_DEVICE/App/usbd_desc.c **** deviceserial0 += deviceserial2; 399:USB_DEVICE/App/usbd_desc.c **** 400:USB_DEVICE/App/usbd_desc.c **** if (deviceserial0 != 0) 401:USB_DEVICE/App/usbd_desc.c **** { 402:USB_DEVICE/App/usbd_desc.c **** IntToUnicode(deviceserial0, &USBD_StringSerial[2], 8); 403:USB_DEVICE/App/usbd_desc.c **** IntToUnicode(deviceserial1, &USBD_StringSerial[18], 4); 404:USB_DEVICE/App/usbd_desc.c **** } 405:USB_DEVICE/App/usbd_desc.c **** } 406:USB_DEVICE/App/usbd_desc.c **** 407:USB_DEVICE/App/usbd_desc.c **** /** 408:USB_DEVICE/App/usbd_desc.c **** * @brief Convert Hex 32Bits value into char 409:USB_DEVICE/App/usbd_desc.c **** * @param value: value to convert 410:USB_DEVICE/App/usbd_desc.c **** * @param pbuf: pointer to the buffer 411:USB_DEVICE/App/usbd_desc.c **** * @param len: buffer length 412:USB_DEVICE/App/usbd_desc.c **** * @retval None 413:USB_DEVICE/App/usbd_desc.c **** */ 414:USB_DEVICE/App/usbd_desc.c **** static void IntToUnicode(uint32_t value, uint8_t * pbuf, uint8_t len) 415:USB_DEVICE/App/usbd_desc.c **** { 95 .loc 1 415 1 is_stmt 1 view -0 96 .cfi_startproc 97 @ args = 0, pretend = 0, frame = 0 98 @ frame_needed = 0, uses_anonymous_args = 0 416:USB_DEVICE/App/usbd_desc.c **** uint8_t idx = 0; 99 .loc 1 416 3 view .LVU15 417:USB_DEVICE/App/usbd_desc.c **** 418:USB_DEVICE/App/usbd_desc.c **** for (idx = 0; idx < len; idx++) 100 .loc 1 418 3 view .LVU16 ARM GAS /tmp/ccuRTiWv.s page 10 101 .loc 1 418 12 is_stmt 0 view .LVU17 102 0000 0023 movs r3, #0 103 .LVL5: 104 .loc 1 418 21 is_stmt 1 discriminator 1 view .LVU18 105 0002 9342 cmp r3, r2 106 0004 1ED2 bcs .L15 415:USB_DEVICE/App/usbd_desc.c **** uint8_t idx = 0; 107 .loc 1 415 1 is_stmt 0 view .LVU19 108 0006 00B5 push {lr} 109 .LCFI0: 110 .cfi_def_cfa_offset 4 111 .cfi_offset 14, -4 112 0008 10E0 b .L11 113 .L9: 419:USB_DEVICE/App/usbd_desc.c **** { 420:USB_DEVICE/App/usbd_desc.c **** if (((value >> 28)) < 0xA) 421:USB_DEVICE/App/usbd_desc.c **** { 422:USB_DEVICE/App/usbd_desc.c **** pbuf[2 * idx] = (value >> 28) + '0'; 423:USB_DEVICE/App/usbd_desc.c **** } 424:USB_DEVICE/App/usbd_desc.c **** else 425:USB_DEVICE/App/usbd_desc.c **** { 426:USB_DEVICE/App/usbd_desc.c **** pbuf[2 * idx] = (value >> 28) + 'A' - 10; 114 .loc 1 426 7 is_stmt 1 view .LVU20 115 .loc 1 426 43 is_stmt 0 view .LVU21 116 000a 0CF1370C add ip, ip, #55 117 .loc 1 426 21 view .LVU22 118 000e 01F813C0 strb ip, [r1, r3, lsl #1] 119 .L10: 427:USB_DEVICE/App/usbd_desc.c **** } 428:USB_DEVICE/App/usbd_desc.c **** 429:USB_DEVICE/App/usbd_desc.c **** value = value << 4; 120 .loc 1 429 5 is_stmt 1 view .LVU23 121 .loc 1 429 11 is_stmt 0 view .LVU24 122 0012 0001 lsls r0, r0, #4 123 .LVL6: 430:USB_DEVICE/App/usbd_desc.c **** 431:USB_DEVICE/App/usbd_desc.c **** pbuf[2 * idx + 1] = 0; 124 .loc 1 431 5 is_stmt 1 view .LVU25 125 .loc 1 431 12 is_stmt 0 view .LVU26 126 0014 4FEA430C lsl ip, r3, #1 127 .loc 1 431 9 view .LVU27 128 0018 0CF1010C add ip, ip, #1 129 .loc 1 431 23 view .LVU28 130 001c 4FF0000E mov lr, #0 131 0020 01F80CE0 strb lr, [r1, ip] 418:USB_DEVICE/App/usbd_desc.c **** { 132 .loc 1 418 31 is_stmt 1 discriminator 2 view .LVU29 133 0024 0133 adds r3, r3, #1 134 .LVL7: 418:USB_DEVICE/App/usbd_desc.c **** { 135 .loc 1 418 31 is_stmt 0 discriminator 2 view .LVU30 136 0026 DBB2 uxtb r3, r3 137 .LVL8: 418:USB_DEVICE/App/usbd_desc.c **** { 138 .loc 1 418 21 is_stmt 1 discriminator 1 view .LVU31 139 0028 9342 cmp r3, r2 140 002a 09D2 bcs .L16 ARM GAS /tmp/ccuRTiWv.s page 11 141 .L11: 420:USB_DEVICE/App/usbd_desc.c **** { 142 .loc 1 420 5 view .LVU32 420:USB_DEVICE/App/usbd_desc.c **** { 143 .loc 1 420 17 is_stmt 0 view .LVU33 144 002c 4FEA107C lsr ip, r0, #28 420:USB_DEVICE/App/usbd_desc.c **** { 145 .loc 1 420 8 view .LVU34 146 0030 B0F1204F cmp r0, #-1610612736 147 0034 E9D2 bcs .L9 422:USB_DEVICE/App/usbd_desc.c **** } 148 .loc 1 422 7 is_stmt 1 view .LVU35 422:USB_DEVICE/App/usbd_desc.c **** } 149 .loc 1 422 37 is_stmt 0 view .LVU36 150 0036 0CF1300C add ip, ip, #48 422:USB_DEVICE/App/usbd_desc.c **** } 151 .loc 1 422 21 view .LVU37 152 003a 01F813C0 strb ip, [r1, r3, lsl #1] 153 003e E8E7 b .L10 154 .L16: 432:USB_DEVICE/App/usbd_desc.c **** } 433:USB_DEVICE/App/usbd_desc.c **** } 155 .loc 1 433 1 view .LVU38 156 0040 5DF804FB ldr pc, [sp], #4 157 .L15: 158 .LCFI1: 159 .cfi_def_cfa_offset 0 160 .cfi_restore 14 161 .loc 1 433 1 view .LVU39 162 0044 7047 bx lr 163 .cfi_endproc 164 .LFE251: 166 .section .text.Get_SerialNum,"ax",%progbits 167 .align 1 168 .syntax unified 169 .thumb 170 .thumb_func 172 Get_SerialNum: 173 .LFB250: 389:USB_DEVICE/App/usbd_desc.c **** uint32_t deviceserial0; 174 .loc 1 389 1 is_stmt 1 view -0 175 .cfi_startproc 176 @ args = 0, pretend = 0, frame = 0 177 @ frame_needed = 0, uses_anonymous_args = 0 178 0000 38B5 push {r3, r4, r5, lr} 179 .LCFI2: 180 .cfi_def_cfa_offset 16 181 .cfi_offset 3, -16 182 .cfi_offset 4, -12 183 .cfi_offset 5, -8 184 .cfi_offset 14, -4 390:USB_DEVICE/App/usbd_desc.c **** uint32_t deviceserial1; 185 .loc 1 390 3 view .LVU41 391:USB_DEVICE/App/usbd_desc.c **** uint32_t deviceserial2; 186 .loc 1 391 3 view .LVU42 392:USB_DEVICE/App/usbd_desc.c **** 187 .loc 1 392 3 view .LVU43 ARM GAS /tmp/ccuRTiWv.s page 12 394:USB_DEVICE/App/usbd_desc.c **** deviceserial1 = *(uint32_t *) DEVICE_ID2; 188 .loc 1 394 3 view .LVU44 394:USB_DEVICE/App/usbd_desc.c **** deviceserial1 = *(uint32_t *) DEVICE_ID2; 189 .loc 1 394 17 is_stmt 0 view .LVU45 190 0002 0B4B ldr r3, .L21 191 0004 D3F8100A ldr r0, [r3, #2576] 192 .LVL9: 395:USB_DEVICE/App/usbd_desc.c **** deviceserial2 = *(uint32_t *) DEVICE_ID3; 193 .loc 1 395 3 is_stmt 1 view .LVU46 395:USB_DEVICE/App/usbd_desc.c **** deviceserial2 = *(uint32_t *) DEVICE_ID3; 194 .loc 1 395 17 is_stmt 0 view .LVU47 195 0008 D3F8144A ldr r4, [r3, #2580] 196 .LVL10: 396:USB_DEVICE/App/usbd_desc.c **** 197 .loc 1 396 3 is_stmt 1 view .LVU48 396:USB_DEVICE/App/usbd_desc.c **** 198 .loc 1 396 17 is_stmt 0 view .LVU49 199 000c D3F8183A ldr r3, [r3, #2584] 200 .LVL11: 398:USB_DEVICE/App/usbd_desc.c **** 201 .loc 1 398 3 is_stmt 1 view .LVU50 400:USB_DEVICE/App/usbd_desc.c **** { 202 .loc 1 400 3 view .LVU51 400:USB_DEVICE/App/usbd_desc.c **** { 203 .loc 1 400 6 is_stmt 0 view .LVU52 204 0010 C018 adds r0, r0, r3 205 .LVL12: 400:USB_DEVICE/App/usbd_desc.c **** { 206 .loc 1 400 6 view .LVU53 207 0012 00D1 bne .L20 208 .LVL13: 209 .L17: 405:USB_DEVICE/App/usbd_desc.c **** 210 .loc 1 405 1 view .LVU54 211 0014 38BD pop {r3, r4, r5, pc} 212 .LVL14: 213 .L20: 402:USB_DEVICE/App/usbd_desc.c **** IntToUnicode(deviceserial1, &USBD_StringSerial[18], 4); 214 .loc 1 402 5 is_stmt 1 view .LVU55 215 0016 074D ldr r5, .L21+4 216 0018 0822 movs r2, #8 217 001a 2946 mov r1, r5 218 001c FFF7FEFF bl IntToUnicode 219 .LVL15: 403:USB_DEVICE/App/usbd_desc.c **** } 220 .loc 1 403 5 view .LVU56 221 0020 0422 movs r2, #4 222 0022 05F11001 add r1, r5, #16 223 0026 2046 mov r0, r4 224 0028 FFF7FEFF bl IntToUnicode 225 .LVL16: 405:USB_DEVICE/App/usbd_desc.c **** 226 .loc 1 405 1 is_stmt 0 view .LVU57 227 002c F2E7 b .L17 228 .L22: 229 002e 00BF .align 2 230 .L21: ARM GAS /tmp/ccuRTiWv.s page 13 231 0030 0070FF1F .word 536834048 232 0034 02000000 .word USBD_StringSerial+2 233 .cfi_endproc 234 .LFE250: 236 .section .text.USBD_FS_SerialStrDescriptor,"ax",%progbits 237 .align 1 238 .global USBD_FS_SerialStrDescriptor 239 .syntax unified 240 .thumb 241 .thumb_func 243 USBD_FS_SerialStrDescriptor: 244 .LVL17: 245 .LFB247: 317:USB_DEVICE/App/usbd_desc.c **** UNUSED(speed); 246 .loc 1 317 1 is_stmt 1 view -0 247 .cfi_startproc 248 @ args = 0, pretend = 0, frame = 0 249 @ frame_needed = 0, uses_anonymous_args = 0 317:USB_DEVICE/App/usbd_desc.c **** UNUSED(speed); 250 .loc 1 317 1 is_stmt 0 view .LVU59 251 0000 08B5 push {r3, lr} 252 .LCFI3: 253 .cfi_def_cfa_offset 8 254 .cfi_offset 3, -8 255 .cfi_offset 14, -4 318:USB_DEVICE/App/usbd_desc.c **** *length = USB_SIZ_STRING_SERIAL; 256 .loc 1 318 3 is_stmt 1 view .LVU60 319:USB_DEVICE/App/usbd_desc.c **** 257 .loc 1 319 3 view .LVU61 319:USB_DEVICE/App/usbd_desc.c **** 258 .loc 1 319 11 is_stmt 0 view .LVU62 259 0002 1A23 movs r3, #26 260 0004 0B80 strh r3, [r1] @ movhi 323:USB_DEVICE/App/usbd_desc.c **** /* USER CODE BEGIN USBD_FS_SerialStrDescriptor */ 261 .loc 1 323 3 is_stmt 1 view .LVU63 262 0006 FFF7FEFF bl Get_SerialNum 263 .LVL18: 327:USB_DEVICE/App/usbd_desc.c **** } 264 .loc 1 327 3 view .LVU64 328:USB_DEVICE/App/usbd_desc.c **** 265 .loc 1 328 1 is_stmt 0 view .LVU65 266 000a 0148 ldr r0, .L25 267 000c 08BD pop {r3, pc} 268 .L26: 269 000e 00BF .align 2 270 .L25: 271 0010 00000000 .word USBD_StringSerial 272 .cfi_endproc 273 .LFE247: 275 .section .rodata.USBD_FS_ProductStrDescriptor.str1.4,"aMS",%progbits,1 276 .align 2 277 .LC0: 278 0000 53544D33 .ascii "STM32 Virtual ComPort\000" 278 32205669 278 72747561 278 6C20436F 278 6D506F72 ARM GAS /tmp/ccuRTiWv.s page 14 279 .section .text.USBD_FS_ProductStrDescriptor,"ax",%progbits 280 .align 1 281 .global USBD_FS_ProductStrDescriptor 282 .syntax unified 283 .thumb 284 .thumb_func 286 USBD_FS_ProductStrDescriptor: 287 .LVL19: 288 .LFB245: 285:USB_DEVICE/App/usbd_desc.c **** if(speed == 0) 289 .loc 1 285 1 is_stmt 1 view -0 290 .cfi_startproc 291 @ args = 0, pretend = 0, frame = 0 292 @ frame_needed = 0, uses_anonymous_args = 0 285:USB_DEVICE/App/usbd_desc.c **** if(speed == 0) 293 .loc 1 285 1 is_stmt 0 view .LVU67 294 0000 08B5 push {r3, lr} 295 .LCFI4: 296 .cfi_def_cfa_offset 8 297 .cfi_offset 3, -8 298 .cfi_offset 14, -4 299 0002 0A46 mov r2, r1 286:USB_DEVICE/App/usbd_desc.c **** { 300 .loc 1 286 3 is_stmt 1 view .LVU68 286:USB_DEVICE/App/usbd_desc.c **** { 301 .loc 1 286 5 is_stmt 0 view .LVU69 302 0004 28B9 cbnz r0, .L28 288:USB_DEVICE/App/usbd_desc.c **** } 303 .loc 1 288 5 is_stmt 1 view .LVU70 304 0006 0549 ldr r1, .L31 305 .LVL20: 288:USB_DEVICE/App/usbd_desc.c **** } 306 .loc 1 288 5 is_stmt 0 view .LVU71 307 0008 0548 ldr r0, .L31+4 308 .LVL21: 288:USB_DEVICE/App/usbd_desc.c **** } 309 .loc 1 288 5 view .LVU72 310 000a FFF7FEFF bl USBD_GetString 311 .LVL22: 312 .L29: 294:USB_DEVICE/App/usbd_desc.c **** } 313 .loc 1 294 3 is_stmt 1 view .LVU73 295:USB_DEVICE/App/usbd_desc.c **** 314 .loc 1 295 1 is_stmt 0 view .LVU74 315 000e 0348 ldr r0, .L31 316 0010 08BD pop {r3, pc} 317 .LVL23: 318 .L28: 292:USB_DEVICE/App/usbd_desc.c **** } 319 .loc 1 292 5 is_stmt 1 view .LVU75 320 0012 0249 ldr r1, .L31 321 .LVL24: 292:USB_DEVICE/App/usbd_desc.c **** } 322 .loc 1 292 5 is_stmt 0 view .LVU76 323 0014 0248 ldr r0, .L31+4 324 .LVL25: 292:USB_DEVICE/App/usbd_desc.c **** } ARM GAS /tmp/ccuRTiWv.s page 15 325 .loc 1 292 5 view .LVU77 326 0016 FFF7FEFF bl USBD_GetString 327 .LVL26: 292:USB_DEVICE/App/usbd_desc.c **** } 328 .loc 1 292 5 view .LVU78 329 001a F8E7 b .L29 330 .L32: 331 .align 2 332 .L31: 333 001c 00000000 .word USBD_StrDesc 334 0020 00000000 .word .LC0 335 .cfi_endproc 336 .LFE245: 338 .section .rodata.USBD_FS_ManufacturerStrDescriptor.str1.4,"aMS",%progbits,1 339 .align 2 340 .LC1: 341 0000 53544D69 .ascii "STMicroelectronics\000" 341 63726F65 341 6C656374 341 726F6E69 341 637300 342 .section .text.USBD_FS_ManufacturerStrDescriptor,"ax",%progbits 343 .align 1 344 .global USBD_FS_ManufacturerStrDescriptor 345 .syntax unified 346 .thumb 347 .thumb_func 349 USBD_FS_ManufacturerStrDescriptor: 350 .LVL27: 351 .LFB246: 304:USB_DEVICE/App/usbd_desc.c **** UNUSED(speed); 352 .loc 1 304 1 is_stmt 1 view -0 353 .cfi_startproc 354 @ args = 0, pretend = 0, frame = 0 355 @ frame_needed = 0, uses_anonymous_args = 0 304:USB_DEVICE/App/usbd_desc.c **** UNUSED(speed); 356 .loc 1 304 1 is_stmt 0 view .LVU80 357 0000 10B5 push {r4, lr} 358 .LCFI5: 359 .cfi_def_cfa_offset 8 360 .cfi_offset 4, -8 361 .cfi_offset 14, -4 362 0002 0A46 mov r2, r1 305:USB_DEVICE/App/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_MANUFACTURER_STRING, USBD_StrDesc, length); 363 .loc 1 305 3 is_stmt 1 view .LVU81 306:USB_DEVICE/App/usbd_desc.c **** return USBD_StrDesc; 364 .loc 1 306 3 view .LVU82 365 0004 034C ldr r4, .L35 366 0006 2146 mov r1, r4 367 .LVL28: 306:USB_DEVICE/App/usbd_desc.c **** return USBD_StrDesc; 368 .loc 1 306 3 is_stmt 0 view .LVU83 369 0008 0348 ldr r0, .L35+4 370 .LVL29: 306:USB_DEVICE/App/usbd_desc.c **** return USBD_StrDesc; 371 .loc 1 306 3 view .LVU84 372 000a FFF7FEFF bl USBD_GetString ARM GAS /tmp/ccuRTiWv.s page 16 373 .LVL30: 307:USB_DEVICE/App/usbd_desc.c **** } 374 .loc 1 307 3 is_stmt 1 view .LVU85 308:USB_DEVICE/App/usbd_desc.c **** 375 .loc 1 308 1 is_stmt 0 view .LVU86 376 000e 2046 mov r0, r4 377 0010 10BD pop {r4, pc} 378 .L36: 379 0012 00BF .align 2 380 .L35: 381 0014 00000000 .word USBD_StrDesc 382 0018 00000000 .word .LC1 383 .cfi_endproc 384 .LFE246: 386 .section .rodata.USBD_FS_ConfigStrDescriptor.str1.4,"aMS",%progbits,1 387 .align 2 388 .LC2: 389 0000 43444320 .ascii "CDC Config\000" 389 436F6E66 389 696700 390 .section .text.USBD_FS_ConfigStrDescriptor,"ax",%progbits 391 .align 1 392 .global USBD_FS_ConfigStrDescriptor 393 .syntax unified 394 .thumb 395 .thumb_func 397 USBD_FS_ConfigStrDescriptor: 398 .LVL31: 399 .LFB248: 337:USB_DEVICE/App/usbd_desc.c **** if(speed == USBD_SPEED_HIGH) 400 .loc 1 337 1 is_stmt 1 view -0 401 .cfi_startproc 402 @ args = 0, pretend = 0, frame = 0 403 @ frame_needed = 0, uses_anonymous_args = 0 337:USB_DEVICE/App/usbd_desc.c **** if(speed == USBD_SPEED_HIGH) 404 .loc 1 337 1 is_stmt 0 view .LVU88 405 0000 08B5 push {r3, lr} 406 .LCFI6: 407 .cfi_def_cfa_offset 8 408 .cfi_offset 3, -8 409 .cfi_offset 14, -4 410 0002 0A46 mov r2, r1 338:USB_DEVICE/App/usbd_desc.c **** { 411 .loc 1 338 3 is_stmt 1 view .LVU89 338:USB_DEVICE/App/usbd_desc.c **** { 412 .loc 1 338 5 is_stmt 0 view .LVU90 413 0004 28B9 cbnz r0, .L38 340:USB_DEVICE/App/usbd_desc.c **** } 414 .loc 1 340 5 is_stmt 1 view .LVU91 415 0006 0549 ldr r1, .L41 416 .LVL32: 340:USB_DEVICE/App/usbd_desc.c **** } 417 .loc 1 340 5 is_stmt 0 view .LVU92 418 0008 0548 ldr r0, .L41+4 419 .LVL33: 340:USB_DEVICE/App/usbd_desc.c **** } 420 .loc 1 340 5 view .LVU93 ARM GAS /tmp/ccuRTiWv.s page 17 421 000a FFF7FEFF bl USBD_GetString 422 .LVL34: 423 .L39: 346:USB_DEVICE/App/usbd_desc.c **** } 424 .loc 1 346 3 is_stmt 1 view .LVU94 347:USB_DEVICE/App/usbd_desc.c **** 425 .loc 1 347 1 is_stmt 0 view .LVU95 426 000e 0348 ldr r0, .L41 427 0010 08BD pop {r3, pc} 428 .LVL35: 429 .L38: 344:USB_DEVICE/App/usbd_desc.c **** } 430 .loc 1 344 5 is_stmt 1 view .LVU96 431 0012 0249 ldr r1, .L41 432 .LVL36: 344:USB_DEVICE/App/usbd_desc.c **** } 433 .loc 1 344 5 is_stmt 0 view .LVU97 434 0014 0248 ldr r0, .L41+4 435 .LVL37: 344:USB_DEVICE/App/usbd_desc.c **** } 436 .loc 1 344 5 view .LVU98 437 0016 FFF7FEFF bl USBD_GetString 438 .LVL38: 344:USB_DEVICE/App/usbd_desc.c **** } 439 .loc 1 344 5 view .LVU99 440 001a F8E7 b .L39 441 .L42: 442 .align 2 443 .L41: 444 001c 00000000 .word USBD_StrDesc 445 0020 00000000 .word .LC2 446 .cfi_endproc 447 .LFE248: 449 .section .rodata.USBD_FS_InterfaceStrDescriptor.str1.4,"aMS",%progbits,1 450 .align 2 451 .LC3: 452 0000 43444320 .ascii "CDC Interface\000" 452 496E7465 452 72666163 452 6500 453 .section .text.USBD_FS_InterfaceStrDescriptor,"ax",%progbits 454 .align 1 455 .global USBD_FS_InterfaceStrDescriptor 456 .syntax unified 457 .thumb 458 .thumb_func 460 USBD_FS_InterfaceStrDescriptor: 461 .LVL39: 462 .LFB249: 356:USB_DEVICE/App/usbd_desc.c **** if(speed == 0) 463 .loc 1 356 1 is_stmt 1 view -0 464 .cfi_startproc 465 @ args = 0, pretend = 0, frame = 0 466 @ frame_needed = 0, uses_anonymous_args = 0 356:USB_DEVICE/App/usbd_desc.c **** if(speed == 0) 467 .loc 1 356 1 is_stmt 0 view .LVU101 468 0000 08B5 push {r3, lr} ARM GAS /tmp/ccuRTiWv.s page 18 469 .LCFI7: 470 .cfi_def_cfa_offset 8 471 .cfi_offset 3, -8 472 .cfi_offset 14, -4 473 0002 0A46 mov r2, r1 357:USB_DEVICE/App/usbd_desc.c **** { 474 .loc 1 357 3 is_stmt 1 view .LVU102 357:USB_DEVICE/App/usbd_desc.c **** { 475 .loc 1 357 5 is_stmt 0 view .LVU103 476 0004 28B9 cbnz r0, .L44 359:USB_DEVICE/App/usbd_desc.c **** } 477 .loc 1 359 5 is_stmt 1 view .LVU104 478 0006 0549 ldr r1, .L47 479 .LVL40: 359:USB_DEVICE/App/usbd_desc.c **** } 480 .loc 1 359 5 is_stmt 0 view .LVU105 481 0008 0548 ldr r0, .L47+4 482 .LVL41: 359:USB_DEVICE/App/usbd_desc.c **** } 483 .loc 1 359 5 view .LVU106 484 000a FFF7FEFF bl USBD_GetString 485 .LVL42: 486 .L45: 365:USB_DEVICE/App/usbd_desc.c **** } 487 .loc 1 365 3 is_stmt 1 view .LVU107 366:USB_DEVICE/App/usbd_desc.c **** 488 .loc 1 366 1 is_stmt 0 view .LVU108 489 000e 0348 ldr r0, .L47 490 0010 08BD pop {r3, pc} 491 .LVL43: 492 .L44: 363:USB_DEVICE/App/usbd_desc.c **** } 493 .loc 1 363 5 is_stmt 1 view .LVU109 494 0012 0249 ldr r1, .L47 495 .LVL44: 363:USB_DEVICE/App/usbd_desc.c **** } 496 .loc 1 363 5 is_stmt 0 view .LVU110 497 0014 0248 ldr r0, .L47+4 498 .LVL45: 363:USB_DEVICE/App/usbd_desc.c **** } 499 .loc 1 363 5 view .LVU111 500 0016 FFF7FEFF bl USBD_GetString 501 .LVL46: 363:USB_DEVICE/App/usbd_desc.c **** } 502 .loc 1 363 5 view .LVU112 503 001a F8E7 b .L45 504 .L48: 505 .align 2 506 .L47: 507 001c 00000000 .word USBD_StrDesc 508 0020 00000000 .word .LC3 509 .cfi_endproc 510 .LFE249: 512 .global USBD_StringSerial 513 .section .data.USBD_StringSerial,"aw" 514 .align 2 517 USBD_StringSerial: ARM GAS /tmp/ccuRTiWv.s page 19 518 0000 1A0300 .ascii "\032\003\000" 519 0003 00000000 .space 23 519 00000000 519 00000000 519 00000000 519 00000000 520 .global USBD_StrDesc 521 .section .bss.USBD_StrDesc,"aw",%nobits 522 .align 2 525 USBD_StrDesc: 526 0000 00000000 .space 512 526 00000000 526 00000000 526 00000000 526 00000000 527 .global USBD_LangIDDesc 528 .section .data.USBD_LangIDDesc,"aw" 529 .align 2 532 USBD_LangIDDesc: 533 0000 04030904 .ascii "\004\003\011\004" 534 .global USBD_FS_DeviceDesc 535 .section .data.USBD_FS_DeviceDesc,"aw" 536 .align 2 539 USBD_FS_DeviceDesc: 540 0000 12010002 .ascii "\022\001\000\002\002\002\000@\203\004@W\000\002\001" 540 02020040 540 83044057 540 000201 541 000f 020301 .ascii "\002\003\001" 542 .global FS_Desc 543 .section .data.FS_Desc,"aw" 544 .align 2 547 FS_Desc: 548 0000 00000000 .word USBD_FS_DeviceDescriptor 549 0004 00000000 .word USBD_FS_LangIDStrDescriptor 550 0008 00000000 .word USBD_FS_ManufacturerStrDescriptor 551 000c 00000000 .word USBD_FS_ProductStrDescriptor 552 0010 00000000 .word USBD_FS_SerialStrDescriptor 553 0014 00000000 .word USBD_FS_ConfigStrDescriptor 554 0018 00000000 .word USBD_FS_InterfaceStrDescriptor 555 .text 556 .Letext0: 557 .file 2 "/usr/lib/gcc/arm-none-eabi/13.2.1/include/stdint.h" 558 .file 3 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h" 559 .file 4 "USB_DEVICE/App/usbd_desc.h" 560 .file 5 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h" ARM GAS /tmp/ccuRTiWv.s page 20 DEFINED SYMBOLS *ABS*:00000000 usbd_desc.c /tmp/ccuRTiWv.s:21 .text.USBD_FS_DeviceDescriptor:00000000 $t /tmp/ccuRTiWv.s:27 .text.USBD_FS_DeviceDescriptor:00000000 USBD_FS_DeviceDescriptor /tmp/ccuRTiWv.s:49 .text.USBD_FS_DeviceDescriptor:00000008 $d /tmp/ccuRTiWv.s:539 .data.USBD_FS_DeviceDesc:00000000 USBD_FS_DeviceDesc /tmp/ccuRTiWv.s:54 .text.USBD_FS_LangIDStrDescriptor:00000000 $t /tmp/ccuRTiWv.s:60 .text.USBD_FS_LangIDStrDescriptor:00000000 USBD_FS_LangIDStrDescriptor /tmp/ccuRTiWv.s:82 .text.USBD_FS_LangIDStrDescriptor:00000008 $d /tmp/ccuRTiWv.s:532 .data.USBD_LangIDDesc:00000000 USBD_LangIDDesc /tmp/ccuRTiWv.s:87 .text.IntToUnicode:00000000 $t /tmp/ccuRTiWv.s:92 .text.IntToUnicode:00000000 IntToUnicode /tmp/ccuRTiWv.s:167 .text.Get_SerialNum:00000000 $t /tmp/ccuRTiWv.s:172 .text.Get_SerialNum:00000000 Get_SerialNum /tmp/ccuRTiWv.s:231 .text.Get_SerialNum:00000030 $d /tmp/ccuRTiWv.s:517 .data.USBD_StringSerial:00000000 USBD_StringSerial /tmp/ccuRTiWv.s:237 .text.USBD_FS_SerialStrDescriptor:00000000 $t /tmp/ccuRTiWv.s:243 .text.USBD_FS_SerialStrDescriptor:00000000 USBD_FS_SerialStrDescriptor /tmp/ccuRTiWv.s:271 .text.USBD_FS_SerialStrDescriptor:00000010 $d /tmp/ccuRTiWv.s:276 .rodata.USBD_FS_ProductStrDescriptor.str1.4:00000000 $d /tmp/ccuRTiWv.s:280 .text.USBD_FS_ProductStrDescriptor:00000000 $t /tmp/ccuRTiWv.s:286 .text.USBD_FS_ProductStrDescriptor:00000000 USBD_FS_ProductStrDescriptor /tmp/ccuRTiWv.s:333 .text.USBD_FS_ProductStrDescriptor:0000001c $d /tmp/ccuRTiWv.s:525 .bss.USBD_StrDesc:00000000 USBD_StrDesc /tmp/ccuRTiWv.s:339 .rodata.USBD_FS_ManufacturerStrDescriptor.str1.4:00000000 $d /tmp/ccuRTiWv.s:343 .text.USBD_FS_ManufacturerStrDescriptor:00000000 $t /tmp/ccuRTiWv.s:349 .text.USBD_FS_ManufacturerStrDescriptor:00000000 USBD_FS_ManufacturerStrDescriptor /tmp/ccuRTiWv.s:381 .text.USBD_FS_ManufacturerStrDescriptor:00000014 $d /tmp/ccuRTiWv.s:387 .rodata.USBD_FS_ConfigStrDescriptor.str1.4:00000000 $d /tmp/ccuRTiWv.s:391 .text.USBD_FS_ConfigStrDescriptor:00000000 $t /tmp/ccuRTiWv.s:397 .text.USBD_FS_ConfigStrDescriptor:00000000 USBD_FS_ConfigStrDescriptor /tmp/ccuRTiWv.s:444 .text.USBD_FS_ConfigStrDescriptor:0000001c $d /tmp/ccuRTiWv.s:450 .rodata.USBD_FS_InterfaceStrDescriptor.str1.4:00000000 $d /tmp/ccuRTiWv.s:454 .text.USBD_FS_InterfaceStrDescriptor:00000000 $t /tmp/ccuRTiWv.s:460 .text.USBD_FS_InterfaceStrDescriptor:00000000 USBD_FS_InterfaceStrDescriptor /tmp/ccuRTiWv.s:507 .text.USBD_FS_InterfaceStrDescriptor:0000001c $d /tmp/ccuRTiWv.s:514 .data.USBD_StringSerial:00000000 $d /tmp/ccuRTiWv.s:522 .bss.USBD_StrDesc:00000000 $d /tmp/ccuRTiWv.s:529 .data.USBD_LangIDDesc:00000000 $d /tmp/ccuRTiWv.s:536 .data.USBD_FS_DeviceDesc:00000000 $d /tmp/ccuRTiWv.s:547 .data.FS_Desc:00000000 FS_Desc /tmp/ccuRTiWv.s:544 .data.FS_Desc:00000000 $d UNDEFINED SYMBOLS USBD_GetString