source: trunk/firmware_v3/STM32CubeIDE/Debug/firmware_v2.list

Last change on this file was 41, checked in by f.jahn, 8 days ago

V3 Version soweit fertig. Relais ansteuerung, modbus, temperatursensor ist implementiert
Commit vor Änderung auf neuen Controller mit mehr Speicher

File size: 242.8 KB
Line 
1
2firmware_v2.elf: file format elf32-littlearm
3
4Sections:
5Idx Name Size VMA LMA File off Algn
6 0 .isr_vector 000000c0 08000000 08000000 00001000 2**0
7 CONTENTS, ALLOC, LOAD, READONLY, DATA
8 1 .text 000026a8 080000c0 080000c0 000010c0 2**2
9 CONTENTS, ALLOC, LOAD, READONLY, CODE
10 2 .rodata 00000244 08002768 08002768 00003768 2**2
11 CONTENTS, ALLOC, LOAD, READONLY, DATA
12 3 .ARM.extab 00000000 080029ac 080029ac 00004068 2**0
13 CONTENTS, READONLY
14 4 .ARM 00000000 080029ac 080029ac 00004068 2**0
15 CONTENTS, READONLY
16 5 .preinit_array 00000000 080029ac 080029ac 00004068 2**0
17 CONTENTS, ALLOC, LOAD, DATA
18 6 .init_array 00000004 080029ac 080029ac 000039ac 2**2
19 CONTENTS, ALLOC, LOAD, READONLY, DATA
20 7 .fini_array 00000004 080029b0 080029b0 000039b0 2**2
21 CONTENTS, ALLOC, LOAD, READONLY, DATA
22 8 .data 00000068 20000000 080029b4 00004000 2**2
23 CONTENTS, ALLOC, LOAD, DATA
24 9 .bss 00000234 20000068 08002a1c 00004068 2**2
25 ALLOC
26 10 ._user_heap_stack 00000604 2000029c 08002a1c 0000429c 2**0
27 ALLOC
28 11 .ARM.attributes 00000028 00000000 00000000 00004068 2**0
29 CONTENTS, READONLY
30 12 .debug_info 000077b2 00000000 00000000 00004090 2**0
31 CONTENTS, READONLY, DEBUGGING, OCTETS
32 13 .debug_abbrev 00002266 00000000 00000000 0000b842 2**0
33 CONTENTS, READONLY, DEBUGGING, OCTETS
34 14 .debug_loclists 00001831 00000000 00000000 0000daa8 2**0
35 CONTENTS, READONLY, DEBUGGING, OCTETS
36 15 .debug_aranges 000006c8 00000000 00000000 0000f2e0 2**3
37 CONTENTS, READONLY, DEBUGGING, OCTETS
38 16 .debug_rnglists 000004f6 00000000 00000000 0000f9a8 2**0
39 CONTENTS, READONLY, DEBUGGING, OCTETS
40 17 .debug_macro 00016e46 00000000 00000000 0000fe9e 2**0
41 CONTENTS, READONLY, DEBUGGING, OCTETS
42 18 .debug_line 0000ce5f 00000000 00000000 00026ce4 2**0
43 CONTENTS, READONLY, DEBUGGING, OCTETS
44 19 .debug_str 000898c0 00000000 00000000 00033b43 2**0
45 CONTENTS, READONLY, DEBUGGING, OCTETS
46 20 .comment 00000043 00000000 00000000 000bd403 2**0
47 CONTENTS, READONLY
48 21 .debug_frame 00001620 00000000 00000000 000bd448 2**2
49 CONTENTS, READONLY, DEBUGGING, OCTETS
50 22 .debug_line_str 00000072 00000000 00000000 000bea68 2**0
51 CONTENTS, READONLY, DEBUGGING, OCTETS
52
53Disassembly of section .text:
54
55080000c0 <__do_global_dtors_aux>:
56 80000c0: b510 push {r4, lr}
57 80000c2: 4c06 ldr r4, [pc, #24] @ (80000dc <__do_global_dtors_aux+0x1c>)
58 80000c4: 7823 ldrb r3, [r4, #0]
59 80000c6: 2b00 cmp r3, #0
60 80000c8: d107 bne.n 80000da <__do_global_dtors_aux+0x1a>
61 80000ca: 4b05 ldr r3, [pc, #20] @ (80000e0 <__do_global_dtors_aux+0x20>)
62 80000cc: 2b00 cmp r3, #0
63 80000ce: d002 beq.n 80000d6 <__do_global_dtors_aux+0x16>
64 80000d0: 4804 ldr r0, [pc, #16] @ (80000e4 <__do_global_dtors_aux+0x24>)
65 80000d2: e000 b.n 80000d6 <__do_global_dtors_aux+0x16>
66 80000d4: bf00 nop
67 80000d6: 2301 movs r3, #1
68 80000d8: 7023 strb r3, [r4, #0]
69 80000da: bd10 pop {r4, pc}
70 80000dc: 20000068 .word 0x20000068
71 80000e0: 00000000 .word 0x00000000
72 80000e4: 08002750 .word 0x08002750
73
74080000e8 <frame_dummy>:
75 80000e8: 4b04 ldr r3, [pc, #16] @ (80000fc <frame_dummy+0x14>)
76 80000ea: b510 push {r4, lr}
77 80000ec: 2b00 cmp r3, #0
78 80000ee: d003 beq.n 80000f8 <frame_dummy+0x10>
79 80000f0: 4903 ldr r1, [pc, #12] @ (8000100 <frame_dummy+0x18>)
80 80000f2: 4804 ldr r0, [pc, #16] @ (8000104 <frame_dummy+0x1c>)
81 80000f4: e000 b.n 80000f8 <frame_dummy+0x10>
82 80000f6: bf00 nop
83 80000f8: bd10 pop {r4, pc}
84 80000fa: 46c0 nop @ (mov r8, r8)
85 80000fc: 00000000 .word 0x00000000
86 8000100: 2000006c .word 0x2000006c
87 8000104: 08002750 .word 0x08002750
88
8908000108 <__gnu_thumb1_case_shi>:
90 8000108: b403 push {r0, r1}
91 800010a: 4671 mov r1, lr
92 800010c: 0849 lsrs r1, r1, #1
93 800010e: 0040 lsls r0, r0, #1
94 8000110: 0049 lsls r1, r1, #1
95 8000112: 5e09 ldrsh r1, [r1, r0]
96 8000114: 0049 lsls r1, r1, #1
97 8000116: 448e add lr, r1
98 8000118: bc03 pop {r0, r1}
99 800011a: 4770 bx lr
100
1010800011c <__udivsi3>:
102 800011c: 2200 movs r2, #0
103 800011e: 0843 lsrs r3, r0, #1
104 8000120: 428b cmp r3, r1
105 8000122: d374 bcc.n 800020e <__udivsi3+0xf2>
106 8000124: 0903 lsrs r3, r0, #4
107 8000126: 428b cmp r3, r1
108 8000128: d35f bcc.n 80001ea <__udivsi3+0xce>
109 800012a: 0a03 lsrs r3, r0, #8
110 800012c: 428b cmp r3, r1
111 800012e: d344 bcc.n 80001ba <__udivsi3+0x9e>
112 8000130: 0b03 lsrs r3, r0, #12
113 8000132: 428b cmp r3, r1
114 8000134: d328 bcc.n 8000188 <__udivsi3+0x6c>
115 8000136: 0c03 lsrs r3, r0, #16
116 8000138: 428b cmp r3, r1
117 800013a: d30d bcc.n 8000158 <__udivsi3+0x3c>
118 800013c: 22ff movs r2, #255 @ 0xff
119 800013e: 0209 lsls r1, r1, #8
120 8000140: ba12 rev r2, r2
121 8000142: 0c03 lsrs r3, r0, #16
122 8000144: 428b cmp r3, r1
123 8000146: d302 bcc.n 800014e <__udivsi3+0x32>
124 8000148: 1212 asrs r2, r2, #8
125 800014a: 0209 lsls r1, r1, #8
126 800014c: d065 beq.n 800021a <__udivsi3+0xfe>
127 800014e: 0b03 lsrs r3, r0, #12
128 8000150: 428b cmp r3, r1
129 8000152: d319 bcc.n 8000188 <__udivsi3+0x6c>
130 8000154: e000 b.n 8000158 <__udivsi3+0x3c>
131 8000156: 0a09 lsrs r1, r1, #8
132 8000158: 0bc3 lsrs r3, r0, #15
133 800015a: 428b cmp r3, r1
134 800015c: d301 bcc.n 8000162 <__udivsi3+0x46>
135 800015e: 03cb lsls r3, r1, #15
136 8000160: 1ac0 subs r0, r0, r3
137 8000162: 4152 adcs r2, r2
138 8000164: 0b83 lsrs r3, r0, #14
139 8000166: 428b cmp r3, r1
140 8000168: d301 bcc.n 800016e <__udivsi3+0x52>
141 800016a: 038b lsls r3, r1, #14
142 800016c: 1ac0 subs r0, r0, r3
143 800016e: 4152 adcs r2, r2
144 8000170: 0b43 lsrs r3, r0, #13
145 8000172: 428b cmp r3, r1
146 8000174: d301 bcc.n 800017a <__udivsi3+0x5e>
147 8000176: 034b lsls r3, r1, #13
148 8000178: 1ac0 subs r0, r0, r3
149 800017a: 4152 adcs r2, r2
150 800017c: 0b03 lsrs r3, r0, #12
151 800017e: 428b cmp r3, r1
152 8000180: d301 bcc.n 8000186 <__udivsi3+0x6a>
153 8000182: 030b lsls r3, r1, #12
154 8000184: 1ac0 subs r0, r0, r3
155 8000186: 4152 adcs r2, r2
156 8000188: 0ac3 lsrs r3, r0, #11
157 800018a: 428b cmp r3, r1
158 800018c: d301 bcc.n 8000192 <__udivsi3+0x76>
159 800018e: 02cb lsls r3, r1, #11
160 8000190: 1ac0 subs r0, r0, r3
161 8000192: 4152 adcs r2, r2
162 8000194: 0a83 lsrs r3, r0, #10
163 8000196: 428b cmp r3, r1
164 8000198: d301 bcc.n 800019e <__udivsi3+0x82>
165 800019a: 028b lsls r3, r1, #10
166 800019c: 1ac0 subs r0, r0, r3
167 800019e: 4152 adcs r2, r2
168 80001a0: 0a43 lsrs r3, r0, #9
169 80001a2: 428b cmp r3, r1
170 80001a4: d301 bcc.n 80001aa <__udivsi3+0x8e>
171 80001a6: 024b lsls r3, r1, #9
172 80001a8: 1ac0 subs r0, r0, r3
173 80001aa: 4152 adcs r2, r2
174 80001ac: 0a03 lsrs r3, r0, #8
175 80001ae: 428b cmp r3, r1
176 80001b0: d301 bcc.n 80001b6 <__udivsi3+0x9a>
177 80001b2: 020b lsls r3, r1, #8
178 80001b4: 1ac0 subs r0, r0, r3
179 80001b6: 4152 adcs r2, r2
180 80001b8: d2cd bcs.n 8000156 <__udivsi3+0x3a>
181 80001ba: 09c3 lsrs r3, r0, #7
182 80001bc: 428b cmp r3, r1
183 80001be: d301 bcc.n 80001c4 <__udivsi3+0xa8>
184 80001c0: 01cb lsls r3, r1, #7
185 80001c2: 1ac0 subs r0, r0, r3
186 80001c4: 4152 adcs r2, r2
187 80001c6: 0983 lsrs r3, r0, #6
188 80001c8: 428b cmp r3, r1
189 80001ca: d301 bcc.n 80001d0 <__udivsi3+0xb4>
190 80001cc: 018b lsls r3, r1, #6
191 80001ce: 1ac0 subs r0, r0, r3
192 80001d0: 4152 adcs r2, r2
193 80001d2: 0943 lsrs r3, r0, #5
194 80001d4: 428b cmp r3, r1
195 80001d6: d301 bcc.n 80001dc <__udivsi3+0xc0>
196 80001d8: 014b lsls r3, r1, #5
197 80001da: 1ac0 subs r0, r0, r3
198 80001dc: 4152 adcs r2, r2
199 80001de: 0903 lsrs r3, r0, #4
200 80001e0: 428b cmp r3, r1
201 80001e2: d301 bcc.n 80001e8 <__udivsi3+0xcc>
202 80001e4: 010b lsls r3, r1, #4
203 80001e6: 1ac0 subs r0, r0, r3
204 80001e8: 4152 adcs r2, r2
205 80001ea: 08c3 lsrs r3, r0, #3
206 80001ec: 428b cmp r3, r1
207 80001ee: d301 bcc.n 80001f4 <__udivsi3+0xd8>
208 80001f0: 00cb lsls r3, r1, #3
209 80001f2: 1ac0 subs r0, r0, r3
210 80001f4: 4152 adcs r2, r2
211 80001f6: 0883 lsrs r3, r0, #2
212 80001f8: 428b cmp r3, r1
213 80001fa: d301 bcc.n 8000200 <__udivsi3+0xe4>
214 80001fc: 008b lsls r3, r1, #2
215 80001fe: 1ac0 subs r0, r0, r3
216 8000200: 4152 adcs r2, r2
217 8000202: 0843 lsrs r3, r0, #1
218 8000204: 428b cmp r3, r1
219 8000206: d301 bcc.n 800020c <__udivsi3+0xf0>
220 8000208: 004b lsls r3, r1, #1
221 800020a: 1ac0 subs r0, r0, r3
222 800020c: 4152 adcs r2, r2
223 800020e: 1a41 subs r1, r0, r1
224 8000210: d200 bcs.n 8000214 <__udivsi3+0xf8>
225 8000212: 4601 mov r1, r0
226 8000214: 4152 adcs r2, r2
227 8000216: 4610 mov r0, r2
228 8000218: 4770 bx lr
229 800021a: e7ff b.n 800021c <__udivsi3+0x100>
230 800021c: b501 push {r0, lr}
231 800021e: 2000 movs r0, #0
232 8000220: f000 f806 bl 8000230 <__aeabi_idiv0>
233 8000224: bd02 pop {r1, pc}
234 8000226: 46c0 nop @ (mov r8, r8)
235
23608000228 <__aeabi_uidivmod>:
237 8000228: 2900 cmp r1, #0
238 800022a: d0f7 beq.n 800021c <__udivsi3+0x100>
239 800022c: e776 b.n 800011c <__udivsi3>
240 800022e: 4770 bx lr
241
24208000230 <__aeabi_idiv0>:
243 8000230: 4770 bx lr
244 8000232: 46c0 nop @ (mov r8, r8)
245
24608000234 <HAL_MspInit>:
247/* USER CODE END 0 */
248/**
249 * Initializes the Global MSP.
250 */
251void HAL_MspInit(void)
252{
253 8000234: b082 sub sp, #8
254
255 /* USER CODE BEGIN MspInit 0 */
256
257 /* USER CODE END MspInit 0 */
258
259 __HAL_RCC_SYSCFG_CLK_ENABLE();
260 8000236: 4b0a ldr r3, [pc, #40] @ (8000260 <HAL_MspInit+0x2c>)
261 8000238: 6c19 ldr r1, [r3, #64] @ 0x40
262 800023a: 2201 movs r2, #1
263 800023c: 4311 orrs r1, r2
264 800023e: 6419 str r1, [r3, #64] @ 0x40
265 8000240: 6c19 ldr r1, [r3, #64] @ 0x40
266 8000242: 400a ands r2, r1
267 8000244: 9200 str r2, [sp, #0]
268 8000246: 9a00 ldr r2, [sp, #0]
269 __HAL_RCC_PWR_CLK_ENABLE();
270 8000248: 6bda ldr r2, [r3, #60] @ 0x3c
271 800024a: 2180 movs r1, #128 @ 0x80
272 800024c: 0549 lsls r1, r1, #21
273 800024e: 430a orrs r2, r1
274 8000250: 63da str r2, [r3, #60] @ 0x3c
275 8000252: 6bdb ldr r3, [r3, #60] @ 0x3c
276 8000254: 400b ands r3, r1
277 8000256: 9301 str r3, [sp, #4]
278 8000258: 9b01 ldr r3, [sp, #4]
279 /* System interrupt init*/
280
281 /* USER CODE BEGIN MspInit 1 */
282
283 /* USER CODE END MspInit 1 */
284}
285 800025a: b002 add sp, #8
286 800025c: 4770 bx lr
287 800025e: 46c0 nop @ (mov r8, r8)
288 8000260: 40021000 .word 0x40021000
289
29008000264 <NMI_Handler>:
291{
292 /* USER CODE BEGIN NonMaskableInt_IRQn 0 */
293
294 /* USER CODE END NonMaskableInt_IRQn 0 */
295 /* USER CODE BEGIN NonMaskableInt_IRQn 1 */
296 while (1)
297 8000264: e7fe b.n 8000264 <NMI_Handler>
298
29908000266 <HardFault_Handler>:
300void HardFault_Handler(void)
301{
302 /* USER CODE BEGIN HardFault_IRQn 0 */
303
304 /* USER CODE END HardFault_IRQn 0 */
305 while (1)
306 8000266: e7fe b.n 8000266 <HardFault_Handler>
307
30808000268 <SVC_Handler>:
309
310 /* USER CODE END SVC_IRQn 0 */
311 /* USER CODE BEGIN SVC_IRQn 1 */
312
313 /* USER CODE END SVC_IRQn 1 */
314}
315 8000268: 4770 bx lr
316
3170800026a <PendSV_Handler>:
318
319 /* USER CODE END PendSV_IRQn 0 */
320 /* USER CODE BEGIN PendSV_IRQn 1 */
321
322 /* USER CODE END PendSV_IRQn 1 */
323}
324 800026a: 4770 bx lr
325
3260800026c <SysTick_Handler>:
327
328/**
329 * @brief This function handles System tick timer.
330 */
331void SysTick_Handler(void)
332{
333 800026c: b510 push {r4, lr}
334 /* USER CODE BEGIN SysTick_IRQn 0 */
335
336 /* USER CODE END SysTick_IRQn 0 */
337 HAL_IncTick();
338 800026e: f000 f8bf bl 80003f0 <HAL_IncTick>
339 /* USER CODE BEGIN SysTick_IRQn 1 */
340
341 /* USER CODE END SysTick_IRQn 1 */
342}
343 8000272: bd10 pop {r4, pc}
344
34508000274 <DMA1_Channel1_IRQHandler>:
346
347/**
348 * @brief This function handles DMA1 channel 1 interrupt.
349 */
350void DMA1_Channel1_IRQHandler(void)
351{
352 8000274: b510 push {r4, lr}
353 /* USER CODE BEGIN DMA1_Channel1_IRQn 0 */
354
355 /* USER CODE END DMA1_Channel1_IRQn 0 */
356 HAL_DMA_IRQHandler(&hdma_adc1);
357 8000276: 4802 ldr r0, [pc, #8] @ (8000280 <DMA1_Channel1_IRQHandler+0xc>)
358 8000278: f000 f932 bl 80004e0 <HAL_DMA_IRQHandler>
359 /* USER CODE BEGIN DMA1_Channel1_IRQn 1 */
360
361 /* USER CODE END DMA1_Channel1_IRQn 1 */
362}
363 800027c: bd10 pop {r4, pc}
364 800027e: 46c0 nop @ (mov r8, r8)
365 8000280: 20000084 .word 0x20000084
366
36708000284 <_read>:
368 _kill(status, -1);
369 while (1) {} /* Make sure we hang here */
370}
371
372__attribute__((weak)) int _read(int file, char *ptr, int len)
373{
374 8000284: b570 push {r4, r5, r6, lr}
375 8000286: 000c movs r4, r1
376 8000288: 0016 movs r6, r2
377 (void)file;
378 int DataIdx;
379
380 for (DataIdx = 0; DataIdx < len; DataIdx++)
381 800028a: 2500 movs r5, #0
382 800028c: e004 b.n 8000298 <_read+0x14>
383 {
384 *ptr++ = __io_getchar();
385 800028e: e000 b.n 8000292 <_read+0xe>
386 8000290: bf00 nop
387 8000292: 7020 strb r0, [r4, #0]
388 for (DataIdx = 0; DataIdx < len; DataIdx++)
389 8000294: 3501 adds r5, #1
390 *ptr++ = __io_getchar();
391 8000296: 3401 adds r4, #1
392 for (DataIdx = 0; DataIdx < len; DataIdx++)
393 8000298: 42b5 cmp r5, r6
394 800029a: dbf8 blt.n 800028e <_read+0xa>
395 }
396
397 return len;
398}
399 800029c: 0030 movs r0, r6
400 800029e: bd70 pop {r4, r5, r6, pc}
401
402080002a0 <_write>:
403
404__attribute__((weak)) int _write(int file, char *ptr, int len)
405{
406 80002a0: b570 push {r4, r5, r6, lr}
407 80002a2: 0016 movs r6, r2
408 (void)file;
409 int DataIdx;
410
411 for (DataIdx = 0; DataIdx < len; DataIdx++)
412 80002a4: 2400 movs r4, #0
413 80002a6: e005 b.n 80002b4 <_write+0x14>
414 {
415 __io_putchar(*ptr++);
416 80002a8: 1c4d adds r5, r1, #1
417 80002aa: 7808 ldrb r0, [r1, #0]
418 80002ac: e000 b.n 80002b0 <_write+0x10>
419 80002ae: bf00 nop
420 for (DataIdx = 0; DataIdx < len; DataIdx++)
421 80002b0: 3401 adds r4, #1
422 __io_putchar(*ptr++);
423 80002b2: 0029 movs r1, r5
424 for (DataIdx = 0; DataIdx < len; DataIdx++)
425 80002b4: 42b4 cmp r4, r6
426 80002b6: dbf7 blt.n 80002a8 <_write+0x8>
427 }
428 return len;
429}
430 80002b8: 0030 movs r0, r6
431 80002ba: bd70 pop {r4, r5, r6, pc}
432
433080002bc <_close>:
434
435int _close(int file)
436{
437 (void)file;
438 return -1;
439 80002bc: 2001 movs r0, #1
440}
441 80002be: 4240 negs r0, r0
442 80002c0: 4770 bx lr
443
444080002c2 <_fstat>:
445
446
447int _fstat(int file, struct stat *st)
448{
449 (void)file;
450 st->st_mode = S_IFCHR;
451 80002c2: 2380 movs r3, #128 @ 0x80
452 80002c4: 019b lsls r3, r3, #6
453 80002c6: 604b str r3, [r1, #4]
454 return 0;
455}
456 80002c8: 2000 movs r0, #0
457 80002ca: 4770 bx lr
458
459080002cc <_isatty>:
460
461int _isatty(int file)
462{
463 (void)file;
464 return 1;
465}
466 80002cc: 2001 movs r0, #1
467 80002ce: 4770 bx lr
468
469080002d0 <_lseek>:
470{
471 (void)file;
472 (void)ptr;
473 (void)dir;
474 return 0;
475}
476 80002d0: 2000 movs r0, #0
477 80002d2: 4770 bx lr
478
479080002d4 <_sbrk>:
480 *
481 * @param incr Memory size
482 * @return Pointer to allocated memory
483 */
484void *_sbrk(ptrdiff_t incr)
485{
486 80002d4: b510 push {r4, lr}
487 80002d6: 0003 movs r3, r0
488 extern uint8_t _end; /* Symbol defined in the linker script */
489 extern uint8_t _estack; /* Symbol defined in the linker script */
490 extern uint32_t _Min_Stack_Size; /* Symbol defined in the linker script */
491 const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size;
492 80002d8: 4a0c ldr r2, [pc, #48] @ (800030c <_sbrk+0x38>)
493 80002da: 490d ldr r1, [pc, #52] @ (8000310 <_sbrk+0x3c>)
494 80002dc: 1a52 subs r2, r2, r1
495 const uint8_t *max_heap = (uint8_t *)stack_limit;
496 uint8_t *prev_heap_end;
497
498 /* Initialize heap end at first call */
499 if (NULL == __sbrk_heap_end)
500 80002de: 490d ldr r1, [pc, #52] @ (8000314 <_sbrk+0x40>)
501 80002e0: 6809 ldr r1, [r1, #0]
502 80002e2: 2900 cmp r1, #0
503 80002e4: d007 beq.n 80002f6 <_sbrk+0x22>
504 {
505 __sbrk_heap_end = &_end;
506 }
507
508 /* Protect heap from growing into the reserved MSP stack */
509 if (__sbrk_heap_end + incr > max_heap)
510 80002e6: 490b ldr r1, [pc, #44] @ (8000314 <_sbrk+0x40>)
511 80002e8: 6808 ldr r0, [r1, #0]
512 80002ea: 18c3 adds r3, r0, r3
513 80002ec: 4293 cmp r3, r2
514 80002ee: d806 bhi.n 80002fe <_sbrk+0x2a>
515 errno = ENOMEM;
516 return (void *)-1;
517 }
518
519 prev_heap_end = __sbrk_heap_end;
520 __sbrk_heap_end += incr;
521 80002f0: 4a08 ldr r2, [pc, #32] @ (8000314 <_sbrk+0x40>)
522 80002f2: 6013 str r3, [r2, #0]
523
524 return (void *)prev_heap_end;
525}
526 80002f4: bd10 pop {r4, pc}
527 __sbrk_heap_end = &_end;
528 80002f6: 4907 ldr r1, [pc, #28] @ (8000314 <_sbrk+0x40>)
529 80002f8: 4807 ldr r0, [pc, #28] @ (8000318 <_sbrk+0x44>)
530 80002fa: 6008 str r0, [r1, #0]
531 80002fc: e7f3 b.n 80002e6 <_sbrk+0x12>
532 errno = ENOMEM;
533 80002fe: f001 fcdd bl 8001cbc <__errno>
534 8000302: 230c movs r3, #12
535 8000304: 6003 str r3, [r0, #0]
536 return (void *)-1;
537 8000306: 2001 movs r0, #1
538 8000308: 4240 negs r0, r0
539 800030a: e7f3 b.n 80002f4 <_sbrk+0x20>
540 800030c: 20003000 .word 0x20003000
541 8000310: 00000400 .word 0x00000400
542 8000314: 200000e0 .word 0x200000e0
543 8000318: 200002a0 .word 0x200002a0
544
5450800031c <Reset_Handler>:
546
547 .section .text.Reset_Handler
548 .weak Reset_Handler
549 .type Reset_Handler, %function
550Reset_Handler:
551 ldr r0, =_estack
552 800031c: 480d ldr r0, [pc, #52] @ (8000354 <LoopForever+0x2>)
553 mov sp, r0 /* set stack pointer */
554 800031e: 4685 mov sp, r0
555/* Call the clock system initialization function.*/
556 bl SystemInit
557 8000320: f000 f826 bl 8000370 <SystemInit>
558
559/* Copy the data segment initializers from flash to SRAM */
560 movs r1, #0
561 8000324: 2100 movs r1, #0
562 b LoopCopyDataInit
563 8000326: e003 b.n 8000330 <LoopCopyDataInit>
564
56508000328 <CopyDataInit>:
566
567CopyDataInit:
568 ldr r3, =_sidata
569 8000328: 4b0b ldr r3, [pc, #44] @ (8000358 <LoopForever+0x6>)
570 ldr r3, [r3, r1]
571 800032a: 585b ldr r3, [r3, r1]
572 str r3, [r0, r1]
573 800032c: 5043 str r3, [r0, r1]
574 adds r1, r1, #4
575 800032e: 3104 adds r1, #4
576
57708000330 <LoopCopyDataInit>:
578
579LoopCopyDataInit:
580 ldr r0, =_sdata
581 8000330: 480a ldr r0, [pc, #40] @ (800035c <LoopForever+0xa>)
582 ldr r3, =_edata
583 8000332: 4b0b ldr r3, [pc, #44] @ (8000360 <LoopForever+0xe>)
584 adds r2, r0, r1
585 8000334: 1842 adds r2, r0, r1
586 cmp r2, r3
587 8000336: 429a cmp r2, r3
588 bcc CopyDataInit
589 8000338: d3f6 bcc.n 8000328 <CopyDataInit>
590 ldr r2, =_sbss
591 800033a: 4a0a ldr r2, [pc, #40] @ (8000364 <LoopForever+0x12>)
592 b LoopFillZerobss
593 800033c: e002 b.n 8000344 <LoopFillZerobss>
594
5950800033e <FillZerobss>:
596/* Zero fill the bss segment. */
597FillZerobss:
598 movs r3, #0
599 800033e: 2300 movs r3, #0
600 str r3, [r2]
601 8000340: 6013 str r3, [r2, #0]
602 adds r2, r2, #4
603 8000342: 3204 adds r2, #4
604
60508000344 <LoopFillZerobss>:
606
607
608LoopFillZerobss:
609 ldr r3, = _ebss
610 8000344: 4b08 ldr r3, [pc, #32] @ (8000368 <LoopForever+0x16>)
611 cmp r2, r3
612 8000346: 429a cmp r2, r3
613 bcc FillZerobss
614 8000348: d3f9 bcc.n 800033e <FillZerobss>
615
616
617/* Call static constructors */
618 bl __libc_init_array
619 800034a: f001 fcbd bl 8001cc8 <__libc_init_array>
620/* Call the application's entry point.*/
621 bl main
622 800034e: f000 fed3 bl 80010f8 <main>
623
62408000352 <LoopForever>:
625
626LoopForever:
627 b LoopForever
628 8000352: e7fe b.n 8000352 <LoopForever>
629 ldr r0, =_estack
630 8000354: 20003000 .word 0x20003000
631 ldr r3, =_sidata
632 8000358: 080029b4 .word 0x080029b4
633 ldr r0, =_sdata
634 800035c: 20000000 .word 0x20000000
635 ldr r3, =_edata
636 8000360: 20000068 .word 0x20000068
637 ldr r2, =_sbss
638 8000364: 20000068 .word 0x20000068
639 ldr r3, = _ebss
640 8000368: 2000029c .word 0x2000029c
641
6420800036c <ADC1_IRQHandler>:
643 * @retval : None
644*/
645 .section .text.Default_Handler,"ax",%progbits
646Default_Handler:
647Infinite_Loop:
648 b Infinite_Loop
649 800036c: e7fe b.n 800036c <ADC1_IRQHandler>
650 ...
651
65208000370 <SystemInit>:
653
654 /* Configure the Vector Table location add offset address ------------------*/
655#ifdef VECT_TAB_SRAM
656 SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
657#else
658 SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */
659 8000370: 4b02 ldr r3, [pc, #8] @ (800037c <SystemInit+0xc>)
660 8000372: 2280 movs r2, #128 @ 0x80
661 8000374: 0512 lsls r2, r2, #20
662 8000376: 609a str r2, [r3, #8]
663#endif
664}
665 8000378: 4770 bx lr
666 800037a: 46c0 nop @ (mov r8, r8)
667 800037c: e000ed00 .word 0xe000ed00
668
66908000380 <HAL_InitTick>:
670 * implementation in user file.
671 * @param TickPriority Tick interrupt priority.
672 * @retval HAL status
673 */
674__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
675{
676 8000380: b510 push {r4, lr}
677 8000382: 0004 movs r4, r0
678 HAL_StatusTypeDef status = HAL_OK;
679
680 if ((uint32_t)uwTickFreq != 0UL)
681 8000384: 4b11 ldr r3, [pc, #68] @ (80003cc <HAL_InitTick+0x4c>)
682 8000386: 7819 ldrb r1, [r3, #0]
683 8000388: 2900 cmp r1, #0
684 800038a: d101 bne.n 8000390 <HAL_InitTick+0x10>
685 status = HAL_ERROR;
686 }
687 }
688 else
689 {
690 status = HAL_ERROR;
691 800038c: 2001 movs r0, #1
692 }
693
694 /* Return function status */
695 return status;
696}
697 800038e: bd10 pop {r4, pc}
698 if (HAL_SYSTICK_Config(SystemCoreClock / (1000UL / (uint32_t)uwTickFreq)) == 0U)
699 8000390: 20fa movs r0, #250 @ 0xfa
700 8000392: 0080 lsls r0, r0, #2
701 8000394: f7ff fec2 bl 800011c <__udivsi3>
702 8000398: 0001 movs r1, r0
703 800039a: 4b0d ldr r3, [pc, #52] @ (80003d0 <HAL_InitTick+0x50>)
704 800039c: 6818 ldr r0, [r3, #0]
705 800039e: f7ff febd bl 800011c <__udivsi3>
706 80003a2: f000 f899 bl 80004d8 <HAL_SYSTICK_Config>
707 80003a6: 2800 cmp r0, #0
708 80003a8: d10d bne.n 80003c6 <HAL_InitTick+0x46>
709 if (TickPriority < (1UL << __NVIC_PRIO_BITS))
710 80003aa: 2c03 cmp r4, #3
711 80003ac: d901 bls.n 80003b2 <HAL_InitTick+0x32>
712 status = HAL_ERROR;
713 80003ae: 2001 movs r0, #1
714 80003b0: e7ed b.n 800038e <HAL_InitTick+0xe>
715 HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U);
716 80003b2: 3001 adds r0, #1
717 80003b4: 2200 movs r2, #0
718 80003b6: 0021 movs r1, r4
719 80003b8: 4240 negs r0, r0
720 80003ba: f000 f889 bl 80004d0 <HAL_NVIC_SetPriority>
721 uwTickPrio = TickPriority;
722 80003be: 4b05 ldr r3, [pc, #20] @ (80003d4 <HAL_InitTick+0x54>)
723 80003c0: 601c str r4, [r3, #0]
724 HAL_StatusTypeDef status = HAL_OK;
725 80003c2: 2000 movs r0, #0
726 80003c4: e7e3 b.n 800038e <HAL_InitTick+0xe>
727 status = HAL_ERROR;
728 80003c6: 2001 movs r0, #1
729 80003c8: e7e1 b.n 800038e <HAL_InitTick+0xe>
730 80003ca: 46c0 nop @ (mov r8, r8)
731 80003cc: 20000004 .word 0x20000004
732 80003d0: 20000000 .word 0x20000000
733 80003d4: 20000008 .word 0x20000008
734
735080003d8 <HAL_Init>:
736{
737 80003d8: b510 push {r4, lr}
738 if (HAL_InitTick(TICK_INT_PRIORITY) != HAL_OK)
739 80003da: 2003 movs r0, #3
740 80003dc: f7ff ffd0 bl 8000380 <HAL_InitTick>
741 80003e0: 1e04 subs r4, r0, #0
742 80003e2: d002 beq.n 80003ea <HAL_Init+0x12>
743 status = HAL_ERROR;
744 80003e4: 2401 movs r4, #1
745}
746 80003e6: 0020 movs r0, r4
747 80003e8: bd10 pop {r4, pc}
748 HAL_MspInit();
749 80003ea: f7ff ff23 bl 8000234 <HAL_MspInit>
750 80003ee: e7fa b.n 80003e6 <HAL_Init+0xe>
751
752080003f0 <HAL_IncTick>:
753 * implementations in user file.
754 * @retval None
755 */
756__weak void HAL_IncTick(void)
757{
758 uwTick += (uint32_t)uwTickFreq;
759 80003f0: 4b03 ldr r3, [pc, #12] @ (8000400 <HAL_IncTick+0x10>)
760 80003f2: 781b ldrb r3, [r3, #0]
761 80003f4: 4a03 ldr r2, [pc, #12] @ (8000404 <HAL_IncTick+0x14>)
762 80003f6: 6811 ldr r1, [r2, #0]
763 80003f8: 185b adds r3, r3, r1
764 80003fa: 6013 str r3, [r2, #0]
765}
766 80003fc: 4770 bx lr
767 80003fe: 46c0 nop @ (mov r8, r8)
768 8000400: 20000004 .word 0x20000004
769 8000404: 200000e4 .word 0x200000e4
770
77108000408 <HAL_GetTick>:
772 * implementations in user file.
773 * @retval tick value
774 */
775__weak uint32_t HAL_GetTick(void)
776{
777 return uwTick;
778 8000408: 4b01 ldr r3, [pc, #4] @ (8000410 <HAL_GetTick+0x8>)
779 800040a: 6818 ldr r0, [r3, #0]
780}
781 800040c: 4770 bx lr
782 800040e: 46c0 nop @ (mov r8, r8)
783 8000410: 200000e4 .word 0x200000e4
784
78508000414 <HAL_Delay>:
786 * implementations in user file.
787 * @param Delay specifies the delay time length, in milliseconds.
788 * @retval None
789 */
790__weak void HAL_Delay(uint32_t Delay)
791{
792 8000414: b570 push {r4, r5, r6, lr}
793 8000416: 0004 movs r4, r0
794 uint32_t tickstart = HAL_GetTick();
795 8000418: f7ff fff6 bl 8000408 <HAL_GetTick>
796 800041c: 0005 movs r5, r0
797 uint32_t wait = Delay;
798
799 /* Add a freq to guarantee minimum wait */
800 if (wait < HAL_MAX_DELAY)
801 800041e: 1c63 adds r3, r4, #1
802 8000420: d002 beq.n 8000428 <HAL_Delay+0x14>
803 {
804 wait += (uint32_t)(uwTickFreq);
805 8000422: 4b04 ldr r3, [pc, #16] @ (8000434 <HAL_Delay+0x20>)
806 8000424: 781b ldrb r3, [r3, #0]
807 8000426: 18e4 adds r4, r4, r3
808 }
809
810 while ((HAL_GetTick() - tickstart) < wait)
811 8000428: f7ff ffee bl 8000408 <HAL_GetTick>
812 800042c: 1b40 subs r0, r0, r5
813 800042e: 42a0 cmp r0, r4
814 8000430: d3fa bcc.n 8000428 <HAL_Delay+0x14>
815 {
816 }
817}
818 8000432: bd70 pop {r4, r5, r6, pc}
819 8000434: 20000004 .word 0x20000004
820
82108000438 <__NVIC_SetPriority>:
822 \param [in] IRQn Interrupt number.
823 \param [in] priority Priority to set.
824 \note The priority cannot be set for every processor exception.
825 */
826__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
827{
828 8000438: b570 push {r4, r5, r6, lr}
829 if ((int32_t)(IRQn) >= 0)
830 800043a: 2800 cmp r0, #0
831 800043c: db11 blt.n 8000462 <__NVIC_SetPriority+0x2a>
832 {
833 NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
834 800043e: 0883 lsrs r3, r0, #2
835 8000440: 4d13 ldr r5, [pc, #76] @ (8000490 <__NVIC_SetPriority+0x58>)
836 8000442: 33c0 adds r3, #192 @ 0xc0
837 8000444: 009b lsls r3, r3, #2
838 8000446: 595c ldr r4, [r3, r5]
839 8000448: 2203 movs r2, #3
840 800044a: 4010 ands r0, r2
841 800044c: 00c0 lsls r0, r0, #3
842 800044e: 32fc adds r2, #252 @ 0xfc
843 8000450: 0016 movs r6, r2
844 8000452: 4086 lsls r6, r0
845 8000454: 43b4 bics r4, r6
846 (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn)));
847 8000456: 0189 lsls r1, r1, #6
848 8000458: 400a ands r2, r1
849 800045a: 4082 lsls r2, r0
850 NVIC->IP[_IP_IDX(IRQn)] = ((uint32_t)(NVIC->IP[_IP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
851 800045c: 4322 orrs r2, r4
852 800045e: 515a str r2, [r3, r5]
853 else
854 {
855 SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
856 (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn)));
857 }
858}
859 8000460: bd70 pop {r4, r5, r6, pc}
860 SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
861 8000462: 230f movs r3, #15
862 8000464: 4003 ands r3, r0
863 8000466: 3b08 subs r3, #8
864 8000468: 089b lsrs r3, r3, #2
865 800046a: 3306 adds r3, #6
866 800046c: 009b lsls r3, r3, #2
867 800046e: 4a09 ldr r2, [pc, #36] @ (8000494 <__NVIC_SetPriority+0x5c>)
868 8000470: 4694 mov ip, r2
869 8000472: 4463 add r3, ip
870 8000474: 685c ldr r4, [r3, #4]
871 8000476: 2203 movs r2, #3
872 8000478: 4010 ands r0, r2
873 800047a: 00c0 lsls r0, r0, #3
874 800047c: 32fc adds r2, #252 @ 0xfc
875 800047e: 0015 movs r5, r2
876 8000480: 4085 lsls r5, r0
877 8000482: 43ac bics r4, r5
878 (((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL) << _BIT_SHIFT(IRQn)));
879 8000484: 0189 lsls r1, r1, #6
880 8000486: 400a ands r2, r1
881 8000488: 4082 lsls r2, r0
882 SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
883 800048a: 4322 orrs r2, r4
884 800048c: 605a str r2, [r3, #4]
885}
886 800048e: e7e7 b.n 8000460 <__NVIC_SetPriority+0x28>
887 8000490: e000e100 .word 0xe000e100
888 8000494: e000ed00 .word 0xe000ed00
889
89008000498 <SysTick_Config>:
891 function <b>SysTick_Config</b> is not included. In this case, the file <b><i>device</i>.h</b>
892 must contain a vendor-specific implementation of this function.
893 */
894__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
895{
896 if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk)
897 8000498: 3801 subs r0, #1
898 800049a: 2380 movs r3, #128 @ 0x80
899 800049c: 045b lsls r3, r3, #17
900 800049e: 4298 cmp r0, r3
901 80004a0: d20f bcs.n 80004c2 <SysTick_Config+0x2a>
902 {
903 return (1UL); /* Reload value impossible */
904 }
905
906 SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */
907 80004a2: 4a09 ldr r2, [pc, #36] @ (80004c8 <SysTick_Config+0x30>)
908 80004a4: 6050 str r0, [r2, #4]
909 SCB->SHP[_SHP_IDX(IRQn)] = ((uint32_t)(SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFFUL << _BIT_SHIFT(IRQn))) |
910 80004a6: 4809 ldr r0, [pc, #36] @ (80004cc <SysTick_Config+0x34>)
911 80004a8: 6a03 ldr r3, [r0, #32]
912 80004aa: 021b lsls r3, r3, #8
913 80004ac: 0a1b lsrs r3, r3, #8
914 80004ae: 21c0 movs r1, #192 @ 0xc0
915 80004b0: 0609 lsls r1, r1, #24
916 80004b2: 430b orrs r3, r1
917 80004b4: 6203 str r3, [r0, #32]
918 NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */
919 SysTick->VAL = 0UL; /* Load the SysTick Counter Value */
920 80004b6: 2300 movs r3, #0
921 80004b8: 6093 str r3, [r2, #8]
922 SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
923 80004ba: 3307 adds r3, #7
924 80004bc: 6013 str r3, [r2, #0]
925 SysTick_CTRL_TICKINT_Msk |
926 SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */
927 return (0UL); /* Function successful */
928 80004be: 2000 movs r0, #0
929}
930 80004c0: 4770 bx lr
931 return (1UL); /* Reload value impossible */
932 80004c2: 2001 movs r0, #1
933 80004c4: e7fc b.n 80004c0 <SysTick_Config+0x28>
934 80004c6: 46c0 nop @ (mov r8, r8)
935 80004c8: e000e010 .word 0xe000e010
936 80004cc: e000ed00 .word 0xe000ed00
937
938080004d0 <HAL_NVIC_SetPriority>:
939 * with stm32c0xx devices, this parameter is a dummy value and it is ignored, because
940 * no subpriority supported in Cortex M0+ based products.
941 * @retval None
942 */
943void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
944{
945 80004d0: b510 push {r4, lr}
946 /* Prevent unused argument(s) compilation warning */
947 UNUSED(SubPriority);
948 /* Check the parameters */
949 assert_param(IS_NVIC_PREEMPTION_PRIORITY(PreemptPriority));
950 NVIC_SetPriority(IRQn, PreemptPriority);
951 80004d2: f7ff ffb1 bl 8000438 <__NVIC_SetPriority>
952}
953 80004d6: bd10 pop {r4, pc}
954
955080004d8 <HAL_SYSTICK_Config>:
956 * @param TicksNumb Specifies the ticks Number of ticks between two interrupts.
957 * @retval status: - 0 Function succeeded.
958 * - 1 Function failed.
959 */
960uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb)
961{
962 80004d8: b510 push {r4, lr}
963 return SysTick_Config(TicksNumb);
964 80004da: f7ff ffdd bl 8000498 <SysTick_Config>
965}
966 80004de: bd10 pop {r4, pc}
967
968080004e0 <HAL_DMA_IRQHandler>:
969 * @param hdma: pointer to a DMA_HandleTypeDef structure that contains
970 * the configuration information for the specified DMA Channel.
971 * @retval None
972 */
973void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma)
974{
975 80004e0: b570 push {r4, r5, r6, lr}
976 uint32_t flag_it = DMA1->ISR;
977 80004e2: 4b31 ldr r3, [pc, #196] @ (80005a8 <HAL_DMA_IRQHandler+0xc8>)
978 80004e4: 6819 ldr r1, [r3, #0]
979 uint32_t source_it = hdma->Instance->CCR;
980 80004e6: 6804 ldr r4, [r0, #0]
981 80004e8: 6825 ldr r5, [r4, #0]
982
983 /* Half Transfer Complete Interrupt management ******************************/
984 if (((flag_it & (DMA_FLAG_HT1 << (hdma->ChannelIndex & 0x1cU))) != 0U) && ((source_it & DMA_IT_HT) != 0U))
985 80004ea: 6c02 ldr r2, [r0, #64] @ 0x40
986 80004ec: 231c movs r3, #28
987 80004ee: 4013 ands r3, r2
988 80004f0: 2204 movs r2, #4
989 80004f2: 409a lsls r2, r3
990 80004f4: 4211 tst r1, r2
991 80004f6: d016 beq.n 8000526 <HAL_DMA_IRQHandler+0x46>
992 80004f8: 076a lsls r2, r5, #29
993 80004fa: d514 bpl.n 8000526 <HAL_DMA_IRQHandler+0x46>
994 {
995 /* Disable the half transfer interrupt if the DMA mode is not CIRCULAR */
996 if ((hdma->Instance->CCR & DMA_CCR_CIRC) == 0U)
997 80004fc: 6823 ldr r3, [r4, #0]
998 80004fe: 069b lsls r3, r3, #26
999 8000500: d403 bmi.n 800050a <HAL_DMA_IRQHandler+0x2a>
1000 {
1001 /* Disable the half transfer interrupt */
1002 __HAL_DMA_DISABLE_IT(hdma, DMA_IT_HT);
1003 8000502: 6823 ldr r3, [r4, #0]
1004 8000504: 2204 movs r2, #4
1005 8000506: 4393 bics r3, r2
1006 8000508: 6023 str r3, [r4, #0]
1007 }
1008 /* Clear the half transfer complete flag */
1009 __HAL_DMA_CLEAR_FLAG(hdma, (DMA_FLAG_HT1 << (hdma->ChannelIndex & 0x1cU)));
1010 800050a: 4c27 ldr r4, [pc, #156] @ (80005a8 <HAL_DMA_IRQHandler+0xc8>)
1011 800050c: 6863 ldr r3, [r4, #4]
1012 800050e: 6c02 ldr r2, [r0, #64] @ 0x40
1013 8000510: 211c movs r1, #28
1014 8000512: 4011 ands r1, r2
1015 8000514: 2204 movs r2, #4
1016 8000516: 408a lsls r2, r1
1017 8000518: 4313 orrs r3, r2
1018 800051a: 6063 str r3, [r4, #4]
1019
1020 /* DMA peripheral state is not updated in Half Transfer */
1021 /* but in Transfer Complete case */
1022
1023 if (hdma->XferHalfCpltCallback != NULL)
1024 800051c: 6b03 ldr r3, [r0, #48] @ 0x30
1025 800051e: 2b00 cmp r3, #0
1026 8000520: d000 beq.n 8000524 <HAL_DMA_IRQHandler+0x44>
1027 {
1028 /* Half transfer callback */
1029 hdma->XferHalfCpltCallback(hdma);
1030 8000522: 4798 blx r3
1031 else
1032 {
1033 /* Nothing To Do */
1034 }
1035 return;
1036}
1037 8000524: bd70 pop {r4, r5, r6, pc}
1038 else if ((0U != (flag_it & (DMA_FLAG_TC1 << (hdma->ChannelIndex & 0x1cU)))) && (0U != (source_it & DMA_IT_TC)))
1039 8000526: 2202 movs r2, #2
1040 8000528: 409a lsls r2, r3
1041 800052a: 4211 tst r1, r2
1042 800052c: d01c beq.n 8000568 <HAL_DMA_IRQHandler+0x88>
1043 800052e: 07aa lsls r2, r5, #30
1044 8000530: d51a bpl.n 8000568 <HAL_DMA_IRQHandler+0x88>
1045 if ((hdma->Instance->CCR & DMA_CCR_CIRC) == 0U)
1046 8000532: 6823 ldr r3, [r4, #0]
1047 8000534: 069b lsls r3, r3, #26
1048 8000536: d406 bmi.n 8000546 <HAL_DMA_IRQHandler+0x66>
1049 __HAL_DMA_DISABLE_IT(hdma, DMA_IT_TE | DMA_IT_TC);
1050 8000538: 6823 ldr r3, [r4, #0]
1051 800053a: 220a movs r2, #10
1052 800053c: 4393 bics r3, r2
1053 800053e: 6023 str r3, [r4, #0]
1054 hdma->State = HAL_DMA_STATE_READY;
1055 8000540: 2325 movs r3, #37 @ 0x25
1056 8000542: 3a09 subs r2, #9
1057 8000544: 54c2 strb r2, [r0, r3]
1058 __HAL_DMA_CLEAR_FLAG(hdma, (DMA_FLAG_TC1 << (hdma->ChannelIndex & 0x1cU)));
1059 8000546: 4c18 ldr r4, [pc, #96] @ (80005a8 <HAL_DMA_IRQHandler+0xc8>)
1060 8000548: 6863 ldr r3, [r4, #4]
1061 800054a: 6c02 ldr r2, [r0, #64] @ 0x40
1062 800054c: 211c movs r1, #28
1063 800054e: 4011 ands r1, r2
1064 8000550: 2202 movs r2, #2
1065 8000552: 408a lsls r2, r1
1066 8000554: 4313 orrs r3, r2
1067 8000556: 6063 str r3, [r4, #4]
1068 __HAL_UNLOCK(hdma);
1069 8000558: 2324 movs r3, #36 @ 0x24
1070 800055a: 2200 movs r2, #0
1071 800055c: 54c2 strb r2, [r0, r3]
1072 if (hdma->XferCpltCallback != NULL)
1073 800055e: 6ac3 ldr r3, [r0, #44] @ 0x2c
1074 8000560: 2b00 cmp r3, #0
1075 8000562: d0df beq.n 8000524 <HAL_DMA_IRQHandler+0x44>
1076 hdma->XferCpltCallback(hdma);
1077 8000564: 4798 blx r3
1078 8000566: e7dd b.n 8000524 <HAL_DMA_IRQHandler+0x44>
1079 else if (((flag_it & (DMA_FLAG_TE1 << (hdma->ChannelIndex & 0x1cU))) != 0U) && ((source_it & DMA_IT_TE) != 0U))
1080 8000568: 2208 movs r2, #8
1081 800056a: 409a lsls r2, r3
1082 800056c: 4211 tst r1, r2
1083 800056e: d0d9 beq.n 8000524 <HAL_DMA_IRQHandler+0x44>
1084 8000570: 072d lsls r5, r5, #28
1085 8000572: d5d7 bpl.n 8000524 <HAL_DMA_IRQHandler+0x44>
1086 __HAL_DMA_DISABLE_IT(hdma, (DMA_IT_TC | DMA_IT_HT | DMA_IT_TE));
1087 8000574: 6823 ldr r3, [r4, #0]
1088 8000576: 220e movs r2, #14
1089 8000578: 4393 bics r3, r2
1090 800057a: 6023 str r3, [r4, #0]
1091 __HAL_DMA_CLEAR_FLAG(hdma, (DMA_FLAG_GI1 << (hdma->ChannelIndex & 0x1cU)));
1092 800057c: 4c0a ldr r4, [pc, #40] @ (80005a8 <HAL_DMA_IRQHandler+0xc8>)
1093 800057e: 6862 ldr r2, [r4, #4]
1094 8000580: 6c03 ldr r3, [r0, #64] @ 0x40
1095 8000582: 211c movs r1, #28
1096 8000584: 4019 ands r1, r3
1097 8000586: 2301 movs r3, #1
1098 8000588: 001d movs r5, r3
1099 800058a: 408d lsls r5, r1
1100 800058c: 432a orrs r2, r5
1101 800058e: 6062 str r2, [r4, #4]
1102 hdma->ErrorCode = HAL_DMA_ERROR_TE;
1103 8000590: 63c3 str r3, [r0, #60] @ 0x3c
1104 hdma->State = HAL_DMA_STATE_READY;
1105 8000592: 2225 movs r2, #37 @ 0x25
1106 8000594: 5483 strb r3, [r0, r2]
1107 __HAL_UNLOCK(hdma);
1108 8000596: 3323 adds r3, #35 @ 0x23
1109 8000598: 2200 movs r2, #0
1110 800059a: 54c2 strb r2, [r0, r3]
1111 if (hdma->XferErrorCallback != NULL)
1112 800059c: 6b43 ldr r3, [r0, #52] @ 0x34
1113 800059e: 2b00 cmp r3, #0
1114 80005a0: d0c0 beq.n 8000524 <HAL_DMA_IRQHandler+0x44>
1115 hdma->XferErrorCallback(hdma);
1116 80005a2: 4798 blx r3
1117 return;
1118 80005a4: e7be b.n 8000524 <HAL_DMA_IRQHandler+0x44>
1119 80005a6: 46c0 nop @ (mov r8, r8)
1120 80005a8: 40020000 .word 0x40020000
1121
1122080005ac <HAL_GPIO_Init>:
1123 * @param pGPIO_Init pointer to a GPIO_InitTypeDef structure that contains
1124 * the configuration information for the specified GPIO peripheral.
1125 * @retval None
1126 */
1127void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, const GPIO_InitTypeDef *pGPIO_Init)
1128{
1129 80005ac: b5f0 push {r4, r5, r6, r7, lr}
1130 80005ae: 46d6 mov lr, sl
1131 80005b0: 464f mov r7, r9
1132 80005b2: 4646 mov r6, r8
1133 80005b4: b5c0 push {r6, r7, lr}
1134 uint32_t tmp;
1135 uint32_t iocurrent;
1136 uint32_t position = 0U;
1137 80005b6: 2300 movs r3, #0
1138 assert_param(IS_GPIO_ALL_INSTANCE(GPIOx));
1139 assert_param(IS_GPIO_PIN(pGPIO_Init->Pin));
1140 assert_param(IS_GPIO_MODE(pGPIO_Init->Mode));
1141
1142 /* Configure the port pins */
1143 while (((pGPIO_Init->Pin) >> position) != 0U)
1144 80005b8: e03b b.n 8000632 <HAL_GPIO_Init+0x86>
1145 /* Configure the External Interrupt or event for the current IO */
1146 if ((pGPIO_Init->Mode & EXTI_MODE) == EXTI_MODE)
1147 {
1148 tmp = EXTI->EXTICR[position >> 2U];
1149 tmp &= ~((0x0FUL) << ((position & 0x03U) * EXTI_EXTICR1_EXTI1_Pos));
1150 tmp |= (GPIO_GET_INDEX(GPIOx) << ((position & 0x03U) * EXTI_EXTICR1_EXTI1_Pos));
1151 80005ba: 2505 movs r5, #5
1152 80005bc: e000 b.n 80005c0 <HAL_GPIO_Init+0x14>
1153 80005be: 2500 movs r5, #0
1154 80005c0: 40a5 lsls r5, r4
1155 80005c2: 002c movs r4, r5
1156 80005c4: 433c orrs r4, r7
1157 EXTI->EXTICR[position >> 2U] = tmp;
1158 80005c6: 4d63 ldr r5, [pc, #396] @ (8000754 <HAL_GPIO_Init+0x1a8>)
1159 80005c8: 3218 adds r2, #24
1160 80005ca: 0092 lsls r2, r2, #2
1161 80005cc: 5154 str r4, [r2, r5]
1162
1163 /* Clear EXTI line configuration */
1164 tmp = EXTI->IMR1;
1165 80005ce: 2280 movs r2, #128 @ 0x80
1166 80005d0: 58af ldr r7, [r5, r2]
1167 tmp &= ~((uint32_t)iocurrent);
1168 80005d2: 464a mov r2, r9
1169 80005d4: 43d2 mvns r2, r2
1170 80005d6: 003d movs r5, r7
1171 80005d8: 464c mov r4, r9
1172 80005da: 43a5 bics r5, r4
1173 if ((pGPIO_Init->Mode & GPIO_MODE_IT) == GPIO_MODE_IT)
1174 80005dc: 684c ldr r4, [r1, #4]
1175 80005de: 03e4 lsls r4, r4, #15
1176 80005e0: d502 bpl.n 80005e8 <HAL_GPIO_Init+0x3c>
1177 {
1178 tmp |= iocurrent;
1179 80005e2: 003d movs r5, r7
1180 80005e4: 464c mov r4, r9
1181 80005e6: 4325 orrs r5, r4
1182 }
1183 EXTI->IMR1 = tmp;
1184 80005e8: 4c5a ldr r4, [pc, #360] @ (8000754 <HAL_GPIO_Init+0x1a8>)
1185 80005ea: 2780 movs r7, #128 @ 0x80
1186 80005ec: 51e5 str r5, [r4, r7]
1187
1188 tmp = EXTI->EMR1;
1189 80005ee: 2584 movs r5, #132 @ 0x84
1190 80005f0: 5967 ldr r7, [r4, r5]
1191 tmp &= ~((uint32_t)iocurrent);
1192 80005f2: 003d movs r5, r7
1193 80005f4: 4015 ands r5, r2
1194 if ((pGPIO_Init->Mode & GPIO_MODE_EVT) == GPIO_MODE_EVT)
1195 80005f6: 684c ldr r4, [r1, #4]
1196 80005f8: 03a4 lsls r4, r4, #14
1197 80005fa: d502 bpl.n 8000602 <HAL_GPIO_Init+0x56>
1198 {
1199 tmp |= iocurrent;
1200 80005fc: 003d movs r5, r7
1201 80005fe: 464c mov r4, r9
1202 8000600: 4325 orrs r5, r4
1203 }
1204 EXTI->EMR1 = tmp;
1205 8000602: 4c54 ldr r4, [pc, #336] @ (8000754 <HAL_GPIO_Init+0x1a8>)
1206 8000604: 2784 movs r7, #132 @ 0x84
1207 8000606: 51e5 str r5, [r4, r7]
1208
1209 /* Clear Rising Falling edge configuration */
1210 tmp = EXTI->RTSR1;
1211 8000608: 6827 ldr r7, [r4, #0]
1212 tmp &= ~((uint32_t)iocurrent);
1213 800060a: 003d movs r5, r7
1214 800060c: 4015 ands r5, r2
1215 if ((pGPIO_Init->Mode & RISING_EDGE) == RISING_EDGE)
1216 800060e: 684c ldr r4, [r1, #4]
1217 8000610: 02e4 lsls r4, r4, #11
1218 8000612: d502 bpl.n 800061a <HAL_GPIO_Init+0x6e>
1219 {
1220 tmp |= iocurrent;
1221 8000614: 003d movs r5, r7
1222 8000616: 464c mov r4, r9
1223 8000618: 4325 orrs r5, r4
1224 }
1225 EXTI->RTSR1 = tmp;
1226 800061a: 4c4e ldr r4, [pc, #312] @ (8000754 <HAL_GPIO_Init+0x1a8>)
1227 800061c: 6025 str r5, [r4, #0]
1228
1229 tmp = EXTI->FTSR1;
1230 800061e: 6865 ldr r5, [r4, #4]
1231 tmp &= ~((uint32_t)iocurrent);
1232 8000620: 402a ands r2, r5
1233 if ((pGPIO_Init->Mode & FALLING_EDGE) == FALLING_EDGE)
1234 8000622: 684c ldr r4, [r1, #4]
1235 8000624: 02a4 lsls r4, r4, #10
1236 8000626: d501 bpl.n 800062c <HAL_GPIO_Init+0x80>
1237 {
1238 tmp |= iocurrent;
1239 8000628: 464a mov r2, r9
1240 800062a: 432a orrs r2, r5
1241 }
1242 EXTI->FTSR1 = tmp;
1243 800062c: 4c49 ldr r4, [pc, #292] @ (8000754 <HAL_GPIO_Init+0x1a8>)
1244 800062e: 6062 str r2, [r4, #4]
1245 }
1246 }
1247
1248 position++;
1249 8000630: 3301 adds r3, #1
1250 while (((pGPIO_Init->Pin) >> position) != 0U)
1251 8000632: 680c ldr r4, [r1, #0]
1252 8000634: 0022 movs r2, r4
1253 8000636: 40da lsrs r2, r3
1254 8000638: d100 bne.n 800063c <HAL_GPIO_Init+0x90>
1255 800063a: e086 b.n 800074a <HAL_GPIO_Init+0x19e>
1256 iocurrent = (pGPIO_Init->Pin) & (1UL << position);
1257 800063c: 2201 movs r2, #1
1258 800063e: 409a lsls r2, r3
1259 8000640: 0026 movs r6, r4
1260 8000642: 4016 ands r6, r2
1261 8000644: 46b1 mov r9, r6
1262 if (iocurrent != 0U)
1263 8000646: 4214 tst r4, r2
1264 8000648: d0f2 beq.n 8000630 <HAL_GPIO_Init+0x84>
1265 if ((pGPIO_Init->Mode == GPIO_MODE_AF_PP) || (pGPIO_Init->Mode == GPIO_MODE_AF_OD))
1266 800064a: 684c ldr r4, [r1, #4]
1267 800064c: 2c02 cmp r4, #2
1268 800064e: d001 beq.n 8000654 <HAL_GPIO_Init+0xa8>
1269 8000650: 2c12 cmp r4, #18
1270 8000652: d118 bne.n 8000686 <HAL_GPIO_Init+0xda>
1271 tmp = GPIOx->AFR[position >> 3U];
1272 8000654: 08dd lsrs r5, r3, #3
1273 8000656: 3508 adds r5, #8
1274 8000658: 00ad lsls r5, r5, #2
1275 800065a: 582c ldr r4, [r5, r0]
1276 800065c: 46a4 mov ip, r4
1277 tmp &= ~(0xFUL << ((position & 0x07U) * GPIO_AFRL_AFSEL1_Pos)) ;
1278 800065e: 2707 movs r7, #7
1279 8000660: 401f ands r7, r3
1280 8000662: 00bf lsls r7, r7, #2
1281 8000664: 240f movs r4, #15
1282 8000666: 46a2 mov sl, r4
1283 8000668: 0026 movs r6, r4
1284 800066a: 40be lsls r6, r7
1285 800066c: 46b0 mov r8, r6
1286 800066e: 4666 mov r6, ip
1287 8000670: 4644 mov r4, r8
1288 8000672: 43a6 bics r6, r4
1289 8000674: 46b4 mov ip, r6
1290 tmp |= ((pGPIO_Init->Alternate & 0x0FUL) << ((position & 0x07U) * GPIO_AFRL_AFSEL1_Pos));
1291 8000676: 690c ldr r4, [r1, #16]
1292 8000678: 4656 mov r6, sl
1293 800067a: 4026 ands r6, r4
1294 800067c: 0034 movs r4, r6
1295 800067e: 40bc lsls r4, r7
1296 8000680: 4666 mov r6, ip
1297 8000682: 4334 orrs r4, r6
1298 GPIOx->AFR[position >> 3U] = tmp;
1299 8000684: 502c str r4, [r5, r0]
1300 tmp = GPIOx->MODER;
1301 8000686: 6804 ldr r4, [r0, #0]
1302 8000688: 46a4 mov ip, r4
1303 tmp &= ~(GPIO_MODER_MODE0 << (position * GPIO_MODER_MODE1_Pos));
1304 800068a: 005d lsls r5, r3, #1
1305 800068c: 2403 movs r4, #3
1306 800068e: 46a2 mov sl, r4
1307 8000690: 0027 movs r7, r4
1308 8000692: 40af lsls r7, r5
1309 8000694: 46b8 mov r8, r7
1310 8000696: 43ff mvns r7, r7
1311 8000698: 4666 mov r6, ip
1312 800069a: 4644 mov r4, r8
1313 800069c: 43a6 bics r6, r4
1314 800069e: 46b4 mov ip, r6
1315 tmp |= ((pGPIO_Init->Mode & GPIO_MODE) << (position * GPIO_MODER_MODE1_Pos));
1316 80006a0: 684c ldr r4, [r1, #4]
1317 80006a2: 4656 mov r6, sl
1318 80006a4: 4026 ands r6, r4
1319 80006a6: 0034 movs r4, r6
1320 80006a8: 40ac lsls r4, r5
1321 80006aa: 4666 mov r6, ip
1322 80006ac: 4334 orrs r4, r6
1323 GPIOx->MODER = tmp;
1324 80006ae: 6004 str r4, [r0, #0]
1325 if ((pGPIO_Init->Mode == GPIO_MODE_OUTPUT_PP) || (pGPIO_Init->Mode == GPIO_MODE_AF_PP) ||
1326 80006b0: 684c ldr r4, [r1, #4]
1327 80006b2: 1e66 subs r6, r4, #1
1328 80006b4: 2e01 cmp r6, #1
1329 80006b6: d903 bls.n 80006c0 <HAL_GPIO_Init+0x114>
1330 80006b8: 2c11 cmp r4, #17
1331 80006ba: d001 beq.n 80006c0 <HAL_GPIO_Init+0x114>
1332 (pGPIO_Init->Mode == GPIO_MODE_OUTPUT_OD) || (pGPIO_Init->Mode == GPIO_MODE_AF_OD))
1333 80006bc: 2c12 cmp r4, #18
1334 80006be: d112 bne.n 80006e6 <HAL_GPIO_Init+0x13a>
1335 tmp = GPIOx->OSPEEDR;
1336 80006c0: 6884 ldr r4, [r0, #8]
1337 tmp &= ~(GPIO_OSPEEDR_OSPEED0 << (position * GPIO_OSPEEDR_OSPEED1_Pos));
1338 80006c2: 403c ands r4, r7
1339 80006c4: 46a4 mov ip, r4
1340 tmp |= (pGPIO_Init->Speed << (position * GPIO_OSPEEDR_OSPEED1_Pos));
1341 80006c6: 68cc ldr r4, [r1, #12]
1342 80006c8: 40ac lsls r4, r5
1343 80006ca: 4666 mov r6, ip
1344 80006cc: 4334 orrs r4, r6
1345 GPIOx->OSPEEDR = tmp;
1346 80006ce: 6084 str r4, [r0, #8]
1347 tmp = GPIOx->OTYPER;
1348 80006d0: 6844 ldr r4, [r0, #4]
1349 tmp &= ~(GPIO_OTYPER_OT0 << position) ;
1350 80006d2: 4394 bics r4, r2
1351 tmp |= (((pGPIO_Init->Mode & GPIO_OUTPUT_TYPE) >> 4U) << position);
1352 80006d4: 684a ldr r2, [r1, #4]
1353 80006d6: 0912 lsrs r2, r2, #4
1354 80006d8: 4694 mov ip, r2
1355 80006da: 2201 movs r2, #1
1356 80006dc: 4666 mov r6, ip
1357 80006de: 4032 ands r2, r6
1358 80006e0: 409a lsls r2, r3
1359 80006e2: 4322 orrs r2, r4
1360 GPIOx->OTYPER = tmp;
1361 80006e4: 6042 str r2, [r0, #4]
1362 if (pGPIO_Init->Mode != GPIO_MODE_ANALOG)
1363 80006e6: 684a ldr r2, [r1, #4]
1364 80006e8: 2a03 cmp r2, #3
1365 80006ea: d005 beq.n 80006f8 <HAL_GPIO_Init+0x14c>
1366 tmp = GPIOx->PUPDR;
1367 80006ec: 68c4 ldr r4, [r0, #12]
1368 tmp &= ~(GPIO_PUPDR_PUPD0 << (position * GPIO_PUPDR_PUPD1_Pos));
1369 80006ee: 403c ands r4, r7
1370 tmp |= ((pGPIO_Init->Pull) << (position * GPIO_PUPDR_PUPD1_Pos));
1371 80006f0: 688a ldr r2, [r1, #8]
1372 80006f2: 40aa lsls r2, r5
1373 80006f4: 4322 orrs r2, r4
1374 GPIOx->PUPDR = tmp;
1375 80006f6: 60c2 str r2, [r0, #12]
1376 if ((pGPIO_Init->Mode & EXTI_MODE) == EXTI_MODE)
1377 80006f8: 684a ldr r2, [r1, #4]
1378 80006fa: 00d2 lsls r2, r2, #3
1379 80006fc: d598 bpl.n 8000630 <HAL_GPIO_Init+0x84>
1380 tmp = EXTI->EXTICR[position >> 2U];
1381 80006fe: 089a lsrs r2, r3, #2
1382 8000700: 0014 movs r4, r2
1383 8000702: 3418 adds r4, #24
1384 8000704: 00a4 lsls r4, r4, #2
1385 8000706: 4d13 ldr r5, [pc, #76] @ (8000754 <HAL_GPIO_Init+0x1a8>)
1386 8000708: 5967 ldr r7, [r4, r5]
1387 tmp &= ~((0x0FUL) << ((position & 0x03U) * EXTI_EXTICR1_EXTI1_Pos));
1388 800070a: 2403 movs r4, #3
1389 800070c: 401c ands r4, r3
1390 800070e: 00e4 lsls r4, r4, #3
1391 8000710: 250f movs r5, #15
1392 8000712: 40a5 lsls r5, r4
1393 8000714: 43af bics r7, r5
1394 tmp |= (GPIO_GET_INDEX(GPIOx) << ((position & 0x03U) * EXTI_EXTICR1_EXTI1_Pos));
1395 8000716: 25a0 movs r5, #160 @ 0xa0
1396 8000718: 05ed lsls r5, r5, #23
1397 800071a: 42a8 cmp r0, r5
1398 800071c: d100 bne.n 8000720 <HAL_GPIO_Init+0x174>
1399 800071e: e74e b.n 80005be <HAL_GPIO_Init+0x12>
1400 8000720: 4d0d ldr r5, [pc, #52] @ (8000758 <HAL_GPIO_Init+0x1ac>)
1401 8000722: 42a8 cmp r0, r5
1402 8000724: d00b beq.n 800073e <HAL_GPIO_Init+0x192>
1403 8000726: 4d0d ldr r5, [pc, #52] @ (800075c <HAL_GPIO_Init+0x1b0>)
1404 8000728: 42a8 cmp r0, r5
1405 800072a: d00a beq.n 8000742 <HAL_GPIO_Init+0x196>
1406 800072c: 4d0c ldr r5, [pc, #48] @ (8000760 <HAL_GPIO_Init+0x1b4>)
1407 800072e: 42a8 cmp r0, r5
1408 8000730: d009 beq.n 8000746 <HAL_GPIO_Init+0x19a>
1409 8000732: 4d0c ldr r5, [pc, #48] @ (8000764 <HAL_GPIO_Init+0x1b8>)
1410 8000734: 42a8 cmp r0, r5
1411 8000736: d100 bne.n 800073a <HAL_GPIO_Init+0x18e>
1412 8000738: e73f b.n 80005ba <HAL_GPIO_Init+0xe>
1413 800073a: 2506 movs r5, #6
1414 800073c: e740 b.n 80005c0 <HAL_GPIO_Init+0x14>
1415 800073e: 2501 movs r5, #1
1416 8000740: e73e b.n 80005c0 <HAL_GPIO_Init+0x14>
1417 8000742: 2502 movs r5, #2
1418 8000744: e73c b.n 80005c0 <HAL_GPIO_Init+0x14>
1419 8000746: 2503 movs r5, #3
1420 8000748: e73a b.n 80005c0 <HAL_GPIO_Init+0x14>
1421 }
1422}
1423 800074a: bce0 pop {r5, r6, r7}
1424 800074c: 46ba mov sl, r7
1425 800074e: 46b1 mov r9, r6
1426 8000750: 46a8 mov r8, r5
1427 8000752: bdf0 pop {r4, r5, r6, r7, pc}
1428 8000754: 40021800 .word 0x40021800
1429 8000758: 50000400 .word 0x50000400
1430 800075c: 50000800 .word 0x50000800
1431 8000760: 50000c00 .word 0x50000c00
1432 8000764: 50001400 .word 0x50001400
1433
143408000768 <HAL_GPIO_ReadPin>:
1435 GPIO_PinState bitstatus;
1436
1437 /* Check the parameters */
1438 assert_param(IS_GPIO_PIN(GPIO_Pin));
1439
1440 if ((GPIOx->IDR & GPIO_Pin) != 0U)
1441 8000768: 6903 ldr r3, [r0, #16]
1442 800076a: 420b tst r3, r1
1443 800076c: d001 beq.n 8000772 <HAL_GPIO_ReadPin+0xa>
1444 {
1445 bitstatus = GPIO_PIN_SET;
1446 800076e: 2001 movs r0, #1
1447 else
1448 {
1449 bitstatus = GPIO_PIN_RESET;
1450 }
1451 return bitstatus;
1452}
1453 8000770: 4770 bx lr
1454 bitstatus = GPIO_PIN_RESET;
1455 8000772: 2000 movs r0, #0
1456 8000774: e7fc b.n 8000770 <HAL_GPIO_ReadPin+0x8>
1457
145808000776 <HAL_GPIO_WritePin>:
1459{
1460 /* Check the parameters */
1461 assert_param(IS_GPIO_PIN(GPIO_Pin));
1462 assert_param(IS_GPIO_PIN_ACTION(PinState));
1463
1464 if (PinState != GPIO_PIN_RESET)
1465 8000776: 2a00 cmp r2, #0
1466 8000778: d001 beq.n 800077e <HAL_GPIO_WritePin+0x8>
1467 {
1468 GPIOx->BSRR = (uint32_t)GPIO_Pin;
1469 800077a: 6181 str r1, [r0, #24]
1470 }
1471 else
1472 {
1473 GPIOx->BRR = (uint32_t)GPIO_Pin;
1474 }
1475}
1476 800077c: 4770 bx lr
1477 GPIOx->BRR = (uint32_t)GPIO_Pin;
1478 800077e: 6281 str r1, [r0, #40] @ 0x28
1479}
1480 8000780: e7fc b.n 800077c <HAL_GPIO_WritePin+0x6>
1481 ...
1482
148308000784 <HAL_RCC_OscConfig>:
1484 must adjust the number of CPU wait states in their application (SystemClock_Config() API)
1485 before calling the HAL_RCC_OscConfig() API to update the HSI48 clock division factor.
1486 * @retval HAL status
1487 */
1488HAL_StatusTypeDef HAL_RCC_OscConfig(const RCC_OscInitTypeDef *RCC_OscInitStruct)
1489{
1490 8000784: b570 push {r4, r5, r6, lr}
1491 8000786: 1e04 subs r4, r0, #0
1492 uint32_t tickstart;
1493 uint32_t temp_sysclksrc;
1494
1495 /* Check Null pointer */
1496 if (RCC_OscInitStruct == NULL)
1497 8000788: d100 bne.n 800078c <HAL_RCC_OscConfig+0x8>
1498 800078a: e139 b.n 8000a00 <HAL_RCC_OscConfig+0x27c>
1499
1500 /* Check the parameters */
1501 assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType));
1502
1503 /*------------------------------- HSE Configuration ------------------------*/
1504 if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE)
1505 800078c: 6803 ldr r3, [r0, #0]
1506 800078e: 07db lsls r3, r3, #31
1507 8000790: d52c bpl.n 80007ec <HAL_RCC_OscConfig+0x68>
1508 {
1509 /* Check the parameters */
1510 assert_param(IS_RCC_HSE(RCC_OscInitStruct->HSEState));
1511
1512 temp_sysclksrc = __HAL_RCC_GET_SYSCLK_SOURCE();
1513 8000792: 4ba1 ldr r3, [pc, #644] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1514 8000794: 689a ldr r2, [r3, #8]
1515 8000796: 2338 movs r3, #56 @ 0x38
1516 8000798: 4013 ands r3, r2
1517
1518 /* When the HSE is used as system clock in these cases it is not allowed to be disabled */
1519 if (temp_sysclksrc == RCC_CFGR_SWS_HSE)
1520 800079a: 2b08 cmp r3, #8
1521 800079c: d022 beq.n 80007e4 <HAL_RCC_OscConfig+0x60>
1522 }
1523 }
1524 else
1525 {
1526 /* Set the new HSE configuration ---------------------------------------*/
1527 __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState);
1528 800079e: 6843 ldr r3, [r0, #4]
1529 80007a0: 2280 movs r2, #128 @ 0x80
1530 80007a2: 0252 lsls r2, r2, #9
1531 80007a4: 4293 cmp r3, r2
1532 80007a6: d02e beq.n 8000806 <HAL_RCC_OscConfig+0x82>
1533 80007a8: 22a0 movs r2, #160 @ 0xa0
1534 80007aa: 02d2 lsls r2, r2, #11
1535 80007ac: 4293 cmp r3, r2
1536 80007ae: d031 beq.n 8000814 <HAL_RCC_OscConfig+0x90>
1537 80007b0: 4b99 ldr r3, [pc, #612] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1538 80007b2: 681a ldr r2, [r3, #0]
1539 80007b4: 4999 ldr r1, [pc, #612] @ (8000a1c <HAL_RCC_OscConfig+0x298>)
1540 80007b6: 400a ands r2, r1
1541 80007b8: 601a str r2, [r3, #0]
1542 80007ba: 681a ldr r2, [r3, #0]
1543 80007bc: 4998 ldr r1, [pc, #608] @ (8000a20 <HAL_RCC_OscConfig+0x29c>)
1544 80007be: 400a ands r2, r1
1545 80007c0: 601a str r2, [r3, #0]
1546
1547 /* Check the HSE State */
1548 if (RCC_OscInitStruct->HSEState != RCC_HSE_OFF)
1549 80007c2: 6863 ldr r3, [r4, #4]
1550 80007c4: 2b00 cmp r3, #0
1551 80007c6: d031 beq.n 800082c <HAL_RCC_OscConfig+0xa8>
1552 {
1553 /* Get Start Tick*/
1554 tickstart = HAL_GetTick();
1555 80007c8: f7ff fe1e bl 8000408 <HAL_GetTick>
1556 80007cc: 0005 movs r5, r0
1557
1558 /* Wait till HSE is ready */
1559 while (READ_BIT(RCC->CR, RCC_CR_HSERDY) == 0U)
1560 80007ce: 4b92 ldr r3, [pc, #584] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1561 80007d0: 681b ldr r3, [r3, #0]
1562 80007d2: 039b lsls r3, r3, #14
1563 80007d4: d40a bmi.n 80007ec <HAL_RCC_OscConfig+0x68>
1564 {
1565 if ((HAL_GetTick() - tickstart) > RCC_HSE_TIMEOUT_VALUE)
1566 80007d6: f7ff fe17 bl 8000408 <HAL_GetTick>
1567 80007da: 1b40 subs r0, r0, r5
1568 80007dc: 2864 cmp r0, #100 @ 0x64
1569 80007de: d9f6 bls.n 80007ce <HAL_RCC_OscConfig+0x4a>
1570 {
1571 return HAL_TIMEOUT;
1572 80007e0: 2003 movs r0, #3
1573 80007e2: e10e b.n 8000a02 <HAL_RCC_OscConfig+0x27e>
1574 if (RCC_OscInitStruct->HSEState == RCC_HSE_OFF)
1575 80007e4: 6843 ldr r3, [r0, #4]
1576 80007e6: 2b00 cmp r3, #0
1577 80007e8: d100 bne.n 80007ec <HAL_RCC_OscConfig+0x68>
1578 80007ea: e10b b.n 8000a04 <HAL_RCC_OscConfig+0x280>
1579 }
1580 }
1581 }
1582 }
1583 /*----------------------------- HSI Configuration --------------------------*/
1584 if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI)
1585 80007ec: 6823 ldr r3, [r4, #0]
1586 80007ee: 079b lsls r3, r3, #30
1587 80007f0: d547 bpl.n 8000882 <HAL_RCC_OscConfig+0xfe>
1588 assert_param(IS_RCC_HSI(RCC_OscInitStruct->HSIState));
1589 assert_param(IS_RCC_HSI_CALIBRATION_VALUE(RCC_OscInitStruct->HSICalibrationValue));
1590 assert_param(IS_RCC_HSIDIV(RCC_OscInitStruct->HSIDiv));
1591
1592 /* Check if HSI48 is used as system clock */
1593 temp_sysclksrc = __HAL_RCC_GET_SYSCLK_SOURCE();
1594 80007f2: 4b89 ldr r3, [pc, #548] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1595 80007f4: 689b ldr r3, [r3, #8]
1596 80007f6: 2238 movs r2, #56 @ 0x38
1597
1598 if (temp_sysclksrc == RCC_CFGR_SWS_HSI)
1599 80007f8: 421a tst r2, r3
1600 80007fa: d161 bne.n 80008c0 <HAL_RCC_OscConfig+0x13c>
1601 {
1602 /* When HSI is used as system clock it can not be disabled */
1603 if (RCC_OscInitStruct->HSIState == RCC_HSI_OFF)
1604 80007fc: 68e3 ldr r3, [r4, #12]
1605 80007fe: 2b00 cmp r3, #0
1606 8000800: d122 bne.n 8000848 <HAL_RCC_OscConfig+0xc4>
1607 {
1608 return HAL_ERROR;
1609 8000802: 2001 movs r0, #1
1610 8000804: e0fd b.n 8000a02 <HAL_RCC_OscConfig+0x27e>
1611 __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState);
1612 8000806: 4a84 ldr r2, [pc, #528] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1613 8000808: 6811 ldr r1, [r2, #0]
1614 800080a: 2380 movs r3, #128 @ 0x80
1615 800080c: 025b lsls r3, r3, #9
1616 800080e: 430b orrs r3, r1
1617 8000810: 6013 str r3, [r2, #0]
1618 8000812: e7d6 b.n 80007c2 <HAL_RCC_OscConfig+0x3e>
1619 8000814: 4b80 ldr r3, [pc, #512] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1620 8000816: 6819 ldr r1, [r3, #0]
1621 8000818: 2280 movs r2, #128 @ 0x80
1622 800081a: 02d2 lsls r2, r2, #11
1623 800081c: 430a orrs r2, r1
1624 800081e: 601a str r2, [r3, #0]
1625 8000820: 6819 ldr r1, [r3, #0]
1626 8000822: 2280 movs r2, #128 @ 0x80
1627 8000824: 0252 lsls r2, r2, #9
1628 8000826: 430a orrs r2, r1
1629 8000828: 601a str r2, [r3, #0]
1630 800082a: e7ca b.n 80007c2 <HAL_RCC_OscConfig+0x3e>
1631 tickstart = HAL_GetTick();
1632 800082c: f7ff fdec bl 8000408 <HAL_GetTick>
1633 8000830: 0005 movs r5, r0
1634 while (READ_BIT(RCC->CR, RCC_CR_HSERDY) != 0U)
1635 8000832: 4b79 ldr r3, [pc, #484] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1636 8000834: 681b ldr r3, [r3, #0]
1637 8000836: 039b lsls r3, r3, #14
1638 8000838: d5d8 bpl.n 80007ec <HAL_RCC_OscConfig+0x68>
1639 if ((HAL_GetTick() - tickstart) > RCC_HSE_TIMEOUT_VALUE)
1640 800083a: f7ff fde5 bl 8000408 <HAL_GetTick>
1641 800083e: 1b40 subs r0, r0, r5
1642 8000840: 2864 cmp r0, #100 @ 0x64
1643 8000842: d9f6 bls.n 8000832 <HAL_RCC_OscConfig+0xae>
1644 return HAL_TIMEOUT;
1645 8000844: 2003 movs r0, #3
1646 8000846: e0dc b.n 8000a02 <HAL_RCC_OscConfig+0x27e>
1647 }
1648 /* Otherwise, just the calibration is allowed */
1649 else
1650 {
1651 /* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/
1652 __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue);
1653 8000848: 4b73 ldr r3, [pc, #460] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1654 800084a: 685a ldr r2, [r3, #4]
1655 800084c: 4975 ldr r1, [pc, #468] @ (8000a24 <HAL_RCC_OscConfig+0x2a0>)
1656 800084e: 400a ands r2, r1
1657 8000850: 6961 ldr r1, [r4, #20]
1658 8000852: 0209 lsls r1, r1, #8
1659 8000854: 430a orrs r2, r1
1660 8000856: 605a str r2, [r3, #4]
1661
1662 if (temp_sysclksrc == RCC_CFGR_SWS_HSI)
1663 {
1664 /* Adjust the HSI48 division factor */
1665 __HAL_RCC_HSI_CONFIG(RCC_OscInitStruct->HSIDiv);
1666 8000858: 681a ldr r2, [r3, #0]
1667 800085a: 4973 ldr r1, [pc, #460] @ (8000a28 <HAL_RCC_OscConfig+0x2a4>)
1668 800085c: 400a ands r2, r1
1669 800085e: 6921 ldr r1, [r4, #16]
1670 8000860: 430a orrs r2, r1
1671 8000862: 601a str r2, [r3, #0]
1672
1673 /* Update the SystemCoreClock global variable with HSISYS value */
1674 SystemCoreClock = (HSI_VALUE / (1UL << ((READ_BIT(RCC->CR, RCC_CR_HSIDIV)) >> RCC_CR_HSIDIV_Pos)));
1675 8000864: 681b ldr r3, [r3, #0]
1676 8000866: 0adb lsrs r3, r3, #11
1677 8000868: 2207 movs r2, #7
1678 800086a: 401a ands r2, r3
1679 800086c: 4b6f ldr r3, [pc, #444] @ (8000a2c <HAL_RCC_OscConfig+0x2a8>)
1680 800086e: 40d3 lsrs r3, r2
1681 8000870: 4a6f ldr r2, [pc, #444] @ (8000a30 <HAL_RCC_OscConfig+0x2ac>)
1682 8000872: 6013 str r3, [r2, #0]
1683 }
1684
1685 /* Adapt Systick interrupt period */
1686 if (HAL_InitTick(uwTickPrio) != HAL_OK)
1687 8000874: 4b6f ldr r3, [pc, #444] @ (8000a34 <HAL_RCC_OscConfig+0x2b0>)
1688 8000876: 6818 ldr r0, [r3, #0]
1689 8000878: f7ff fd82 bl 8000380 <HAL_InitTick>
1690 800087c: 2800 cmp r0, #0
1691 800087e: d000 beq.n 8000882 <HAL_RCC_OscConfig+0xfe>
1692 8000880: e0c2 b.n 8000a08 <HAL_RCC_OscConfig+0x284>
1693 }
1694 }
1695 }
1696 }
1697 /*------------------------------ LSI Configuration -------------------------*/
1698 if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI)
1699 8000882: 6823 ldr r3, [r4, #0]
1700 8000884: 071b lsls r3, r3, #28
1701 8000886: d557 bpl.n 8000938 <HAL_RCC_OscConfig+0x1b4>
1702 {
1703 /* Check the parameters */
1704 assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState));
1705
1706 /* Check if LSI is used as system clock */
1707 if (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_LSI)
1708 8000888: 4b63 ldr r3, [pc, #396] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1709 800088a: 689a ldr r2, [r3, #8]
1710 800088c: 2338 movs r3, #56 @ 0x38
1711 800088e: 4013 ands r3, r2
1712 8000890: 2b18 cmp r3, #24
1713 8000892: d04e beq.n 8000932 <HAL_RCC_OscConfig+0x1ae>
1714 }
1715 }
1716 else
1717 {
1718 /* Check the LSI State */
1719 if (RCC_OscInitStruct->LSIState != RCC_LSI_OFF)
1720 8000894: 69a3 ldr r3, [r4, #24]
1721 8000896: 2b00 cmp r3, #0
1722 8000898: d077 beq.n 800098a <HAL_RCC_OscConfig+0x206>
1723 {
1724 /* Enable the Internal Low Speed oscillator (LSI). */
1725 __HAL_RCC_LSI_ENABLE();
1726 800089a: 4a5f ldr r2, [pc, #380] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1727 800089c: 6e13 ldr r3, [r2, #96] @ 0x60
1728 800089e: 2101 movs r1, #1
1729 80008a0: 430b orrs r3, r1
1730 80008a2: 6613 str r3, [r2, #96] @ 0x60
1731
1732 /* Get Start Tick*/
1733 tickstart = HAL_GetTick();
1734 80008a4: f7ff fdb0 bl 8000408 <HAL_GetTick>
1735 80008a8: 0005 movs r5, r0
1736
1737 /* Wait till LSI is ready */
1738 while (READ_BIT(RCC->CSR2, RCC_CSR2_LSIRDY) == 0U)
1739 80008aa: 4b5b ldr r3, [pc, #364] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1740 80008ac: 6e1b ldr r3, [r3, #96] @ 0x60
1741 80008ae: 079b lsls r3, r3, #30
1742 80008b0: d442 bmi.n 8000938 <HAL_RCC_OscConfig+0x1b4>
1743 {
1744 if ((HAL_GetTick() - tickstart) > RCC_LSI_TIMEOUT_VALUE)
1745 80008b2: f7ff fda9 bl 8000408 <HAL_GetTick>
1746 80008b6: 1b40 subs r0, r0, r5
1747 80008b8: 2802 cmp r0, #2
1748 80008ba: d9f6 bls.n 80008aa <HAL_RCC_OscConfig+0x126>
1749 {
1750 return HAL_TIMEOUT;
1751 80008bc: 2003 movs r0, #3
1752 80008be: e0a0 b.n 8000a02 <HAL_RCC_OscConfig+0x27e>
1753 if (RCC_OscInitStruct->HSIState != RCC_HSI_OFF)
1754 80008c0: 68e3 ldr r3, [r4, #12]
1755 80008c2: 2b00 cmp r3, #0
1756 80008c4: d022 beq.n 800090c <HAL_RCC_OscConfig+0x188>
1757 __HAL_RCC_HSI_CONFIG(RCC_OscInitStruct->HSIDiv);
1758 80008c6: 4a54 ldr r2, [pc, #336] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1759 80008c8: 6813 ldr r3, [r2, #0]
1760 80008ca: 4957 ldr r1, [pc, #348] @ (8000a28 <HAL_RCC_OscConfig+0x2a4>)
1761 80008cc: 400b ands r3, r1
1762 80008ce: 6921 ldr r1, [r4, #16]
1763 80008d0: 430b orrs r3, r1
1764 80008d2: 6013 str r3, [r2, #0]
1765 __HAL_RCC_HSI_ENABLE();
1766 80008d4: 6811 ldr r1, [r2, #0]
1767 80008d6: 2380 movs r3, #128 @ 0x80
1768 80008d8: 005b lsls r3, r3, #1
1769 80008da: 430b orrs r3, r1
1770 80008dc: 6013 str r3, [r2, #0]
1771 tickstart = HAL_GetTick();
1772 80008de: f7ff fd93 bl 8000408 <HAL_GetTick>
1773 80008e2: 0005 movs r5, r0
1774 while (READ_BIT(RCC->CR, RCC_CR_HSIRDY) == 0U)
1775 80008e4: 4b4c ldr r3, [pc, #304] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1776 80008e6: 681b ldr r3, [r3, #0]
1777 80008e8: 055b lsls r3, r3, #21
1778 80008ea: d406 bmi.n 80008fa <HAL_RCC_OscConfig+0x176>
1779 if ((HAL_GetTick() - tickstart) > RCC_HSI_TIMEOUT_VALUE)
1780 80008ec: f7ff fd8c bl 8000408 <HAL_GetTick>
1781 80008f0: 1b40 subs r0, r0, r5
1782 80008f2: 2802 cmp r0, #2
1783 80008f4: d9f6 bls.n 80008e4 <HAL_RCC_OscConfig+0x160>
1784 return HAL_TIMEOUT;
1785 80008f6: 2003 movs r0, #3
1786 80008f8: e083 b.n 8000a02 <HAL_RCC_OscConfig+0x27e>
1787 __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue);
1788 80008fa: 4947 ldr r1, [pc, #284] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1789 80008fc: 684b ldr r3, [r1, #4]
1790 80008fe: 4a49 ldr r2, [pc, #292] @ (8000a24 <HAL_RCC_OscConfig+0x2a0>)
1791 8000900: 4013 ands r3, r2
1792 8000902: 6962 ldr r2, [r4, #20]
1793 8000904: 0212 lsls r2, r2, #8
1794 8000906: 4313 orrs r3, r2
1795 8000908: 604b str r3, [r1, #4]
1796 800090a: e7ba b.n 8000882 <HAL_RCC_OscConfig+0xfe>
1797 __HAL_RCC_HSI_DISABLE();
1798 800090c: 4a42 ldr r2, [pc, #264] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1799 800090e: 6813 ldr r3, [r2, #0]
1800 8000910: 4949 ldr r1, [pc, #292] @ (8000a38 <HAL_RCC_OscConfig+0x2b4>)
1801 8000912: 400b ands r3, r1
1802 8000914: 6013 str r3, [r2, #0]
1803 tickstart = HAL_GetTick();
1804 8000916: f7ff fd77 bl 8000408 <HAL_GetTick>
1805 800091a: 0005 movs r5, r0
1806 while (READ_BIT(RCC->CR, RCC_CR_HSIRDY) != 0U)
1807 800091c: 4b3e ldr r3, [pc, #248] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1808 800091e: 681b ldr r3, [r3, #0]
1809 8000920: 055b lsls r3, r3, #21
1810 8000922: d5ae bpl.n 8000882 <HAL_RCC_OscConfig+0xfe>
1811 if ((HAL_GetTick() - tickstart) > RCC_HSI_TIMEOUT_VALUE)
1812 8000924: f7ff fd70 bl 8000408 <HAL_GetTick>
1813 8000928: 1b40 subs r0, r0, r5
1814 800092a: 2802 cmp r0, #2
1815 800092c: d9f6 bls.n 800091c <HAL_RCC_OscConfig+0x198>
1816 return HAL_TIMEOUT;
1817 800092e: 2003 movs r0, #3
1818 8000930: e067 b.n 8000a02 <HAL_RCC_OscConfig+0x27e>
1819 if (RCC_OscInitStruct->LSIState == RCC_LSI_OFF)
1820 8000932: 69a3 ldr r3, [r4, #24]
1821 8000934: 2b00 cmp r3, #0
1822 8000936: d069 beq.n 8000a0c <HAL_RCC_OscConfig+0x288>
1823 }
1824 }
1825 }
1826 }
1827 /*------------------------------ LSE Configuration -------------------------*/
1828 if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE)
1829 8000938: 6823 ldr r3, [r4, #0]
1830 800093a: 075b lsls r3, r3, #29
1831 800093c: d568 bpl.n 8000a10 <HAL_RCC_OscConfig+0x28c>
1832
1833 /* Check the parameters */
1834 assert_param(IS_RCC_LSE(RCC_OscInitStruct->LSEState));
1835
1836 /* When the LSE is used as system clock, it is not allowed disable it */
1837 if (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_LSE)
1838 800093e: 4b36 ldr r3, [pc, #216] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1839 8000940: 689a ldr r2, [r3, #8]
1840 8000942: 2338 movs r3, #56 @ 0x38
1841 8000944: 4013 ands r3, r2
1842 8000946: 2b20 cmp r3, #32
1843 8000948: d032 beq.n 80009b0 <HAL_RCC_OscConfig+0x22c>
1844 }
1845 else
1846 {
1847 /* Update LSE configuration in RTC Domain control register */
1848 /* Set the new LSE configuration -----------------------------------------*/
1849 __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState);
1850 800094a: 68a3 ldr r3, [r4, #8]
1851 800094c: 2b01 cmp r3, #1
1852 800094e: d034 beq.n 80009ba <HAL_RCC_OscConfig+0x236>
1853 8000950: 2b05 cmp r3, #5
1854 8000952: d038 beq.n 80009c6 <HAL_RCC_OscConfig+0x242>
1855 8000954: 4b30 ldr r3, [pc, #192] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1856 8000956: 6dda ldr r2, [r3, #92] @ 0x5c
1857 8000958: 2101 movs r1, #1
1858 800095a: 438a bics r2, r1
1859 800095c: 65da str r2, [r3, #92] @ 0x5c
1860 800095e: 6dda ldr r2, [r3, #92] @ 0x5c
1861 8000960: 3103 adds r1, #3
1862 8000962: 438a bics r2, r1
1863 8000964: 65da str r2, [r3, #92] @ 0x5c
1864
1865 /* Check the LSE State */
1866 if (RCC_OscInitStruct->LSEState != RCC_LSE_OFF)
1867 8000966: 68a3 ldr r3, [r4, #8]
1868 8000968: 2b00 cmp r3, #0
1869 800096a: d038 beq.n 80009de <HAL_RCC_OscConfig+0x25a>
1870 {
1871 /* Get Start Tick*/
1872 tickstart = HAL_GetTick();
1873 800096c: f7ff fd4c bl 8000408 <HAL_GetTick>
1874 8000970: 0004 movs r4, r0
1875
1876 /* Wait till LSE is ready */
1877 while (READ_BIT(RCC->CSR1, RCC_CSR1_LSERDY) == 0U)
1878 8000972: 4b29 ldr r3, [pc, #164] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1879 8000974: 6ddb ldr r3, [r3, #92] @ 0x5c
1880 8000976: 079b lsls r3, r3, #30
1881 8000978: d42f bmi.n 80009da <HAL_RCC_OscConfig+0x256>
1882 {
1883 if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE)
1884 800097a: f7ff fd45 bl 8000408 <HAL_GetTick>
1885 800097e: 1b00 subs r0, r0, r4
1886 8000980: 4b2e ldr r3, [pc, #184] @ (8000a3c <HAL_RCC_OscConfig+0x2b8>)
1887 8000982: 4298 cmp r0, r3
1888 8000984: d9f5 bls.n 8000972 <HAL_RCC_OscConfig+0x1ee>
1889 {
1890 return HAL_TIMEOUT;
1891 8000986: 2003 movs r0, #3
1892 8000988: e03b b.n 8000a02 <HAL_RCC_OscConfig+0x27e>
1893 __HAL_RCC_LSI_DISABLE();
1894 800098a: 4a23 ldr r2, [pc, #140] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1895 800098c: 6e13 ldr r3, [r2, #96] @ 0x60
1896 800098e: 2101 movs r1, #1
1897 8000990: 438b bics r3, r1
1898 8000992: 6613 str r3, [r2, #96] @ 0x60
1899 tickstart = HAL_GetTick();
1900 8000994: f7ff fd38 bl 8000408 <HAL_GetTick>
1901 8000998: 0005 movs r5, r0
1902 while (READ_BIT(RCC->CSR2, RCC_CSR2_LSIRDY) != 0U)
1903 800099a: 4b1f ldr r3, [pc, #124] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1904 800099c: 6e1b ldr r3, [r3, #96] @ 0x60
1905 800099e: 079b lsls r3, r3, #30
1906 80009a0: d5ca bpl.n 8000938 <HAL_RCC_OscConfig+0x1b4>
1907 if ((HAL_GetTick() - tickstart) > RCC_LSI_TIMEOUT_VALUE)
1908 80009a2: f7ff fd31 bl 8000408 <HAL_GetTick>
1909 80009a6: 1b40 subs r0, r0, r5
1910 80009a8: 2802 cmp r0, #2
1911 80009aa: d9f6 bls.n 800099a <HAL_RCC_OscConfig+0x216>
1912 return HAL_TIMEOUT;
1913 80009ac: 2003 movs r0, #3
1914 80009ae: e028 b.n 8000a02 <HAL_RCC_OscConfig+0x27e>
1915 if (RCC_OscInitStruct->LSEState == RCC_LSE_OFF)
1916 80009b0: 68a3 ldr r3, [r4, #8]
1917 80009b2: 2b00 cmp r3, #0
1918 80009b4: d02e beq.n 8000a14 <HAL_RCC_OscConfig+0x290>
1919 }
1920 }
1921 }
1922 }
1923#endif /* RCC_CR_HSIUSB48ON */
1924 return HAL_OK;
1925 80009b6: 2000 movs r0, #0
1926 80009b8: e023 b.n 8000a02 <HAL_RCC_OscConfig+0x27e>
1927 __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState);
1928 80009ba: 4a17 ldr r2, [pc, #92] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1929 80009bc: 6dd3 ldr r3, [r2, #92] @ 0x5c
1930 80009be: 2101 movs r1, #1
1931 80009c0: 430b orrs r3, r1
1932 80009c2: 65d3 str r3, [r2, #92] @ 0x5c
1933 80009c4: e7cf b.n 8000966 <HAL_RCC_OscConfig+0x1e2>
1934 80009c6: 4b14 ldr r3, [pc, #80] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1935 80009c8: 6dda ldr r2, [r3, #92] @ 0x5c
1936 80009ca: 2104 movs r1, #4
1937 80009cc: 430a orrs r2, r1
1938 80009ce: 65da str r2, [r3, #92] @ 0x5c
1939 80009d0: 6dda ldr r2, [r3, #92] @ 0x5c
1940 80009d2: 3903 subs r1, #3
1941 80009d4: 430a orrs r2, r1
1942 80009d6: 65da str r2, [r3, #92] @ 0x5c
1943 80009d8: e7c5 b.n 8000966 <HAL_RCC_OscConfig+0x1e2>
1944 return HAL_OK;
1945 80009da: 2000 movs r0, #0
1946 80009dc: e011 b.n 8000a02 <HAL_RCC_OscConfig+0x27e>
1947 tickstart = HAL_GetTick();
1948 80009de: f7ff fd13 bl 8000408 <HAL_GetTick>
1949 80009e2: 0004 movs r4, r0
1950 while (READ_BIT(RCC->CSR1, RCC_CSR1_LSERDY) != 0U)
1951 80009e4: 4b0c ldr r3, [pc, #48] @ (8000a18 <HAL_RCC_OscConfig+0x294>)
1952 80009e6: 6ddb ldr r3, [r3, #92] @ 0x5c
1953 80009e8: 079b lsls r3, r3, #30
1954 80009ea: d507 bpl.n 80009fc <HAL_RCC_OscConfig+0x278>
1955 if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE)
1956 80009ec: f7ff fd0c bl 8000408 <HAL_GetTick>
1957 80009f0: 1b00 subs r0, r0, r4
1958 80009f2: 4b12 ldr r3, [pc, #72] @ (8000a3c <HAL_RCC_OscConfig+0x2b8>)
1959 80009f4: 4298 cmp r0, r3
1960 80009f6: d9f5 bls.n 80009e4 <HAL_RCC_OscConfig+0x260>
1961 return HAL_TIMEOUT;
1962 80009f8: 2003 movs r0, #3
1963 80009fa: e002 b.n 8000a02 <HAL_RCC_OscConfig+0x27e>
1964 return HAL_OK;
1965 80009fc: 2000 movs r0, #0
1966 80009fe: e000 b.n 8000a02 <HAL_RCC_OscConfig+0x27e>
1967 return HAL_ERROR;
1968 8000a00: 2001 movs r0, #1
1969}
1970 8000a02: bd70 pop {r4, r5, r6, pc}
1971 return HAL_ERROR;
1972 8000a04: 2001 movs r0, #1
1973 8000a06: e7fc b.n 8000a02 <HAL_RCC_OscConfig+0x27e>
1974 return HAL_ERROR;
1975 8000a08: 2001 movs r0, #1
1976 8000a0a: e7fa b.n 8000a02 <HAL_RCC_OscConfig+0x27e>
1977 return HAL_ERROR;
1978 8000a0c: 2001 movs r0, #1
1979 8000a0e: e7f8 b.n 8000a02 <HAL_RCC_OscConfig+0x27e>
1980 return HAL_OK;
1981 8000a10: 2000 movs r0, #0
1982 8000a12: e7f6 b.n 8000a02 <HAL_RCC_OscConfig+0x27e>
1983 return HAL_ERROR;
1984 8000a14: 2001 movs r0, #1
1985 8000a16: e7f4 b.n 8000a02 <HAL_RCC_OscConfig+0x27e>
1986 8000a18: 40021000 .word 0x40021000
1987 8000a1c: fffeffff .word 0xfffeffff
1988 8000a20: fffbffff .word 0xfffbffff
1989 8000a24: ffff80ff .word 0xffff80ff
1990 8000a28: ffffc7ff .word 0xffffc7ff
1991 8000a2c: 02dc6c00 .word 0x02dc6c00
1992 8000a30: 20000000 .word 0x20000000
1993 8000a34: 20000008 .word 0x20000008
1994 8000a38: fffffeff .word 0xfffffeff
1995 8000a3c: 00001388 .word 0x00001388
1996
199708000a40 <HAL_RCC_GetSysClockFreq>:
1998 uint32_t sysclockfreq;
1999#if defined(RCC_CR_SYSDIV)
2000 uint32_t sysclockdiv = (uint32_t)(((RCC->CR & RCC_CR_SYSDIV) >> RCC_CR_SYSDIV_Pos) + 1U);
2001#endif /* RCC_CR_SYSDIV */
2002
2003 if (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_HSI)
2004 8000a40: 4b14 ldr r3, [pc, #80] @ (8000a94 <HAL_RCC_GetSysClockFreq+0x54>)
2005 8000a42: 689b ldr r3, [r3, #8]
2006 8000a44: 2238 movs r2, #56 @ 0x38
2007 8000a46: 421a tst r2, r3
2008 8000a48: d107 bne.n 8000a5a <HAL_RCC_GetSysClockFreq+0x1a>
2009 {
2010 /* HSISYS can be derived for HSI48 */
2011 hsidiv = (1UL << ((READ_BIT(RCC->CR, RCC_CR_HSIDIV)) >> RCC_CR_HSIDIV_Pos));
2012 8000a4a: 4b12 ldr r3, [pc, #72] @ (8000a94 <HAL_RCC_GetSysClockFreq+0x54>)
2013 8000a4c: 681a ldr r2, [r3, #0]
2014 8000a4e: 0ad2 lsrs r2, r2, #11
2015 8000a50: 2307 movs r3, #7
2016 8000a52: 4013 ands r3, r2
2017
2018 /* HSI used as system clock source */
2019 sysclockfreq = (HSI_VALUE / hsidiv);
2020 8000a54: 4810 ldr r0, [pc, #64] @ (8000a98 <HAL_RCC_GetSysClockFreq+0x58>)
2021 8000a56: 40d8 lsrs r0, r3
2022 }
2023#if defined(RCC_CR_SYSDIV)
2024 sysclockfreq = sysclockfreq / sysclockdiv;
2025#endif /* RCC_CR_SYSDIV */
2026 return sysclockfreq;
2027}
2028 8000a58: 4770 bx lr
2029 else if (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_HSE)
2030 8000a5a: 4b0e ldr r3, [pc, #56] @ (8000a94 <HAL_RCC_GetSysClockFreq+0x54>)
2031 8000a5c: 689a ldr r2, [r3, #8]
2032 8000a5e: 2338 movs r3, #56 @ 0x38
2033 8000a60: 4013 ands r3, r2
2034 8000a62: 2b08 cmp r3, #8
2035 8000a64: d010 beq.n 8000a88 <HAL_RCC_GetSysClockFreq+0x48>
2036 else if (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_LSE)
2037 8000a66: 4b0b ldr r3, [pc, #44] @ (8000a94 <HAL_RCC_GetSysClockFreq+0x54>)
2038 8000a68: 689a ldr r2, [r3, #8]
2039 8000a6a: 2338 movs r3, #56 @ 0x38
2040 8000a6c: 4013 ands r3, r2
2041 8000a6e: 2b20 cmp r3, #32
2042 8000a70: d00c beq.n 8000a8c <HAL_RCC_GetSysClockFreq+0x4c>
2043 else if (__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_LSI)
2044 8000a72: 4b08 ldr r3, [pc, #32] @ (8000a94 <HAL_RCC_GetSysClockFreq+0x54>)
2045 8000a74: 689a ldr r2, [r3, #8]
2046 8000a76: 2338 movs r3, #56 @ 0x38
2047 8000a78: 4013 ands r3, r2
2048 8000a7a: 2b18 cmp r3, #24
2049 8000a7c: d001 beq.n 8000a82 <HAL_RCC_GetSysClockFreq+0x42>
2050 sysclockfreq = 0U;
2051 8000a7e: 2000 movs r0, #0
2052 return sysclockfreq;
2053 8000a80: e7ea b.n 8000a58 <HAL_RCC_GetSysClockFreq+0x18>
2054 sysclockfreq = LSI_VALUE;
2055 8000a82: 20fa movs r0, #250 @ 0xfa
2056 8000a84: 01c0 lsls r0, r0, #7
2057 8000a86: e7e7 b.n 8000a58 <HAL_RCC_GetSysClockFreq+0x18>
2058 sysclockfreq = HSE_VALUE;
2059 8000a88: 4804 ldr r0, [pc, #16] @ (8000a9c <HAL_RCC_GetSysClockFreq+0x5c>)
2060 8000a8a: e7e5 b.n 8000a58 <HAL_RCC_GetSysClockFreq+0x18>
2061 sysclockfreq = LSE_VALUE;
2062 8000a8c: 2080 movs r0, #128 @ 0x80
2063 8000a8e: 0200 lsls r0, r0, #8
2064 8000a90: e7e2 b.n 8000a58 <HAL_RCC_GetSysClockFreq+0x18>
2065 8000a92: 46c0 nop @ (mov r8, r8)
2066 8000a94: 40021000 .word 0x40021000
2067 8000a98: 02dc6c00 .word 0x02dc6c00
2068 8000a9c: 007a1200 .word 0x007a1200
2069
207008000aa0 <HAL_RCC_ClockConfig>:
2071{
2072 8000aa0: b570 push {r4, r5, r6, lr}
2073 8000aa2: 0004 movs r4, r0
2074 8000aa4: 000d movs r5, r1
2075 if (RCC_ClkInitStruct == NULL)
2076 8000aa6: 2800 cmp r0, #0
2077 8000aa8: d100 bne.n 8000aac <HAL_RCC_ClockConfig+0xc>
2078 8000aaa: e0a4 b.n 8000bf6 <HAL_RCC_ClockConfig+0x156>
2079 if (FLatency > __HAL_FLASH_GET_LATENCY())
2080 8000aac: 4b54 ldr r3, [pc, #336] @ (8000c00 <HAL_RCC_ClockConfig+0x160>)
2081 8000aae: 681a ldr r2, [r3, #0]
2082 8000ab0: 2307 movs r3, #7
2083 8000ab2: 4013 ands r3, r2
2084 8000ab4: 428b cmp r3, r1
2085 8000ab6: d321 bcc.n 8000afc <HAL_RCC_ClockConfig+0x5c>
2086 if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK)
2087 8000ab8: 6823 ldr r3, [r4, #0]
2088 8000aba: 079a lsls r2, r3, #30
2089 8000abc: d510 bpl.n 8000ae0 <HAL_RCC_ClockConfig+0x40>
2090 if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1)
2091 8000abe: 075b lsls r3, r3, #29
2092 8000ac0: d507 bpl.n 8000ad2 <HAL_RCC_ClockConfig+0x32>
2093 MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE, RCC_HCLK_DIV16);
2094 8000ac2: 4950 ldr r1, [pc, #320] @ (8000c04 <HAL_RCC_ClockConfig+0x164>)
2095 8000ac4: 688a ldr r2, [r1, #8]
2096 8000ac6: 4b50 ldr r3, [pc, #320] @ (8000c08 <HAL_RCC_ClockConfig+0x168>)
2097 8000ac8: 401a ands r2, r3
2098 8000aca: 23b0 movs r3, #176 @ 0xb0
2099 8000acc: 011b lsls r3, r3, #4
2100 8000ace: 4313 orrs r3, r2
2101 8000ad0: 608b str r3, [r1, #8]
2102 MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider);
2103 8000ad2: 4a4c ldr r2, [pc, #304] @ (8000c04 <HAL_RCC_ClockConfig+0x164>)
2104 8000ad4: 6893 ldr r3, [r2, #8]
2105 8000ad6: 494d ldr r1, [pc, #308] @ (8000c0c <HAL_RCC_ClockConfig+0x16c>)
2106 8000ad8: 400b ands r3, r1
2107 8000ada: 68e1 ldr r1, [r4, #12]
2108 8000adc: 430b orrs r3, r1
2109 8000ade: 6093 str r3, [r2, #8]
2110 if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK)
2111 8000ae0: 6823 ldr r3, [r4, #0]
2112 8000ae2: 07db lsls r3, r3, #31
2113 8000ae4: d54c bpl.n 8000b80 <HAL_RCC_ClockConfig+0xe0>
2114 if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE)
2115 8000ae6: 6863 ldr r3, [r4, #4]
2116 8000ae8: 2b01 cmp r3, #1
2117 8000aea: d01e beq.n 8000b2a <HAL_RCC_ClockConfig+0x8a>
2118 else if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSI)
2119 8000aec: 2b00 cmp r3, #0
2120 8000aee: d139 bne.n 8000b64 <HAL_RCC_ClockConfig+0xc4>
2121 if (READ_BIT(RCC->CR, RCC_CR_HSIRDY) == 0U)
2122 8000af0: 4a44 ldr r2, [pc, #272] @ (8000c04 <HAL_RCC_ClockConfig+0x164>)
2123 8000af2: 6812 ldr r2, [r2, #0]
2124 8000af4: 0552 lsls r2, r2, #21
2125 8000af6: d41c bmi.n 8000b32 <HAL_RCC_ClockConfig+0x92>
2126 return HAL_ERROR;
2127 8000af8: 2001 movs r0, #1
2128 8000afa: e064 b.n 8000bc6 <HAL_RCC_ClockConfig+0x126>
2129 __HAL_FLASH_SET_LATENCY(FLatency);
2130 8000afc: 4a40 ldr r2, [pc, #256] @ (8000c00 <HAL_RCC_ClockConfig+0x160>)
2131 8000afe: 6813 ldr r3, [r2, #0]
2132 8000b00: 2107 movs r1, #7
2133 8000b02: 438b bics r3, r1
2134 8000b04: 432b orrs r3, r5
2135 8000b06: 6013 str r3, [r2, #0]
2136 tickstart = HAL_GetTick();
2137 8000b08: f7ff fc7e bl 8000408 <HAL_GetTick>
2138 8000b0c: 0006 movs r6, r0
2139 while ((FLASH->ACR & FLASH_ACR_LATENCY) != FLatency)
2140 8000b0e: 4b3c ldr r3, [pc, #240] @ (8000c00 <HAL_RCC_ClockConfig+0x160>)
2141 8000b10: 681a ldr r2, [r3, #0]
2142 8000b12: 2307 movs r3, #7
2143 8000b14: 4013 ands r3, r2
2144 8000b16: 42ab cmp r3, r5
2145 8000b18: d0ce beq.n 8000ab8 <HAL_RCC_ClockConfig+0x18>
2146 if ((HAL_GetTick() - tickstart) > RCC_CLOCKSWITCH_TIMEOUT_VALUE)
2147 8000b1a: f7ff fc75 bl 8000408 <HAL_GetTick>
2148 8000b1e: 1b80 subs r0, r0, r6
2149 8000b20: 4a3b ldr r2, [pc, #236] @ (8000c10 <HAL_RCC_ClockConfig+0x170>)
2150 8000b22: 4290 cmp r0, r2
2151 8000b24: d9f3 bls.n 8000b0e <HAL_RCC_ClockConfig+0x6e>
2152 return HAL_TIMEOUT;
2153 8000b26: 2003 movs r0, #3
2154 8000b28: e04d b.n 8000bc6 <HAL_RCC_ClockConfig+0x126>
2155 if (READ_BIT(RCC->CR, RCC_CR_HSERDY) == 0U)
2156 8000b2a: 4a36 ldr r2, [pc, #216] @ (8000c04 <HAL_RCC_ClockConfig+0x164>)
2157 8000b2c: 6812 ldr r2, [r2, #0]
2158 8000b2e: 0392 lsls r2, r2, #14
2159 8000b30: d563 bpl.n 8000bfa <HAL_RCC_ClockConfig+0x15a>
2160 MODIFY_REG(RCC->CFGR, RCC_CFGR_SW, RCC_ClkInitStruct->SYSCLKSource);
2161 8000b32: 4934 ldr r1, [pc, #208] @ (8000c04 <HAL_RCC_ClockConfig+0x164>)
2162 8000b34: 688a ldr r2, [r1, #8]
2163 8000b36: 2007 movs r0, #7
2164 8000b38: 4382 bics r2, r0
2165 8000b3a: 4313 orrs r3, r2
2166 8000b3c: 608b str r3, [r1, #8]
2167 tickstart = HAL_GetTick();
2168 8000b3e: f7ff fc63 bl 8000408 <HAL_GetTick>
2169 8000b42: 0006 movs r6, r0
2170 while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos))
2171 8000b44: 4b2f ldr r3, [pc, #188] @ (8000c04 <HAL_RCC_ClockConfig+0x164>)
2172 8000b46: 689b ldr r3, [r3, #8]
2173 8000b48: 2238 movs r2, #56 @ 0x38
2174 8000b4a: 401a ands r2, r3
2175 8000b4c: 6863 ldr r3, [r4, #4]
2176 8000b4e: 00db lsls r3, r3, #3
2177 8000b50: 429a cmp r2, r3
2178 8000b52: d015 beq.n 8000b80 <HAL_RCC_ClockConfig+0xe0>
2179 if ((HAL_GetTick() - tickstart) > RCC_CLOCKSWITCH_TIMEOUT_VALUE)
2180 8000b54: f7ff fc58 bl 8000408 <HAL_GetTick>
2181 8000b58: 1b80 subs r0, r0, r6
2182 8000b5a: 4b2d ldr r3, [pc, #180] @ (8000c10 <HAL_RCC_ClockConfig+0x170>)
2183 8000b5c: 4298 cmp r0, r3
2184 8000b5e: d9f1 bls.n 8000b44 <HAL_RCC_ClockConfig+0xa4>
2185 return HAL_TIMEOUT;
2186 8000b60: 2003 movs r0, #3
2187 8000b62: e030 b.n 8000bc6 <HAL_RCC_ClockConfig+0x126>
2188 else if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_LSI)
2189 8000b64: 2b03 cmp r3, #3
2190 8000b66: d005 beq.n 8000b74 <HAL_RCC_ClockConfig+0xd4>
2191 if (READ_BIT(RCC->CSR1, RCC_CSR1_LSERDY) == 0U)
2192 8000b68: 4a26 ldr r2, [pc, #152] @ (8000c04 <HAL_RCC_ClockConfig+0x164>)
2193 8000b6a: 6dd2 ldr r2, [r2, #92] @ 0x5c
2194 8000b6c: 0792 lsls r2, r2, #30
2195 8000b6e: d4e0 bmi.n 8000b32 <HAL_RCC_ClockConfig+0x92>
2196 return HAL_ERROR;
2197 8000b70: 2001 movs r0, #1
2198 8000b72: e028 b.n 8000bc6 <HAL_RCC_ClockConfig+0x126>
2199 if (READ_BIT(RCC->CSR2, RCC_CSR2_LSIRDY) == 0U)
2200 8000b74: 4a23 ldr r2, [pc, #140] @ (8000c04 <HAL_RCC_ClockConfig+0x164>)
2201 8000b76: 6e12 ldr r2, [r2, #96] @ 0x60
2202 8000b78: 0792 lsls r2, r2, #30
2203 8000b7a: d4da bmi.n 8000b32 <HAL_RCC_ClockConfig+0x92>
2204 return HAL_ERROR;
2205 8000b7c: 2001 movs r0, #1
2206 8000b7e: e022 b.n 8000bc6 <HAL_RCC_ClockConfig+0x126>
2207 if (FLatency < __HAL_FLASH_GET_LATENCY())
2208 8000b80: 4b1f ldr r3, [pc, #124] @ (8000c00 <HAL_RCC_ClockConfig+0x160>)
2209 8000b82: 681a ldr r2, [r3, #0]
2210 8000b84: 2307 movs r3, #7
2211 8000b86: 4013 ands r3, r2
2212 8000b88: 42ab cmp r3, r5
2213 8000b8a: d81d bhi.n 8000bc8 <HAL_RCC_ClockConfig+0x128>
2214 if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1)
2215 8000b8c: 6823 ldr r3, [r4, #0]
2216 8000b8e: 075b lsls r3, r3, #29
2217 8000b90: d506 bpl.n 8000ba0 <HAL_RCC_ClockConfig+0x100>
2218 MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE, RCC_ClkInitStruct->APB1CLKDivider);
2219 8000b92: 4a1c ldr r2, [pc, #112] @ (8000c04 <HAL_RCC_ClockConfig+0x164>)
2220 8000b94: 6893 ldr r3, [r2, #8]
2221 8000b96: 491f ldr r1, [pc, #124] @ (8000c14 <HAL_RCC_ClockConfig+0x174>)
2222 8000b98: 400b ands r3, r1
2223 8000b9a: 6921 ldr r1, [r4, #16]
2224 8000b9c: 430b orrs r3, r1
2225 8000b9e: 6093 str r3, [r2, #8]
2226 SystemCoreClock = (HAL_RCC_GetSysClockFreq() >> ((AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE) \
2227 8000ba0: f7ff ff4e bl 8000a40 <HAL_RCC_GetSysClockFreq>
2228 8000ba4: 4b17 ldr r3, [pc, #92] @ (8000c04 <HAL_RCC_ClockConfig+0x164>)
2229 8000ba6: 689a ldr r2, [r3, #8]
2230 >> RCC_CFGR_HPRE_Pos]) & 0x1FU));
2231 8000ba8: 0a12 lsrs r2, r2, #8
2232 8000baa: 230f movs r3, #15
2233 8000bac: 4013 ands r3, r2
2234 SystemCoreClock = (HAL_RCC_GetSysClockFreq() >> ((AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE) \
2235 8000bae: 4a1a ldr r2, [pc, #104] @ (8000c18 <HAL_RCC_ClockConfig+0x178>)
2236 8000bb0: 009b lsls r3, r3, #2
2237 8000bb2: 589a ldr r2, [r3, r2]
2238 >> RCC_CFGR_HPRE_Pos]) & 0x1FU));
2239 8000bb4: 231f movs r3, #31
2240 8000bb6: 4013 ands r3, r2
2241 SystemCoreClock = (HAL_RCC_GetSysClockFreq() >> ((AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE) \
2242 8000bb8: 40d8 lsrs r0, r3
2243 8000bba: 4b18 ldr r3, [pc, #96] @ (8000c1c <HAL_RCC_ClockConfig+0x17c>)
2244 8000bbc: 6018 str r0, [r3, #0]
2245 return HAL_InitTick(uwTickPrio);
2246 8000bbe: 4b18 ldr r3, [pc, #96] @ (8000c20 <HAL_RCC_ClockConfig+0x180>)
2247 8000bc0: 6818 ldr r0, [r3, #0]
2248 8000bc2: f7ff fbdd bl 8000380 <HAL_InitTick>
2249}
2250 8000bc6: bd70 pop {r4, r5, r6, pc}
2251 __HAL_FLASH_SET_LATENCY(FLatency);
2252 8000bc8: 4a0d ldr r2, [pc, #52] @ (8000c00 <HAL_RCC_ClockConfig+0x160>)
2253 8000bca: 6813 ldr r3, [r2, #0]
2254 8000bcc: 2107 movs r1, #7
2255 8000bce: 438b bics r3, r1
2256 8000bd0: 432b orrs r3, r5
2257 8000bd2: 6013 str r3, [r2, #0]
2258 tickstart = HAL_GetTick();
2259 8000bd4: f7ff fc18 bl 8000408 <HAL_GetTick>
2260 8000bd8: 0006 movs r6, r0
2261 while ((FLASH->ACR & FLASH_ACR_LATENCY) != FLatency)
2262 8000bda: 4b09 ldr r3, [pc, #36] @ (8000c00 <HAL_RCC_ClockConfig+0x160>)
2263 8000bdc: 681a ldr r2, [r3, #0]
2264 8000bde: 2307 movs r3, #7
2265 8000be0: 4013 ands r3, r2
2266 8000be2: 42ab cmp r3, r5
2267 8000be4: d0d2 beq.n 8000b8c <HAL_RCC_ClockConfig+0xec>
2268 if ((HAL_GetTick() - tickstart) > RCC_CLOCKSWITCH_TIMEOUT_VALUE)
2269 8000be6: f7ff fc0f bl 8000408 <HAL_GetTick>
2270 8000bea: 1b80 subs r0, r0, r6
2271 8000bec: 4b08 ldr r3, [pc, #32] @ (8000c10 <HAL_RCC_ClockConfig+0x170>)
2272 8000bee: 4298 cmp r0, r3
2273 8000bf0: d9f3 bls.n 8000bda <HAL_RCC_ClockConfig+0x13a>
2274 return HAL_TIMEOUT;
2275 8000bf2: 2003 movs r0, #3
2276 8000bf4: e7e7 b.n 8000bc6 <HAL_RCC_ClockConfig+0x126>
2277 return HAL_ERROR;
2278 8000bf6: 2001 movs r0, #1
2279 8000bf8: e7e5 b.n 8000bc6 <HAL_RCC_ClockConfig+0x126>
2280 return HAL_ERROR;
2281 8000bfa: 2001 movs r0, #1
2282 8000bfc: e7e3 b.n 8000bc6 <HAL_RCC_ClockConfig+0x126>
2283 8000bfe: 46c0 nop @ (mov r8, r8)
2284 8000c00: 40022000 .word 0x40022000
2285 8000c04: 40021000 .word 0x40021000
2286 8000c08: ffff84ff .word 0xffff84ff
2287 8000c0c: fffff0ff .word 0xfffff0ff
2288 8000c10: 00001388 .word 0x00001388
2289 8000c14: ffff8fff .word 0xffff8fff
2290 8000c18: 08002768 .word 0x08002768
2291 8000c1c: 20000000 .word 0x20000000
2292 8000c20: 20000008 .word 0x20000008
2293
229408000c24 <BUTTON_Exec>:
2295
2296
2297// Diese funktion muss regelmäßig aufgerufen werden um die Taster abzufragen.
2298// 1ms
2299button_state_t BUTTON_Exec(void)
2300{
2301 8000c24: b510 push {r4, lr}
2302
2303 if (HAL_GPIO_ReadPin(GPIO_INPUT_BTN_ON_GPIO_Port, GPIO_INPUT_BTN_ON_Pin) == GPIO_PIN_SET)
2304 8000c26: 2101 movs r1, #1
2305 8000c28: 4829 ldr r0, [pc, #164] @ (8000cd0 <BUTTON_Exec+0xac>)
2306 8000c2a: f7ff fd9d bl 8000768 <HAL_GPIO_ReadPin>
2307 8000c2e: 2801 cmp r0, #1
2308 8000c30: d00f beq.n 8000c52 <BUTTON_Exec+0x2e>
2309 //Taste On wird gedrückt
2310 longPressCounterButtonOn++;
2311 }
2312
2313
2314 if (longPressCounterButtonOn > LONG_PRESS_TIME)
2315 8000c32: 4b28 ldr r3, [pc, #160] @ (8000cd4 <BUTTON_Exec+0xb0>)
2316 8000c34: 681b ldr r3, [r3, #0]
2317 8000c36: 4a28 ldr r2, [pc, #160] @ (8000cd8 <BUTTON_Exec+0xb4>)
2318 8000c38: 4293 cmp r3, r2
2319 8000c3a: d90f bls.n 8000c5c <BUTTON_Exec+0x38>
2320 {
2321
2322 if (buttonState != BUTTON_MANUAL_ON)
2323 8000c3c: 4b27 ldr r3, [pc, #156] @ (8000cdc <BUTTON_Exec+0xb8>)
2324 8000c3e: 781b ldrb r3, [r3, #0]
2325 8000c40: 2b02 cmp r3, #2
2326 8000c42: d00d beq.n 8000c60 <BUTTON_Exec+0x3c>
2327 {
2328 printf("BUTTON: Auto Mode Manual On\n");
2329 8000c44: 4826 ldr r0, [pc, #152] @ (8000ce0 <BUTTON_Exec+0xbc>)
2330 8000c46: f000 feed bl 8001a24 <puts>
2331 buttonState = BUTTON_MANUAL_ON;
2332 8000c4a: 4b24 ldr r3, [pc, #144] @ (8000cdc <BUTTON_Exec+0xb8>)
2333 8000c4c: 2202 movs r2, #2
2334 8000c4e: 701a strb r2, [r3, #0]
2335 8000c50: e006 b.n 8000c60 <BUTTON_Exec+0x3c>
2336 longPressCounterButtonOn++;
2337 8000c52: 4a20 ldr r2, [pc, #128] @ (8000cd4 <BUTTON_Exec+0xb0>)
2338 8000c54: 6813 ldr r3, [r2, #0]
2339 8000c56: 3301 adds r3, #1
2340 8000c58: 6013 str r3, [r2, #0]
2341 8000c5a: e7ea b.n 8000c32 <BUTTON_Exec+0xe>
2342 }
2343 }
2344 else if ( (longPressCounterButtonOn > MIN_PRESS_TIME) && (HAL_GPIO_ReadPin(GPIO_INPUT_BTN_ON_GPIO_Port, GPIO_INPUT_BTN_ON_Pin) == GPIO_PIN_RESET))
2345 8000c5c: 2b0a cmp r3, #10
2346 8000c5e: d814 bhi.n 8000c8a <BUTTON_Exec+0x66>
2347 }
2348 }
2349
2350
2351
2352 if (HAL_GPIO_ReadPin(GPIO_INPUT_BTN_ON_GPIO_Port, GPIO_INPUT_BTN_ON_Pin) == GPIO_PIN_RESET)
2353 8000c60: 2101 movs r1, #1
2354 8000c62: 481b ldr r0, [pc, #108] @ (8000cd0 <BUTTON_Exec+0xac>)
2355 8000c64: f7ff fd80 bl 8000768 <HAL_GPIO_ReadPin>
2356 8000c68: 2800 cmp r0, #0
2357 8000c6a: d102 bne.n 8000c72 <BUTTON_Exec+0x4e>
2358 {
2359 longPressCounterButtonOn = 0;
2360 8000c6c: 4b19 ldr r3, [pc, #100] @ (8000cd4 <BUTTON_Exec+0xb0>)
2361 8000c6e: 2200 movs r2, #0
2362 8000c70: 601a str r2, [r3, #0]
2363 }
2364
2365
2366 // ------ Taste OFF -----
2367 if (HAL_GPIO_ReadPin(GPIO_INPUT_BTN_OFF_GPIO_Port, GPIO_INPUT_BTN_OFF_Pin) == GPIO_PIN_SET)
2368 8000c72: 2102 movs r1, #2
2369 8000c74: 4816 ldr r0, [pc, #88] @ (8000cd0 <BUTTON_Exec+0xac>)
2370 8000c76: f7ff fd77 bl 8000768 <HAL_GPIO_ReadPin>
2371 8000c7a: 2801 cmp r0, #1
2372 8000c7c: d016 beq.n 8000cac <BUTTON_Exec+0x88>
2373 }
2374 }
2375 }
2376 else
2377 {
2378 longPressCounterButtonOff = 0;
2379 8000c7e: 4b19 ldr r3, [pc, #100] @ (8000ce4 <BUTTON_Exec+0xc0>)
2380 8000c80: 2200 movs r2, #0
2381 8000c82: 601a str r2, [r3, #0]
2382 }
2383
2384 return buttonState;
2385 8000c84: 4b15 ldr r3, [pc, #84] @ (8000cdc <BUTTON_Exec+0xb8>)
2386 8000c86: 7818 ldrb r0, [r3, #0]
2387
2388}
2389 8000c88: bd10 pop {r4, pc}
2390 else if ( (longPressCounterButtonOn > MIN_PRESS_TIME) && (HAL_GPIO_ReadPin(GPIO_INPUT_BTN_ON_GPIO_Port, GPIO_INPUT_BTN_ON_Pin) == GPIO_PIN_RESET))
2391 8000c8a: 2101 movs r1, #1
2392 8000c8c: 4810 ldr r0, [pc, #64] @ (8000cd0 <BUTTON_Exec+0xac>)
2393 8000c8e: f7ff fd6b bl 8000768 <HAL_GPIO_ReadPin>
2394 8000c92: 2800 cmp r0, #0
2395 8000c94: d1e4 bne.n 8000c60 <BUTTON_Exec+0x3c>
2396 if (buttonState != BUTTON_AUTO)
2397 8000c96: 4b11 ldr r3, [pc, #68] @ (8000cdc <BUTTON_Exec+0xb8>)
2398 8000c98: 781b ldrb r3, [r3, #0]
2399 8000c9a: 2b01 cmp r3, #1
2400 8000c9c: d0e0 beq.n 8000c60 <BUTTON_Exec+0x3c>
2401 printf("BUTTON: Auto Mode\n");
2402 8000c9e: 4812 ldr r0, [pc, #72] @ (8000ce8 <BUTTON_Exec+0xc4>)
2403 8000ca0: f000 fec0 bl 8001a24 <puts>
2404 buttonState = BUTTON_AUTO;
2405 8000ca4: 4b0d ldr r3, [pc, #52] @ (8000cdc <BUTTON_Exec+0xb8>)
2406 8000ca6: 2201 movs r2, #1
2407 8000ca8: 701a strb r2, [r3, #0]
2408 8000caa: e7d9 b.n 8000c60 <BUTTON_Exec+0x3c>
2409 longPressCounterButtonOff++;
2410 8000cac: 4a0d ldr r2, [pc, #52] @ (8000ce4 <BUTTON_Exec+0xc0>)
2411 8000cae: 6813 ldr r3, [r2, #0]
2412 8000cb0: 3301 adds r3, #1
2413 8000cb2: 6013 str r3, [r2, #0]
2414 if (longPressCounterButtonOff > MIN_PRESS_TIME)
2415 8000cb4: 2b0a cmp r3, #10
2416 8000cb6: d9e5 bls.n 8000c84 <BUTTON_Exec+0x60>
2417 if (buttonState != BUTTON_OFF)
2418 8000cb8: 4b08 ldr r3, [pc, #32] @ (8000cdc <BUTTON_Exec+0xb8>)
2419 8000cba: 781b ldrb r3, [r3, #0]
2420 8000cbc: 2b00 cmp r3, #0
2421 8000cbe: d0e1 beq.n 8000c84 <BUTTON_Exec+0x60>
2422 printf("BUTTON: Off Mode\n");
2423 8000cc0: 480a ldr r0, [pc, #40] @ (8000cec <BUTTON_Exec+0xc8>)
2424 8000cc2: f000 feaf bl 8001a24 <puts>
2425 buttonState = BUTTON_OFF;
2426 8000cc6: 4b05 ldr r3, [pc, #20] @ (8000cdc <BUTTON_Exec+0xb8>)
2427 8000cc8: 2200 movs r2, #0
2428 8000cca: 701a strb r2, [r3, #0]
2429 8000ccc: e7da b.n 8000c84 <BUTTON_Exec+0x60>
2430 8000cce: 46c0 nop @ (mov r8, r8)
2431 8000cd0: 50000400 .word 0x50000400
2432 8000cd4: 200000ec .word 0x200000ec
2433 8000cd8: 00001388 .word 0x00001388
2434 8000cdc: 200000f0 .word 0x200000f0
2435 8000ce0: 080027a8 .word 0x080027a8
2436 8000ce4: 200000e8 .word 0x200000e8
2437 8000ce8: 080027c4 .word 0x080027c4
2438 8000cec: 080027d8 .word 0x080027d8
2439
244008000cf0 <BUTTON_GetMode>:
2441
2442
2443button_state_t BUTTON_GetMode(void)
2444{
2445 return buttonState;
2446 8000cf0: 4b01 ldr r3, [pc, #4] @ (8000cf8 <BUTTON_GetMode+0x8>)
2447 8000cf2: 7818 ldrb r0, [r3, #0]
2448}
2449 8000cf4: 4770 bx lr
2450 8000cf6: 46c0 nop @ (mov r8, r8)
2451 8000cf8: 200000f0 .word 0x200000f0
2452
245308000cfc <BUTTON_SetModeOff>:
2454
2455void BUTTON_SetModeOff(void)
2456{
2457 buttonState = BUTTON_OFF;
2458 8000cfc: 4b01 ldr r3, [pc, #4] @ (8000d04 <BUTTON_SetModeOff+0x8>)
2459 8000cfe: 2200 movs r2, #0
2460 8000d00: 701a strb r2, [r3, #0]
2461 8000d02: 4770 bx lr
2462 8000d04: 200000f0 .word 0x200000f0
2463
246408000d08 <BUZZER_Exec>:
2465unsigned int alarmMode;
2466
2467
2468
2469void BUZZER_Exec(void)
2470{
2471 8000d08: b510 push {r4, lr}
2472
2473 if (onTimeCounter > 0)
2474 8000d0a: 4b15 ldr r3, [pc, #84] @ (8000d60 <BUZZER_Exec+0x58>)
2475 8000d0c: 681b ldr r3, [r3, #0]
2476 8000d0e: 2b00 cmp r3, #0
2477 8000d10: d004 beq.n 8000d1c <BUZZER_Exec+0x14>
2478 {
2479 onTimeCounter--;
2480 8000d12: 3b01 subs r3, #1
2481 8000d14: 4a12 ldr r2, [pc, #72] @ (8000d60 <BUZZER_Exec+0x58>)
2482 8000d16: 6013 str r3, [r2, #0]
2483 if (onTimeCounter == 0)
2484 8000d18: 2b00 cmp r3, #0
2485 8000d1a: d009 beq.n 8000d30 <BUZZER_Exec+0x28>
2486
2487 if (alarmMode == 1) offTimeCounter = offTime;
2488 }
2489 }
2490
2491 if (offTimeCounter > 0)
2492 8000d1c: 4b11 ldr r3, [pc, #68] @ (8000d64 <BUZZER_Exec+0x5c>)
2493 8000d1e: 681b ldr r3, [r3, #0]
2494 8000d20: 2b00 cmp r3, #0
2495 8000d22: d004 beq.n 8000d2e <BUZZER_Exec+0x26>
2496 {
2497 offTimeCounter--;
2498 8000d24: 3b01 subs r3, #1
2499 8000d26: 4a0f ldr r2, [pc, #60] @ (8000d64 <BUZZER_Exec+0x5c>)
2500 8000d28: 6013 str r3, [r2, #0]
2501 if (offTimeCounter == 0)
2502 8000d2a: 2b00 cmp r3, #0
2503 8000d2c: d00e beq.n 8000d4c <BUZZER_Exec+0x44>
2504 {
2505 HAL_GPIO_WritePin(GPIO_OUTPUT_BUZZER_GPIO_Port, GPIO_OUTPUT_BUZZER_Pin, GPIO_PIN_SET);
2506 onTimeCounter = onTime;
2507 }
2508 }
2509}
2510 8000d2e: bd10 pop {r4, pc}
2511 HAL_GPIO_WritePin(GPIO_OUTPUT_BUZZER_GPIO_Port, GPIO_OUTPUT_BUZZER_Pin, GPIO_PIN_RESET);
2512 8000d30: 2200 movs r2, #0
2513 8000d32: 2120 movs r1, #32
2514 8000d34: 480c ldr r0, [pc, #48] @ (8000d68 <BUZZER_Exec+0x60>)
2515 8000d36: f7ff fd1e bl 8000776 <HAL_GPIO_WritePin>
2516 if (alarmMode == 1) offTimeCounter = offTime;
2517 8000d3a: 4b0c ldr r3, [pc, #48] @ (8000d6c <BUZZER_Exec+0x64>)
2518 8000d3c: 681b ldr r3, [r3, #0]
2519 8000d3e: 2b01 cmp r3, #1
2520 8000d40: d1ec bne.n 8000d1c <BUZZER_Exec+0x14>
2521 8000d42: 4b08 ldr r3, [pc, #32] @ (8000d64 <BUZZER_Exec+0x5c>)
2522 8000d44: 4a0a ldr r2, [pc, #40] @ (8000d70 <BUZZER_Exec+0x68>)
2523 8000d46: 6812 ldr r2, [r2, #0]
2524 8000d48: 601a str r2, [r3, #0]
2525 8000d4a: e7e7 b.n 8000d1c <BUZZER_Exec+0x14>
2526 HAL_GPIO_WritePin(GPIO_OUTPUT_BUZZER_GPIO_Port, GPIO_OUTPUT_BUZZER_Pin, GPIO_PIN_SET);
2527 8000d4c: 2201 movs r2, #1
2528 8000d4e: 2120 movs r1, #32
2529 8000d50: 4805 ldr r0, [pc, #20] @ (8000d68 <BUZZER_Exec+0x60>)
2530 8000d52: f7ff fd10 bl 8000776 <HAL_GPIO_WritePin>
2531 onTimeCounter = onTime;
2532 8000d56: 4b02 ldr r3, [pc, #8] @ (8000d60 <BUZZER_Exec+0x58>)
2533 8000d58: 4a06 ldr r2, [pc, #24] @ (8000d74 <BUZZER_Exec+0x6c>)
2534 8000d5a: 6812 ldr r2, [r2, #0]
2535 8000d5c: 601a str r2, [r3, #0]
2536}
2537 8000d5e: e7e6 b.n 8000d2e <BUZZER_Exec+0x26>
2538 8000d60: 20000104 .word 0x20000104
2539 8000d64: 20000100 .word 0x20000100
2540 8000d68: 50000400 .word 0x50000400
2541 8000d6c: 200000f4 .word 0x200000f4
2542 8000d70: 200000f8 .word 0x200000f8
2543 8000d74: 200000fc .word 0x200000fc
2544
254508000d78 <BUZZER_Beep>:
2546
2547
2548
2549void BUZZER_Beep(unsigned int time)
2550{
2551 8000d78: b510 push {r4, lr}
2552 8000d7a: 0004 movs r4, r0
2553 HAL_GPIO_WritePin(GPIO_OUTPUT_BUZZER_GPIO_Port, GPIO_OUTPUT_BUZZER_Pin, GPIO_PIN_SET);
2554 8000d7c: 2201 movs r2, #1
2555 8000d7e: 2120 movs r1, #32
2556 8000d80: 4802 ldr r0, [pc, #8] @ (8000d8c <BUZZER_Beep+0x14>)
2557 8000d82: f7ff fcf8 bl 8000776 <HAL_GPIO_WritePin>
2558 onTimeCounter = time;
2559 8000d86: 4b02 ldr r3, [pc, #8] @ (8000d90 <BUZZER_Beep+0x18>)
2560 8000d88: 601c str r4, [r3, #0]
2561
2562}
2563 8000d8a: bd10 pop {r4, pc}
2564 8000d8c: 50000400 .word 0x50000400
2565 8000d90: 20000104 .word 0x20000104
2566
256708000d94 <BUZZER_Alarm_Start>:
2568
2569void BUZZER_Alarm_Start(unsigned int on, unsigned int off )
2570{
2571 8000d94: b510 push {r4, lr}
2572 8000d96: 0004 movs r4, r0
2573 onTime = on;
2574 8000d98: 4b06 ldr r3, [pc, #24] @ (8000db4 <BUZZER_Alarm_Start+0x20>)
2575 8000d9a: 6018 str r0, [r3, #0]
2576 offTime = off;
2577 8000d9c: 4b06 ldr r3, [pc, #24] @ (8000db8 <BUZZER_Alarm_Start+0x24>)
2578 8000d9e: 6019 str r1, [r3, #0]
2579 alarmMode = 1;
2580 8000da0: 4b06 ldr r3, [pc, #24] @ (8000dbc <BUZZER_Alarm_Start+0x28>)
2581 8000da2: 2201 movs r2, #1
2582 8000da4: 601a str r2, [r3, #0]
2583
2584 HAL_GPIO_WritePin(GPIO_OUTPUT_BUZZER_GPIO_Port, GPIO_OUTPUT_BUZZER_Pin, GPIO_PIN_SET);
2585 8000da6: 2120 movs r1, #32
2586 8000da8: 4805 ldr r0, [pc, #20] @ (8000dc0 <BUZZER_Alarm_Start+0x2c>)
2587 8000daa: f7ff fce4 bl 8000776 <HAL_GPIO_WritePin>
2588 onTimeCounter = on;
2589 8000dae: 4b05 ldr r3, [pc, #20] @ (8000dc4 <BUZZER_Alarm_Start+0x30>)
2590 8000db0: 601c str r4, [r3, #0]
2591
2592}
2593 8000db2: bd10 pop {r4, pc}
2594 8000db4: 200000fc .word 0x200000fc
2595 8000db8: 200000f8 .word 0x200000f8
2596 8000dbc: 200000f4 .word 0x200000f4
2597 8000dc0: 50000400 .word 0x50000400
2598 8000dc4: 20000104 .word 0x20000104
2599
260008000dc8 <BUZZER_Alarm_Stop>:
2601
2602void BUZZER_Alarm_Stop(void)
2603{
2604 8000dc8: b510 push {r4, lr}
2605 HAL_GPIO_WritePin(GPIO_OUTPUT_BUZZER_GPIO_Port, GPIO_OUTPUT_BUZZER_Pin, GPIO_PIN_RESET);
2606 8000dca: 2200 movs r2, #0
2607 8000dcc: 2120 movs r1, #32
2608 8000dce: 4805 ldr r0, [pc, #20] @ (8000de4 <BUZZER_Alarm_Stop+0x1c>)
2609 8000dd0: f7ff fcd1 bl 8000776 <HAL_GPIO_WritePin>
2610 alarmMode = 0;
2611 8000dd4: 4a04 ldr r2, [pc, #16] @ (8000de8 <BUZZER_Alarm_Stop+0x20>)
2612 8000dd6: 2300 movs r3, #0
2613 8000dd8: 6013 str r3, [r2, #0]
2614 offTimeCounter = 0;
2615 8000dda: 4a04 ldr r2, [pc, #16] @ (8000dec <BUZZER_Alarm_Stop+0x24>)
2616 8000ddc: 6013 str r3, [r2, #0]
2617 onTimeCounter = 0;
2618 8000dde: 4a04 ldr r2, [pc, #16] @ (8000df0 <BUZZER_Alarm_Stop+0x28>)
2619 8000de0: 6013 str r3, [r2, #0]
2620
2621 8000de2: bd10 pop {r4, pc}
2622 8000de4: 50000400 .word 0x50000400
2623 8000de8: 200000f4 .word 0x200000f4
2624 8000dec: 20000100 .word 0x20000100
2625 8000df0: 20000104 .word 0x20000104
2626
262708000df4 <LEDS_Exec>:
2628unsigned int onTimeRT;
2629unsigned int offTimeRT;
2630unsigned int blinkModeRT;
2631
2632void LEDS_Exec(void)
2633{
2634 8000df4: b510 push {r4, lr}
2635
2636 if (onTimeCounterGN > 0)
2637 8000df6: 4b2c ldr r3, [pc, #176] @ (8000ea8 <LEDS_Exec+0xb4>)
2638 8000df8: 681b ldr r3, [r3, #0]
2639 8000dfa: 2b00 cmp r3, #0
2640 8000dfc: d004 beq.n 8000e08 <LEDS_Exec+0x14>
2641 {
2642 onTimeCounterGN--;
2643 8000dfe: 3b01 subs r3, #1
2644 8000e00: 4a29 ldr r2, [pc, #164] @ (8000ea8 <LEDS_Exec+0xb4>)
2645 8000e02: 6013 str r3, [r2, #0]
2646 if (onTimeCounterGN == 0)
2647 8000e04: 2b00 cmp r3, #0
2648 8000e06: d01b beq.n 8000e40 <LEDS_Exec+0x4c>
2649
2650 if (blinkModeGN == 1) offTimeCounterGN = offTimeGN;
2651 }
2652 }
2653
2654 if (offTimeCounterGN > 0)
2655 8000e08: 4b28 ldr r3, [pc, #160] @ (8000eac <LEDS_Exec+0xb8>)
2656 8000e0a: 681b ldr r3, [r3, #0]
2657 8000e0c: 2b00 cmp r3, #0
2658 8000e0e: d004 beq.n 8000e1a <LEDS_Exec+0x26>
2659 {
2660 offTimeCounterGN--;
2661 8000e10: 3b01 subs r3, #1
2662 8000e12: 4a26 ldr r2, [pc, #152] @ (8000eac <LEDS_Exec+0xb8>)
2663 8000e14: 6013 str r3, [r2, #0]
2664 if (offTimeCounterGN == 0)
2665 8000e16: 2b00 cmp r3, #0
2666 8000e18: d021 beq.n 8000e5e <LEDS_Exec+0x6a>
2667 }
2668 }
2669
2670
2671 // --- LED ROT ---
2672 if (onTimeCounterRT > 0)
2673 8000e1a: 4b25 ldr r3, [pc, #148] @ (8000eb0 <LEDS_Exec+0xbc>)
2674 8000e1c: 681b ldr r3, [r3, #0]
2675 8000e1e: 2b00 cmp r3, #0
2676 8000e20: d004 beq.n 8000e2c <LEDS_Exec+0x38>
2677 {
2678 onTimeCounterRT--;
2679 8000e22: 3b01 subs r3, #1
2680 8000e24: 4a22 ldr r2, [pc, #136] @ (8000eb0 <LEDS_Exec+0xbc>)
2681 8000e26: 6013 str r3, [r2, #0]
2682 if (onTimeCounterRT == 0)
2683 8000e28: 2b00 cmp r3, #0
2684 8000e2a: d023 beq.n 8000e74 <LEDS_Exec+0x80>
2685
2686 if (blinkModeRT == 1) offTimeCounterRT = offTimeRT;
2687 }
2688 }
2689
2690 if (offTimeCounterRT > 0)
2691 8000e2c: 4b21 ldr r3, [pc, #132] @ (8000eb4 <LEDS_Exec+0xc0>)
2692 8000e2e: 681b ldr r3, [r3, #0]
2693 8000e30: 2b00 cmp r3, #0
2694 8000e32: d004 beq.n 8000e3e <LEDS_Exec+0x4a>
2695 {
2696 offTimeCounterRT--;
2697 8000e34: 3b01 subs r3, #1
2698 8000e36: 4a1f ldr r2, [pc, #124] @ (8000eb4 <LEDS_Exec+0xc0>)
2699 8000e38: 6013 str r3, [r2, #0]
2700 if (offTimeCounterRT == 0)
2701 8000e3a: 2b00 cmp r3, #0
2702 8000e3c: d029 beq.n 8000e92 <LEDS_Exec+0x9e>
2703 {
2704 HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ERROR_GPIO_Port, GPIO_OUTPUT_LED_ERROR_Pin, GPIO_PIN_SET);
2705 onTimeCounterRT = onTimeRT;
2706 }
2707 }
2708}
2709 8000e3e: bd10 pop {r4, pc}
2710 HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ON_GPIO_Port, GPIO_OUTPUT_LED_ON_Pin, GPIO_PIN_RESET);
2711 8000e40: 2180 movs r1, #128 @ 0x80
2712 8000e42: 2200 movs r2, #0
2713 8000e44: 01c9 lsls r1, r1, #7
2714 8000e46: 481c ldr r0, [pc, #112] @ (8000eb8 <LEDS_Exec+0xc4>)
2715 8000e48: f7ff fc95 bl 8000776 <HAL_GPIO_WritePin>
2716 if (blinkModeGN == 1) offTimeCounterGN = offTimeGN;
2717 8000e4c: 4b1b ldr r3, [pc, #108] @ (8000ebc <LEDS_Exec+0xc8>)
2718 8000e4e: 681b ldr r3, [r3, #0]
2719 8000e50: 2b01 cmp r3, #1
2720 8000e52: d1d9 bne.n 8000e08 <LEDS_Exec+0x14>
2721 8000e54: 4b15 ldr r3, [pc, #84] @ (8000eac <LEDS_Exec+0xb8>)
2722 8000e56: 4a1a ldr r2, [pc, #104] @ (8000ec0 <LEDS_Exec+0xcc>)
2723 8000e58: 6812 ldr r2, [r2, #0]
2724 8000e5a: 601a str r2, [r3, #0]
2725 8000e5c: e7d4 b.n 8000e08 <LEDS_Exec+0x14>
2726 HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ON_GPIO_Port, GPIO_OUTPUT_LED_ON_Pin, GPIO_PIN_SET);
2727 8000e5e: 2180 movs r1, #128 @ 0x80
2728 8000e60: 2201 movs r2, #1
2729 8000e62: 01c9 lsls r1, r1, #7
2730 8000e64: 4814 ldr r0, [pc, #80] @ (8000eb8 <LEDS_Exec+0xc4>)
2731 8000e66: f7ff fc86 bl 8000776 <HAL_GPIO_WritePin>
2732 onTimeCounterGN = onTimeGN;
2733 8000e6a: 4b0f ldr r3, [pc, #60] @ (8000ea8 <LEDS_Exec+0xb4>)
2734 8000e6c: 4a15 ldr r2, [pc, #84] @ (8000ec4 <LEDS_Exec+0xd0>)
2735 8000e6e: 6812 ldr r2, [r2, #0]
2736 8000e70: 601a str r2, [r3, #0]
2737 8000e72: e7d2 b.n 8000e1a <LEDS_Exec+0x26>
2738 HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ERROR_GPIO_Port, GPIO_OUTPUT_LED_ERROR_Pin, GPIO_PIN_RESET);
2739 8000e74: 2180 movs r1, #128 @ 0x80
2740 8000e76: 2200 movs r2, #0
2741 8000e78: 0209 lsls r1, r1, #8
2742 8000e7a: 480f ldr r0, [pc, #60] @ (8000eb8 <LEDS_Exec+0xc4>)
2743 8000e7c: f7ff fc7b bl 8000776 <HAL_GPIO_WritePin>
2744 if (blinkModeRT == 1) offTimeCounterRT = offTimeRT;
2745 8000e80: 4b11 ldr r3, [pc, #68] @ (8000ec8 <LEDS_Exec+0xd4>)
2746 8000e82: 681b ldr r3, [r3, #0]
2747 8000e84: 2b01 cmp r3, #1
2748 8000e86: d1d1 bne.n 8000e2c <LEDS_Exec+0x38>
2749 8000e88: 4b0a ldr r3, [pc, #40] @ (8000eb4 <LEDS_Exec+0xc0>)
2750 8000e8a: 4a10 ldr r2, [pc, #64] @ (8000ecc <LEDS_Exec+0xd8>)
2751 8000e8c: 6812 ldr r2, [r2, #0]
2752 8000e8e: 601a str r2, [r3, #0]
2753 8000e90: e7cc b.n 8000e2c <LEDS_Exec+0x38>
2754 HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ERROR_GPIO_Port, GPIO_OUTPUT_LED_ERROR_Pin, GPIO_PIN_SET);
2755 8000e92: 2180 movs r1, #128 @ 0x80
2756 8000e94: 2201 movs r2, #1
2757 8000e96: 0209 lsls r1, r1, #8
2758 8000e98: 4807 ldr r0, [pc, #28] @ (8000eb8 <LEDS_Exec+0xc4>)
2759 8000e9a: f7ff fc6c bl 8000776 <HAL_GPIO_WritePin>
2760 onTimeCounterRT = onTimeRT;
2761 8000e9e: 4b04 ldr r3, [pc, #16] @ (8000eb0 <LEDS_Exec+0xbc>)
2762 8000ea0: 4a0b ldr r2, [pc, #44] @ (8000ed0 <LEDS_Exec+0xdc>)
2763 8000ea2: 6812 ldr r2, [r2, #0]
2764 8000ea4: 601a str r2, [r3, #0]
2765}
2766 8000ea6: e7ca b.n 8000e3e <LEDS_Exec+0x4a>
2767 8000ea8: 2000012c .word 0x2000012c
2768 8000eac: 20000128 .word 0x20000128
2769 8000eb0: 20000118 .word 0x20000118
2770 8000eb4: 20000114 .word 0x20000114
2771 8000eb8: 50000800 .word 0x50000800
2772 8000ebc: 2000011c .word 0x2000011c
2773 8000ec0: 20000120 .word 0x20000120
2774 8000ec4: 20000124 .word 0x20000124
2775 8000ec8: 20000108 .word 0x20000108
2776 8000ecc: 2000010c .word 0x2000010c
2777 8000ed0: 20000110 .word 0x20000110
2778
277908000ed4 <LEDS_GN_On>:
2780
2781// --- Steuerfunktionen LED grün ------------
2782void LEDS_GN_On(void)
2783{
2784 8000ed4: b510 push {r4, lr}
2785 HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ON_GPIO_Port, GPIO_OUTPUT_LED_ON_Pin, GPIO_PIN_SET);
2786 8000ed6: 2180 movs r1, #128 @ 0x80
2787 8000ed8: 2201 movs r2, #1
2788 8000eda: 01c9 lsls r1, r1, #7
2789 8000edc: 4805 ldr r0, [pc, #20] @ (8000ef4 <LEDS_GN_On+0x20>)
2790 8000ede: f7ff fc4a bl 8000776 <HAL_GPIO_WritePin>
2791
2792 blinkModeGN = 0; // Blinkmode zurücksetzen, falls es eingeschaltet war
2793 8000ee2: 4a05 ldr r2, [pc, #20] @ (8000ef8 <LEDS_GN_On+0x24>)
2794 8000ee4: 2300 movs r3, #0
2795 8000ee6: 6013 str r3, [r2, #0]
2796 onTimeCounterGN = 0;
2797 8000ee8: 4a04 ldr r2, [pc, #16] @ (8000efc <LEDS_GN_On+0x28>)
2798 8000eea: 6013 str r3, [r2, #0]
2799 offTimeCounterGN = 0;
2800 8000eec: 4a04 ldr r2, [pc, #16] @ (8000f00 <LEDS_GN_On+0x2c>)
2801 8000eee: 6013 str r3, [r2, #0]
2802}
2803 8000ef0: bd10 pop {r4, pc}
2804 8000ef2: 46c0 nop @ (mov r8, r8)
2805 8000ef4: 50000800 .word 0x50000800
2806 8000ef8: 2000011c .word 0x2000011c
2807 8000efc: 2000012c .word 0x2000012c
2808 8000f00: 20000128 .word 0x20000128
2809
281008000f04 <LEDS_GN_Blink_Start>:
2811 HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ON_GPIO_Port, GPIO_OUTPUT_LED_ON_Pin, GPIO_PIN_SET);
2812 onTimeCounterGN = time;
2813}
2814
2815void LEDS_GN_Blink_Start(unsigned int on, unsigned int off )
2816{
2817 8000f04: b510 push {r4, lr}
2818 8000f06: 0004 movs r4, r0
2819 onTimeGN = on;
2820 8000f08: 4b07 ldr r3, [pc, #28] @ (8000f28 <LEDS_GN_Blink_Start+0x24>)
2821 8000f0a: 6018 str r0, [r3, #0]
2822 offTimeGN = off;
2823 8000f0c: 4b07 ldr r3, [pc, #28] @ (8000f2c <LEDS_GN_Blink_Start+0x28>)
2824 8000f0e: 6019 str r1, [r3, #0]
2825 blinkModeGN = 1;
2826 8000f10: 4b07 ldr r3, [pc, #28] @ (8000f30 <LEDS_GN_Blink_Start+0x2c>)
2827 8000f12: 2201 movs r2, #1
2828 8000f14: 601a str r2, [r3, #0]
2829
2830 HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ON_GPIO_Port, GPIO_OUTPUT_LED_ON_Pin, GPIO_PIN_SET);
2831 8000f16: 2180 movs r1, #128 @ 0x80
2832 8000f18: 01c9 lsls r1, r1, #7
2833 8000f1a: 4806 ldr r0, [pc, #24] @ (8000f34 <LEDS_GN_Blink_Start+0x30>)
2834 8000f1c: f7ff fc2b bl 8000776 <HAL_GPIO_WritePin>
2835 onTimeCounterGN = on;
2836 8000f20: 4b05 ldr r3, [pc, #20] @ (8000f38 <LEDS_GN_Blink_Start+0x34>)
2837 8000f22: 601c str r4, [r3, #0]
2838}
2839 8000f24: bd10 pop {r4, pc}
2840 8000f26: 46c0 nop @ (mov r8, r8)
2841 8000f28: 20000124 .word 0x20000124
2842 8000f2c: 20000120 .word 0x20000120
2843 8000f30: 2000011c .word 0x2000011c
2844 8000f34: 50000800 .word 0x50000800
2845 8000f38: 2000012c .word 0x2000012c
2846
284708000f3c <LEDS_GN_Off>:
2848
2849void LEDS_GN_Off(void)
2850{
2851 8000f3c: b510 push {r4, lr}
2852 HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ON_GPIO_Port, GPIO_OUTPUT_LED_ON_Pin, GPIO_PIN_RESET);
2853 8000f3e: 2180 movs r1, #128 @ 0x80
2854 8000f40: 2200 movs r2, #0
2855 8000f42: 01c9 lsls r1, r1, #7
2856 8000f44: 4805 ldr r0, [pc, #20] @ (8000f5c <LEDS_GN_Off+0x20>)
2857 8000f46: f7ff fc16 bl 8000776 <HAL_GPIO_WritePin>
2858 blinkModeGN = 0;
2859 8000f4a: 4a05 ldr r2, [pc, #20] @ (8000f60 <LEDS_GN_Off+0x24>)
2860 8000f4c: 2300 movs r3, #0
2861 8000f4e: 6013 str r3, [r2, #0]
2862 offTimeCounterGN = 0;
2863 8000f50: 4a04 ldr r2, [pc, #16] @ (8000f64 <LEDS_GN_Off+0x28>)
2864 8000f52: 6013 str r3, [r2, #0]
2865 onTimeCounterGN = 0;
2866 8000f54: 4a04 ldr r2, [pc, #16] @ (8000f68 <LEDS_GN_Off+0x2c>)
2867 8000f56: 6013 str r3, [r2, #0]
2868}
2869 8000f58: bd10 pop {r4, pc}
2870 8000f5a: 46c0 nop @ (mov r8, r8)
2871 8000f5c: 50000800 .word 0x50000800
2872 8000f60: 2000011c .word 0x2000011c
2873 8000f64: 20000128 .word 0x20000128
2874 8000f68: 2000012c .word 0x2000012c
2875
287608000f6c <LEDS_RT_Blink_Start>:
2877 HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ERROR_GPIO_Port, GPIO_OUTPUT_LED_ERROR_Pin, GPIO_PIN_SET);
2878 onTimeCounterRT = time;
2879}
2880
2881void LEDS_RT_Blink_Start(unsigned int on, unsigned int off )
2882{
2883 8000f6c: b510 push {r4, lr}
2884 8000f6e: 0004 movs r4, r0
2885 onTimeRT = on;
2886 8000f70: 4b07 ldr r3, [pc, #28] @ (8000f90 <LEDS_RT_Blink_Start+0x24>)
2887 8000f72: 6018 str r0, [r3, #0]
2888 offTimeRT = off;
2889 8000f74: 4b07 ldr r3, [pc, #28] @ (8000f94 <LEDS_RT_Blink_Start+0x28>)
2890 8000f76: 6019 str r1, [r3, #0]
2891 blinkModeRT = 1;
2892 8000f78: 4b07 ldr r3, [pc, #28] @ (8000f98 <LEDS_RT_Blink_Start+0x2c>)
2893 8000f7a: 2201 movs r2, #1
2894 8000f7c: 601a str r2, [r3, #0]
2895
2896 HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ERROR_GPIO_Port, GPIO_OUTPUT_LED_ERROR_Pin, GPIO_PIN_SET);
2897 8000f7e: 2180 movs r1, #128 @ 0x80
2898 8000f80: 0209 lsls r1, r1, #8
2899 8000f82: 4806 ldr r0, [pc, #24] @ (8000f9c <LEDS_RT_Blink_Start+0x30>)
2900 8000f84: f7ff fbf7 bl 8000776 <HAL_GPIO_WritePin>
2901 onTimeCounterRT = on;
2902 8000f88: 4b05 ldr r3, [pc, #20] @ (8000fa0 <LEDS_RT_Blink_Start+0x34>)
2903 8000f8a: 601c str r4, [r3, #0]
2904}
2905 8000f8c: bd10 pop {r4, pc}
2906 8000f8e: 46c0 nop @ (mov r8, r8)
2907 8000f90: 20000110 .word 0x20000110
2908 8000f94: 2000010c .word 0x2000010c
2909 8000f98: 20000108 .word 0x20000108
2910 8000f9c: 50000800 .word 0x50000800
2911 8000fa0: 20000118 .word 0x20000118
2912
291308000fa4 <LEDS_RT_Off>:
2914
2915void LEDS_RT_Off(void)
2916{
2917 8000fa4: b510 push {r4, lr}
2918 HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ERROR_GPIO_Port, GPIO_OUTPUT_LED_ERROR_Pin, GPIO_PIN_RESET);
2919 8000fa6: 2180 movs r1, #128 @ 0x80
2920 8000fa8: 2200 movs r2, #0
2921 8000faa: 0209 lsls r1, r1, #8
2922 8000fac: 4805 ldr r0, [pc, #20] @ (8000fc4 <LEDS_RT_Off+0x20>)
2923 8000fae: f7ff fbe2 bl 8000776 <HAL_GPIO_WritePin>
2924 blinkModeRT = 0;
2925 8000fb2: 4a05 ldr r2, [pc, #20] @ (8000fc8 <LEDS_RT_Off+0x24>)
2926 8000fb4: 2300 movs r3, #0
2927 8000fb6: 6013 str r3, [r2, #0]
2928 offTimeCounterRT = 0;
2929 8000fb8: 4a04 ldr r2, [pc, #16] @ (8000fcc <LEDS_RT_Off+0x28>)
2930 8000fba: 6013 str r3, [r2, #0]
2931 onTimeCounterRT = 0;
2932 8000fbc: 4a04 ldr r2, [pc, #16] @ (8000fd0 <LEDS_RT_Off+0x2c>)
2933 8000fbe: 6013 str r3, [r2, #0]
2934 8000fc0: bd10 pop {r4, pc}
2935 8000fc2: 46c0 nop @ (mov r8, r8)
2936 8000fc4: 50000800 .word 0x50000800
2937 8000fc8: 20000108 .word 0x20000108
2938 8000fcc: 20000114 .word 0x20000114
2939 8000fd0: 20000118 .word 0x20000118
2940
294108000fd4 <MX_GPIO_Init>:
2942 * @brief GPIO Initialization Function
2943 * @param None
2944 * @retval None
2945 */
2946static void MX_GPIO_Init(void)
2947{
2948 8000fd4: b5f0 push {r4, r5, r6, r7, lr}
2949 8000fd6: b089 sub sp, #36 @ 0x24
2950 GPIO_InitTypeDef GPIO_InitStruct = {0};
2951 8000fd8: 2214 movs r2, #20
2952 8000fda: 2100 movs r1, #0
2953 8000fdc: a803 add r0, sp, #12
2954 8000fde: f000 fe17 bl 8001c10 <memset>
2955/* USER CODE BEGIN MX_GPIO_Init_1 */
2956/* USER CODE END MX_GPIO_Init_1 */
2957
2958 /* GPIO Ports Clock Enable */
2959 __HAL_RCC_GPIOB_CLK_ENABLE();
2960 8000fe2: 4b26 ldr r3, [pc, #152] @ (800107c <MX_GPIO_Init+0xa8>)
2961 8000fe4: 6b59 ldr r1, [r3, #52] @ 0x34
2962 8000fe6: 2202 movs r2, #2
2963 8000fe8: 4311 orrs r1, r2
2964 8000fea: 6359 str r1, [r3, #52] @ 0x34
2965 8000fec: 6b59 ldr r1, [r3, #52] @ 0x34
2966 8000fee: 400a ands r2, r1
2967 8000ff0: 9200 str r2, [sp, #0]
2968 8000ff2: 9a00 ldr r2, [sp, #0]
2969 __HAL_RCC_GPIOC_CLK_ENABLE();
2970 8000ff4: 6b59 ldr r1, [r3, #52] @ 0x34
2971 8000ff6: 2204 movs r2, #4
2972 8000ff8: 4311 orrs r1, r2
2973 8000ffa: 6359 str r1, [r3, #52] @ 0x34
2974 8000ffc: 6b59 ldr r1, [r3, #52] @ 0x34
2975 8000ffe: 400a ands r2, r1
2976 8001000: 9201 str r2, [sp, #4]
2977 8001002: 9a01 ldr r2, [sp, #4]
2978 __HAL_RCC_GPIOA_CLK_ENABLE();
2979 8001004: 6b5a ldr r2, [r3, #52] @ 0x34
2980 8001006: 2401 movs r4, #1
2981 8001008: 4322 orrs r2, r4
2982 800100a: 635a str r2, [r3, #52] @ 0x34
2983 800100c: 6b5b ldr r3, [r3, #52] @ 0x34
2984 800100e: 4023 ands r3, r4
2985 8001010: 9302 str r3, [sp, #8]
2986 8001012: 9b02 ldr r3, [sp, #8]
2987
2988 /*Configure GPIO pin Output Level */
2989 HAL_GPIO_WritePin(GPIOA, GPIO_OUTPUT_LED_ON_Pin|GPIO_OUTPUT_LED_ERROR_Pin|GPIO_OUTPUT_RELAIS_SET_Pin|GPIO_OUTPUT_RELAIS_RESET_Pin
2990 8001014: 4f1a ldr r7, [pc, #104] @ (8001080 <MX_GPIO_Init+0xac>)
2991 8001016: 26a0 movs r6, #160 @ 0xa0
2992 8001018: 05f6 lsls r6, r6, #23
2993 800101a: 2200 movs r2, #0
2994 800101c: 0039 movs r1, r7
2995 800101e: 0030 movs r0, r6
2996 8001020: f7ff fba9 bl 8000776 <HAL_GPIO_WritePin>
2997 |GPIO_OUTPUT_BUZZER_Pin, GPIO_PIN_RESET);
2998
2999 /*Configure GPIO pins : GPIO_INPUT_MODE_B3_Pin GPIO_INPUT_MODE_B2_Pin */
3000 GPIO_InitStruct.Pin = GPIO_INPUT_MODE_B3_Pin|GPIO_INPUT_MODE_B2_Pin;
3001 8001024: 23c0 movs r3, #192 @ 0xc0
3002 8001026: 009b lsls r3, r3, #2
3003 8001028: 9303 str r3, [sp, #12]
3004 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
3005 800102a: 2500 movs r5, #0
3006 800102c: 9504 str r5, [sp, #16]
3007 GPIO_InitStruct.Pull = GPIO_PULLUP;
3008 800102e: 9405 str r4, [sp, #20]
3009 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
3010 8001030: a903 add r1, sp, #12
3011 8001032: 4814 ldr r0, [pc, #80] @ (8001084 <MX_GPIO_Init+0xb0>)
3012 8001034: f7ff faba bl 80005ac <HAL_GPIO_Init>
3013
3014 /*Configure GPIO pins : GPIO_INPUT_MODE_B1_Pin GPIO_INPUT_MODE_B0_Pin */
3015 GPIO_InitStruct.Pin = GPIO_INPUT_MODE_B1_Pin|GPIO_INPUT_MODE_B0_Pin;
3016 8001038: 23c0 movs r3, #192 @ 0xc0
3017 800103a: 9303 str r3, [sp, #12]
3018 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
3019 800103c: 9504 str r5, [sp, #16]
3020 GPIO_InitStruct.Pull = GPIO_PULLUP;
3021 800103e: 9405 str r4, [sp, #20]
3022 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
3023 8001040: a903 add r1, sp, #12
3024 8001042: 4811 ldr r0, [pc, #68] @ (8001088 <MX_GPIO_Init+0xb4>)
3025 8001044: f7ff fab2 bl 80005ac <HAL_GPIO_Init>
3026
3027 /*Configure GPIO pins : GPIO_INPUT_LVP_Pin GPIO_INPUT_OVP_Pin */
3028 GPIO_InitStruct.Pin = GPIO_INPUT_LVP_Pin|GPIO_INPUT_OVP_Pin;
3029 8001048: 2303 movs r3, #3
3030 800104a: 9303 str r3, [sp, #12]
3031 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
3032 800104c: 9504 str r5, [sp, #16]
3033 GPIO_InitStruct.Pull = GPIO_PULLUP;
3034 800104e: 9405 str r4, [sp, #20]
3035 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
3036 8001050: a903 add r1, sp, #12
3037 8001052: 0030 movs r0, r6
3038 8001054: f7ff faaa bl 80005ac <HAL_GPIO_Init>
3039
3040 /*Configure GPIO pins : GPIO_INPUT_BTN_ON_Pin GPIO_INPUT_BTN_OFF_Pin GPIO_INPUT_FAULT_Pin GPIO_INPUT_BMS_Pin */
3041 GPIO_InitStruct.Pin = GPIO_INPUT_BTN_ON_Pin|GPIO_INPUT_BTN_OFF_Pin|GPIO_INPUT_FAULT_Pin|GPIO_INPUT_BMS_Pin;
3042 8001058: 2347 movs r3, #71 @ 0x47
3043 800105a: 9303 str r3, [sp, #12]
3044 GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
3045 800105c: 9504 str r5, [sp, #16]
3046 GPIO_InitStruct.Pull = GPIO_PULLUP;
3047 800105e: 9405 str r4, [sp, #20]
3048 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
3049 8001060: a903 add r1, sp, #12
3050 8001062: 0030 movs r0, r6
3051 8001064: f7ff faa2 bl 80005ac <HAL_GPIO_Init>
3052
3053 /*Configure GPIO pins : GPIO_OUTPUT_LED_ON_Pin GPIO_OUTPUT_LED_ERROR_Pin GPIO_OUTPUT_RELAIS_SET_Pin GPIO_OUTPUT_RELAIS_RESET_Pin
3054 GPIO_OUTPUT_BUZZER_Pin */
3055 GPIO_InitStruct.Pin = GPIO_OUTPUT_LED_ON_Pin|GPIO_OUTPUT_LED_ERROR_Pin|GPIO_OUTPUT_RELAIS_SET_Pin|GPIO_OUTPUT_RELAIS_RESET_Pin
3056 8001068: 9703 str r7, [sp, #12]
3057 |GPIO_OUTPUT_BUZZER_Pin;
3058 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
3059 800106a: 9404 str r4, [sp, #16]
3060 GPIO_InitStruct.Pull = GPIO_NOPULL;
3061 800106c: 9505 str r5, [sp, #20]
3062 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
3063 800106e: 9506 str r5, [sp, #24]
3064 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
3065 8001070: a903 add r1, sp, #12
3066 8001072: 0030 movs r0, r6
3067 8001074: f7ff fa9a bl 80005ac <HAL_GPIO_Init>
3068
3069/* USER CODE BEGIN MX_GPIO_Init_2 */
3070/* USER CODE END MX_GPIO_Init_2 */
3071}
3072 8001078: b009 add sp, #36 @ 0x24
3073 800107a: bdf0 pop {r4, r5, r6, r7, pc}
3074 800107c: 40021000 .word 0x40021000
3075 8001080: 0000c038 .word 0x0000c038
3076 8001084: 50000400 .word 0x50000400
3077 8001088: 50000800 .word 0x50000800
3078
30790800108c <Error_Handler>:
3080 \details Disables IRQ interrupts by setting special-purpose register PRIMASK.
3081 Can only be executed in Privileged modes.
3082 */
3083__STATIC_FORCEINLINE void __disable_irq(void)
3084{
3085 __ASM volatile ("cpsid i" : : : "memory");
3086 800108c: b672 cpsid i
3087void Error_Handler(void)
3088{
3089 /* USER CODE BEGIN Error_Handler_Debug */
3090 /* User can add his own implementation to report the HAL error return state */
3091 __disable_irq();
3092 while (1)
3093 800108e: e7fe b.n 800108e <Error_Handler+0x2>
3094
309508001090 <SystemClock_Config>:
3096{
3097 8001090: b500 push {lr}
3098 8001092: b08d sub sp, #52 @ 0x34
3099 RCC_OscInitTypeDef RCC_OscInitStruct = {0};
3100 8001094: 221c movs r2, #28
3101 8001096: 2100 movs r1, #0
3102 8001098: a805 add r0, sp, #20
3103 800109a: f000 fdb9 bl 8001c10 <memset>
3104 RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
3105 800109e: 2214 movs r2, #20
3106 80010a0: 2100 movs r1, #0
3107 80010a2: 4668 mov r0, sp
3108 80010a4: f000 fdb4 bl 8001c10 <memset>
3109 __HAL_FLASH_SET_LATENCY(FLASH_LATENCY_0);
3110 80010a8: 4a12 ldr r2, [pc, #72] @ (80010f4 <SystemClock_Config+0x64>)
3111 80010aa: 6813 ldr r3, [r2, #0]
3112 80010ac: 2107 movs r1, #7
3113 80010ae: 438b bics r3, r1
3114 80010b0: 6013 str r3, [r2, #0]
3115 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
3116 80010b2: 2302 movs r3, #2
3117 80010b4: 9305 str r3, [sp, #20]
3118 RCC_OscInitStruct.HSIState = RCC_HSI_ON;
3119 80010b6: 33fe adds r3, #254 @ 0xfe
3120 80010b8: 9308 str r3, [sp, #32]
3121 RCC_OscInitStruct.HSIDiv = RCC_HSI_DIV4;
3122 80010ba: 2380 movs r3, #128 @ 0x80
3123 80010bc: 015b lsls r3, r3, #5
3124 80010be: 9309 str r3, [sp, #36] @ 0x24
3125 RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
3126 80010c0: 2340 movs r3, #64 @ 0x40
3127 80010c2: 930a str r3, [sp, #40] @ 0x28
3128 if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
3129 80010c4: a805 add r0, sp, #20
3130 80010c6: f7ff fb5d bl 8000784 <HAL_RCC_OscConfig>
3131 80010ca: 2800 cmp r0, #0
3132 80010cc: d10e bne.n 80010ec <SystemClock_Config+0x5c>
3133 RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
3134 80010ce: 2307 movs r3, #7
3135 80010d0: 9300 str r3, [sp, #0]
3136 RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
3137 80010d2: 2300 movs r3, #0
3138 80010d4: 9301 str r3, [sp, #4]
3139 RCC_ClkInitStruct.SYSCLKDivider = RCC_SYSCLK_DIV1;
3140 80010d6: 9302 str r3, [sp, #8]
3141 RCC_ClkInitStruct.AHBCLKDivider = RCC_HCLK_DIV1;
3142 80010d8: 9303 str r3, [sp, #12]
3143 RCC_ClkInitStruct.APB1CLKDivider = RCC_APB1_DIV1;
3144 80010da: 9304 str r3, [sp, #16]
3145 if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
3146 80010dc: 2100 movs r1, #0
3147 80010de: 4668 mov r0, sp
3148 80010e0: f7ff fcde bl 8000aa0 <HAL_RCC_ClockConfig>
3149 80010e4: 2800 cmp r0, #0
3150 80010e6: d103 bne.n 80010f0 <SystemClock_Config+0x60>
3151}
3152 80010e8: b00d add sp, #52 @ 0x34
3153 80010ea: bd00 pop {pc}
3154 Error_Handler();
3155 80010ec: f7ff ffce bl 800108c <Error_Handler>
3156 Error_Handler();
3157 80010f0: f7ff ffcc bl 800108c <Error_Handler>
3158 80010f4: 40022000 .word 0x40022000
3159
3160080010f8 <main>:
3161{
3162 80010f8: b510 push {r4, lr}
3163 HAL_Init();
3164 80010fa: f7ff f96d bl 80003d8 <HAL_Init>
3165 SystemClock_Config();
3166 80010fe: f7ff ffc7 bl 8001090 <SystemClock_Config>
3167 MX_GPIO_Init();
3168 8001102: f7ff ff67 bl 8000fd4 <MX_GPIO_Init>
3169 HAL_GPIO_WritePin(GPIO_OUTPUT_RELAIS_SET_GPIO_Port, GPIO_OUTPUT_RELAIS_SET_Pin, GPIO_PIN_RESET);
3170 8001106: 4c1c ldr r4, [pc, #112] @ (8001178 <main+0x80>)
3171 8001108: 2200 movs r2, #0
3172 800110a: 2108 movs r1, #8
3173 800110c: 0020 movs r0, r4
3174 800110e: f7ff fb32 bl 8000776 <HAL_GPIO_WritePin>
3175 HAL_GPIO_WritePin(GPIO_OUTPUT_RELAIS_RESET_GPIO_Port, GPIO_OUTPUT_RELAIS_RESET_Pin, GPIO_PIN_SET);
3176 8001112: 2201 movs r2, #1
3177 8001114: 2110 movs r1, #16
3178 8001116: 0020 movs r0, r4
3179 8001118: f7ff fb2d bl 8000776 <HAL_GPIO_WritePin>
3180 HAL_Delay(50);
3181 800111c: 2032 movs r0, #50 @ 0x32
3182 800111e: f7ff f979 bl 8000414 <HAL_Delay>
3183 HAL_GPIO_WritePin(GPIO_OUTPUT_RELAIS_RESET_GPIO_Port, GPIO_OUTPUT_RELAIS_RESET_Pin, GPIO_PIN_RESET);
3184 8001122: 2200 movs r2, #0
3185 8001124: 2110 movs r1, #16
3186 8001126: 0020 movs r0, r4
3187 8001128: f7ff fb25 bl 8000776 <HAL_GPIO_WritePin>
3188 MODESWITCH_ReadMode();
3189 800112c: f000 fac0 bl 80016b0 <MODESWITCH_ReadMode>
3190 8001130: e00e b.n 8001150 <main+0x58>
3191 BUTTON_Exec();
3192 8001132: f7ff fd77 bl 8000c24 <BUTTON_Exec>
3193 BUZZER_Exec();
3194 8001136: f7ff fde7 bl 8000d08 <BUZZER_Exec>
3195 RELAIS_Exec();
3196 800113a: f000 faef bl 800171c <RELAIS_Exec>
3197 LEDS_Exec();
3198 800113e: f7ff fe59 bl 8000df4 <LEDS_Exec>
3199 oldTimeMSTick = HAL_GetTick();
3200 8001142: f7ff f961 bl 8000408 <HAL_GetTick>
3201 8001146: 4b0d ldr r3, [pc, #52] @ (800117c <main+0x84>)
3202 8001148: 6018 str r0, [r3, #0]
3203 800114a: e007 b.n 800115c <main+0x64>
3204 MODE_MAINSWITCH_Exec();
3205 800114c: f000 f91a bl 8001384 <MODE_MAINSWITCH_Exec>
3206 if (oldTimeMSTick != HAL_GetTick())
3207 8001150: f7ff f95a bl 8000408 <HAL_GetTick>
3208 8001154: 4b09 ldr r3, [pc, #36] @ (800117c <main+0x84>)
3209 8001156: 681b ldr r3, [r3, #0]
3210 8001158: 4298 cmp r0, r3
3211 800115a: d1ea bne.n 8001132 <main+0x3a>
3212 switch (MODESWITCH_GetMode())
3213 800115c: f000 fad8 bl 8001710 <MODESWITCH_GetMode>
3214 8001160: 2800 cmp r0, #0
3215 8001162: d0f3 beq.n 800114c <main+0x54>
3216 8001164: 2801 cmp r0, #1
3217 8001166: d003 beq.n 8001170 <main+0x78>
3218 printf("mode not yet implemented\n");
3219 8001168: 4805 ldr r0, [pc, #20] @ (8001180 <main+0x88>)
3220 800116a: f000 fc5b bl 8001a24 <puts>
3221 800116e: e7ef b.n 8001150 <main+0x58>
3222 MODE_SECONDARYPROTECTION_Exec();
3223 8001170: f000 fa84 bl 800167c <MODE_SECONDARYPROTECTION_Exec>
3224 break;
3225 8001174: e7ec b.n 8001150 <main+0x58>
3226 8001176: 46c0 nop @ (mov r8, r8)
3227 8001178: 50000400 .word 0x50000400
3228 800117c: 20000130 .word 0x20000130
3229 8001180: 080027ec .word 0x080027ec
3230
323108001184 <MAINSWITCH_SM_Off>:
3232
3233static MAINSWITCH_state_t smState;
3234
3235
3236void MAINSWITCH_SM_Off(void)
3237{
3238 8001184: b510 push {r4, lr}
3239 int faultInput;
3240
3241 if (HAL_GPIO_ReadPin(GPIO_INPUT_FAULT_GPIO_Port, GPIO_INPUT_FAULT_Pin) == GPIO_PIN_RESET)
3242 8001186: 2104 movs r1, #4
3243 8001188: 4825 ldr r0, [pc, #148] @ (8001220 <MAINSWITCH_SM_Off+0x9c>)
3244 800118a: f7ff faed bl 8000768 <HAL_GPIO_ReadPin>
3245 800118e: 2800 cmp r0, #0
3246 8001190: d109 bne.n 80011a6 <MAINSWITCH_SM_Off+0x22>
3247 {
3248 faultInput = 1;
3249 8001192: 2401 movs r4, #1
3250 }
3251
3252
3253
3254 //Prüfe auf Wechsel des Modus AUTO / SM ON
3255 if (BUTTON_GetMode() == BUTTON_AUTO)
3256 8001194: f7ff fdac bl 8000cf0 <BUTTON_GetMode>
3257 8001198: 2801 cmp r0, #1
3258 800119a: d006 beq.n 80011aa <MAINSWITCH_SM_Off+0x26>
3259 }
3260 }
3261
3262 //Prüfe auf Wechsel in MANUAL ON Mode
3263 //Keine Fehlerüberprüfungen. In diesem Modus werdem alle Alarme ignoriert.
3264 if (BUTTON_GetMode() == BUTTON_MANUAL_ON)
3265 800119c: f7ff fda8 bl 8000cf0 <BUTTON_GetMode>
3266 80011a0: 2802 cmp r0, #2
3267 80011a2: d028 beq.n 80011f6 <MAINSWITCH_SM_Off+0x72>
3268 smState = MAINSWITCH_MANUAL_ON;
3269 }
3270
3271
3272
3273}
3274 80011a4: bd10 pop {r4, pc}
3275 faultInput = 0;
3276 80011a6: 2400 movs r4, #0
3277 80011a8: e7f4 b.n 8001194 <MAINSWITCH_SM_Off+0x10>
3278 if (faultInput == 0)
3279 80011aa: 2c00 cmp r4, #0
3280 80011ac: d110 bne.n 80011d0 <MAINSWITCH_SM_Off+0x4c>
3281 RELAIS_SetPuls();
3282 80011ae: f000 fadb bl 8001768 <RELAIS_SetPuls>
3283 BUZZER_Beep(BUZZER_ON_TIME_CONFIRM);
3284 80011b2: 20c8 movs r0, #200 @ 0xc8
3285 80011b4: f7ff fde0 bl 8000d78 <BUZZER_Beep>
3286 LEDS_GN_Blink_Start(LED_GN_ON_TIME_ON_MODE, LED_GN_OFF_TIME);
3287 80011b8: 21fa movs r1, #250 @ 0xfa
3288 80011ba: 0089 lsls r1, r1, #2
3289 80011bc: 20c8 movs r0, #200 @ 0xc8
3290 80011be: f7ff fea1 bl 8000f04 <LEDS_GN_Blink_Start>
3291 printf("NEW_STATE: MAINSWITCH_ON\n");
3292 80011c2: 4818 ldr r0, [pc, #96] @ (8001224 <MAINSWITCH_SM_Off+0xa0>)
3293 80011c4: f000 fc2e bl 8001a24 <puts>
3294 smState = MAINSWITCH_ON;
3295 80011c8: 4b17 ldr r3, [pc, #92] @ (8001228 <MAINSWITCH_SM_Off+0xa4>)
3296 80011ca: 2201 movs r2, #1
3297 80011cc: 701a strb r2, [r3, #0]
3298 80011ce: e7e5 b.n 800119c <MAINSWITCH_SM_Off+0x18>
3299 BUZZER_Beep(BUZZER_ON_TIME_REJECT);
3300 80011d0: 24fa movs r4, #250 @ 0xfa
3301 80011d2: 0064 lsls r4, r4, #1
3302 80011d4: 0020 movs r0, r4
3303 80011d6: f7ff fdcf bl 8000d78 <BUZZER_Beep>
3304 BUTTON_SetModeOff();
3305 80011da: f7ff fd8f bl 8000cfc <BUTTON_SetModeOff>
3306 LEDS_RT_Blink_Start(LED_RT_ON_TIME_WARN_FAULT_INPUT, LED_GN_OFF_TIME); //Fehler Anzeigen
3307 80011de: 21fa movs r1, #250 @ 0xfa
3308 80011e0: 0089 lsls r1, r1, #2
3309 80011e2: 0020 movs r0, r4
3310 80011e4: f7ff fec2 bl 8000f6c <LEDS_RT_Blink_Start>
3311 printf("NEW_STATE: MAINSWITCH_ERROR\n");
3312 80011e8: 4810 ldr r0, [pc, #64] @ (800122c <MAINSWITCH_SM_Off+0xa8>)
3313 80011ea: f000 fc1b bl 8001a24 <puts>
3314 smState = MAINSWITCH_ERROR;
3315 80011ee: 4b0e ldr r3, [pc, #56] @ (8001228 <MAINSWITCH_SM_Off+0xa4>)
3316 80011f0: 2203 movs r2, #3
3317 80011f2: 701a strb r2, [r3, #0]
3318 80011f4: e7d2 b.n 800119c <MAINSWITCH_SM_Off+0x18>
3319 RELAIS_SetPuls();
3320 80011f6: f000 fab7 bl 8001768 <RELAIS_SetPuls>
3321 BUZZER_Alarm_Start(BUZZER_ON_TIME_ALARM_MANUAL_MODE, BUZZER_OFF_TIME);
3322 80011fa: 24fa movs r4, #250 @ 0xfa
3323 80011fc: 00a4 lsls r4, r4, #2
3324 80011fe: 0021 movs r1, r4
3325 8001200: 20c8 movs r0, #200 @ 0xc8
3326 8001202: f7ff fdc7 bl 8000d94 <BUZZER_Alarm_Start>
3327 LEDS_GN_On();
3328 8001206: f7ff fe65 bl 8000ed4 <LEDS_GN_On>
3329 LEDS_RT_Blink_Start(LED_RT_ON_TIME_WARN_MANUAL_MODE, LED_GN_OFF_TIME);
3330 800120a: 0021 movs r1, r4
3331 800120c: 20c8 movs r0, #200 @ 0xc8
3332 800120e: f7ff fead bl 8000f6c <LEDS_RT_Blink_Start>
3333 printf("NEW_STATE: MAINSWITCH_MANUAL_ON\n");
3334 8001212: 4807 ldr r0, [pc, #28] @ (8001230 <MAINSWITCH_SM_Off+0xac>)
3335 8001214: f000 fc06 bl 8001a24 <puts>
3336 smState = MAINSWITCH_MANUAL_ON;
3337 8001218: 4b03 ldr r3, [pc, #12] @ (8001228 <MAINSWITCH_SM_Off+0xa4>)
3338 800121a: 2202 movs r2, #2
3339 800121c: 701a strb r2, [r3, #0]
3340}
3341 800121e: e7c1 b.n 80011a4 <MAINSWITCH_SM_Off+0x20>
3342 8001220: 50000400 .word 0x50000400
3343 8001224: 08002808 .word 0x08002808
3344 8001228: 20000134 .word 0x20000134
3345 800122c: 08002824 .word 0x08002824
3346 8001230: 08002840 .word 0x08002840
3347
334808001234 <MAINSWITCH_SM_On>:
3349
3350void MAINSWITCH_SM_On(void)
3351{
3352 8001234: b510 push {r4, lr}
3353 int faultInput;
3354 if (HAL_GPIO_ReadPin(GPIO_INPUT_FAULT_GPIO_Port, GPIO_INPUT_FAULT_Pin) == GPIO_PIN_RESET)
3355 8001236: 2104 movs r1, #4
3356 8001238: 481a ldr r0, [pc, #104] @ (80012a4 <MAINSWITCH_SM_On+0x70>)
3357 800123a: f7ff fa95 bl 8000768 <HAL_GPIO_ReadPin>
3358 800123e: 2800 cmp r0, #0
3359 8001240: d107 bne.n 8001252 <MAINSWITCH_SM_On+0x1e>
3360 {
3361 faultInput = 1;
3362 8001242: 2401 movs r4, #1
3363 faultInput = 0;
3364 }
3365
3366
3367 // Prüfe Wechsel in off mode
3368 if (BUTTON_GetMode() == BUTTON_OFF)
3369 8001244: f7ff fd54 bl 8000cf0 <BUTTON_GetMode>
3370 8001248: 2800 cmp r0, #0
3371 800124a: d004 beq.n 8001256 <MAINSWITCH_SM_On+0x22>
3372 printf("NEW_STATE: MAINSWITCH_OFF\n");
3373 smState = MAINSWITCH_OFF;
3374 }
3375
3376 //Prüfe auf Fehlermode
3377 if (faultInput == 1)
3378 800124c: 2c01 cmp r4, #1
3379 800124e: d012 beq.n 8001276 <MAINSWITCH_SM_On+0x42>
3380 printf("NEW_STATE: MAINSWITCH_ERROR\n");
3381 smState = MAINSWITCH_ERROR;
3382 }
3383
3384
3385}
3386 8001250: bd10 pop {r4, pc}
3387 faultInput = 0;
3388 8001252: 2400 movs r4, #0
3389 8001254: e7f6 b.n 8001244 <MAINSWITCH_SM_On+0x10>
3390 RELAIS_ResetPuls();
3391 8001256: f000 faa1 bl 800179c <RELAIS_ResetPuls>
3392 BUZZER_Beep(BUZZER_ON_TIME_CONFIRM); //Bestätigung
3393 800125a: 20c8 movs r0, #200 @ 0xc8
3394 800125c: f7ff fd8c bl 8000d78 <BUZZER_Beep>
3395 LEDS_GN_Off();
3396 8001260: f7ff fe6c bl 8000f3c <LEDS_GN_Off>
3397 LEDS_RT_Off();
3398 8001264: f7ff fe9e bl 8000fa4 <LEDS_RT_Off>
3399 printf("NEW_STATE: MAINSWITCH_OFF\n");
3400 8001268: 480f ldr r0, [pc, #60] @ (80012a8 <MAINSWITCH_SM_On+0x74>)
3401 800126a: f000 fbdb bl 8001a24 <puts>
3402 smState = MAINSWITCH_OFF;
3403 800126e: 4b0f ldr r3, [pc, #60] @ (80012ac <MAINSWITCH_SM_On+0x78>)
3404 8001270: 2200 movs r2, #0
3405 8001272: 701a strb r2, [r3, #0]
3406 8001274: e7ea b.n 800124c <MAINSWITCH_SM_On+0x18>
3407 RELAIS_ResetPuls();
3408 8001276: f000 fa91 bl 800179c <RELAIS_ResetPuls>
3409 BUZZER_Beep(BUZZER_ON_TIME_REJECT); //Warnung
3410 800127a: 34f4 adds r4, #244 @ 0xf4
3411 800127c: 34ff adds r4, #255 @ 0xff
3412 800127e: 0020 movs r0, r4
3413 8001280: f7ff fd7a bl 8000d78 <BUZZER_Beep>
3414 LEDS_GN_Off();
3415 8001284: f7ff fe5a bl 8000f3c <LEDS_GN_Off>
3416 LEDS_RT_Blink_Start(LED_RT_ON_TIME_WARN_FAULT_INPUT, LED_RT_OFF_TIME); //Fehlercode fault
3417 8001288: 21fa movs r1, #250 @ 0xfa
3418 800128a: 0089 lsls r1, r1, #2
3419 800128c: 0020 movs r0, r4
3420 800128e: f7ff fe6d bl 8000f6c <LEDS_RT_Blink_Start>
3421 BUTTON_SetModeOff(); //Damit nicht von alleine wieder eingeschaltet wird
3422 8001292: f7ff fd33 bl 8000cfc <BUTTON_SetModeOff>
3423 printf("NEW_STATE: MAINSWITCH_ERROR\n");
3424 8001296: 4806 ldr r0, [pc, #24] @ (80012b0 <MAINSWITCH_SM_On+0x7c>)
3425 8001298: f000 fbc4 bl 8001a24 <puts>
3426 smState = MAINSWITCH_ERROR;
3427 800129c: 4b03 ldr r3, [pc, #12] @ (80012ac <MAINSWITCH_SM_On+0x78>)
3428 800129e: 2203 movs r2, #3
3429 80012a0: 701a strb r2, [r3, #0]
3430}
3431 80012a2: e7d5 b.n 8001250 <MAINSWITCH_SM_On+0x1c>
3432 80012a4: 50000400 .word 0x50000400
3433 80012a8: 08002860 .word 0x08002860
3434 80012ac: 20000134 .word 0x20000134
3435 80012b0: 08002824 .word 0x08002824
3436
3437080012b4 <MAINSWITCH_SM_ManualOn>:
3438
3439void MAINSWITCH_SM_ManualOn(void)
3440{
3441 80012b4: b510 push {r4, lr}
3442 // Prüfe Wechsel in off mode
3443 if (BUTTON_GetMode() == BUTTON_OFF)
3444 80012b6: f7ff fd1b bl 8000cf0 <BUTTON_GetMode>
3445 80012ba: 2800 cmp r0, #0
3446 80012bc: d000 beq.n 80012c0 <MAINSWITCH_SM_ManualOn+0xc>
3447 LEDS_RT_Off();
3448 printf("NEW_STATE: MAINSWITCH_OFF\n");
3449 smState = MAINSWITCH_OFF;
3450 }
3451
3452}
3453 80012be: bd10 pop {r4, pc}
3454 RELAIS_ResetPuls();
3455 80012c0: f000 fa6c bl 800179c <RELAIS_ResetPuls>
3456 BUZZER_Alarm_Stop();
3457 80012c4: f7ff fd80 bl 8000dc8 <BUZZER_Alarm_Stop>
3458 LEDS_GN_Off();
3459 80012c8: f7ff fe38 bl 8000f3c <LEDS_GN_Off>
3460 LEDS_RT_Off();
3461 80012cc: f7ff fe6a bl 8000fa4 <LEDS_RT_Off>
3462 printf("NEW_STATE: MAINSWITCH_OFF\n");
3463 80012d0: 4803 ldr r0, [pc, #12] @ (80012e0 <MAINSWITCH_SM_ManualOn+0x2c>)
3464 80012d2: f000 fba7 bl 8001a24 <puts>
3465 smState = MAINSWITCH_OFF;
3466 80012d6: 4b03 ldr r3, [pc, #12] @ (80012e4 <MAINSWITCH_SM_ManualOn+0x30>)
3467 80012d8: 2200 movs r2, #0
3468 80012da: 701a strb r2, [r3, #0]
3469}
3470 80012dc: e7ef b.n 80012be <MAINSWITCH_SM_ManualOn+0xa>
3471 80012de: 46c0 nop @ (mov r8, r8)
3472 80012e0: 08002860 .word 0x08002860
3473 80012e4: 20000134 .word 0x20000134
3474
3475080012e8 <MAINSWITCH_SM_Error>:
3476
3477void MAINSWITCH_SM_Error(void)
3478{
3479 80012e8: b510 push {r4, lr}
3480 int faultInput;
3481
3482 if (HAL_GPIO_ReadPin(GPIO_INPUT_FAULT_GPIO_Port, GPIO_INPUT_FAULT_Pin) == GPIO_PIN_RESET)
3483 80012ea: 2104 movs r1, #4
3484 80012ec: 4821 ldr r0, [pc, #132] @ (8001374 <MAINSWITCH_SM_Error+0x8c>)
3485 80012ee: f7ff fa3b bl 8000768 <HAL_GPIO_ReadPin>
3486 80012f2: 2800 cmp r0, #0
3487 80012f4: d109 bne.n 800130a <MAINSWITCH_SM_Error+0x22>
3488 {
3489 faultInput = 1;
3490 80012f6: 2401 movs r4, #1
3491 faultInput = 0;
3492 }
3493
3494
3495 //Prüfe auf Wechsel des Modus AUTO / SM ON
3496 if (BUTTON_GetMode() == BUTTON_AUTO)
3497 80012f8: f7ff fcfa bl 8000cf0 <BUTTON_GetMode>
3498 80012fc: 2801 cmp r0, #1
3499 80012fe: d006 beq.n 800130e <MAINSWITCH_SM_Error+0x26>
3500 }
3501 }
3502
3503 //Prüfe auf Wechsel in MANUAL ON Mode
3504 //Keine Fehlerüberprüfungen. In diesem Modus werdem alle Alarme ignoriert.
3505 if (BUTTON_GetMode() == BUTTON_MANUAL_ON)
3506 8001300: f7ff fcf6 bl 8000cf0 <BUTTON_GetMode>
3507 8001304: 2802 cmp r0, #2
3508 8001306: d01e beq.n 8001346 <MAINSWITCH_SM_Error+0x5e>
3509 smState = MAINSWITCH_MANUAL_ON;
3510 }
3511
3512
3513
3514}
3515 8001308: bd10 pop {r4, pc}
3516 faultInput = 0;
3517 800130a: 2400 movs r4, #0
3518 800130c: e7f4 b.n 80012f8 <MAINSWITCH_SM_Error+0x10>
3519 if (faultInput == 0)
3520 800130e: 2c00 cmp r4, #0
3521 8001310: d112 bne.n 8001338 <MAINSWITCH_SM_Error+0x50>
3522 RELAIS_SetPuls();
3523 8001312: f000 fa29 bl 8001768 <RELAIS_SetPuls>
3524 BUZZER_Beep(BUZZER_ON_TIME_CONFIRM);
3525 8001316: 20c8 movs r0, #200 @ 0xc8
3526 8001318: f7ff fd2e bl 8000d78 <BUZZER_Beep>
3527 LEDS_GN_Blink_Start(LED_GN_ON_TIME_ON_MODE, LED_GN_OFF_TIME);
3528 800131c: 21fa movs r1, #250 @ 0xfa
3529 800131e: 0089 lsls r1, r1, #2
3530 8001320: 20c8 movs r0, #200 @ 0xc8
3531 8001322: f7ff fdef bl 8000f04 <LEDS_GN_Blink_Start>
3532 LEDS_RT_Off(); //Fehler löschen
3533 8001326: f7ff fe3d bl 8000fa4 <LEDS_RT_Off>
3534 printf("NEW_STATE: MAINSWITCH_ON\n");
3535 800132a: 4813 ldr r0, [pc, #76] @ (8001378 <MAINSWITCH_SM_Error+0x90>)
3536 800132c: f000 fb7a bl 8001a24 <puts>
3537 smState = MAINSWITCH_ON;
3538 8001330: 4b12 ldr r3, [pc, #72] @ (800137c <MAINSWITCH_SM_Error+0x94>)
3539 8001332: 2201 movs r2, #1
3540 8001334: 701a strb r2, [r3, #0]
3541 8001336: e7e3 b.n 8001300 <MAINSWITCH_SM_Error+0x18>
3542 BUZZER_Beep(BUZZER_ON_TIME_REJECT);
3543 8001338: 20fa movs r0, #250 @ 0xfa
3544 800133a: 0040 lsls r0, r0, #1
3545 800133c: f7ff fd1c bl 8000d78 <BUZZER_Beep>
3546 BUTTON_SetModeOff();
3547 8001340: f7ff fcdc bl 8000cfc <BUTTON_SetModeOff>
3548 8001344: e7dc b.n 8001300 <MAINSWITCH_SM_Error+0x18>
3549 RELAIS_SetPuls();
3550 8001346: f000 fa0f bl 8001768 <RELAIS_SetPuls>
3551 BUZZER_Alarm_Start(BUZZER_ON_TIME_ALARM_MANUAL_MODE, BUZZER_OFF_TIME);
3552 800134a: 24fa movs r4, #250 @ 0xfa
3553 800134c: 00a4 lsls r4, r4, #2
3554 800134e: 0021 movs r1, r4
3555 8001350: 20c8 movs r0, #200 @ 0xc8
3556 8001352: f7ff fd1f bl 8000d94 <BUZZER_Alarm_Start>
3557 LEDS_GN_On();
3558 8001356: f7ff fdbd bl 8000ed4 <LEDS_GN_On>
3559 LEDS_RT_Off();
3560 800135a: f7ff fe23 bl 8000fa4 <LEDS_RT_Off>
3561 LEDS_RT_Blink_Start(LED_RT_ON_TIME_WARN_MANUAL_MODE, LED_RT_OFF_TIME);
3562 800135e: 0021 movs r1, r4
3563 8001360: 20c8 movs r0, #200 @ 0xc8
3564 8001362: f7ff fe03 bl 8000f6c <LEDS_RT_Blink_Start>
3565 printf("NEW_STATE: MAINSWITCH_MANUAL_ON\n");
3566 8001366: 4806 ldr r0, [pc, #24] @ (8001380 <MAINSWITCH_SM_Error+0x98>)
3567 8001368: f000 fb5c bl 8001a24 <puts>
3568 smState = MAINSWITCH_MANUAL_ON;
3569 800136c: 4b03 ldr r3, [pc, #12] @ (800137c <MAINSWITCH_SM_Error+0x94>)
3570 800136e: 2202 movs r2, #2
3571 8001370: 701a strb r2, [r3, #0]
3572}
3573 8001372: e7c9 b.n 8001308 <MAINSWITCH_SM_Error+0x20>
3574 8001374: 50000400 .word 0x50000400
3575 8001378: 08002808 .word 0x08002808
3576 800137c: 20000134 .word 0x20000134
3577 8001380: 08002840 .word 0x08002840
3578
357908001384 <MODE_MAINSWITCH_Exec>:
3580
3581
3582
3583void MODE_MAINSWITCH_Exec(void)
3584{
3585 8001384: b510 push {r4, lr}
3586
3587
3588
3589 switch (smState)
3590 8001386: 4b0b ldr r3, [pc, #44] @ (80013b4 <MODE_MAINSWITCH_Exec+0x30>)
3591 8001388: 781b ldrb r3, [r3, #0]
3592 800138a: 2b02 cmp r3, #2
3593 800138c: d00f beq.n 80013ae <MODE_MAINSWITCH_Exec+0x2a>
3594 800138e: d806 bhi.n 800139e <MODE_MAINSWITCH_Exec+0x1a>
3595 8001390: 2b00 cmp r3, #0
3596 8001392: d009 beq.n 80013a8 <MODE_MAINSWITCH_Exec+0x24>
3597 8001394: 2b01 cmp r3, #1
3598 8001396: d109 bne.n 80013ac <MODE_MAINSWITCH_Exec+0x28>
3599 case MAINSWITCH_OFF:
3600 MAINSWITCH_SM_Off();
3601 break;
3602
3603 case MAINSWITCH_ON:
3604 MAINSWITCH_SM_On();
3605 8001398: f7ff ff4c bl 8001234 <MAINSWITCH_SM_On>
3606 break;
3607 800139c: e006 b.n 80013ac <MODE_MAINSWITCH_Exec+0x28>
3608 switch (smState)
3609 800139e: 2b03 cmp r3, #3
3610 80013a0: d104 bne.n 80013ac <MODE_MAINSWITCH_Exec+0x28>
3611 case MAINSWITCH_MANUAL_ON:
3612 MAINSWITCH_SM_ManualOn();
3613 break;
3614
3615 case MAINSWITCH_ERROR:
3616 MAINSWITCH_SM_Error();
3617 80013a2: f7ff ffa1 bl 80012e8 <MAINSWITCH_SM_Error>
3618 break;
3619
3620 default:
3621 break;
3622 }
3623}
3624 80013a6: e001 b.n 80013ac <MODE_MAINSWITCH_Exec+0x28>
3625 MAINSWITCH_SM_Off();
3626 80013a8: f7ff feec bl 8001184 <MAINSWITCH_SM_Off>
3627}
3628 80013ac: bd10 pop {r4, pc}
3629 MAINSWITCH_SM_ManualOn();
3630 80013ae: f7ff ff81 bl 80012b4 <MAINSWITCH_SM_ManualOn>
3631 break;
3632 80013b2: e7fb b.n 80013ac <MODE_MAINSWITCH_Exec+0x28>
3633 80013b4: 20000134 .word 0x20000134
3634
3635080013b8 <SECONDARYPROTECTION_SM_Off>:
3636
3637static SECONDARYPROTECTION_state_t smState;
3638
3639
3640void SECONDARYPROTECTION_SM_Off(void)
3641{
3642 80013b8: b510 push {r4, lr}
3643 int faultInput;
3644 int lvpAndOvpInput;
3645
3646 if (HAL_GPIO_ReadPin(GPIO_INPUT_FAULT_GPIO_Port, GPIO_INPUT_FAULT_Pin) == GPIO_PIN_RESET)
3647 80013ba: 2104 movs r1, #4
3648 80013bc: 482c ldr r0, [pc, #176] @ (8001470 <SECONDARYPROTECTION_SM_Off+0xb8>)
3649 80013be: f7ff f9d3 bl 8000768 <HAL_GPIO_ReadPin>
3650 80013c2: 2800 cmp r0, #0
3651 80013c4: d110 bne.n 80013e8 <SECONDARYPROTECTION_SM_Off+0x30>
3652 {
3653 faultInput = 1;
3654 80013c6: 2401 movs r4, #1
3655 else
3656 {
3657 faultInput = 0;
3658 }
3659
3660 if ((HAL_GPIO_ReadPin(GPIO_INPUT_LVP_GPIO_Port, GPIO_INPUT_LVP_Pin) == GPIO_PIN_SET) && (HAL_GPIO_ReadPin(GPIO_INPUT_OVP_GPIO_Port, GPIO_INPUT_OVP_Pin) == GPIO_PIN_SET))
3661 80013c8: 20a0 movs r0, #160 @ 0xa0
3662 80013ca: 2101 movs r1, #1
3663 80013cc: 05c0 lsls r0, r0, #23
3664 80013ce: f7ff f9cb bl 8000768 <HAL_GPIO_ReadPin>
3665 80013d2: 2801 cmp r0, #1
3666 80013d4: d00a beq.n 80013ec <SECONDARYPROTECTION_SM_Off+0x34>
3667
3668
3669
3670
3671 //Prüfe auf Wechsel des Modus AUTO / SM ON
3672 if (BUTTON_GetMode() == BUTTON_AUTO)
3673 80013d6: f7ff fc8b bl 8000cf0 <BUTTON_GetMode>
3674 80013da: 2801 cmp r0, #1
3675 80013dc: d00c beq.n 80013f8 <SECONDARYPROTECTION_SM_Off+0x40>
3676 }
3677
3678
3679 //Prüfe auf Wechsel in MANUAL ON Mode
3680 //Keine Fehlerüberprüfungen. In diesem Modus werdem alle Alarme ignoriert.
3681 if (BUTTON_GetMode() == BUTTON_MANUAL_ON)
3682 80013de: f7ff fc87 bl 8000cf0 <BUTTON_GetMode>
3683 80013e2: 2802 cmp r0, #2
3684 80013e4: d02e beq.n 8001444 <SECONDARYPROTECTION_SM_Off+0x8c>
3685 smState = SECONDARYPROTECTION_MANUAL_ON;
3686 }
3687
3688
3689
3690}
3691 80013e6: bd10 pop {r4, pc}
3692 faultInput = 0;
3693 80013e8: 2400 movs r4, #0
3694 80013ea: e7ed b.n 80013c8 <SECONDARYPROTECTION_SM_Off+0x10>
3695 if ((HAL_GPIO_ReadPin(GPIO_INPUT_LVP_GPIO_Port, GPIO_INPUT_LVP_Pin) == GPIO_PIN_SET) && (HAL_GPIO_ReadPin(GPIO_INPUT_OVP_GPIO_Port, GPIO_INPUT_OVP_Pin) == GPIO_PIN_SET))
3696 80013ec: 309f adds r0, #159 @ 0x9f
3697 80013ee: 2102 movs r1, #2
3698 80013f0: 05c0 lsls r0, r0, #23
3699 80013f2: f7ff f9b9 bl 8000768 <HAL_GPIO_ReadPin>
3700 80013f6: e7ee b.n 80013d6 <SECONDARYPROTECTION_SM_Off+0x1e>
3701 if (faultInput == 0)
3702 80013f8: 2c00 cmp r4, #0
3703 80013fa: d110 bne.n 800141e <SECONDARYPROTECTION_SM_Off+0x66>
3704 RELAIS_SetPuls();
3705 80013fc: f000 f9b4 bl 8001768 <RELAIS_SetPuls>
3706 BUZZER_Beep(BUZZER_ON_TIME_CONFIRM);
3707 8001400: 20c8 movs r0, #200 @ 0xc8
3708 8001402: f7ff fcb9 bl 8000d78 <BUZZER_Beep>
3709 LEDS_GN_Blink_Start(LED_GN_ON_TIME_ON_MODE, LED_GN_OFF_TIME);
3710 8001406: 21fa movs r1, #250 @ 0xfa
3711 8001408: 0089 lsls r1, r1, #2
3712 800140a: 20c8 movs r0, #200 @ 0xc8
3713 800140c: f7ff fd7a bl 8000f04 <LEDS_GN_Blink_Start>
3714 printf("NEW_STATE: SECONDARYPROTECTION_ON\n");
3715 8001410: 4818 ldr r0, [pc, #96] @ (8001474 <SECONDARYPROTECTION_SM_Off+0xbc>)
3716 8001412: f000 fb07 bl 8001a24 <puts>
3717 smState = SECONDARYPROTECTION_ON;
3718 8001416: 4b18 ldr r3, [pc, #96] @ (8001478 <SECONDARYPROTECTION_SM_Off+0xc0>)
3719 8001418: 2201 movs r2, #1
3720 800141a: 701a strb r2, [r3, #0]
3721 800141c: e7df b.n 80013de <SECONDARYPROTECTION_SM_Off+0x26>
3722 BUZZER_Beep(BUZZER_ON_TIME_REJECT);
3723 800141e: 24fa movs r4, #250 @ 0xfa
3724 8001420: 0064 lsls r4, r4, #1
3725 8001422: 0020 movs r0, r4
3726 8001424: f7ff fca8 bl 8000d78 <BUZZER_Beep>
3727 BUTTON_SetModeOff();
3728 8001428: f7ff fc68 bl 8000cfc <BUTTON_SetModeOff>
3729 LEDS_RT_Blink_Start(LED_RT_ON_TIME_WARN_FAULT_INPUT, LED_GN_OFF_TIME); //Fehler Anzeigen
3730 800142c: 21fa movs r1, #250 @ 0xfa
3731 800142e: 0089 lsls r1, r1, #2
3732 8001430: 0020 movs r0, r4
3733 8001432: f7ff fd9b bl 8000f6c <LEDS_RT_Blink_Start>
3734 printf("NEW_STATE: SECONDARYPROTECTION_ERROR\n");
3735 8001436: 4811 ldr r0, [pc, #68] @ (800147c <SECONDARYPROTECTION_SM_Off+0xc4>)
3736 8001438: f000 faf4 bl 8001a24 <puts>
3737 smState =SECONDARYPROTECTION_ERROR;
3738 800143c: 4b0e ldr r3, [pc, #56] @ (8001478 <SECONDARYPROTECTION_SM_Off+0xc0>)
3739 800143e: 2203 movs r2, #3
3740 8001440: 701a strb r2, [r3, #0]
3741 8001442: e7cc b.n 80013de <SECONDARYPROTECTION_SM_Off+0x26>
3742 RELAIS_SetPuls();
3743 8001444: f000 f990 bl 8001768 <RELAIS_SetPuls>
3744 BUZZER_Alarm_Start(BUZZER_ON_TIME_ALARM_MANUAL_MODE, BUZZER_OFF_TIME);
3745 8001448: 24fa movs r4, #250 @ 0xfa
3746 800144a: 00a4 lsls r4, r4, #2
3747 800144c: 0021 movs r1, r4
3748 800144e: 20c8 movs r0, #200 @ 0xc8
3749 8001450: f7ff fca0 bl 8000d94 <BUZZER_Alarm_Start>
3750 LEDS_GN_On();
3751 8001454: f7ff fd3e bl 8000ed4 <LEDS_GN_On>
3752 LEDS_RT_Blink_Start(LED_RT_ON_TIME_WARN_MANUAL_MODE, LED_GN_OFF_TIME);
3753 8001458: 0021 movs r1, r4
3754 800145a: 20c8 movs r0, #200 @ 0xc8
3755 800145c: f7ff fd86 bl 8000f6c <LEDS_RT_Blink_Start>
3756 printf("NEW_STATE: SECONDARYPROTECTION_MANUAL_ON\n");
3757 8001460: 4807 ldr r0, [pc, #28] @ (8001480 <SECONDARYPROTECTION_SM_Off+0xc8>)
3758 8001462: f000 fadf bl 8001a24 <puts>
3759 smState = SECONDARYPROTECTION_MANUAL_ON;
3760 8001466: 4b04 ldr r3, [pc, #16] @ (8001478 <SECONDARYPROTECTION_SM_Off+0xc0>)
3761 8001468: 2202 movs r2, #2
3762 800146a: 701a strb r2, [r3, #0]
3763}
3764 800146c: e7bb b.n 80013e6 <SECONDARYPROTECTION_SM_Off+0x2e>
3765 800146e: 46c0 nop @ (mov r8, r8)
3766 8001470: 50000400 .word 0x50000400
3767 8001474: 0800287c .word 0x0800287c
3768 8001478: 20000140 .word 0x20000140
3769 800147c: 080028a0 .word 0x080028a0
3770 8001480: 080028c8 .word 0x080028c8
3771
377208001484 <SECONDARYPROTECTION_SM_On>:
3773
3774void SECONDARYPROTECTION_SM_On(void)
3775{
3776 8001484: b570 push {r4, r5, r6, lr}
3777 int faultInput = 0;
3778 int lvpAndOvpInput = 0;
3779 static int lvpAndOvpInputTimeCounter = 0;
3780 static int oldtime;
3781
3782 if (HAL_GPIO_ReadPin(GPIO_INPUT_FAULT_GPIO_Port, GPIO_INPUT_FAULT_Pin) == GPIO_PIN_RESET)
3783 8001486: 2104 movs r1, #4
3784 8001488: 483f ldr r0, [pc, #252] @ (8001588 <SECONDARYPROTECTION_SM_On+0x104>)
3785 800148a: f7ff f96d bl 8000768 <HAL_GPIO_ReadPin>
3786 800148e: 2800 cmp r0, #0
3787 8001490: d114 bne.n 80014bc <SECONDARYPROTECTION_SM_On+0x38>
3788 {
3789 faultInput = 1;
3790 8001492: 2401 movs r4, #1
3791 else
3792 {
3793 faultInput = 0;
3794 }
3795
3796 if ((HAL_GPIO_ReadPin(GPIO_INPUT_LVP_GPIO_Port, GPIO_INPUT_LVP_Pin) == GPIO_PIN_SET) && (HAL_GPIO_ReadPin(GPIO_INPUT_OVP_GPIO_Port, GPIO_INPUT_OVP_Pin) == GPIO_PIN_SET))
3797 8001494: 20a0 movs r0, #160 @ 0xa0
3798 8001496: 2101 movs r1, #1
3799 8001498: 05c0 lsls r0, r0, #23
3800 800149a: f7ff f965 bl 8000768 <HAL_GPIO_ReadPin>
3801 800149e: 2801 cmp r0, #1
3802 80014a0: d00e beq.n 80014c0 <SECONDARYPROTECTION_SM_On+0x3c>
3803 oldtime = HAL_GetTick();
3804 }
3805 }
3806 else
3807 {
3808 lvpAndOvpInputTimeCounter = 0;
3809 80014a2: 4b3a ldr r3, [pc, #232] @ (800158c <SECONDARYPROTECTION_SM_On+0x108>)
3810 80014a4: 2200 movs r2, #0
3811 80014a6: 601a str r2, [r3, #0]
3812 lvpAndOvpInput = 0;
3813 80014a8: 2500 movs r5, #0
3814 }
3815
3816
3817
3818 // Prüfe Wechsel in off mode
3819 if (BUTTON_GetMode() == BUTTON_OFF)
3820 80014aa: f7ff fc21 bl 8000cf0 <BUTTON_GetMode>
3821 80014ae: 2800 cmp r0, #0
3822 80014b0: d027 beq.n 8001502 <SECONDARYPROTECTION_SM_On+0x7e>
3823 printf("NEW_STATE: SECONDARYPROTECTION_OFF\n");
3824 smState = SECONDARYPROTECTION_OFF;
3825 }
3826
3827 //Prüfe auf Fehlermode
3828 if (faultInput == 1)
3829 80014b2: 2c01 cmp r4, #1
3830 80014b4: d035 beq.n 8001522 <SECONDARYPROTECTION_SM_On+0x9e>
3831 printf("FAULT INPUT EVENT DETECTED!\n");
3832 printf("NEW_STATE: SECONDARYPROTECTION_ERROR\n");
3833 smState = SECONDARYPROTECTION_ERROR;
3834 }
3835
3836 if (lvpAndOvpInput == 1)
3837 80014b6: 2d01 cmp r5, #1
3838 80014b8: d04d beq.n 8001556 <SECONDARYPROTECTION_SM_On+0xd2>
3839 printf("NEW_STATE: SECONDARYPROTECTION_ERROR\n");
3840 smState = SECONDARYPROTECTION_ERROR;
3841 }
3842
3843
3844}
3845 80014ba: bd70 pop {r4, r5, r6, pc}
3846 faultInput = 0;
3847 80014bc: 2400 movs r4, #0
3848 80014be: e7e9 b.n 8001494 <SECONDARYPROTECTION_SM_On+0x10>
3849 if ((HAL_GPIO_ReadPin(GPIO_INPUT_LVP_GPIO_Port, GPIO_INPUT_LVP_Pin) == GPIO_PIN_SET) && (HAL_GPIO_ReadPin(GPIO_INPUT_OVP_GPIO_Port, GPIO_INPUT_OVP_Pin) == GPIO_PIN_SET))
3850 80014c0: 309f adds r0, #159 @ 0x9f
3851 80014c2: 2102 movs r1, #2
3852 80014c4: 05c0 lsls r0, r0, #23
3853 80014c6: f7ff f94f bl 8000768 <HAL_GPIO_ReadPin>
3854 80014ca: 2801 cmp r0, #1
3855 80014cc: d1e9 bne.n 80014a2 <SECONDARYPROTECTION_SM_On+0x1e>
3856 if (HAL_GetTick() != oldtime)
3857 80014ce: f7fe ff9b bl 8000408 <HAL_GetTick>
3858 80014d2: 4b2f ldr r3, [pc, #188] @ (8001590 <SECONDARYPROTECTION_SM_On+0x10c>)
3859 80014d4: 681b ldr r3, [r3, #0]
3860 80014d6: 4298 cmp r0, r3
3861 80014d8: d011 beq.n 80014fe <SECONDARYPROTECTION_SM_On+0x7a>
3862 lvpAndOvpInputTimeCounter++;
3863 80014da: 4a2c ldr r2, [pc, #176] @ (800158c <SECONDARYPROTECTION_SM_On+0x108>)
3864 80014dc: 6813 ldr r3, [r2, #0]
3865 80014de: 3301 adds r3, #1
3866 80014e0: 6013 str r3, [r2, #0]
3867 if (lvpAndOvpInputTimeCounter > 30000)
3868 80014e2: 4a2c ldr r2, [pc, #176] @ (8001594 <SECONDARYPROTECTION_SM_On+0x110>)
3869 80014e4: 4293 cmp r3, r2
3870 80014e6: dd08 ble.n 80014fa <SECONDARYPROTECTION_SM_On+0x76>
3871 lvpAndOvpInputTimeCounter=0;
3872 80014e8: 4b28 ldr r3, [pc, #160] @ (800158c <SECONDARYPROTECTION_SM_On+0x108>)
3873 80014ea: 2200 movs r2, #0
3874 80014ec: 601a str r2, [r3, #0]
3875 lvpAndOvpInput = 1;
3876 80014ee: 2501 movs r5, #1
3877 oldtime = HAL_GetTick();
3878 80014f0: f7fe ff8a bl 8000408 <HAL_GetTick>
3879 80014f4: 4b26 ldr r3, [pc, #152] @ (8001590 <SECONDARYPROTECTION_SM_On+0x10c>)
3880 80014f6: 6018 str r0, [r3, #0]
3881 80014f8: e7d7 b.n 80014aa <SECONDARYPROTECTION_SM_On+0x26>
3882 int lvpAndOvpInput = 0;
3883 80014fa: 2500 movs r5, #0
3884 80014fc: e7f8 b.n 80014f0 <SECONDARYPROTECTION_SM_On+0x6c>
3885 80014fe: 2500 movs r5, #0
3886 8001500: e7d3 b.n 80014aa <SECONDARYPROTECTION_SM_On+0x26>
3887 RELAIS_ResetPuls();
3888 8001502: f000 f94b bl 800179c <RELAIS_ResetPuls>
3889 BUZZER_Beep(BUZZER_ON_TIME_CONFIRM); //Bestätigung
3890 8001506: 20c8 movs r0, #200 @ 0xc8
3891 8001508: f7ff fc36 bl 8000d78 <BUZZER_Beep>
3892 LEDS_GN_Off();
3893 800150c: f7ff fd16 bl 8000f3c <LEDS_GN_Off>
3894 LEDS_RT_Off();
3895 8001510: f7ff fd48 bl 8000fa4 <LEDS_RT_Off>
3896 printf("NEW_STATE: SECONDARYPROTECTION_OFF\n");
3897 8001514: 4820 ldr r0, [pc, #128] @ (8001598 <SECONDARYPROTECTION_SM_On+0x114>)
3898 8001516: f000 fa85 bl 8001a24 <puts>
3899 smState = SECONDARYPROTECTION_OFF;
3900 800151a: 4b20 ldr r3, [pc, #128] @ (800159c <SECONDARYPROTECTION_SM_On+0x118>)
3901 800151c: 2200 movs r2, #0
3902 800151e: 701a strb r2, [r3, #0]
3903 8001520: e7c7 b.n 80014b2 <SECONDARYPROTECTION_SM_On+0x2e>
3904 RELAIS_ResetPuls();
3905 8001522: f000 f93b bl 800179c <RELAIS_ResetPuls>
3906 BUZZER_Beep(BUZZER_ON_TIME_REJECT); //Warnung
3907 8001526: 34f4 adds r4, #244 @ 0xf4
3908 8001528: 34ff adds r4, #255 @ 0xff
3909 800152a: 0020 movs r0, r4
3910 800152c: f7ff fc24 bl 8000d78 <BUZZER_Beep>
3911 LEDS_GN_Off();
3912 8001530: f7ff fd04 bl 8000f3c <LEDS_GN_Off>
3913 LEDS_RT_Blink_Start(LED_RT_ON_TIME_WARN_FAULT_INPUT, LED_RT_OFF_TIME); //Fehlercode fault
3914 8001534: 21fa movs r1, #250 @ 0xfa
3915 8001536: 0089 lsls r1, r1, #2
3916 8001538: 0020 movs r0, r4
3917 800153a: f7ff fd17 bl 8000f6c <LEDS_RT_Blink_Start>
3918 BUTTON_SetModeOff(); //Damit nicht von alleine wieder eingeschaltet wird
3919 800153e: f7ff fbdd bl 8000cfc <BUTTON_SetModeOff>
3920 printf("FAULT INPUT EVENT DETECTED!\n");
3921 8001542: 4817 ldr r0, [pc, #92] @ (80015a0 <SECONDARYPROTECTION_SM_On+0x11c>)
3922 8001544: f000 fa6e bl 8001a24 <puts>
3923 printf("NEW_STATE: SECONDARYPROTECTION_ERROR\n");
3924 8001548: 4816 ldr r0, [pc, #88] @ (80015a4 <SECONDARYPROTECTION_SM_On+0x120>)
3925 800154a: f000 fa6b bl 8001a24 <puts>
3926 smState = SECONDARYPROTECTION_ERROR;
3927 800154e: 4b13 ldr r3, [pc, #76] @ (800159c <SECONDARYPROTECTION_SM_On+0x118>)
3928 8001550: 2203 movs r2, #3
3929 8001552: 701a strb r2, [r3, #0]
3930 8001554: e7af b.n 80014b6 <SECONDARYPROTECTION_SM_On+0x32>
3931 RELAIS_ResetPuls();
3932 8001556: f000 f921 bl 800179c <RELAIS_ResetPuls>
3933 BUZZER_Beep(BUZZER_ON_TIME_REJECT); //Warnung
3934 800155a: 20fa movs r0, #250 @ 0xfa
3935 800155c: 0040 lsls r0, r0, #1
3936 800155e: f7ff fc0b bl 8000d78 <BUZZER_Beep>
3937 LEDS_GN_Off();
3938 8001562: f7ff fceb bl 8000f3c <LEDS_GN_Off>
3939 LEDS_RT_Blink_Start(LED_RT_ON_TIME_WARN_OVP_AND_LVP_INPUT, LED_RT_OFF_TIME); //Fehlercode fault
3940 8001566: 20fa movs r0, #250 @ 0xfa
3941 8001568: 0080 lsls r0, r0, #2
3942 800156a: 0001 movs r1, r0
3943 800156c: f7ff fcfe bl 8000f6c <LEDS_RT_Blink_Start>
3944 BUTTON_SetModeOff(); //Damit nicht von alleine wieder eingeschaltet wird
3945 8001570: f7ff fbc4 bl 8000cfc <BUTTON_SetModeOff>
3946 printf("BMS SECONDARY PROTECTION FAULT EVENT DETECTED (LVP & OVP )!\n");
3947 8001574: 480c ldr r0, [pc, #48] @ (80015a8 <SECONDARYPROTECTION_SM_On+0x124>)
3948 8001576: f000 fa55 bl 8001a24 <puts>
3949 printf("NEW_STATE: SECONDARYPROTECTION_ERROR\n");
3950 800157a: 480a ldr r0, [pc, #40] @ (80015a4 <SECONDARYPROTECTION_SM_On+0x120>)
3951 800157c: f000 fa52 bl 8001a24 <puts>
3952 smState = SECONDARYPROTECTION_ERROR;
3953 8001580: 4b06 ldr r3, [pc, #24] @ (800159c <SECONDARYPROTECTION_SM_On+0x118>)
3954 8001582: 2203 movs r2, #3
3955 8001584: 701a strb r2, [r3, #0]
3956}
3957 8001586: e798 b.n 80014ba <SECONDARYPROTECTION_SM_On+0x36>
3958 8001588: 50000400 .word 0x50000400
3959 800158c: 20000138 .word 0x20000138
3960 8001590: 2000013c .word 0x2000013c
3961 8001594: 00007530 .word 0x00007530
3962 8001598: 080028f4 .word 0x080028f4
3963 800159c: 20000140 .word 0x20000140
3964 80015a0: 08002918 .word 0x08002918
3965 80015a4: 080028a0 .word 0x080028a0
3966 80015a8: 08002934 .word 0x08002934
3967
3968080015ac <SECONDARYPROTECTION_SM_ManualOn>:
3969
3970void SECONDARYPROTECTION_SM_ManualOn(void)
3971{
3972 80015ac: b510 push {r4, lr}
3973 // Prüfe Wechsel in off mode
3974 if (BUTTON_GetMode() == BUTTON_OFF)
3975 80015ae: f7ff fb9f bl 8000cf0 <BUTTON_GetMode>
3976 80015b2: 2800 cmp r0, #0
3977 80015b4: d000 beq.n 80015b8 <SECONDARYPROTECTION_SM_ManualOn+0xc>
3978 LEDS_RT_Off();
3979 printf("NEW_STATE: SECONDARYPROTECTION_OFF\n");
3980 smState = SECONDARYPROTECTION_OFF;
3981 }
3982
3983}
3984 80015b6: bd10 pop {r4, pc}
3985 RELAIS_ResetPuls();
3986 80015b8: f000 f8f0 bl 800179c <RELAIS_ResetPuls>
3987 BUZZER_Alarm_Stop();
3988 80015bc: f7ff fc04 bl 8000dc8 <BUZZER_Alarm_Stop>
3989 LEDS_GN_Off();
3990 80015c0: f7ff fcbc bl 8000f3c <LEDS_GN_Off>
3991 LEDS_RT_Off();
3992 80015c4: f7ff fcee bl 8000fa4 <LEDS_RT_Off>
3993 printf("NEW_STATE: SECONDARYPROTECTION_OFF\n");
3994 80015c8: 4803 ldr r0, [pc, #12] @ (80015d8 <SECONDARYPROTECTION_SM_ManualOn+0x2c>)
3995 80015ca: f000 fa2b bl 8001a24 <puts>
3996 smState = SECONDARYPROTECTION_OFF;
3997 80015ce: 4b03 ldr r3, [pc, #12] @ (80015dc <SECONDARYPROTECTION_SM_ManualOn+0x30>)
3998 80015d0: 2200 movs r2, #0
3999 80015d2: 701a strb r2, [r3, #0]
4000}
4001 80015d4: e7ef b.n 80015b6 <SECONDARYPROTECTION_SM_ManualOn+0xa>
4002 80015d6: 46c0 nop @ (mov r8, r8)
4003 80015d8: 080028f4 .word 0x080028f4
4004 80015dc: 20000140 .word 0x20000140
4005
4006080015e0 <SECONDARYPROTECTION_SM_Error>:
4007
4008void SECONDARYPROTECTION_SM_Error(void)
4009{
4010 80015e0: b510 push {r4, lr}
4011 int faultInput;
4012 int lvpAndOvpInput;
4013
4014 if (HAL_GPIO_ReadPin(GPIO_INPUT_FAULT_GPIO_Port, GPIO_INPUT_FAULT_Pin) == GPIO_PIN_RESET)
4015 80015e2: 2104 movs r1, #4
4016 80015e4: 4821 ldr r0, [pc, #132] @ (800166c <SECONDARYPROTECTION_SM_Error+0x8c>)
4017 80015e6: f7ff f8bf bl 8000768 <HAL_GPIO_ReadPin>
4018 80015ea: 2800 cmp r0, #0
4019 80015ec: d109 bne.n 8001602 <SECONDARYPROTECTION_SM_Error+0x22>
4020 {
4021 faultInput = 1;
4022 80015ee: 2401 movs r4, #1
4023 }
4024
4025
4026
4027 //Prüfe auf Wechsel des Modus AUTO / SM ON
4028 if (BUTTON_GetMode() == BUTTON_AUTO)
4029 80015f0: f7ff fb7e bl 8000cf0 <BUTTON_GetMode>
4030 80015f4: 2801 cmp r0, #1
4031 80015f6: d006 beq.n 8001606 <SECONDARYPROTECTION_SM_Error+0x26>
4032 }
4033 }
4034
4035 //Prüfe auf Wechsel in MANUAL ON Mode
4036 //Keine Fehlerüberprüfungen. In diesem Modus werdem alle Alarme ignoriert.
4037 if (BUTTON_GetMode() == BUTTON_MANUAL_ON)
4038 80015f8: f7ff fb7a bl 8000cf0 <BUTTON_GetMode>
4039 80015fc: 2802 cmp r0, #2
4040 80015fe: d01e beq.n 800163e <SECONDARYPROTECTION_SM_Error+0x5e>
4041 smState = SECONDARYPROTECTION_MANUAL_ON;
4042 }
4043
4044
4045
4046}
4047 8001600: bd10 pop {r4, pc}
4048 faultInput = 0;
4049 8001602: 2400 movs r4, #0
4050 8001604: e7f4 b.n 80015f0 <SECONDARYPROTECTION_SM_Error+0x10>
4051 if (faultInput == 0)
4052 8001606: 2c00 cmp r4, #0
4053 8001608: d112 bne.n 8001630 <SECONDARYPROTECTION_SM_Error+0x50>
4054 RELAIS_SetPuls();
4055 800160a: f000 f8ad bl 8001768 <RELAIS_SetPuls>
4056 BUZZER_Beep(BUZZER_ON_TIME_CONFIRM);
4057 800160e: 20c8 movs r0, #200 @ 0xc8
4058 8001610: f7ff fbb2 bl 8000d78 <BUZZER_Beep>
4059 LEDS_GN_Blink_Start(LED_GN_ON_TIME_ON_MODE, LED_GN_OFF_TIME);
4060 8001614: 21fa movs r1, #250 @ 0xfa
4061 8001616: 0089 lsls r1, r1, #2
4062 8001618: 20c8 movs r0, #200 @ 0xc8
4063 800161a: f7ff fc73 bl 8000f04 <LEDS_GN_Blink_Start>
4064 LEDS_RT_Off(); //Fehler löschen
4065 800161e: f7ff fcc1 bl 8000fa4 <LEDS_RT_Off>
4066 printf("NEW_STATE: SECONDARYPROTECTION_ON\n");
4067 8001622: 4813 ldr r0, [pc, #76] @ (8001670 <SECONDARYPROTECTION_SM_Error+0x90>)
4068 8001624: f000 f9fe bl 8001a24 <puts>
4069 smState = SECONDARYPROTECTION_ON;
4070 8001628: 4b12 ldr r3, [pc, #72] @ (8001674 <SECONDARYPROTECTION_SM_Error+0x94>)
4071 800162a: 2201 movs r2, #1
4072 800162c: 701a strb r2, [r3, #0]
4073 800162e: e7e3 b.n 80015f8 <SECONDARYPROTECTION_SM_Error+0x18>
4074 BUZZER_Beep(BUZZER_ON_TIME_REJECT);
4075 8001630: 20fa movs r0, #250 @ 0xfa
4076 8001632: 0040 lsls r0, r0, #1
4077 8001634: f7ff fba0 bl 8000d78 <BUZZER_Beep>
4078 BUTTON_SetModeOff();
4079 8001638: f7ff fb60 bl 8000cfc <BUTTON_SetModeOff>
4080 800163c: e7dc b.n 80015f8 <SECONDARYPROTECTION_SM_Error+0x18>
4081 RELAIS_SetPuls();
4082 800163e: f000 f893 bl 8001768 <RELAIS_SetPuls>
4083 BUZZER_Alarm_Start(BUZZER_ON_TIME_ALARM_MANUAL_MODE, BUZZER_OFF_TIME);
4084 8001642: 24fa movs r4, #250 @ 0xfa
4085 8001644: 00a4 lsls r4, r4, #2
4086 8001646: 0021 movs r1, r4
4087 8001648: 20c8 movs r0, #200 @ 0xc8
4088 800164a: f7ff fba3 bl 8000d94 <BUZZER_Alarm_Start>
4089 LEDS_GN_On();
4090 800164e: f7ff fc41 bl 8000ed4 <LEDS_GN_On>
4091 LEDS_RT_Off();
4092 8001652: f7ff fca7 bl 8000fa4 <LEDS_RT_Off>
4093 LEDS_RT_Blink_Start(LED_RT_ON_TIME_WARN_MANUAL_MODE, LED_RT_OFF_TIME);
4094 8001656: 0021 movs r1, r4
4095 8001658: 20c8 movs r0, #200 @ 0xc8
4096 800165a: f7ff fc87 bl 8000f6c <LEDS_RT_Blink_Start>
4097 printf("NEW_STATE: SECONDARYPROTECTION_MANUAL_ON\n");
4098 800165e: 4806 ldr r0, [pc, #24] @ (8001678 <SECONDARYPROTECTION_SM_Error+0x98>)
4099 8001660: f000 f9e0 bl 8001a24 <puts>
4100 smState = SECONDARYPROTECTION_MANUAL_ON;
4101 8001664: 4b03 ldr r3, [pc, #12] @ (8001674 <SECONDARYPROTECTION_SM_Error+0x94>)
4102 8001666: 2202 movs r2, #2
4103 8001668: 701a strb r2, [r3, #0]
4104}
4105 800166a: e7c9 b.n 8001600 <SECONDARYPROTECTION_SM_Error+0x20>
4106 800166c: 50000400 .word 0x50000400
4107 8001670: 0800287c .word 0x0800287c
4108 8001674: 20000140 .word 0x20000140
4109 8001678: 080028c8 .word 0x080028c8
4110
41110800167c <MODE_SECONDARYPROTECTION_Exec>:
4112
4113
4114
4115void MODE_SECONDARYPROTECTION_Exec(void)
4116{
4117 800167c: b510 push {r4, lr}
4118
4119
4120
4121 switch (smState)
4122 800167e: 4b0b ldr r3, [pc, #44] @ (80016ac <MODE_SECONDARYPROTECTION_Exec+0x30>)
4123 8001680: 781b ldrb r3, [r3, #0]
4124 8001682: 2b02 cmp r3, #2
4125 8001684: d00f beq.n 80016a6 <MODE_SECONDARYPROTECTION_Exec+0x2a>
4126 8001686: d806 bhi.n 8001696 <MODE_SECONDARYPROTECTION_Exec+0x1a>
4127 8001688: 2b00 cmp r3, #0
4128 800168a: d009 beq.n 80016a0 <MODE_SECONDARYPROTECTION_Exec+0x24>
4129 800168c: 2b01 cmp r3, #1
4130 800168e: d109 bne.n 80016a4 <MODE_SECONDARYPROTECTION_Exec+0x28>
4131 case SECONDARYPROTECTION_OFF:
4132 SECONDARYPROTECTION_SM_Off();
4133 break;
4134
4135 case SECONDARYPROTECTION_ON:
4136 SECONDARYPROTECTION_SM_On();
4137 8001690: f7ff fef8 bl 8001484 <SECONDARYPROTECTION_SM_On>
4138 break;
4139 8001694: e006 b.n 80016a4 <MODE_SECONDARYPROTECTION_Exec+0x28>
4140 switch (smState)
4141 8001696: 2b03 cmp r3, #3
4142 8001698: d104 bne.n 80016a4 <MODE_SECONDARYPROTECTION_Exec+0x28>
4143 case SECONDARYPROTECTION_MANUAL_ON:
4144 SECONDARYPROTECTION_SM_ManualOn();
4145 break;
4146
4147 case SECONDARYPROTECTION_ERROR:
4148 SECONDARYPROTECTION_SM_Error();
4149 800169a: f7ff ffa1 bl 80015e0 <SECONDARYPROTECTION_SM_Error>
4150 break;
4151
4152 default:
4153 break;
4154 }
4155}
4156 800169e: e001 b.n 80016a4 <MODE_SECONDARYPROTECTION_Exec+0x28>
4157 SECONDARYPROTECTION_SM_Off();
4158 80016a0: f7ff fe8a bl 80013b8 <SECONDARYPROTECTION_SM_Off>
4159}
4160 80016a4: bd10 pop {r4, pc}
4161 SECONDARYPROTECTION_SM_ManualOn();
4162 80016a6: f7ff ff81 bl 80015ac <SECONDARYPROTECTION_SM_ManualOn>
4163 break;
4164 80016aa: e7fb b.n 80016a4 <MODE_SECONDARYPROTECTION_Exec+0x28>
4165 80016ac: 20000140 .word 0x20000140
4166
4167080016b0 <MODESWITCH_ReadMode>:
4168
4169
4170MODESWITCH_mode_t mode;
4171
4172MODESWITCH_mode_t MODESWITCH_ReadMode(void)
4173{
4174 80016b0: b5f8 push {r3, r4, r5, r6, r7, lr}
4175
4176
4177 int m0 = (HAL_GPIO_ReadPin(GPIO_INPUT_MODE_B0_GPIO_Port, GPIO_INPUT_MODE_B0_Pin) << 0);
4178 80016b2: 4e14 ldr r6, [pc, #80] @ (8001704 <MODESWITCH_ReadMode+0x54>)
4179 80016b4: 2140 movs r1, #64 @ 0x40
4180 80016b6: 0030 movs r0, r6
4181 80016b8: f7ff f856 bl 8000768 <HAL_GPIO_ReadPin>
4182 80016bc: 0007 movs r7, r0
4183 int m1 = (HAL_GPIO_ReadPin(GPIO_INPUT_MODE_B1_GPIO_Port, GPIO_INPUT_MODE_B1_Pin) << 1);
4184 80016be: 2180 movs r1, #128 @ 0x80
4185 80016c0: 0030 movs r0, r6
4186 80016c2: f7ff f851 bl 8000768 <HAL_GPIO_ReadPin>
4187 80016c6: 0004 movs r4, r0
4188 int m2 = (HAL_GPIO_ReadPin(GPIO_INPUT_MODE_B2_GPIO_Port, GPIO_INPUT_MODE_B2_Pin) << 2);
4189 80016c8: 2180 movs r1, #128 @ 0x80
4190 80016ca: 0049 lsls r1, r1, #1
4191 80016cc: 0030 movs r0, r6
4192 80016ce: f7ff f84b bl 8000768 <HAL_GPIO_ReadPin>
4193 80016d2: 0005 movs r5, r0
4194 int m3 = (HAL_GPIO_ReadPin(GPIO_INPUT_MODE_B3_GPIO_Port, GPIO_INPUT_MODE_B3_Pin) << 3);
4195 80016d4: 2180 movs r1, #128 @ 0x80
4196 80016d6: 0089 lsls r1, r1, #2
4197 80016d8: 0030 movs r0, r6
4198 80016da: f7ff f845 bl 8000768 <HAL_GPIO_ReadPin>
4199
4200
4201
4202 mode = m0 | m1 | m2 | m3;
4203 80016de: 0064 lsls r4, r4, #1
4204 80016e0: 433c orrs r4, r7
4205 80016e2: b264 sxtb r4, r4
4206 80016e4: 00ad lsls r5, r5, #2
4207 80016e6: 432c orrs r4, r5
4208 80016e8: b264 sxtb r4, r4
4209 80016ea: 00c0 lsls r0, r0, #3
4210 80016ec: 4320 orrs r0, r4
4211 80016ee: b2c0 uxtb r0, r0
4212 80016f0: 4c05 ldr r4, [pc, #20] @ (8001708 <MODESWITCH_ReadMode+0x58>)
4213 80016f2: 7020 strb r0, [r4, #0]
4214 mode = 0x0f &~mode;
4215 80016f4: 210f movs r1, #15
4216 80016f6: 4381 bics r1, r0
4217 80016f8: 7021 strb r1, [r4, #0]
4218 printf("mode=%i\n",mode);
4219 80016fa: 4804 ldr r0, [pc, #16] @ (800170c <MODESWITCH_ReadMode+0x5c>)
4220 80016fc: f000 f92c bl 8001958 <iprintf>
4221
4222 return mode;
4223 8001700: 7820 ldrb r0, [r4, #0]
4224}
4225 8001702: bdf8 pop {r3, r4, r5, r6, r7, pc}
4226 8001704: 50000400 .word 0x50000400
4227 8001708: 20000141 .word 0x20000141
4228 800170c: 08002970 .word 0x08002970
4229
423008001710 <MODESWITCH_GetMode>:
4231
4232
4233MODESWITCH_mode_t MODESWITCH_GetMode(void)
4234{
4235 return mode;
4236 8001710: 4b01 ldr r3, [pc, #4] @ (8001718 <MODESWITCH_GetMode+0x8>)
4237 8001712: 7818 ldrb r0, [r3, #0]
4238}
4239 8001714: 4770 bx lr
4240 8001716: 46c0 nop @ (mov r8, r8)
4241 8001718: 20000141 .word 0x20000141
4242
42430800171c <RELAIS_Exec>:
4244unsigned int onTimeCounterRESET; //Reset Coil
4245unsigned int relaisState;
4246
4247
4248void RELAIS_Exec(void)
4249{
4250 800171c: b510 push {r4, lr}
4251
4252 if (onTimeCounterSET > 0)
4253 800171e: 4b0f ldr r3, [pc, #60] @ (800175c <RELAIS_Exec+0x40>)
4254 8001720: 681b ldr r3, [r3, #0]
4255 8001722: 2b00 cmp r3, #0
4256 8001724: d004 beq.n 8001730 <RELAIS_Exec+0x14>
4257 {
4258 onTimeCounterSET--;
4259 8001726: 3b01 subs r3, #1
4260 8001728: 4a0c ldr r2, [pc, #48] @ (800175c <RELAIS_Exec+0x40>)
4261 800172a: 6013 str r3, [r2, #0]
4262 if (onTimeCounterSET == 0)
4263 800172c: 2b00 cmp r3, #0
4264 800172e: d009 beq.n 8001744 <RELAIS_Exec+0x28>
4265 }
4266 }
4267
4268
4269
4270if (onTimeCounterRESET > 0)
4271 8001730: 4b0b ldr r3, [pc, #44] @ (8001760 <RELAIS_Exec+0x44>)
4272 8001732: 681b ldr r3, [r3, #0]
4273 8001734: 2b00 cmp r3, #0
4274 8001736: d004 beq.n 8001742 <RELAIS_Exec+0x26>
4275 {
4276 onTimeCounterRESET--;
4277 8001738: 3b01 subs r3, #1
4278 800173a: 4a09 ldr r2, [pc, #36] @ (8001760 <RELAIS_Exec+0x44>)
4279 800173c: 6013 str r3, [r2, #0]
4280 if (onTimeCounterRESET == 0)
4281 800173e: 2b00 cmp r3, #0
4282 8001740: d006 beq.n 8001750 <RELAIS_Exec+0x34>
4283 {
4284 HAL_GPIO_WritePin(GPIO_OUTPUT_RELAIS_RESET_GPIO_Port, GPIO_OUTPUT_RELAIS_RESET_Pin, GPIO_PIN_RESET);
4285 }
4286 }
4287
4288}
4289 8001742: bd10 pop {r4, pc}
4290 HAL_GPIO_WritePin(GPIO_OUTPUT_RELAIS_SET_GPIO_Port, GPIO_OUTPUT_RELAIS_SET_Pin, GPIO_PIN_RESET);
4291 8001744: 2200 movs r2, #0
4292 8001746: 2108 movs r1, #8
4293 8001748: 4806 ldr r0, [pc, #24] @ (8001764 <RELAIS_Exec+0x48>)
4294 800174a: f7ff f814 bl 8000776 <HAL_GPIO_WritePin>
4295 800174e: e7ef b.n 8001730 <RELAIS_Exec+0x14>
4296 HAL_GPIO_WritePin(GPIO_OUTPUT_RELAIS_RESET_GPIO_Port, GPIO_OUTPUT_RELAIS_RESET_Pin, GPIO_PIN_RESET);
4297 8001750: 2200 movs r2, #0
4298 8001752: 2110 movs r1, #16
4299 8001754: 4803 ldr r0, [pc, #12] @ (8001764 <RELAIS_Exec+0x48>)
4300 8001756: f7ff f80e bl 8000776 <HAL_GPIO_WritePin>
4301}
4302 800175a: e7f2 b.n 8001742 <RELAIS_Exec+0x26>
4303 800175c: 2000014c .word 0x2000014c
4304 8001760: 20000148 .word 0x20000148
4305 8001764: 50000400 .word 0x50000400
4306
430708001768 <RELAIS_SetPuls>:
4308
4309void RELAIS_SetPuls(void)
4310{
4311 8001768: b510 push {r4, lr}
4312
4313 //Sicherstellen das nicht noch die Reset Spule aktiv geschaltet ist
4314 HAL_GPIO_WritePin(GPIO_OUTPUT_RELAIS_RESET_GPIO_Port, GPIO_OUTPUT_RELAIS_RESET_Pin, GPIO_PIN_RESET);
4315 800176a: 4c09 ldr r4, [pc, #36] @ (8001790 <RELAIS_SetPuls+0x28>)
4316 800176c: 2200 movs r2, #0
4317 800176e: 2110 movs r1, #16
4318 8001770: 0020 movs r0, r4
4319 8001772: f7ff f800 bl 8000776 <HAL_GPIO_WritePin>
4320
4321 //Puls starten
4322 HAL_GPIO_WritePin(GPIO_OUTPUT_RELAIS_SET_GPIO_Port, GPIO_OUTPUT_RELAIS_SET_Pin, GPIO_PIN_SET);
4323 8001776: 2201 movs r2, #1
4324 8001778: 2108 movs r1, #8
4325 800177a: 0020 movs r0, r4
4326 800177c: f7fe fffb bl 8000776 <HAL_GPIO_WritePin>
4327 onTimeCounterSET = PULS_TIME;
4328 8001780: 4b04 ldr r3, [pc, #16] @ (8001794 <RELAIS_SetPuls+0x2c>)
4329 8001782: 2232 movs r2, #50 @ 0x32
4330 8001784: 601a str r2, [r3, #0]
4331 relaisState = 1;
4332 8001786: 4b04 ldr r3, [pc, #16] @ (8001798 <RELAIS_SetPuls+0x30>)
4333 8001788: 3a31 subs r2, #49 @ 0x31
4334 800178a: 601a str r2, [r3, #0]
4335
4336}
4337 800178c: bd10 pop {r4, pc}
4338 800178e: 46c0 nop @ (mov r8, r8)
4339 8001790: 50000400 .word 0x50000400
4340 8001794: 2000014c .word 0x2000014c
4341 8001798: 20000144 .word 0x20000144
4342
43430800179c <RELAIS_ResetPuls>:
4344
4345void RELAIS_ResetPuls(void)
4346{
4347 800179c: b510 push {r4, lr}
4348
4349 //Sicherstellen das nicht noch die Set Spule aktiv geschaltet ist
4350 HAL_GPIO_WritePin(GPIO_OUTPUT_RELAIS_SET_GPIO_Port, GPIO_OUTPUT_RELAIS_SET_Pin, GPIO_PIN_RESET);
4351 800179e: 4c09 ldr r4, [pc, #36] @ (80017c4 <RELAIS_ResetPuls+0x28>)
4352 80017a0: 2200 movs r2, #0
4353 80017a2: 2108 movs r1, #8
4354 80017a4: 0020 movs r0, r4
4355 80017a6: f7fe ffe6 bl 8000776 <HAL_GPIO_WritePin>
4356
4357 //Puls starten
4358 HAL_GPIO_WritePin(GPIO_OUTPUT_RELAIS_RESET_GPIO_Port, GPIO_OUTPUT_RELAIS_RESET_Pin, GPIO_PIN_SET);
4359 80017aa: 2201 movs r2, #1
4360 80017ac: 2110 movs r1, #16
4361 80017ae: 0020 movs r0, r4
4362 80017b0: f7fe ffe1 bl 8000776 <HAL_GPIO_WritePin>
4363 onTimeCounterRESET = PULS_TIME;
4364 80017b4: 4b04 ldr r3, [pc, #16] @ (80017c8 <RELAIS_ResetPuls+0x2c>)
4365 80017b6: 2232 movs r2, #50 @ 0x32
4366 80017b8: 601a str r2, [r3, #0]
4367 relaisState = 0;
4368 80017ba: 4b04 ldr r3, [pc, #16] @ (80017cc <RELAIS_ResetPuls+0x30>)
4369 80017bc: 2200 movs r2, #0
4370 80017be: 601a str r2, [r3, #0]
4371
4372}
4373 80017c0: bd10 pop {r4, pc}
4374 80017c2: 46c0 nop @ (mov r8, r8)
4375 80017c4: 50000400 .word 0x50000400
4376 80017c8: 20000148 .word 0x20000148
4377 80017cc: 20000144 .word 0x20000144
4378
4379080017d0 <std>:
4380 80017d0: 2300 movs r3, #0
4381 80017d2: b510 push {r4, lr}
4382 80017d4: 0004 movs r4, r0
4383 80017d6: 6003 str r3, [r0, #0]
4384 80017d8: 6043 str r3, [r0, #4]
4385 80017da: 6083 str r3, [r0, #8]
4386 80017dc: 8181 strh r1, [r0, #12]
4387 80017de: 6643 str r3, [r0, #100] @ 0x64
4388 80017e0: 81c2 strh r2, [r0, #14]
4389 80017e2: 6103 str r3, [r0, #16]
4390 80017e4: 6143 str r3, [r0, #20]
4391 80017e6: 6183 str r3, [r0, #24]
4392 80017e8: 0019 movs r1, r3
4393 80017ea: 2208 movs r2, #8
4394 80017ec: 305c adds r0, #92 @ 0x5c
4395 80017ee: f000 fa0f bl 8001c10 <memset>
4396 80017f2: 4b0b ldr r3, [pc, #44] @ (8001820 <std+0x50>)
4397 80017f4: 6224 str r4, [r4, #32]
4398 80017f6: 6263 str r3, [r4, #36] @ 0x24
4399 80017f8: 4b0a ldr r3, [pc, #40] @ (8001824 <std+0x54>)
4400 80017fa: 62a3 str r3, [r4, #40] @ 0x28
4401 80017fc: 4b0a ldr r3, [pc, #40] @ (8001828 <std+0x58>)
4402 80017fe: 62e3 str r3, [r4, #44] @ 0x2c
4403 8001800: 4b0a ldr r3, [pc, #40] @ (800182c <std+0x5c>)
4404 8001802: 6323 str r3, [r4, #48] @ 0x30
4405 8001804: 4b0a ldr r3, [pc, #40] @ (8001830 <std+0x60>)
4406 8001806: 429c cmp r4, r3
4407 8001808: d005 beq.n 8001816 <std+0x46>
4408 800180a: 4b0a ldr r3, [pc, #40] @ (8001834 <std+0x64>)
4409 800180c: 429c cmp r4, r3
4410 800180e: d002 beq.n 8001816 <std+0x46>
4411 8001810: 4b09 ldr r3, [pc, #36] @ (8001838 <std+0x68>)
4412 8001812: 429c cmp r4, r3
4413 8001814: d103 bne.n 800181e <std+0x4e>
4414 8001816: 0020 movs r0, r4
4415 8001818: 3058 adds r0, #88 @ 0x58
4416 800181a: f000 fa79 bl 8001d10 <__retarget_lock_init_recursive>
4417 800181e: bd10 pop {r4, pc}
4418 8001820: 08001a39 .word 0x08001a39
4419 8001824: 08001a61 .word 0x08001a61
4420 8001828: 08001a99 .word 0x08001a99
4421 800182c: 08001ac5 .word 0x08001ac5
4422 8001830: 20000150 .word 0x20000150
4423 8001834: 200001b8 .word 0x200001b8
4424 8001838: 20000220 .word 0x20000220
4425
44260800183c <stdio_exit_handler>:
4427 800183c: b510 push {r4, lr}
4428 800183e: 4a03 ldr r2, [pc, #12] @ (800184c <stdio_exit_handler+0x10>)
4429 8001840: 4903 ldr r1, [pc, #12] @ (8001850 <stdio_exit_handler+0x14>)
4430 8001842: 4804 ldr r0, [pc, #16] @ (8001854 <stdio_exit_handler+0x18>)
4431 8001844: f000 f86c bl 8001920 <_fwalk_sglue>
4432 8001848: bd10 pop {r4, pc}
4433 800184a: 46c0 nop @ (mov r8, r8)
4434 800184c: 2000000c .word 0x2000000c
4435 8001850: 0800259d .word 0x0800259d
4436 8001854: 2000001c .word 0x2000001c
4437
443808001858 <cleanup_stdio>:
4439 8001858: 6841 ldr r1, [r0, #4]
4440 800185a: 4b0b ldr r3, [pc, #44] @ (8001888 <cleanup_stdio+0x30>)
4441 800185c: b510 push {r4, lr}
4442 800185e: 0004 movs r4, r0
4443 8001860: 4299 cmp r1, r3
4444 8001862: d001 beq.n 8001868 <cleanup_stdio+0x10>
4445 8001864: f000 fe9a bl 800259c <_fflush_r>
4446 8001868: 68a1 ldr r1, [r4, #8]
4447 800186a: 4b08 ldr r3, [pc, #32] @ (800188c <cleanup_stdio+0x34>)
4448 800186c: 4299 cmp r1, r3
4449 800186e: d002 beq.n 8001876 <cleanup_stdio+0x1e>
4450 8001870: 0020 movs r0, r4
4451 8001872: f000 fe93 bl 800259c <_fflush_r>
4452 8001876: 68e1 ldr r1, [r4, #12]
4453 8001878: 4b05 ldr r3, [pc, #20] @ (8001890 <cleanup_stdio+0x38>)
4454 800187a: 4299 cmp r1, r3
4455 800187c: d002 beq.n 8001884 <cleanup_stdio+0x2c>
4456 800187e: 0020 movs r0, r4
4457 8001880: f000 fe8c bl 800259c <_fflush_r>
4458 8001884: bd10 pop {r4, pc}
4459 8001886: 46c0 nop @ (mov r8, r8)
4460 8001888: 20000150 .word 0x20000150
4461 800188c: 200001b8 .word 0x200001b8
4462 8001890: 20000220 .word 0x20000220
4463
446408001894 <global_stdio_init.part.0>:
4465 8001894: b510 push {r4, lr}
4466 8001896: 4b09 ldr r3, [pc, #36] @ (80018bc <global_stdio_init.part.0+0x28>)
4467 8001898: 4a09 ldr r2, [pc, #36] @ (80018c0 <global_stdio_init.part.0+0x2c>)
4468 800189a: 2104 movs r1, #4
4469 800189c: 601a str r2, [r3, #0]
4470 800189e: 4809 ldr r0, [pc, #36] @ (80018c4 <global_stdio_init.part.0+0x30>)
4471 80018a0: 2200 movs r2, #0
4472 80018a2: f7ff ff95 bl 80017d0 <std>
4473 80018a6: 2201 movs r2, #1
4474 80018a8: 2109 movs r1, #9
4475 80018aa: 4807 ldr r0, [pc, #28] @ (80018c8 <global_stdio_init.part.0+0x34>)
4476 80018ac: f7ff ff90 bl 80017d0 <std>
4477 80018b0: 2202 movs r2, #2
4478 80018b2: 2112 movs r1, #18
4479 80018b4: 4805 ldr r0, [pc, #20] @ (80018cc <global_stdio_init.part.0+0x38>)
4480 80018b6: f7ff ff8b bl 80017d0 <std>
4481 80018ba: bd10 pop {r4, pc}
4482 80018bc: 20000288 .word 0x20000288
4483 80018c0: 0800183d .word 0x0800183d
4484 80018c4: 20000150 .word 0x20000150
4485 80018c8: 200001b8 .word 0x200001b8
4486 80018cc: 20000220 .word 0x20000220
4487
4488080018d0 <__sfp_lock_acquire>:
4489 80018d0: b510 push {r4, lr}
4490 80018d2: 4802 ldr r0, [pc, #8] @ (80018dc <__sfp_lock_acquire+0xc>)
4491 80018d4: f000 fa1d bl 8001d12 <__retarget_lock_acquire_recursive>
4492 80018d8: bd10 pop {r4, pc}
4493 80018da: 46c0 nop @ (mov r8, r8)
4494 80018dc: 20000291 .word 0x20000291
4495
4496080018e0 <__sfp_lock_release>:
4497 80018e0: b510 push {r4, lr}
4498 80018e2: 4802 ldr r0, [pc, #8] @ (80018ec <__sfp_lock_release+0xc>)
4499 80018e4: f000 fa16 bl 8001d14 <__retarget_lock_release_recursive>
4500 80018e8: bd10 pop {r4, pc}
4501 80018ea: 46c0 nop @ (mov r8, r8)
4502 80018ec: 20000291 .word 0x20000291
4503
4504080018f0 <__sinit>:
4505 80018f0: b510 push {r4, lr}
4506 80018f2: 0004 movs r4, r0
4507 80018f4: f7ff ffec bl 80018d0 <__sfp_lock_acquire>
4508 80018f8: 6a23 ldr r3, [r4, #32]
4509 80018fa: 2b00 cmp r3, #0
4510 80018fc: d002 beq.n 8001904 <__sinit+0x14>
4511 80018fe: f7ff ffef bl 80018e0 <__sfp_lock_release>
4512 8001902: bd10 pop {r4, pc}
4513 8001904: 4b04 ldr r3, [pc, #16] @ (8001918 <__sinit+0x28>)
4514 8001906: 6223 str r3, [r4, #32]
4515 8001908: 4b04 ldr r3, [pc, #16] @ (800191c <__sinit+0x2c>)
4516 800190a: 681b ldr r3, [r3, #0]
4517 800190c: 2b00 cmp r3, #0
4518 800190e: d1f6 bne.n 80018fe <__sinit+0xe>
4519 8001910: f7ff ffc0 bl 8001894 <global_stdio_init.part.0>
4520 8001914: e7f3 b.n 80018fe <__sinit+0xe>
4521 8001916: 46c0 nop @ (mov r8, r8)
4522 8001918: 08001859 .word 0x08001859
4523 800191c: 20000288 .word 0x20000288
4524
452508001920 <_fwalk_sglue>:
4526 8001920: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
4527 8001922: 0014 movs r4, r2
4528 8001924: 2600 movs r6, #0
4529 8001926: 9000 str r0, [sp, #0]
4530 8001928: 9101 str r1, [sp, #4]
4531 800192a: 68a5 ldr r5, [r4, #8]
4532 800192c: 6867 ldr r7, [r4, #4]
4533 800192e: 3f01 subs r7, #1
4534 8001930: d504 bpl.n 800193c <_fwalk_sglue+0x1c>
4535 8001932: 6824 ldr r4, [r4, #0]
4536 8001934: 2c00 cmp r4, #0
4537 8001936: d1f8 bne.n 800192a <_fwalk_sglue+0xa>
4538 8001938: 0030 movs r0, r6
4539 800193a: bdfe pop {r1, r2, r3, r4, r5, r6, r7, pc}
4540 800193c: 89ab ldrh r3, [r5, #12]
4541 800193e: 2b01 cmp r3, #1
4542 8001940: d908 bls.n 8001954 <_fwalk_sglue+0x34>
4543 8001942: 220e movs r2, #14
4544 8001944: 5eab ldrsh r3, [r5, r2]
4545 8001946: 3301 adds r3, #1
4546 8001948: d004 beq.n 8001954 <_fwalk_sglue+0x34>
4547 800194a: 0029 movs r1, r5
4548 800194c: 9800 ldr r0, [sp, #0]
4549 800194e: 9b01 ldr r3, [sp, #4]
4550 8001950: 4798 blx r3
4551 8001952: 4306 orrs r6, r0
4552 8001954: 3568 adds r5, #104 @ 0x68
4553 8001956: e7ea b.n 800192e <_fwalk_sglue+0xe>
4554
455508001958 <iprintf>:
4556 8001958: b40f push {r0, r1, r2, r3}
4557 800195a: b507 push {r0, r1, r2, lr}
4558 800195c: 4905 ldr r1, [pc, #20] @ (8001974 <iprintf+0x1c>)
4559 800195e: ab04 add r3, sp, #16
4560 8001960: 6808 ldr r0, [r1, #0]
4561 8001962: cb04 ldmia r3!, {r2}
4562 8001964: 6881 ldr r1, [r0, #8]
4563 8001966: 9301 str r3, [sp, #4]
4564 8001968: f000 fafa bl 8001f60 <_vfiprintf_r>
4565 800196c: b003 add sp, #12
4566 800196e: bc08 pop {r3}
4567 8001970: b004 add sp, #16
4568 8001972: 4718 bx r3
4569 8001974: 20000018 .word 0x20000018
4570
457108001978 <_puts_r>:
4572 8001978: 6a03 ldr r3, [r0, #32]
4573 800197a: b570 push {r4, r5, r6, lr}
4574 800197c: 0005 movs r5, r0
4575 800197e: 000e movs r6, r1
4576 8001980: 6884 ldr r4, [r0, #8]
4577 8001982: 2b00 cmp r3, #0
4578 8001984: d101 bne.n 800198a <_puts_r+0x12>
4579 8001986: f7ff ffb3 bl 80018f0 <__sinit>
4580 800198a: 6e63 ldr r3, [r4, #100] @ 0x64
4581 800198c: 07db lsls r3, r3, #31
4582 800198e: d405 bmi.n 800199c <_puts_r+0x24>
4583 8001990: 89a3 ldrh r3, [r4, #12]
4584 8001992: 059b lsls r3, r3, #22
4585 8001994: d402 bmi.n 800199c <_puts_r+0x24>
4586 8001996: 6da0 ldr r0, [r4, #88] @ 0x58
4587 8001998: f000 f9bb bl 8001d12 <__retarget_lock_acquire_recursive>
4588 800199c: 89a3 ldrh r3, [r4, #12]
4589 800199e: 071b lsls r3, r3, #28
4590 80019a0: d502 bpl.n 80019a8 <_puts_r+0x30>
4591 80019a2: 6923 ldr r3, [r4, #16]
4592 80019a4: 2b00 cmp r3, #0
4593 80019a6: d11f bne.n 80019e8 <_puts_r+0x70>
4594 80019a8: 0021 movs r1, r4
4595 80019aa: 0028 movs r0, r5
4596 80019ac: f000 f8d2 bl 8001b54 <__swsetup_r>
4597 80019b0: 2800 cmp r0, #0
4598 80019b2: d019 beq.n 80019e8 <_puts_r+0x70>
4599 80019b4: 2501 movs r5, #1
4600 80019b6: 426d negs r5, r5
4601 80019b8: 6e63 ldr r3, [r4, #100] @ 0x64
4602 80019ba: 07db lsls r3, r3, #31
4603 80019bc: d405 bmi.n 80019ca <_puts_r+0x52>
4604 80019be: 89a3 ldrh r3, [r4, #12]
4605 80019c0: 059b lsls r3, r3, #22
4606 80019c2: d402 bmi.n 80019ca <_puts_r+0x52>
4607 80019c4: 6da0 ldr r0, [r4, #88] @ 0x58
4608 80019c6: f000 f9a5 bl 8001d14 <__retarget_lock_release_recursive>
4609 80019ca: 0028 movs r0, r5
4610 80019cc: bd70 pop {r4, r5, r6, pc}
4611 80019ce: 3601 adds r6, #1
4612 80019d0: 60a3 str r3, [r4, #8]
4613 80019d2: 2b00 cmp r3, #0
4614 80019d4: da04 bge.n 80019e0 <_puts_r+0x68>
4615 80019d6: 69a2 ldr r2, [r4, #24]
4616 80019d8: 429a cmp r2, r3
4617 80019da: dc16 bgt.n 8001a0a <_puts_r+0x92>
4618 80019dc: 290a cmp r1, #10
4619 80019de: d014 beq.n 8001a0a <_puts_r+0x92>
4620 80019e0: 6823 ldr r3, [r4, #0]
4621 80019e2: 1c5a adds r2, r3, #1
4622 80019e4: 6022 str r2, [r4, #0]
4623 80019e6: 7019 strb r1, [r3, #0]
4624 80019e8: 68a3 ldr r3, [r4, #8]
4625 80019ea: 7831 ldrb r1, [r6, #0]
4626 80019ec: 3b01 subs r3, #1
4627 80019ee: 2900 cmp r1, #0
4628 80019f0: d1ed bne.n 80019ce <_puts_r+0x56>
4629 80019f2: 60a3 str r3, [r4, #8]
4630 80019f4: 2b00 cmp r3, #0
4631 80019f6: da0f bge.n 8001a18 <_puts_r+0xa0>
4632 80019f8: 0022 movs r2, r4
4633 80019fa: 0028 movs r0, r5
4634 80019fc: 310a adds r1, #10
4635 80019fe: f000 f867 bl 8001ad0 <__swbuf_r>
4636 8001a02: 3001 adds r0, #1
4637 8001a04: d0d6 beq.n 80019b4 <_puts_r+0x3c>
4638 8001a06: 250a movs r5, #10
4639 8001a08: e7d6 b.n 80019b8 <_puts_r+0x40>
4640 8001a0a: 0022 movs r2, r4
4641 8001a0c: 0028 movs r0, r5
4642 8001a0e: f000 f85f bl 8001ad0 <__swbuf_r>
4643 8001a12: 3001 adds r0, #1
4644 8001a14: d1e8 bne.n 80019e8 <_puts_r+0x70>
4645 8001a16: e7cd b.n 80019b4 <_puts_r+0x3c>
4646 8001a18: 6823 ldr r3, [r4, #0]
4647 8001a1a: 1c5a adds r2, r3, #1
4648 8001a1c: 6022 str r2, [r4, #0]
4649 8001a1e: 220a movs r2, #10
4650 8001a20: 701a strb r2, [r3, #0]
4651 8001a22: e7f0 b.n 8001a06 <_puts_r+0x8e>
4652
465308001a24 <puts>:
4654 8001a24: b510 push {r4, lr}
4655 8001a26: 4b03 ldr r3, [pc, #12] @ (8001a34 <puts+0x10>)
4656 8001a28: 0001 movs r1, r0
4657 8001a2a: 6818 ldr r0, [r3, #0]
4658 8001a2c: f7ff ffa4 bl 8001978 <_puts_r>
4659 8001a30: bd10 pop {r4, pc}
4660 8001a32: 46c0 nop @ (mov r8, r8)
4661 8001a34: 20000018 .word 0x20000018
4662
466308001a38 <__sread>:
4664 8001a38: b570 push {r4, r5, r6, lr}
4665 8001a3a: 000c movs r4, r1
4666 8001a3c: 250e movs r5, #14
4667 8001a3e: 5f49 ldrsh r1, [r1, r5]
4668 8001a40: f000 f914 bl 8001c6c <_read_r>
4669 8001a44: 2800 cmp r0, #0
4670 8001a46: db03 blt.n 8001a50 <__sread+0x18>
4671 8001a48: 6d63 ldr r3, [r4, #84] @ 0x54
4672 8001a4a: 181b adds r3, r3, r0
4673 8001a4c: 6563 str r3, [r4, #84] @ 0x54
4674 8001a4e: bd70 pop {r4, r5, r6, pc}
4675 8001a50: 89a3 ldrh r3, [r4, #12]
4676 8001a52: 4a02 ldr r2, [pc, #8] @ (8001a5c <__sread+0x24>)
4677 8001a54: 4013 ands r3, r2
4678 8001a56: 81a3 strh r3, [r4, #12]
4679 8001a58: e7f9 b.n 8001a4e <__sread+0x16>
4680 8001a5a: 46c0 nop @ (mov r8, r8)
4681 8001a5c: ffffefff .word 0xffffefff
4682
468308001a60 <__swrite>:
4684 8001a60: b5f8 push {r3, r4, r5, r6, r7, lr}
4685 8001a62: 001f movs r7, r3
4686 8001a64: 898b ldrh r3, [r1, #12]
4687 8001a66: 0005 movs r5, r0
4688 8001a68: 000c movs r4, r1
4689 8001a6a: 0016 movs r6, r2
4690 8001a6c: 05db lsls r3, r3, #23
4691 8001a6e: d505 bpl.n 8001a7c <__swrite+0x1c>
4692 8001a70: 230e movs r3, #14
4693 8001a72: 5ec9 ldrsh r1, [r1, r3]
4694 8001a74: 2200 movs r2, #0
4695 8001a76: 2302 movs r3, #2
4696 8001a78: f000 f8e4 bl 8001c44 <_lseek_r>
4697 8001a7c: 89a3 ldrh r3, [r4, #12]
4698 8001a7e: 4a05 ldr r2, [pc, #20] @ (8001a94 <__swrite+0x34>)
4699 8001a80: 0028 movs r0, r5
4700 8001a82: 4013 ands r3, r2
4701 8001a84: 81a3 strh r3, [r4, #12]
4702 8001a86: 0032 movs r2, r6
4703 8001a88: 230e movs r3, #14
4704 8001a8a: 5ee1 ldrsh r1, [r4, r3]
4705 8001a8c: 003b movs r3, r7
4706 8001a8e: f000 f901 bl 8001c94 <_write_r>
4707 8001a92: bdf8 pop {r3, r4, r5, r6, r7, pc}
4708 8001a94: ffffefff .word 0xffffefff
4709
471008001a98 <__sseek>:
4711 8001a98: b570 push {r4, r5, r6, lr}
4712 8001a9a: 000c movs r4, r1
4713 8001a9c: 250e movs r5, #14
4714 8001a9e: 5f49 ldrsh r1, [r1, r5]
4715 8001aa0: f000 f8d0 bl 8001c44 <_lseek_r>
4716 8001aa4: 89a3 ldrh r3, [r4, #12]
4717 8001aa6: 1c42 adds r2, r0, #1
4718 8001aa8: d103 bne.n 8001ab2 <__sseek+0x1a>
4719 8001aaa: 4a05 ldr r2, [pc, #20] @ (8001ac0 <__sseek+0x28>)
4720 8001aac: 4013 ands r3, r2
4721 8001aae: 81a3 strh r3, [r4, #12]
4722 8001ab0: bd70 pop {r4, r5, r6, pc}
4723 8001ab2: 2280 movs r2, #128 @ 0x80
4724 8001ab4: 0152 lsls r2, r2, #5
4725 8001ab6: 4313 orrs r3, r2
4726 8001ab8: 81a3 strh r3, [r4, #12]
4727 8001aba: 6560 str r0, [r4, #84] @ 0x54
4728 8001abc: e7f8 b.n 8001ab0 <__sseek+0x18>
4729 8001abe: 46c0 nop @ (mov r8, r8)
4730 8001ac0: ffffefff .word 0xffffefff
4731
473208001ac4 <__sclose>:
4733 8001ac4: b510 push {r4, lr}
4734 8001ac6: 230e movs r3, #14
4735 8001ac8: 5ec9 ldrsh r1, [r1, r3]
4736 8001aca: f000 f8a9 bl 8001c20 <_close_r>
4737 8001ace: bd10 pop {r4, pc}
4738
473908001ad0 <__swbuf_r>:
4740 8001ad0: b5f8 push {r3, r4, r5, r6, r7, lr}
4741 8001ad2: 0006 movs r6, r0
4742 8001ad4: 000d movs r5, r1
4743 8001ad6: 0014 movs r4, r2
4744 8001ad8: 2800 cmp r0, #0
4745 8001ada: d004 beq.n 8001ae6 <__swbuf_r+0x16>
4746 8001adc: 6a03 ldr r3, [r0, #32]
4747 8001ade: 2b00 cmp r3, #0
4748 8001ae0: d101 bne.n 8001ae6 <__swbuf_r+0x16>
4749 8001ae2: f7ff ff05 bl 80018f0 <__sinit>
4750 8001ae6: 69a3 ldr r3, [r4, #24]
4751 8001ae8: 60a3 str r3, [r4, #8]
4752 8001aea: 89a3 ldrh r3, [r4, #12]
4753 8001aec: 071b lsls r3, r3, #28
4754 8001aee: d502 bpl.n 8001af6 <__swbuf_r+0x26>
4755 8001af0: 6923 ldr r3, [r4, #16]
4756 8001af2: 2b00 cmp r3, #0
4757 8001af4: d109 bne.n 8001b0a <__swbuf_r+0x3a>
4758 8001af6: 0021 movs r1, r4
4759 8001af8: 0030 movs r0, r6
4760 8001afa: f000 f82b bl 8001b54 <__swsetup_r>
4761 8001afe: 2800 cmp r0, #0
4762 8001b00: d003 beq.n 8001b0a <__swbuf_r+0x3a>
4763 8001b02: 2501 movs r5, #1
4764 8001b04: 426d negs r5, r5
4765 8001b06: 0028 movs r0, r5
4766 8001b08: bdf8 pop {r3, r4, r5, r6, r7, pc}
4767 8001b0a: 6923 ldr r3, [r4, #16]
4768 8001b0c: 6820 ldr r0, [r4, #0]
4769 8001b0e: b2ef uxtb r7, r5
4770 8001b10: 1ac0 subs r0, r0, r3
4771 8001b12: 6963 ldr r3, [r4, #20]
4772 8001b14: b2ed uxtb r5, r5
4773 8001b16: 4283 cmp r3, r0
4774 8001b18: dc05 bgt.n 8001b26 <__swbuf_r+0x56>
4775 8001b1a: 0021 movs r1, r4
4776 8001b1c: 0030 movs r0, r6
4777 8001b1e: f000 fd3d bl 800259c <_fflush_r>
4778 8001b22: 2800 cmp r0, #0
4779 8001b24: d1ed bne.n 8001b02 <__swbuf_r+0x32>
4780 8001b26: 68a3 ldr r3, [r4, #8]
4781 8001b28: 3001 adds r0, #1
4782 8001b2a: 3b01 subs r3, #1
4783 8001b2c: 60a3 str r3, [r4, #8]
4784 8001b2e: 6823 ldr r3, [r4, #0]
4785 8001b30: 1c5a adds r2, r3, #1
4786 8001b32: 6022 str r2, [r4, #0]
4787 8001b34: 701f strb r7, [r3, #0]
4788 8001b36: 6963 ldr r3, [r4, #20]
4789 8001b38: 4283 cmp r3, r0
4790 8001b3a: d004 beq.n 8001b46 <__swbuf_r+0x76>
4791 8001b3c: 89a3 ldrh r3, [r4, #12]
4792 8001b3e: 07db lsls r3, r3, #31
4793 8001b40: d5e1 bpl.n 8001b06 <__swbuf_r+0x36>
4794 8001b42: 2d0a cmp r5, #10
4795 8001b44: d1df bne.n 8001b06 <__swbuf_r+0x36>
4796 8001b46: 0021 movs r1, r4
4797 8001b48: 0030 movs r0, r6
4798 8001b4a: f000 fd27 bl 800259c <_fflush_r>
4799 8001b4e: 2800 cmp r0, #0
4800 8001b50: d0d9 beq.n 8001b06 <__swbuf_r+0x36>
4801 8001b52: e7d6 b.n 8001b02 <__swbuf_r+0x32>
4802
480308001b54 <__swsetup_r>:
4804 8001b54: 4b2d ldr r3, [pc, #180] @ (8001c0c <__swsetup_r+0xb8>)
4805 8001b56: b570 push {r4, r5, r6, lr}
4806 8001b58: 0005 movs r5, r0
4807 8001b5a: 6818 ldr r0, [r3, #0]
4808 8001b5c: 000c movs r4, r1
4809 8001b5e: 2800 cmp r0, #0
4810 8001b60: d004 beq.n 8001b6c <__swsetup_r+0x18>
4811 8001b62: 6a03 ldr r3, [r0, #32]
4812 8001b64: 2b00 cmp r3, #0
4813 8001b66: d101 bne.n 8001b6c <__swsetup_r+0x18>
4814 8001b68: f7ff fec2 bl 80018f0 <__sinit>
4815 8001b6c: 220c movs r2, #12
4816 8001b6e: 5ea3 ldrsh r3, [r4, r2]
4817 8001b70: 071a lsls r2, r3, #28
4818 8001b72: d423 bmi.n 8001bbc <__swsetup_r+0x68>
4819 8001b74: 06da lsls r2, r3, #27
4820 8001b76: d407 bmi.n 8001b88 <__swsetup_r+0x34>
4821 8001b78: 2209 movs r2, #9
4822 8001b7a: 602a str r2, [r5, #0]
4823 8001b7c: 2240 movs r2, #64 @ 0x40
4824 8001b7e: 2001 movs r0, #1
4825 8001b80: 4313 orrs r3, r2
4826 8001b82: 81a3 strh r3, [r4, #12]
4827 8001b84: 4240 negs r0, r0
4828 8001b86: e03a b.n 8001bfe <__swsetup_r+0xaa>
4829 8001b88: 075b lsls r3, r3, #29
4830 8001b8a: d513 bpl.n 8001bb4 <__swsetup_r+0x60>
4831 8001b8c: 6b61 ldr r1, [r4, #52] @ 0x34
4832 8001b8e: 2900 cmp r1, #0
4833 8001b90: d008 beq.n 8001ba4 <__swsetup_r+0x50>
4834 8001b92: 0023 movs r3, r4
4835 8001b94: 3344 adds r3, #68 @ 0x44
4836 8001b96: 4299 cmp r1, r3
4837 8001b98: d002 beq.n 8001ba0 <__swsetup_r+0x4c>
4838 8001b9a: 0028 movs r0, r5
4839 8001b9c: f000 f8bc bl 8001d18 <_free_r>
4840 8001ba0: 2300 movs r3, #0
4841 8001ba2: 6363 str r3, [r4, #52] @ 0x34
4842 8001ba4: 2224 movs r2, #36 @ 0x24
4843 8001ba6: 89a3 ldrh r3, [r4, #12]
4844 8001ba8: 4393 bics r3, r2
4845 8001baa: 81a3 strh r3, [r4, #12]
4846 8001bac: 2300 movs r3, #0
4847 8001bae: 6063 str r3, [r4, #4]
4848 8001bb0: 6923 ldr r3, [r4, #16]
4849 8001bb2: 6023 str r3, [r4, #0]
4850 8001bb4: 2308 movs r3, #8
4851 8001bb6: 89a2 ldrh r2, [r4, #12]
4852 8001bb8: 4313 orrs r3, r2
4853 8001bba: 81a3 strh r3, [r4, #12]
4854 8001bbc: 6923 ldr r3, [r4, #16]
4855 8001bbe: 2b00 cmp r3, #0
4856 8001bc0: d10b bne.n 8001bda <__swsetup_r+0x86>
4857 8001bc2: 21a0 movs r1, #160 @ 0xa0
4858 8001bc4: 2280 movs r2, #128 @ 0x80
4859 8001bc6: 89a3 ldrh r3, [r4, #12]
4860 8001bc8: 0089 lsls r1, r1, #2
4861 8001bca: 0092 lsls r2, r2, #2
4862 8001bcc: 400b ands r3, r1
4863 8001bce: 4293 cmp r3, r2
4864 8001bd0: d003 beq.n 8001bda <__swsetup_r+0x86>
4865 8001bd2: 0021 movs r1, r4
4866 8001bd4: 0028 movs r0, r5
4867 8001bd6: f000 fd37 bl 8002648 <__smakebuf_r>
4868 8001bda: 220c movs r2, #12
4869 8001bdc: 5ea3 ldrsh r3, [r4, r2]
4870 8001bde: 2101 movs r1, #1
4871 8001be0: 001a movs r2, r3
4872 8001be2: 400a ands r2, r1
4873 8001be4: 420b tst r3, r1
4874 8001be6: d00b beq.n 8001c00 <__swsetup_r+0xac>
4875 8001be8: 2200 movs r2, #0
4876 8001bea: 60a2 str r2, [r4, #8]
4877 8001bec: 6962 ldr r2, [r4, #20]
4878 8001bee: 4252 negs r2, r2
4879 8001bf0: 61a2 str r2, [r4, #24]
4880 8001bf2: 2000 movs r0, #0
4881 8001bf4: 6922 ldr r2, [r4, #16]
4882 8001bf6: 4282 cmp r2, r0
4883 8001bf8: d101 bne.n 8001bfe <__swsetup_r+0xaa>
4884 8001bfa: 061a lsls r2, r3, #24
4885 8001bfc: d4be bmi.n 8001b7c <__swsetup_r+0x28>
4886 8001bfe: bd70 pop {r4, r5, r6, pc}
4887 8001c00: 0799 lsls r1, r3, #30
4888 8001c02: d400 bmi.n 8001c06 <__swsetup_r+0xb2>
4889 8001c04: 6962 ldr r2, [r4, #20]
4890 8001c06: 60a2 str r2, [r4, #8]
4891 8001c08: e7f3 b.n 8001bf2 <__swsetup_r+0x9e>
4892 8001c0a: 46c0 nop @ (mov r8, r8)
4893 8001c0c: 20000018 .word 0x20000018
4894
489508001c10 <memset>:
4896 8001c10: 0003 movs r3, r0
4897 8001c12: 1882 adds r2, r0, r2
4898 8001c14: 4293 cmp r3, r2
4899 8001c16: d100 bne.n 8001c1a <memset+0xa>
4900 8001c18: 4770 bx lr
4901 8001c1a: 7019 strb r1, [r3, #0]
4902 8001c1c: 3301 adds r3, #1
4903 8001c1e: e7f9 b.n 8001c14 <memset+0x4>
4904
490508001c20 <_close_r>:
4906 8001c20: 2300 movs r3, #0
4907 8001c22: b570 push {r4, r5, r6, lr}
4908 8001c24: 4d06 ldr r5, [pc, #24] @ (8001c40 <_close_r+0x20>)
4909 8001c26: 0004 movs r4, r0
4910 8001c28: 0008 movs r0, r1
4911 8001c2a: 602b str r3, [r5, #0]
4912 8001c2c: f7fe fb46 bl 80002bc <_close>
4913 8001c30: 1c43 adds r3, r0, #1
4914 8001c32: d103 bne.n 8001c3c <_close_r+0x1c>
4915 8001c34: 682b ldr r3, [r5, #0]
4916 8001c36: 2b00 cmp r3, #0
4917 8001c38: d000 beq.n 8001c3c <_close_r+0x1c>
4918 8001c3a: 6023 str r3, [r4, #0]
4919 8001c3c: bd70 pop {r4, r5, r6, pc}
4920 8001c3e: 46c0 nop @ (mov r8, r8)
4921 8001c40: 2000028c .word 0x2000028c
4922
492308001c44 <_lseek_r>:
4924 8001c44: b570 push {r4, r5, r6, lr}
4925 8001c46: 0004 movs r4, r0
4926 8001c48: 0008 movs r0, r1
4927 8001c4a: 0011 movs r1, r2
4928 8001c4c: 001a movs r2, r3
4929 8001c4e: 2300 movs r3, #0
4930 8001c50: 4d05 ldr r5, [pc, #20] @ (8001c68 <_lseek_r+0x24>)
4931 8001c52: 602b str r3, [r5, #0]
4932 8001c54: f7fe fb3c bl 80002d0 <_lseek>
4933 8001c58: 1c43 adds r3, r0, #1
4934 8001c5a: d103 bne.n 8001c64 <_lseek_r+0x20>
4935 8001c5c: 682b ldr r3, [r5, #0]
4936 8001c5e: 2b00 cmp r3, #0
4937 8001c60: d000 beq.n 8001c64 <_lseek_r+0x20>
4938 8001c62: 6023 str r3, [r4, #0]
4939 8001c64: bd70 pop {r4, r5, r6, pc}
4940 8001c66: 46c0 nop @ (mov r8, r8)
4941 8001c68: 2000028c .word 0x2000028c
4942
494308001c6c <_read_r>:
4944 8001c6c: b570 push {r4, r5, r6, lr}
4945 8001c6e: 0004 movs r4, r0
4946 8001c70: 0008 movs r0, r1
4947 8001c72: 0011 movs r1, r2
4948 8001c74: 001a movs r2, r3
4949 8001c76: 2300 movs r3, #0
4950 8001c78: 4d05 ldr r5, [pc, #20] @ (8001c90 <_read_r+0x24>)
4951 8001c7a: 602b str r3, [r5, #0]
4952 8001c7c: f7fe fb02 bl 8000284 <_read>
4953 8001c80: 1c43 adds r3, r0, #1
4954 8001c82: d103 bne.n 8001c8c <_read_r+0x20>
4955 8001c84: 682b ldr r3, [r5, #0]
4956 8001c86: 2b00 cmp r3, #0
4957 8001c88: d000 beq.n 8001c8c <_read_r+0x20>
4958 8001c8a: 6023 str r3, [r4, #0]
4959 8001c8c: bd70 pop {r4, r5, r6, pc}
4960 8001c8e: 46c0 nop @ (mov r8, r8)
4961 8001c90: 2000028c .word 0x2000028c
4962
496308001c94 <_write_r>:
4964 8001c94: b570 push {r4, r5, r6, lr}
4965 8001c96: 0004 movs r4, r0
4966 8001c98: 0008 movs r0, r1
4967 8001c9a: 0011 movs r1, r2
4968 8001c9c: 001a movs r2, r3
4969 8001c9e: 2300 movs r3, #0
4970 8001ca0: 4d05 ldr r5, [pc, #20] @ (8001cb8 <_write_r+0x24>)
4971 8001ca2: 602b str r3, [r5, #0]
4972 8001ca4: f7fe fafc bl 80002a0 <_write>
4973 8001ca8: 1c43 adds r3, r0, #1
4974 8001caa: d103 bne.n 8001cb4 <_write_r+0x20>
4975 8001cac: 682b ldr r3, [r5, #0]
4976 8001cae: 2b00 cmp r3, #0
4977 8001cb0: d000 beq.n 8001cb4 <_write_r+0x20>
4978 8001cb2: 6023 str r3, [r4, #0]
4979 8001cb4: bd70 pop {r4, r5, r6, pc}
4980 8001cb6: 46c0 nop @ (mov r8, r8)
4981 8001cb8: 2000028c .word 0x2000028c
4982
498308001cbc <__errno>:
4984 8001cbc: 4b01 ldr r3, [pc, #4] @ (8001cc4 <__errno+0x8>)
4985 8001cbe: 6818 ldr r0, [r3, #0]
4986 8001cc0: 4770 bx lr
4987 8001cc2: 46c0 nop @ (mov r8, r8)
4988 8001cc4: 20000018 .word 0x20000018
4989
499008001cc8 <__libc_init_array>:
4991 8001cc8: b570 push {r4, r5, r6, lr}
4992 8001cca: 2600 movs r6, #0
4993 8001ccc: 4c0c ldr r4, [pc, #48] @ (8001d00 <__libc_init_array+0x38>)
4994 8001cce: 4d0d ldr r5, [pc, #52] @ (8001d04 <__libc_init_array+0x3c>)
4995 8001cd0: 1b64 subs r4, r4, r5
4996 8001cd2: 10a4 asrs r4, r4, #2
4997 8001cd4: 42a6 cmp r6, r4
4998 8001cd6: d109 bne.n 8001cec <__libc_init_array+0x24>
4999 8001cd8: 2600 movs r6, #0
5000 8001cda: f000 fd39 bl 8002750 <_init>
5001 8001cde: 4c0a ldr r4, [pc, #40] @ (8001d08 <__libc_init_array+0x40>)
5002 8001ce0: 4d0a ldr r5, [pc, #40] @ (8001d0c <__libc_init_array+0x44>)
5003 8001ce2: 1b64 subs r4, r4, r5
5004 8001ce4: 10a4 asrs r4, r4, #2
5005 8001ce6: 42a6 cmp r6, r4
5006 8001ce8: d105 bne.n 8001cf6 <__libc_init_array+0x2e>
5007 8001cea: bd70 pop {r4, r5, r6, pc}
5008 8001cec: 00b3 lsls r3, r6, #2
5009 8001cee: 58eb ldr r3, [r5, r3]
5010 8001cf0: 4798 blx r3
5011 8001cf2: 3601 adds r6, #1
5012 8001cf4: e7ee b.n 8001cd4 <__libc_init_array+0xc>
5013 8001cf6: 00b3 lsls r3, r6, #2
5014 8001cf8: 58eb ldr r3, [r5, r3]
5015 8001cfa: 4798 blx r3
5016 8001cfc: 3601 adds r6, #1
5017 8001cfe: e7f2 b.n 8001ce6 <__libc_init_array+0x1e>
5018 8001d00: 080029ac .word 0x080029ac
5019 8001d04: 080029ac .word 0x080029ac
5020 8001d08: 080029b0 .word 0x080029b0
5021 8001d0c: 080029ac .word 0x080029ac
5022
502308001d10 <__retarget_lock_init_recursive>:
5024 8001d10: 4770 bx lr
5025
502608001d12 <__retarget_lock_acquire_recursive>:
5027 8001d12: 4770 bx lr
5028
502908001d14 <__retarget_lock_release_recursive>:
5030 8001d14: 4770 bx lr
5031 ...
5032
503308001d18 <_free_r>:
5034 8001d18: b570 push {r4, r5, r6, lr}
5035 8001d1a: 0005 movs r5, r0
5036 8001d1c: 1e0c subs r4, r1, #0
5037 8001d1e: d010 beq.n 8001d42 <_free_r+0x2a>
5038 8001d20: 3c04 subs r4, #4
5039 8001d22: 6823 ldr r3, [r4, #0]
5040 8001d24: 2b00 cmp r3, #0
5041 8001d26: da00 bge.n 8001d2a <_free_r+0x12>
5042 8001d28: 18e4 adds r4, r4, r3
5043 8001d2a: 0028 movs r0, r5
5044 8001d2c: f000 f8e0 bl 8001ef0 <__malloc_lock>
5045 8001d30: 4a1d ldr r2, [pc, #116] @ (8001da8 <_free_r+0x90>)
5046 8001d32: 6813 ldr r3, [r2, #0]
5047 8001d34: 2b00 cmp r3, #0
5048 8001d36: d105 bne.n 8001d44 <_free_r+0x2c>
5049 8001d38: 6063 str r3, [r4, #4]
5050 8001d3a: 6014 str r4, [r2, #0]
5051 8001d3c: 0028 movs r0, r5
5052 8001d3e: f000 f8df bl 8001f00 <__malloc_unlock>
5053 8001d42: bd70 pop {r4, r5, r6, pc}
5054 8001d44: 42a3 cmp r3, r4
5055 8001d46: d908 bls.n 8001d5a <_free_r+0x42>
5056 8001d48: 6820 ldr r0, [r4, #0]
5057 8001d4a: 1821 adds r1, r4, r0
5058 8001d4c: 428b cmp r3, r1
5059 8001d4e: d1f3 bne.n 8001d38 <_free_r+0x20>
5060 8001d50: 6819 ldr r1, [r3, #0]
5061 8001d52: 685b ldr r3, [r3, #4]
5062 8001d54: 1809 adds r1, r1, r0
5063 8001d56: 6021 str r1, [r4, #0]
5064 8001d58: e7ee b.n 8001d38 <_free_r+0x20>
5065 8001d5a: 001a movs r2, r3
5066 8001d5c: 685b ldr r3, [r3, #4]
5067 8001d5e: 2b00 cmp r3, #0
5068 8001d60: d001 beq.n 8001d66 <_free_r+0x4e>
5069 8001d62: 42a3 cmp r3, r4
5070 8001d64: d9f9 bls.n 8001d5a <_free_r+0x42>
5071 8001d66: 6811 ldr r1, [r2, #0]
5072 8001d68: 1850 adds r0, r2, r1
5073 8001d6a: 42a0 cmp r0, r4
5074 8001d6c: d10b bne.n 8001d86 <_free_r+0x6e>
5075 8001d6e: 6820 ldr r0, [r4, #0]
5076 8001d70: 1809 adds r1, r1, r0
5077 8001d72: 1850 adds r0, r2, r1
5078 8001d74: 6011 str r1, [r2, #0]
5079 8001d76: 4283 cmp r3, r0
5080 8001d78: d1e0 bne.n 8001d3c <_free_r+0x24>
5081 8001d7a: 6818 ldr r0, [r3, #0]
5082 8001d7c: 685b ldr r3, [r3, #4]
5083 8001d7e: 1841 adds r1, r0, r1
5084 8001d80: 6011 str r1, [r2, #0]
5085 8001d82: 6053 str r3, [r2, #4]
5086 8001d84: e7da b.n 8001d3c <_free_r+0x24>
5087 8001d86: 42a0 cmp r0, r4
5088 8001d88: d902 bls.n 8001d90 <_free_r+0x78>
5089 8001d8a: 230c movs r3, #12
5090 8001d8c: 602b str r3, [r5, #0]
5091 8001d8e: e7d5 b.n 8001d3c <_free_r+0x24>
5092 8001d90: 6820 ldr r0, [r4, #0]
5093 8001d92: 1821 adds r1, r4, r0
5094 8001d94: 428b cmp r3, r1
5095 8001d96: d103 bne.n 8001da0 <_free_r+0x88>
5096 8001d98: 6819 ldr r1, [r3, #0]
5097 8001d9a: 685b ldr r3, [r3, #4]
5098 8001d9c: 1809 adds r1, r1, r0
5099 8001d9e: 6021 str r1, [r4, #0]
5100 8001da0: 6063 str r3, [r4, #4]
5101 8001da2: 6054 str r4, [r2, #4]
5102 8001da4: e7ca b.n 8001d3c <_free_r+0x24>
5103 8001da6: 46c0 nop @ (mov r8, r8)
5104 8001da8: 20000298 .word 0x20000298
5105
510608001dac <sbrk_aligned>:
5107 8001dac: b570 push {r4, r5, r6, lr}
5108 8001dae: 4e0f ldr r6, [pc, #60] @ (8001dec <sbrk_aligned+0x40>)
5109 8001db0: 000d movs r5, r1
5110 8001db2: 6831 ldr r1, [r6, #0]
5111 8001db4: 0004 movs r4, r0
5112 8001db6: 2900 cmp r1, #0
5113 8001db8: d102 bne.n 8001dc0 <sbrk_aligned+0x14>
5114 8001dba: f000 fcab bl 8002714 <_sbrk_r>
5115 8001dbe: 6030 str r0, [r6, #0]
5116 8001dc0: 0029 movs r1, r5
5117 8001dc2: 0020 movs r0, r4
5118 8001dc4: f000 fca6 bl 8002714 <_sbrk_r>
5119 8001dc8: 1c43 adds r3, r0, #1
5120 8001dca: d103 bne.n 8001dd4 <sbrk_aligned+0x28>
5121 8001dcc: 2501 movs r5, #1
5122 8001dce: 426d negs r5, r5
5123 8001dd0: 0028 movs r0, r5
5124 8001dd2: bd70 pop {r4, r5, r6, pc}
5125 8001dd4: 2303 movs r3, #3
5126 8001dd6: 1cc5 adds r5, r0, #3
5127 8001dd8: 439d bics r5, r3
5128 8001dda: 42a8 cmp r0, r5
5129 8001ddc: d0f8 beq.n 8001dd0 <sbrk_aligned+0x24>
5130 8001dde: 1a29 subs r1, r5, r0
5131 8001de0: 0020 movs r0, r4
5132 8001de2: f000 fc97 bl 8002714 <_sbrk_r>
5133 8001de6: 3001 adds r0, #1
5134 8001de8: d1f2 bne.n 8001dd0 <sbrk_aligned+0x24>
5135 8001dea: e7ef b.n 8001dcc <sbrk_aligned+0x20>
5136 8001dec: 20000294 .word 0x20000294
5137
513808001df0 <_malloc_r>:
5139 8001df0: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
5140 8001df2: 2203 movs r2, #3
5141 8001df4: 1ccb adds r3, r1, #3
5142 8001df6: 4393 bics r3, r2
5143 8001df8: 3308 adds r3, #8
5144 8001dfa: 0005 movs r5, r0
5145 8001dfc: 001f movs r7, r3
5146 8001dfe: 2b0c cmp r3, #12
5147 8001e00: d234 bcs.n 8001e6c <_malloc_r+0x7c>
5148 8001e02: 270c movs r7, #12
5149 8001e04: 42b9 cmp r1, r7
5150 8001e06: d833 bhi.n 8001e70 <_malloc_r+0x80>
5151 8001e08: 0028 movs r0, r5
5152 8001e0a: f000 f871 bl 8001ef0 <__malloc_lock>
5153 8001e0e: 4e37 ldr r6, [pc, #220] @ (8001eec <_malloc_r+0xfc>)
5154 8001e10: 6833 ldr r3, [r6, #0]
5155 8001e12: 001c movs r4, r3
5156 8001e14: 2c00 cmp r4, #0
5157 8001e16: d12f bne.n 8001e78 <_malloc_r+0x88>
5158 8001e18: 0039 movs r1, r7
5159 8001e1a: 0028 movs r0, r5
5160 8001e1c: f7ff ffc6 bl 8001dac <sbrk_aligned>
5161 8001e20: 0004 movs r4, r0
5162 8001e22: 1c43 adds r3, r0, #1
5163 8001e24: d15f bne.n 8001ee6 <_malloc_r+0xf6>
5164 8001e26: 6834 ldr r4, [r6, #0]
5165 8001e28: 9400 str r4, [sp, #0]
5166 8001e2a: 9b00 ldr r3, [sp, #0]
5167 8001e2c: 2b00 cmp r3, #0
5168 8001e2e: d14a bne.n 8001ec6 <_malloc_r+0xd6>
5169 8001e30: 2c00 cmp r4, #0
5170 8001e32: d052 beq.n 8001eda <_malloc_r+0xea>
5171 8001e34: 6823 ldr r3, [r4, #0]
5172 8001e36: 0028 movs r0, r5
5173 8001e38: 18e3 adds r3, r4, r3
5174 8001e3a: 9900 ldr r1, [sp, #0]
5175 8001e3c: 9301 str r3, [sp, #4]
5176 8001e3e: f000 fc69 bl 8002714 <_sbrk_r>
5177 8001e42: 9b01 ldr r3, [sp, #4]
5178 8001e44: 4283 cmp r3, r0
5179 8001e46: d148 bne.n 8001eda <_malloc_r+0xea>
5180 8001e48: 6823 ldr r3, [r4, #0]
5181 8001e4a: 0028 movs r0, r5
5182 8001e4c: 1aff subs r7, r7, r3
5183 8001e4e: 0039 movs r1, r7
5184 8001e50: f7ff ffac bl 8001dac <sbrk_aligned>
5185 8001e54: 3001 adds r0, #1
5186 8001e56: d040 beq.n 8001eda <_malloc_r+0xea>
5187 8001e58: 6823 ldr r3, [r4, #0]
5188 8001e5a: 19db adds r3, r3, r7
5189 8001e5c: 6023 str r3, [r4, #0]
5190 8001e5e: 6833 ldr r3, [r6, #0]
5191 8001e60: 685a ldr r2, [r3, #4]
5192 8001e62: 2a00 cmp r2, #0
5193 8001e64: d133 bne.n 8001ece <_malloc_r+0xde>
5194 8001e66: 9b00 ldr r3, [sp, #0]
5195 8001e68: 6033 str r3, [r6, #0]
5196 8001e6a: e019 b.n 8001ea0 <_malloc_r+0xb0>
5197 8001e6c: 2b00 cmp r3, #0
5198 8001e6e: dac9 bge.n 8001e04 <_malloc_r+0x14>
5199 8001e70: 230c movs r3, #12
5200 8001e72: 602b str r3, [r5, #0]
5201 8001e74: 2000 movs r0, #0
5202 8001e76: bdfe pop {r1, r2, r3, r4, r5, r6, r7, pc}
5203 8001e78: 6821 ldr r1, [r4, #0]
5204 8001e7a: 1bc9 subs r1, r1, r7
5205 8001e7c: d420 bmi.n 8001ec0 <_malloc_r+0xd0>
5206 8001e7e: 290b cmp r1, #11
5207 8001e80: d90a bls.n 8001e98 <_malloc_r+0xa8>
5208 8001e82: 19e2 adds r2, r4, r7
5209 8001e84: 6027 str r7, [r4, #0]
5210 8001e86: 42a3 cmp r3, r4
5211 8001e88: d104 bne.n 8001e94 <_malloc_r+0xa4>
5212 8001e8a: 6032 str r2, [r6, #0]
5213 8001e8c: 6863 ldr r3, [r4, #4]
5214 8001e8e: 6011 str r1, [r2, #0]
5215 8001e90: 6053 str r3, [r2, #4]
5216 8001e92: e005 b.n 8001ea0 <_malloc_r+0xb0>
5217 8001e94: 605a str r2, [r3, #4]
5218 8001e96: e7f9 b.n 8001e8c <_malloc_r+0x9c>
5219 8001e98: 6862 ldr r2, [r4, #4]
5220 8001e9a: 42a3 cmp r3, r4
5221 8001e9c: d10e bne.n 8001ebc <_malloc_r+0xcc>
5222 8001e9e: 6032 str r2, [r6, #0]
5223 8001ea0: 0028 movs r0, r5
5224 8001ea2: f000 f82d bl 8001f00 <__malloc_unlock>
5225 8001ea6: 0020 movs r0, r4
5226 8001ea8: 2207 movs r2, #7
5227 8001eaa: 300b adds r0, #11
5228 8001eac: 1d23 adds r3, r4, #4
5229 8001eae: 4390 bics r0, r2
5230 8001eb0: 1ac2 subs r2, r0, r3
5231 8001eb2: 4298 cmp r0, r3
5232 8001eb4: d0df beq.n 8001e76 <_malloc_r+0x86>
5233 8001eb6: 1a1b subs r3, r3, r0
5234 8001eb8: 50a3 str r3, [r4, r2]
5235 8001eba: e7dc b.n 8001e76 <_malloc_r+0x86>
5236 8001ebc: 605a str r2, [r3, #4]
5237 8001ebe: e7ef b.n 8001ea0 <_malloc_r+0xb0>
5238 8001ec0: 0023 movs r3, r4
5239 8001ec2: 6864 ldr r4, [r4, #4]
5240 8001ec4: e7a6 b.n 8001e14 <_malloc_r+0x24>
5241 8001ec6: 9c00 ldr r4, [sp, #0]
5242 8001ec8: 6863 ldr r3, [r4, #4]
5243 8001eca: 9300 str r3, [sp, #0]
5244 8001ecc: e7ad b.n 8001e2a <_malloc_r+0x3a>
5245 8001ece: 001a movs r2, r3
5246 8001ed0: 685b ldr r3, [r3, #4]
5247 8001ed2: 42a3 cmp r3, r4
5248 8001ed4: d1fb bne.n 8001ece <_malloc_r+0xde>
5249 8001ed6: 2300 movs r3, #0
5250 8001ed8: e7da b.n 8001e90 <_malloc_r+0xa0>
5251 8001eda: 230c movs r3, #12
5252 8001edc: 0028 movs r0, r5
5253 8001ede: 602b str r3, [r5, #0]
5254 8001ee0: f000 f80e bl 8001f00 <__malloc_unlock>
5255 8001ee4: e7c6 b.n 8001e74 <_malloc_r+0x84>
5256 8001ee6: 6007 str r7, [r0, #0]
5257 8001ee8: e7da b.n 8001ea0 <_malloc_r+0xb0>
5258 8001eea: 46c0 nop @ (mov r8, r8)
5259 8001eec: 20000298 .word 0x20000298
5260
526108001ef0 <__malloc_lock>:
5262 8001ef0: b510 push {r4, lr}
5263 8001ef2: 4802 ldr r0, [pc, #8] @ (8001efc <__malloc_lock+0xc>)
5264 8001ef4: f7ff ff0d bl 8001d12 <__retarget_lock_acquire_recursive>
5265 8001ef8: bd10 pop {r4, pc}
5266 8001efa: 46c0 nop @ (mov r8, r8)
5267 8001efc: 20000290 .word 0x20000290
5268
526908001f00 <__malloc_unlock>:
5270 8001f00: b510 push {r4, lr}
5271 8001f02: 4802 ldr r0, [pc, #8] @ (8001f0c <__malloc_unlock+0xc>)
5272 8001f04: f7ff ff06 bl 8001d14 <__retarget_lock_release_recursive>
5273 8001f08: bd10 pop {r4, pc}
5274 8001f0a: 46c0 nop @ (mov r8, r8)
5275 8001f0c: 20000290 .word 0x20000290
5276
527708001f10 <__sfputc_r>:
5278 8001f10: 6893 ldr r3, [r2, #8]
5279 8001f12: b510 push {r4, lr}
5280 8001f14: 3b01 subs r3, #1
5281 8001f16: 6093 str r3, [r2, #8]
5282 8001f18: 2b00 cmp r3, #0
5283 8001f1a: da04 bge.n 8001f26 <__sfputc_r+0x16>
5284 8001f1c: 6994 ldr r4, [r2, #24]
5285 8001f1e: 42a3 cmp r3, r4
5286 8001f20: db07 blt.n 8001f32 <__sfputc_r+0x22>
5287 8001f22: 290a cmp r1, #10
5288 8001f24: d005 beq.n 8001f32 <__sfputc_r+0x22>
5289 8001f26: 6813 ldr r3, [r2, #0]
5290 8001f28: 1c58 adds r0, r3, #1
5291 8001f2a: 6010 str r0, [r2, #0]
5292 8001f2c: 7019 strb r1, [r3, #0]
5293 8001f2e: 0008 movs r0, r1
5294 8001f30: bd10 pop {r4, pc}
5295 8001f32: f7ff fdcd bl 8001ad0 <__swbuf_r>
5296 8001f36: 0001 movs r1, r0
5297 8001f38: e7f9 b.n 8001f2e <__sfputc_r+0x1e>
5298
529908001f3a <__sfputs_r>:
5300 8001f3a: b5f8 push {r3, r4, r5, r6, r7, lr}
5301 8001f3c: 0006 movs r6, r0
5302 8001f3e: 000f movs r7, r1
5303 8001f40: 0014 movs r4, r2
5304 8001f42: 18d5 adds r5, r2, r3
5305 8001f44: 42ac cmp r4, r5
5306 8001f46: d101 bne.n 8001f4c <__sfputs_r+0x12>
5307 8001f48: 2000 movs r0, #0
5308 8001f4a: e007 b.n 8001f5c <__sfputs_r+0x22>
5309 8001f4c: 7821 ldrb r1, [r4, #0]
5310 8001f4e: 003a movs r2, r7
5311 8001f50: 0030 movs r0, r6
5312 8001f52: f7ff ffdd bl 8001f10 <__sfputc_r>
5313 8001f56: 3401 adds r4, #1
5314 8001f58: 1c43 adds r3, r0, #1
5315 8001f5a: d1f3 bne.n 8001f44 <__sfputs_r+0xa>
5316 8001f5c: bdf8 pop {r3, r4, r5, r6, r7, pc}
5317 ...
5318
531908001f60 <_vfiprintf_r>:
5320 8001f60: b5f0 push {r4, r5, r6, r7, lr}
5321 8001f62: b0a1 sub sp, #132 @ 0x84
5322 8001f64: 000f movs r7, r1
5323 8001f66: 0015 movs r5, r2
5324 8001f68: 001e movs r6, r3
5325 8001f6a: 9003 str r0, [sp, #12]
5326 8001f6c: 2800 cmp r0, #0
5327 8001f6e: d004 beq.n 8001f7a <_vfiprintf_r+0x1a>
5328 8001f70: 6a03 ldr r3, [r0, #32]
5329 8001f72: 2b00 cmp r3, #0
5330 8001f74: d101 bne.n 8001f7a <_vfiprintf_r+0x1a>
5331 8001f76: f7ff fcbb bl 80018f0 <__sinit>
5332 8001f7a: 6e7b ldr r3, [r7, #100] @ 0x64
5333 8001f7c: 07db lsls r3, r3, #31
5334 8001f7e: d405 bmi.n 8001f8c <_vfiprintf_r+0x2c>
5335 8001f80: 89bb ldrh r3, [r7, #12]
5336 8001f82: 059b lsls r3, r3, #22
5337 8001f84: d402 bmi.n 8001f8c <_vfiprintf_r+0x2c>
5338 8001f86: 6db8 ldr r0, [r7, #88] @ 0x58
5339 8001f88: f7ff fec3 bl 8001d12 <__retarget_lock_acquire_recursive>
5340 8001f8c: 89bb ldrh r3, [r7, #12]
5341 8001f8e: 071b lsls r3, r3, #28
5342 8001f90: d502 bpl.n 8001f98 <_vfiprintf_r+0x38>
5343 8001f92: 693b ldr r3, [r7, #16]
5344 8001f94: 2b00 cmp r3, #0
5345 8001f96: d113 bne.n 8001fc0 <_vfiprintf_r+0x60>
5346 8001f98: 0039 movs r1, r7
5347 8001f9a: 9803 ldr r0, [sp, #12]
5348 8001f9c: f7ff fdda bl 8001b54 <__swsetup_r>
5349 8001fa0: 2800 cmp r0, #0
5350 8001fa2: d00d beq.n 8001fc0 <_vfiprintf_r+0x60>
5351 8001fa4: 6e7b ldr r3, [r7, #100] @ 0x64
5352 8001fa6: 07db lsls r3, r3, #31
5353 8001fa8: d503 bpl.n 8001fb2 <_vfiprintf_r+0x52>
5354 8001faa: 2001 movs r0, #1
5355 8001fac: 4240 negs r0, r0
5356 8001fae: b021 add sp, #132 @ 0x84
5357 8001fb0: bdf0 pop {r4, r5, r6, r7, pc}
5358 8001fb2: 89bb ldrh r3, [r7, #12]
5359 8001fb4: 059b lsls r3, r3, #22
5360 8001fb6: d4f8 bmi.n 8001faa <_vfiprintf_r+0x4a>
5361 8001fb8: 6db8 ldr r0, [r7, #88] @ 0x58
5362 8001fba: f7ff feab bl 8001d14 <__retarget_lock_release_recursive>
5363 8001fbe: e7f4 b.n 8001faa <_vfiprintf_r+0x4a>
5364 8001fc0: 2300 movs r3, #0
5365 8001fc2: ac08 add r4, sp, #32
5366 8001fc4: 6163 str r3, [r4, #20]
5367 8001fc6: 3320 adds r3, #32
5368 8001fc8: 7663 strb r3, [r4, #25]
5369 8001fca: 3310 adds r3, #16
5370 8001fcc: 76a3 strb r3, [r4, #26]
5371 8001fce: 9607 str r6, [sp, #28]
5372 8001fd0: 002e movs r6, r5
5373 8001fd2: 7833 ldrb r3, [r6, #0]
5374 8001fd4: 2b00 cmp r3, #0
5375 8001fd6: d001 beq.n 8001fdc <_vfiprintf_r+0x7c>
5376 8001fd8: 2b25 cmp r3, #37 @ 0x25
5377 8001fda: d148 bne.n 800206e <_vfiprintf_r+0x10e>
5378 8001fdc: 1b73 subs r3, r6, r5
5379 8001fde: 9305 str r3, [sp, #20]
5380 8001fe0: 42ae cmp r6, r5
5381 8001fe2: d00b beq.n 8001ffc <_vfiprintf_r+0x9c>
5382 8001fe4: 002a movs r2, r5
5383 8001fe6: 0039 movs r1, r7
5384 8001fe8: 9803 ldr r0, [sp, #12]
5385 8001fea: f7ff ffa6 bl 8001f3a <__sfputs_r>
5386 8001fee: 3001 adds r0, #1
5387 8001ff0: d100 bne.n 8001ff4 <_vfiprintf_r+0x94>
5388 8001ff2: e0ae b.n 8002152 <_vfiprintf_r+0x1f2>
5389 8001ff4: 6963 ldr r3, [r4, #20]
5390 8001ff6: 9a05 ldr r2, [sp, #20]
5391 8001ff8: 189b adds r3, r3, r2
5392 8001ffa: 6163 str r3, [r4, #20]
5393 8001ffc: 7833 ldrb r3, [r6, #0]
5394 8001ffe: 2b00 cmp r3, #0
5395 8002000: d100 bne.n 8002004 <_vfiprintf_r+0xa4>
5396 8002002: e0a6 b.n 8002152 <_vfiprintf_r+0x1f2>
5397 8002004: 2201 movs r2, #1
5398 8002006: 2300 movs r3, #0
5399 8002008: 4252 negs r2, r2
5400 800200a: 6062 str r2, [r4, #4]
5401 800200c: a904 add r1, sp, #16
5402 800200e: 3254 adds r2, #84 @ 0x54
5403 8002010: 1852 adds r2, r2, r1
5404 8002012: 1c75 adds r5, r6, #1
5405 8002014: 6023 str r3, [r4, #0]
5406 8002016: 60e3 str r3, [r4, #12]
5407 8002018: 60a3 str r3, [r4, #8]
5408 800201a: 7013 strb r3, [r2, #0]
5409 800201c: 65a3 str r3, [r4, #88] @ 0x58
5410 800201e: 4b59 ldr r3, [pc, #356] @ (8002184 <_vfiprintf_r+0x224>)
5411 8002020: 2205 movs r2, #5
5412 8002022: 0018 movs r0, r3
5413 8002024: 7829 ldrb r1, [r5, #0]
5414 8002026: 9305 str r3, [sp, #20]
5415 8002028: f000 fb86 bl 8002738 <memchr>
5416 800202c: 1c6e adds r6, r5, #1
5417 800202e: 2800 cmp r0, #0
5418 8002030: d11f bne.n 8002072 <_vfiprintf_r+0x112>
5419 8002032: 6822 ldr r2, [r4, #0]
5420 8002034: 06d3 lsls r3, r2, #27
5421 8002036: d504 bpl.n 8002042 <_vfiprintf_r+0xe2>
5422 8002038: 2353 movs r3, #83 @ 0x53
5423 800203a: a904 add r1, sp, #16
5424 800203c: 185b adds r3, r3, r1
5425 800203e: 2120 movs r1, #32
5426 8002040: 7019 strb r1, [r3, #0]
5427 8002042: 0713 lsls r3, r2, #28
5428 8002044: d504 bpl.n 8002050 <_vfiprintf_r+0xf0>
5429 8002046: 2353 movs r3, #83 @ 0x53
5430 8002048: a904 add r1, sp, #16
5431 800204a: 185b adds r3, r3, r1
5432 800204c: 212b movs r1, #43 @ 0x2b
5433 800204e: 7019 strb r1, [r3, #0]
5434 8002050: 782b ldrb r3, [r5, #0]
5435 8002052: 2b2a cmp r3, #42 @ 0x2a
5436 8002054: d016 beq.n 8002084 <_vfiprintf_r+0x124>
5437 8002056: 002e movs r6, r5
5438 8002058: 2100 movs r1, #0
5439 800205a: 200a movs r0, #10
5440 800205c: 68e3 ldr r3, [r4, #12]
5441 800205e: 7832 ldrb r2, [r6, #0]
5442 8002060: 1c75 adds r5, r6, #1
5443 8002062: 3a30 subs r2, #48 @ 0x30
5444 8002064: 2a09 cmp r2, #9
5445 8002066: d950 bls.n 800210a <_vfiprintf_r+0x1aa>
5446 8002068: 2900 cmp r1, #0
5447 800206a: d111 bne.n 8002090 <_vfiprintf_r+0x130>
5448 800206c: e017 b.n 800209e <_vfiprintf_r+0x13e>
5449 800206e: 3601 adds r6, #1
5450 8002070: e7af b.n 8001fd2 <_vfiprintf_r+0x72>
5451 8002072: 9b05 ldr r3, [sp, #20]
5452 8002074: 6822 ldr r2, [r4, #0]
5453 8002076: 1ac0 subs r0, r0, r3
5454 8002078: 2301 movs r3, #1
5455 800207a: 4083 lsls r3, r0
5456 800207c: 4313 orrs r3, r2
5457 800207e: 0035 movs r5, r6
5458 8002080: 6023 str r3, [r4, #0]
5459 8002082: e7cc b.n 800201e <_vfiprintf_r+0xbe>
5460 8002084: 9b07 ldr r3, [sp, #28]
5461 8002086: 1d19 adds r1, r3, #4
5462 8002088: 681b ldr r3, [r3, #0]
5463 800208a: 9107 str r1, [sp, #28]
5464 800208c: 2b00 cmp r3, #0
5465 800208e: db01 blt.n 8002094 <_vfiprintf_r+0x134>
5466 8002090: 930b str r3, [sp, #44] @ 0x2c
5467 8002092: e004 b.n 800209e <_vfiprintf_r+0x13e>
5468 8002094: 425b negs r3, r3
5469 8002096: 60e3 str r3, [r4, #12]
5470 8002098: 2302 movs r3, #2
5471 800209a: 4313 orrs r3, r2
5472 800209c: 6023 str r3, [r4, #0]
5473 800209e: 7833 ldrb r3, [r6, #0]
5474 80020a0: 2b2e cmp r3, #46 @ 0x2e
5475 80020a2: d10c bne.n 80020be <_vfiprintf_r+0x15e>
5476 80020a4: 7873 ldrb r3, [r6, #1]
5477 80020a6: 2b2a cmp r3, #42 @ 0x2a
5478 80020a8: d134 bne.n 8002114 <_vfiprintf_r+0x1b4>
5479 80020aa: 9b07 ldr r3, [sp, #28]
5480 80020ac: 3602 adds r6, #2
5481 80020ae: 1d1a adds r2, r3, #4
5482 80020b0: 681b ldr r3, [r3, #0]
5483 80020b2: 9207 str r2, [sp, #28]
5484 80020b4: 2b00 cmp r3, #0
5485 80020b6: da01 bge.n 80020bc <_vfiprintf_r+0x15c>
5486 80020b8: 2301 movs r3, #1
5487 80020ba: 425b negs r3, r3
5488 80020bc: 9309 str r3, [sp, #36] @ 0x24
5489 80020be: 4d32 ldr r5, [pc, #200] @ (8002188 <_vfiprintf_r+0x228>)
5490 80020c0: 2203 movs r2, #3
5491 80020c2: 0028 movs r0, r5
5492 80020c4: 7831 ldrb r1, [r6, #0]
5493 80020c6: f000 fb37 bl 8002738 <memchr>
5494 80020ca: 2800 cmp r0, #0
5495 80020cc: d006 beq.n 80020dc <_vfiprintf_r+0x17c>
5496 80020ce: 2340 movs r3, #64 @ 0x40
5497 80020d0: 1b40 subs r0, r0, r5
5498 80020d2: 4083 lsls r3, r0
5499 80020d4: 6822 ldr r2, [r4, #0]
5500 80020d6: 3601 adds r6, #1
5501 80020d8: 4313 orrs r3, r2
5502 80020da: 6023 str r3, [r4, #0]
5503 80020dc: 7831 ldrb r1, [r6, #0]
5504 80020de: 2206 movs r2, #6
5505 80020e0: 482a ldr r0, [pc, #168] @ (800218c <_vfiprintf_r+0x22c>)
5506 80020e2: 1c75 adds r5, r6, #1
5507 80020e4: 7621 strb r1, [r4, #24]
5508 80020e6: f000 fb27 bl 8002738 <memchr>
5509 80020ea: 2800 cmp r0, #0
5510 80020ec: d040 beq.n 8002170 <_vfiprintf_r+0x210>
5511 80020ee: 4b28 ldr r3, [pc, #160] @ (8002190 <_vfiprintf_r+0x230>)
5512 80020f0: 2b00 cmp r3, #0
5513 80020f2: d122 bne.n 800213a <_vfiprintf_r+0x1da>
5514 80020f4: 2207 movs r2, #7
5515 80020f6: 9b07 ldr r3, [sp, #28]
5516 80020f8: 3307 adds r3, #7
5517 80020fa: 4393 bics r3, r2
5518 80020fc: 3308 adds r3, #8
5519 80020fe: 9307 str r3, [sp, #28]
5520 8002100: 6963 ldr r3, [r4, #20]
5521 8002102: 9a04 ldr r2, [sp, #16]
5522 8002104: 189b adds r3, r3, r2
5523 8002106: 6163 str r3, [r4, #20]
5524 8002108: e762 b.n 8001fd0 <_vfiprintf_r+0x70>
5525 800210a: 4343 muls r3, r0
5526 800210c: 002e movs r6, r5
5527 800210e: 2101 movs r1, #1
5528 8002110: 189b adds r3, r3, r2
5529 8002112: e7a4 b.n 800205e <_vfiprintf_r+0xfe>
5530 8002114: 2300 movs r3, #0
5531 8002116: 200a movs r0, #10
5532 8002118: 0019 movs r1, r3
5533 800211a: 3601 adds r6, #1
5534 800211c: 6063 str r3, [r4, #4]
5535 800211e: 7832 ldrb r2, [r6, #0]
5536 8002120: 1c75 adds r5, r6, #1
5537 8002122: 3a30 subs r2, #48 @ 0x30
5538 8002124: 2a09 cmp r2, #9
5539 8002126: d903 bls.n 8002130 <_vfiprintf_r+0x1d0>
5540 8002128: 2b00 cmp r3, #0
5541 800212a: d0c8 beq.n 80020be <_vfiprintf_r+0x15e>
5542 800212c: 9109 str r1, [sp, #36] @ 0x24
5543 800212e: e7c6 b.n 80020be <_vfiprintf_r+0x15e>
5544 8002130: 4341 muls r1, r0
5545 8002132: 002e movs r6, r5
5546 8002134: 2301 movs r3, #1
5547 8002136: 1889 adds r1, r1, r2
5548 8002138: e7f1 b.n 800211e <_vfiprintf_r+0x1be>
5549 800213a: aa07 add r2, sp, #28
5550 800213c: 9200 str r2, [sp, #0]
5551 800213e: 0021 movs r1, r4
5552 8002140: 003a movs r2, r7
5553 8002142: 4b14 ldr r3, [pc, #80] @ (8002194 <_vfiprintf_r+0x234>)
5554 8002144: 9803 ldr r0, [sp, #12]
5555 8002146: e000 b.n 800214a <_vfiprintf_r+0x1ea>
5556 8002148: bf00 nop
5557 800214a: 9004 str r0, [sp, #16]
5558 800214c: 9b04 ldr r3, [sp, #16]
5559 800214e: 3301 adds r3, #1
5560 8002150: d1d6 bne.n 8002100 <_vfiprintf_r+0x1a0>
5561 8002152: 6e7b ldr r3, [r7, #100] @ 0x64
5562 8002154: 07db lsls r3, r3, #31
5563 8002156: d405 bmi.n 8002164 <_vfiprintf_r+0x204>
5564 8002158: 89bb ldrh r3, [r7, #12]
5565 800215a: 059b lsls r3, r3, #22
5566 800215c: d402 bmi.n 8002164 <_vfiprintf_r+0x204>
5567 800215e: 6db8 ldr r0, [r7, #88] @ 0x58
5568 8002160: f7ff fdd8 bl 8001d14 <__retarget_lock_release_recursive>
5569 8002164: 89bb ldrh r3, [r7, #12]
5570 8002166: 065b lsls r3, r3, #25
5571 8002168: d500 bpl.n 800216c <_vfiprintf_r+0x20c>
5572 800216a: e71e b.n 8001faa <_vfiprintf_r+0x4a>
5573 800216c: 980d ldr r0, [sp, #52] @ 0x34
5574 800216e: e71e b.n 8001fae <_vfiprintf_r+0x4e>
5575 8002170: aa07 add r2, sp, #28
5576 8002172: 9200 str r2, [sp, #0]
5577 8002174: 0021 movs r1, r4
5578 8002176: 003a movs r2, r7
5579 8002178: 4b06 ldr r3, [pc, #24] @ (8002194 <_vfiprintf_r+0x234>)
5580 800217a: 9803 ldr r0, [sp, #12]
5581 800217c: f000 f87c bl 8002278 <_printf_i>
5582 8002180: e7e3 b.n 800214a <_vfiprintf_r+0x1ea>
5583 8002182: 46c0 nop @ (mov r8, r8)
5584 8002184: 08002979 .word 0x08002979
5585 8002188: 0800297f .word 0x0800297f
5586 800218c: 08002983 .word 0x08002983
5587 8002190: 00000000 .word 0x00000000
5588 8002194: 08001f3b .word 0x08001f3b
5589
559008002198 <_printf_common>:
5591 8002198: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
5592 800219a: 0016 movs r6, r2
5593 800219c: 9301 str r3, [sp, #4]
5594 800219e: 688a ldr r2, [r1, #8]
5595 80021a0: 690b ldr r3, [r1, #16]
5596 80021a2: 000c movs r4, r1
5597 80021a4: 9000 str r0, [sp, #0]
5598 80021a6: 4293 cmp r3, r2
5599 80021a8: da00 bge.n 80021ac <_printf_common+0x14>
5600 80021aa: 0013 movs r3, r2
5601 80021ac: 0022 movs r2, r4
5602 80021ae: 6033 str r3, [r6, #0]
5603 80021b0: 3243 adds r2, #67 @ 0x43
5604 80021b2: 7812 ldrb r2, [r2, #0]
5605 80021b4: 2a00 cmp r2, #0
5606 80021b6: d001 beq.n 80021bc <_printf_common+0x24>
5607 80021b8: 3301 adds r3, #1
5608 80021ba: 6033 str r3, [r6, #0]
5609 80021bc: 6823 ldr r3, [r4, #0]
5610 80021be: 069b lsls r3, r3, #26
5611 80021c0: d502 bpl.n 80021c8 <_printf_common+0x30>
5612 80021c2: 6833 ldr r3, [r6, #0]
5613 80021c4: 3302 adds r3, #2
5614 80021c6: 6033 str r3, [r6, #0]
5615 80021c8: 6822 ldr r2, [r4, #0]
5616 80021ca: 2306 movs r3, #6
5617 80021cc: 0015 movs r5, r2
5618 80021ce: 401d ands r5, r3
5619 80021d0: 421a tst r2, r3
5620 80021d2: d027 beq.n 8002224 <_printf_common+0x8c>
5621 80021d4: 0023 movs r3, r4
5622 80021d6: 3343 adds r3, #67 @ 0x43
5623 80021d8: 781b ldrb r3, [r3, #0]
5624 80021da: 1e5a subs r2, r3, #1
5625 80021dc: 4193 sbcs r3, r2
5626 80021de: 6822 ldr r2, [r4, #0]
5627 80021e0: 0692 lsls r2, r2, #26
5628 80021e2: d430 bmi.n 8002246 <_printf_common+0xae>
5629 80021e4: 0022 movs r2, r4
5630 80021e6: 9901 ldr r1, [sp, #4]
5631 80021e8: 9800 ldr r0, [sp, #0]
5632 80021ea: 9d08 ldr r5, [sp, #32]
5633 80021ec: 3243 adds r2, #67 @ 0x43
5634 80021ee: 47a8 blx r5
5635 80021f0: 3001 adds r0, #1
5636 80021f2: d025 beq.n 8002240 <_printf_common+0xa8>
5637 80021f4: 2206 movs r2, #6
5638 80021f6: 6823 ldr r3, [r4, #0]
5639 80021f8: 2500 movs r5, #0
5640 80021fa: 4013 ands r3, r2
5641 80021fc: 2b04 cmp r3, #4
5642 80021fe: d105 bne.n 800220c <_printf_common+0x74>
5643 8002200: 6833 ldr r3, [r6, #0]
5644 8002202: 68e5 ldr r5, [r4, #12]
5645 8002204: 1aed subs r5, r5, r3
5646 8002206: 43eb mvns r3, r5
5647 8002208: 17db asrs r3, r3, #31
5648 800220a: 401d ands r5, r3
5649 800220c: 68a3 ldr r3, [r4, #8]
5650 800220e: 6922 ldr r2, [r4, #16]
5651 8002210: 4293 cmp r3, r2
5652 8002212: dd01 ble.n 8002218 <_printf_common+0x80>
5653 8002214: 1a9b subs r3, r3, r2
5654 8002216: 18ed adds r5, r5, r3
5655 8002218: 2600 movs r6, #0
5656 800221a: 42b5 cmp r5, r6
5657 800221c: d120 bne.n 8002260 <_printf_common+0xc8>
5658 800221e: 2000 movs r0, #0
5659 8002220: e010 b.n 8002244 <_printf_common+0xac>
5660 8002222: 3501 adds r5, #1
5661 8002224: 68e3 ldr r3, [r4, #12]
5662 8002226: 6832 ldr r2, [r6, #0]
5663 8002228: 1a9b subs r3, r3, r2
5664 800222a: 42ab cmp r3, r5
5665 800222c: ddd2 ble.n 80021d4 <_printf_common+0x3c>
5666 800222e: 0022 movs r2, r4
5667 8002230: 2301 movs r3, #1
5668 8002232: 9901 ldr r1, [sp, #4]
5669 8002234: 9800 ldr r0, [sp, #0]
5670 8002236: 9f08 ldr r7, [sp, #32]
5671 8002238: 3219 adds r2, #25
5672 800223a: 47b8 blx r7
5673 800223c: 3001 adds r0, #1
5674 800223e: d1f0 bne.n 8002222 <_printf_common+0x8a>
5675 8002240: 2001 movs r0, #1
5676 8002242: 4240 negs r0, r0
5677 8002244: bdfe pop {r1, r2, r3, r4, r5, r6, r7, pc}
5678 8002246: 2030 movs r0, #48 @ 0x30
5679 8002248: 18e1 adds r1, r4, r3
5680 800224a: 3143 adds r1, #67 @ 0x43
5681 800224c: 7008 strb r0, [r1, #0]
5682 800224e: 0021 movs r1, r4
5683 8002250: 1c5a adds r2, r3, #1
5684 8002252: 3145 adds r1, #69 @ 0x45
5685 8002254: 7809 ldrb r1, [r1, #0]
5686 8002256: 18a2 adds r2, r4, r2
5687 8002258: 3243 adds r2, #67 @ 0x43
5688 800225a: 3302 adds r3, #2
5689 800225c: 7011 strb r1, [r2, #0]
5690 800225e: e7c1 b.n 80021e4 <_printf_common+0x4c>
5691 8002260: 0022 movs r2, r4
5692 8002262: 2301 movs r3, #1
5693 8002264: 9901 ldr r1, [sp, #4]
5694 8002266: 9800 ldr r0, [sp, #0]
5695 8002268: 9f08 ldr r7, [sp, #32]
5696 800226a: 321a adds r2, #26
5697 800226c: 47b8 blx r7
5698 800226e: 3001 adds r0, #1
5699 8002270: d0e6 beq.n 8002240 <_printf_common+0xa8>
5700 8002272: 3601 adds r6, #1
5701 8002274: e7d1 b.n 800221a <_printf_common+0x82>
5702 ...
5703
570408002278 <_printf_i>:
5705 8002278: b5f0 push {r4, r5, r6, r7, lr}
5706 800227a: b08b sub sp, #44 @ 0x2c
5707 800227c: 9206 str r2, [sp, #24]
5708 800227e: 000a movs r2, r1
5709 8002280: 3243 adds r2, #67 @ 0x43
5710 8002282: 9307 str r3, [sp, #28]
5711 8002284: 9005 str r0, [sp, #20]
5712 8002286: 9203 str r2, [sp, #12]
5713 8002288: 7e0a ldrb r2, [r1, #24]
5714 800228a: 000c movs r4, r1
5715 800228c: 9b10 ldr r3, [sp, #64] @ 0x40
5716 800228e: 2a78 cmp r2, #120 @ 0x78
5717 8002290: d809 bhi.n 80022a6 <_printf_i+0x2e>
5718 8002292: 2a62 cmp r2, #98 @ 0x62
5719 8002294: d80b bhi.n 80022ae <_printf_i+0x36>
5720 8002296: 2a00 cmp r2, #0
5721 8002298: d100 bne.n 800229c <_printf_i+0x24>
5722 800229a: e0ba b.n 8002412 <_printf_i+0x19a>
5723 800229c: 497a ldr r1, [pc, #488] @ (8002488 <_printf_i+0x210>)
5724 800229e: 9104 str r1, [sp, #16]
5725 80022a0: 2a58 cmp r2, #88 @ 0x58
5726 80022a2: d100 bne.n 80022a6 <_printf_i+0x2e>
5727 80022a4: e08e b.n 80023c4 <_printf_i+0x14c>
5728 80022a6: 0025 movs r5, r4
5729 80022a8: 3542 adds r5, #66 @ 0x42
5730 80022aa: 702a strb r2, [r5, #0]
5731 80022ac: e022 b.n 80022f4 <_printf_i+0x7c>
5732 80022ae: 0010 movs r0, r2
5733 80022b0: 3863 subs r0, #99 @ 0x63
5734 80022b2: 2815 cmp r0, #21
5735 80022b4: d8f7 bhi.n 80022a6 <_printf_i+0x2e>
5736 80022b6: f7fd ff27 bl 8000108 <__gnu_thumb1_case_shi>
5737 80022ba: 0016 .short 0x0016
5738 80022bc: fff6001f .word 0xfff6001f
5739 80022c0: fff6fff6 .word 0xfff6fff6
5740 80022c4: 001ffff6 .word 0x001ffff6
5741 80022c8: fff6fff6 .word 0xfff6fff6
5742 80022cc: fff6fff6 .word 0xfff6fff6
5743 80022d0: 0036009f .word 0x0036009f
5744 80022d4: fff6007e .word 0xfff6007e
5745 80022d8: 00b0fff6 .word 0x00b0fff6
5746 80022dc: 0036fff6 .word 0x0036fff6
5747 80022e0: fff6fff6 .word 0xfff6fff6
5748 80022e4: 0082 .short 0x0082
5749 80022e6: 0025 movs r5, r4
5750 80022e8: 681a ldr r2, [r3, #0]
5751 80022ea: 3542 adds r5, #66 @ 0x42
5752 80022ec: 1d11 adds r1, r2, #4
5753 80022ee: 6019 str r1, [r3, #0]
5754 80022f0: 6813 ldr r3, [r2, #0]
5755 80022f2: 702b strb r3, [r5, #0]
5756 80022f4: 2301 movs r3, #1
5757 80022f6: e09e b.n 8002436 <_printf_i+0x1be>
5758 80022f8: 6818 ldr r0, [r3, #0]
5759 80022fa: 6809 ldr r1, [r1, #0]
5760 80022fc: 1d02 adds r2, r0, #4
5761 80022fe: 060d lsls r5, r1, #24
5762 8002300: d50b bpl.n 800231a <_printf_i+0xa2>
5763 8002302: 6806 ldr r6, [r0, #0]
5764 8002304: 601a str r2, [r3, #0]
5765 8002306: 2e00 cmp r6, #0
5766 8002308: da03 bge.n 8002312 <_printf_i+0x9a>
5767 800230a: 232d movs r3, #45 @ 0x2d
5768 800230c: 9a03 ldr r2, [sp, #12]
5769 800230e: 4276 negs r6, r6
5770 8002310: 7013 strb r3, [r2, #0]
5771 8002312: 4b5d ldr r3, [pc, #372] @ (8002488 <_printf_i+0x210>)
5772 8002314: 270a movs r7, #10
5773 8002316: 9304 str r3, [sp, #16]
5774 8002318: e018 b.n 800234c <_printf_i+0xd4>
5775 800231a: 6806 ldr r6, [r0, #0]
5776 800231c: 601a str r2, [r3, #0]
5777 800231e: 0649 lsls r1, r1, #25
5778 8002320: d5f1 bpl.n 8002306 <_printf_i+0x8e>
5779 8002322: b236 sxth r6, r6
5780 8002324: e7ef b.n 8002306 <_printf_i+0x8e>
5781 8002326: 6808 ldr r0, [r1, #0]
5782 8002328: 6819 ldr r1, [r3, #0]
5783 800232a: c940 ldmia r1!, {r6}
5784 800232c: 0605 lsls r5, r0, #24
5785 800232e: d402 bmi.n 8002336 <_printf_i+0xbe>
5786 8002330: 0640 lsls r0, r0, #25
5787 8002332: d500 bpl.n 8002336 <_printf_i+0xbe>
5788 8002334: b2b6 uxth r6, r6
5789 8002336: 6019 str r1, [r3, #0]
5790 8002338: 4b53 ldr r3, [pc, #332] @ (8002488 <_printf_i+0x210>)
5791 800233a: 270a movs r7, #10
5792 800233c: 9304 str r3, [sp, #16]
5793 800233e: 2a6f cmp r2, #111 @ 0x6f
5794 8002340: d100 bne.n 8002344 <_printf_i+0xcc>
5795 8002342: 3f02 subs r7, #2
5796 8002344: 0023 movs r3, r4
5797 8002346: 2200 movs r2, #0
5798 8002348: 3343 adds r3, #67 @ 0x43
5799 800234a: 701a strb r2, [r3, #0]
5800 800234c: 6863 ldr r3, [r4, #4]
5801 800234e: 60a3 str r3, [r4, #8]
5802 8002350: 2b00 cmp r3, #0
5803 8002352: db06 blt.n 8002362 <_printf_i+0xea>
5804 8002354: 2104 movs r1, #4
5805 8002356: 6822 ldr r2, [r4, #0]
5806 8002358: 9d03 ldr r5, [sp, #12]
5807 800235a: 438a bics r2, r1
5808 800235c: 6022 str r2, [r4, #0]
5809 800235e: 4333 orrs r3, r6
5810 8002360: d00c beq.n 800237c <_printf_i+0x104>
5811 8002362: 9d03 ldr r5, [sp, #12]
5812 8002364: 0030 movs r0, r6
5813 8002366: 0039 movs r1, r7
5814 8002368: f7fd ff5e bl 8000228 <__aeabi_uidivmod>
5815 800236c: 9b04 ldr r3, [sp, #16]
5816 800236e: 3d01 subs r5, #1
5817 8002370: 5c5b ldrb r3, [r3, r1]
5818 8002372: 702b strb r3, [r5, #0]
5819 8002374: 0033 movs r3, r6
5820 8002376: 0006 movs r6, r0
5821 8002378: 429f cmp r7, r3
5822 800237a: d9f3 bls.n 8002364 <_printf_i+0xec>
5823 800237c: 2f08 cmp r7, #8
5824 800237e: d109 bne.n 8002394 <_printf_i+0x11c>
5825 8002380: 6823 ldr r3, [r4, #0]
5826 8002382: 07db lsls r3, r3, #31
5827 8002384: d506 bpl.n 8002394 <_printf_i+0x11c>
5828 8002386: 6862 ldr r2, [r4, #4]
5829 8002388: 6923 ldr r3, [r4, #16]
5830 800238a: 429a cmp r2, r3
5831 800238c: dc02 bgt.n 8002394 <_printf_i+0x11c>
5832 800238e: 2330 movs r3, #48 @ 0x30
5833 8002390: 3d01 subs r5, #1
5834 8002392: 702b strb r3, [r5, #0]
5835 8002394: 9b03 ldr r3, [sp, #12]
5836 8002396: 1b5b subs r3, r3, r5
5837 8002398: 6123 str r3, [r4, #16]
5838 800239a: 9b07 ldr r3, [sp, #28]
5839 800239c: 0021 movs r1, r4
5840 800239e: 9300 str r3, [sp, #0]
5841 80023a0: 9805 ldr r0, [sp, #20]
5842 80023a2: 9b06 ldr r3, [sp, #24]
5843 80023a4: aa09 add r2, sp, #36 @ 0x24
5844 80023a6: f7ff fef7 bl 8002198 <_printf_common>
5845 80023aa: 3001 adds r0, #1
5846 80023ac: d148 bne.n 8002440 <_printf_i+0x1c8>
5847 80023ae: 2001 movs r0, #1
5848 80023b0: 4240 negs r0, r0
5849 80023b2: b00b add sp, #44 @ 0x2c
5850 80023b4: bdf0 pop {r4, r5, r6, r7, pc}
5851 80023b6: 2220 movs r2, #32
5852 80023b8: 6809 ldr r1, [r1, #0]
5853 80023ba: 430a orrs r2, r1
5854 80023bc: 6022 str r2, [r4, #0]
5855 80023be: 2278 movs r2, #120 @ 0x78
5856 80023c0: 4932 ldr r1, [pc, #200] @ (800248c <_printf_i+0x214>)
5857 80023c2: 9104 str r1, [sp, #16]
5858 80023c4: 0021 movs r1, r4
5859 80023c6: 3145 adds r1, #69 @ 0x45
5860 80023c8: 700a strb r2, [r1, #0]
5861 80023ca: 6819 ldr r1, [r3, #0]
5862 80023cc: 6822 ldr r2, [r4, #0]
5863 80023ce: c940 ldmia r1!, {r6}
5864 80023d0: 0610 lsls r0, r2, #24
5865 80023d2: d402 bmi.n 80023da <_printf_i+0x162>
5866 80023d4: 0650 lsls r0, r2, #25
5867 80023d6: d500 bpl.n 80023da <_printf_i+0x162>
5868 80023d8: b2b6 uxth r6, r6
5869 80023da: 6019 str r1, [r3, #0]
5870 80023dc: 07d3 lsls r3, r2, #31
5871 80023de: d502 bpl.n 80023e6 <_printf_i+0x16e>
5872 80023e0: 2320 movs r3, #32
5873 80023e2: 4313 orrs r3, r2
5874 80023e4: 6023 str r3, [r4, #0]
5875 80023e6: 2e00 cmp r6, #0
5876 80023e8: d001 beq.n 80023ee <_printf_i+0x176>
5877 80023ea: 2710 movs r7, #16
5878 80023ec: e7aa b.n 8002344 <_printf_i+0xcc>
5879 80023ee: 2220 movs r2, #32
5880 80023f0: 6823 ldr r3, [r4, #0]
5881 80023f2: 4393 bics r3, r2
5882 80023f4: 6023 str r3, [r4, #0]
5883 80023f6: e7f8 b.n 80023ea <_printf_i+0x172>
5884 80023f8: 681a ldr r2, [r3, #0]
5885 80023fa: 680d ldr r5, [r1, #0]
5886 80023fc: 1d10 adds r0, r2, #4
5887 80023fe: 6949 ldr r1, [r1, #20]
5888 8002400: 6018 str r0, [r3, #0]
5889 8002402: 6813 ldr r3, [r2, #0]
5890 8002404: 062e lsls r6, r5, #24
5891 8002406: d501 bpl.n 800240c <_printf_i+0x194>
5892 8002408: 6019 str r1, [r3, #0]
5893 800240a: e002 b.n 8002412 <_printf_i+0x19a>
5894 800240c: 066d lsls r5, r5, #25
5895 800240e: d5fb bpl.n 8002408 <_printf_i+0x190>
5896 8002410: 8019 strh r1, [r3, #0]
5897 8002412: 2300 movs r3, #0
5898 8002414: 9d03 ldr r5, [sp, #12]
5899 8002416: 6123 str r3, [r4, #16]
5900 8002418: e7bf b.n 800239a <_printf_i+0x122>
5901 800241a: 681a ldr r2, [r3, #0]
5902 800241c: 1d11 adds r1, r2, #4
5903 800241e: 6019 str r1, [r3, #0]
5904 8002420: 6815 ldr r5, [r2, #0]
5905 8002422: 2100 movs r1, #0
5906 8002424: 0028 movs r0, r5
5907 8002426: 6862 ldr r2, [r4, #4]
5908 8002428: f000 f986 bl 8002738 <memchr>
5909 800242c: 2800 cmp r0, #0
5910 800242e: d001 beq.n 8002434 <_printf_i+0x1bc>
5911 8002430: 1b40 subs r0, r0, r5
5912 8002432: 6060 str r0, [r4, #4]
5913 8002434: 6863 ldr r3, [r4, #4]
5914 8002436: 6123 str r3, [r4, #16]
5915 8002438: 2300 movs r3, #0
5916 800243a: 9a03 ldr r2, [sp, #12]
5917 800243c: 7013 strb r3, [r2, #0]
5918 800243e: e7ac b.n 800239a <_printf_i+0x122>
5919 8002440: 002a movs r2, r5
5920 8002442: 6923 ldr r3, [r4, #16]
5921 8002444: 9906 ldr r1, [sp, #24]
5922 8002446: 9805 ldr r0, [sp, #20]
5923 8002448: 9d07 ldr r5, [sp, #28]
5924 800244a: 47a8 blx r5
5925 800244c: 3001 adds r0, #1
5926 800244e: d0ae beq.n 80023ae <_printf_i+0x136>
5927 8002450: 6823 ldr r3, [r4, #0]
5928 8002452: 079b lsls r3, r3, #30
5929 8002454: d415 bmi.n 8002482 <_printf_i+0x20a>
5930 8002456: 9b09 ldr r3, [sp, #36] @ 0x24
5931 8002458: 68e0 ldr r0, [r4, #12]
5932 800245a: 4298 cmp r0, r3
5933 800245c: daa9 bge.n 80023b2 <_printf_i+0x13a>
5934 800245e: 0018 movs r0, r3
5935 8002460: e7a7 b.n 80023b2 <_printf_i+0x13a>
5936 8002462: 0022 movs r2, r4
5937 8002464: 2301 movs r3, #1
5938 8002466: 9906 ldr r1, [sp, #24]
5939 8002468: 9805 ldr r0, [sp, #20]
5940 800246a: 9e07 ldr r6, [sp, #28]
5941 800246c: 3219 adds r2, #25
5942 800246e: 47b0 blx r6
5943 8002470: 3001 adds r0, #1
5944 8002472: d09c beq.n 80023ae <_printf_i+0x136>
5945 8002474: 3501 adds r5, #1
5946 8002476: 68e3 ldr r3, [r4, #12]
5947 8002478: 9a09 ldr r2, [sp, #36] @ 0x24
5948 800247a: 1a9b subs r3, r3, r2
5949 800247c: 42ab cmp r3, r5
5950 800247e: dcf0 bgt.n 8002462 <_printf_i+0x1ea>
5951 8002480: e7e9 b.n 8002456 <_printf_i+0x1de>
5952 8002482: 2500 movs r5, #0
5953 8002484: e7f7 b.n 8002476 <_printf_i+0x1fe>
5954 8002486: 46c0 nop @ (mov r8, r8)
5955 8002488: 0800298a .word 0x0800298a
5956 800248c: 0800299b .word 0x0800299b
5957
595808002490 <__sflush_r>:
5959 8002490: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
5960 8002492: 220c movs r2, #12
5961 8002494: 5e8b ldrsh r3, [r1, r2]
5962 8002496: 0005 movs r5, r0
5963 8002498: 000c movs r4, r1
5964 800249a: 071a lsls r2, r3, #28
5965 800249c: d456 bmi.n 800254c <__sflush_r+0xbc>
5966 800249e: 684a ldr r2, [r1, #4]
5967 80024a0: 2a00 cmp r2, #0
5968 80024a2: dc02 bgt.n 80024aa <__sflush_r+0x1a>
5969 80024a4: 6c0a ldr r2, [r1, #64] @ 0x40
5970 80024a6: 2a00 cmp r2, #0
5971 80024a8: dd4e ble.n 8002548 <__sflush_r+0xb8>
5972 80024aa: 6ae7 ldr r7, [r4, #44] @ 0x2c
5973 80024ac: 2f00 cmp r7, #0
5974 80024ae: d04b beq.n 8002548 <__sflush_r+0xb8>
5975 80024b0: 2200 movs r2, #0
5976 80024b2: 2080 movs r0, #128 @ 0x80
5977 80024b4: 682e ldr r6, [r5, #0]
5978 80024b6: 602a str r2, [r5, #0]
5979 80024b8: 001a movs r2, r3
5980 80024ba: 0140 lsls r0, r0, #5
5981 80024bc: 6a21 ldr r1, [r4, #32]
5982 80024be: 4002 ands r2, r0
5983 80024c0: 4203 tst r3, r0
5984 80024c2: d033 beq.n 800252c <__sflush_r+0x9c>
5985 80024c4: 6d62 ldr r2, [r4, #84] @ 0x54
5986 80024c6: 89a3 ldrh r3, [r4, #12]
5987 80024c8: 075b lsls r3, r3, #29
5988 80024ca: d506 bpl.n 80024da <__sflush_r+0x4a>
5989 80024cc: 6863 ldr r3, [r4, #4]
5990 80024ce: 1ad2 subs r2, r2, r3
5991 80024d0: 6b63 ldr r3, [r4, #52] @ 0x34
5992 80024d2: 2b00 cmp r3, #0
5993 80024d4: d001 beq.n 80024da <__sflush_r+0x4a>
5994 80024d6: 6c23 ldr r3, [r4, #64] @ 0x40
5995 80024d8: 1ad2 subs r2, r2, r3
5996 80024da: 2300 movs r3, #0
5997 80024dc: 0028 movs r0, r5
5998 80024de: 6ae7 ldr r7, [r4, #44] @ 0x2c
5999 80024e0: 6a21 ldr r1, [r4, #32]
6000 80024e2: 47b8 blx r7
6001 80024e4: 89a2 ldrh r2, [r4, #12]
6002 80024e6: 1c43 adds r3, r0, #1
6003 80024e8: d106 bne.n 80024f8 <__sflush_r+0x68>
6004 80024ea: 6829 ldr r1, [r5, #0]
6005 80024ec: 291d cmp r1, #29
6006 80024ee: d846 bhi.n 800257e <__sflush_r+0xee>
6007 80024f0: 4b29 ldr r3, [pc, #164] @ (8002598 <__sflush_r+0x108>)
6008 80024f2: 40cb lsrs r3, r1
6009 80024f4: 07db lsls r3, r3, #31
6010 80024f6: d542 bpl.n 800257e <__sflush_r+0xee>
6011 80024f8: 2300 movs r3, #0
6012 80024fa: 6063 str r3, [r4, #4]
6013 80024fc: 6923 ldr r3, [r4, #16]
6014 80024fe: 6023 str r3, [r4, #0]
6015 8002500: 04d2 lsls r2, r2, #19
6016 8002502: d505 bpl.n 8002510 <__sflush_r+0x80>
6017 8002504: 1c43 adds r3, r0, #1
6018 8002506: d102 bne.n 800250e <__sflush_r+0x7e>
6019 8002508: 682b ldr r3, [r5, #0]
6020 800250a: 2b00 cmp r3, #0
6021 800250c: d100 bne.n 8002510 <__sflush_r+0x80>
6022 800250e: 6560 str r0, [r4, #84] @ 0x54
6023 8002510: 6b61 ldr r1, [r4, #52] @ 0x34
6024 8002512: 602e str r6, [r5, #0]
6025 8002514: 2900 cmp r1, #0
6026 8002516: d017 beq.n 8002548 <__sflush_r+0xb8>
6027 8002518: 0023 movs r3, r4
6028 800251a: 3344 adds r3, #68 @ 0x44
6029 800251c: 4299 cmp r1, r3
6030 800251e: d002 beq.n 8002526 <__sflush_r+0x96>
6031 8002520: 0028 movs r0, r5
6032 8002522: f7ff fbf9 bl 8001d18 <_free_r>
6033 8002526: 2300 movs r3, #0
6034 8002528: 6363 str r3, [r4, #52] @ 0x34
6035 800252a: e00d b.n 8002548 <__sflush_r+0xb8>
6036 800252c: 2301 movs r3, #1
6037 800252e: 0028 movs r0, r5
6038 8002530: 47b8 blx r7
6039 8002532: 0002 movs r2, r0
6040 8002534: 1c43 adds r3, r0, #1
6041 8002536: d1c6 bne.n 80024c6 <__sflush_r+0x36>
6042 8002538: 682b ldr r3, [r5, #0]
6043 800253a: 2b00 cmp r3, #0
6044 800253c: d0c3 beq.n 80024c6 <__sflush_r+0x36>
6045 800253e: 2b1d cmp r3, #29
6046 8002540: d001 beq.n 8002546 <__sflush_r+0xb6>
6047 8002542: 2b16 cmp r3, #22
6048 8002544: d11a bne.n 800257c <__sflush_r+0xec>
6049 8002546: 602e str r6, [r5, #0]
6050 8002548: 2000 movs r0, #0
6051 800254a: e01e b.n 800258a <__sflush_r+0xfa>
6052 800254c: 690e ldr r6, [r1, #16]
6053 800254e: 2e00 cmp r6, #0
6054 8002550: d0fa beq.n 8002548 <__sflush_r+0xb8>
6055 8002552: 680f ldr r7, [r1, #0]
6056 8002554: 600e str r6, [r1, #0]
6057 8002556: 1bba subs r2, r7, r6
6058 8002558: 9201 str r2, [sp, #4]
6059 800255a: 2200 movs r2, #0
6060 800255c: 079b lsls r3, r3, #30
6061 800255e: d100 bne.n 8002562 <__sflush_r+0xd2>
6062 8002560: 694a ldr r2, [r1, #20]
6063 8002562: 60a2 str r2, [r4, #8]
6064 8002564: 9b01 ldr r3, [sp, #4]
6065 8002566: 2b00 cmp r3, #0
6066 8002568: ddee ble.n 8002548 <__sflush_r+0xb8>
6067 800256a: 6aa3 ldr r3, [r4, #40] @ 0x28
6068 800256c: 0032 movs r2, r6
6069 800256e: 001f movs r7, r3
6070 8002570: 0028 movs r0, r5
6071 8002572: 9b01 ldr r3, [sp, #4]
6072 8002574: 6a21 ldr r1, [r4, #32]
6073 8002576: 47b8 blx r7
6074 8002578: 2800 cmp r0, #0
6075 800257a: dc07 bgt.n 800258c <__sflush_r+0xfc>
6076 800257c: 89a2 ldrh r2, [r4, #12]
6077 800257e: 2340 movs r3, #64 @ 0x40
6078 8002580: 2001 movs r0, #1
6079 8002582: 4313 orrs r3, r2
6080 8002584: b21b sxth r3, r3
6081 8002586: 81a3 strh r3, [r4, #12]
6082 8002588: 4240 negs r0, r0
6083 800258a: bdfe pop {r1, r2, r3, r4, r5, r6, r7, pc}
6084 800258c: 9b01 ldr r3, [sp, #4]
6085 800258e: 1836 adds r6, r6, r0
6086 8002590: 1a1b subs r3, r3, r0
6087 8002592: 9301 str r3, [sp, #4]
6088 8002594: e7e6 b.n 8002564 <__sflush_r+0xd4>
6089 8002596: 46c0 nop @ (mov r8, r8)
6090 8002598: 20400001 .word 0x20400001
6091
60920800259c <_fflush_r>:
6093 800259c: 690b ldr r3, [r1, #16]
6094 800259e: b570 push {r4, r5, r6, lr}
6095 80025a0: 0005 movs r5, r0
6096 80025a2: 000c movs r4, r1
6097 80025a4: 2b00 cmp r3, #0
6098 80025a6: d102 bne.n 80025ae <_fflush_r+0x12>
6099 80025a8: 2500 movs r5, #0
6100 80025aa: 0028 movs r0, r5
6101 80025ac: bd70 pop {r4, r5, r6, pc}
6102 80025ae: 2800 cmp r0, #0
6103 80025b0: d004 beq.n 80025bc <_fflush_r+0x20>
6104 80025b2: 6a03 ldr r3, [r0, #32]
6105 80025b4: 2b00 cmp r3, #0
6106 80025b6: d101 bne.n 80025bc <_fflush_r+0x20>
6107 80025b8: f7ff f99a bl 80018f0 <__sinit>
6108 80025bc: 220c movs r2, #12
6109 80025be: 5ea3 ldrsh r3, [r4, r2]
6110 80025c0: 2b00 cmp r3, #0
6111 80025c2: d0f1 beq.n 80025a8 <_fflush_r+0xc>
6112 80025c4: 6e62 ldr r2, [r4, #100] @ 0x64
6113 80025c6: 07d2 lsls r2, r2, #31
6114 80025c8: d404 bmi.n 80025d4 <_fflush_r+0x38>
6115 80025ca: 059b lsls r3, r3, #22
6116 80025cc: d402 bmi.n 80025d4 <_fflush_r+0x38>
6117 80025ce: 6da0 ldr r0, [r4, #88] @ 0x58
6118 80025d0: f7ff fb9f bl 8001d12 <__retarget_lock_acquire_recursive>
6119 80025d4: 0028 movs r0, r5
6120 80025d6: 0021 movs r1, r4
6121 80025d8: f7ff ff5a bl 8002490 <__sflush_r>
6122 80025dc: 6e63 ldr r3, [r4, #100] @ 0x64
6123 80025de: 0005 movs r5, r0
6124 80025e0: 07db lsls r3, r3, #31
6125 80025e2: d4e2 bmi.n 80025aa <_fflush_r+0xe>
6126 80025e4: 89a3 ldrh r3, [r4, #12]
6127 80025e6: 059b lsls r3, r3, #22
6128 80025e8: d4df bmi.n 80025aa <_fflush_r+0xe>
6129 80025ea: 6da0 ldr r0, [r4, #88] @ 0x58
6130 80025ec: f7ff fb92 bl 8001d14 <__retarget_lock_release_recursive>
6131 80025f0: e7db b.n 80025aa <_fflush_r+0xe>
6132 ...
6133
6134080025f4 <__swhatbuf_r>:
6135 80025f4: b570 push {r4, r5, r6, lr}
6136 80025f6: 000e movs r6, r1
6137 80025f8: 001d movs r5, r3
6138 80025fa: 230e movs r3, #14
6139 80025fc: 5ec9 ldrsh r1, [r1, r3]
6140 80025fe: 0014 movs r4, r2
6141 8002600: b096 sub sp, #88 @ 0x58
6142 8002602: 2900 cmp r1, #0
6143 8002604: da0c bge.n 8002620 <__swhatbuf_r+0x2c>
6144 8002606: 89b2 ldrh r2, [r6, #12]
6145 8002608: 2380 movs r3, #128 @ 0x80
6146 800260a: 0011 movs r1, r2
6147 800260c: 4019 ands r1, r3
6148 800260e: 421a tst r2, r3
6149 8002610: d114 bne.n 800263c <__swhatbuf_r+0x48>
6150 8002612: 2380 movs r3, #128 @ 0x80
6151 8002614: 00db lsls r3, r3, #3
6152 8002616: 2000 movs r0, #0
6153 8002618: 6029 str r1, [r5, #0]
6154 800261a: 6023 str r3, [r4, #0]
6155 800261c: b016 add sp, #88 @ 0x58
6156 800261e: bd70 pop {r4, r5, r6, pc}
6157 8002620: 466a mov r2, sp
6158 8002622: f000 f853 bl 80026cc <_fstat_r>
6159 8002626: 2800 cmp r0, #0
6160 8002628: dbed blt.n 8002606 <__swhatbuf_r+0x12>
6161 800262a: 23f0 movs r3, #240 @ 0xf0
6162 800262c: 9901 ldr r1, [sp, #4]
6163 800262e: 021b lsls r3, r3, #8
6164 8002630: 4019 ands r1, r3
6165 8002632: 4b04 ldr r3, [pc, #16] @ (8002644 <__swhatbuf_r+0x50>)
6166 8002634: 18c9 adds r1, r1, r3
6167 8002636: 424b negs r3, r1
6168 8002638: 4159 adcs r1, r3
6169 800263a: e7ea b.n 8002612 <__swhatbuf_r+0x1e>
6170 800263c: 2100 movs r1, #0
6171 800263e: 2340 movs r3, #64 @ 0x40
6172 8002640: e7e9 b.n 8002616 <__swhatbuf_r+0x22>
6173 8002642: 46c0 nop @ (mov r8, r8)
6174 8002644: ffffe000 .word 0xffffe000
6175
617608002648 <__smakebuf_r>:
6177 8002648: b5f0 push {r4, r5, r6, r7, lr}
6178 800264a: 2602 movs r6, #2
6179 800264c: 898b ldrh r3, [r1, #12]
6180 800264e: 0005 movs r5, r0
6181 8002650: 000c movs r4, r1
6182 8002652: b085 sub sp, #20
6183 8002654: 4233 tst r3, r6
6184 8002656: d007 beq.n 8002668 <__smakebuf_r+0x20>
6185 8002658: 0023 movs r3, r4
6186 800265a: 3347 adds r3, #71 @ 0x47
6187 800265c: 6023 str r3, [r4, #0]
6188 800265e: 6123 str r3, [r4, #16]
6189 8002660: 2301 movs r3, #1
6190 8002662: 6163 str r3, [r4, #20]
6191 8002664: b005 add sp, #20
6192 8002666: bdf0 pop {r4, r5, r6, r7, pc}
6193 8002668: ab03 add r3, sp, #12
6194 800266a: aa02 add r2, sp, #8
6195 800266c: f7ff ffc2 bl 80025f4 <__swhatbuf_r>
6196 8002670: 9f02 ldr r7, [sp, #8]
6197 8002672: 9001 str r0, [sp, #4]
6198 8002674: 0039 movs r1, r7
6199 8002676: 0028 movs r0, r5
6200 8002678: f7ff fbba bl 8001df0 <_malloc_r>
6201 800267c: 2800 cmp r0, #0
6202 800267e: d108 bne.n 8002692 <__smakebuf_r+0x4a>
6203 8002680: 220c movs r2, #12
6204 8002682: 5ea3 ldrsh r3, [r4, r2]
6205 8002684: 059a lsls r2, r3, #22
6206 8002686: d4ed bmi.n 8002664 <__smakebuf_r+0x1c>
6207 8002688: 2203 movs r2, #3
6208 800268a: 4393 bics r3, r2
6209 800268c: 431e orrs r6, r3
6210 800268e: 81a6 strh r6, [r4, #12]
6211 8002690: e7e2 b.n 8002658 <__smakebuf_r+0x10>
6212 8002692: 2380 movs r3, #128 @ 0x80
6213 8002694: 89a2 ldrh r2, [r4, #12]
6214 8002696: 6020 str r0, [r4, #0]
6215 8002698: 4313 orrs r3, r2
6216 800269a: 81a3 strh r3, [r4, #12]
6217 800269c: 9b03 ldr r3, [sp, #12]
6218 800269e: 6120 str r0, [r4, #16]
6219 80026a0: 6167 str r7, [r4, #20]
6220 80026a2: 2b00 cmp r3, #0
6221 80026a4: d00c beq.n 80026c0 <__smakebuf_r+0x78>
6222 80026a6: 0028 movs r0, r5
6223 80026a8: 230e movs r3, #14
6224 80026aa: 5ee1 ldrsh r1, [r4, r3]
6225 80026ac: f000 f820 bl 80026f0 <_isatty_r>
6226 80026b0: 2800 cmp r0, #0
6227 80026b2: d005 beq.n 80026c0 <__smakebuf_r+0x78>
6228 80026b4: 2303 movs r3, #3
6229 80026b6: 89a2 ldrh r2, [r4, #12]
6230 80026b8: 439a bics r2, r3
6231 80026ba: 3b02 subs r3, #2
6232 80026bc: 4313 orrs r3, r2
6233 80026be: 81a3 strh r3, [r4, #12]
6234 80026c0: 89a3 ldrh r3, [r4, #12]
6235 80026c2: 9a01 ldr r2, [sp, #4]
6236 80026c4: 4313 orrs r3, r2
6237 80026c6: 81a3 strh r3, [r4, #12]
6238 80026c8: e7cc b.n 8002664 <__smakebuf_r+0x1c>
6239 ...
6240
6241080026cc <_fstat_r>:
6242 80026cc: 2300 movs r3, #0
6243 80026ce: b570 push {r4, r5, r6, lr}
6244 80026d0: 4d06 ldr r5, [pc, #24] @ (80026ec <_fstat_r+0x20>)
6245 80026d2: 0004 movs r4, r0
6246 80026d4: 0008 movs r0, r1
6247 80026d6: 0011 movs r1, r2
6248 80026d8: 602b str r3, [r5, #0]
6249 80026da: f7fd fdf2 bl 80002c2 <_fstat>
6250 80026de: 1c43 adds r3, r0, #1
6251 80026e0: d103 bne.n 80026ea <_fstat_r+0x1e>
6252 80026e2: 682b ldr r3, [r5, #0]
6253 80026e4: 2b00 cmp r3, #0
6254 80026e6: d000 beq.n 80026ea <_fstat_r+0x1e>
6255 80026e8: 6023 str r3, [r4, #0]
6256 80026ea: bd70 pop {r4, r5, r6, pc}
6257 80026ec: 2000028c .word 0x2000028c
6258
6259080026f0 <_isatty_r>:
6260 80026f0: 2300 movs r3, #0
6261 80026f2: b570 push {r4, r5, r6, lr}
6262 80026f4: 4d06 ldr r5, [pc, #24] @ (8002710 <_isatty_r+0x20>)
6263 80026f6: 0004 movs r4, r0
6264 80026f8: 0008 movs r0, r1
6265 80026fa: 602b str r3, [r5, #0]
6266 80026fc: f7fd fde6 bl 80002cc <_isatty>
6267 8002700: 1c43 adds r3, r0, #1
6268 8002702: d103 bne.n 800270c <_isatty_r+0x1c>
6269 8002704: 682b ldr r3, [r5, #0]
6270 8002706: 2b00 cmp r3, #0
6271 8002708: d000 beq.n 800270c <_isatty_r+0x1c>
6272 800270a: 6023 str r3, [r4, #0]
6273 800270c: bd70 pop {r4, r5, r6, pc}
6274 800270e: 46c0 nop @ (mov r8, r8)
6275 8002710: 2000028c .word 0x2000028c
6276
627708002714 <_sbrk_r>:
6278 8002714: 2300 movs r3, #0
6279 8002716: b570 push {r4, r5, r6, lr}
6280 8002718: 4d06 ldr r5, [pc, #24] @ (8002734 <_sbrk_r+0x20>)
6281 800271a: 0004 movs r4, r0
6282 800271c: 0008 movs r0, r1
6283 800271e: 602b str r3, [r5, #0]
6284 8002720: f7fd fdd8 bl 80002d4 <_sbrk>
6285 8002724: 1c43 adds r3, r0, #1
6286 8002726: d103 bne.n 8002730 <_sbrk_r+0x1c>
6287 8002728: 682b ldr r3, [r5, #0]
6288 800272a: 2b00 cmp r3, #0
6289 800272c: d000 beq.n 8002730 <_sbrk_r+0x1c>
6290 800272e: 6023 str r3, [r4, #0]
6291 8002730: bd70 pop {r4, r5, r6, pc}
6292 8002732: 46c0 nop @ (mov r8, r8)
6293 8002734: 2000028c .word 0x2000028c
6294
629508002738 <memchr>:
6296 8002738: b2c9 uxtb r1, r1
6297 800273a: 1882 adds r2, r0, r2
6298 800273c: 4290 cmp r0, r2
6299 800273e: d101 bne.n 8002744 <memchr+0xc>
6300 8002740: 2000 movs r0, #0
6301 8002742: 4770 bx lr
6302 8002744: 7803 ldrb r3, [r0, #0]
6303 8002746: 428b cmp r3, r1
6304 8002748: d0fb beq.n 8002742 <memchr+0xa>
6305 800274a: 3001 adds r0, #1
6306 800274c: e7f6 b.n 800273c <memchr+0x4>
6307 ...
6308
630908002750 <_init>:
6310 8002750: b5f8 push {r3, r4, r5, r6, r7, lr}
6311 8002752: 46c0 nop @ (mov r8, r8)
6312 8002754: bcf8 pop {r3, r4, r5, r6, r7}
6313 8002756: bc08 pop {r3}
6314 8002758: 469e mov lr, r3
6315 800275a: 4770 bx lr
6316
63170800275c <_fini>:
6318 800275c: b5f8 push {r3, r4, r5, r6, r7, lr}
6319 800275e: 46c0 nop @ (mov r8, r8)
6320 8002760: bcf8 pop {r3, r4, r5, r6, r7}
6321 8002762: bc08 pop {r3}
6322 8002764: 469e mov lr, r3
6323 8002766: 4770 bx lr
Note: See TracBrowser for help on using the repository browser.