-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathdisasem.txt
4042 lines (3852 loc) · 324 KB
/
disasem.txt
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
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
C:\Users\Colton\Documents\OS3M-Mouse\Firmware\OS3M_Mouse\build\OS3M_Mouse.elf: file format elf32-littlearm
Disassembly of section .text:
080000c0 <__udivsi3>:
80000c0: 2200 movs r2, #0
80000c2: 0843 lsrs r3, r0, #1
80000c4: 428b cmp r3, r1
80000c6: d374 bcc.n 80001b2 <__udivsi3+0xf2>
80000c8: 0903 lsrs r3, r0, #4
80000ca: 428b cmp r3, r1
80000cc: d35f bcc.n 800018e <__udivsi3+0xce>
80000ce: 0a03 lsrs r3, r0, #8
80000d0: 428b cmp r3, r1
80000d2: d344 bcc.n 800015e <__udivsi3+0x9e>
80000d4: 0b03 lsrs r3, r0, #12
80000d6: 428b cmp r3, r1
80000d8: d328 bcc.n 800012c <__udivsi3+0x6c>
80000da: 0c03 lsrs r3, r0, #16
80000dc: 428b cmp r3, r1
80000de: d30d bcc.n 80000fc <__udivsi3+0x3c>
80000e0: 22ff movs r2, #255 ; 0xff
80000e2: 0209 lsls r1, r1, #8
80000e4: ba12 rev r2, r2
80000e6: 0c03 lsrs r3, r0, #16
80000e8: 428b cmp r3, r1
80000ea: d302 bcc.n 80000f2 <__udivsi3+0x32>
80000ec: 1212 asrs r2, r2, #8
80000ee: 0209 lsls r1, r1, #8
80000f0: d065 beq.n 80001be <__udivsi3+0xfe>
80000f2: 0b03 lsrs r3, r0, #12
80000f4: 428b cmp r3, r1
80000f6: d319 bcc.n 800012c <__udivsi3+0x6c>
80000f8: e000 b.n 80000fc <__udivsi3+0x3c>
80000fa: 0a09 lsrs r1, r1, #8
80000fc: 0bc3 lsrs r3, r0, #15
80000fe: 428b cmp r3, r1
8000100: d301 bcc.n 8000106 <__udivsi3+0x46>
8000102: 03cb lsls r3, r1, #15
8000104: 1ac0 subs r0, r0, r3
8000106: 4152 adcs r2, r2
8000108: 0b83 lsrs r3, r0, #14
800010a: 428b cmp r3, r1
800010c: d301 bcc.n 8000112 <__udivsi3+0x52>
800010e: 038b lsls r3, r1, #14
8000110: 1ac0 subs r0, r0, r3
8000112: 4152 adcs r2, r2
8000114: 0b43 lsrs r3, r0, #13
8000116: 428b cmp r3, r1
8000118: d301 bcc.n 800011e <__udivsi3+0x5e>
800011a: 034b lsls r3, r1, #13
800011c: 1ac0 subs r0, r0, r3
800011e: 4152 adcs r2, r2
8000120: 0b03 lsrs r3, r0, #12
8000122: 428b cmp r3, r1
8000124: d301 bcc.n 800012a <__udivsi3+0x6a>
8000126: 030b lsls r3, r1, #12
8000128: 1ac0 subs r0, r0, r3
800012a: 4152 adcs r2, r2
800012c: 0ac3 lsrs r3, r0, #11
800012e: 428b cmp r3, r1
8000130: d301 bcc.n 8000136 <__udivsi3+0x76>
8000132: 02cb lsls r3, r1, #11
8000134: 1ac0 subs r0, r0, r3
8000136: 4152 adcs r2, r2
8000138: 0a83 lsrs r3, r0, #10
800013a: 428b cmp r3, r1
800013c: d301 bcc.n 8000142 <__udivsi3+0x82>
800013e: 028b lsls r3, r1, #10
8000140: 1ac0 subs r0, r0, r3
8000142: 4152 adcs r2, r2
8000144: 0a43 lsrs r3, r0, #9
8000146: 428b cmp r3, r1
8000148: d301 bcc.n 800014e <__udivsi3+0x8e>
800014a: 024b lsls r3, r1, #9
800014c: 1ac0 subs r0, r0, r3
800014e: 4152 adcs r2, r2
8000150: 0a03 lsrs r3, r0, #8
8000152: 428b cmp r3, r1
8000154: d301 bcc.n 800015a <__udivsi3+0x9a>
8000156: 020b lsls r3, r1, #8
8000158: 1ac0 subs r0, r0, r3
800015a: 4152 adcs r2, r2
800015c: d2cd bcs.n 80000fa <__udivsi3+0x3a>
800015e: 09c3 lsrs r3, r0, #7
8000160: 428b cmp r3, r1
8000162: d301 bcc.n 8000168 <__udivsi3+0xa8>
8000164: 01cb lsls r3, r1, #7
8000166: 1ac0 subs r0, r0, r3
8000168: 4152 adcs r2, r2
800016a: 0983 lsrs r3, r0, #6
800016c: 428b cmp r3, r1
800016e: d301 bcc.n 8000174 <__udivsi3+0xb4>
8000170: 018b lsls r3, r1, #6
8000172: 1ac0 subs r0, r0, r3
8000174: 4152 adcs r2, r2
8000176: 0943 lsrs r3, r0, #5
8000178: 428b cmp r3, r1
800017a: d301 bcc.n 8000180 <__udivsi3+0xc0>
800017c: 014b lsls r3, r1, #5
800017e: 1ac0 subs r0, r0, r3
8000180: 4152 adcs r2, r2
8000182: 0903 lsrs r3, r0, #4
8000184: 428b cmp r3, r1
8000186: d301 bcc.n 800018c <__udivsi3+0xcc>
8000188: 010b lsls r3, r1, #4
800018a: 1ac0 subs r0, r0, r3
800018c: 4152 adcs r2, r2
800018e: 08c3 lsrs r3, r0, #3
8000190: 428b cmp r3, r1
8000192: d301 bcc.n 8000198 <__udivsi3+0xd8>
8000194: 00cb lsls r3, r1, #3
8000196: 1ac0 subs r0, r0, r3
8000198: 4152 adcs r2, r2
800019a: 0883 lsrs r3, r0, #2
800019c: 428b cmp r3, r1
800019e: d301 bcc.n 80001a4 <__udivsi3+0xe4>
80001a0: 008b lsls r3, r1, #2
80001a2: 1ac0 subs r0, r0, r3
80001a4: 4152 adcs r2, r2
80001a6: 0843 lsrs r3, r0, #1
80001a8: 428b cmp r3, r1
80001aa: d301 bcc.n 80001b0 <__udivsi3+0xf0>
80001ac: 004b lsls r3, r1, #1
80001ae: 1ac0 subs r0, r0, r3
80001b0: 4152 adcs r2, r2
80001b2: 1a41 subs r1, r0, r1
80001b4: d200 bcs.n 80001b8 <__udivsi3+0xf8>
80001b6: 4601 mov r1, r0
80001b8: 4152 adcs r2, r2
80001ba: 4610 mov r0, r2
80001bc: 4770 bx lr
80001be: e7ff b.n 80001c0 <__udivsi3+0x100>
80001c0: b501 push {r0, lr}
80001c2: 2000 movs r0, #0
80001c4: f000 f806 bl 80001d4 <__aeabi_idiv0>
80001c8: bd02 pop {r1, pc}
80001ca: 46c0 nop ; (mov r8, r8)
080001cc <__aeabi_uidivmod>:
80001cc: 2900 cmp r1, #0
80001ce: d0f7 beq.n 80001c0 <__udivsi3+0x100>
80001d0: e776 b.n 80000c0 <__udivsi3>
80001d2: 4770 bx lr
080001d4 <__aeabi_idiv0>:
80001d4: 4770 bx lr
80001d6: 46c0 nop ; (mov r8, r8)
080001d8 <__do_global_dtors_aux>:
80001d8: b510 push {r4, lr}
80001da: 4c06 ldr r4, [pc, #24] ; (80001f4 <__do_global_dtors_aux+0x1c>)
80001dc: 7823 ldrb r3, [r4, #0]
80001de: 2b00 cmp r3, #0
80001e0: d107 bne.n 80001f2 <__do_global_dtors_aux+0x1a>
80001e2: 4b05 ldr r3, [pc, #20] ; (80001f8 <__do_global_dtors_aux+0x20>)
80001e4: 2b00 cmp r3, #0
80001e6: d002 beq.n 80001ee <__do_global_dtors_aux+0x16>
80001e8: 4804 ldr r0, [pc, #16] ; (80001fc <__do_global_dtors_aux+0x24>)
80001ea: e000 b.n 80001ee <__do_global_dtors_aux+0x16>
80001ec: bf00 nop
80001ee: 2301 movs r3, #1
80001f0: 7023 strb r3, [r4, #0]
80001f2: bd10 pop {r4, pc}
80001f4: 2000000c .word 0x2000000c
80001f8: 00000000 .word 0x00000000
80001fc: 0800167c .word 0x0800167c
08000200 <frame_dummy>:
8000200: 4b04 ldr r3, [pc, #16] ; (8000214 <frame_dummy+0x14>)
8000202: b510 push {r4, lr}
8000204: 2b00 cmp r3, #0
8000206: d003 beq.n 8000210 <frame_dummy+0x10>
8000208: 4903 ldr r1, [pc, #12] ; (8000218 <frame_dummy+0x18>)
800020a: 4804 ldr r0, [pc, #16] ; (800021c <frame_dummy+0x1c>)
800020c: e000 b.n 8000210 <frame_dummy+0x10>
800020e: bf00 nop
8000210: bd10 pop {r4, pc}
8000212: 46c0 nop ; (mov r8, r8)
8000214: 00000000 .word 0x00000000
8000218: 20000010 .word 0x20000010
800021c: 0800167c .word 0x0800167c
08000220 <MX_GPIO_Init>:
* @brief GPIO Initialization Function
* @param None
* @retval None
*/
static void MX_GPIO_Init(void)
{
8000220: b082 sub sp, #8
/* USER CODE BEGIN MX_GPIO_Init_1 */
/* USER CODE END MX_GPIO_Init_1 */
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOF_CLK_ENABLE();
8000222: 4b0a ldr r3, [pc, #40] ; (800024c <MX_GPIO_Init+0x2c>)
8000224: 695a ldr r2, [r3, #20]
8000226: 2180 movs r1, #128 ; 0x80
8000228: 03c9 lsls r1, r1, #15
800022a: 430a orrs r2, r1
800022c: 615a str r2, [r3, #20]
800022e: 695a ldr r2, [r3, #20]
8000230: 400a ands r2, r1
8000232: 9200 str r2, [sp, #0]
8000234: 9a00 ldr r2, [sp, #0]
__HAL_RCC_GPIOA_CLK_ENABLE();
8000236: 695a ldr r2, [r3, #20]
8000238: 2180 movs r1, #128 ; 0x80
800023a: 0289 lsls r1, r1, #10
800023c: 430a orrs r2, r1
800023e: 615a str r2, [r3, #20]
8000240: 695b ldr r3, [r3, #20]
8000242: 400b ands r3, r1
8000244: 9301 str r3, [sp, #4]
8000246: 9b01 ldr r3, [sp, #4]
/* USER CODE BEGIN MX_GPIO_Init_2 */
/* USER CODE END MX_GPIO_Init_2 */
}
8000248: b002 add sp, #8
800024a: 4770 bx lr
800024c: 40021000 .word 0x40021000
08000250 <Error_Handler>:
\details Disables IRQ interrupts by setting the I-bit in the CPSR.
Can only be executed in Privileged modes.
*/
__STATIC_FORCEINLINE void __disable_irq(void)
{
__ASM volatile ("cpsid i" : : : "memory");
8000250: b672 cpsid i
void Error_Handler(void)
{
/* USER CODE BEGIN Error_Handler_Debug */
/* User can add his own implementation to report the HAL error return state */
__disable_irq();
while (1)
8000252: e7fe b.n 8000252 <Error_Handler+0x2>
08000254 <MX_I2C1_Init>:
{
8000254: b510 push {r4, lr}
hi2c1.Instance = I2C1;
8000256: 4812 ldr r0, [pc, #72] ; (80002a0 <MX_I2C1_Init+0x4c>)
8000258: 4b12 ldr r3, [pc, #72] ; (80002a4 <MX_I2C1_Init+0x50>)
800025a: 6003 str r3, [r0, #0]
hi2c1.Init.Timing = 0x20303E5D;
800025c: 4b12 ldr r3, [pc, #72] ; (80002a8 <MX_I2C1_Init+0x54>)
800025e: 6043 str r3, [r0, #4]
hi2c1.Init.OwnAddress1 = 0;
8000260: 2300 movs r3, #0
8000262: 6083 str r3, [r0, #8]
hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
8000264: 2201 movs r2, #1
8000266: 60c2 str r2, [r0, #12]
hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
8000268: 6103 str r3, [r0, #16]
hi2c1.Init.OwnAddress2 = 0;
800026a: 6143 str r3, [r0, #20]
hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
800026c: 6183 str r3, [r0, #24]
hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
800026e: 61c3 str r3, [r0, #28]
hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
8000270: 6203 str r3, [r0, #32]
if (HAL_I2C_Init(&hi2c1) != HAL_OK)
8000272: f000 fa5f bl 8000734 <HAL_I2C_Init>
8000276: 2800 cmp r0, #0
8000278: d10c bne.n 8000294 <MX_I2C1_Init+0x40>
if (HAL_I2CEx_ConfigAnalogFilter(&hi2c1, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
800027a: 4809 ldr r0, [pc, #36] ; (80002a0 <MX_I2C1_Init+0x4c>)
800027c: 2100 movs r1, #0
800027e: f000 fabf bl 8000800 <HAL_I2CEx_ConfigAnalogFilter>
8000282: 2800 cmp r0, #0
8000284: d108 bne.n 8000298 <MX_I2C1_Init+0x44>
if (HAL_I2CEx_ConfigDigitalFilter(&hi2c1, 0) != HAL_OK)
8000286: 4806 ldr r0, [pc, #24] ; (80002a0 <MX_I2C1_Init+0x4c>)
8000288: 2100 movs r1, #0
800028a: f000 fae5 bl 8000858 <HAL_I2CEx_ConfigDigitalFilter>
800028e: 2800 cmp r0, #0
8000290: d104 bne.n 800029c <MX_I2C1_Init+0x48>
}
8000292: bd10 pop {r4, pc}
Error_Handler();
8000294: f7ff ffdc bl 8000250 <Error_Handler>
Error_Handler();
8000298: f7ff ffda bl 8000250 <Error_Handler>
Error_Handler();
800029c: f7ff ffd8 bl 8000250 <Error_Handler>
80002a0: 200000b0 .word 0x200000b0
80002a4: 40005400 .word 0x40005400
80002a8: 20303e5d .word 0x20303e5d
080002ac <MX_USART2_UART_Init>:
{
80002ac: b510 push {r4, lr}
huart2.Instance = USART2;
80002ae: 480b ldr r0, [pc, #44] ; (80002dc <MX_USART2_UART_Init+0x30>)
80002b0: 4b0b ldr r3, [pc, #44] ; (80002e0 <MX_USART2_UART_Init+0x34>)
80002b2: 6003 str r3, [r0, #0]
huart2.Init.BaudRate = 115200;
80002b4: 23e1 movs r3, #225 ; 0xe1
80002b6: 025b lsls r3, r3, #9
80002b8: 6043 str r3, [r0, #4]
huart2.Init.WordLength = UART_WORDLENGTH_8B;
80002ba: 2300 movs r3, #0
80002bc: 6083 str r3, [r0, #8]
huart2.Init.StopBits = UART_STOPBITS_1;
80002be: 60c3 str r3, [r0, #12]
huart2.Init.Parity = UART_PARITY_NONE;
80002c0: 6103 str r3, [r0, #16]
huart2.Init.Mode = UART_MODE_TX_RX;
80002c2: 220c movs r2, #12
80002c4: 6142 str r2, [r0, #20]
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
80002c6: 6183 str r3, [r0, #24]
huart2.Init.OverSampling = UART_OVERSAMPLING_16;
80002c8: 61c3 str r3, [r0, #28]
huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
80002ca: 6203 str r3, [r0, #32]
huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
80002cc: 6243 str r3, [r0, #36] ; 0x24
if (HAL_UART_Init(&huart2) != HAL_OK)
80002ce: f001 f931 bl 8001534 <HAL_UART_Init>
80002d2: 2800 cmp r0, #0
80002d4: d100 bne.n 80002d8 <MX_USART2_UART_Init+0x2c>
}
80002d6: bd10 pop {r4, pc}
Error_Handler();
80002d8: f7ff ffba bl 8000250 <Error_Handler>
80002dc: 20000028 .word 0x20000028
80002e0: 40004400 .word 0x40004400
080002e4 <SystemClock_Config>:
{
80002e4: b500 push {lr}
80002e6: b099 sub sp, #100 ; 0x64
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
80002e8: 2234 movs r2, #52 ; 0x34
80002ea: 2100 movs r1, #0
80002ec: a80b add r0, sp, #44 ; 0x2c
80002ee: f001 f998 bl 8001622 <memset>
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
80002f2: 2210 movs r2, #16
80002f4: 2100 movs r1, #0
80002f6: a807 add r0, sp, #28
80002f8: f001 f993 bl 8001622 <memset>
RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
80002fc: 2218 movs r2, #24
80002fe: 2100 movs r1, #0
8000300: a801 add r0, sp, #4
8000302: f001 f98e bl 8001622 <memset>
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48;
8000306: 2320 movs r3, #32
8000308: 930b str r3, [sp, #44] ; 0x2c
RCC_OscInitStruct.HSI48State = RCC_HSI48_ON;
800030a: 3b1f subs r3, #31
800030c: 9313 str r3, [sp, #76] ; 0x4c
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
800030e: a80b add r0, sp, #44 ; 0x2c
8000310: f000 facc bl 80008ac <HAL_RCC_OscConfig>
8000314: 2800 cmp r0, #0
8000316: d117 bne.n 8000348 <SystemClock_Config+0x64>
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
8000318: 2307 movs r3, #7
800031a: 9307 str r3, [sp, #28]
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI48;
800031c: 3b04 subs r3, #4
800031e: 9308 str r3, [sp, #32]
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
8000320: 2300 movs r3, #0
8000322: 9309 str r3, [sp, #36] ; 0x24
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
8000324: 930a str r3, [sp, #40] ; 0x28
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
8000326: 2101 movs r1, #1
8000328: a807 add r0, sp, #28
800032a: f000 fd9d bl 8000e68 <HAL_RCC_ClockConfig>
800032e: 2800 cmp r0, #0
8000330: d10c bne.n 800034c <SystemClock_Config+0x68>
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_I2C1;
8000332: 2320 movs r3, #32
8000334: 9301 str r3, [sp, #4]
PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_SYSCLK;
8000336: 3b10 subs r3, #16
8000338: 9304 str r3, [sp, #16]
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
800033a: a801 add r0, sp, #4
800033c: f000 fe4c bl 8000fd8 <HAL_RCCEx_PeriphCLKConfig>
8000340: 2800 cmp r0, #0
8000342: d105 bne.n 8000350 <SystemClock_Config+0x6c>
}
8000344: b019 add sp, #100 ; 0x64
8000346: bd00 pop {pc}
Error_Handler();
8000348: f7ff ff82 bl 8000250 <Error_Handler>
Error_Handler();
800034c: f7ff ff80 bl 8000250 <Error_Handler>
Error_Handler();
8000350: f7ff ff7e bl 8000250 <Error_Handler>
08000354 <main>:
{
8000354: b510 push {r4, lr}
HAL_Init();
8000356: f000 f8b9 bl 80004cc <HAL_Init>
SystemClock_Config();
800035a: f7ff ffc3 bl 80002e4 <SystemClock_Config>
MX_GPIO_Init();
800035e: f7ff ff5f bl 8000220 <MX_GPIO_Init>
MX_I2C1_Init();
8000362: f7ff ff77 bl 8000254 <MX_I2C1_Init>
MX_USART2_UART_Init();
8000366: f7ff ffa1 bl 80002ac <MX_USART2_UART_Init>
while (1)
800036a: e7fe b.n 800036a <main+0x16>
0800036c <HAL_MspInit>:
/* USER CODE END 0 */
/**
* Initializes the Global MSP.
*/
void HAL_MspInit(void)
{
800036c: b082 sub sp, #8
/* USER CODE BEGIN MspInit 0 */
/* USER CODE END MspInit 0 */
__HAL_RCC_SYSCFG_CLK_ENABLE();
800036e: 4b0a ldr r3, [pc, #40] ; (8000398 <HAL_MspInit+0x2c>)
8000370: 6999 ldr r1, [r3, #24]
8000372: 2201 movs r2, #1
8000374: 4311 orrs r1, r2
8000376: 6199 str r1, [r3, #24]
8000378: 6999 ldr r1, [r3, #24]
800037a: 400a ands r2, r1
800037c: 9200 str r2, [sp, #0]
800037e: 9a00 ldr r2, [sp, #0]
__HAL_RCC_PWR_CLK_ENABLE();
8000380: 69da ldr r2, [r3, #28]
8000382: 2180 movs r1, #128 ; 0x80
8000384: 0549 lsls r1, r1, #21
8000386: 430a orrs r2, r1
8000388: 61da str r2, [r3, #28]
800038a: 69db ldr r3, [r3, #28]
800038c: 400b ands r3, r1
800038e: 9301 str r3, [sp, #4]
8000390: 9b01 ldr r3, [sp, #4]
/* System interrupt init*/
/* USER CODE BEGIN MspInit 1 */
/* USER CODE END MspInit 1 */
}
8000392: b002 add sp, #8
8000394: 4770 bx lr
8000396: 46c0 nop ; (mov r8, r8)
8000398: 40021000 .word 0x40021000
0800039c <HAL_I2C_MspInit>:
* This function configures the hardware resources used in this example
* @param hi2c: I2C handle pointer
* @retval None
*/
void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)
{
800039c: b510 push {r4, lr}
800039e: b088 sub sp, #32
80003a0: 0004 movs r4, r0
GPIO_InitTypeDef GPIO_InitStruct = {0};
80003a2: 2214 movs r2, #20
80003a4: 2100 movs r1, #0
80003a6: a803 add r0, sp, #12
80003a8: f001 f93b bl 8001622 <memset>
if(hi2c->Instance==I2C1)
80003ac: 6822 ldr r2, [r4, #0]
80003ae: 4b12 ldr r3, [pc, #72] ; (80003f8 <HAL_I2C_MspInit+0x5c>)
80003b0: 429a cmp r2, r3
80003b2: d001 beq.n 80003b8 <HAL_I2C_MspInit+0x1c>
/* USER CODE BEGIN I2C1_MspInit 1 */
/* USER CODE END I2C1_MspInit 1 */
}
}
80003b4: b008 add sp, #32
80003b6: bd10 pop {r4, pc}
__HAL_RCC_GPIOF_CLK_ENABLE();
80003b8: 4c10 ldr r4, [pc, #64] ; (80003fc <HAL_I2C_MspInit+0x60>)
80003ba: 6963 ldr r3, [r4, #20]
80003bc: 2280 movs r2, #128 ; 0x80
80003be: 03d2 lsls r2, r2, #15
80003c0: 4313 orrs r3, r2
80003c2: 6163 str r3, [r4, #20]
80003c4: 6963 ldr r3, [r4, #20]
80003c6: 4013 ands r3, r2
80003c8: 9301 str r3, [sp, #4]
80003ca: 9b01 ldr r3, [sp, #4]
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
80003cc: 2303 movs r3, #3
80003ce: 9303 str r3, [sp, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
80003d0: 2212 movs r2, #18
80003d2: 9204 str r2, [sp, #16]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
80003d4: 9306 str r3, [sp, #24]
GPIO_InitStruct.Alternate = GPIO_AF1_I2C1;
80003d6: 3b02 subs r3, #2
80003d8: 9307 str r3, [sp, #28]
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
80003da: a903 add r1, sp, #12
80003dc: 4808 ldr r0, [pc, #32] ; (8000400 <HAL_I2C_MspInit+0x64>)
80003de: f000 f8eb bl 80005b8 <HAL_GPIO_Init>
__HAL_RCC_I2C1_CLK_ENABLE();
80003e2: 69e3 ldr r3, [r4, #28]
80003e4: 2280 movs r2, #128 ; 0x80
80003e6: 0392 lsls r2, r2, #14
80003e8: 4313 orrs r3, r2
80003ea: 61e3 str r3, [r4, #28]
80003ec: 69e3 ldr r3, [r4, #28]
80003ee: 4013 ands r3, r2
80003f0: 9302 str r3, [sp, #8]
80003f2: 9b02 ldr r3, [sp, #8]
}
80003f4: e7de b.n 80003b4 <HAL_I2C_MspInit+0x18>
80003f6: 46c0 nop ; (mov r8, r8)
80003f8: 40005400 .word 0x40005400
80003fc: 40021000 .word 0x40021000
8000400: 48001400 .word 0x48001400
08000404 <HAL_UART_MspInit>:
* This function configures the hardware resources used in this example
* @param huart: UART handle pointer
* @retval None
*/
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
{
8000404: b510 push {r4, lr}
8000406: b088 sub sp, #32
8000408: 0004 movs r4, r0
GPIO_InitTypeDef GPIO_InitStruct = {0};
800040a: 2214 movs r2, #20
800040c: 2100 movs r1, #0
800040e: a803 add r0, sp, #12
8000410: f001 f907 bl 8001622 <memset>
if(huart->Instance==USART2)
8000414: 6822 ldr r2, [r4, #0]
8000416: 4b12 ldr r3, [pc, #72] ; (8000460 <HAL_UART_MspInit+0x5c>)
8000418: 429a cmp r2, r3
800041a: d001 beq.n 8000420 <HAL_UART_MspInit+0x1c>
/* USER CODE BEGIN USART2_MspInit 1 */
/* USER CODE END USART2_MspInit 1 */
}
}
800041c: b008 add sp, #32
800041e: bd10 pop {r4, pc}
__HAL_RCC_USART2_CLK_ENABLE();
8000420: 4b10 ldr r3, [pc, #64] ; (8000464 <HAL_UART_MspInit+0x60>)
8000422: 69d9 ldr r1, [r3, #28]
8000424: 2280 movs r2, #128 ; 0x80
8000426: 0292 lsls r2, r2, #10
8000428: 4311 orrs r1, r2
800042a: 61d9 str r1, [r3, #28]
800042c: 69d9 ldr r1, [r3, #28]
800042e: 4011 ands r1, r2
8000430: 9101 str r1, [sp, #4]
8000432: 9901 ldr r1, [sp, #4]
__HAL_RCC_GPIOA_CLK_ENABLE();
8000434: 6959 ldr r1, [r3, #20]
8000436: 4311 orrs r1, r2
8000438: 6159 str r1, [r3, #20]
800043a: 695b ldr r3, [r3, #20]
800043c: 4013 ands r3, r2
800043e: 9302 str r3, [sp, #8]
8000440: 9b02 ldr r3, [sp, #8]
GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
8000442: 230c movs r3, #12
8000444: 9303 str r3, [sp, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8000446: 3b0a subs r3, #10
8000448: 9304 str r3, [sp, #16]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
800044a: 3301 adds r3, #1
800044c: 9306 str r3, [sp, #24]
GPIO_InitStruct.Alternate = GPIO_AF1_USART2;
800044e: 3b02 subs r3, #2
8000450: 9307 str r3, [sp, #28]
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
8000452: 2090 movs r0, #144 ; 0x90
8000454: a903 add r1, sp, #12
8000456: 05c0 lsls r0, r0, #23
8000458: f000 f8ae bl 80005b8 <HAL_GPIO_Init>
}
800045c: e7de b.n 800041c <HAL_UART_MspInit+0x18>
800045e: 46c0 nop ; (mov r8, r8)
8000460: 40004400 .word 0x40004400
8000464: 40021000 .word 0x40021000
08000468 <NMI_Handler>:
{
/* USER CODE BEGIN NonMaskableInt_IRQn 0 */
/* USER CODE END NonMaskableInt_IRQn 0 */
/* USER CODE BEGIN NonMaskableInt_IRQn 1 */
while (1)
8000468: e7fe b.n 8000468 <NMI_Handler>
0800046a <HardFault_Handler>:
void HardFault_Handler(void)
{
/* USER CODE BEGIN HardFault_IRQn 0 */
/* USER CODE END HardFault_IRQn 0 */
while (1)
800046a: e7fe b.n 800046a <HardFault_Handler>
0800046c <SVC_Handler>:
/* USER CODE END SVC_IRQn 0 */
/* USER CODE BEGIN SVC_IRQn 1 */
/* USER CODE END SVC_IRQn 1 */
}
800046c: 4770 bx lr
0800046e <PendSV_Handler>:
/* USER CODE END PendSV_IRQn 0 */
/* USER CODE BEGIN PendSV_IRQn 1 */
/* USER CODE END PendSV_IRQn 1 */
}
800046e: 4770 bx lr
08000470 <SysTick_Handler>:
/**
* @brief This function handles System tick timer.
*/
void SysTick_Handler(void)
{
8000470: b510 push {r4, lr}
/* USER CODE BEGIN SysTick_IRQn 0 */
/* USER CODE END SysTick_IRQn 0 */
HAL_IncTick();
8000472: f000 f83b bl 80004ec <HAL_IncTick>
/* USER CODE BEGIN SysTick_IRQn 1 */
/* USER CODE END SysTick_IRQn 1 */
}
8000476: bd10 pop {r4, pc}
08000478 <SystemInit>:
before branch to main program. This call is made inside
the "startup_stm32f0xx.s" file.
User can setups the default system clock (System clock source, PLL Multiplier
and Divider factors, AHB/APBx prescalers and Flash settings).
*/
}
8000478: 4770 bx lr
...
0800047c <HAL_InitTick>:
* implementation in user file.
* @param TickPriority Tick interrupt priority.
* @retval HAL status
*/
__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
{
800047c: b510 push {r4, lr}
800047e: 0004 movs r4, r0
/*Configure the SysTick to have interrupt in 1ms time basis*/
if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U)
8000480: 4b0f ldr r3, [pc, #60] ; (80004c0 <HAL_InitTick+0x44>)
8000482: 7819 ldrb r1, [r3, #0]
8000484: 20fa movs r0, #250 ; 0xfa
8000486: 0080 lsls r0, r0, #2
8000488: f7ff fe1a bl 80000c0 <__udivsi3>
800048c: 0001 movs r1, r0
800048e: 4b0d ldr r3, [pc, #52] ; (80004c4 <HAL_InitTick+0x48>)
8000490: 6818 ldr r0, [r3, #0]
8000492: f7ff fe15 bl 80000c0 <__udivsi3>
8000496: f000 f88b bl 80005b0 <HAL_SYSTICK_Config>
800049a: 2800 cmp r0, #0
800049c: d10d bne.n 80004ba <HAL_InitTick+0x3e>
{
return HAL_ERROR;
}
/* Configure the SysTick IRQ priority */
if (TickPriority < (1UL << __NVIC_PRIO_BITS))
800049e: 2c03 cmp r4, #3
80004a0: d901 bls.n 80004a6 <HAL_InitTick+0x2a>
HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U);
uwTickPrio = TickPriority;
}
else
{
return HAL_ERROR;
80004a2: 2001 movs r0, #1
80004a4: e00a b.n 80004bc <HAL_InitTick+0x40>
HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U);
80004a6: 3001 adds r0, #1
80004a8: 2200 movs r2, #0
80004aa: 0021 movs r1, r4
80004ac: 4240 negs r0, r0
80004ae: f000 f87b bl 80005a8 <HAL_NVIC_SetPriority>
uwTickPrio = TickPriority;
80004b2: 4b05 ldr r3, [pc, #20] ; (80004c8 <HAL_InitTick+0x4c>)
80004b4: 601c str r4, [r3, #0]
}
/* Return function status */
return HAL_OK;
80004b6: 2000 movs r0, #0
80004b8: e000 b.n 80004bc <HAL_InitTick+0x40>
return HAL_ERROR;
80004ba: 2001 movs r0, #1
}
80004bc: bd10 pop {r4, pc}
80004be: 46c0 nop ; (mov r8, r8)
80004c0: 20000004 .word 0x20000004
80004c4: 20000000 .word 0x20000000
80004c8: 20000008 .word 0x20000008
080004cc <HAL_Init>:
{
80004cc: b510 push {r4, lr}
__HAL_FLASH_PREFETCH_BUFFER_ENABLE();
80004ce: 4a06 ldr r2, [pc, #24] ; (80004e8 <HAL_Init+0x1c>)
80004d0: 6813 ldr r3, [r2, #0]
80004d2: 2110 movs r1, #16
80004d4: 430b orrs r3, r1
80004d6: 6013 str r3, [r2, #0]
HAL_InitTick(TICK_INT_PRIORITY);
80004d8: 2003 movs r0, #3
80004da: f7ff ffcf bl 800047c <HAL_InitTick>
HAL_MspInit();
80004de: f7ff ff45 bl 800036c <HAL_MspInit>
}
80004e2: 2000 movs r0, #0
80004e4: bd10 pop {r4, pc}
80004e6: 46c0 nop ; (mov r8, r8)
80004e8: 40022000 .word 0x40022000
080004ec <HAL_IncTick>:
* implementations in user file.
* @retval None
*/
__weak void HAL_IncTick(void)
{
uwTick += uwTickFreq;
80004ec: 4a03 ldr r2, [pc, #12] ; (80004fc <HAL_IncTick+0x10>)
80004ee: 6811 ldr r1, [r2, #0]
80004f0: 4b03 ldr r3, [pc, #12] ; (8000500 <HAL_IncTick+0x14>)
80004f2: 781b ldrb r3, [r3, #0]
80004f4: 185b adds r3, r3, r1
80004f6: 6013 str r3, [r2, #0]
}
80004f8: 4770 bx lr
80004fa: 46c0 nop ; (mov r8, r8)
80004fc: 20000104 .word 0x20000104
8000500: 20000004 .word 0x20000004
08000504 <HAL_GetTick>:
* implementations in user file.
* @retval tick value
*/
__weak uint32_t HAL_GetTick(void)
{
return uwTick;
8000504: 4b01 ldr r3, [pc, #4] ; (800050c <HAL_GetTick+0x8>)
8000506: 6818 ldr r0, [r3, #0]
}
8000508: 4770 bx lr
800050a: 46c0 nop ; (mov r8, r8)
800050c: 20000104 .word 0x20000104
08000510 <__NVIC_SetPriority>:
\param [in] IRQn Interrupt number.
\param [in] priority Priority to set.
\note The priority cannot be set for every processor exception.
*/
__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
{
8000510: b570 push {r4, r5, r6, lr}
if ((int32_t)(IRQn) >= 0)
8000512: 2800 cmp r0, #0
8000514: db11 blt.n 800053a <__NVIC_SetPriority+0x2a>
{
NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
8000516: 0883 lsrs r3, r0, #2
8000518: 4d13 ldr r5, [pc, #76] ; (8000568 <__NVIC_SetPriority+0x58>)
800051a: 33c0 adds r3, #192 ; 0xc0
800051c: 009b lsls r3, r3, #2
800051e: 595c ldr r4, [r3, r5]
8000520: 2203 movs r2, #3
8000522: 4010 ands r0, r2
8000524: 00c0 lsls r0, r0, #3
8000526: 32fc adds r2, #252 ; 0xfc
8000528: 0016 movs r6, r2
800052a: 4086 lsls r6, r0
800052c: 43b4 bics r4, r6
(((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn)));
800052e: 0189 lsls r1, r1, #6
8000530: 400a ands r2, r1
8000532: 4082 lsls r2, r0
NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
8000534: 4322 orrs r2, r4
8000536: 515a str r2, [r3, r5]
else
{
SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
(((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn)));
}
}
8000538: bd70 pop {r4, r5, r6, pc}
SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
800053a: 230f movs r3, #15
800053c: 4003 ands r3, r0
800053e: 3b08 subs r3, #8
8000540: 089b lsrs r3, r3, #2
8000542: 3306 adds r3, #6
8000544: 009b lsls r3, r3, #2
8000546: 4a09 ldr r2, [pc, #36] ; (800056c <__NVIC_SetPriority+0x5c>)
8000548: 4694 mov ip, r2
800054a: 4463 add r3, ip
800054c: 685c ldr r4, [r3, #4]
800054e: 2203 movs r2, #3
8000550: 4010 ands r0, r2
8000552: 00c0 lsls r0, r0, #3
8000554: 32fc adds r2, #252 ; 0xfc
8000556: 0015 movs r5, r2
8000558: 4085 lsls r5, r0
800055a: 43ac bics r4, r5
(((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn)));
800055c: 0189 lsls r1, r1, #6
800055e: 400a ands r2, r1
8000560: 4082 lsls r2, r0
SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
8000562: 4322 orrs r2, r4
8000564: 605a str r2, [r3, #4]
}
8000566: e7e7 b.n 8000538 <__NVIC_SetPriority+0x28>
8000568: e000e100 .word 0xe000e100
800056c: e000ed00 .word 0xe000ed00
08000570 <SysTick_Config>:
function <b>SysTick_Config</b> is not included. In this case, the file <b><i>device</i>.h</b>
must contain a vendor-specific implementation of this function.
*/
__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
{
if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk)
8000570: 3801 subs r0, #1
8000572: 2380 movs r3, #128 ; 0x80
8000574: 045b lsls r3, r3, #17
8000576: 4298 cmp r0, r3
8000578: d20f bcs.n 800059a <SysTick_Config+0x2a>
{
return (1UL); /* Reload value impossible */
}
SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */
800057a: 4a09 ldr r2, [pc, #36] ; (80005a0 <SysTick_Config+0x30>)
800057c: 6050 str r0, [r2, #4]
SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
800057e: 4809 ldr r0, [pc, #36] ; (80005a4 <SysTick_Config+0x34>)
8000580: 6a03 ldr r3, [r0, #32]
8000582: 021b lsls r3, r3, #8
8000584: 0a1b lsrs r3, r3, #8
8000586: 21c0 movs r1, #192 ; 0xc0
8000588: 0609 lsls r1, r1, #24
800058a: 430b orrs r3, r1
800058c: 6203 str r3, [r0, #32]
NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */
SysTick->VAL = 0UL; /* Load the SysTick Counter Value */
800058e: 2300 movs r3, #0
8000590: 6093 str r3, [r2, #8]
SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
8000592: 3307 adds r3, #7
8000594: 6013 str r3, [r2, #0]
SysTick_CTRL_TICKINT_Msk |
SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */
return (0UL); /* Function successful */
8000596: 2000 movs r0, #0
}
8000598: 4770 bx lr
return (1UL); /* Reload value impossible */
800059a: 2001 movs r0, #1
800059c: e7fc b.n 8000598 <SysTick_Config+0x28>
800059e: 46c0 nop ; (mov r8, r8)
80005a0: e000e010 .word 0xe000e010
80005a4: e000ed00 .word 0xe000ed00
080005a8 <HAL_NVIC_SetPriority>:
* with stm32f0xx devices, this parameter is a dummy value and it is ignored, because
* no subpriority supported in Cortex M0 based products.
* @retval None
*/
void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
{
80005a8: b510 push {r4, lr}
/* Check the parameters */
assert_param(IS_NVIC_PREEMPTION_PRIORITY(PreemptPriority));
NVIC_SetPriority(IRQn,PreemptPriority);
80005aa: f7ff ffb1 bl 8000510 <__NVIC_SetPriority>
}
80005ae: bd10 pop {r4, pc}
080005b0 <HAL_SYSTICK_Config>:
* @param TicksNumb Specifies the ticks Number of ticks between two interrupts.
* @retval status: - 0 Function succeeded.
* - 1 Function failed.
*/
uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb)
{
80005b0: b510 push {r4, lr}
return SysTick_Config(TicksNumb);
80005b2: f7ff ffdd bl 8000570 <SysTick_Config>
}
80005b6: bd10 pop {r4, pc}
080005b8 <HAL_GPIO_Init>:
* @param GPIO_Init pointer to a GPIO_InitTypeDef structure that contains
* the configuration information for the specified GPIO peripheral.
* @retval None
*/
void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)
{
80005b8: b5f0 push {r4, r5, r6, r7, lr}
80005ba: b083 sub sp, #12
uint32_t position = 0x00u;
80005bc: 2300 movs r3, #0
assert_param(IS_GPIO_ALL_INSTANCE(GPIOx));
assert_param(IS_GPIO_PIN(GPIO_Init->Pin));
assert_param(IS_GPIO_MODE(GPIO_Init->Mode));
/* Configure the port pins */
while (((GPIO_Init->Pin) >> position) != 0x00u)
80005be: e056 b.n 800066e <HAL_GPIO_Init+0xb6>
((GPIO_Init->Mode & GPIO_MODE) == MODE_AF))
{
/* Check the Speed parameter */
assert_param(IS_GPIO_SPEED(GPIO_Init->Speed));
/* Configure the IO Speed */
temp = GPIOx->OSPEEDR;
80005c0: 6886 ldr r6, [r0, #8]
temp &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2u));
80005c2: 005f lsls r7, r3, #1
80005c4: 2403 movs r4, #3
80005c6: 40bc lsls r4, r7
80005c8: 43a6 bics r6, r4
temp |= (GPIO_Init->Speed << (position * 2u));
80005ca: 68cc ldr r4, [r1, #12]
80005cc: 40bc lsls r4, r7
80005ce: 4334 orrs r4, r6
GPIOx->OSPEEDR = temp;
80005d0: 6084 str r4, [r0, #8]
/* Configure the IO Output Type */
temp = GPIOx->OTYPER;
80005d2: 6844 ldr r4, [r0, #4]
temp &= ~(GPIO_OTYPER_OT_0 << position) ;
80005d4: 4394 bics r4, r2
temp |= (((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position);
80005d6: 684e ldr r6, [r1, #4]
80005d8: 0936 lsrs r6, r6, #4
80005da: 2201 movs r2, #1
80005dc: 4032 ands r2, r6
80005de: 409a lsls r2, r3
80005e0: 4322 orrs r2, r4
GPIOx->OTYPER = temp;
80005e2: 6042 str r2, [r0, #4]
80005e4: e053 b.n 800068e <HAL_GPIO_Init+0xd6>
/* Check the Alternate function parameters */
assert_param(IS_GPIO_AF_INSTANCE(GPIOx));
assert_param(IS_GPIO_AF(GPIO_Init->Alternate));
/* Configure Alternate function mapped with the current IO */
temp = GPIOx->AFR[position >> 3u];
80005e6: 08de lsrs r6, r3, #3
80005e8: 3608 adds r6, #8
80005ea: 00b6 lsls r6, r6, #2
80005ec: 5837 ldr r7, [r6, r0]
temp &= ~(0xFu << ((position & 0x07u) * 4u));
80005ee: 3205 adds r2, #5
80005f0: 401a ands r2, r3
80005f2: 0092 lsls r2, r2, #2
80005f4: 240f movs r4, #15
80005f6: 4094 lsls r4, r2
80005f8: 43a7 bics r7, r4
temp |= ((GPIO_Init->Alternate) << ((position & 0x07u) * 4u));