minikbd/cdc-dials/build/usbd_desc.lst
2020-04-01 00:40:03 +02:00

868 lines
40 KiB
Text
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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>&copy; 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