ARM GAS /tmp/ccDO9gP0.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 "Src/usbd_desc.c" 20 .section .text.USBD_AUDIO_DeviceDescriptor,"ax",%progbits 21 .align 1 22 .global USBD_AUDIO_DeviceDescriptor 23 .syntax unified 24 .thumb 25 .thumb_func 27 USBD_AUDIO_DeviceDescriptor: 28 .LVL0: 29 .LFB333: 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 : v3.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 **** * Copyright (c) 2022 STMicroelectronics. 11:Src/usbd_desc.c **** * All rights reserved. 12:Src/usbd_desc.c **** * 13:Src/usbd_desc.c **** * This software is licensed under terms that can be found in the LICENSE file 14:Src/usbd_desc.c **** * in the root directory of this software component. 15:Src/usbd_desc.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 16:Src/usbd_desc.c **** * 17:Src/usbd_desc.c **** ****************************************************************************** 18:Src/usbd_desc.c **** */ 19:Src/usbd_desc.c **** /* USER CODE END Header */ 20:Src/usbd_desc.c **** 21:Src/usbd_desc.c **** /* Includes ------------------------------------------------------------------*/ 22:Src/usbd_desc.c **** #include "usbd_core.h" 23:Src/usbd_desc.c **** #include "usbd_desc.h" 24:Src/usbd_desc.c **** #include "usbd_conf.h" 25:Src/usbd_desc.c **** 26:Src/usbd_desc.c **** /* USER CODE BEGIN INCLUDE */ 27:Src/usbd_desc.c **** 28:Src/usbd_desc.c **** /* USER CODE END INCLUDE */ 29:Src/usbd_desc.c **** ARM GAS /tmp/ccDO9gP0.s page 2 30:Src/usbd_desc.c **** /* Private typedef -----------------------------------------------------------*/ 31:Src/usbd_desc.c **** /* Private define ------------------------------------------------------------*/ 32:Src/usbd_desc.c **** /* Private macro -------------------------------------------------------------*/ 33:Src/usbd_desc.c **** 34:Src/usbd_desc.c **** /* USER CODE BEGIN PV */ 35:Src/usbd_desc.c **** /* Private variables ---------------------------------------------------------*/ 36:Src/usbd_desc.c **** 37:Src/usbd_desc.c **** /* USER CODE END PV */ 38:Src/usbd_desc.c **** 39:Src/usbd_desc.c **** /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY 40:Src/usbd_desc.c **** * @{ 41:Src/usbd_desc.c **** */ 42:Src/usbd_desc.c **** 43:Src/usbd_desc.c **** /** @addtogroup USBD_DESC 44:Src/usbd_desc.c **** * @{ 45:Src/usbd_desc.c **** */ 46:Src/usbd_desc.c **** 47:Src/usbd_desc.c **** /** @defgroup USBD_DESC_Private_TypesDefinitions USBD_DESC_Private_TypesDefinitions 48:Src/usbd_desc.c **** * @brief Private types. 49:Src/usbd_desc.c **** * @{ 50:Src/usbd_desc.c **** */ 51:Src/usbd_desc.c **** 52:Src/usbd_desc.c **** /* USER CODE BEGIN PRIVATE_TYPES */ 53:Src/usbd_desc.c **** 54:Src/usbd_desc.c **** /* USER CODE END PRIVATE_TYPES */ 55:Src/usbd_desc.c **** 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 **** /** @defgroup USBD_DESC_Private_Defines USBD_DESC_Private_Defines 61:Src/usbd_desc.c **** * @brief Private defines. 62:Src/usbd_desc.c **** * @{ 63:Src/usbd_desc.c **** */ 64:Src/usbd_desc.c **** 65:Src/usbd_desc.c **** #define USBD_VID 1155 66:Src/usbd_desc.c **** #define USBD_LANGID_STRING 1033 67:Src/usbd_desc.c **** #define USBD_MANUFACTURER_STRING "STMicroelectronics" 68:Src/usbd_desc.c **** #define USBD_PID 22336 69:Src/usbd_desc.c **** #define USBD_PRODUCT_STRING "STM32 Audio Class" 70:Src/usbd_desc.c **** #define USBD_CONFIGURATION_STRING "AUDIO Config" 71:Src/usbd_desc.c **** #define USBD_INTERFACE_STRING "AUDIO Interface" 72:Src/usbd_desc.c **** 73:Src/usbd_desc.c **** /* USER CODE BEGIN PRIVATE_DEFINES */ 74:Src/usbd_desc.c **** 75:Src/usbd_desc.c **** /* USER CODE END PRIVATE_DEFINES */ 76:Src/usbd_desc.c **** 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 **** /* USER CODE BEGIN 0 */ 82:Src/usbd_desc.c **** 83:Src/usbd_desc.c **** /* USER CODE END 0 */ 84:Src/usbd_desc.c **** 85:Src/usbd_desc.c **** /** @defgroup USBD_DESC_Private_Macros USBD_DESC_Private_Macros 86:Src/usbd_desc.c **** * @brief Private macros. ARM GAS /tmp/ccDO9gP0.s page 3 87:Src/usbd_desc.c **** * @{ 88:Src/usbd_desc.c **** */ 89:Src/usbd_desc.c **** 90:Src/usbd_desc.c **** /* USER CODE BEGIN PRIVATE_MACRO */ 91:Src/usbd_desc.c **** 92:Src/usbd_desc.c **** /* USER CODE END PRIVATE_MACRO */ 93:Src/usbd_desc.c **** 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 **** /** @defgroup USBD_DESC_Private_FunctionPrototypes USBD_DESC_Private_FunctionPrototypes 99:Src/usbd_desc.c **** * @brief Private functions declaration. 100:Src/usbd_desc.c **** * @{ 101:Src/usbd_desc.c **** */ 102:Src/usbd_desc.c **** 103:Src/usbd_desc.c **** static void Get_SerialNum(void); 104:Src/usbd_desc.c **** static void IntToUnicode(uint32_t value, uint8_t * pbuf, uint8_t len); 105:Src/usbd_desc.c **** 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 **** /** @defgroup USBD_DESC_Private_FunctionPrototypes USBD_DESC_Private_FunctionPrototypes 111:Src/usbd_desc.c **** * @brief Private functions declaration. 112:Src/usbd_desc.c **** * @{ 113:Src/usbd_desc.c **** */ 114:Src/usbd_desc.c **** 115:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); 116:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); 117:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); 118:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); 119:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); 120:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); 121:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); 122:Src/usbd_desc.c **** 123:Src/usbd_desc.c **** /** 124:Src/usbd_desc.c **** * @} 125:Src/usbd_desc.c **** */ 126:Src/usbd_desc.c **** 127:Src/usbd_desc.c **** /** @defgroup USBD_DESC_Private_Variables USBD_DESC_Private_Variables 128:Src/usbd_desc.c **** * @brief Private variables. 129:Src/usbd_desc.c **** * @{ 130:Src/usbd_desc.c **** */ 131:Src/usbd_desc.c **** 132:Src/usbd_desc.c **** USBD_DescriptorsTypeDef AUDIO_Desc = 133:Src/usbd_desc.c **** { 134:Src/usbd_desc.c **** USBD_AUDIO_DeviceDescriptor, 135:Src/usbd_desc.c **** USBD_AUDIO_LangIDStrDescriptor, 136:Src/usbd_desc.c **** USBD_AUDIO_ManufacturerStrDescriptor, 137:Src/usbd_desc.c **** USBD_AUDIO_ProductStrDescriptor, 138:Src/usbd_desc.c **** USBD_AUDIO_SerialStrDescriptor, 139:Src/usbd_desc.c **** USBD_AUDIO_ConfigStrDescriptor, 140:Src/usbd_desc.c **** USBD_AUDIO_InterfaceStrDescriptor 141:Src/usbd_desc.c **** }; 142:Src/usbd_desc.c **** 143:Src/usbd_desc.c **** #if defined ( __ICCARM__ ) /* IAR Compiler */ ARM GAS /tmp/ccDO9gP0.s page 4 144:Src/usbd_desc.c **** #pragma data_alignment=4 145:Src/usbd_desc.c **** #endif /* defined ( __ICCARM__ ) */ 146:Src/usbd_desc.c **** /** USB standard device descriptor. */ 147:Src/usbd_desc.c **** __ALIGN_BEGIN uint8_t USBD_AUDIO_DeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END = 148:Src/usbd_desc.c **** { 149:Src/usbd_desc.c **** 0x12, /*bLength */ 150:Src/usbd_desc.c **** USB_DESC_TYPE_DEVICE, /*bDescriptorType*/ 151:Src/usbd_desc.c **** 0x00, /*bcdUSB */ 152:Src/usbd_desc.c **** 0x02, 153:Src/usbd_desc.c **** 0x00, /*bDeviceClass*/ 154:Src/usbd_desc.c **** 0x00, /*bDeviceSubClass*/ 155:Src/usbd_desc.c **** 0x00, /*bDeviceProtocol*/ 156:Src/usbd_desc.c **** USB_MAX_EP0_SIZE, /*bMaxPacketSize*/ 157:Src/usbd_desc.c **** LOBYTE(USBD_VID), /*idVendor*/ 158:Src/usbd_desc.c **** HIBYTE(USBD_VID), /*idVendor*/ 159:Src/usbd_desc.c **** LOBYTE(USBD_PID), /*idProduct*/ 160:Src/usbd_desc.c **** HIBYTE(USBD_PID), /*idProduct*/ 161:Src/usbd_desc.c **** 0x00, /*bcdDevice rel. 2.00*/ 162:Src/usbd_desc.c **** 0x02, 163:Src/usbd_desc.c **** USBD_IDX_MFC_STR, /*Index of manufacturer string*/ 164:Src/usbd_desc.c **** USBD_IDX_PRODUCT_STR, /*Index of product string*/ 165:Src/usbd_desc.c **** USBD_IDX_SERIAL_STR, /*Index of serial number string*/ 166:Src/usbd_desc.c **** USBD_MAX_NUM_CONFIGURATION /*bNumConfigurations*/ 167:Src/usbd_desc.c **** }; 168:Src/usbd_desc.c **** 169:Src/usbd_desc.c **** /* USB_DeviceDescriptor */ 170:Src/usbd_desc.c **** 171:Src/usbd_desc.c **** /** 172:Src/usbd_desc.c **** * @} 173:Src/usbd_desc.c **** */ 174:Src/usbd_desc.c **** 175:Src/usbd_desc.c **** /** @defgroup USBD_DESC_Private_Variables USBD_DESC_Private_Variables 176:Src/usbd_desc.c **** * @brief Private variables. 177:Src/usbd_desc.c **** * @{ 178:Src/usbd_desc.c **** */ 179:Src/usbd_desc.c **** 180:Src/usbd_desc.c **** #if defined ( __ICCARM__ ) /* IAR Compiler */ 181:Src/usbd_desc.c **** #pragma data_alignment=4 182:Src/usbd_desc.c **** #endif /* defined ( __ICCARM__ ) */ 183:Src/usbd_desc.c **** 184:Src/usbd_desc.c **** /** USB lang identifier descriptor. */ 185:Src/usbd_desc.c **** __ALIGN_BEGIN uint8_t USBD_LangIDDesc[USB_LEN_LANGID_STR_DESC] __ALIGN_END = 186:Src/usbd_desc.c **** { 187:Src/usbd_desc.c **** USB_LEN_LANGID_STR_DESC, 188:Src/usbd_desc.c **** USB_DESC_TYPE_STRING, 189:Src/usbd_desc.c **** LOBYTE(USBD_LANGID_STRING), 190:Src/usbd_desc.c **** HIBYTE(USBD_LANGID_STRING) 191:Src/usbd_desc.c **** }; 192:Src/usbd_desc.c **** 193:Src/usbd_desc.c **** #if defined ( __ICCARM__ ) /* IAR Compiler */ 194:Src/usbd_desc.c **** #pragma data_alignment=4 195:Src/usbd_desc.c **** #endif /* defined ( __ICCARM__ ) */ 196:Src/usbd_desc.c **** /* Internal string descriptor. */ 197:Src/usbd_desc.c **** __ALIGN_BEGIN uint8_t USBD_StrDesc[USBD_MAX_STR_DESC_SIZ] __ALIGN_END; 198:Src/usbd_desc.c **** 199:Src/usbd_desc.c **** #if defined ( __ICCARM__ ) /*!< IAR Compiler */ 200:Src/usbd_desc.c **** #pragma data_alignment=4 ARM GAS /tmp/ccDO9gP0.s page 5 201:Src/usbd_desc.c **** #endif 202:Src/usbd_desc.c **** __ALIGN_BEGIN uint8_t USBD_StringSerial[USB_SIZ_STRING_SERIAL] __ALIGN_END = { 203:Src/usbd_desc.c **** USB_SIZ_STRING_SERIAL, 204:Src/usbd_desc.c **** USB_DESC_TYPE_STRING, 205:Src/usbd_desc.c **** }; 206:Src/usbd_desc.c **** 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 **** /** @defgroup USBD_DESC_Private_Functions USBD_DESC_Private_Functions 212:Src/usbd_desc.c **** * @brief Private functions. 213:Src/usbd_desc.c **** * @{ 214:Src/usbd_desc.c **** */ 215:Src/usbd_desc.c **** 216:Src/usbd_desc.c **** /** 217:Src/usbd_desc.c **** * @brief Return the device descriptor 218:Src/usbd_desc.c **** * @param speed : Current device speed 219:Src/usbd_desc.c **** * @param length : Pointer to data length variable 220:Src/usbd_desc.c **** * @retval Pointer to descriptor buffer 221:Src/usbd_desc.c **** */ 222:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) 223:Src/usbd_desc.c **** { 30 .loc 1 223 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. 224:Src/usbd_desc.c **** UNUSED(speed); 35 .loc 1 224 3 view .LVU1 225:Src/usbd_desc.c **** *length = sizeof(USBD_AUDIO_DeviceDesc); 36 .loc 1 225 3 view .LVU2 37 .loc 1 225 11 is_stmt 0 view .LVU3 38 0000 1223 movs r3, #18 39 0002 0B80 strh r3, [r1] @ movhi 226:Src/usbd_desc.c **** return USBD_AUDIO_DeviceDesc; 40 .loc 1 226 3 is_stmt 1 view .LVU4 227:Src/usbd_desc.c **** } 41 .loc 1 227 1 is_stmt 0 view .LVU5 42 0004 0048 ldr r0, .L2 43 .LVL1: 44 .loc 1 227 1 view .LVU6 45 0006 7047 bx lr 46 .L3: 47 .align 2 48 .L2: 49 0008 00000000 .word USBD_AUDIO_DeviceDesc 50 .cfi_endproc 51 .LFE333: 53 .section .text.USBD_AUDIO_LangIDStrDescriptor,"ax",%progbits 54 .align 1 55 .global USBD_AUDIO_LangIDStrDescriptor 56 .syntax unified 57 .thumb 58 .thumb_func 60 USBD_AUDIO_LangIDStrDescriptor: 61 .LVL2: ARM GAS /tmp/ccDO9gP0.s page 6 62 .LFB334: 228:Src/usbd_desc.c **** 229:Src/usbd_desc.c **** /** 230:Src/usbd_desc.c **** * @brief Return the LangID string descriptor 231:Src/usbd_desc.c **** * @param speed : Current device speed 232:Src/usbd_desc.c **** * @param length : Pointer to data length variable 233:Src/usbd_desc.c **** * @retval Pointer to descriptor buffer 234:Src/usbd_desc.c **** */ 235:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) 236:Src/usbd_desc.c **** { 63 .loc 1 236 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. 237:Src/usbd_desc.c **** UNUSED(speed); 68 .loc 1 237 3 view .LVU8 238:Src/usbd_desc.c **** *length = sizeof(USBD_LangIDDesc); 69 .loc 1 238 3 view .LVU9 70 .loc 1 238 11 is_stmt 0 view .LVU10 71 0000 0423 movs r3, #4 72 0002 0B80 strh r3, [r1] @ movhi 239:Src/usbd_desc.c **** return USBD_LangIDDesc; 73 .loc 1 239 3 is_stmt 1 view .LVU11 240:Src/usbd_desc.c **** } 74 .loc 1 240 1 is_stmt 0 view .LVU12 75 0004 0048 ldr r0, .L5 76 .LVL3: 77 .loc 1 240 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 .LFE334: 86 .section .text.IntToUnicode,"ax",%progbits 87 .align 1 88 .syntax unified 89 .thumb 90 .thumb_func 92 IntToUnicode: 93 .LVL4: 94 .LFB341: 241:Src/usbd_desc.c **** 242:Src/usbd_desc.c **** /** 243:Src/usbd_desc.c **** * @brief Return the product string descriptor 244:Src/usbd_desc.c **** * @param speed : Current device speed 245:Src/usbd_desc.c **** * @param length : Pointer to data length variable 246:Src/usbd_desc.c **** * @retval Pointer to descriptor buffer 247:Src/usbd_desc.c **** */ 248:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) 249:Src/usbd_desc.c **** { 250:Src/usbd_desc.c **** if(speed == 0) 251:Src/usbd_desc.c **** { 252:Src/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_PRODUCT_STRING, USBD_StrDesc, length); 253:Src/usbd_desc.c **** } ARM GAS /tmp/ccDO9gP0.s page 7 254:Src/usbd_desc.c **** else 255:Src/usbd_desc.c **** { 256:Src/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_PRODUCT_STRING, USBD_StrDesc, length); 257:Src/usbd_desc.c **** } 258:Src/usbd_desc.c **** return USBD_StrDesc; 259:Src/usbd_desc.c **** } 260:Src/usbd_desc.c **** 261:Src/usbd_desc.c **** /** 262:Src/usbd_desc.c **** * @brief Return the manufacturer string descriptor 263:Src/usbd_desc.c **** * @param speed : Current device speed 264:Src/usbd_desc.c **** * @param length : Pointer to data length variable 265:Src/usbd_desc.c **** * @retval Pointer to descriptor buffer 266:Src/usbd_desc.c **** */ 267:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) 268:Src/usbd_desc.c **** { 269:Src/usbd_desc.c **** UNUSED(speed); 270:Src/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_MANUFACTURER_STRING, USBD_StrDesc, length); 271:Src/usbd_desc.c **** return USBD_StrDesc; 272:Src/usbd_desc.c **** } 273:Src/usbd_desc.c **** 274:Src/usbd_desc.c **** /** 275:Src/usbd_desc.c **** * @brief Return the serial number string descriptor 276:Src/usbd_desc.c **** * @param speed : Current device speed 277:Src/usbd_desc.c **** * @param length : Pointer to data length variable 278:Src/usbd_desc.c **** * @retval Pointer to descriptor buffer 279:Src/usbd_desc.c **** */ 280:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) 281:Src/usbd_desc.c **** { 282:Src/usbd_desc.c **** UNUSED(speed); 283:Src/usbd_desc.c **** *length = USB_SIZ_STRING_SERIAL; 284:Src/usbd_desc.c **** 285:Src/usbd_desc.c **** /* Update the serial number string descriptor with the data from the unique 286:Src/usbd_desc.c **** * ID */ 287:Src/usbd_desc.c **** Get_SerialNum(); 288:Src/usbd_desc.c **** 289:Src/usbd_desc.c **** /* USER CODE BEGIN USBD_AUDIO_SerialStrDescriptor */ 290:Src/usbd_desc.c **** 291:Src/usbd_desc.c **** /* USER CODE END USBD_AUDIO_SerialStrDescriptor */ 292:Src/usbd_desc.c **** 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_AUDIO_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, 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, USBD_StrDesc, length); ARM GAS /tmp/ccDO9gP0.s page 8 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 **** */ 321:Src/usbd_desc.c **** uint8_t * USBD_AUDIO_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, 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, 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; 342:Src/usbd_desc.c **** uint32_t deviceserial1; 343:Src/usbd_desc.c **** uint32_t deviceserial2; 344:Src/usbd_desc.c **** 345:Src/usbd_desc.c **** deviceserial0 = *(uint32_t *) DEVICE_ID1; 346:Src/usbd_desc.c **** deviceserial1 = *(uint32_t *) DEVICE_ID2; 347:Src/usbd_desc.c **** deviceserial2 = *(uint32_t *) DEVICE_ID3; 348:Src/usbd_desc.c **** 349:Src/usbd_desc.c **** deviceserial0 += deviceserial2; 350:Src/usbd_desc.c **** 351:Src/usbd_desc.c **** if (deviceserial0 != 0) 352:Src/usbd_desc.c **** { 353:Src/usbd_desc.c **** IntToUnicode(deviceserial0, &USBD_StringSerial[2], 8); 354:Src/usbd_desc.c **** IntToUnicode(deviceserial1, &USBD_StringSerial[18], 4); 355:Src/usbd_desc.c **** } 356:Src/usbd_desc.c **** } 357:Src/usbd_desc.c **** 358:Src/usbd_desc.c **** /** 359:Src/usbd_desc.c **** * @brief Convert Hex 32Bits value into char 360:Src/usbd_desc.c **** * @param value: value to convert 361:Src/usbd_desc.c **** * @param pbuf: pointer to the buffer 362:Src/usbd_desc.c **** * @param len: buffer length 363:Src/usbd_desc.c **** * @retval None 364:Src/usbd_desc.c **** */ 365:Src/usbd_desc.c **** static void IntToUnicode(uint32_t value, uint8_t * pbuf, uint8_t len) 366:Src/usbd_desc.c **** { 95 .loc 1 366 1 is_stmt 1 view -0 ARM GAS /tmp/ccDO9gP0.s page 9 96 .cfi_startproc 97 @ args = 0, pretend = 0, frame = 0 98 @ frame_needed = 0, uses_anonymous_args = 0 367:Src/usbd_desc.c **** uint8_t idx = 0; 99 .loc 1 367 3 view .LVU15 368:Src/usbd_desc.c **** 369:Src/usbd_desc.c **** for (idx = 0; idx < len; idx++) 100 .loc 1 369 3 view .LVU16 101 .loc 1 369 12 is_stmt 0 view .LVU17 102 0000 0023 movs r3, #0 103 .LVL5: 104 .loc 1 369 21 is_stmt 1 view .LVU18 105 0002 9342 cmp r3, r2 106 0004 1ED2 bcs .L15 366:Src/usbd_desc.c **** uint8_t idx = 0; 107 .loc 1 366 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: 370:Src/usbd_desc.c **** { 371:Src/usbd_desc.c **** if (((value >> 28)) < 0xA) 372:Src/usbd_desc.c **** { 373:Src/usbd_desc.c **** pbuf[2 * idx] = (value >> 28) + '0'; 374:Src/usbd_desc.c **** } 375:Src/usbd_desc.c **** else 376:Src/usbd_desc.c **** { 377:Src/usbd_desc.c **** pbuf[2 * idx] = (value >> 28) + 'A' - 10; 114 .loc 1 377 7 is_stmt 1 view .LVU20 115 .loc 1 377 43 is_stmt 0 view .LVU21 116 000a 0CF1370C add ip, ip, #55 117 .loc 1 377 21 view .LVU22 118 000e 01F813C0 strb ip, [r1, r3, lsl #1] 119 .L10: 378:Src/usbd_desc.c **** } 379:Src/usbd_desc.c **** 380:Src/usbd_desc.c **** value = value << 4; 120 .loc 1 380 5 is_stmt 1 discriminator 2 view .LVU23 121 .loc 1 380 11 is_stmt 0 discriminator 2 view .LVU24 122 0012 0001 lsls r0, r0, #4 123 .LVL6: 381:Src/usbd_desc.c **** 382:Src/usbd_desc.c **** pbuf[2 * idx + 1] = 0; 124 .loc 1 382 5 is_stmt 1 discriminator 2 view .LVU25 125 .loc 1 382 12 is_stmt 0 discriminator 2 view .LVU26 126 0014 4FEA430C lsl ip, r3, #1 127 .loc 1 382 9 discriminator 2 view .LVU27 128 0018 0CF1010C add ip, ip, #1 129 .loc 1 382 23 discriminator 2 view .LVU28 130 001c 4FF0000E mov lr, #0 131 0020 01F80CE0 strb lr, [r1, ip] 369:Src/usbd_desc.c **** { 132 .loc 1 369 31 is_stmt 1 discriminator 2 view .LVU29 133 0024 0133 adds r3, r3, #1 134 .LVL7: ARM GAS /tmp/ccDO9gP0.s page 10 369:Src/usbd_desc.c **** { 135 .loc 1 369 31 is_stmt 0 discriminator 2 view .LVU30 136 0026 DBB2 uxtb r3, r3 137 .LVL8: 369:Src/usbd_desc.c **** { 138 .loc 1 369 21 is_stmt 1 discriminator 2 view .LVU31 139 0028 9342 cmp r3, r2 140 002a 09D2 bcs .L16 141 .L11: 371:Src/usbd_desc.c **** { 142 .loc 1 371 5 view .LVU32 371:Src/usbd_desc.c **** { 143 .loc 1 371 17 is_stmt 0 view .LVU33 144 002c 4FEA107C lsr ip, r0, #28 371:Src/usbd_desc.c **** { 145 .loc 1 371 8 view .LVU34 146 0030 B0F1204F cmp r0, #-1610612736 147 0034 E9D2 bcs .L9 373:Src/usbd_desc.c **** } 148 .loc 1 373 7 is_stmt 1 view .LVU35 373:Src/usbd_desc.c **** } 149 .loc 1 373 37 is_stmt 0 view .LVU36 150 0036 0CF1300C add ip, ip, #48 373:Src/usbd_desc.c **** } 151 .loc 1 373 21 view .LVU37 152 003a 01F813C0 strb ip, [r1, r3, lsl #1] 153 003e E8E7 b .L10 154 .L16: 383:Src/usbd_desc.c **** } 384:Src/usbd_desc.c **** } 155 .loc 1 384 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 384 1 view .LVU39 162 0044 7047 bx lr 163 .cfi_endproc 164 .LFE341: 166 .section .text.Get_SerialNum,"ax",%progbits 167 .align 1 168 .syntax unified 169 .thumb 170 .thumb_func 172 Get_SerialNum: 173 .LFB340: 340:Src/usbd_desc.c **** uint32_t deviceserial0; 174 .loc 1 340 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 ARM GAS /tmp/ccDO9gP0.s page 11 183 .cfi_offset 5, -8 184 .cfi_offset 14, -4 341:Src/usbd_desc.c **** uint32_t deviceserial1; 185 .loc 1 341 3 view .LVU41 342:Src/usbd_desc.c **** uint32_t deviceserial2; 186 .loc 1 342 3 view .LVU42 343:Src/usbd_desc.c **** 187 .loc 1 343 3 view .LVU43 345:Src/usbd_desc.c **** deviceserial1 = *(uint32_t *) DEVICE_ID2; 188 .loc 1 345 3 view .LVU44 345:Src/usbd_desc.c **** deviceserial1 = *(uint32_t *) DEVICE_ID2; 189 .loc 1 345 17 is_stmt 0 view .LVU45 190 0002 0B4B ldr r3, .L21 191 0004 D3F89005 ldr r0, [r3, #1424] 192 .LVL9: 346:Src/usbd_desc.c **** deviceserial2 = *(uint32_t *) DEVICE_ID3; 193 .loc 1 346 3 is_stmt 1 view .LVU46 346:Src/usbd_desc.c **** deviceserial2 = *(uint32_t *) DEVICE_ID3; 194 .loc 1 346 17 is_stmt 0 view .LVU47 195 0008 D3F89445 ldr r4, [r3, #1428] 196 .LVL10: 347:Src/usbd_desc.c **** 197 .loc 1 347 3 is_stmt 1 view .LVU48 347:Src/usbd_desc.c **** 198 .loc 1 347 17 is_stmt 0 view .LVU49 199 000c D3F89835 ldr r3, [r3, #1432] 200 .LVL11: 349:Src/usbd_desc.c **** 201 .loc 1 349 3 is_stmt 1 view .LVU50 351:Src/usbd_desc.c **** { 202 .loc 1 351 3 view .LVU51 351:Src/usbd_desc.c **** { 203 .loc 1 351 6 is_stmt 0 view .LVU52 204 0010 C018 adds r0, r0, r3 205 .LVL12: 351:Src/usbd_desc.c **** { 206 .loc 1 351 6 view .LVU53 207 0012 00D1 bne .L20 208 .LVL13: 209 .L17: 356:Src/usbd_desc.c **** 210 .loc 1 356 1 view .LVU54 211 0014 38BD pop {r3, r4, r5, pc} 212 .LVL14: 213 .L20: 353:Src/usbd_desc.c **** IntToUnicode(deviceserial1, &USBD_StringSerial[18], 4); 214 .loc 1 353 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: 354:Src/usbd_desc.c **** } 220 .loc 1 354 5 view .LVU56 221 0020 0422 movs r2, #4 222 0022 05F11001 add r1, r5, #16 223 0026 2046 mov r0, r4 ARM GAS /tmp/ccDO9gP0.s page 12 224 0028 FFF7FEFF bl IntToUnicode 225 .LVL16: 356:Src/usbd_desc.c **** 226 .loc 1 356 1 is_stmt 0 view .LVU57 227 002c F2E7 b .L17 228 .L22: 229 002e 00BF .align 2 230 .L21: 231 0030 0070FF1F .word 536834048 232 0034 02000000 .word USBD_StringSerial+2 233 .cfi_endproc 234 .LFE340: 236 .section .text.USBD_AUDIO_SerialStrDescriptor,"ax",%progbits 237 .align 1 238 .global USBD_AUDIO_SerialStrDescriptor 239 .syntax unified 240 .thumb 241 .thumb_func 243 USBD_AUDIO_SerialStrDescriptor: 244 .LVL17: 245 .LFB337: 281:Src/usbd_desc.c **** UNUSED(speed); 246 .loc 1 281 1 is_stmt 1 view -0 247 .cfi_startproc 248 @ args = 0, pretend = 0, frame = 0 249 @ frame_needed = 0, uses_anonymous_args = 0 281:Src/usbd_desc.c **** UNUSED(speed); 250 .loc 1 281 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 282:Src/usbd_desc.c **** *length = USB_SIZ_STRING_SERIAL; 256 .loc 1 282 3 is_stmt 1 view .LVU60 283:Src/usbd_desc.c **** 257 .loc 1 283 3 view .LVU61 283:Src/usbd_desc.c **** 258 .loc 1 283 11 is_stmt 0 view .LVU62 259 0002 1A23 movs r3, #26 260 0004 0B80 strh r3, [r1] @ movhi 287:Src/usbd_desc.c **** 261 .loc 1 287 3 is_stmt 1 view .LVU63 262 0006 FFF7FEFF bl Get_SerialNum 263 .LVL18: 293:Src/usbd_desc.c **** } 264 .loc 1 293 3 view .LVU64 294:Src/usbd_desc.c **** 265 .loc 1 294 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 .LFE337: ARM GAS /tmp/ccDO9gP0.s page 13 275 .section .rodata.USBD_AUDIO_ProductStrDescriptor.str1.4,"aMS",%progbits,1 276 .align 2 277 .LC0: 278 0000 53544D33 .ascii "STM32 Audio Class\000" 278 32204175 278 64696F20 278 436C6173 278 7300 279 .section .text.USBD_AUDIO_ProductStrDescriptor,"ax",%progbits 280 .align 1 281 .global USBD_AUDIO_ProductStrDescriptor 282 .syntax unified 283 .thumb 284 .thumb_func 286 USBD_AUDIO_ProductStrDescriptor: 287 .LVL19: 288 .LFB335: 249:Src/usbd_desc.c **** if(speed == 0) 289 .loc 1 249 1 is_stmt 1 view -0 290 .cfi_startproc 291 @ args = 0, pretend = 0, frame = 0 292 @ frame_needed = 0, uses_anonymous_args = 0 249:Src/usbd_desc.c **** if(speed == 0) 293 .loc 1 249 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 250:Src/usbd_desc.c **** { 300 .loc 1 250 3 is_stmt 1 view .LVU68 250:Src/usbd_desc.c **** { 301 .loc 1 250 5 is_stmt 0 view .LVU69 302 0004 28B9 cbnz r0, .L28 252:Src/usbd_desc.c **** } 303 .loc 1 252 5 is_stmt 1 view .LVU70 304 0006 0549 ldr r1, .L31 305 .LVL20: 252:Src/usbd_desc.c **** } 306 .loc 1 252 5 is_stmt 0 view .LVU71 307 0008 0548 ldr r0, .L31+4 308 .LVL21: 252:Src/usbd_desc.c **** } 309 .loc 1 252 5 view .LVU72 310 000a FFF7FEFF bl USBD_GetString 311 .LVL22: 312 .L29: 258:Src/usbd_desc.c **** } 313 .loc 1 258 3 is_stmt 1 view .LVU73 259:Src/usbd_desc.c **** 314 .loc 1 259 1 is_stmt 0 view .LVU74 315 000e 0348 ldr r0, .L31 316 0010 08BD pop {r3, pc} 317 .LVL23: 318 .L28: 256:Src/usbd_desc.c **** } ARM GAS /tmp/ccDO9gP0.s page 14 319 .loc 1 256 5 is_stmt 1 view .LVU75 320 0012 0249 ldr r1, .L31 321 .LVL24: 256:Src/usbd_desc.c **** } 322 .loc 1 256 5 is_stmt 0 view .LVU76 323 0014 0248 ldr r0, .L31+4 324 .LVL25: 256:Src/usbd_desc.c **** } 325 .loc 1 256 5 view .LVU77 326 0016 FFF7FEFF bl USBD_GetString 327 .LVL26: 256:Src/usbd_desc.c **** } 328 .loc 1 256 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 .LFE335: 338 .section .rodata.USBD_AUDIO_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_AUDIO_ManufacturerStrDescriptor,"ax",%progbits 343 .align 1 344 .global USBD_AUDIO_ManufacturerStrDescriptor 345 .syntax unified 346 .thumb 347 .thumb_func 349 USBD_AUDIO_ManufacturerStrDescriptor: 350 .LVL27: 351 .LFB336: 268:Src/usbd_desc.c **** UNUSED(speed); 352 .loc 1 268 1 is_stmt 1 view -0 353 .cfi_startproc 354 @ args = 0, pretend = 0, frame = 0 355 @ frame_needed = 0, uses_anonymous_args = 0 268:Src/usbd_desc.c **** UNUSED(speed); 356 .loc 1 268 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 269:Src/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_MANUFACTURER_STRING, USBD_StrDesc, length); 363 .loc 1 269 3 is_stmt 1 view .LVU81 270:Src/usbd_desc.c **** return USBD_StrDesc; 364 .loc 1 270 3 view .LVU82 365 0004 034C ldr r4, .L35 366 0006 2146 mov r1, r4 ARM GAS /tmp/ccDO9gP0.s page 15 367 .LVL28: 270:Src/usbd_desc.c **** return USBD_StrDesc; 368 .loc 1 270 3 is_stmt 0 view .LVU83 369 0008 0348 ldr r0, .L35+4 370 .LVL29: 270:Src/usbd_desc.c **** return USBD_StrDesc; 371 .loc 1 270 3 view .LVU84 372 000a FFF7FEFF bl USBD_GetString 373 .LVL30: 271:Src/usbd_desc.c **** } 374 .loc 1 271 3 is_stmt 1 view .LVU85 272:Src/usbd_desc.c **** 375 .loc 1 272 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 .LFE336: 386 .section .rodata.USBD_AUDIO_ConfigStrDescriptor.str1.4,"aMS",%progbits,1 387 .align 2 388 .LC2: 389 0000 41554449 .ascii "AUDIO Config\000" 389 4F20436F 389 6E666967 389 00 390 .section .text.USBD_AUDIO_ConfigStrDescriptor,"ax",%progbits 391 .align 1 392 .global USBD_AUDIO_ConfigStrDescriptor 393 .syntax unified 394 .thumb 395 .thumb_func 397 USBD_AUDIO_ConfigStrDescriptor: 398 .LVL31: 399 .LFB338: 303:Src/usbd_desc.c **** if(speed == USBD_SPEED_HIGH) 400 .loc 1 303 1 is_stmt 1 view -0 401 .cfi_startproc 402 @ args = 0, pretend = 0, frame = 0 403 @ frame_needed = 0, uses_anonymous_args = 0 303:Src/usbd_desc.c **** if(speed == USBD_SPEED_HIGH) 404 .loc 1 303 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 304:Src/usbd_desc.c **** { 411 .loc 1 304 3 is_stmt 1 view .LVU89 304:Src/usbd_desc.c **** { 412 .loc 1 304 5 is_stmt 0 view .LVU90 413 0004 28B9 cbnz r0, .L38 306:Src/usbd_desc.c **** } ARM GAS /tmp/ccDO9gP0.s page 16 414 .loc 1 306 5 is_stmt 1 view .LVU91 415 0006 0549 ldr r1, .L41 416 .LVL32: 306:Src/usbd_desc.c **** } 417 .loc 1 306 5 is_stmt 0 view .LVU92 418 0008 0548 ldr r0, .L41+4 419 .LVL33: 306:Src/usbd_desc.c **** } 420 .loc 1 306 5 view .LVU93 421 000a FFF7FEFF bl USBD_GetString 422 .LVL34: 423 .L39: 312:Src/usbd_desc.c **** } 424 .loc 1 312 3 is_stmt 1 view .LVU94 313:Src/usbd_desc.c **** 425 .loc 1 313 1 is_stmt 0 view .LVU95 426 000e 0348 ldr r0, .L41 427 0010 08BD pop {r3, pc} 428 .LVL35: 429 .L38: 310:Src/usbd_desc.c **** } 430 .loc 1 310 5 is_stmt 1 view .LVU96 431 0012 0249 ldr r1, .L41 432 .LVL36: 310:Src/usbd_desc.c **** } 433 .loc 1 310 5 is_stmt 0 view .LVU97 434 0014 0248 ldr r0, .L41+4 435 .LVL37: 310:Src/usbd_desc.c **** } 436 .loc 1 310 5 view .LVU98 437 0016 FFF7FEFF bl USBD_GetString 438 .LVL38: 310:Src/usbd_desc.c **** } 439 .loc 1 310 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 .LFE338: 449 .section .rodata.USBD_AUDIO_InterfaceStrDescriptor.str1.4,"aMS",%progbits,1 450 .align 2 451 .LC3: 452 0000 41554449 .ascii "AUDIO Interface\000" 452 4F20496E 452 74657266 452 61636500 453 .section .text.USBD_AUDIO_InterfaceStrDescriptor,"ax",%progbits 454 .align 1 455 .global USBD_AUDIO_InterfaceStrDescriptor 456 .syntax unified 457 .thumb 458 .thumb_func 460 USBD_AUDIO_InterfaceStrDescriptor: 461 .LVL39: ARM GAS /tmp/ccDO9gP0.s page 17 462 .LFB339: 322:Src/usbd_desc.c **** if(speed == 0) 463 .loc 1 322 1 is_stmt 1 view -0 464 .cfi_startproc 465 @ args = 0, pretend = 0, frame = 0 466 @ frame_needed = 0, uses_anonymous_args = 0 322:Src/usbd_desc.c **** if(speed == 0) 467 .loc 1 322 1 is_stmt 0 view .LVU101 468 0000 08B5 push {r3, lr} 469 .LCFI7: 470 .cfi_def_cfa_offset 8 471 .cfi_offset 3, -8 472 .cfi_offset 14, -4 473 0002 0A46 mov r2, r1 323:Src/usbd_desc.c **** { 474 .loc 1 323 3 is_stmt 1 view .LVU102 323:Src/usbd_desc.c **** { 475 .loc 1 323 5 is_stmt 0 view .LVU103 476 0004 28B9 cbnz r0, .L44 325:Src/usbd_desc.c **** } 477 .loc 1 325 5 is_stmt 1 view .LVU104 478 0006 0549 ldr r1, .L47 479 .LVL40: 325:Src/usbd_desc.c **** } 480 .loc 1 325 5 is_stmt 0 view .LVU105 481 0008 0548 ldr r0, .L47+4 482 .LVL41: 325:Src/usbd_desc.c **** } 483 .loc 1 325 5 view .LVU106 484 000a FFF7FEFF bl USBD_GetString 485 .LVL42: 486 .L45: 331:Src/usbd_desc.c **** } 487 .loc 1 331 3 is_stmt 1 view .LVU107 332:Src/usbd_desc.c **** 488 .loc 1 332 1 is_stmt 0 view .LVU108 489 000e 0348 ldr r0, .L47 490 0010 08BD pop {r3, pc} 491 .LVL43: 492 .L44: 329:Src/usbd_desc.c **** } 493 .loc 1 329 5 is_stmt 1 view .LVU109 494 0012 0249 ldr r1, .L47 495 .LVL44: 329:Src/usbd_desc.c **** } 496 .loc 1 329 5 is_stmt 0 view .LVU110 497 0014 0248 ldr r0, .L47+4 498 .LVL45: 329:Src/usbd_desc.c **** } 499 .loc 1 329 5 view .LVU111 500 0016 FFF7FEFF bl USBD_GetString 501 .LVL46: 329:Src/usbd_desc.c **** } 502 .loc 1 329 5 view .LVU112 503 001a F8E7 b .L45 504 .L48: 505 .align 2 ARM GAS /tmp/ccDO9gP0.s page 18 506 .L47: 507 001c 00000000 .word USBD_StrDesc 508 0020 00000000 .word .LC3 509 .cfi_endproc 510 .LFE339: 512 .global USBD_StringSerial 513 .section .data.USBD_StringSerial,"aw" 514 .align 2 517 USBD_StringSerial: 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_AUDIO_DeviceDesc 535 .section .data.USBD_AUDIO_DeviceDesc,"aw" 536 .align 2 539 USBD_AUDIO_DeviceDesc: 540 0000 12010002 .ascii "\022\001\000\002\000\000\000@\203\004@W\000\002\001" 540 00000040 540 83044057 540 000201 541 000f 020301 .ascii "\002\003\001" 542 .global AUDIO_Desc 543 .section .data.AUDIO_Desc,"aw" 544 .align 2 547 AUDIO_Desc: 548 0000 00000000 .word USBD_AUDIO_DeviceDescriptor 549 0004 00000000 .word USBD_AUDIO_LangIDStrDescriptor 550 0008 00000000 .word USBD_AUDIO_ManufacturerStrDescriptor 551 000c 00000000 .word USBD_AUDIO_ProductStrDescriptor 552 0010 00000000 .word USBD_AUDIO_SerialStrDescriptor 553 0014 00000000 .word USBD_AUDIO_ConfigStrDescriptor 554 0018 00000000 .word USBD_AUDIO_InterfaceStrDescriptor 555 001c 00000000 .space 4 556 .text 557 .Letext0: 558 .file 2 "/usr/include/newlib/machine/_default_types.h" 559 .file 3 "/usr/include/newlib/sys/_stdint.h" 560 .file 4 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h" 561 .file 5 "Inc/usbd_desc.h" 562 .file 6 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h" ARM GAS /tmp/ccDO9gP0.s page 19 ARM GAS /tmp/ccDO9gP0.s page 20 DEFINED SYMBOLS *ABS*:00000000 usbd_desc.c /tmp/ccDO9gP0.s:21 .text.USBD_AUDIO_DeviceDescriptor:00000000 $t /tmp/ccDO9gP0.s:27 .text.USBD_AUDIO_DeviceDescriptor:00000000 USBD_AUDIO_DeviceDescriptor /tmp/ccDO9gP0.s:49 .text.USBD_AUDIO_DeviceDescriptor:00000008 $d /tmp/ccDO9gP0.s:539 .data.USBD_AUDIO_DeviceDesc:00000000 USBD_AUDIO_DeviceDesc /tmp/ccDO9gP0.s:54 .text.USBD_AUDIO_LangIDStrDescriptor:00000000 $t /tmp/ccDO9gP0.s:60 .text.USBD_AUDIO_LangIDStrDescriptor:00000000 USBD_AUDIO_LangIDStrDescriptor /tmp/ccDO9gP0.s:82 .text.USBD_AUDIO_LangIDStrDescriptor:00000008 $d /tmp/ccDO9gP0.s:532 .data.USBD_LangIDDesc:00000000 USBD_LangIDDesc /tmp/ccDO9gP0.s:87 .text.IntToUnicode:00000000 $t /tmp/ccDO9gP0.s:92 .text.IntToUnicode:00000000 IntToUnicode /tmp/ccDO9gP0.s:167 .text.Get_SerialNum:00000000 $t /tmp/ccDO9gP0.s:172 .text.Get_SerialNum:00000000 Get_SerialNum /tmp/ccDO9gP0.s:231 .text.Get_SerialNum:00000030 $d /tmp/ccDO9gP0.s:517 .data.USBD_StringSerial:00000000 USBD_StringSerial /tmp/ccDO9gP0.s:237 .text.USBD_AUDIO_SerialStrDescriptor:00000000 $t /tmp/ccDO9gP0.s:243 .text.USBD_AUDIO_SerialStrDescriptor:00000000 USBD_AUDIO_SerialStrDescriptor /tmp/ccDO9gP0.s:271 .text.USBD_AUDIO_SerialStrDescriptor:00000010 $d /tmp/ccDO9gP0.s:276 .rodata.USBD_AUDIO_ProductStrDescriptor.str1.4:00000000 $d /tmp/ccDO9gP0.s:280 .text.USBD_AUDIO_ProductStrDescriptor:00000000 $t /tmp/ccDO9gP0.s:286 .text.USBD_AUDIO_ProductStrDescriptor:00000000 USBD_AUDIO_ProductStrDescriptor /tmp/ccDO9gP0.s:333 .text.USBD_AUDIO_ProductStrDescriptor:0000001c $d /tmp/ccDO9gP0.s:525 .bss.USBD_StrDesc:00000000 USBD_StrDesc /tmp/ccDO9gP0.s:339 .rodata.USBD_AUDIO_ManufacturerStrDescriptor.str1.4:00000000 $d /tmp/ccDO9gP0.s:343 .text.USBD_AUDIO_ManufacturerStrDescriptor:00000000 $t /tmp/ccDO9gP0.s:349 .text.USBD_AUDIO_ManufacturerStrDescriptor:00000000 USBD_AUDIO_ManufacturerStrDescriptor /tmp/ccDO9gP0.s:381 .text.USBD_AUDIO_ManufacturerStrDescriptor:00000014 $d /tmp/ccDO9gP0.s:387 .rodata.USBD_AUDIO_ConfigStrDescriptor.str1.4:00000000 $d /tmp/ccDO9gP0.s:391 .text.USBD_AUDIO_ConfigStrDescriptor:00000000 $t /tmp/ccDO9gP0.s:397 .text.USBD_AUDIO_ConfigStrDescriptor:00000000 USBD_AUDIO_ConfigStrDescriptor /tmp/ccDO9gP0.s:444 .text.USBD_AUDIO_ConfigStrDescriptor:0000001c $d /tmp/ccDO9gP0.s:450 .rodata.USBD_AUDIO_InterfaceStrDescriptor.str1.4:00000000 $d /tmp/ccDO9gP0.s:454 .text.USBD_AUDIO_InterfaceStrDescriptor:00000000 $t /tmp/ccDO9gP0.s:460 .text.USBD_AUDIO_InterfaceStrDescriptor:00000000 USBD_AUDIO_InterfaceStrDescriptor /tmp/ccDO9gP0.s:507 .text.USBD_AUDIO_InterfaceStrDescriptor:0000001c $d /tmp/ccDO9gP0.s:514 .data.USBD_StringSerial:00000000 $d /tmp/ccDO9gP0.s:522 .bss.USBD_StrDesc:00000000 $d /tmp/ccDO9gP0.s:529 .data.USBD_LangIDDesc:00000000 $d /tmp/ccDO9gP0.s:536 .data.USBD_AUDIO_DeviceDesc:00000000 $d /tmp/ccDO9gP0.s:547 .data.AUDIO_Desc:00000000 AUDIO_Desc /tmp/ccDO9gP0.s:544 .data.AUDIO_Desc:00000000 $d UNDEFINED SYMBOLS USBD_GetString