diff options
Diffstat (limited to 'cdc-dials/build/usbd_desc.lst')
-rw-r--r-- | cdc-dials/build/usbd_desc.lst | 868 |
1 files changed, 0 insertions, 868 deletions
diff --git a/cdc-dials/build/usbd_desc.lst b/cdc-dials/build/usbd_desc.lst deleted file mode 100644 index 8b8add8..0000000 --- a/cdc-dials/build/usbd_desc.lst +++ /dev/null @@ -1,868 +0,0 @@ -ARM GAS /tmp/cck6myrA.s page 1 - - - 1 .cpu cortex-m0 - 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, 0 - 10 .eabi_attribute 18, 4 - 11 .file "usbd_desc.c" - 12 .text - 13 .Ltext0: - 14 .cfi_sections .debug_frame - 15 .section .text.USBD_VCP_DeviceDescriptor,"ax",%progbits - 16 .align 1 - 17 .global USBD_VCP_DeviceDescriptor - 18 .syntax unified - 19 .code 16 - 20 .thumb_func - 21 .fpu softvfp - 23 USBD_VCP_DeviceDescriptor: - 24 .LFB43: - 25 .file 1 "Src/usbd_desc.c" - 1:Src/usbd_desc.c **** /** - 2:Src/usbd_desc.c **** ****************************************************************************** - 3:Src/usbd_desc.c **** * @file USB_Device/CDC_Standalone/Src/usbd_desc.c - 4:Src/usbd_desc.c **** * @author MCD Application Team - 5:Src/usbd_desc.c **** * @brief This file provides the USBD descriptors and string formating method. - 6:Src/usbd_desc.c **** ****************************************************************************** - 7:Src/usbd_desc.c **** * @attention - 8:Src/usbd_desc.c **** * - 9:Src/usbd_desc.c **** * <h2><center>© Copyright (c) 2016 STMicroelectronics International N.V. - 10:Src/usbd_desc.c **** * All rights reserved.</center></h2> - 11:Src/usbd_desc.c **** * - 12:Src/usbd_desc.c **** * Redistribution and use in source and binary forms, with or without - 13:Src/usbd_desc.c **** * modification, are permitted, provided that the following conditions are met: - 14:Src/usbd_desc.c **** * - 15:Src/usbd_desc.c **** * 1. Redistribution of source code must retain the above copyright notice, - 16:Src/usbd_desc.c **** * this list of conditions and the following disclaimer. - 17:Src/usbd_desc.c **** * 2. Redistributions in binary form must reproduce the above copyright notice, - 18:Src/usbd_desc.c **** * this list of conditions and the following disclaimer in the documentation - 19:Src/usbd_desc.c **** * and/or other materials provided with the distribution. - 20:Src/usbd_desc.c **** * 3. Neither the name of STMicroelectronics nor the names of other - 21:Src/usbd_desc.c **** * contributors to this software may be used to endorse or promote products - 22:Src/usbd_desc.c **** * derived from this software without specific written permission. - 23:Src/usbd_desc.c **** * 4. This software, including modifications and/or derivative works of this - 24:Src/usbd_desc.c **** * software, must execute solely and exclusively on microcontroller or - 25:Src/usbd_desc.c **** * microprocessor devices manufactured by or for STMicroelectronics. - 26:Src/usbd_desc.c **** * 5. Redistribution and use of this software other than as permitted under - 27:Src/usbd_desc.c **** * this license is void and will automatically terminate your rights under - 28:Src/usbd_desc.c **** * this license. - 29:Src/usbd_desc.c **** * - 30:Src/usbd_desc.c **** * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS" - 31:Src/usbd_desc.c **** * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT - 32:Src/usbd_desc.c **** * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A - 33:Src/usbd_desc.c **** * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY -ARM GAS /tmp/cck6myrA.s page 2 - - - 34:Src/usbd_desc.c **** * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT - 35:Src/usbd_desc.c **** * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - 36:Src/usbd_desc.c **** * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - 37:Src/usbd_desc.c **** * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - 38:Src/usbd_desc.c **** * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - 39:Src/usbd_desc.c **** * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - 40:Src/usbd_desc.c **** * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, - 41:Src/usbd_desc.c **** * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - 42:Src/usbd_desc.c **** * - 43:Src/usbd_desc.c **** ****************************************************************************** - 44:Src/usbd_desc.c **** */ - 45:Src/usbd_desc.c **** - 46:Src/usbd_desc.c **** /* Includes ------------------------------------------------------------------*/ - 47:Src/usbd_desc.c **** #include "usbd_core.h" - 48:Src/usbd_desc.c **** #include "usbd_desc.h" - 49:Src/usbd_desc.c **** #include "usbd_conf.h" - 50:Src/usbd_desc.c **** - 51:Src/usbd_desc.c **** /* Private typedef -----------------------------------------------------------*/ - 52:Src/usbd_desc.c **** /* Private define ------------------------------------------------------------*/ - 53:Src/usbd_desc.c **** #define USBD_VID 0x0483 - 54:Src/usbd_desc.c **** #define USBD_PID 0x5740 - 55:Src/usbd_desc.c **** #define USBD_LANGID_STRING 0x409 - 56:Src/usbd_desc.c **** #define USBD_MANUFACTURER_STRING "Otter-Iron" - 57:Src/usbd_desc.c **** #define USBD_PRODUCT_FS_STRING "chirp :3" - 58:Src/usbd_desc.c **** #define USBD_CONFIGURATION_FS_STRING "mau" - 59:Src/usbd_desc.c **** #define USBD_INTERFACE_FS_STRING ":o" - 60:Src/usbd_desc.c **** - 61:Src/usbd_desc.c **** /* Private macro -------------------------------------------------------------*/ - 62:Src/usbd_desc.c **** /* Private function prototypes -----------------------------------------------*/ - 63:Src/usbd_desc.c **** uint8_t *USBD_VCP_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); - 64:Src/usbd_desc.c **** uint8_t *USBD_VCP_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); - 65:Src/usbd_desc.c **** uint8_t *USBD_VCP_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); - 66:Src/usbd_desc.c **** uint8_t *USBD_VCP_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); - 67:Src/usbd_desc.c **** uint8_t *USBD_VCP_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); - 68:Src/usbd_desc.c **** uint8_t *USBD_VCP_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); - 69:Src/usbd_desc.c **** uint8_t *USBD_VCP_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length); - 70:Src/usbd_desc.c **** #ifdef USB_SUPPORT_USER_STRING_DESC - 71:Src/usbd_desc.c **** uint8_t *USBD_VCP_USRStringDesc (USBD_SpeedTypeDef speed, uint8_t idx, uint16_t *length); - 72:Src/usbd_desc.c **** #endif /* USB_SUPPORT_USER_STRING_DESC */ - 73:Src/usbd_desc.c **** - 74:Src/usbd_desc.c **** /* Private variables ---------------------------------------------------------*/ - 75:Src/usbd_desc.c **** USBD_DescriptorsTypeDef VCP_Desc = { - 76:Src/usbd_desc.c **** USBD_VCP_DeviceDescriptor, - 77:Src/usbd_desc.c **** USBD_VCP_LangIDStrDescriptor, - 78:Src/usbd_desc.c **** USBD_VCP_ManufacturerStrDescriptor, - 79:Src/usbd_desc.c **** USBD_VCP_ProductStrDescriptor, - 80:Src/usbd_desc.c **** USBD_VCP_SerialStrDescriptor, - 81:Src/usbd_desc.c **** USBD_VCP_ConfigStrDescriptor, - 82:Src/usbd_desc.c **** USBD_VCP_InterfaceStrDescriptor, - 83:Src/usbd_desc.c **** }; - 84:Src/usbd_desc.c **** - 85:Src/usbd_desc.c **** /* USB Standard Device Descriptor */ - 86:Src/usbd_desc.c **** const uint8_t hUSBDDeviceDesc[USB_LEN_DEV_DESC]= { - 87:Src/usbd_desc.c **** 0x12, /* bLength */ - 88:Src/usbd_desc.c **** USB_DESC_TYPE_DEVICE, /* bDescriptorType */ - 89:Src/usbd_desc.c **** 0x00, /* bcdUSB */ - 90:Src/usbd_desc.c **** 0x02, -ARM GAS /tmp/cck6myrA.s page 3 - - - 91:Src/usbd_desc.c **** 0x00, /* bDeviceClass */ - 92:Src/usbd_desc.c **** 0x00, /* bDeviceSubClass */ - 93:Src/usbd_desc.c **** 0x00, /* bDeviceProtocol */ - 94:Src/usbd_desc.c **** USB_MAX_EP0_SIZE, /* bMaxPacketSize */ - 95:Src/usbd_desc.c **** LOBYTE(USBD_VID), /* idVendor */ - 96:Src/usbd_desc.c **** HIBYTE(USBD_VID), /* idVendor */ - 97:Src/usbd_desc.c **** LOBYTE(USBD_PID), /* idVendor */ - 98:Src/usbd_desc.c **** HIBYTE(USBD_PID), /* idVendor */ - 99:Src/usbd_desc.c **** 0x00, /* bcdDevice rel. 2.00 */ - 100:Src/usbd_desc.c **** 0x02, - 101:Src/usbd_desc.c **** USBD_IDX_MFC_STR, /* Index of manufacturer string */ - 102:Src/usbd_desc.c **** USBD_IDX_PRODUCT_STR, /* Index of product string */ - 103:Src/usbd_desc.c **** USBD_IDX_SERIAL_STR, /* Index of serial number string */ - 104:Src/usbd_desc.c **** USBD_MAX_NUM_CONFIGURATION /* bNumConfigurations */ - 105:Src/usbd_desc.c **** }; /* USB_DeviceDescriptor */ - 106:Src/usbd_desc.c **** - 107:Src/usbd_desc.c **** /* USB Standard Device Descriptor */ - 108:Src/usbd_desc.c **** const uint8_t USBD_LangIDDesc[USB_LEN_LANGID_STR_DESC]= - 109:Src/usbd_desc.c **** { - 110:Src/usbd_desc.c **** USB_LEN_LANGID_STR_DESC, - 111:Src/usbd_desc.c **** USB_DESC_TYPE_STRING, - 112:Src/usbd_desc.c **** LOBYTE(USBD_LANGID_STRING), - 113:Src/usbd_desc.c **** HIBYTE(USBD_LANGID_STRING), - 114:Src/usbd_desc.c **** }; - 115:Src/usbd_desc.c **** - 116:Src/usbd_desc.c **** uint8_t USBD_StringSerial[USB_SIZ_STRING_SERIAL] = - 117:Src/usbd_desc.c **** { - 118:Src/usbd_desc.c **** USB_SIZ_STRING_SERIAL, - 119:Src/usbd_desc.c **** USB_DESC_TYPE_STRING, - 120:Src/usbd_desc.c **** }; - 121:Src/usbd_desc.c **** - 122:Src/usbd_desc.c **** uint8_t USBD_StrDesc[USBD_MAX_STR_DESC_SIZ]; - 123:Src/usbd_desc.c **** - 124:Src/usbd_desc.c **** /* Private functions ---------------------------------------------------------*/ - 125:Src/usbd_desc.c **** static void IntToUnicode (uint32_t value , uint8_t *pbuf , uint8_t len); - 126:Src/usbd_desc.c **** static void Get_SerialNum(void); - 127:Src/usbd_desc.c **** /** - 128:Src/usbd_desc.c **** * @brief Returns the device descriptor. - 129:Src/usbd_desc.c **** * @param speed: Current device speed - 130:Src/usbd_desc.c **** * @param length: Pointer to data length variable - 131:Src/usbd_desc.c **** * @retval Pointer to descriptor buffer - 132:Src/usbd_desc.c **** */ - 133:Src/usbd_desc.c **** uint8_t *USBD_VCP_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) - 134:Src/usbd_desc.c **** { - 26 .loc 1 134 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: - 135:Src/usbd_desc.c **** *length = sizeof(hUSBDDeviceDesc); - 32 .loc 1 135 0 - 33 0000 1223 movs r3, #18 - 34 0002 0B80 strh r3, [r1] - 136:Src/usbd_desc.c **** return (uint8_t*)hUSBDDeviceDesc; - 137:Src/usbd_desc.c **** } - 35 .loc 1 137 0 -ARM GAS /tmp/cck6myrA.s page 4 - - - 36 0004 0048 ldr r0, .L2 - 37 .LVL1: - 38 @ sp needed - 39 0006 7047 bx lr - 40 .L3: - 41 .align 2 - 42 .L2: - 43 0008 00000000 .word .LANCHOR0 - 44 .cfi_endproc - 45 .LFE43: - 47 .section .text.USBD_VCP_LangIDStrDescriptor,"ax",%progbits - 48 .align 1 - 49 .global USBD_VCP_LangIDStrDescriptor - 50 .syntax unified - 51 .code 16 - 52 .thumb_func - 53 .fpu softvfp - 55 USBD_VCP_LangIDStrDescriptor: - 56 .LFB44: - 138:Src/usbd_desc.c **** - 139:Src/usbd_desc.c **** /** - 140:Src/usbd_desc.c **** * @brief Returns the LangID string descriptor. - 141:Src/usbd_desc.c **** * @param speed: Current device speed - 142:Src/usbd_desc.c **** * @param length: Pointer to data length variable - 143:Src/usbd_desc.c **** * @retval Pointer to descriptor buffer - 144:Src/usbd_desc.c **** */ - 145:Src/usbd_desc.c **** uint8_t *USBD_VCP_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) - 146:Src/usbd_desc.c **** { - 57 .loc 1 146 0 - 58 .cfi_startproc - 59 @ args = 0, pretend = 0, frame = 0 - 60 @ frame_needed = 0, uses_anonymous_args = 0 - 61 @ link register save eliminated. - 62 .LVL2: - 147:Src/usbd_desc.c **** *length = sizeof(USBD_LangIDDesc); - 63 .loc 1 147 0 - 64 0000 0423 movs r3, #4 - 65 0002 0B80 strh r3, [r1] - 148:Src/usbd_desc.c **** return (uint8_t*)USBD_LangIDDesc; - 149:Src/usbd_desc.c **** } - 66 .loc 1 149 0 - 67 0004 0048 ldr r0, .L5 - 68 .LVL3: - 69 @ sp needed - 70 0006 7047 bx lr - 71 .L6: - 72 .align 2 - 73 .L5: - 74 0008 00000000 .word .LANCHOR1 - 75 .cfi_endproc - 76 .LFE44: - 78 .section .text.IntToUnicode,"ax",%progbits - 79 .align 1 - 80 .syntax unified - 81 .code 16 - 82 .thumb_func - 83 .fpu softvfp -ARM GAS /tmp/cck6myrA.s page 5 - - - 85 IntToUnicode: - 86 .LFB51: - 150:Src/usbd_desc.c **** - 151:Src/usbd_desc.c **** /** - 152:Src/usbd_desc.c **** * @brief Returns the product string descriptor. - 153:Src/usbd_desc.c **** * @param speed: Current device speed - 154:Src/usbd_desc.c **** * @param length: Pointer to data length variable - 155:Src/usbd_desc.c **** * @retval Pointer to descriptor buffer - 156:Src/usbd_desc.c **** */ - 157:Src/usbd_desc.c **** uint8_t *USBD_VCP_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) - 158:Src/usbd_desc.c **** { - 159:Src/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_PRODUCT_FS_STRING, USBD_StrDesc, length); - 160:Src/usbd_desc.c **** return USBD_StrDesc; - 161:Src/usbd_desc.c **** } - 162:Src/usbd_desc.c **** - 163:Src/usbd_desc.c **** /** - 164:Src/usbd_desc.c **** * @brief Returns the manufacturer string descriptor. - 165:Src/usbd_desc.c **** * @param speed: Current device speed - 166:Src/usbd_desc.c **** * @param length: Pointer to data length variable - 167:Src/usbd_desc.c **** * @retval Pointer to descriptor buffer - 168:Src/usbd_desc.c **** */ - 169:Src/usbd_desc.c **** uint8_t *USBD_VCP_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) - 170:Src/usbd_desc.c **** { - 171:Src/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_MANUFACTURER_STRING, USBD_StrDesc, length); - 172:Src/usbd_desc.c **** return USBD_StrDesc; - 173:Src/usbd_desc.c **** } - 174:Src/usbd_desc.c **** - 175:Src/usbd_desc.c **** /** - 176:Src/usbd_desc.c **** * @brief Returns the serial number string descriptor. - 177:Src/usbd_desc.c **** * @param speed: Current device speed - 178:Src/usbd_desc.c **** * @param length: Pointer to data length variable - 179:Src/usbd_desc.c **** * @retval Pointer to descriptor buffer - 180:Src/usbd_desc.c **** */ - 181:Src/usbd_desc.c **** uint8_t *USBD_VCP_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) - 182:Src/usbd_desc.c **** { - 183:Src/usbd_desc.c **** *length = USB_SIZ_STRING_SERIAL; - 184:Src/usbd_desc.c **** - 185:Src/usbd_desc.c **** /* Update the serial number string descriptor with the data from the unique ID*/ - 186:Src/usbd_desc.c **** Get_SerialNum(); - 187:Src/usbd_desc.c **** - 188:Src/usbd_desc.c **** return USBD_StringSerial; - 189:Src/usbd_desc.c **** } - 190:Src/usbd_desc.c **** - 191:Src/usbd_desc.c **** /** - 192:Src/usbd_desc.c **** * @brief Returns the configuration string descriptor. - 193:Src/usbd_desc.c **** * @param speed: Current device speed - 194:Src/usbd_desc.c **** * @param length: Pointer to data length variable - 195:Src/usbd_desc.c **** * @retval Pointer to descriptor buffer - 196:Src/usbd_desc.c **** */ - 197:Src/usbd_desc.c **** uint8_t *USBD_VCP_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) - 198:Src/usbd_desc.c **** { - 199:Src/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_CONFIGURATION_FS_STRING, USBD_StrDesc, length); - 200:Src/usbd_desc.c **** return USBD_StrDesc; - 201:Src/usbd_desc.c **** } - 202:Src/usbd_desc.c **** - 203:Src/usbd_desc.c **** /** - 204:Src/usbd_desc.c **** * @brief Returns the interface string descriptor. -ARM GAS /tmp/cck6myrA.s page 6 - - - 205:Src/usbd_desc.c **** * @param speed: Current device speed - 206:Src/usbd_desc.c **** * @param length: Pointer to data length variable - 207:Src/usbd_desc.c **** * @retval Pointer to descriptor buffer - 208:Src/usbd_desc.c **** */ - 209:Src/usbd_desc.c **** uint8_t *USBD_VCP_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length) - 210:Src/usbd_desc.c **** { - 211:Src/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_INTERFACE_FS_STRING, USBD_StrDesc, length); - 212:Src/usbd_desc.c **** return USBD_StrDesc; - 213:Src/usbd_desc.c **** } - 214:Src/usbd_desc.c **** - 215:Src/usbd_desc.c **** /** - 216:Src/usbd_desc.c **** * @brief Create the serial number string descriptor - 217:Src/usbd_desc.c **** * @param None - 218:Src/usbd_desc.c **** * @retval None - 219:Src/usbd_desc.c **** */ - 220:Src/usbd_desc.c **** static void Get_SerialNum(void) - 221:Src/usbd_desc.c **** { - 222:Src/usbd_desc.c **** uint32_t deviceserial0, deviceserial1, deviceserial2; - 223:Src/usbd_desc.c **** - 224:Src/usbd_desc.c **** deviceserial0 = *(uint32_t*)DEVICE_ID1; - 225:Src/usbd_desc.c **** deviceserial1 = *(uint32_t*)DEVICE_ID2; - 226:Src/usbd_desc.c **** deviceserial2 = *(uint32_t*)DEVICE_ID3; - 227:Src/usbd_desc.c **** - 228:Src/usbd_desc.c **** deviceserial0 += deviceserial2; - 229:Src/usbd_desc.c **** - 230:Src/usbd_desc.c **** if (deviceserial0 != 0) - 231:Src/usbd_desc.c **** { - 232:Src/usbd_desc.c **** IntToUnicode (deviceserial0, &USBD_StringSerial[2] ,8); - 233:Src/usbd_desc.c **** IntToUnicode (deviceserial1, &USBD_StringSerial[18] ,4); - 234:Src/usbd_desc.c **** } - 235:Src/usbd_desc.c **** } - 236:Src/usbd_desc.c **** - 237:Src/usbd_desc.c **** /** - 238:Src/usbd_desc.c **** * @brief Convert Hex 32Bits value into char - 239:Src/usbd_desc.c **** * @param value: value to convert - 240:Src/usbd_desc.c **** * @param pbuf: pointer to the buffer - 241:Src/usbd_desc.c **** * @param len: buffer length - 242:Src/usbd_desc.c **** * @retval None - 243:Src/usbd_desc.c **** */ - 244:Src/usbd_desc.c **** static void IntToUnicode (uint32_t value , uint8_t *pbuf , uint8_t len) - 245:Src/usbd_desc.c **** { - 87 .loc 1 245 0 - 88 .cfi_startproc - 89 @ args = 0, pretend = 0, frame = 0 - 90 @ frame_needed = 0, uses_anonymous_args = 0 - 91 .LVL4: - 92 0000 30B5 push {r4, r5, lr} - 93 .LCFI0: - 94 .cfi_def_cfa_offset 12 - 95 .cfi_offset 4, -12 - 96 .cfi_offset 5, -8 - 97 .cfi_offset 14, -4 - 98 .LVL5: - 246:Src/usbd_desc.c **** uint8_t idx = 0; - 247:Src/usbd_desc.c **** - 248:Src/usbd_desc.c **** for( idx = 0 ; idx < len ; idx ++) - 99 .loc 1 248 0 -ARM GAS /tmp/cck6myrA.s page 7 - - - 100 0002 0023 movs r3, #0 - 101 0004 0AE0 b .L8 - 102 .LVL6: - 103 .L9: - 249:Src/usbd_desc.c **** { - 250:Src/usbd_desc.c **** if( ((value >> 28)) < 0xA ) - 251:Src/usbd_desc.c **** { - 252:Src/usbd_desc.c **** pbuf[ 2* idx] = (value >> 28) + '0'; - 253:Src/usbd_desc.c **** } - 254:Src/usbd_desc.c **** else - 255:Src/usbd_desc.c **** { - 256:Src/usbd_desc.c **** pbuf[2* idx] = (value >> 28) + 'A' - 10; - 104 .loc 1 256 0 - 105 0006 5D00 lsls r5, r3, #1 - 106 0008 3734 adds r4, r4, #55 - 107 000a 4C55 strb r4, [r1, r5] - 108 .L10: - 257:Src/usbd_desc.c **** } - 258:Src/usbd_desc.c **** - 259:Src/usbd_desc.c **** value = value << 4; - 109 .loc 1 259 0 discriminator 2 - 110 000c 0001 lsls r0, r0, #4 - 111 .LVL7: - 260:Src/usbd_desc.c **** - 261:Src/usbd_desc.c **** pbuf[ 2* idx + 1] = 0; - 112 .loc 1 261 0 discriminator 2 - 113 000e 5C00 lsls r4, r3, #1 - 114 0010 0134 adds r4, r4, #1 - 115 0012 0C19 adds r4, r1, r4 - 116 0014 0025 movs r5, #0 - 117 0016 2570 strb r5, [r4] - 248:Src/usbd_desc.c **** { - 118 .loc 1 248 0 discriminator 2 - 119 0018 0133 adds r3, r3, #1 - 120 .LVL8: - 121 001a DBB2 uxtb r3, r3 - 122 .LVL9: - 123 .L8: - 248:Src/usbd_desc.c **** { - 124 .loc 1 248 0 is_stmt 0 discriminator 1 - 125 001c 9342 cmp r3, r2 - 126 001e 06D2 bcs .L12 - 250:Src/usbd_desc.c **** { - 127 .loc 1 250 0 is_stmt 1 - 128 0020 040F lsrs r4, r0, #28 - 129 0022 092C cmp r4, #9 - 130 0024 EFD8 bhi .L9 - 252:Src/usbd_desc.c **** } - 131 .loc 1 252 0 - 132 0026 5D00 lsls r5, r3, #1 - 133 0028 3034 adds r4, r4, #48 - 134 002a 4C55 strb r4, [r1, r5] - 135 002c EEE7 b .L10 - 136 .L12: - 262:Src/usbd_desc.c **** } - 263:Src/usbd_desc.c **** } - 137 .loc 1 263 0 -ARM GAS /tmp/cck6myrA.s page 8 - - - 138 @ sp needed - 139 002e 30BD pop {r4, r5, pc} - 140 .cfi_endproc - 141 .LFE51: - 143 .section .text.Get_SerialNum,"ax",%progbits - 144 .align 1 - 145 .syntax unified - 146 .code 16 - 147 .thumb_func - 148 .fpu softvfp - 150 Get_SerialNum: - 151 .LFB50: - 221:Src/usbd_desc.c **** uint32_t deviceserial0, deviceserial1, deviceserial2; - 152 .loc 1 221 0 - 153 .cfi_startproc - 154 @ args = 0, pretend = 0, frame = 0 - 155 @ frame_needed = 0, uses_anonymous_args = 0 - 156 0000 70B5 push {r4, r5, r6, lr} - 157 .LCFI1: - 158 .cfi_def_cfa_offset 16 - 159 .cfi_offset 4, -16 - 160 .cfi_offset 5, -12 - 161 .cfi_offset 6, -8 - 162 .cfi_offset 14, -4 - 224:Src/usbd_desc.c **** deviceserial1 = *(uint32_t*)DEVICE_ID2; - 163 .loc 1 224 0 - 164 0002 0B4B ldr r3, .L16 - 165 0004 1868 ldr r0, [r3] - 166 .LVL10: - 225:Src/usbd_desc.c **** deviceserial2 = *(uint32_t*)DEVICE_ID3; - 167 .loc 1 225 0 - 168 0006 0B4B ldr r3, .L16+4 - 169 0008 1D68 ldr r5, [r3] - 170 .LVL11: - 226:Src/usbd_desc.c **** - 171 .loc 1 226 0 - 172 000a 0B4B ldr r3, .L16+8 - 173 000c 1B68 ldr r3, [r3] - 174 .LVL12: - 228:Src/usbd_desc.c **** - 175 .loc 1 228 0 - 176 000e C018 adds r0, r0, r3 - 177 .LVL13: - 230:Src/usbd_desc.c **** { - 178 .loc 1 230 0 - 179 0010 0028 cmp r0, #0 - 180 0012 00D1 bne .L15 - 181 .LVL14: - 182 .L13: - 235:Src/usbd_desc.c **** - 183 .loc 1 235 0 - 184 @ sp needed - 185 .LVL15: - 186 0014 70BD pop {r4, r5, r6, pc} - 187 .LVL16: - 188 .L15: - 232:Src/usbd_desc.c **** IntToUnicode (deviceserial1, &USBD_StringSerial[18] ,4); -ARM GAS /tmp/cck6myrA.s page 9 - - - 189 .loc 1 232 0 - 190 0016 094C ldr r4, .L16+12 - 191 0018 A11C adds r1, r4, #2 - 192 001a 0822 movs r2, #8 - 193 001c FFF7FEFF bl IntToUnicode - 194 .LVL17: - 233:Src/usbd_desc.c **** } - 195 .loc 1 233 0 - 196 0020 2100 movs r1, r4 - 197 0022 1231 adds r1, r1, #18 - 198 0024 0422 movs r2, #4 - 199 0026 2800 movs r0, r5 - 200 0028 FFF7FEFF bl IntToUnicode - 201 .LVL18: - 235:Src/usbd_desc.c **** - 202 .loc 1 235 0 - 203 002c F2E7 b .L13 - 204 .L17: - 205 002e C046 .align 2 - 206 .L16: - 207 0030 ACF7FF1F .word 536868780 - 208 0034 B0F7FF1F .word 536868784 - 209 0038 B4F7FF1F .word 536868788 - 210 003c 00000000 .word .LANCHOR2 - 211 .cfi_endproc - 212 .LFE50: - 214 .section .text.USBD_VCP_SerialStrDescriptor,"ax",%progbits - 215 .align 1 - 216 .global USBD_VCP_SerialStrDescriptor - 217 .syntax unified - 218 .code 16 - 219 .thumb_func - 220 .fpu softvfp - 222 USBD_VCP_SerialStrDescriptor: - 223 .LFB47: - 182:Src/usbd_desc.c **** *length = USB_SIZ_STRING_SERIAL; - 224 .loc 1 182 0 - 225 .cfi_startproc - 226 @ args = 0, pretend = 0, frame = 0 - 227 @ frame_needed = 0, uses_anonymous_args = 0 - 228 .LVL19: - 229 0000 10B5 push {r4, lr} - 230 .LCFI2: - 231 .cfi_def_cfa_offset 8 - 232 .cfi_offset 4, -8 - 233 .cfi_offset 14, -4 - 183:Src/usbd_desc.c **** - 234 .loc 1 183 0 - 235 0002 1A23 movs r3, #26 - 236 0004 0B80 strh r3, [r1] - 186:Src/usbd_desc.c **** - 237 .loc 1 186 0 - 238 0006 FFF7FEFF bl Get_SerialNum - 239 .LVL20: - 189:Src/usbd_desc.c **** - 240 .loc 1 189 0 - 241 000a 0148 ldr r0, .L19 -ARM GAS /tmp/cck6myrA.s page 10 - - - 242 @ sp needed - 243 000c 10BD pop {r4, pc} - 244 .L20: - 245 000e C046 .align 2 - 246 .L19: - 247 0010 00000000 .word .LANCHOR2 - 248 .cfi_endproc - 249 .LFE47: - 251 .section .text.USBD_VCP_ProductStrDescriptor,"ax",%progbits - 252 .align 1 - 253 .global USBD_VCP_ProductStrDescriptor - 254 .syntax unified - 255 .code 16 - 256 .thumb_func - 257 .fpu softvfp - 259 USBD_VCP_ProductStrDescriptor: - 260 .LFB45: - 158:Src/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_PRODUCT_FS_STRING, USBD_StrDesc, length); - 261 .loc 1 158 0 - 262 .cfi_startproc - 263 @ args = 0, pretend = 0, frame = 0 - 264 @ frame_needed = 0, uses_anonymous_args = 0 - 265 .LVL21: - 266 0000 10B5 push {r4, lr} - 267 .LCFI3: - 268 .cfi_def_cfa_offset 8 - 269 .cfi_offset 4, -8 - 270 .cfi_offset 14, -4 - 271 0002 0A00 movs r2, r1 - 159:Src/usbd_desc.c **** return USBD_StrDesc; - 272 .loc 1 159 0 - 273 0004 034C ldr r4, .L22 - 274 0006 2100 movs r1, r4 - 275 .LVL22: - 276 0008 0348 ldr r0, .L22+4 - 277 .LVL23: - 278 000a FFF7FEFF bl USBD_GetString - 279 .LVL24: - 161:Src/usbd_desc.c **** - 280 .loc 1 161 0 - 281 000e 2000 movs r0, r4 - 282 @ sp needed - 283 0010 10BD pop {r4, pc} - 284 .L23: - 285 0012 C046 .align 2 - 286 .L22: - 287 0014 00000000 .word USBD_StrDesc - 288 0018 00000000 .word .LC7 - 289 .cfi_endproc - 290 .LFE45: - 292 .section .text.USBD_VCP_ManufacturerStrDescriptor,"ax",%progbits - 293 .align 1 - 294 .global USBD_VCP_ManufacturerStrDescriptor - 295 .syntax unified - 296 .code 16 - 297 .thumb_func - 298 .fpu softvfp -ARM GAS /tmp/cck6myrA.s page 11 - - - 300 USBD_VCP_ManufacturerStrDescriptor: - 301 .LFB46: - 170:Src/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_MANUFACTURER_STRING, USBD_StrDesc, length); - 302 .loc 1 170 0 - 303 .cfi_startproc - 304 @ args = 0, pretend = 0, frame = 0 - 305 @ frame_needed = 0, uses_anonymous_args = 0 - 306 .LVL25: - 307 0000 10B5 push {r4, lr} - 308 .LCFI4: - 309 .cfi_def_cfa_offset 8 - 310 .cfi_offset 4, -8 - 311 .cfi_offset 14, -4 - 312 0002 0A00 movs r2, r1 - 171:Src/usbd_desc.c **** return USBD_StrDesc; - 313 .loc 1 171 0 - 314 0004 034C ldr r4, .L25 - 315 0006 2100 movs r1, r4 - 316 .LVL26: - 317 0008 0348 ldr r0, .L25+4 - 318 .LVL27: - 319 000a FFF7FEFF bl USBD_GetString - 320 .LVL28: - 173:Src/usbd_desc.c **** - 321 .loc 1 173 0 - 322 000e 2000 movs r0, r4 - 323 @ sp needed - 324 0010 10BD pop {r4, pc} - 325 .L26: - 326 0012 C046 .align 2 - 327 .L25: - 328 0014 00000000 .word USBD_StrDesc - 329 0018 00000000 .word .LC10 - 330 .cfi_endproc - 331 .LFE46: - 333 .section .text.USBD_VCP_ConfigStrDescriptor,"ax",%progbits - 334 .align 1 - 335 .global USBD_VCP_ConfigStrDescriptor - 336 .syntax unified - 337 .code 16 - 338 .thumb_func - 339 .fpu softvfp - 341 USBD_VCP_ConfigStrDescriptor: - 342 .LFB48: - 198:Src/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_CONFIGURATION_FS_STRING, USBD_StrDesc, length); - 343 .loc 1 198 0 - 344 .cfi_startproc - 345 @ args = 0, pretend = 0, frame = 0 - 346 @ frame_needed = 0, uses_anonymous_args = 0 - 347 .LVL29: - 348 0000 10B5 push {r4, lr} - 349 .LCFI5: - 350 .cfi_def_cfa_offset 8 - 351 .cfi_offset 4, -8 - 352 .cfi_offset 14, -4 - 353 0002 0A00 movs r2, r1 - 199:Src/usbd_desc.c **** return USBD_StrDesc; -ARM GAS /tmp/cck6myrA.s page 12 - - - 354 .loc 1 199 0 - 355 0004 034C ldr r4, .L28 - 356 0006 2100 movs r1, r4 - 357 .LVL30: - 358 0008 0348 ldr r0, .L28+4 - 359 .LVL31: - 360 000a FFF7FEFF bl USBD_GetString - 361 .LVL32: - 201:Src/usbd_desc.c **** - 362 .loc 1 201 0 - 363 000e 2000 movs r0, r4 - 364 @ sp needed - 365 0010 10BD pop {r4, pc} - 366 .L29: - 367 0012 C046 .align 2 - 368 .L28: - 369 0014 00000000 .word USBD_StrDesc - 370 0018 00000000 .word .LC13 - 371 .cfi_endproc - 372 .LFE48: - 374 .section .text.USBD_VCP_InterfaceStrDescriptor,"ax",%progbits - 375 .align 1 - 376 .global USBD_VCP_InterfaceStrDescriptor - 377 .syntax unified - 378 .code 16 - 379 .thumb_func - 380 .fpu softvfp - 382 USBD_VCP_InterfaceStrDescriptor: - 383 .LFB49: - 210:Src/usbd_desc.c **** USBD_GetString((uint8_t *)USBD_INTERFACE_FS_STRING, USBD_StrDesc, length); - 384 .loc 1 210 0 - 385 .cfi_startproc - 386 @ args = 0, pretend = 0, frame = 0 - 387 @ frame_needed = 0, uses_anonymous_args = 0 - 388 .LVL33: - 389 0000 10B5 push {r4, lr} - 390 .LCFI6: - 391 .cfi_def_cfa_offset 8 - 392 .cfi_offset 4, -8 - 393 .cfi_offset 14, -4 - 394 0002 0A00 movs r2, r1 - 211:Src/usbd_desc.c **** return USBD_StrDesc; - 395 .loc 1 211 0 - 396 0004 034C ldr r4, .L31 - 397 0006 2100 movs r1, r4 - 398 .LVL34: - 399 0008 0348 ldr r0, .L31+4 - 400 .LVL35: - 401 000a FFF7FEFF bl USBD_GetString - 402 .LVL36: - 213:Src/usbd_desc.c **** - 403 .loc 1 213 0 - 404 000e 2000 movs r0, r4 - 405 @ sp needed - 406 0010 10BD pop {r4, pc} - 407 .L32: - 408 0012 C046 .align 2 -ARM GAS /tmp/cck6myrA.s page 13 - - - 409 .L31: - 410 0014 00000000 .word USBD_StrDesc - 411 0018 00000000 .word .LC16 - 412 .cfi_endproc - 413 .LFE49: - 415 .comm USBD_StrDesc,256,4 - 416 .global USBD_StringSerial - 417 .global USBD_LangIDDesc - 418 .global hUSBDDeviceDesc - 419 .global VCP_Desc - 420 .section .data.USBD_StringSerial,"aw",%progbits - 421 .align 2 - 422 .set .LANCHOR2,. + 0 - 425 USBD_StringSerial: - 426 0000 1A .byte 26 - 427 0001 03 .byte 3 - 428 0002 00000000 .space 24 - 428 00000000 - 428 00000000 - 428 00000000 - 428 00000000 - 429 .section .data.VCP_Desc,"aw",%progbits - 430 .align 2 - 433 VCP_Desc: - 434 0000 00000000 .word USBD_VCP_DeviceDescriptor - 435 0004 00000000 .word USBD_VCP_LangIDStrDescriptor - 436 0008 00000000 .word USBD_VCP_ManufacturerStrDescriptor - 437 000c 00000000 .word USBD_VCP_ProductStrDescriptor - 438 0010 00000000 .word USBD_VCP_SerialStrDescriptor - 439 0014 00000000 .word USBD_VCP_ConfigStrDescriptor - 440 0018 00000000 .word USBD_VCP_InterfaceStrDescriptor - 441 .section .rodata.USBD_LangIDDesc,"a",%progbits - 442 .align 2 - 443 .set .LANCHOR1,. + 0 - 446 USBD_LangIDDesc: - 447 0000 04 .byte 4 - 448 0001 03 .byte 3 - 449 0002 09 .byte 9 - 450 0003 04 .byte 4 - 451 .section .rodata.USBD_VCP_ConfigStrDescriptor.str1.4,"aMS",%progbits,1 - 452 .align 2 - 453 .LC13: - 454 0000 6D617500 .ascii "mau\000" - 455 .section .rodata.USBD_VCP_InterfaceStrDescriptor.str1.4,"aMS",%progbits,1 - 456 .align 2 - 457 .LC16: - 458 0000 3A6F00 .ascii ":o\000" - 459 .section .rodata.USBD_VCP_ManufacturerStrDescriptor.str1.4,"aMS",%progbits,1 - 460 .align 2 - 461 .LC10: - 462 0000 4F747465 .ascii "Otter-Iron\000" - 462 722D4972 - 462 6F6E00 - 463 .section .rodata.USBD_VCP_ProductStrDescriptor.str1.4,"aMS",%progbits,1 - 464 .align 2 - 465 .LC7: - 466 0000 63686972 .ascii "chirp :3\000" -ARM GAS /tmp/cck6myrA.s page 14 - - - 466 70203A33 - 466 00 - 467 .section .rodata.hUSBDDeviceDesc,"a",%progbits - 468 .align 2 - 469 .set .LANCHOR0,. + 0 - 472 hUSBDDeviceDesc: - 473 0000 12 .byte 18 - 474 0001 01 .byte 1 - 475 0002 00 .byte 0 - 476 0003 02 .byte 2 - 477 0004 00 .byte 0 - 478 0005 00 .byte 0 - 479 0006 00 .byte 0 - 480 0007 40 .byte 64 - 481 0008 83 .byte -125 - 482 0009 04 .byte 4 - 483 000a 40 .byte 64 - 484 000b 57 .byte 87 - 485 000c 00 .byte 0 - 486 000d 02 .byte 2 - 487 000e 01 .byte 1 - 488 000f 02 .byte 2 - 489 0010 03 .byte 3 - 490 0011 01 .byte 1 - 491 .text - 492 .Letext0: - 493 .file 2 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/machin - 494 .file 3 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/sys/_s - 495 .file 4 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h" - 496 .file 5 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h" - 497 .file 6 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/sys/lo - 498 .file 7 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/sys/_t - 499 .file 8 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/lib/gcc/arm-none-eabi/7.3.1/ - 500 .file 9 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/sys/re - 501 .file 10 "/home/janhenrik/programme/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/stdli - 502 .file 11 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h" - 503 .file 12 "Inc/usbd_desc.h" - 504 .file 13 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h" -ARM GAS /tmp/cck6myrA.s page 15 - - -DEFINED SYMBOLS - *ABS*:0000000000000000 usbd_desc.c - /tmp/cck6myrA.s:16 .text.USBD_VCP_DeviceDescriptor:0000000000000000 $t - /tmp/cck6myrA.s:23 .text.USBD_VCP_DeviceDescriptor:0000000000000000 USBD_VCP_DeviceDescriptor - /tmp/cck6myrA.s:43 .text.USBD_VCP_DeviceDescriptor:0000000000000008 $d - /tmp/cck6myrA.s:48 .text.USBD_VCP_LangIDStrDescriptor:0000000000000000 $t - /tmp/cck6myrA.s:55 .text.USBD_VCP_LangIDStrDescriptor:0000000000000000 USBD_VCP_LangIDStrDescriptor - /tmp/cck6myrA.s:74 .text.USBD_VCP_LangIDStrDescriptor:0000000000000008 $d - /tmp/cck6myrA.s:79 .text.IntToUnicode:0000000000000000 $t - /tmp/cck6myrA.s:85 .text.IntToUnicode:0000000000000000 IntToUnicode - /tmp/cck6myrA.s:144 .text.Get_SerialNum:0000000000000000 $t - /tmp/cck6myrA.s:150 .text.Get_SerialNum:0000000000000000 Get_SerialNum - /tmp/cck6myrA.s:207 .text.Get_SerialNum:0000000000000030 $d - /tmp/cck6myrA.s:215 .text.USBD_VCP_SerialStrDescriptor:0000000000000000 $t - /tmp/cck6myrA.s:222 .text.USBD_VCP_SerialStrDescriptor:0000000000000000 USBD_VCP_SerialStrDescriptor - /tmp/cck6myrA.s:247 .text.USBD_VCP_SerialStrDescriptor:0000000000000010 $d - /tmp/cck6myrA.s:252 .text.USBD_VCP_ProductStrDescriptor:0000000000000000 $t - /tmp/cck6myrA.s:259 .text.USBD_VCP_ProductStrDescriptor:0000000000000000 USBD_VCP_ProductStrDescriptor - /tmp/cck6myrA.s:287 .text.USBD_VCP_ProductStrDescriptor:0000000000000014 $d - *COM*:0000000000000100 USBD_StrDesc - /tmp/cck6myrA.s:293 .text.USBD_VCP_ManufacturerStrDescriptor:0000000000000000 $t - /tmp/cck6myrA.s:300 .text.USBD_VCP_ManufacturerStrDescriptor:0000000000000000 USBD_VCP_ManufacturerStrDescriptor - /tmp/cck6myrA.s:328 .text.USBD_VCP_ManufacturerStrDescriptor:0000000000000014 $d - /tmp/cck6myrA.s:334 .text.USBD_VCP_ConfigStrDescriptor:0000000000000000 $t - /tmp/cck6myrA.s:341 .text.USBD_VCP_ConfigStrDescriptor:0000000000000000 USBD_VCP_ConfigStrDescriptor - /tmp/cck6myrA.s:369 .text.USBD_VCP_ConfigStrDescriptor:0000000000000014 $d - /tmp/cck6myrA.s:375 .text.USBD_VCP_InterfaceStrDescriptor:0000000000000000 $t - /tmp/cck6myrA.s:382 .text.USBD_VCP_InterfaceStrDescriptor:0000000000000000 USBD_VCP_InterfaceStrDescriptor - /tmp/cck6myrA.s:410 .text.USBD_VCP_InterfaceStrDescriptor:0000000000000014 $d - /tmp/cck6myrA.s:425 .data.USBD_StringSerial:0000000000000000 USBD_StringSerial - /tmp/cck6myrA.s:446 .rodata.USBD_LangIDDesc:0000000000000000 USBD_LangIDDesc - /tmp/cck6myrA.s:472 .rodata.hUSBDDeviceDesc:0000000000000000 hUSBDDeviceDesc - /tmp/cck6myrA.s:433 .data.VCP_Desc:0000000000000000 VCP_Desc - /tmp/cck6myrA.s:421 .data.USBD_StringSerial:0000000000000000 $d - /tmp/cck6myrA.s:430 .data.VCP_Desc:0000000000000000 $d - /tmp/cck6myrA.s:442 .rodata.USBD_LangIDDesc:0000000000000000 $d - /tmp/cck6myrA.s:452 .rodata.USBD_VCP_ConfigStrDescriptor.str1.4:0000000000000000 $d - /tmp/cck6myrA.s:456 .rodata.USBD_VCP_InterfaceStrDescriptor.str1.4:0000000000000000 $d - /tmp/cck6myrA.s:460 .rodata.USBD_VCP_ManufacturerStrDescriptor.str1.4:0000000000000000 $d - /tmp/cck6myrA.s:464 .rodata.USBD_VCP_ProductStrDescriptor.str1.4:0000000000000000 $d - /tmp/cck6myrA.s:468 .rodata.hUSBDDeviceDesc:0000000000000000 $d - -UNDEFINED SYMBOLS -USBD_GetString |