summaryrefslogtreecommitdiff
path: root/cdc-dials/build/usbd_desc.lst
blob: 8b8add8ad68a9aa86a3ac360628654a25c4bbd6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
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