F203/Debug/F203 VER 4.list

48220 lines
1.9 MiB
Raw Blame History

F203 VER 4.elf: file format elf32-littlearm
Sections:
Idx Name Size VMA LMA File off Algn
0 .isr_vector 000001f8 08000000 08000000 00010000 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
1 .text 000162a4 080001f8 080001f8 000101f8 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .rodata 00019808 0801649c 0801649c 0002649c 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
3 .ARM 00000008 0802fca4 0802fca4 0003fca4 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
4 .init_array 00000004 0802fcac 0802fcac 0003fcac 2**2
CONTENTS, ALLOC, LOAD, DATA
5 .fini_array 00000004 0802fcb0 0802fcb0 0003fcb0 2**2
CONTENTS, ALLOC, LOAD, DATA
6 .data 000009a8 20020000 0802fcb4 00040000 2**2
CONTENTS, ALLOC, LOAD, DATA
7 .dtcmram 00000000 20000000 20000000 000409a8 2**0
CONTENTS
8 .sram2 00000000 2007c000 2007c000 000409a8 2**0
CONTENTS
9 .bss 0004bd3c 200209a8 200209a8 000409a8 2**2
ALLOC
10 ._user_heap_stack 00000600 2006c6e4 2006c6e4 000409a8 2**0
ALLOC
11 .ARM.attributes 0000002e 00000000 00000000 000409a8 2**0
CONTENTS, READONLY
12 .debug_info 000305ea 00000000 00000000 000409d6 2**0
CONTENTS, READONLY, DEBUGGING
13 .debug_abbrev 0000457a 00000000 00000000 00070fc0 2**0
CONTENTS, READONLY, DEBUGGING
14 .debug_aranges 00001650 00000000 00000000 00075540 2**3
CONTENTS, READONLY, DEBUGGING
15 .debug_ranges 00001480 00000000 00000000 00076b90 2**3
CONTENTS, READONLY, DEBUGGING
16 .debug_line 0000ef6e 00000000 00000000 00078010 2**0
CONTENTS, READONLY, DEBUGGING
17 .debug_str 00009231 00000000 00000000 00086f7e 2**0
CONTENTS, READONLY, DEBUGGING
18 .comment 0000007c 00000000 00000000 000901af 2**0
CONTENTS, READONLY
19 .debug_frame 00005c8c 00000000 00000000 0009022c 2**2
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
080001f8 <__do_global_dtors_aux>:
80001f8: b510 push {r4, lr}
80001fa: 4c05 ldr r4, [pc, #20] ; (8000210 <_isr_vector_flash_end+0x18>)
80001fc: 7823 ldrb r3, [r4, #0]
80001fe: b933 cbnz r3, 800020e <__do_global_dtors_aux+0x16>
8000200: 4b04 ldr r3, [pc, #16] ; (8000214 <_isr_vector_flash_end+0x1c>)
8000202: b113 cbz r3, 800020a <__do_global_dtors_aux+0x12>
8000204: 4804 ldr r0, [pc, #16] ; (8000218 <_isr_vector_flash_end+0x20>)
8000206: f3af 8000 nop.w
800020a: 2301 movs r3, #1
800020c: 7023 strb r3, [r4, #0]
800020e: bd10 pop {r4, pc}
8000210: 200209a8 .word 0x200209a8
8000214: 00000000 .word 0x00000000
8000218: 08016484 .word 0x08016484
0800021c <frame_dummy>:
800021c: b508 push {r3, lr}
800021e: 4b03 ldr r3, [pc, #12] ; (800022c <frame_dummy+0x10>)
8000220: b11b cbz r3, 800022a <frame_dummy+0xe>
8000222: 4903 ldr r1, [pc, #12] ; (8000230 <frame_dummy+0x14>)
8000224: 4803 ldr r0, [pc, #12] ; (8000234 <frame_dummy+0x18>)
8000226: f3af 8000 nop.w
800022a: bd08 pop {r3, pc}
800022c: 00000000 .word 0x00000000
8000230: 200209ac .word 0x200209ac
8000234: 08016484 .word 0x08016484
08000238 <strlen>:
8000238: 4603 mov r3, r0
800023a: f813 2b01 ldrb.w r2, [r3], #1
800023e: 2a00 cmp r2, #0
8000240: d1fb bne.n 800023a <strlen+0x2>
8000242: 1a18 subs r0, r3, r0
8000244: 3801 subs r0, #1
8000246: 4770 bx lr
08000248 <__aeabi_uldivmod>:
8000248: b953 cbnz r3, 8000260 <__aeabi_uldivmod+0x18>
800024a: b94a cbnz r2, 8000260 <__aeabi_uldivmod+0x18>
800024c: 2900 cmp r1, #0
800024e: bf08 it eq
8000250: 2800 cmpeq r0, #0
8000252: bf1c itt ne
8000254: f04f 31ff movne.w r1, #4294967295
8000258: f04f 30ff movne.w r0, #4294967295
800025c: f000 b97a b.w 8000554 <__aeabi_idiv0>
8000260: f1ad 0c08 sub.w ip, sp, #8
8000264: e96d ce04 strd ip, lr, [sp, #-16]!
8000268: f000 f806 bl 8000278 <__udivmoddi4>
800026c: f8dd e004 ldr.w lr, [sp, #4]
8000270: e9dd 2302 ldrd r2, r3, [sp, #8]
8000274: b004 add sp, #16
8000276: 4770 bx lr
08000278 <__udivmoddi4>:
8000278: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
800027c: 468c mov ip, r1
800027e: 460d mov r5, r1
8000280: 4604 mov r4, r0
8000282: 9e08 ldr r6, [sp, #32]
8000284: 2b00 cmp r3, #0
8000286: d151 bne.n 800032c <__udivmoddi4+0xb4>
8000288: 428a cmp r2, r1
800028a: 4617 mov r7, r2
800028c: d96d bls.n 800036a <__udivmoddi4+0xf2>
800028e: fab2 fe82 clz lr, r2
8000292: f1be 0f00 cmp.w lr, #0
8000296: d00b beq.n 80002b0 <__udivmoddi4+0x38>
8000298: f1ce 0c20 rsb ip, lr, #32
800029c: fa01 f50e lsl.w r5, r1, lr
80002a0: fa20 fc0c lsr.w ip, r0, ip
80002a4: fa02 f70e lsl.w r7, r2, lr
80002a8: ea4c 0c05 orr.w ip, ip, r5
80002ac: fa00 f40e lsl.w r4, r0, lr
80002b0: ea4f 4a17 mov.w sl, r7, lsr #16
80002b4: 0c25 lsrs r5, r4, #16
80002b6: fbbc f8fa udiv r8, ip, sl
80002ba: fa1f f987 uxth.w r9, r7
80002be: fb0a cc18 mls ip, sl, r8, ip
80002c2: ea45 450c orr.w r5, r5, ip, lsl #16
80002c6: fb08 f309 mul.w r3, r8, r9
80002ca: 42ab cmp r3, r5
80002cc: d90a bls.n 80002e4 <__udivmoddi4+0x6c>
80002ce: 19ed adds r5, r5, r7
80002d0: f108 32ff add.w r2, r8, #4294967295
80002d4: f080 8123 bcs.w 800051e <__udivmoddi4+0x2a6>
80002d8: 42ab cmp r3, r5
80002da: f240 8120 bls.w 800051e <__udivmoddi4+0x2a6>
80002de: f1a8 0802 sub.w r8, r8, #2
80002e2: 443d add r5, r7
80002e4: 1aed subs r5, r5, r3
80002e6: b2a4 uxth r4, r4
80002e8: fbb5 f0fa udiv r0, r5, sl
80002ec: fb0a 5510 mls r5, sl, r0, r5
80002f0: ea44 4405 orr.w r4, r4, r5, lsl #16
80002f4: fb00 f909 mul.w r9, r0, r9
80002f8: 45a1 cmp r9, r4
80002fa: d909 bls.n 8000310 <__udivmoddi4+0x98>
80002fc: 19e4 adds r4, r4, r7
80002fe: f100 33ff add.w r3, r0, #4294967295
8000302: f080 810a bcs.w 800051a <__udivmoddi4+0x2a2>
8000306: 45a1 cmp r9, r4
8000308: f240 8107 bls.w 800051a <__udivmoddi4+0x2a2>
800030c: 3802 subs r0, #2
800030e: 443c add r4, r7
8000310: eba4 0409 sub.w r4, r4, r9
8000314: ea40 4008 orr.w r0, r0, r8, lsl #16
8000318: 2100 movs r1, #0
800031a: 2e00 cmp r6, #0
800031c: d061 beq.n 80003e2 <__udivmoddi4+0x16a>
800031e: fa24 f40e lsr.w r4, r4, lr
8000322: 2300 movs r3, #0
8000324: 6034 str r4, [r6, #0]
8000326: 6073 str r3, [r6, #4]
8000328: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
800032c: 428b cmp r3, r1
800032e: d907 bls.n 8000340 <__udivmoddi4+0xc8>
8000330: 2e00 cmp r6, #0
8000332: d054 beq.n 80003de <__udivmoddi4+0x166>
8000334: 2100 movs r1, #0
8000336: e886 0021 stmia.w r6, {r0, r5}
800033a: 4608 mov r0, r1
800033c: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
8000340: fab3 f183 clz r1, r3
8000344: 2900 cmp r1, #0
8000346: f040 808e bne.w 8000466 <__udivmoddi4+0x1ee>
800034a: 42ab cmp r3, r5
800034c: d302 bcc.n 8000354 <__udivmoddi4+0xdc>
800034e: 4282 cmp r2, r0
8000350: f200 80fa bhi.w 8000548 <__udivmoddi4+0x2d0>
8000354: 1a84 subs r4, r0, r2
8000356: eb65 0503 sbc.w r5, r5, r3
800035a: 2001 movs r0, #1
800035c: 46ac mov ip, r5
800035e: 2e00 cmp r6, #0
8000360: d03f beq.n 80003e2 <__udivmoddi4+0x16a>
8000362: e886 1010 stmia.w r6, {r4, ip}
8000366: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
800036a: b912 cbnz r2, 8000372 <__udivmoddi4+0xfa>
800036c: 2701 movs r7, #1
800036e: fbb7 f7f2 udiv r7, r7, r2
8000372: fab7 fe87 clz lr, r7
8000376: f1be 0f00 cmp.w lr, #0
800037a: d134 bne.n 80003e6 <__udivmoddi4+0x16e>
800037c: 1beb subs r3, r5, r7
800037e: 0c3a lsrs r2, r7, #16
8000380: fa1f fc87 uxth.w ip, r7
8000384: 2101 movs r1, #1
8000386: fbb3 f8f2 udiv r8, r3, r2
800038a: 0c25 lsrs r5, r4, #16
800038c: fb02 3318 mls r3, r2, r8, r3
8000390: ea45 4503 orr.w r5, r5, r3, lsl #16
8000394: fb0c f308 mul.w r3, ip, r8
8000398: 42ab cmp r3, r5
800039a: d907 bls.n 80003ac <__udivmoddi4+0x134>
800039c: 19ed adds r5, r5, r7
800039e: f108 30ff add.w r0, r8, #4294967295
80003a2: d202 bcs.n 80003aa <__udivmoddi4+0x132>
80003a4: 42ab cmp r3, r5
80003a6: f200 80d1 bhi.w 800054c <__udivmoddi4+0x2d4>
80003aa: 4680 mov r8, r0
80003ac: 1aed subs r5, r5, r3
80003ae: b2a3 uxth r3, r4
80003b0: fbb5 f0f2 udiv r0, r5, r2
80003b4: fb02 5510 mls r5, r2, r0, r5
80003b8: ea43 4405 orr.w r4, r3, r5, lsl #16
80003bc: fb0c fc00 mul.w ip, ip, r0
80003c0: 45a4 cmp ip, r4
80003c2: d907 bls.n 80003d4 <__udivmoddi4+0x15c>
80003c4: 19e4 adds r4, r4, r7
80003c6: f100 33ff add.w r3, r0, #4294967295
80003ca: d202 bcs.n 80003d2 <__udivmoddi4+0x15a>
80003cc: 45a4 cmp ip, r4
80003ce: f200 80b8 bhi.w 8000542 <__udivmoddi4+0x2ca>
80003d2: 4618 mov r0, r3
80003d4: eba4 040c sub.w r4, r4, ip
80003d8: ea40 4008 orr.w r0, r0, r8, lsl #16
80003dc: e79d b.n 800031a <__udivmoddi4+0xa2>
80003de: 4631 mov r1, r6
80003e0: 4630 mov r0, r6
80003e2: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
80003e6: f1ce 0420 rsb r4, lr, #32
80003ea: fa05 f30e lsl.w r3, r5, lr
80003ee: fa07 f70e lsl.w r7, r7, lr
80003f2: fa20 f804 lsr.w r8, r0, r4
80003f6: 0c3a lsrs r2, r7, #16
80003f8: fa25 f404 lsr.w r4, r5, r4
80003fc: ea48 0803 orr.w r8, r8, r3
8000400: fbb4 f1f2 udiv r1, r4, r2
8000404: ea4f 4518 mov.w r5, r8, lsr #16
8000408: fb02 4411 mls r4, r2, r1, r4
800040c: fa1f fc87 uxth.w ip, r7
8000410: ea45 4504 orr.w r5, r5, r4, lsl #16
8000414: fb01 f30c mul.w r3, r1, ip
8000418: 42ab cmp r3, r5
800041a: fa00 f40e lsl.w r4, r0, lr
800041e: d909 bls.n 8000434 <__udivmoddi4+0x1bc>
8000420: 19ed adds r5, r5, r7
8000422: f101 30ff add.w r0, r1, #4294967295
8000426: f080 808a bcs.w 800053e <__udivmoddi4+0x2c6>
800042a: 42ab cmp r3, r5
800042c: f240 8087 bls.w 800053e <__udivmoddi4+0x2c6>
8000430: 3902 subs r1, #2
8000432: 443d add r5, r7
8000434: 1aeb subs r3, r5, r3
8000436: fa1f f588 uxth.w r5, r8
800043a: fbb3 f0f2 udiv r0, r3, r2
800043e: fb02 3310 mls r3, r2, r0, r3
8000442: ea45 4503 orr.w r5, r5, r3, lsl #16
8000446: fb00 f30c mul.w r3, r0, ip
800044a: 42ab cmp r3, r5
800044c: d907 bls.n 800045e <__udivmoddi4+0x1e6>
800044e: 19ed adds r5, r5, r7
8000450: f100 38ff add.w r8, r0, #4294967295
8000454: d26f bcs.n 8000536 <__udivmoddi4+0x2be>
8000456: 42ab cmp r3, r5
8000458: d96d bls.n 8000536 <__udivmoddi4+0x2be>
800045a: 3802 subs r0, #2
800045c: 443d add r5, r7
800045e: 1aeb subs r3, r5, r3
8000460: ea40 4101 orr.w r1, r0, r1, lsl #16
8000464: e78f b.n 8000386 <__udivmoddi4+0x10e>
8000466: f1c1 0720 rsb r7, r1, #32
800046a: fa22 f807 lsr.w r8, r2, r7
800046e: 408b lsls r3, r1
8000470: fa05 f401 lsl.w r4, r5, r1
8000474: ea48 0303 orr.w r3, r8, r3
8000478: fa20 fe07 lsr.w lr, r0, r7
800047c: ea4f 4c13 mov.w ip, r3, lsr #16
8000480: 40fd lsrs r5, r7
8000482: ea4e 0e04 orr.w lr, lr, r4
8000486: fbb5 f9fc udiv r9, r5, ip
800048a: ea4f 441e mov.w r4, lr, lsr #16
800048e: fb0c 5519 mls r5, ip, r9, r5
8000492: fa1f f883 uxth.w r8, r3
8000496: ea44 4505 orr.w r5, r4, r5, lsl #16
800049a: fb09 f408 mul.w r4, r9, r8
800049e: 42ac cmp r4, r5
80004a0: fa02 f201 lsl.w r2, r2, r1
80004a4: fa00 fa01 lsl.w sl, r0, r1
80004a8: d908 bls.n 80004bc <__udivmoddi4+0x244>
80004aa: 18ed adds r5, r5, r3
80004ac: f109 30ff add.w r0, r9, #4294967295
80004b0: d243 bcs.n 800053a <__udivmoddi4+0x2c2>
80004b2: 42ac cmp r4, r5
80004b4: d941 bls.n 800053a <__udivmoddi4+0x2c2>
80004b6: f1a9 0902 sub.w r9, r9, #2
80004ba: 441d add r5, r3
80004bc: 1b2d subs r5, r5, r4
80004be: fa1f fe8e uxth.w lr, lr
80004c2: fbb5 f0fc udiv r0, r5, ip
80004c6: fb0c 5510 mls r5, ip, r0, r5
80004ca: ea4e 4405 orr.w r4, lr, r5, lsl #16
80004ce: fb00 f808 mul.w r8, r0, r8
80004d2: 45a0 cmp r8, r4
80004d4: d907 bls.n 80004e6 <__udivmoddi4+0x26e>
80004d6: 18e4 adds r4, r4, r3
80004d8: f100 35ff add.w r5, r0, #4294967295
80004dc: d229 bcs.n 8000532 <__udivmoddi4+0x2ba>
80004de: 45a0 cmp r8, r4
80004e0: d927 bls.n 8000532 <__udivmoddi4+0x2ba>
80004e2: 3802 subs r0, #2
80004e4: 441c add r4, r3
80004e6: ea40 4009 orr.w r0, r0, r9, lsl #16
80004ea: eba4 0408 sub.w r4, r4, r8
80004ee: fba0 8902 umull r8, r9, r0, r2
80004f2: 454c cmp r4, r9
80004f4: 46c6 mov lr, r8
80004f6: 464d mov r5, r9
80004f8: d315 bcc.n 8000526 <__udivmoddi4+0x2ae>
80004fa: d012 beq.n 8000522 <__udivmoddi4+0x2aa>
80004fc: b156 cbz r6, 8000514 <__udivmoddi4+0x29c>
80004fe: ebba 030e subs.w r3, sl, lr
8000502: eb64 0405 sbc.w r4, r4, r5
8000506: fa04 f707 lsl.w r7, r4, r7
800050a: 40cb lsrs r3, r1
800050c: 431f orrs r7, r3
800050e: 40cc lsrs r4, r1
8000510: 6037 str r7, [r6, #0]
8000512: 6074 str r4, [r6, #4]
8000514: 2100 movs r1, #0
8000516: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
800051a: 4618 mov r0, r3
800051c: e6f8 b.n 8000310 <__udivmoddi4+0x98>
800051e: 4690 mov r8, r2
8000520: e6e0 b.n 80002e4 <__udivmoddi4+0x6c>
8000522: 45c2 cmp sl, r8
8000524: d2ea bcs.n 80004fc <__udivmoddi4+0x284>
8000526: ebb8 0e02 subs.w lr, r8, r2
800052a: eb69 0503 sbc.w r5, r9, r3
800052e: 3801 subs r0, #1
8000530: e7e4 b.n 80004fc <__udivmoddi4+0x284>
8000532: 4628 mov r0, r5
8000534: e7d7 b.n 80004e6 <__udivmoddi4+0x26e>
8000536: 4640 mov r0, r8
8000538: e791 b.n 800045e <__udivmoddi4+0x1e6>
800053a: 4681 mov r9, r0
800053c: e7be b.n 80004bc <__udivmoddi4+0x244>
800053e: 4601 mov r1, r0
8000540: e778 b.n 8000434 <__udivmoddi4+0x1bc>
8000542: 3802 subs r0, #2
8000544: 443c add r4, r7
8000546: e745 b.n 80003d4 <__udivmoddi4+0x15c>
8000548: 4608 mov r0, r1
800054a: e708 b.n 800035e <__udivmoddi4+0xe6>
800054c: f1a8 0802 sub.w r8, r8, #2
8000550: 443d add r5, r7
8000552: e72b b.n 80003ac <__udivmoddi4+0x134>
08000554 <__aeabi_idiv0>:
8000554: 4770 bx lr
8000556: bf00 nop
08000558 <Off>:
void Off(void)
{
8000558: b580 push {r7, lr}
800055a: af00 add r7, sp, #0
NeedOff = false;
800055c: 4b12 ldr r3, [pc, #72] ; (80005a8 <Off+0x50>)
800055e: 2200 movs r2, #0
8000560: 701a strb r2, [r3, #0]
BSP_LCD_DisplayOff();
8000562: f004 fa83 bl 8004a6c <BSP_LCD_DisplayOff>
HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_SET); // BACKLIGHT_OFF
8000566: 2201 movs r2, #1
8000568: f44f 7180 mov.w r1, #256 ; 0x100
800056c: 480f ldr r0, [pc, #60] ; (80005ac <Off+0x54>)
800056e: f012 fb31 bl 8012bd4 <HAL_GPIO_WritePin>
wrPar();
8000572: f000 f893 bl 800069c <wrPar>
while(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET);
8000576: bf00 nop
8000578: 2101 movs r1, #1
800057a: 480c ldr r0, [pc, #48] ; (80005ac <Off+0x54>)
800057c: f012 fb12 bl 8012ba4 <HAL_GPIO_ReadPin>
8000580: 4603 mov r3, r0
8000582: 2b01 cmp r3, #1
8000584: d0f8 beq.n 8000578 <Off+0x20>
HAL_GPIO_WritePin(ON_GPIO_Port, ON_Pin, GPIO_PIN_RESET);
8000586: 2200 movs r2, #0
8000588: f44f 7180 mov.w r1, #256 ; 0x100
800058c: 4808 ldr r0, [pc, #32] ; (80005b0 <Off+0x58>)
800058e: f012 fb21 bl 8012bd4 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(ON1_GPIO_Port, ON1_Pin, GPIO_PIN_RESET);
8000592: 2200 movs r2, #0
8000594: 2120 movs r1, #32
8000596: 4806 ldr r0, [pc, #24] ; (80005b0 <Off+0x58>)
8000598: f012 fb1c bl 8012bd4 <HAL_GPIO_WritePin>
HAL_Delay(300);
800059c: f44f 7096 mov.w r0, #300 ; 0x12c
80005a0: f010 ffec bl 801157c <HAL_Delay>
while(1);
80005a4: e7fe b.n 80005a4 <Off+0x4c>
80005a6: bf00 nop
80005a8: 200209d8 .word 0x200209d8
80005ac: 40020000 .word 0x40020000
80005b0: 40021400 .word 0x40021400
080005b4 <MX_DMA2D_Init>:
DMA2D_HandleTypeDef hdma2d;
/* DMA2D init function */
void MX_DMA2D_Init(void)
{
80005b4: b580 push {r7, lr}
80005b6: af00 add r7, sp, #0
hdma2d.Instance = DMA2D;
80005b8: 4b18 ldr r3, [pc, #96] ; (800061c <MX_DMA2D_Init+0x68>)
80005ba: 4a19 ldr r2, [pc, #100] ; (8000620 <MX_DMA2D_Init+0x6c>)
80005bc: 601a str r2, [r3, #0]
hdma2d.Init.Mode = DMA2D_M2M;
80005be: 4b17 ldr r3, [pc, #92] ; (800061c <MX_DMA2D_Init+0x68>)
80005c0: 2200 movs r2, #0
80005c2: 605a str r2, [r3, #4]
hdma2d.Init.ColorMode = DMA2D_OUTPUT_RGB565;
80005c4: 4b15 ldr r3, [pc, #84] ; (800061c <MX_DMA2D_Init+0x68>)
80005c6: 2202 movs r2, #2
80005c8: 609a str r2, [r3, #8]
hdma2d.Init.OutputOffset = 0;
80005ca: 4b14 ldr r3, [pc, #80] ; (800061c <MX_DMA2D_Init+0x68>)
80005cc: 2200 movs r2, #0
80005ce: 60da str r2, [r3, #12]
hdma2d.LayerCfg[1].InputOffset = 0;
80005d0: 4b12 ldr r3, [pc, #72] ; (800061c <MX_DMA2D_Init+0x68>)
80005d2: 2200 movs r2, #0
80005d4: 639a str r2, [r3, #56] ; 0x38
hdma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_RGB565;
80005d6: 4b11 ldr r3, [pc, #68] ; (800061c <MX_DMA2D_Init+0x68>)
80005d8: 2202 movs r2, #2
80005da: 63da str r2, [r3, #60] ; 0x3c
hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
80005dc: 4b0f ldr r3, [pc, #60] ; (800061c <MX_DMA2D_Init+0x68>)
80005de: 2200 movs r2, #0
80005e0: 641a str r2, [r3, #64] ; 0x40
hdma2d.LayerCfg[1].InputAlpha = 0;
80005e2: 4b0e ldr r3, [pc, #56] ; (800061c <MX_DMA2D_Init+0x68>)
80005e4: 2200 movs r2, #0
80005e6: 645a str r2, [r3, #68] ; 0x44
hdma2d.LayerCfg[1].AlphaInverted = DMA2D_REGULAR_ALPHA;
80005e8: 4b0c ldr r3, [pc, #48] ; (800061c <MX_DMA2D_Init+0x68>)
80005ea: 2200 movs r2, #0
80005ec: 649a str r2, [r3, #72] ; 0x48
hdma2d.LayerCfg[1].RedBlueSwap = DMA2D_RB_REGULAR;
80005ee: 4b0b ldr r3, [pc, #44] ; (800061c <MX_DMA2D_Init+0x68>)
80005f0: 2200 movs r2, #0
80005f2: 64da str r2, [r3, #76] ; 0x4c
if (HAL_DMA2D_Init(&hdma2d) != HAL_OK)
80005f4: 4809 ldr r0, [pc, #36] ; (800061c <MX_DMA2D_Init+0x68>)
80005f6: f011 fb3f bl 8011c78 <HAL_DMA2D_Init>
80005fa: 4603 mov r3, r0
80005fc: 2b00 cmp r3, #0
80005fe: d001 beq.n 8000604 <MX_DMA2D_Init+0x50>
{
Error_Handler();
8000600: f005 fbf4 bl 8005dec <Error_Handler>
}
if (HAL_DMA2D_ConfigLayer(&hdma2d, 1) != HAL_OK)
8000604: 2101 movs r1, #1
8000606: 4805 ldr r0, [pc, #20] ; (800061c <MX_DMA2D_Init+0x68>)
8000608: f011 fca4 bl 8011f54 <HAL_DMA2D_ConfigLayer>
800060c: 4603 mov r3, r0
800060e: 2b00 cmp r3, #0
8000610: d001 beq.n 8000616 <MX_DMA2D_Init+0x62>
{
Error_Handler();
8000612: f005 fbeb bl 8005dec <Error_Handler>
}
}
8000616: bf00 nop
8000618: bd80 pop {r7, pc}
800061a: bf00 nop
800061c: 2006bc30 .word 0x2006bc30
8000620: 4002b000 .word 0x4002b000
08000624 <HAL_DMA2D_MspInit>:
void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef* dma2dHandle)
{
8000624: b480 push {r7}
8000626: b085 sub sp, #20
8000628: af00 add r7, sp, #0
800062a: 6078 str r0, [r7, #4]
if(dma2dHandle->Instance==DMA2D)
800062c: 687b ldr r3, [r7, #4]
800062e: 681b ldr r3, [r3, #0]
8000630: 4a0a ldr r2, [pc, #40] ; (800065c <HAL_DMA2D_MspInit+0x38>)
8000632: 4293 cmp r3, r2
8000634: d10b bne.n 800064e <HAL_DMA2D_MspInit+0x2a>
{
/* USER CODE BEGIN DMA2D_MspInit 0 */
/* USER CODE END DMA2D_MspInit 0 */
/* DMA2D clock enable */
__HAL_RCC_DMA2D_CLK_ENABLE();
8000636: 4a0a ldr r2, [pc, #40] ; (8000660 <HAL_DMA2D_MspInit+0x3c>)
8000638: 4b09 ldr r3, [pc, #36] ; (8000660 <HAL_DMA2D_MspInit+0x3c>)
800063a: 6b1b ldr r3, [r3, #48] ; 0x30
800063c: f443 0300 orr.w r3, r3, #8388608 ; 0x800000
8000640: 6313 str r3, [r2, #48] ; 0x30
8000642: 4b07 ldr r3, [pc, #28] ; (8000660 <HAL_DMA2D_MspInit+0x3c>)
8000644: 6b1b ldr r3, [r3, #48] ; 0x30
8000646: f403 0300 and.w r3, r3, #8388608 ; 0x800000
800064a: 60fb str r3, [r7, #12]
800064c: 68fb ldr r3, [r7, #12]
/* USER CODE BEGIN DMA2D_MspInit 1 */
/* USER CODE END DMA2D_MspInit 1 */
}
}
800064e: bf00 nop
8000650: 3714 adds r7, #20
8000652: 46bd mov sp, r7
8000654: f85d 7b04 ldr.w r7, [sp], #4
8000658: 4770 bx lr
800065a: bf00 nop
800065c: 4002b000 .word 0x4002b000
8000660: 40023800 .word 0x40023800
08000664 <initFlash>:
volatile uint32_t id = 0;
void initFlash(void)
{
8000664: b580 push {r7, lr}
8000666: b082 sub sp, #8
8000668: af00 add r7, sp, #0
__HAL_RCC_SYSCFG_CLK_ENABLE();
800066a: 4a0a ldr r2, [pc, #40] ; (8000694 <initFlash+0x30>)
800066c: 4b09 ldr r3, [pc, #36] ; (8000694 <initFlash+0x30>)
800066e: 6c5b ldr r3, [r3, #68] ; 0x44
8000670: f443 4380 orr.w r3, r3, #16384 ; 0x4000
8000674: 6453 str r3, [r2, #68] ; 0x44
8000676: 4b07 ldr r3, [pc, #28] ; (8000694 <initFlash+0x30>)
8000678: 6c5b ldr r3, [r3, #68] ; 0x44
800067a: f403 4380 and.w r3, r3, #16384 ; 0x4000
800067e: 607b str r3, [r7, #4]
8000680: 687b ldr r3, [r7, #4]
HAL_FLASHEx_OBGetConfig(&OBInit);
8000682: 4805 ldr r0, [pc, #20] ; (8000698 <initFlash+0x34>)
8000684: f011 ffc4 bl 8012610 <HAL_FLASHEx_OBGetConfig>
rdPar();
8000688: f000 f852 bl 8000730 <rdPar>
}
800068c: bf00 nop
800068e: 3708 adds r7, #8
8000690: 46bd mov sp, r7
8000692: bd80 pop {r7, pc}
8000694: 40023800 .word 0x40023800
8000698: 2006bc88 .word 0x2006bc88
0800069c <wrPar>:
void wrPar(void)
{
800069c: b590 push {r4, r7, lr}
800069e: b087 sub sp, #28
80006a0: af00 add r7, sp, #0
volatile uint32_t i;
volatile uint32_t lenpar = 0;
80006a2: 2300 movs r3, #0
80006a4: 60fb str r3, [r7, #12]
volatile uint32_t Address, *pData;
uint32_t SECTORError = 0;
80006a6: 2300 movs r3, #0
80006a8: 607b str r3, [r7, #4]
#ifndef DEBUGGING
lenpar = 8u << 2;
80006aa: 2320 movs r3, #32
80006ac: 60fb str r3, [r7, #12]
\details Disables IRQ interrupts by setting the I-bit in the CPSR.
Can only be executed in Privileged modes.
*/
__STATIC_FORCEINLINE void __disable_irq(void)
{
__ASM volatile ("cpsid i" : : : "memory");
80006ae: b672 cpsid i
__disable_irq();
HAL_FLASH_Unlock();
80006b0: f011 fde4 bl 801227c <HAL_FLASH_Unlock>
EraseInitStruct.TypeErase = FLASH_TYPEERASE_SECTORS;
80006b4: 4b1b ldr r3, [pc, #108] ; (8000724 <wrPar+0x88>)
80006b6: 2200 movs r2, #0
80006b8: 601a str r2, [r3, #0]
EraseInitStruct.VoltageRange = FLASH_VOLTAGE_RANGE_3;
80006ba: 4b1a ldr r3, [pc, #104] ; (8000724 <wrPar+0x88>)
80006bc: 2202 movs r2, #2
80006be: 611a str r2, [r3, #16]
EraseInitStruct.Sector = USERSECTOR; //FLASH_SECTOR_11;
80006c0: 4b18 ldr r3, [pc, #96] ; (8000724 <wrPar+0x88>)
80006c2: 220b movs r2, #11
80006c4: 609a str r2, [r3, #8]
EraseInitStruct.NbSectors = 1;
80006c6: 4b17 ldr r3, [pc, #92] ; (8000724 <wrPar+0x88>)
80006c8: 2201 movs r2, #1
80006ca: 60da str r2, [r3, #12]
if(HAL_FLASHEx_Erase(&EraseInitStruct, &SECTORError) == HAL_OK)
80006cc: 1d3b adds r3, r7, #4
80006ce: 4619 mov r1, r3
80006d0: 4814 ldr r0, [pc, #80] ; (8000724 <wrPar+0x88>)
80006d2: f011 ff2d bl 8012530 <HAL_FLASHEx_Erase>
80006d6: 4603 mov r3, r0
80006d8: 2b00 cmp r3, #0
80006da: d11c bne.n 8000716 <wrPar+0x7a>
{
Address = USERPAGE;
80006dc: 4b12 ldr r3, [pc, #72] ; (8000728 <wrPar+0x8c>)
80006de: 60bb str r3, [r7, #8]
pData = (uint32_t *) &pardata.OWN;
80006e0: 4b12 ldr r3, [pc, #72] ; (800072c <wrPar+0x90>)
80006e2: 617b str r3, [r7, #20]
for(i = 0; i < lenpar; i++)
80006e4: 2300 movs r3, #0
80006e6: 613b str r3, [r7, #16]
80006e8: e011 b.n 800070e <wrPar+0x72>
{
HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, Address, *pData++);
80006ea: 68b9 ldr r1, [r7, #8]
80006ec: 697b ldr r3, [r7, #20]
80006ee: 1d1a adds r2, r3, #4
80006f0: 617a str r2, [r7, #20]
80006f2: 681b ldr r3, [r3, #0]
80006f4: f04f 0400 mov.w r4, #0
80006f8: 461a mov r2, r3
80006fa: 4623 mov r3, r4
80006fc: 2002 movs r0, #2
80006fe: f011 fd61 bl 80121c4 <HAL_FLASH_Program>
Address += 4;
8000702: 68bb ldr r3, [r7, #8]
8000704: 3304 adds r3, #4
8000706: 60bb str r3, [r7, #8]
for(i = 0; i < lenpar; i++)
8000708: 693b ldr r3, [r7, #16]
800070a: 3301 adds r3, #1
800070c: 613b str r3, [r7, #16]
800070e: 693a ldr r2, [r7, #16]
8000710: 68fb ldr r3, [r7, #12]
8000712: 429a cmp r2, r3
8000714: d3e9 bcc.n 80006ea <wrPar+0x4e>
}
}
HAL_FLASH_Lock();
8000716: f011 fdd3 bl 80122c0 <HAL_FLASH_Lock>
__ASM volatile ("cpsie i" : : : "memory");
800071a: b662 cpsie i
__enable_irq();
#endif
}
800071c: bf00 nop
800071e: 371c adds r7, #28
8000720: 46bd mov sp, r7
8000722: bd90 pop {r4, r7, pc}
8000724: 200209c4 .word 0x200209c4
8000728: 081c0000 .word 0x081c0000
800072c: 2006bea8 .word 0x2006bea8
08000730 <rdPar>:
void rdPar(void)
{
8000730: b580 push {r7, lr}
8000732: b082 sub sp, #8
8000734: af00 add r7, sp, #0
uint8_t i, j;
uint32_t lenpar;
volatile bool rewrite = false;
8000736: 2300 movs r3, #0
8000738: 71fb strb r3, [r7, #7]
sfloat hpf;
memcpy((void *) &pardata.OWN, (void *) USERPAGE, 8u);
800073a: 2208 movs r2, #8
800073c: 4913 ldr r1, [pc, #76] ; (800078c <rdPar+0x5c>)
800073e: 4814 ldr r0, [pc, #80] ; (8000790 <rdPar+0x60>)
8000740: f015 fe84 bl 801644c <memcpy>
if(pardata.OWN != 18)
8000744: 4b13 ldr r3, [pc, #76] ; (8000794 <rdPar+0x64>)
8000746: f8b3 3200 ldrh.w r3, [r3, #512] ; 0x200
800074a: b29b uxth r3, r3
800074c: 2b12 cmp r3, #18
800074e: d011 beq.n 8000774 <rdPar+0x44>
{
pardata.OWN = 18;
8000750: 4b10 ldr r3, [pc, #64] ; (8000794 <rdPar+0x64>)
8000752: 2212 movs r2, #18
8000754: f8a3 2200 strh.w r2, [r3, #512] ; 0x200
pardata.BAUD = 7;
8000758: 4b0e ldr r3, [pc, #56] ; (8000794 <rdPar+0x64>)
800075a: 2207 movs r2, #7
800075c: f8a3 2202 strh.w r2, [r3, #514] ; 0x202
pardata.INFB = 0;
8000760: 4b0c ldr r3, [pc, #48] ; (8000794 <rdPar+0x64>)
8000762: 2200 movs r2, #0
8000764: f8a3 2204 strh.w r2, [r3, #516] ; 0x204
pardata.LANG = RUS;
8000768: 4b0a ldr r3, [pc, #40] ; (8000794 <rdPar+0x64>)
800076a: 2200 movs r2, #0
800076c: f8a3 2206 strh.w r2, [r3, #518] ; 0x206
rewrite = true;
8000770: 2301 movs r3, #1
8000772: 71fb strb r3, [r7, #7]
}
if(rewrite)
8000774: 79fb ldrb r3, [r7, #7]
8000776: b2db uxtb r3, r3
8000778: 2b00 cmp r3, #0
800077a: d003 beq.n 8000784 <rdPar+0x54>
{
rewrite = false;
800077c: 2300 movs r3, #0
800077e: 71fb strb r3, [r7, #7]
wrPar();
8000780: f7ff ff8c bl 800069c <wrPar>
}
}
8000784: bf00 nop
8000786: 3708 adds r7, #8
8000788: 46bd mov sp, r7
800078a: bd80 pop {r7, pc}
800078c: 081c0000 .word 0x081c0000
8000790: 2006bea8 .word 0x2006bea8
8000794: 2006bca8 .word 0x2006bca8
08000798 <MX_GPIO_Init>:
* EXTI
* Free pins are configured automatically as Analog (this feature is enabled through
* the Code Generation settings)
*/
void MX_GPIO_Init(void)
{
8000798: b580 push {r7, lr}
800079a: b08e sub sp, #56 ; 0x38
800079c: af00 add r7, sp, #0
GPIO_InitTypeDef GPIO_InitStruct;
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOE_CLK_ENABLE();
800079e: 4a73 ldr r2, [pc, #460] ; (800096c <MX_GPIO_Init+0x1d4>)
80007a0: 4b72 ldr r3, [pc, #456] ; (800096c <MX_GPIO_Init+0x1d4>)
80007a2: 6b1b ldr r3, [r3, #48] ; 0x30
80007a4: f043 0310 orr.w r3, r3, #16
80007a8: 6313 str r3, [r2, #48] ; 0x30
80007aa: 4b70 ldr r3, [pc, #448] ; (800096c <MX_GPIO_Init+0x1d4>)
80007ac: 6b1b ldr r3, [r3, #48] ; 0x30
80007ae: f003 0310 and.w r3, r3, #16
80007b2: 623b str r3, [r7, #32]
80007b4: 6a3b ldr r3, [r7, #32]
__HAL_RCC_GPIOC_CLK_ENABLE();
80007b6: 4a6d ldr r2, [pc, #436] ; (800096c <MX_GPIO_Init+0x1d4>)
80007b8: 4b6c ldr r3, [pc, #432] ; (800096c <MX_GPIO_Init+0x1d4>)
80007ba: 6b1b ldr r3, [r3, #48] ; 0x30
80007bc: f043 0304 orr.w r3, r3, #4
80007c0: 6313 str r3, [r2, #48] ; 0x30
80007c2: 4b6a ldr r3, [pc, #424] ; (800096c <MX_GPIO_Init+0x1d4>)
80007c4: 6b1b ldr r3, [r3, #48] ; 0x30
80007c6: f003 0304 and.w r3, r3, #4
80007ca: 61fb str r3, [r7, #28]
80007cc: 69fb ldr r3, [r7, #28]
__HAL_RCC_GPIOF_CLK_ENABLE();
80007ce: 4a67 ldr r2, [pc, #412] ; (800096c <MX_GPIO_Init+0x1d4>)
80007d0: 4b66 ldr r3, [pc, #408] ; (800096c <MX_GPIO_Init+0x1d4>)
80007d2: 6b1b ldr r3, [r3, #48] ; 0x30
80007d4: f043 0320 orr.w r3, r3, #32
80007d8: 6313 str r3, [r2, #48] ; 0x30
80007da: 4b64 ldr r3, [pc, #400] ; (800096c <MX_GPIO_Init+0x1d4>)
80007dc: 6b1b ldr r3, [r3, #48] ; 0x30
80007de: f003 0320 and.w r3, r3, #32
80007e2: 61bb str r3, [r7, #24]
80007e4: 69bb ldr r3, [r7, #24]
__HAL_RCC_GPIOH_CLK_ENABLE();
80007e6: 4a61 ldr r2, [pc, #388] ; (800096c <MX_GPIO_Init+0x1d4>)
80007e8: 4b60 ldr r3, [pc, #384] ; (800096c <MX_GPIO_Init+0x1d4>)
80007ea: 6b1b ldr r3, [r3, #48] ; 0x30
80007ec: f043 0380 orr.w r3, r3, #128 ; 0x80
80007f0: 6313 str r3, [r2, #48] ; 0x30
80007f2: 4b5e ldr r3, [pc, #376] ; (800096c <MX_GPIO_Init+0x1d4>)
80007f4: 6b1b ldr r3, [r3, #48] ; 0x30
80007f6: f003 0380 and.w r3, r3, #128 ; 0x80
80007fa: 617b str r3, [r7, #20]
80007fc: 697b ldr r3, [r7, #20]
__HAL_RCC_GPIOA_CLK_ENABLE();
80007fe: 4a5b ldr r2, [pc, #364] ; (800096c <MX_GPIO_Init+0x1d4>)
8000800: 4b5a ldr r3, [pc, #360] ; (800096c <MX_GPIO_Init+0x1d4>)
8000802: 6b1b ldr r3, [r3, #48] ; 0x30
8000804: f043 0301 orr.w r3, r3, #1
8000808: 6313 str r3, [r2, #48] ; 0x30
800080a: 4b58 ldr r3, [pc, #352] ; (800096c <MX_GPIO_Init+0x1d4>)
800080c: 6b1b ldr r3, [r3, #48] ; 0x30
800080e: f003 0301 and.w r3, r3, #1
8000812: 613b str r3, [r7, #16]
8000814: 693b ldr r3, [r7, #16]
__HAL_RCC_GPIOB_CLK_ENABLE();
8000816: 4a55 ldr r2, [pc, #340] ; (800096c <MX_GPIO_Init+0x1d4>)
8000818: 4b54 ldr r3, [pc, #336] ; (800096c <MX_GPIO_Init+0x1d4>)
800081a: 6b1b ldr r3, [r3, #48] ; 0x30
800081c: f043 0302 orr.w r3, r3, #2
8000820: 6313 str r3, [r2, #48] ; 0x30
8000822: 4b52 ldr r3, [pc, #328] ; (800096c <MX_GPIO_Init+0x1d4>)
8000824: 6b1b ldr r3, [r3, #48] ; 0x30
8000826: f003 0302 and.w r3, r3, #2
800082a: 60fb str r3, [r7, #12]
800082c: 68fb ldr r3, [r7, #12]
__HAL_RCC_GPIOG_CLK_ENABLE();
800082e: 4a4f ldr r2, [pc, #316] ; (800096c <MX_GPIO_Init+0x1d4>)
8000830: 4b4e ldr r3, [pc, #312] ; (800096c <MX_GPIO_Init+0x1d4>)
8000832: 6b1b ldr r3, [r3, #48] ; 0x30
8000834: f043 0340 orr.w r3, r3, #64 ; 0x40
8000838: 6313 str r3, [r2, #48] ; 0x30
800083a: 4b4c ldr r3, [pc, #304] ; (800096c <MX_GPIO_Init+0x1d4>)
800083c: 6b1b ldr r3, [r3, #48] ; 0x30
800083e: f003 0340 and.w r3, r3, #64 ; 0x40
8000842: 60bb str r3, [r7, #8]
8000844: 68bb ldr r3, [r7, #8]
__HAL_RCC_GPIOD_CLK_ENABLE();
8000846: 4a49 ldr r2, [pc, #292] ; (800096c <MX_GPIO_Init+0x1d4>)
8000848: 4b48 ldr r3, [pc, #288] ; (800096c <MX_GPIO_Init+0x1d4>)
800084a: 6b1b ldr r3, [r3, #48] ; 0x30
800084c: f043 0308 orr.w r3, r3, #8
8000850: 6313 str r3, [r2, #48] ; 0x30
8000852: 4b46 ldr r3, [pc, #280] ; (800096c <MX_GPIO_Init+0x1d4>)
8000854: 6b1b ldr r3, [r3, #48] ; 0x30
8000856: f003 0308 and.w r3, r3, #8
800085a: 607b str r3, [r7, #4]
800085c: 687b ldr r3, [r7, #4]
HAL_GPIO_WritePin(GPIOE, (U1_Pin | U2_Pin | U3_Pin), GPIO_PIN_SET);
800085e: 2201 movs r2, #1
8000860: 2138 movs r1, #56 ; 0x38
8000862: 4843 ldr r0, [pc, #268] ; (8000970 <MX_GPIO_Init+0x1d8>)
8000864: f012 f9b6 bl 8012bd4 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(ON_GPIO_Port, ON_Pin, GPIO_PIN_SET);
8000868: 2201 movs r2, #1
800086a: f44f 7180 mov.w r1, #256 ; 0x100
800086e: 4841 ldr r0, [pc, #260] ; (8000974 <MX_GPIO_Init+0x1dc>)
8000870: f012 f9b0 bl 8012bd4 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_SET);
8000874: 2201 movs r2, #1
8000876: 2140 movs r1, #64 ; 0x40
8000878: 483f ldr r0, [pc, #252] ; (8000978 <MX_GPIO_Init+0x1e0>)
800087a: f012 f9ab bl 8012bd4 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_SET);
800087e: 2201 movs r2, #1
8000880: f44f 7180 mov.w r1, #256 ; 0x100
8000884: 483d ldr r0, [pc, #244] ; (800097c <MX_GPIO_Init+0x1e4>)
8000886: f012 f9a5 bl 8012bd4 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800088a: 2200 movs r2, #0
800088c: f44f 7100 mov.w r1, #512 ; 0x200
8000890: 4838 ldr r0, [pc, #224] ; (8000974 <MX_GPIO_Init+0x1dc>)
8000892: f012 f99f bl 8012bd4 <HAL_GPIO_WritePin>
/*Configure GPIO pins : PEPin PEPin PEPin */
GPIO_InitStruct.Pin = U1_Pin|U2_Pin|U3_Pin;
8000896: 2338 movs r3, #56 ; 0x38
8000898: 627b str r3, [r7, #36] ; 0x24
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
800089a: 2301 movs r3, #1
800089c: 62bb str r3, [r7, #40] ; 0x28
GPIO_InitStruct.Pull = GPIO_PULLUP;
800089e: 2301 movs r3, #1
80008a0: 62fb str r3, [r7, #44] ; 0x2c
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
80008a2: 2303 movs r3, #3
80008a4: 633b str r3, [r7, #48] ; 0x30
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
80008a6: f107 0324 add.w r3, r7, #36 ; 0x24
80008aa: 4619 mov r1, r3
80008ac: 4830 ldr r0, [pc, #192] ; (8000970 <MX_GPIO_Init+0x1d8>)
80008ae: f011 ffcf bl 8012850 <HAL_GPIO_Init>
/*Configure GPIO pins : PAPin PAPin */
GPIO_InitStruct.Pin = K1_Pin;
80008b2: f44f 7300 mov.w r3, #512 ; 0x200
80008b6: 627b str r3, [r7, #36] ; 0x24
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
80008b8: 2300 movs r3, #0
80008ba: 62bb str r3, [r7, #40] ; 0x28
GPIO_InitStruct.Pull = GPIO_PULLUP;
80008bc: 2301 movs r3, #1
80008be: 62fb str r3, [r7, #44] ; 0x2c
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
80008c0: 2302 movs r3, #2
80008c2: 633b str r3, [r7, #48] ; 0x30
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
80008c4: f107 0324 add.w r3, r7, #36 ; 0x24
80008c8: 4619 mov r1, r3
80008ca: 482c ldr r0, [pc, #176] ; (800097c <MX_GPIO_Init+0x1e4>)
80008cc: f011 ffc0 bl 8012850 <HAL_GPIO_Init>
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = ON_Pin | ON1_Pin | RE_Pin;
80008d0: f44f 7348 mov.w r3, #800 ; 0x320
80008d4: 627b str r3, [r7, #36] ; 0x24
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
80008d6: 2301 movs r3, #1
80008d8: 62bb str r3, [r7, #40] ; 0x28
GPIO_InitStruct.Pull = GPIO_NOPULL;
80008da: 2300 movs r3, #0
80008dc: 62fb str r3, [r7, #44] ; 0x2c
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
80008de: 2302 movs r3, #2
80008e0: 633b str r3, [r7, #48] ; 0x30
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
80008e2: f107 0324 add.w r3, r7, #36 ; 0x24
80008e6: 4619 mov r1, r3
80008e8: 4822 ldr r0, [pc, #136] ; (8000974 <MX_GPIO_Init+0x1dc>)
80008ea: f011 ffb1 bl 8012850 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = DISP_ON_Pin;
80008ee: f44f 7380 mov.w r3, #256 ; 0x100
80008f2: 627b str r3, [r7, #36] ; 0x24
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
80008f4: 2301 movs r3, #1
80008f6: 62bb str r3, [r7, #40] ; 0x28
GPIO_InitStruct.Pull = GPIO_NOPULL;
80008f8: 2300 movs r3, #0
80008fa: 62fb str r3, [r7, #44] ; 0x2c
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
80008fc: 2302 movs r3, #2
80008fe: 633b str r3, [r7, #48] ; 0x30
HAL_GPIO_Init(DISP_ON_GPIO_Port, &GPIO_InitStruct);
8000900: f107 0324 add.w r3, r7, #36 ; 0x24
8000904: 4619 mov r1, r3
8000906: 481d ldr r0, [pc, #116] ; (800097c <MX_GPIO_Init+0x1e4>)
8000908: f011 ffa2 bl 8012850 <HAL_GPIO_Init>
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = OFF_Pin;
800090c: 2301 movs r3, #1
800090e: 627b str r3, [r7, #36] ; 0x24
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
8000910: 2300 movs r3, #0
8000912: 62bb str r3, [r7, #40] ; 0x28
GPIO_InitStruct.Pull = GPIO_NOPULL;
8000914: 2300 movs r3, #0
8000916: 62fb str r3, [r7, #44] ; 0x2c
HAL_GPIO_Init(OFF_GPIO_Port, &GPIO_InitStruct);
8000918: f107 0324 add.w r3, r7, #36 ; 0x24
800091c: 4619 mov r1, r3
800091e: 4817 ldr r0, [pc, #92] ; (800097c <MX_GPIO_Init+0x1e4>)
8000920: f011 ff96 bl 8012850 <HAL_GPIO_Init>
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = RESET_Pin;
8000924: 2340 movs r3, #64 ; 0x40
8000926: 627b str r3, [r7, #36] ; 0x24
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
8000928: 2301 movs r3, #1
800092a: 62bb str r3, [r7, #40] ; 0x28
GPIO_InitStruct.Pull = GPIO_NOPULL;
800092c: 2300 movs r3, #0
800092e: 62fb str r3, [r7, #44] ; 0x2c
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
8000930: 2302 movs r3, #2
8000932: 633b str r3, [r7, #48] ; 0x30
HAL_GPIO_Init(RESET_GPIO_Port, &GPIO_InitStruct);
8000934: f107 0324 add.w r3, r7, #36 ; 0x24
8000938: 4619 mov r1, r3
800093a: 480f ldr r0, [pc, #60] ; (8000978 <MX_GPIO_Init+0x1e0>)
800093c: f011 ff88 bl 8012850 <HAL_GPIO_Init>
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(RE_GPIO_Port, &GPIO_InitStruct);*/
HAL_GPIO_WritePin(ON_GPIO_Port, ON_Pin, GPIO_PIN_SET);
8000940: 2201 movs r2, #1
8000942: f44f 7180 mov.w r1, #256 ; 0x100
8000946: 480b ldr r0, [pc, #44] ; (8000974 <MX_GPIO_Init+0x1dc>)
8000948: f012 f944 bl 8012bd4 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(ON1_GPIO_Port, ON1_Pin, GPIO_PIN_SET);
800094c: 2201 movs r2, #1
800094e: 2120 movs r1, #32
8000950: 4808 ldr r0, [pc, #32] ; (8000974 <MX_GPIO_Init+0x1dc>)
8000952: f012 f93f bl 8012bd4 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_SET); // BACKLIGHT IS OFF
8000956: 2201 movs r2, #1
8000958: f44f 7180 mov.w r1, #256 ; 0x100
800095c: 4807 ldr r0, [pc, #28] ; (800097c <MX_GPIO_Init+0x1e4>)
800095e: f012 f939 bl 8012bd4 <HAL_GPIO_WritePin>
}
8000962: bf00 nop
8000964: 3738 adds r7, #56 ; 0x38
8000966: 46bd mov sp, r7
8000968: bd80 pop {r7, pc}
800096a: bf00 nop
800096c: 40023800 .word 0x40023800
8000970: 40021000 .word 0x40021000
8000974: 40021400 .word 0x40021400
8000978: 40020c00 .word 0x40020c00
800097c: 40020000 .word 0x40020000
08000980 <initKeys>:
void initKeys(void)
{
8000980: b580 push {r7, lr}
8000982: af00 add r7, sp, #0
KeysIsReady = false;
8000984: 4b09 ldr r3, [pc, #36] ; (80009ac <initKeys+0x2c>)
8000986: 2200 movs r2, #0
8000988: 701a strb r2, [r3, #0]
HAL_GPIO_WritePin(U1_GPIO_Port, U1_Pin, GPIO_PIN_SET);
800098a: 2201 movs r2, #1
800098c: 2108 movs r1, #8
800098e: 4808 ldr r0, [pc, #32] ; (80009b0 <initKeys+0x30>)
8000990: f012 f920 bl 8012bd4 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(U2_GPIO_Port, U2_Pin, GPIO_PIN_SET);
8000994: 2201 movs r2, #1
8000996: 2110 movs r1, #16
8000998: 4805 ldr r0, [pc, #20] ; (80009b0 <initKeys+0x30>)
800099a: f012 f91b bl 8012bd4 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(U3_GPIO_Port, U3_Pin, GPIO_PIN_SET);
800099e: 2201 movs r2, #1
80009a0: 2120 movs r1, #32
80009a2: 4803 ldr r0, [pc, #12] ; (80009b0 <initKeys+0x30>)
80009a4: f012 f916 bl 8012bd4 <HAL_GPIO_WritePin>
}
80009a8: bf00 nop
80009aa: bd80 pop {r7, pc}
80009ac: 200209dc .word 0x200209dc
80009b0: 40021000 .word 0x40021000
080009b4 <readkey>:
uint32_t readkey(void)
{
80009b4: b580 push {r7, lr}
80009b6: b082 sub sp, #8
80009b8: af00 add r7, sp, #0
uint32_t key = 0;
80009ba: 2300 movs r3, #0
80009bc: 607b str r3, [r7, #4]
if(KeysIsReady == false){
80009be: 4b34 ldr r3, [pc, #208] ; (8000a90 <readkey+0xdc>)
80009c0: 781b ldrb r3, [r3, #0]
80009c2: b2db uxtb r3, r3
80009c4: f083 0301 eor.w r3, r3, #1
80009c8: b2db uxtb r3, r3
80009ca: 2b00 cmp r3, #0
80009cc: d001 beq.n 80009d2 <readkey+0x1e>
return 0;
80009ce: 2300 movs r3, #0
80009d0: e05a b.n 8000a88 <readkey+0xd4>
}
if(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET) {
80009d2: 2101 movs r1, #1
80009d4: 482f ldr r0, [pc, #188] ; (8000a94 <readkey+0xe0>)
80009d6: f012 f8e5 bl 8012ba4 <HAL_GPIO_ReadPin>
80009da: 4603 mov r3, r0
80009dc: 2b01 cmp r3, #1
80009de: d101 bne.n 80009e4 <readkey+0x30>
key = KEY_PW;
80009e0: 2301 movs r3, #1
80009e2: 607b str r3, [r7, #4]
}
HAL_GPIO_WritePin(U1_GPIO_Port, U1_Pin, GPIO_PIN_SET);
80009e4: 2201 movs r2, #1
80009e6: 2108 movs r1, #8
80009e8: 482b ldr r0, [pc, #172] ; (8000a98 <readkey+0xe4>)
80009ea: f012 f8f3 bl 8012bd4 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(U2_GPIO_Port, U2_Pin, GPIO_PIN_SET);
80009ee: 2201 movs r2, #1
80009f0: 2110 movs r1, #16
80009f2: 4829 ldr r0, [pc, #164] ; (8000a98 <readkey+0xe4>)
80009f4: f012 f8ee bl 8012bd4 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(U3_GPIO_Port, U3_Pin, GPIO_PIN_SET);
80009f8: 2201 movs r2, #1
80009fa: 2120 movs r1, #32
80009fc: 4826 ldr r0, [pc, #152] ; (8000a98 <readkey+0xe4>)
80009fe: f012 f8e9 bl 8012bd4 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(U1_GPIO_Port, U1_Pin, GPIO_PIN_RESET);
8000a02: 2200 movs r2, #0
8000a04: 2108 movs r1, #8
8000a06: 4824 ldr r0, [pc, #144] ; (8000a98 <readkey+0xe4>)
8000a08: f012 f8e4 bl 8012bd4 <HAL_GPIO_WritePin>
if(HAL_GPIO_ReadPin(K1_GPIO_Port, K1_Pin) == GPIO_PIN_RESET) {
8000a0c: f44f 7100 mov.w r1, #512 ; 0x200
8000a10: 4820 ldr r0, [pc, #128] ; (8000a94 <readkey+0xe0>)
8000a12: f012 f8c7 bl 8012ba4 <HAL_GPIO_ReadPin>
8000a16: 4603 mov r3, r0
8000a18: 2b00 cmp r3, #0
8000a1a: d103 bne.n 8000a24 <readkey+0x70>
key |= KEY_DN;
8000a1c: 687b ldr r3, [r7, #4]
8000a1e: f043 0304 orr.w r3, r3, #4
8000a22: 607b str r3, [r7, #4]
}
HAL_GPIO_WritePin(U1_GPIO_Port, U1_Pin, GPIO_PIN_SET);
8000a24: 2201 movs r2, #1
8000a26: 2108 movs r1, #8
8000a28: 481b ldr r0, [pc, #108] ; (8000a98 <readkey+0xe4>)
8000a2a: f012 f8d3 bl 8012bd4 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(U2_GPIO_Port, U2_Pin, GPIO_PIN_RESET);
8000a2e: 2200 movs r2, #0
8000a30: 2110 movs r1, #16
8000a32: 4819 ldr r0, [pc, #100] ; (8000a98 <readkey+0xe4>)
8000a34: f012 f8ce bl 8012bd4 <HAL_GPIO_WritePin>
if(HAL_GPIO_ReadPin(K1_GPIO_Port, K1_Pin) == GPIO_PIN_RESET) {
8000a38: f44f 7100 mov.w r1, #512 ; 0x200
8000a3c: 4815 ldr r0, [pc, #84] ; (8000a94 <readkey+0xe0>)
8000a3e: f012 f8b1 bl 8012ba4 <HAL_GPIO_ReadPin>
8000a42: 4603 mov r3, r0
8000a44: 2b00 cmp r3, #0
8000a46: d103 bne.n 8000a50 <readkey+0x9c>
key |= KEY_OK;
8000a48: 687b ldr r3, [r7, #4]
8000a4a: f043 0320 orr.w r3, r3, #32
8000a4e: 607b str r3, [r7, #4]
}
HAL_GPIO_WritePin(U2_GPIO_Port, U2_Pin, GPIO_PIN_SET);
8000a50: 2201 movs r2, #1
8000a52: 2110 movs r1, #16
8000a54: 4810 ldr r0, [pc, #64] ; (8000a98 <readkey+0xe4>)
8000a56: f012 f8bd bl 8012bd4 <HAL_GPIO_WritePin>
HAL_GPIO_WritePin(U3_GPIO_Port, U3_Pin, GPIO_PIN_RESET);
8000a5a: 2200 movs r2, #0
8000a5c: 2120 movs r1, #32
8000a5e: 480e ldr r0, [pc, #56] ; (8000a98 <readkey+0xe4>)
8000a60: f012 f8b8 bl 8012bd4 <HAL_GPIO_WritePin>
if(HAL_GPIO_ReadPin(K1_GPIO_Port, K1_Pin) == GPIO_PIN_RESET) {
8000a64: f44f 7100 mov.w r1, #512 ; 0x200
8000a68: 480a ldr r0, [pc, #40] ; (8000a94 <readkey+0xe0>)
8000a6a: f012 f89b bl 8012ba4 <HAL_GPIO_ReadPin>
8000a6e: 4603 mov r3, r0
8000a70: 2b00 cmp r3, #0
8000a72: d103 bne.n 8000a7c <readkey+0xc8>
key |= KEY_UP;
8000a74: 687b ldr r3, [r7, #4]
8000a76: f043 0302 orr.w r3, r3, #2
8000a7a: 607b str r3, [r7, #4]
}
HAL_GPIO_WritePin(U3_GPIO_Port, U3_Pin, GPIO_PIN_SET);
8000a7c: 2201 movs r2, #1
8000a7e: 2120 movs r1, #32
8000a80: 4805 ldr r0, [pc, #20] ; (8000a98 <readkey+0xe4>)
8000a82: f012 f8a7 bl 8012bd4 <HAL_GPIO_WritePin>
return key;
8000a86: 687b ldr r3, [r7, #4]
}
8000a88: 4618 mov r0, r3
8000a8a: 3708 adds r7, #8
8000a8c: 46bd mov sp, r7
8000a8e: bd80 pop {r7, pc}
8000a90: 200209dc .word 0x200209dc
8000a94: 40020000 .word 0x40020000
8000a98: 40021000 .word 0x40021000
08000a9c <kbhit>:
uint32_t kbhit(void)
{
8000a9c: b580 push {r7, lr}
8000a9e: b082 sub sp, #8
8000aa0: af00 add r7, sp, #0
volatile uint32_t key = 0;;
8000aa2: 2300 movs r3, #0
8000aa4: 607b str r3, [r7, #4]
static uint16_t rep = 50;
do
{
key = readkey();
8000aa6: f7ff ff85 bl 80009b4 <readkey>
8000aaa: 4603 mov r3, r0
8000aac: 607b str r3, [r7, #4]
if(!key)
8000aae: 687b ldr r3, [r7, #4]
8000ab0: 2b00 cmp r3, #0
8000ab2: d10d bne.n 8000ad0 <kbhit+0x34>
{
if(dreb) dreb--;
8000ab4: 4b2d ldr r3, [pc, #180] ; (8000b6c <kbhit+0xd0>)
8000ab6: 681b ldr r3, [r3, #0]
8000ab8: 2b00 cmp r3, #0
8000aba: d005 beq.n 8000ac8 <kbhit+0x2c>
8000abc: 4b2b ldr r3, [pc, #172] ; (8000b6c <kbhit+0xd0>)
8000abe: 681b ldr r3, [r3, #0]
8000ac0: 3b01 subs r3, #1
8000ac2: 4a2a ldr r2, [pc, #168] ; (8000b6c <kbhit+0xd0>)
8000ac4: 6013 str r3, [r2, #0]
8000ac6: e00c b.n 8000ae2 <kbhit+0x46>
else first = 1;
8000ac8: 4b29 ldr r3, [pc, #164] ; (8000b70 <kbhit+0xd4>)
8000aca: 2201 movs r2, #1
8000acc: 701a strb r2, [r3, #0]
8000ace: e008 b.n 8000ae2 <kbhit+0x46>
}
else
{
if(dreb < KEY_DBZ)
8000ad0: 4b26 ldr r3, [pc, #152] ; (8000b6c <kbhit+0xd0>)
8000ad2: 681b ldr r3, [r3, #0]
8000ad4: 2b01 cmp r3, #1
8000ad6: d804 bhi.n 8000ae2 <kbhit+0x46>
dreb++;
8000ad8: 4b24 ldr r3, [pc, #144] ; (8000b6c <kbhit+0xd0>)
8000ada: 681b ldr r3, [r3, #0]
8000adc: 3301 adds r3, #1
8000ade: 4a23 ldr r2, [pc, #140] ; (8000b6c <kbhit+0xd0>)
8000ae0: 6013 str r3, [r2, #0]
}
}
while((dreb > 0) && (dreb < KEY_DBZ));
8000ae2: 4b22 ldr r3, [pc, #136] ; (8000b6c <kbhit+0xd0>)
8000ae4: 681b ldr r3, [r3, #0]
8000ae6: 2b00 cmp r3, #0
8000ae8: d003 beq.n 8000af2 <kbhit+0x56>
8000aea: 4b20 ldr r3, [pc, #128] ; (8000b6c <kbhit+0xd0>)
8000aec: 681b ldr r3, [r3, #0]
8000aee: 2b01 cmp r3, #1
8000af0: d9d9 bls.n 8000aa6 <kbhit+0xa>
if(!key) //<2F><><E5><F1> <20><><EA><ED><EE><EF> <20><><EE><F2><EF><F3><F9><E5>
8000af2: 687b ldr r3, [r7, #4]
8000af4: 2b00 cmp r3, #0
8000af6: d104 bne.n 8000b02 <kbhit+0x66>
{
first = 1; //<2F><><E4><EE><F1><F2><EE><E2><E5><F0> <20><><EA><ED><EE><EF> <20><><EE><F2><EF><F3><F9><E5>
8000af8: 4b1d ldr r3, [pc, #116] ; (8000b70 <kbhit+0xd4>)
8000afa: 2201 movs r2, #1
8000afc: 701a strb r2, [r3, #0]
return 0; //<2F><><E2><E5><F0><ED><F3> 0
8000afe: 2300 movs r3, #0
8000b00: e02f b.n 8000b62 <kbhit+0xc6>
}
else //<2F><><E8><ED><E0>
{
if(first) //<2F><><EE><EF><F0><E5><E4><E5><EB><E8> <20><><EA><ED><EE><EF>
8000b02: 4b1b ldr r3, [pc, #108] ; (8000b70 <kbhit+0xd4>)
8000b04: 781b ldrb r3, [r3, #0]
8000b06: 2b00 cmp r3, #0
8000b08: d00c beq.n 8000b24 <kbhit+0x88>
{ //<2F><><F2><EE><EB><FC> <20><><EE><E4> <20><><F0>
first = 0; //<2F><> <20><><ED><E0><E6><E0><F2>
8000b0a: 4b19 ldr r3, [pc, #100] ; (8000b70 <kbhit+0xd4>)
8000b0c: 2200 movs r2, #0
8000b0e: 701a strb r2, [r3, #0]
repeat = rep = 2000;
8000b10: 4b18 ldr r3, [pc, #96] ; (8000b74 <kbhit+0xd8>)
8000b12: f44f 62fa mov.w r2, #2000 ; 0x7d0
8000b16: 801a strh r2, [r3, #0]
8000b18: 4b16 ldr r3, [pc, #88] ; (8000b74 <kbhit+0xd8>)
8000b1a: 881a ldrh r2, [r3, #0]
8000b1c: 4b16 ldr r3, [pc, #88] ; (8000b78 <kbhit+0xdc>)
8000b1e: 801a strh r2, [r3, #0]
return key; //<2F><><E2><E5><F0><ED><F3> <20> <20><><E3><EB><E0><E2><ED> <20><><F4><F3><ED><EA><F6> <20><><F1><EE><F1><F2><EE><FF><ED> <20><><EA><EB><E0><E2><E8><E0><F2><F3>
8000b20: 687b ldr r3, [r7, #4]
8000b22: e01e b.n 8000b62 <kbhit+0xc6>
}
else
{
if(repeat)
8000b24: 4b14 ldr r3, [pc, #80] ; (8000b78 <kbhit+0xdc>)
8000b26: 881b ldrh r3, [r3, #0]
8000b28: b29b uxth r3, r3
8000b2a: 2b00 cmp r3, #0
8000b2c: d001 beq.n 8000b32 <kbhit+0x96>
return 0; //<2F><><E8><EC><E8><F2><E0><F6> <20><><F1><E2><EE><E1><EE><E4><ED> <20><><EA><EB><E0><E2><E8><E0><F2><F3>
8000b2e: 2300 movs r3, #0
8000b30: e017 b.n 8000b62 <kbhit+0xc6>
else
{
if(rep > 0)
8000b32: 4b10 ldr r3, [pc, #64] ; (8000b74 <kbhit+0xd8>)
8000b34: 881b ldrh r3, [r3, #0]
8000b36: 2b00 cmp r3, #0
8000b38: d006 beq.n 8000b48 <kbhit+0xac>
rep >>= 1;
8000b3a: 4b0e ldr r3, [pc, #56] ; (8000b74 <kbhit+0xd8>)
8000b3c: 881b ldrh r3, [r3, #0]
8000b3e: 085b lsrs r3, r3, #1
8000b40: b29a uxth r2, r3
8000b42: 4b0c ldr r3, [pc, #48] ; (8000b74 <kbhit+0xd8>)
8000b44: 801a strh r2, [r3, #0]
8000b46: e002 b.n 8000b4e <kbhit+0xb2>
else rep = 100;
8000b48: 4b0a ldr r3, [pc, #40] ; (8000b74 <kbhit+0xd8>)
8000b4a: 2264 movs r2, #100 ; 0x64
8000b4c: 801a strh r2, [r3, #0]
repeat = rep;
8000b4e: 4b09 ldr r3, [pc, #36] ; (8000b74 <kbhit+0xd8>)
8000b50: 881a ldrh r2, [r3, #0]
8000b52: 4b09 ldr r3, [pc, #36] ; (8000b78 <kbhit+0xdc>)
8000b54: 801a strh r2, [r3, #0]
if(key == KEY_PW)
8000b56: 687b ldr r3, [r7, #4]
8000b58: 2b01 cmp r3, #1
8000b5a: d101 bne.n 8000b60 <kbhit+0xc4>
return 0;
8000b5c: 2300 movs r3, #0
8000b5e: e000 b.n 8000b62 <kbhit+0xc6>
return key;
8000b60: 687b ldr r3, [r7, #4]
}
}
}
}
8000b62: 4618 mov r0, r3
8000b64: 3708 adds r7, #8
8000b66: 46bd mov sp, r7
8000b68: bd80 pop {r7, pc}
8000b6a: bf00 nop
8000b6c: 200209e8 .word 0x200209e8
8000b70: 20020012 .word 0x20020012
8000b74: 20020014 .word 0x20020014
8000b78: 200209da .word 0x200209da
08000b7c <keyIns>:
void keyIns(void)
{
8000b7c: b580 push {r7, lr}
8000b7e: b09e sub sp, #120 ; 0x78
8000b80: af00 add r7, sp, #0
volatile uint8_t idt, iet, ies, ied, iee, ikd, iks, ikt;
uint16_t multA_u16, multB_u16, dX, dXold, MaxLevel;
char string[40], str[40];
float32_t f, fl;
uint32_t Year, Month, Day, Hour, Min, Sec;
float32_t fa[3] = {0, 0, 0};
8000b82: f04f 0300 mov.w r3, #0
8000b86: 60fb str r3, [r7, #12]
8000b88: f04f 0300 mov.w r3, #0
8000b8c: 613b str r3, [r7, #16]
8000b8e: f04f 0300 mov.w r3, #0
8000b92: 617b str r3, [r7, #20]
float32_t ff[3] = {0, 0, 0};
8000b94: f04f 0300 mov.w r3, #0
8000b98: 603b str r3, [r7, #0]
8000b9a: f04f 0300 mov.w r3, #0
8000b9e: 607b str r3, [r7, #4]
8000ba0: f04f 0300 mov.w r3, #0
8000ba4: 60bb str r3, [r7, #8]
uint8_t tmp8;
uint16_t last_val, last_iin;
key = KEY_STATE;
8000ba6: 4bbc ldr r3, [pc, #752] ; (8000e98 <keyIns+0x31c>)
8000ba8: 681b ldr r3, [r3, #0]
8000baa: 677b str r3, [r7, #116] ; 0x74
KEY_STATE = 0;
8000bac: 4bba ldr r3, [pc, #744] ; (8000e98 <keyIns+0x31c>)
8000bae: 2200 movs r2, #0
8000bb0: 601a str r2, [r3, #0]
if(key)
8000bb2: 6f7b ldr r3, [r7, #116] ; 0x74
8000bb4: 2b00 cmp r3, #0
8000bb6: f001 835f beq.w 8002278 <keyIns+0x16fc>
{
if(DrawStatus)
8000bba: 4bb8 ldr r3, [pc, #736] ; (8000e9c <keyIns+0x320>)
8000bbc: 781b ldrb r3, [r3, #0]
8000bbe: b2db uxtb r3, r3
8000bc0: 2b00 cmp r3, #0
8000bc2: d00a beq.n 8000bda <keyIns+0x5e>
{
DrawStatus = false;
8000bc4: 4bb5 ldr r3, [pc, #724] ; (8000e9c <keyIns+0x320>)
8000bc6: 2200 movs r2, #0
8000bc8: 701a strb r2, [r3, #0]
timerStatus = 0;
8000bca: 4bb5 ldr r3, [pc, #724] ; (8000ea0 <keyIns+0x324>)
8000bcc: 2200 movs r2, #0
8000bce: 801a strh r2, [r3, #0]
STATUS = AP_OK;
8000bd0: 4bb4 ldr r3, [pc, #720] ; (8000ea4 <keyIns+0x328>)
8000bd2: 2200 movs r2, #0
8000bd4: 601a str r2, [r3, #0]
8000bd6: f001 bb4f b.w 8002278 <keyIns+0x16fc>
return;
}
switch(key)
8000bda: 6f7b ldr r3, [r7, #116] ; 0x74
8000bdc: 3b01 subs r3, #1
8000bde: 2b1f cmp r3, #31
8000be0: f201 834a bhi.w 8002278 <keyIns+0x16fc>
8000be4: a201 add r2, pc, #4 ; (adr r2, 8000bec <keyIns+0x70>)
8000be6: f852 f023 ldr.w pc, [r2, r3, lsl #2]
8000bea: bf00 nop
8000bec: 0800221b .word 0x0800221b
8000bf0: 08000c6d .word 0x08000c6d
8000bf4: 08002279 .word 0x08002279
8000bf8: 0800156f .word 0x0800156f
8000bfc: 08002279 .word 0x08002279
8000c00: 08002279 .word 0x08002279
8000c04: 08002279 .word 0x08002279
8000c08: 08002279 .word 0x08002279
8000c0c: 08002279 .word 0x08002279
8000c10: 08002279 .word 0x08002279
8000c14: 08002279 .word 0x08002279
8000c18: 08002279 .word 0x08002279
8000c1c: 08002279 .word 0x08002279
8000c20: 08002279 .word 0x08002279
8000c24: 08002279 .word 0x08002279
8000c28: 08002279 .word 0x08002279
8000c2c: 08002279 .word 0x08002279
8000c30: 08002279 .word 0x08002279
8000c34: 08002279 .word 0x08002279
8000c38: 08002279 .word 0x08002279
8000c3c: 08002279 .word 0x08002279
8000c40: 08002279 .word 0x08002279
8000c44: 08002279 .word 0x08002279
8000c48: 08002279 .word 0x08002279
8000c4c: 08002279 .word 0x08002279
8000c50: 08002279 .word 0x08002279
8000c54: 08002279 .word 0x08002279
8000c58: 08002279 .word 0x08002279
8000c5c: 08002279 .word 0x08002279
8000c60: 08002279 .word 0x08002279
8000c64: 08002279 .word 0x08002279
8000c68: 08001ca9 .word 0x08001ca9
{
case KEY_UP://TODO KEY UP
{
if(menu == OPTIONS)
8000c6c: 4b8e ldr r3, [pc, #568] ; (8000ea8 <keyIns+0x32c>)
8000c6e: 781b ldrb r3, [r3, #0]
8000c70: b2db uxtb r3, r3
8000c72: 2b19 cmp r3, #25
8000c74: d136 bne.n 8000ce4 <keyIns+0x168>
{
if(!focused)
8000c76: 4b8d ldr r3, [pc, #564] ; (8000eac <keyIns+0x330>)
8000c78: 781b ldrb r3, [r3, #0]
8000c7a: b2db uxtb r3, r3
8000c7c: f083 0301 eor.w r3, r3, #1
8000c80: b2db uxtb r3, r3
8000c82: 2b00 cmp r3, #0
8000c84: d01c beq.n 8000cc0 <keyIns+0x144>
{
if(menupos == Back) menupos = PowerOff;
8000c86: 4b8a ldr r3, [pc, #552] ; (8000eb0 <keyIns+0x334>)
8000c88: 781b ldrb r3, [r3, #0]
8000c8a: b2db uxtb r3, r3
8000c8c: 2bff cmp r3, #255 ; 0xff
8000c8e: d104 bne.n 8000c9a <keyIns+0x11e>
8000c90: 4b87 ldr r3, [pc, #540] ; (8000eb0 <keyIns+0x334>)
8000c92: 2202 movs r2, #2
8000c94: 701a strb r2, [r3, #0]
if(menupos == Set_100)
menupos = Set100;
}
}
}
break;
8000c96: f001 bae8 b.w 800226a <keyIns+0x16ee>
else if(menupos == Inputs) menupos = Back;
8000c9a: 4b85 ldr r3, [pc, #532] ; (8000eb0 <keyIns+0x334>)
8000c9c: 781b ldrb r3, [r3, #0]
8000c9e: b2db uxtb r3, r3
8000ca0: 2b00 cmp r3, #0
8000ca2: d104 bne.n 8000cae <keyIns+0x132>
8000ca4: 4b82 ldr r3, [pc, #520] ; (8000eb0 <keyIns+0x334>)
8000ca6: 22ff movs r2, #255 ; 0xff
8000ca8: 701a strb r2, [r3, #0]
break;
8000caa: f001 bade b.w 800226a <keyIns+0x16ee>
else menupos--;
8000cae: 4b80 ldr r3, [pc, #512] ; (8000eb0 <keyIns+0x334>)
8000cb0: 781b ldrb r3, [r3, #0]
8000cb2: b2db uxtb r3, r3
8000cb4: 3b01 subs r3, #1
8000cb6: b2da uxtb r2, r3
8000cb8: 4b7d ldr r3, [pc, #500] ; (8000eb0 <keyIns+0x334>)
8000cba: 701a strb r2, [r3, #0]
break;
8000cbc: f001 bad5 b.w 800226a <keyIns+0x16ee>
if(menupos == Lang) {
8000cc0: 4b7b ldr r3, [pc, #492] ; (8000eb0 <keyIns+0x334>)
8000cc2: 781b ldrb r3, [r3, #0]
8000cc4: b2db uxtb r3, r3
8000cc6: 2b01 cmp r3, #1
8000cc8: f041 82cf bne.w 800226a <keyIns+0x16ee>
pardata.LANG ^= 1;
8000ccc: 4b79 ldr r3, [pc, #484] ; (8000eb4 <keyIns+0x338>)
8000cce: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8000cd2: b29b uxth r3, r3
8000cd4: f083 0301 eor.w r3, r3, #1
8000cd8: b29a uxth r2, r3
8000cda: 4b76 ldr r3, [pc, #472] ; (8000eb4 <keyIns+0x338>)
8000cdc: f8a3 2206 strh.w r2, [r3, #518] ; 0x206
break;
8000ce0: f001 bac3 b.w 800226a <keyIns+0x16ee>
if(menu == SETTINGS)
8000ce4: 4b70 ldr r3, [pc, #448] ; (8000ea8 <keyIns+0x32c>)
8000ce6: 781b ldrb r3, [r3, #0]
8000ce8: b2db uxtb r3, r3
8000cea: 2b2b cmp r3, #43 ; 0x2b
8000cec: f040 81d0 bne.w 8001090 <keyIns+0x514>
if(menupos == Back)
8000cf0: 4b6f ldr r3, [pc, #444] ; (8000eb0 <keyIns+0x334>)
8000cf2: 781b ldrb r3, [r3, #0]
8000cf4: b2db uxtb r3, r3
8000cf6: 2bff cmp r3, #255 ; 0xff
8000cf8: d104 bne.n 8000d04 <keyIns+0x188>
menupos = Val_4;
8000cfa: 4b6d ldr r3, [pc, #436] ; (8000eb0 <keyIns+0x334>)
8000cfc: 2219 movs r2, #25
8000cfe: 701a strb r2, [r3, #0]
break;
8000d00: f001 bab3 b.w 800226a <keyIns+0x16ee>
if(menupos == Val_4)
8000d04: 4b6a ldr r3, [pc, #424] ; (8000eb0 <keyIns+0x334>)
8000d06: 781b ldrb r3, [r3, #0]
8000d08: b2db uxtb r3, r3
8000d0a: 2b19 cmp r3, #25
8000d0c: d155 bne.n 8000dba <keyIns+0x23e>
if(!focused)
8000d0e: 4b67 ldr r3, [pc, #412] ; (8000eac <keyIns+0x330>)
8000d10: 781b ldrb r3, [r3, #0]
8000d12: b2db uxtb r3, r3
8000d14: f083 0301 eor.w r3, r3, #1
8000d18: b2db uxtb r3, r3
8000d1a: 2b00 cmp r3, #0
8000d1c: d004 beq.n 8000d28 <keyIns+0x1ac>
menupos = Sens_4;
8000d1e: 4b64 ldr r3, [pc, #400] ; (8000eb0 <keyIns+0x334>)
8000d20: 2218 movs r2, #24
8000d22: 701a strb r2, [r3, #0]
break;
8000d24: f001 baa1 b.w 800226a <keyIns+0x16ee>
last_iin = pardata.amplif[Ch4].IIN;
8000d28: 4b62 ldr r3, [pc, #392] ; (8000eb4 <keyIns+0x338>)
8000d2a: f8b3 3060 ldrh.w r3, [r3, #96] ; 0x60
8000d2e: f8a7 3072 strh.w r3, [r7, #114] ; 0x72
last_val = pardata.amplif[Ch4].VAL;
8000d32: 4b60 ldr r3, [pc, #384] ; (8000eb4 <keyIns+0x338>)
8000d34: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8000d38: f8a7 3070 strh.w r3, [r7, #112] ; 0x70
if(pardata.amplif[Ch4].VAL < pQ_mV)
8000d3c: 4b5d ldr r3, [pc, #372] ; (8000eb4 <keyIns+0x338>)
8000d3e: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8000d42: b29b uxth r3, r3
8000d44: 2b06 cmp r3, #6
8000d46: d81d bhi.n 8000d84 <keyIns+0x208>
if(pardata.amplif[Ch4].IIN < ICP)
8000d48: 4b5a ldr r3, [pc, #360] ; (8000eb4 <keyIns+0x338>)
8000d4a: f8b3 3060 ldrh.w r3, [r3, #96] ; 0x60
8000d4e: b29b uxth r3, r3
8000d50: 2b00 cmp r3, #0
8000d52: d109 bne.n 8000d68 <keyIns+0x1ec>
pardata.amplif[Ch4].IIN++;
8000d54: 4b57 ldr r3, [pc, #348] ; (8000eb4 <keyIns+0x338>)
8000d56: f8b3 3060 ldrh.w r3, [r3, #96] ; 0x60
8000d5a: b29b uxth r3, r3
8000d5c: 3301 adds r3, #1
8000d5e: b29a uxth r2, r3
8000d60: 4b54 ldr r3, [pc, #336] ; (8000eb4 <keyIns+0x338>)
8000d62: f8a3 2060 strh.w r2, [r3, #96] ; 0x60
8000d66: e015 b.n 8000d94 <keyIns+0x218>
pardata.amplif[Ch4].IIN = CHARGE;
8000d68: 4b52 ldr r3, [pc, #328] ; (8000eb4 <keyIns+0x338>)
8000d6a: 2200 movs r2, #0
8000d6c: f8a3 2060 strh.w r2, [r3, #96] ; 0x60
pardata.amplif[Ch4].VAL++;
8000d70: 4b50 ldr r3, [pc, #320] ; (8000eb4 <keyIns+0x338>)
8000d72: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8000d76: b29b uxth r3, r3
8000d78: 3301 adds r3, #1
8000d7a: b29a uxth r2, r3
8000d7c: 4b4d ldr r3, [pc, #308] ; (8000eb4 <keyIns+0x338>)
8000d7e: f8a3 2072 strh.w r2, [r3, #114] ; 0x72
8000d82: e007 b.n 8000d94 <keyIns+0x218>
pardata.amplif[Ch4].IIN = CHARGE;
8000d84: 4b4b ldr r3, [pc, #300] ; (8000eb4 <keyIns+0x338>)
8000d86: 2200 movs r2, #0
8000d88: f8a3 2060 strh.w r2, [r3, #96] ; 0x60
pardata.amplif[Ch4].VAL = Accel;
8000d8c: 4b49 ldr r3, [pc, #292] ; (8000eb4 <keyIns+0x338>)
8000d8e: 2200 movs r2, #0
8000d90: f8a3 2072 strh.w r2, [r3, #114] ; 0x72
if(WriteChannel(Ch4))
8000d94: 2003 movs r0, #3
8000d96: f00f fb9d bl 80104d4 <WriteChannel>
8000d9a: 4603 mov r3, r0
8000d9c: 2b00 cmp r3, #0
8000d9e: f001 8264 beq.w 800226a <keyIns+0x16ee>
pardata.amplif[Ch4].IIN = last_iin;
8000da2: 4a44 ldr r2, [pc, #272] ; (8000eb4 <keyIns+0x338>)
8000da4: f8b7 3072 ldrh.w r3, [r7, #114] ; 0x72
8000da8: f8a2 3060 strh.w r3, [r2, #96] ; 0x60
pardata.amplif[Ch4].VAL = last_val;
8000dac: 4a41 ldr r2, [pc, #260] ; (8000eb4 <keyIns+0x338>)
8000dae: f8b7 3070 ldrh.w r3, [r7, #112] ; 0x70
8000db2: f8a2 3072 strh.w r3, [r2, #114] ; 0x72
break;
8000db6: f001 ba58 b.w 800226a <keyIns+0x16ee>
if(menupos == Sens_4)
8000dba: 4b3d ldr r3, [pc, #244] ; (8000eb0 <keyIns+0x334>)
8000dbc: 781b ldrb r3, [r3, #0]
8000dbe: b2db uxtb r3, r3
8000dc0: 2b18 cmp r3, #24
8000dc2: d104 bne.n 8000dce <keyIns+0x252>
menupos = Val_3;
8000dc4: 4b3a ldr r3, [pc, #232] ; (8000eb0 <keyIns+0x334>)
8000dc6: 2211 movs r2, #17
8000dc8: 701a strb r2, [r3, #0]
break;
8000dca: f001 ba4e b.w 800226a <keyIns+0x16ee>
if(menupos == Val_3)
8000dce: 4b38 ldr r3, [pc, #224] ; (8000eb0 <keyIns+0x334>)
8000dd0: 781b ldrb r3, [r3, #0]
8000dd2: b2db uxtb r3, r3
8000dd4: 2b11 cmp r3, #17
8000dd6: d155 bne.n 8000e84 <keyIns+0x308>
if(!focused)
8000dd8: 4b34 ldr r3, [pc, #208] ; (8000eac <keyIns+0x330>)
8000dda: 781b ldrb r3, [r3, #0]
8000ddc: b2db uxtb r3, r3
8000dde: f083 0301 eor.w r3, r3, #1
8000de2: b2db uxtb r3, r3
8000de4: 2b00 cmp r3, #0
8000de6: d004 beq.n 8000df2 <keyIns+0x276>
menupos = Sens_3;
8000de8: 4b31 ldr r3, [pc, #196] ; (8000eb0 <keyIns+0x334>)
8000dea: 2210 movs r2, #16
8000dec: 701a strb r2, [r3, #0]
break;
8000dee: f001 ba3c b.w 800226a <keyIns+0x16ee>
last_iin = pardata.amplif[Ch3].IIN;
8000df2: 4b30 ldr r3, [pc, #192] ; (8000eb4 <keyIns+0x338>)
8000df4: f8b3 3040 ldrh.w r3, [r3, #64] ; 0x40
8000df8: f8a7 3072 strh.w r3, [r7, #114] ; 0x72
last_val = pardata.amplif[Ch3].VAL;
8000dfc: 4b2d ldr r3, [pc, #180] ; (8000eb4 <keyIns+0x338>)
8000dfe: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8000e02: f8a7 3070 strh.w r3, [r7, #112] ; 0x70
if(pardata.amplif[Ch3].VAL < pQ_mV)
8000e06: 4b2b ldr r3, [pc, #172] ; (8000eb4 <keyIns+0x338>)
8000e08: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8000e0c: b29b uxth r3, r3
8000e0e: 2b06 cmp r3, #6
8000e10: d81d bhi.n 8000e4e <keyIns+0x2d2>
if(pardata.amplif[Ch3].IIN < ICP)
8000e12: 4b28 ldr r3, [pc, #160] ; (8000eb4 <keyIns+0x338>)
8000e14: f8b3 3040 ldrh.w r3, [r3, #64] ; 0x40
8000e18: b29b uxth r3, r3
8000e1a: 2b00 cmp r3, #0
8000e1c: d109 bne.n 8000e32 <keyIns+0x2b6>
pardata.amplif[Ch3].IIN++;
8000e1e: 4b25 ldr r3, [pc, #148] ; (8000eb4 <keyIns+0x338>)
8000e20: f8b3 3040 ldrh.w r3, [r3, #64] ; 0x40
8000e24: b29b uxth r3, r3
8000e26: 3301 adds r3, #1
8000e28: b29a uxth r2, r3
8000e2a: 4b22 ldr r3, [pc, #136] ; (8000eb4 <keyIns+0x338>)
8000e2c: f8a3 2040 strh.w r2, [r3, #64] ; 0x40
8000e30: e015 b.n 8000e5e <keyIns+0x2e2>
pardata.amplif[Ch3].IIN = CHARGE;
8000e32: 4b20 ldr r3, [pc, #128] ; (8000eb4 <keyIns+0x338>)
8000e34: 2200 movs r2, #0
8000e36: f8a3 2040 strh.w r2, [r3, #64] ; 0x40
pardata.amplif[Ch3].VAL++;
8000e3a: 4b1e ldr r3, [pc, #120] ; (8000eb4 <keyIns+0x338>)
8000e3c: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8000e40: b29b uxth r3, r3
8000e42: 3301 adds r3, #1
8000e44: b29a uxth r2, r3
8000e46: 4b1b ldr r3, [pc, #108] ; (8000eb4 <keyIns+0x338>)
8000e48: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
8000e4c: e007 b.n 8000e5e <keyIns+0x2e2>
pardata.amplif[Ch3].IIN = CHARGE;
8000e4e: 4b19 ldr r3, [pc, #100] ; (8000eb4 <keyIns+0x338>)
8000e50: 2200 movs r2, #0
8000e52: f8a3 2040 strh.w r2, [r3, #64] ; 0x40
pardata.amplif[Ch3].VAL = Accel;
8000e56: 4b17 ldr r3, [pc, #92] ; (8000eb4 <keyIns+0x338>)
8000e58: 2200 movs r2, #0
8000e5a: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
if(WriteChannel(Ch3))
8000e5e: 2002 movs r0, #2
8000e60: f00f fb38 bl 80104d4 <WriteChannel>
8000e64: 4603 mov r3, r0
8000e66: 2b00 cmp r3, #0
8000e68: f001 81ff beq.w 800226a <keyIns+0x16ee>
pardata.amplif[Ch3].IIN = last_iin;
8000e6c: 4a11 ldr r2, [pc, #68] ; (8000eb4 <keyIns+0x338>)
8000e6e: f8b7 3072 ldrh.w r3, [r7, #114] ; 0x72
8000e72: f8a2 3040 strh.w r3, [r2, #64] ; 0x40
pardata.amplif[Ch3].VAL = last_val;
8000e76: 4a0f ldr r2, [pc, #60] ; (8000eb4 <keyIns+0x338>)
8000e78: f8b7 3070 ldrh.w r3, [r7, #112] ; 0x70
8000e7c: f8a2 3052 strh.w r3, [r2, #82] ; 0x52
break;
8000e80: f001 b9f3 b.w 800226a <keyIns+0x16ee>
if(menupos == Sens_3)
8000e84: 4b0a ldr r3, [pc, #40] ; (8000eb0 <keyIns+0x334>)
8000e86: 781b ldrb r3, [r3, #0]
8000e88: b2db uxtb r3, r3
8000e8a: 2b10 cmp r3, #16
8000e8c: d114 bne.n 8000eb8 <keyIns+0x33c>
menupos = Val_2;
8000e8e: 4b08 ldr r3, [pc, #32] ; (8000eb0 <keyIns+0x334>)
8000e90: 2209 movs r2, #9
8000e92: 701a strb r2, [r3, #0]
break;
8000e94: f001 b9e9 b.w 800226a <keyIns+0x16ee>
8000e98: 200209e0 .word 0x200209e0
8000e9c: 2006c164 .word 0x2006c164
8000ea0: 2006ba88 .word 0x2006ba88
8000ea4: 2006c154 .word 0x2006c154
8000ea8: 200209d9 .word 0x200209d9
8000eac: 200209e4 .word 0x200209e4
8000eb0: 20020010 .word 0x20020010
8000eb4: 2006bca8 .word 0x2006bca8
if(menupos == Val_2)
8000eb8: 4b9e ldr r3, [pc, #632] ; (8001134 <keyIns+0x5b8>)
8000eba: 781b ldrb r3, [r3, #0]
8000ebc: b2db uxtb r3, r3
8000ebe: 2b09 cmp r3, #9
8000ec0: d149 bne.n 8000f56 <keyIns+0x3da>
if(!focused)
8000ec2: 4b9d ldr r3, [pc, #628] ; (8001138 <keyIns+0x5bc>)
8000ec4: 781b ldrb r3, [r3, #0]
8000ec6: b2db uxtb r3, r3
8000ec8: f083 0301 eor.w r3, r3, #1
8000ecc: b2db uxtb r3, r3
8000ece: 2b00 cmp r3, #0
8000ed0: d004 beq.n 8000edc <keyIns+0x360>
menupos = Sens_2;
8000ed2: 4b98 ldr r3, [pc, #608] ; (8001134 <keyIns+0x5b8>)
8000ed4: 2208 movs r2, #8
8000ed6: 701a strb r2, [r3, #0]
break;
8000ed8: f001 b9c7 b.w 800226a <keyIns+0x16ee>
last_iin = pardata.amplif[Ch2].IIN;
8000edc: 4b97 ldr r3, [pc, #604] ; (800113c <keyIns+0x5c0>)
8000ede: 8c1b ldrh r3, [r3, #32]
8000ee0: f8a7 3072 strh.w r3, [r7, #114] ; 0x72
last_val = pardata.amplif[Ch4].VAL;
8000ee4: 4b95 ldr r3, [pc, #596] ; (800113c <keyIns+0x5c0>)
8000ee6: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8000eea: f8a7 3070 strh.w r3, [r7, #112] ; 0x70
if(pardata.amplif[Ch2].VAL < pQ_mV)
8000eee: 4b93 ldr r3, [pc, #588] ; (800113c <keyIns+0x5c0>)
8000ef0: 8e5b ldrh r3, [r3, #50] ; 0x32
8000ef2: b29b uxth r3, r3
8000ef4: 2b06 cmp r3, #6
8000ef6: d817 bhi.n 8000f28 <keyIns+0x3ac>
if(pardata.amplif[Ch2].IIN < ICP)
8000ef8: 4b90 ldr r3, [pc, #576] ; (800113c <keyIns+0x5c0>)
8000efa: 8c1b ldrh r3, [r3, #32]
8000efc: b29b uxth r3, r3
8000efe: 2b00 cmp r3, #0
8000f00: d107 bne.n 8000f12 <keyIns+0x396>
pardata.amplif[Ch2].IIN++;
8000f02: 4b8e ldr r3, [pc, #568] ; (800113c <keyIns+0x5c0>)
8000f04: 8c1b ldrh r3, [r3, #32]
8000f06: b29b uxth r3, r3
8000f08: 3301 adds r3, #1
8000f0a: b29a uxth r2, r3
8000f0c: 4b8b ldr r3, [pc, #556] ; (800113c <keyIns+0x5c0>)
8000f0e: 841a strh r2, [r3, #32]
8000f10: e010 b.n 8000f34 <keyIns+0x3b8>
pardata.amplif[Ch2].IIN = CHARGE;
8000f12: 4b8a ldr r3, [pc, #552] ; (800113c <keyIns+0x5c0>)
8000f14: 2200 movs r2, #0
8000f16: 841a strh r2, [r3, #32]
pardata.amplif[Ch2].VAL++;
8000f18: 4b88 ldr r3, [pc, #544] ; (800113c <keyIns+0x5c0>)
8000f1a: 8e5b ldrh r3, [r3, #50] ; 0x32
8000f1c: b29b uxth r3, r3
8000f1e: 3301 adds r3, #1
8000f20: b29a uxth r2, r3
8000f22: 4b86 ldr r3, [pc, #536] ; (800113c <keyIns+0x5c0>)
8000f24: 865a strh r2, [r3, #50] ; 0x32
8000f26: e005 b.n 8000f34 <keyIns+0x3b8>
pardata.amplif[Ch2].IIN = CHARGE;
8000f28: 4b84 ldr r3, [pc, #528] ; (800113c <keyIns+0x5c0>)
8000f2a: 2200 movs r2, #0
8000f2c: 841a strh r2, [r3, #32]
pardata.amplif[Ch2].VAL = Accel;
8000f2e: 4b83 ldr r3, [pc, #524] ; (800113c <keyIns+0x5c0>)
8000f30: 2200 movs r2, #0
8000f32: 865a strh r2, [r3, #50] ; 0x32
if(WriteChannel(Ch2))
8000f34: 2001 movs r0, #1
8000f36: f00f facd bl 80104d4 <WriteChannel>
8000f3a: 4603 mov r3, r0
8000f3c: 2b00 cmp r3, #0
8000f3e: f001 8194 beq.w 800226a <keyIns+0x16ee>
pardata.amplif[Ch2].IIN = last_iin;
8000f42: 4a7e ldr r2, [pc, #504] ; (800113c <keyIns+0x5c0>)
8000f44: f8b7 3072 ldrh.w r3, [r7, #114] ; 0x72
8000f48: 8413 strh r3, [r2, #32]
pardata.amplif[Ch2].VAL = last_val;
8000f4a: 4a7c ldr r2, [pc, #496] ; (800113c <keyIns+0x5c0>)
8000f4c: f8b7 3070 ldrh.w r3, [r7, #112] ; 0x70
8000f50: 8653 strh r3, [r2, #50] ; 0x32
break;
8000f52: f001 b98a b.w 800226a <keyIns+0x16ee>
if(menupos == Sens_2)
8000f56: 4b77 ldr r3, [pc, #476] ; (8001134 <keyIns+0x5b8>)
8000f58: 781b ldrb r3, [r3, #0]
8000f5a: b2db uxtb r3, r3
8000f5c: 2b08 cmp r3, #8
8000f5e: d104 bne.n 8000f6a <keyIns+0x3ee>
menupos = Val_1;
8000f60: 4b74 ldr r3, [pc, #464] ; (8001134 <keyIns+0x5b8>)
8000f62: 2201 movs r2, #1
8000f64: 701a strb r2, [r3, #0]
break;
8000f66: f001 b980 b.w 800226a <keyIns+0x16ee>
if(menupos == Val_1)
8000f6a: 4b72 ldr r3, [pc, #456] ; (8001134 <keyIns+0x5b8>)
8000f6c: 781b ldrb r3, [r3, #0]
8000f6e: b2db uxtb r3, r3
8000f70: 2b01 cmp r3, #1
8000f72: d148 bne.n 8001006 <keyIns+0x48a>
if(!focused)
8000f74: 4b70 ldr r3, [pc, #448] ; (8001138 <keyIns+0x5bc>)
8000f76: 781b ldrb r3, [r3, #0]
8000f78: b2db uxtb r3, r3
8000f7a: f083 0301 eor.w r3, r3, #1
8000f7e: b2db uxtb r3, r3
8000f80: 2b00 cmp r3, #0
8000f82: d004 beq.n 8000f8e <keyIns+0x412>
menupos = Sens_1;
8000f84: 4b6b ldr r3, [pc, #428] ; (8001134 <keyIns+0x5b8>)
8000f86: 2200 movs r2, #0
8000f88: 701a strb r2, [r3, #0]
break;
8000f8a: f001 b96e b.w 800226a <keyIns+0x16ee>
last_iin = pardata.amplif[Ch1].IIN;
8000f8e: 4b6b ldr r3, [pc, #428] ; (800113c <keyIns+0x5c0>)
8000f90: 881b ldrh r3, [r3, #0]
8000f92: f8a7 3072 strh.w r3, [r7, #114] ; 0x72
last_val = pardata.amplif[Ch1].VAL;
8000f96: 4b69 ldr r3, [pc, #420] ; (800113c <keyIns+0x5c0>)
8000f98: 8a5b ldrh r3, [r3, #18]
8000f9a: f8a7 3070 strh.w r3, [r7, #112] ; 0x70
if(pardata.amplif[Ch1].VAL < pQ_mV)
8000f9e: 4b67 ldr r3, [pc, #412] ; (800113c <keyIns+0x5c0>)
8000fa0: 8a5b ldrh r3, [r3, #18]
8000fa2: b29b uxth r3, r3
8000fa4: 2b06 cmp r3, #6
8000fa6: d817 bhi.n 8000fd8 <keyIns+0x45c>
if(pardata.amplif[Ch1].IIN < ICP)
8000fa8: 4b64 ldr r3, [pc, #400] ; (800113c <keyIns+0x5c0>)
8000faa: 881b ldrh r3, [r3, #0]
8000fac: b29b uxth r3, r3
8000fae: 2b00 cmp r3, #0
8000fb0: d107 bne.n 8000fc2 <keyIns+0x446>
pardata.amplif[Ch1].IIN++;
8000fb2: 4b62 ldr r3, [pc, #392] ; (800113c <keyIns+0x5c0>)
8000fb4: 881b ldrh r3, [r3, #0]
8000fb6: b29b uxth r3, r3
8000fb8: 3301 adds r3, #1
8000fba: b29a uxth r2, r3
8000fbc: 4b5f ldr r3, [pc, #380] ; (800113c <keyIns+0x5c0>)
8000fbe: 801a strh r2, [r3, #0]
8000fc0: e010 b.n 8000fe4 <keyIns+0x468>
pardata.amplif[Ch1].IIN = CHARGE;
8000fc2: 4b5e ldr r3, [pc, #376] ; (800113c <keyIns+0x5c0>)
8000fc4: 2200 movs r2, #0
8000fc6: 801a strh r2, [r3, #0]
pardata.amplif[Ch1].VAL++;
8000fc8: 4b5c ldr r3, [pc, #368] ; (800113c <keyIns+0x5c0>)
8000fca: 8a5b ldrh r3, [r3, #18]
8000fcc: b29b uxth r3, r3
8000fce: 3301 adds r3, #1
8000fd0: b29a uxth r2, r3
8000fd2: 4b5a ldr r3, [pc, #360] ; (800113c <keyIns+0x5c0>)
8000fd4: 825a strh r2, [r3, #18]
8000fd6: e005 b.n 8000fe4 <keyIns+0x468>
pardata.amplif[Ch1].IIN = CHARGE;
8000fd8: 4b58 ldr r3, [pc, #352] ; (800113c <keyIns+0x5c0>)
8000fda: 2200 movs r2, #0
8000fdc: 801a strh r2, [r3, #0]
pardata.amplif[Ch1].VAL = Accel;
8000fde: 4b57 ldr r3, [pc, #348] ; (800113c <keyIns+0x5c0>)
8000fe0: 2200 movs r2, #0
8000fe2: 825a strh r2, [r3, #18]
if(WriteChannel(Ch1))
8000fe4: 2000 movs r0, #0
8000fe6: f00f fa75 bl 80104d4 <WriteChannel>
8000fea: 4603 mov r3, r0
8000fec: 2b00 cmp r3, #0
8000fee: f001 813c beq.w 800226a <keyIns+0x16ee>
pardata.amplif[Ch1].IIN = last_iin;
8000ff2: 4a52 ldr r2, [pc, #328] ; (800113c <keyIns+0x5c0>)
8000ff4: f8b7 3072 ldrh.w r3, [r7, #114] ; 0x72
8000ff8: 8013 strh r3, [r2, #0]
pardata.amplif[Ch1].VAL = last_val;
8000ffa: 4a50 ldr r2, [pc, #320] ; (800113c <keyIns+0x5c0>)
8000ffc: f8b7 3070 ldrh.w r3, [r7, #112] ; 0x70
8001000: 8253 strh r3, [r2, #18]
break;
8001002: f001 b932 b.w 800226a <keyIns+0x16ee>
if(menupos == Sens_1)
8001006: 4b4b ldr r3, [pc, #300] ; (8001134 <keyIns+0x5b8>)
8001008: 781b ldrb r3, [r3, #0]
800100a: b2db uxtb r3, r3
800100c: 2b00 cmp r3, #0
800100e: d104 bne.n 800101a <keyIns+0x49e>
menupos = Back;
8001010: 4b48 ldr r3, [pc, #288] ; (8001134 <keyIns+0x5b8>)
8001012: 22ff movs r2, #255 ; 0xff
8001014: 701a strb r2, [r3, #0]
break;
8001016: f001 b928 b.w 800226a <keyIns+0x16ee>
if(menupos >= Kikdt_1 && menupos <= Kpt_1) ACTIVE_CHANNEL = Ch1;
800101a: 4b46 ldr r3, [pc, #280] ; (8001134 <keyIns+0x5b8>)
800101c: 781b ldrb r3, [r3, #0]
800101e: b2db uxtb r3, r3
8001020: 2b01 cmp r3, #1
8001022: d908 bls.n 8001036 <keyIns+0x4ba>
8001024: 4b43 ldr r3, [pc, #268] ; (8001134 <keyIns+0x5b8>)
8001026: 781b ldrb r3, [r3, #0]
8001028: b2db uxtb r3, r3
800102a: 2b07 cmp r3, #7
800102c: d803 bhi.n 8001036 <keyIns+0x4ba>
800102e: 4b44 ldr r3, [pc, #272] ; (8001140 <keyIns+0x5c4>)
8001030: 2200 movs r2, #0
8001032: 601a str r2, [r3, #0]
8001034: e028 b.n 8001088 <keyIns+0x50c>
else if(menupos >= Kikdt_2 && menupos <= Kpt_2) ACTIVE_CHANNEL = Ch2;
8001036: 4b3f ldr r3, [pc, #252] ; (8001134 <keyIns+0x5b8>)
8001038: 781b ldrb r3, [r3, #0]
800103a: b2db uxtb r3, r3
800103c: 2b09 cmp r3, #9
800103e: d908 bls.n 8001052 <keyIns+0x4d6>
8001040: 4b3c ldr r3, [pc, #240] ; (8001134 <keyIns+0x5b8>)
8001042: 781b ldrb r3, [r3, #0]
8001044: b2db uxtb r3, r3
8001046: 2b0f cmp r3, #15
8001048: d803 bhi.n 8001052 <keyIns+0x4d6>
800104a: 4b3d ldr r3, [pc, #244] ; (8001140 <keyIns+0x5c4>)
800104c: 2201 movs r2, #1
800104e: 601a str r2, [r3, #0]
8001050: e01a b.n 8001088 <keyIns+0x50c>
else if(menupos >= Kikdt_3 && menupos <= Kpt_3) ACTIVE_CHANNEL = Ch3;
8001052: 4b38 ldr r3, [pc, #224] ; (8001134 <keyIns+0x5b8>)
8001054: 781b ldrb r3, [r3, #0]
8001056: b2db uxtb r3, r3
8001058: 2b11 cmp r3, #17
800105a: d908 bls.n 800106e <keyIns+0x4f2>
800105c: 4b35 ldr r3, [pc, #212] ; (8001134 <keyIns+0x5b8>)
800105e: 781b ldrb r3, [r3, #0]
8001060: b2db uxtb r3, r3
8001062: 2b17 cmp r3, #23
8001064: d803 bhi.n 800106e <keyIns+0x4f2>
8001066: 4b36 ldr r3, [pc, #216] ; (8001140 <keyIns+0x5c4>)
8001068: 2202 movs r2, #2
800106a: 601a str r2, [r3, #0]
800106c: e00c b.n 8001088 <keyIns+0x50c>
else if(menupos >= Kikdt_4 && menupos <= Kpt_4) ACTIVE_CHANNEL = Ch4;
800106e: 4b31 ldr r3, [pc, #196] ; (8001134 <keyIns+0x5b8>)
8001070: 781b ldrb r3, [r3, #0]
8001072: b2db uxtb r3, r3
8001074: 2b19 cmp r3, #25
8001076: d907 bls.n 8001088 <keyIns+0x50c>
8001078: 4b2e ldr r3, [pc, #184] ; (8001134 <keyIns+0x5b8>)
800107a: 781b ldrb r3, [r3, #0]
800107c: b2db uxtb r3, r3
800107e: 2b1f cmp r3, #31
8001080: d802 bhi.n 8001088 <keyIns+0x50c>
8001082: 4b2f ldr r3, [pc, #188] ; (8001140 <keyIns+0x5c4>)
8001084: 2203 movs r2, #3
8001086: 601a str r2, [r3, #0]
DoKeyUP();
8001088: f001 fe38 bl 8002cfc <DoKeyUP>
break;
800108c: f001 b8ed b.w 800226a <keyIns+0x16ee>
if(menu == MAIN)
8001090: 4b2c ldr r3, [pc, #176] ; (8001144 <keyIns+0x5c8>)
8001092: 781b ldrb r3, [r3, #0]
8001094: b2db uxtb r3, r3
8001096: 2b00 cmp r3, #0
8001098: f040 820c bne.w 80014b4 <keyIns+0x938>
if(CNT_CHANNELS < 5)
800109c: 4b2a ldr r3, [pc, #168] ; (8001148 <keyIns+0x5cc>)
800109e: 681b ldr r3, [r3, #0]
80010a0: 2b04 cmp r3, #4
80010a2: f201 80e2 bhi.w 800226a <keyIns+0x16ee>
if(ACTIVE_CHANNEL == Ch1)
80010a6: 4b26 ldr r3, [pc, #152] ; (8001140 <keyIns+0x5c4>)
80010a8: 681b ldr r3, [r3, #0]
80010aa: 2b00 cmp r3, #0
80010ac: f040 8084 bne.w 80011b8 <keyIns+0x63c>
if(menupos == Hp)
80010b0: 4b20 ldr r3, [pc, #128] ; (8001134 <keyIns+0x5b8>)
80010b2: 781b ldrb r3, [r3, #0]
80010b4: b2db uxtb r3, r3
80010b6: 2b00 cmp r3, #0
80010b8: d17a bne.n 80011b0 <keyIns+0x634>
if(focused)
80010ba: 4b1f ldr r3, [pc, #124] ; (8001138 <keyIns+0x5bc>)
80010bc: 781b ldrb r3, [r3, #0]
80010be: b2db uxtb r3, r3
80010c0: 2b00 cmp r3, #0
80010c2: d043 beq.n 800114c <keyIns+0x5d0>
if(pardata.amplif[ACTIVE_CHANNEL].IFV < Hp10)
80010c4: 4b1e ldr r3, [pc, #120] ; (8001140 <keyIns+0x5c4>)
80010c6: 681b ldr r3, [r3, #0]
80010c8: 4a1c ldr r2, [pc, #112] ; (800113c <keyIns+0x5c0>)
80010ca: 015b lsls r3, r3, #5
80010cc: 4413 add r3, r2
80010ce: 3302 adds r3, #2
80010d0: 881b ldrh r3, [r3, #0]
80010d2: b29b uxth r3, r3
80010d4: 2b03 cmp r3, #3
80010d6: f201 80c8 bhi.w 800226a <keyIns+0x16ee>
pardata.amplif[ACTIVE_CHANNEL].IFV++;
80010da: 4b19 ldr r3, [pc, #100] ; (8001140 <keyIns+0x5c4>)
80010dc: 681b ldr r3, [r3, #0]
80010de: 4917 ldr r1, [pc, #92] ; (800113c <keyIns+0x5c0>)
80010e0: 015a lsls r2, r3, #5
80010e2: 440a add r2, r1
80010e4: 3202 adds r2, #2
80010e6: 8812 ldrh r2, [r2, #0]
80010e8: b292 uxth r2, r2
80010ea: 3201 adds r2, #1
80010ec: b291 uxth r1, r2
80010ee: 4a13 ldr r2, [pc, #76] ; (800113c <keyIns+0x5c0>)
80010f0: 015b lsls r3, r3, #5
80010f2: 4413 add r3, r2
80010f4: 3302 adds r3, #2
80010f6: 460a mov r2, r1
80010f8: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
80010fa: 4b11 ldr r3, [pc, #68] ; (8001140 <keyIns+0x5c4>)
80010fc: 681b ldr r3, [r3, #0]
80010fe: b2db uxtb r3, r3
8001100: 4618 mov r0, r3
8001102: f00f f9e7 bl 80104d4 <WriteChannel>
8001106: 4603 mov r3, r0
8001108: 2b00 cmp r3, #0
800110a: f001 80ae beq.w 800226a <keyIns+0x16ee>
pardata.amplif[ACTIVE_CHANNEL].IFV--;
800110e: 4b0c ldr r3, [pc, #48] ; (8001140 <keyIns+0x5c4>)
8001110: 681b ldr r3, [r3, #0]
8001112: 490a ldr r1, [pc, #40] ; (800113c <keyIns+0x5c0>)
8001114: 015a lsls r2, r3, #5
8001116: 440a add r2, r1
8001118: 3202 adds r2, #2
800111a: 8812 ldrh r2, [r2, #0]
800111c: b292 uxth r2, r2
800111e: 3a01 subs r2, #1
8001120: b291 uxth r1, r2
8001122: 4a06 ldr r2, [pc, #24] ; (800113c <keyIns+0x5c0>)
8001124: 015b lsls r3, r3, #5
8001126: 4413 add r3, r2
8001128: 3302 adds r3, #2
800112a: 460a mov r2, r1
800112c: 801a strh r2, [r3, #0]
break;
800112e: f001 b89c b.w 800226a <keyIns+0x16ee>
8001132: bf00 nop
8001134: 20020010 .word 0x20020010
8001138: 200209e4 .word 0x200209e4
800113c: 2006bca8 .word 0x2006bca8
8001140: 2006ba68 .word 0x2006ba68
8001144: 200209d9 .word 0x200209d9
8001148: 2006ba6c .word 0x2006ba6c
ACTIVE_CHANNEL = Ch4;
800114c: 4b96 ldr r3, [pc, #600] ; (80013a8 <keyIns+0x82c>)
800114e: 2203 movs r2, #3
8001150: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001152: 4b95 ldr r3, [pc, #596] ; (80013a8 <keyIns+0x82c>)
8001154: 681b ldr r3, [r3, #0]
8001156: 2201 movs r2, #1
8001158: fa02 f303 lsl.w r3, r2, r3
800115c: 461a mov r2, r3
800115e: 4b93 ldr r3, [pc, #588] ; (80013ac <keyIns+0x830>)
8001160: 681b ldr r3, [r3, #0]
8001162: 4013 ands r3, r2
8001164: 2b00 cmp r3, #0
8001166: d11e bne.n 80011a6 <keyIns+0x62a>
ACTIVE_CHANNEL = Ch3;
8001168: 4b8f ldr r3, [pc, #572] ; (80013a8 <keyIns+0x82c>)
800116a: 2202 movs r2, #2
800116c: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
800116e: 4b8e ldr r3, [pc, #568] ; (80013a8 <keyIns+0x82c>)
8001170: 681b ldr r3, [r3, #0]
8001172: 2201 movs r2, #1
8001174: fa02 f303 lsl.w r3, r2, r3
8001178: 461a mov r2, r3
800117a: 4b8c ldr r3, [pc, #560] ; (80013ac <keyIns+0x830>)
800117c: 681b ldr r3, [r3, #0]
800117e: 4013 ands r3, r2
8001180: 2b00 cmp r3, #0
8001182: d110 bne.n 80011a6 <keyIns+0x62a>
ACTIVE_CHANNEL = Ch2;
8001184: 4b88 ldr r3, [pc, #544] ; (80013a8 <keyIns+0x82c>)
8001186: 2201 movs r2, #1
8001188: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
800118a: 4b87 ldr r3, [pc, #540] ; (80013a8 <keyIns+0x82c>)
800118c: 681b ldr r3, [r3, #0]
800118e: 2201 movs r2, #1
8001190: fa02 f303 lsl.w r3, r2, r3
8001194: 461a mov r2, r3
8001196: 4b85 ldr r3, [pc, #532] ; (80013ac <keyIns+0x830>)
8001198: 681b ldr r3, [r3, #0]
800119a: 4013 ands r3, r2
800119c: 2b00 cmp r3, #0
800119e: d102 bne.n 80011a6 <keyIns+0x62a>
ACTIVE_CHANNEL = Ch1;
80011a0: 4b81 ldr r3, [pc, #516] ; (80013a8 <keyIns+0x82c>)
80011a2: 2200 movs r2, #0
80011a4: 601a str r2, [r3, #0]
menupos = Out;
80011a6: 4b82 ldr r3, [pc, #520] ; (80013b0 <keyIns+0x834>)
80011a8: 2202 movs r2, #2
80011aa: 701a strb r2, [r3, #0]
break;
80011ac: f001 b85d b.w 800226a <keyIns+0x16ee>
SetUP();
80011b0: f001 f870 bl 8002294 <SetUP>
break;
80011b4: f001 b859 b.w 800226a <keyIns+0x16ee>
if(ACTIVE_CHANNEL == Ch2)
80011b8: 4b7b ldr r3, [pc, #492] ; (80013a8 <keyIns+0x82c>)
80011ba: 681b ldr r3, [r3, #0]
80011bc: 2b01 cmp r3, #1
80011be: d176 bne.n 80012ae <keyIns+0x732>
if(menupos == Hp)
80011c0: 4b7b ldr r3, [pc, #492] ; (80013b0 <keyIns+0x834>)
80011c2: 781b ldrb r3, [r3, #0]
80011c4: b2db uxtb r3, r3
80011c6: 2b00 cmp r3, #0
80011c8: d16d bne.n 80012a6 <keyIns+0x72a>
if(focused)
80011ca: 4b7a ldr r3, [pc, #488] ; (80013b4 <keyIns+0x838>)
80011cc: 781b ldrb r3, [r3, #0]
80011ce: b2db uxtb r3, r3
80011d0: 2b00 cmp r3, #0
80011d2: d036 beq.n 8001242 <keyIns+0x6c6>
if(pardata.amplif[ACTIVE_CHANNEL].IFV < Hp10)
80011d4: 4b74 ldr r3, [pc, #464] ; (80013a8 <keyIns+0x82c>)
80011d6: 681b ldr r3, [r3, #0]
80011d8: 4a77 ldr r2, [pc, #476] ; (80013b8 <keyIns+0x83c>)
80011da: 015b lsls r3, r3, #5
80011dc: 4413 add r3, r2
80011de: 3302 adds r3, #2
80011e0: 881b ldrh r3, [r3, #0]
80011e2: b29b uxth r3, r3
80011e4: 2b03 cmp r3, #3
80011e6: f201 8040 bhi.w 800226a <keyIns+0x16ee>
pardata.amplif[ACTIVE_CHANNEL].IFV++;
80011ea: 4b6f ldr r3, [pc, #444] ; (80013a8 <keyIns+0x82c>)
80011ec: 681b ldr r3, [r3, #0]
80011ee: 4972 ldr r1, [pc, #456] ; (80013b8 <keyIns+0x83c>)
80011f0: 015a lsls r2, r3, #5
80011f2: 440a add r2, r1
80011f4: 3202 adds r2, #2
80011f6: 8812 ldrh r2, [r2, #0]
80011f8: b292 uxth r2, r2
80011fa: 3201 adds r2, #1
80011fc: b291 uxth r1, r2
80011fe: 4a6e ldr r2, [pc, #440] ; (80013b8 <keyIns+0x83c>)
8001200: 015b lsls r3, r3, #5
8001202: 4413 add r3, r2
8001204: 3302 adds r3, #2
8001206: 460a mov r2, r1
8001208: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
800120a: 4b67 ldr r3, [pc, #412] ; (80013a8 <keyIns+0x82c>)
800120c: 681b ldr r3, [r3, #0]
800120e: b2db uxtb r3, r3
8001210: 4618 mov r0, r3
8001212: f00f f95f bl 80104d4 <WriteChannel>
8001216: 4603 mov r3, r0
8001218: 2b00 cmp r3, #0
800121a: f001 8026 beq.w 800226a <keyIns+0x16ee>
pardata.amplif[ACTIVE_CHANNEL].IFV--;
800121e: 4b62 ldr r3, [pc, #392] ; (80013a8 <keyIns+0x82c>)
8001220: 681b ldr r3, [r3, #0]
8001222: 4965 ldr r1, [pc, #404] ; (80013b8 <keyIns+0x83c>)
8001224: 015a lsls r2, r3, #5
8001226: 440a add r2, r1
8001228: 3202 adds r2, #2
800122a: 8812 ldrh r2, [r2, #0]
800122c: b292 uxth r2, r2
800122e: 3a01 subs r2, #1
8001230: b291 uxth r1, r2
8001232: 4a61 ldr r2, [pc, #388] ; (80013b8 <keyIns+0x83c>)
8001234: 015b lsls r3, r3, #5
8001236: 4413 add r3, r2
8001238: 3302 adds r3, #2
800123a: 460a mov r2, r1
800123c: 801a strh r2, [r3, #0]
break;
800123e: f001 b814 b.w 800226a <keyIns+0x16ee>
ACTIVE_CHANNEL = Ch1;
8001242: 4b59 ldr r3, [pc, #356] ; (80013a8 <keyIns+0x82c>)
8001244: 2200 movs r2, #0
8001246: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001248: 4b57 ldr r3, [pc, #348] ; (80013a8 <keyIns+0x82c>)
800124a: 681b ldr r3, [r3, #0]
800124c: 2201 movs r2, #1
800124e: fa02 f303 lsl.w r3, r2, r3
8001252: 461a mov r2, r3
8001254: 4b55 ldr r3, [pc, #340] ; (80013ac <keyIns+0x830>)
8001256: 681b ldr r3, [r3, #0]
8001258: 4013 ands r3, r2
800125a: 2b00 cmp r3, #0
800125c: d11e bne.n 800129c <keyIns+0x720>
ACTIVE_CHANNEL = Ch4;
800125e: 4b52 ldr r3, [pc, #328] ; (80013a8 <keyIns+0x82c>)
8001260: 2203 movs r2, #3
8001262: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001264: 4b50 ldr r3, [pc, #320] ; (80013a8 <keyIns+0x82c>)
8001266: 681b ldr r3, [r3, #0]
8001268: 2201 movs r2, #1
800126a: fa02 f303 lsl.w r3, r2, r3
800126e: 461a mov r2, r3
8001270: 4b4e ldr r3, [pc, #312] ; (80013ac <keyIns+0x830>)
8001272: 681b ldr r3, [r3, #0]
8001274: 4013 ands r3, r2
8001276: 2b00 cmp r3, #0
8001278: d110 bne.n 800129c <keyIns+0x720>
ACTIVE_CHANNEL = Ch3;
800127a: 4b4b ldr r3, [pc, #300] ; (80013a8 <keyIns+0x82c>)
800127c: 2202 movs r2, #2
800127e: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001280: 4b49 ldr r3, [pc, #292] ; (80013a8 <keyIns+0x82c>)
8001282: 681b ldr r3, [r3, #0]
8001284: 2201 movs r2, #1
8001286: fa02 f303 lsl.w r3, r2, r3
800128a: 461a mov r2, r3
800128c: 4b47 ldr r3, [pc, #284] ; (80013ac <keyIns+0x830>)
800128e: 681b ldr r3, [r3, #0]
8001290: 4013 ands r3, r2
8001292: 2b00 cmp r3, #0
8001294: d102 bne.n 800129c <keyIns+0x720>
ACTIVE_CHANNEL = Ch2;
8001296: 4b44 ldr r3, [pc, #272] ; (80013a8 <keyIns+0x82c>)
8001298: 2201 movs r2, #1
800129a: 601a str r2, [r3, #0]
menupos = Out;
800129c: 4b44 ldr r3, [pc, #272] ; (80013b0 <keyIns+0x834>)
800129e: 2202 movs r2, #2
80012a0: 701a strb r2, [r3, #0]
break;
80012a2: f000 bfe2 b.w 800226a <keyIns+0x16ee>
SetUP();
80012a6: f000 fff5 bl 8002294 <SetUP>
break;
80012aa: f000 bfde b.w 800226a <keyIns+0x16ee>
if(ACTIVE_CHANNEL == Ch3)
80012ae: 4b3e ldr r3, [pc, #248] ; (80013a8 <keyIns+0x82c>)
80012b0: 681b ldr r3, [r3, #0]
80012b2: 2b02 cmp r3, #2
80012b4: f040 8082 bne.w 80013bc <keyIns+0x840>
if(menupos == Hp)
80012b8: 4b3d ldr r3, [pc, #244] ; (80013b0 <keyIns+0x834>)
80012ba: 781b ldrb r3, [r3, #0]
80012bc: b2db uxtb r3, r3
80012be: 2b00 cmp r3, #0
80012c0: d16d bne.n 800139e <keyIns+0x822>
if(focused)
80012c2: 4b3c ldr r3, [pc, #240] ; (80013b4 <keyIns+0x838>)
80012c4: 781b ldrb r3, [r3, #0]
80012c6: b2db uxtb r3, r3
80012c8: 2b00 cmp r3, #0
80012ca: d036 beq.n 800133a <keyIns+0x7be>
if(pardata.amplif[ACTIVE_CHANNEL].IFV < Hp10)
80012cc: 4b36 ldr r3, [pc, #216] ; (80013a8 <keyIns+0x82c>)
80012ce: 681b ldr r3, [r3, #0]
80012d0: 4a39 ldr r2, [pc, #228] ; (80013b8 <keyIns+0x83c>)
80012d2: 015b lsls r3, r3, #5
80012d4: 4413 add r3, r2
80012d6: 3302 adds r3, #2
80012d8: 881b ldrh r3, [r3, #0]
80012da: b29b uxth r3, r3
80012dc: 2b03 cmp r3, #3
80012de: f200 87c4 bhi.w 800226a <keyIns+0x16ee>
pardata.amplif[ACTIVE_CHANNEL].IFV++;
80012e2: 4b31 ldr r3, [pc, #196] ; (80013a8 <keyIns+0x82c>)
80012e4: 681b ldr r3, [r3, #0]
80012e6: 4934 ldr r1, [pc, #208] ; (80013b8 <keyIns+0x83c>)
80012e8: 015a lsls r2, r3, #5
80012ea: 440a add r2, r1
80012ec: 3202 adds r2, #2
80012ee: 8812 ldrh r2, [r2, #0]
80012f0: b292 uxth r2, r2
80012f2: 3201 adds r2, #1
80012f4: b291 uxth r1, r2
80012f6: 4a30 ldr r2, [pc, #192] ; (80013b8 <keyIns+0x83c>)
80012f8: 015b lsls r3, r3, #5
80012fa: 4413 add r3, r2
80012fc: 3302 adds r3, #2
80012fe: 460a mov r2, r1
8001300: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8001302: 4b29 ldr r3, [pc, #164] ; (80013a8 <keyIns+0x82c>)
8001304: 681b ldr r3, [r3, #0]
8001306: b2db uxtb r3, r3
8001308: 4618 mov r0, r3
800130a: f00f f8e3 bl 80104d4 <WriteChannel>
800130e: 4603 mov r3, r0
8001310: 2b00 cmp r3, #0
8001312: f000 87aa beq.w 800226a <keyIns+0x16ee>
pardata.amplif[ACTIVE_CHANNEL].IFV--;
8001316: 4b24 ldr r3, [pc, #144] ; (80013a8 <keyIns+0x82c>)
8001318: 681b ldr r3, [r3, #0]
800131a: 4927 ldr r1, [pc, #156] ; (80013b8 <keyIns+0x83c>)
800131c: 015a lsls r2, r3, #5
800131e: 440a add r2, r1
8001320: 3202 adds r2, #2
8001322: 8812 ldrh r2, [r2, #0]
8001324: b292 uxth r2, r2
8001326: 3a01 subs r2, #1
8001328: b291 uxth r1, r2
800132a: 4a23 ldr r2, [pc, #140] ; (80013b8 <keyIns+0x83c>)
800132c: 015b lsls r3, r3, #5
800132e: 4413 add r3, r2
8001330: 3302 adds r3, #2
8001332: 460a mov r2, r1
8001334: 801a strh r2, [r3, #0]
break;
8001336: f000 bf98 b.w 800226a <keyIns+0x16ee>
ACTIVE_CHANNEL = Ch2;
800133a: 4b1b ldr r3, [pc, #108] ; (80013a8 <keyIns+0x82c>)
800133c: 2201 movs r2, #1
800133e: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001340: 4b19 ldr r3, [pc, #100] ; (80013a8 <keyIns+0x82c>)
8001342: 681b ldr r3, [r3, #0]
8001344: 2201 movs r2, #1
8001346: fa02 f303 lsl.w r3, r2, r3
800134a: 461a mov r2, r3
800134c: 4b17 ldr r3, [pc, #92] ; (80013ac <keyIns+0x830>)
800134e: 681b ldr r3, [r3, #0]
8001350: 4013 ands r3, r2
8001352: 2b00 cmp r3, #0
8001354: d11e bne.n 8001394 <keyIns+0x818>
ACTIVE_CHANNEL = Ch1;
8001356: 4b14 ldr r3, [pc, #80] ; (80013a8 <keyIns+0x82c>)
8001358: 2200 movs r2, #0
800135a: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
800135c: 4b12 ldr r3, [pc, #72] ; (80013a8 <keyIns+0x82c>)
800135e: 681b ldr r3, [r3, #0]
8001360: 2201 movs r2, #1
8001362: fa02 f303 lsl.w r3, r2, r3
8001366: 461a mov r2, r3
8001368: 4b10 ldr r3, [pc, #64] ; (80013ac <keyIns+0x830>)
800136a: 681b ldr r3, [r3, #0]
800136c: 4013 ands r3, r2
800136e: 2b00 cmp r3, #0
8001370: d110 bne.n 8001394 <keyIns+0x818>
ACTIVE_CHANNEL = Ch4;
8001372: 4b0d ldr r3, [pc, #52] ; (80013a8 <keyIns+0x82c>)
8001374: 2203 movs r2, #3
8001376: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001378: 4b0b ldr r3, [pc, #44] ; (80013a8 <keyIns+0x82c>)
800137a: 681b ldr r3, [r3, #0]
800137c: 2201 movs r2, #1
800137e: fa02 f303 lsl.w r3, r2, r3
8001382: 461a mov r2, r3
8001384: 4b09 ldr r3, [pc, #36] ; (80013ac <keyIns+0x830>)
8001386: 681b ldr r3, [r3, #0]
8001388: 4013 ands r3, r2
800138a: 2b00 cmp r3, #0
800138c: d102 bne.n 8001394 <keyIns+0x818>
ACTIVE_CHANNEL = Ch3;
800138e: 4b06 ldr r3, [pc, #24] ; (80013a8 <keyIns+0x82c>)
8001390: 2202 movs r2, #2
8001392: 601a str r2, [r3, #0]
menupos = Out;
8001394: 4b06 ldr r3, [pc, #24] ; (80013b0 <keyIns+0x834>)
8001396: 2202 movs r2, #2
8001398: 701a strb r2, [r3, #0]
break;
800139a: f000 bf66 b.w 800226a <keyIns+0x16ee>
SetUP();
800139e: f000 ff79 bl 8002294 <SetUP>
break;
80013a2: f000 bf62 b.w 800226a <keyIns+0x16ee>
80013a6: bf00 nop
80013a8: 2006ba68 .word 0x2006ba68
80013ac: 2002002c .word 0x2002002c
80013b0: 20020010 .word 0x20020010
80013b4: 200209e4 .word 0x200209e4
80013b8: 2006bca8 .word 0x2006bca8
if(ACTIVE_CHANNEL == Ch4)
80013bc: 4bad ldr r3, [pc, #692] ; (8001674 <keyIns+0xaf8>)
80013be: 681b ldr r3, [r3, #0]
80013c0: 2b03 cmp r3, #3
80013c2: f040 8752 bne.w 800226a <keyIns+0x16ee>
if(menupos == Hp)
80013c6: 4bac ldr r3, [pc, #688] ; (8001678 <keyIns+0xafc>)
80013c8: 781b ldrb r3, [r3, #0]
80013ca: b2db uxtb r3, r3
80013cc: 2b00 cmp r3, #0
80013ce: d16d bne.n 80014ac <keyIns+0x930>
if(focused)
80013d0: 4baa ldr r3, [pc, #680] ; (800167c <keyIns+0xb00>)
80013d2: 781b ldrb r3, [r3, #0]
80013d4: b2db uxtb r3, r3
80013d6: 2b00 cmp r3, #0
80013d8: d036 beq.n 8001448 <keyIns+0x8cc>
if(pardata.amplif[ACTIVE_CHANNEL].IFV < Hp10)
80013da: 4ba6 ldr r3, [pc, #664] ; (8001674 <keyIns+0xaf8>)
80013dc: 681b ldr r3, [r3, #0]
80013de: 4aa8 ldr r2, [pc, #672] ; (8001680 <keyIns+0xb04>)
80013e0: 015b lsls r3, r3, #5
80013e2: 4413 add r3, r2
80013e4: 3302 adds r3, #2
80013e6: 881b ldrh r3, [r3, #0]
80013e8: b29b uxth r3, r3
80013ea: 2b03 cmp r3, #3
80013ec: f200 873d bhi.w 800226a <keyIns+0x16ee>
pardata.amplif[ACTIVE_CHANNEL].IFV++;
80013f0: 4ba0 ldr r3, [pc, #640] ; (8001674 <keyIns+0xaf8>)
80013f2: 681b ldr r3, [r3, #0]
80013f4: 49a2 ldr r1, [pc, #648] ; (8001680 <keyIns+0xb04>)
80013f6: 015a lsls r2, r3, #5
80013f8: 440a add r2, r1
80013fa: 3202 adds r2, #2
80013fc: 8812 ldrh r2, [r2, #0]
80013fe: b292 uxth r2, r2
8001400: 3201 adds r2, #1
8001402: b291 uxth r1, r2
8001404: 4a9e ldr r2, [pc, #632] ; (8001680 <keyIns+0xb04>)
8001406: 015b lsls r3, r3, #5
8001408: 4413 add r3, r2
800140a: 3302 adds r3, #2
800140c: 460a mov r2, r1
800140e: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8001410: 4b98 ldr r3, [pc, #608] ; (8001674 <keyIns+0xaf8>)
8001412: 681b ldr r3, [r3, #0]
8001414: b2db uxtb r3, r3
8001416: 4618 mov r0, r3
8001418: f00f f85c bl 80104d4 <WriteChannel>
800141c: 4603 mov r3, r0
800141e: 2b00 cmp r3, #0
8001420: f000 8723 beq.w 800226a <keyIns+0x16ee>
pardata.amplif[ACTIVE_CHANNEL].IFV--;
8001424: 4b93 ldr r3, [pc, #588] ; (8001674 <keyIns+0xaf8>)
8001426: 681b ldr r3, [r3, #0]
8001428: 4995 ldr r1, [pc, #596] ; (8001680 <keyIns+0xb04>)
800142a: 015a lsls r2, r3, #5
800142c: 440a add r2, r1
800142e: 3202 adds r2, #2
8001430: 8812 ldrh r2, [r2, #0]
8001432: b292 uxth r2, r2
8001434: 3a01 subs r2, #1
8001436: b291 uxth r1, r2
8001438: 4a91 ldr r2, [pc, #580] ; (8001680 <keyIns+0xb04>)
800143a: 015b lsls r3, r3, #5
800143c: 4413 add r3, r2
800143e: 3302 adds r3, #2
8001440: 460a mov r2, r1
8001442: 801a strh r2, [r3, #0]
break;
8001444: f000 bf11 b.w 800226a <keyIns+0x16ee>
ACTIVE_CHANNEL = Ch3;
8001448: 4b8a ldr r3, [pc, #552] ; (8001674 <keyIns+0xaf8>)
800144a: 2202 movs r2, #2
800144c: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
800144e: 4b89 ldr r3, [pc, #548] ; (8001674 <keyIns+0xaf8>)
8001450: 681b ldr r3, [r3, #0]
8001452: 2201 movs r2, #1
8001454: fa02 f303 lsl.w r3, r2, r3
8001458: 461a mov r2, r3
800145a: 4b8a ldr r3, [pc, #552] ; (8001684 <keyIns+0xb08>)
800145c: 681b ldr r3, [r3, #0]
800145e: 4013 ands r3, r2
8001460: 2b00 cmp r3, #0
8001462: d11e bne.n 80014a2 <keyIns+0x926>
ACTIVE_CHANNEL = Ch2;
8001464: 4b83 ldr r3, [pc, #524] ; (8001674 <keyIns+0xaf8>)
8001466: 2201 movs r2, #1
8001468: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
800146a: 4b82 ldr r3, [pc, #520] ; (8001674 <keyIns+0xaf8>)
800146c: 681b ldr r3, [r3, #0]
800146e: 2201 movs r2, #1
8001470: fa02 f303 lsl.w r3, r2, r3
8001474: 461a mov r2, r3
8001476: 4b83 ldr r3, [pc, #524] ; (8001684 <keyIns+0xb08>)
8001478: 681b ldr r3, [r3, #0]
800147a: 4013 ands r3, r2
800147c: 2b00 cmp r3, #0
800147e: d110 bne.n 80014a2 <keyIns+0x926>
ACTIVE_CHANNEL = Ch1;
8001480: 4b7c ldr r3, [pc, #496] ; (8001674 <keyIns+0xaf8>)
8001482: 2200 movs r2, #0
8001484: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001486: 4b7b ldr r3, [pc, #492] ; (8001674 <keyIns+0xaf8>)
8001488: 681b ldr r3, [r3, #0]
800148a: 2201 movs r2, #1
800148c: fa02 f303 lsl.w r3, r2, r3
8001490: 461a mov r2, r3
8001492: 4b7c ldr r3, [pc, #496] ; (8001684 <keyIns+0xb08>)
8001494: 681b ldr r3, [r3, #0]
8001496: 4013 ands r3, r2
8001498: 2b00 cmp r3, #0
800149a: d102 bne.n 80014a2 <keyIns+0x926>
ACTIVE_CHANNEL = Ch4;
800149c: 4b75 ldr r3, [pc, #468] ; (8001674 <keyIns+0xaf8>)
800149e: 2203 movs r2, #3
80014a0: 601a str r2, [r3, #0]
menupos = Out;
80014a2: 4b75 ldr r3, [pc, #468] ; (8001678 <keyIns+0xafc>)
80014a4: 2202 movs r2, #2
80014a6: 701a strb r2, [r3, #0]
break;
80014a8: f000 bedf b.w 800226a <keyIns+0x16ee>
SetUP();
80014ac: f000 fef2 bl 8002294 <SetUP>
break;
80014b0: f000 bedb b.w 800226a <keyIns+0x16ee>
if(menu == CALIBR_00)
80014b4: 4b74 ldr r3, [pc, #464] ; (8001688 <keyIns+0xb0c>)
80014b6: 781b ldrb r3, [r3, #0]
80014b8: b2db uxtb r3, r3
80014ba: 2b01 cmp r3, #1
80014bc: d10e bne.n 80014dc <keyIns+0x960>
if(menupos > Ch1) menupos--;
80014be: 4b6e ldr r3, [pc, #440] ; (8001678 <keyIns+0xafc>)
80014c0: 781b ldrb r3, [r3, #0]
80014c2: b2db uxtb r3, r3
80014c4: 2b00 cmp r3, #0
80014c6: f000 86d0 beq.w 800226a <keyIns+0x16ee>
80014ca: 4b6b ldr r3, [pc, #428] ; (8001678 <keyIns+0xafc>)
80014cc: 781b ldrb r3, [r3, #0]
80014ce: b2db uxtb r3, r3
80014d0: 3b01 subs r3, #1
80014d2: b2da uxtb r2, r3
80014d4: 4b68 ldr r3, [pc, #416] ; (8001678 <keyIns+0xafc>)
80014d6: 701a strb r2, [r3, #0]
break;
80014d8: f000 bec7 b.w 800226a <keyIns+0x16ee>
if(menu >= CALIBR_0 && menu <= CALIBR_22)
80014dc: 4b6a ldr r3, [pc, #424] ; (8001688 <keyIns+0xb0c>)
80014de: 781b ldrb r3, [r3, #0]
80014e0: b2db uxtb r3, r3
80014e2: 2b01 cmp r3, #1
80014e4: f240 86c1 bls.w 800226a <keyIns+0x16ee>
80014e8: 4b67 ldr r3, [pc, #412] ; (8001688 <keyIns+0xb0c>)
80014ea: 781b ldrb r3, [r3, #0]
80014ec: b2db uxtb r3, r3
80014ee: 2b18 cmp r3, #24
80014f0: f200 86bb bhi.w 800226a <keyIns+0x16ee>
if(menupos == Next)
80014f4: 4b60 ldr r3, [pc, #384] ; (8001678 <keyIns+0xafc>)
80014f6: 781b ldrb r3, [r3, #0]
80014f8: b2db uxtb r3, r3
80014fa: 2b06 cmp r3, #6
80014fc: d104 bne.n 8001508 <keyIns+0x98c>
menupos = Set_1;
80014fe: 4b5e ldr r3, [pc, #376] ; (8001678 <keyIns+0xafc>)
8001500: 2205 movs r2, #5
8001502: 701a strb r2, [r3, #0]
break;
8001504: f000 beb1 b.w 800226a <keyIns+0x16ee>
if(menupos == Set_1)
8001508: 4b5b ldr r3, [pc, #364] ; (8001678 <keyIns+0xafc>)
800150a: 781b ldrb r3, [r3, #0]
800150c: b2db uxtb r3, r3
800150e: 2b05 cmp r3, #5
8001510: d104 bne.n 800151c <keyIns+0x9a0>
menupos = Set1;
8001512: 4b59 ldr r3, [pc, #356] ; (8001678 <keyIns+0xafc>)
8001514: 2204 movs r2, #4
8001516: 701a strb r2, [r3, #0]
break;
8001518: f000 bea7 b.w 800226a <keyIns+0x16ee>
if(menupos == Set1)
800151c: 4b56 ldr r3, [pc, #344] ; (8001678 <keyIns+0xafc>)
800151e: 781b ldrb r3, [r3, #0]
8001520: b2db uxtb r3, r3
8001522: 2b04 cmp r3, #4
8001524: d104 bne.n 8001530 <keyIns+0x9b4>
menupos = Set_10;
8001526: 4b54 ldr r3, [pc, #336] ; (8001678 <keyIns+0xafc>)
8001528: 2203 movs r2, #3
800152a: 701a strb r2, [r3, #0]
break;
800152c: f000 be9d b.w 800226a <keyIns+0x16ee>
if(menupos == Set_10)
8001530: 4b51 ldr r3, [pc, #324] ; (8001678 <keyIns+0xafc>)
8001532: 781b ldrb r3, [r3, #0]
8001534: b2db uxtb r3, r3
8001536: 2b03 cmp r3, #3
8001538: d104 bne.n 8001544 <keyIns+0x9c8>
menupos = Set10;
800153a: 4b4f ldr r3, [pc, #316] ; (8001678 <keyIns+0xafc>)
800153c: 2202 movs r2, #2
800153e: 701a strb r2, [r3, #0]
break;
8001540: f000 be93 b.w 800226a <keyIns+0x16ee>
if(menupos == Set10)
8001544: 4b4c ldr r3, [pc, #304] ; (8001678 <keyIns+0xafc>)
8001546: 781b ldrb r3, [r3, #0]
8001548: b2db uxtb r3, r3
800154a: 2b02 cmp r3, #2
800154c: d104 bne.n 8001558 <keyIns+0x9dc>
menupos = Set_100;
800154e: 4b4a ldr r3, [pc, #296] ; (8001678 <keyIns+0xafc>)
8001550: 2201 movs r2, #1
8001552: 701a strb r2, [r3, #0]
break;
8001554: f000 be89 b.w 800226a <keyIns+0x16ee>
if(menupos == Set_100)
8001558: 4b47 ldr r3, [pc, #284] ; (8001678 <keyIns+0xafc>)
800155a: 781b ldrb r3, [r3, #0]
800155c: b2db uxtb r3, r3
800155e: 2b01 cmp r3, #1
8001560: f040 8683 bne.w 800226a <keyIns+0x16ee>
menupos = Set100;
8001564: 4b44 ldr r3, [pc, #272] ; (8001678 <keyIns+0xafc>)
8001566: 2200 movs r2, #0
8001568: 701a strb r2, [r3, #0]
break;
800156a: f000 be7e b.w 800226a <keyIns+0x16ee>
case KEY_DN://TODO KEY DOWN
{
if(menu == OPTIONS)
800156e: 4b46 ldr r3, [pc, #280] ; (8001688 <keyIns+0xb0c>)
8001570: 781b ldrb r3, [r3, #0]
8001572: b2db uxtb r3, r3
8001574: 2b19 cmp r3, #25
8001576: d136 bne.n 80015e6 <keyIns+0xa6a>
{
if(!focused)
8001578: 4b40 ldr r3, [pc, #256] ; (800167c <keyIns+0xb00>)
800157a: 781b ldrb r3, [r3, #0]
800157c: b2db uxtb r3, r3
800157e: f083 0301 eor.w r3, r3, #1
8001582: b2db uxtb r3, r3
8001584: 2b00 cmp r3, #0
8001586: d01c beq.n 80015c2 <keyIns+0xa46>
{
if(menupos == Back) menupos = Inputs;
8001588: 4b3b ldr r3, [pc, #236] ; (8001678 <keyIns+0xafc>)
800158a: 781b ldrb r3, [r3, #0]
800158c: b2db uxtb r3, r3
800158e: 2bff cmp r3, #255 ; 0xff
8001590: d104 bne.n 800159c <keyIns+0xa20>
8001592: 4b39 ldr r3, [pc, #228] ; (8001678 <keyIns+0xafc>)
8001594: 2200 movs r2, #0
8001596: 701a strb r2, [r3, #0]
if(menupos == Set_1)
menupos = Next;
}
}
}
break;
8001598: f000 be69 b.w 800226e <keyIns+0x16f2>
else if(menupos == PowerOff) menupos = Back;
800159c: 4b36 ldr r3, [pc, #216] ; (8001678 <keyIns+0xafc>)
800159e: 781b ldrb r3, [r3, #0]
80015a0: b2db uxtb r3, r3
80015a2: 2b02 cmp r3, #2
80015a4: d104 bne.n 80015b0 <keyIns+0xa34>
80015a6: 4b34 ldr r3, [pc, #208] ; (8001678 <keyIns+0xafc>)
80015a8: 22ff movs r2, #255 ; 0xff
80015aa: 701a strb r2, [r3, #0]
break;
80015ac: f000 be5f b.w 800226e <keyIns+0x16f2>
else menupos++;
80015b0: 4b31 ldr r3, [pc, #196] ; (8001678 <keyIns+0xafc>)
80015b2: 781b ldrb r3, [r3, #0]
80015b4: b2db uxtb r3, r3
80015b6: 3301 adds r3, #1
80015b8: b2da uxtb r2, r3
80015ba: 4b2f ldr r3, [pc, #188] ; (8001678 <keyIns+0xafc>)
80015bc: 701a strb r2, [r3, #0]
break;
80015be: f000 be56 b.w 800226e <keyIns+0x16f2>
if(menupos == Lang) {
80015c2: 4b2d ldr r3, [pc, #180] ; (8001678 <keyIns+0xafc>)
80015c4: 781b ldrb r3, [r3, #0]
80015c6: b2db uxtb r3, r3
80015c8: 2b01 cmp r3, #1
80015ca: f040 8650 bne.w 800226e <keyIns+0x16f2>
pardata.LANG ^= 1;
80015ce: 4b2c ldr r3, [pc, #176] ; (8001680 <keyIns+0xb04>)
80015d0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80015d4: b29b uxth r3, r3
80015d6: f083 0301 eor.w r3, r3, #1
80015da: b29a uxth r2, r3
80015dc: 4b28 ldr r3, [pc, #160] ; (8001680 <keyIns+0xb04>)
80015de: f8a3 2206 strh.w r2, [r3, #518] ; 0x206
break;
80015e2: f000 be44 b.w 800226e <keyIns+0x16f2>
if(menu == SETTINGS)
80015e6: 4b28 ldr r3, [pc, #160] ; (8001688 <keyIns+0xb0c>)
80015e8: 781b ldrb r3, [r3, #0]
80015ea: b2db uxtb r3, r3
80015ec: 2b2b cmp r3, #43 ; 0x2b
80015ee: f040 81d4 bne.w 800199a <keyIns+0xe1e>
if(menupos == Back)
80015f2: 4b21 ldr r3, [pc, #132] ; (8001678 <keyIns+0xafc>)
80015f4: 781b ldrb r3, [r3, #0]
80015f6: b2db uxtb r3, r3
80015f8: 2bff cmp r3, #255 ; 0xff
80015fa: d104 bne.n 8001606 <keyIns+0xa8a>
menupos = Sens_1;
80015fc: 4b1e ldr r3, [pc, #120] ; (8001678 <keyIns+0xafc>)
80015fe: 2200 movs r2, #0
8001600: 701a strb r2, [r3, #0]
break;
8001602: f000 be34 b.w 800226e <keyIns+0x16f2>
if(menupos == Sens_1)
8001606: 4b1c ldr r3, [pc, #112] ; (8001678 <keyIns+0xafc>)
8001608: 781b ldrb r3, [r3, #0]
800160a: b2db uxtb r3, r3
800160c: 2b00 cmp r3, #0
800160e: d104 bne.n 800161a <keyIns+0xa9e>
menupos = Val_1;
8001610: 4b19 ldr r3, [pc, #100] ; (8001678 <keyIns+0xafc>)
8001612: 2201 movs r2, #1
8001614: 701a strb r2, [r3, #0]
break;
8001616: f000 be2a b.w 800226e <keyIns+0x16f2>
if(menupos == Val_1)
800161a: 4b17 ldr r3, [pc, #92] ; (8001678 <keyIns+0xafc>)
800161c: 781b ldrb r3, [r3, #0]
800161e: b2db uxtb r3, r3
8001620: 2b01 cmp r3, #1
8001622: d155 bne.n 80016d0 <keyIns+0xb54>
if(!focused)
8001624: 4b15 ldr r3, [pc, #84] ; (800167c <keyIns+0xb00>)
8001626: 781b ldrb r3, [r3, #0]
8001628: b2db uxtb r3, r3
800162a: f083 0301 eor.w r3, r3, #1
800162e: b2db uxtb r3, r3
8001630: 2b00 cmp r3, #0
8001632: d004 beq.n 800163e <keyIns+0xac2>
menupos = Sens_2;
8001634: 4b10 ldr r3, [pc, #64] ; (8001678 <keyIns+0xafc>)
8001636: 2208 movs r2, #8
8001638: 701a strb r2, [r3, #0]
break;
800163a: f000 be18 b.w 800226e <keyIns+0x16f2>
last_iin = pardata.amplif[Ch1].IIN;
800163e: 4b10 ldr r3, [pc, #64] ; (8001680 <keyIns+0xb04>)
8001640: 881b ldrh r3, [r3, #0]
8001642: f8a7 3072 strh.w r3, [r7, #114] ; 0x72
last_val = pardata.amplif[Ch1].VAL;
8001646: 4b0e ldr r3, [pc, #56] ; (8001680 <keyIns+0xb04>)
8001648: 8a5b ldrh r3, [r3, #18]
800164a: f8a7 3070 strh.w r3, [r7, #112] ; 0x70
if(pardata.amplif[Ch1].VAL > Accel)
800164e: 4b0c ldr r3, [pc, #48] ; (8001680 <keyIns+0xb04>)
8001650: 8a5b ldrh r3, [r3, #18]
8001652: b29b uxth r3, r3
8001654: 2b00 cmp r3, #0
8001656: d024 beq.n 80016a2 <keyIns+0xb26>
if(pardata.amplif[Ch1].IIN > CHARGE)
8001658: 4b09 ldr r3, [pc, #36] ; (8001680 <keyIns+0xb04>)
800165a: 881b ldrh r3, [r3, #0]
800165c: b29b uxth r3, r3
800165e: 2b00 cmp r3, #0
8001660: d014 beq.n 800168c <keyIns+0xb10>
pardata.amplif[Ch1].IIN--;
8001662: 4b07 ldr r3, [pc, #28] ; (8001680 <keyIns+0xb04>)
8001664: 881b ldrh r3, [r3, #0]
8001666: b29b uxth r3, r3
8001668: 3b01 subs r3, #1
800166a: b29a uxth r2, r3
800166c: 4b04 ldr r3, [pc, #16] ; (8001680 <keyIns+0xb04>)
800166e: 801a strh r2, [r3, #0]
8001670: e01d b.n 80016ae <keyIns+0xb32>
8001672: bf00 nop
8001674: 2006ba68 .word 0x2006ba68
8001678: 20020010 .word 0x20020010
800167c: 200209e4 .word 0x200209e4
8001680: 2006bca8 .word 0x2006bca8
8001684: 2002002c .word 0x2002002c
8001688: 200209d9 .word 0x200209d9
pardata.amplif[Ch1].IIN = ICP;
800168c: 4baf ldr r3, [pc, #700] ; (800194c <keyIns+0xdd0>)
800168e: 2201 movs r2, #1
8001690: 801a strh r2, [r3, #0]
pardata.amplif[Ch1].VAL--;
8001692: 4bae ldr r3, [pc, #696] ; (800194c <keyIns+0xdd0>)
8001694: 8a5b ldrh r3, [r3, #18]
8001696: b29b uxth r3, r3
8001698: 3b01 subs r3, #1
800169a: b29a uxth r2, r3
800169c: 4bab ldr r3, [pc, #684] ; (800194c <keyIns+0xdd0>)
800169e: 825a strh r2, [r3, #18]
80016a0: e005 b.n 80016ae <keyIns+0xb32>
pardata.amplif[Ch1].IIN = ICP;
80016a2: 4baa ldr r3, [pc, #680] ; (800194c <keyIns+0xdd0>)
80016a4: 2201 movs r2, #1
80016a6: 801a strh r2, [r3, #0]
pardata.amplif[Ch1].VAL = pQ_mV;
80016a8: 4ba8 ldr r3, [pc, #672] ; (800194c <keyIns+0xdd0>)
80016aa: 2207 movs r2, #7
80016ac: 825a strh r2, [r3, #18]
if(WriteChannel(Ch1))
80016ae: 2000 movs r0, #0
80016b0: f00e ff10 bl 80104d4 <WriteChannel>
80016b4: 4603 mov r3, r0
80016b6: 2b00 cmp r3, #0
80016b8: f000 85d9 beq.w 800226e <keyIns+0x16f2>
pardata.amplif[Ch1].IIN = last_iin;
80016bc: 4aa3 ldr r2, [pc, #652] ; (800194c <keyIns+0xdd0>)
80016be: f8b7 3072 ldrh.w r3, [r7, #114] ; 0x72
80016c2: 8013 strh r3, [r2, #0]
pardata.amplif[Ch1].VAL = last_val;
80016c4: 4aa1 ldr r2, [pc, #644] ; (800194c <keyIns+0xdd0>)
80016c6: f8b7 3070 ldrh.w r3, [r7, #112] ; 0x70
80016ca: 8253 strh r3, [r2, #18]
break;
80016cc: f000 bdcf b.w 800226e <keyIns+0x16f2>
if(menupos == Sens_2)
80016d0: 4b9f ldr r3, [pc, #636] ; (8001950 <keyIns+0xdd4>)
80016d2: 781b ldrb r3, [r3, #0]
80016d4: b2db uxtb r3, r3
80016d6: 2b08 cmp r3, #8
80016d8: d104 bne.n 80016e4 <keyIns+0xb68>
menupos = Val_2;
80016da: 4b9d ldr r3, [pc, #628] ; (8001950 <keyIns+0xdd4>)
80016dc: 2209 movs r2, #9
80016de: 701a strb r2, [r3, #0]
break;
80016e0: f000 bdc5 b.w 800226e <keyIns+0x16f2>
if(menupos == Val_2)
80016e4: 4b9a ldr r3, [pc, #616] ; (8001950 <keyIns+0xdd4>)
80016e6: 781b ldrb r3, [r3, #0]
80016e8: b2db uxtb r3, r3
80016ea: 2b09 cmp r3, #9
80016ec: d148 bne.n 8001780 <keyIns+0xc04>
if(!focused)
80016ee: 4b99 ldr r3, [pc, #612] ; (8001954 <keyIns+0xdd8>)
80016f0: 781b ldrb r3, [r3, #0]
80016f2: b2db uxtb r3, r3
80016f4: f083 0301 eor.w r3, r3, #1
80016f8: b2db uxtb r3, r3
80016fa: 2b00 cmp r3, #0
80016fc: d004 beq.n 8001708 <keyIns+0xb8c>
menupos = Sens_3;
80016fe: 4b94 ldr r3, [pc, #592] ; (8001950 <keyIns+0xdd4>)
8001700: 2210 movs r2, #16
8001702: 701a strb r2, [r3, #0]
break;
8001704: f000 bdb3 b.w 800226e <keyIns+0x16f2>
last_iin = pardata.amplif[Ch2].IIN;
8001708: 4b90 ldr r3, [pc, #576] ; (800194c <keyIns+0xdd0>)
800170a: 8c1b ldrh r3, [r3, #32]
800170c: f8a7 3072 strh.w r3, [r7, #114] ; 0x72
last_val = pardata.amplif[Ch2].VAL;
8001710: 4b8e ldr r3, [pc, #568] ; (800194c <keyIns+0xdd0>)
8001712: 8e5b ldrh r3, [r3, #50] ; 0x32
8001714: f8a7 3070 strh.w r3, [r7, #112] ; 0x70
if(pardata.amplif[Ch2].VAL > Accel)
8001718: 4b8c ldr r3, [pc, #560] ; (800194c <keyIns+0xdd0>)
800171a: 8e5b ldrh r3, [r3, #50] ; 0x32
800171c: b29b uxth r3, r3
800171e: 2b00 cmp r3, #0
8001720: d017 beq.n 8001752 <keyIns+0xbd6>
if(pardata.amplif[Ch2].IIN > CHARGE)
8001722: 4b8a ldr r3, [pc, #552] ; (800194c <keyIns+0xdd0>)
8001724: 8c1b ldrh r3, [r3, #32]
8001726: b29b uxth r3, r3
8001728: 2b00 cmp r3, #0
800172a: d007 beq.n 800173c <keyIns+0xbc0>
pardata.amplif[Ch2].IIN--;
800172c: 4b87 ldr r3, [pc, #540] ; (800194c <keyIns+0xdd0>)
800172e: 8c1b ldrh r3, [r3, #32]
8001730: b29b uxth r3, r3
8001732: 3b01 subs r3, #1
8001734: b29a uxth r2, r3
8001736: 4b85 ldr r3, [pc, #532] ; (800194c <keyIns+0xdd0>)
8001738: 841a strh r2, [r3, #32]
800173a: e010 b.n 800175e <keyIns+0xbe2>
pardata.amplif[Ch2].IIN = ICP;
800173c: 4b83 ldr r3, [pc, #524] ; (800194c <keyIns+0xdd0>)
800173e: 2201 movs r2, #1
8001740: 841a strh r2, [r3, #32]
pardata.amplif[Ch2].VAL--;
8001742: 4b82 ldr r3, [pc, #520] ; (800194c <keyIns+0xdd0>)
8001744: 8e5b ldrh r3, [r3, #50] ; 0x32
8001746: b29b uxth r3, r3
8001748: 3b01 subs r3, #1
800174a: b29a uxth r2, r3
800174c: 4b7f ldr r3, [pc, #508] ; (800194c <keyIns+0xdd0>)
800174e: 865a strh r2, [r3, #50] ; 0x32
8001750: e005 b.n 800175e <keyIns+0xbe2>
pardata.amplif[Ch2].IIN = ICP;
8001752: 4b7e ldr r3, [pc, #504] ; (800194c <keyIns+0xdd0>)
8001754: 2201 movs r2, #1
8001756: 841a strh r2, [r3, #32]
pardata.amplif[Ch2].VAL = pQ_mV;
8001758: 4b7c ldr r3, [pc, #496] ; (800194c <keyIns+0xdd0>)
800175a: 2207 movs r2, #7
800175c: 865a strh r2, [r3, #50] ; 0x32
if(WriteChannel(Ch2))
800175e: 2001 movs r0, #1
8001760: f00e feb8 bl 80104d4 <WriteChannel>
8001764: 4603 mov r3, r0
8001766: 2b00 cmp r3, #0
8001768: f000 8581 beq.w 800226e <keyIns+0x16f2>
pardata.amplif[Ch2].IIN = last_iin;
800176c: 4a77 ldr r2, [pc, #476] ; (800194c <keyIns+0xdd0>)
800176e: f8b7 3072 ldrh.w r3, [r7, #114] ; 0x72
8001772: 8413 strh r3, [r2, #32]
pardata.amplif[Ch2].VAL = last_val;
8001774: 4a75 ldr r2, [pc, #468] ; (800194c <keyIns+0xdd0>)
8001776: f8b7 3070 ldrh.w r3, [r7, #112] ; 0x70
800177a: 8653 strh r3, [r2, #50] ; 0x32
break;
800177c: f000 bd77 b.w 800226e <keyIns+0x16f2>
if(menupos == Sens_3)
8001780: 4b73 ldr r3, [pc, #460] ; (8001950 <keyIns+0xdd4>)
8001782: 781b ldrb r3, [r3, #0]
8001784: b2db uxtb r3, r3
8001786: 2b10 cmp r3, #16
8001788: d104 bne.n 8001794 <keyIns+0xc18>
menupos = Val_3;
800178a: 4b71 ldr r3, [pc, #452] ; (8001950 <keyIns+0xdd4>)
800178c: 2211 movs r2, #17
800178e: 701a strb r2, [r3, #0]
break;
8001790: f000 bd6d b.w 800226e <keyIns+0x16f2>
if(menupos == Val_3)
8001794: 4b6e ldr r3, [pc, #440] ; (8001950 <keyIns+0xdd4>)
8001796: 781b ldrb r3, [r3, #0]
8001798: b2db uxtb r3, r3
800179a: 2b11 cmp r3, #17
800179c: d155 bne.n 800184a <keyIns+0xcce>
if(!focused)
800179e: 4b6d ldr r3, [pc, #436] ; (8001954 <keyIns+0xdd8>)
80017a0: 781b ldrb r3, [r3, #0]
80017a2: b2db uxtb r3, r3
80017a4: f083 0301 eor.w r3, r3, #1
80017a8: b2db uxtb r3, r3
80017aa: 2b00 cmp r3, #0
80017ac: d004 beq.n 80017b8 <keyIns+0xc3c>
menupos = Sens_4;
80017ae: 4b68 ldr r3, [pc, #416] ; (8001950 <keyIns+0xdd4>)
80017b0: 2218 movs r2, #24
80017b2: 701a strb r2, [r3, #0]
break;
80017b4: f000 bd5b b.w 800226e <keyIns+0x16f2>
last_iin = pardata.amplif[Ch3].IIN;
80017b8: 4b64 ldr r3, [pc, #400] ; (800194c <keyIns+0xdd0>)
80017ba: f8b3 3040 ldrh.w r3, [r3, #64] ; 0x40
80017be: f8a7 3072 strh.w r3, [r7, #114] ; 0x72
last_val = pardata.amplif[Ch3].VAL;
80017c2: 4b62 ldr r3, [pc, #392] ; (800194c <keyIns+0xdd0>)
80017c4: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
80017c8: f8a7 3070 strh.w r3, [r7, #112] ; 0x70
if(pardata.amplif[Ch3].VAL > Accel)
80017cc: 4b5f ldr r3, [pc, #380] ; (800194c <keyIns+0xdd0>)
80017ce: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
80017d2: b29b uxth r3, r3
80017d4: 2b00 cmp r3, #0
80017d6: d01d beq.n 8001814 <keyIns+0xc98>
if(pardata.amplif[Ch3].IIN > CHARGE)
80017d8: 4b5c ldr r3, [pc, #368] ; (800194c <keyIns+0xdd0>)
80017da: f8b3 3040 ldrh.w r3, [r3, #64] ; 0x40
80017de: b29b uxth r3, r3
80017e0: 2b00 cmp r3, #0
80017e2: d009 beq.n 80017f8 <keyIns+0xc7c>
pardata.amplif[Ch3].IIN--;
80017e4: 4b59 ldr r3, [pc, #356] ; (800194c <keyIns+0xdd0>)
80017e6: f8b3 3040 ldrh.w r3, [r3, #64] ; 0x40
80017ea: b29b uxth r3, r3
80017ec: 3b01 subs r3, #1
80017ee: b29a uxth r2, r3
80017f0: 4b56 ldr r3, [pc, #344] ; (800194c <keyIns+0xdd0>)
80017f2: f8a3 2040 strh.w r2, [r3, #64] ; 0x40
80017f6: e015 b.n 8001824 <keyIns+0xca8>
pardata.amplif[Ch3].IIN = ICP;
80017f8: 4b54 ldr r3, [pc, #336] ; (800194c <keyIns+0xdd0>)
80017fa: 2201 movs r2, #1
80017fc: f8a3 2040 strh.w r2, [r3, #64] ; 0x40
pardata.amplif[Ch3].VAL--;
8001800: 4b52 ldr r3, [pc, #328] ; (800194c <keyIns+0xdd0>)
8001802: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8001806: b29b uxth r3, r3
8001808: 3b01 subs r3, #1
800180a: b29a uxth r2, r3
800180c: 4b4f ldr r3, [pc, #316] ; (800194c <keyIns+0xdd0>)
800180e: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
8001812: e007 b.n 8001824 <keyIns+0xca8>
pardata.amplif[Ch3].IIN = ICP;
8001814: 4b4d ldr r3, [pc, #308] ; (800194c <keyIns+0xdd0>)
8001816: 2201 movs r2, #1
8001818: f8a3 2040 strh.w r2, [r3, #64] ; 0x40
pardata.amplif[Ch3].VAL = pQ_mV;
800181c: 4b4b ldr r3, [pc, #300] ; (800194c <keyIns+0xdd0>)
800181e: 2207 movs r2, #7
8001820: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
if(WriteChannel(Ch3))
8001824: 2002 movs r0, #2
8001826: f00e fe55 bl 80104d4 <WriteChannel>
800182a: 4603 mov r3, r0
800182c: 2b00 cmp r3, #0
800182e: f000 851e beq.w 800226e <keyIns+0x16f2>
pardata.amplif[Ch3].IIN = last_iin;
8001832: 4a46 ldr r2, [pc, #280] ; (800194c <keyIns+0xdd0>)
8001834: f8b7 3072 ldrh.w r3, [r7, #114] ; 0x72
8001838: f8a2 3040 strh.w r3, [r2, #64] ; 0x40
pardata.amplif[Ch3].VAL = last_val;
800183c: 4a43 ldr r2, [pc, #268] ; (800194c <keyIns+0xdd0>)
800183e: f8b7 3070 ldrh.w r3, [r7, #112] ; 0x70
8001842: f8a2 3052 strh.w r3, [r2, #82] ; 0x52
break;
8001846: f000 bd12 b.w 800226e <keyIns+0x16f2>
if(menupos == Sens_4)
800184a: 4b41 ldr r3, [pc, #260] ; (8001950 <keyIns+0xdd4>)
800184c: 781b ldrb r3, [r3, #0]
800184e: b2db uxtb r3, r3
8001850: 2b18 cmp r3, #24
8001852: d104 bne.n 800185e <keyIns+0xce2>
menupos = Val_4;
8001854: 4b3e ldr r3, [pc, #248] ; (8001950 <keyIns+0xdd4>)
8001856: 2219 movs r2, #25
8001858: 701a strb r2, [r3, #0]
break;
800185a: f000 bd08 b.w 800226e <keyIns+0x16f2>
if(menupos == Val_4)
800185e: 4b3c ldr r3, [pc, #240] ; (8001950 <keyIns+0xdd4>)
8001860: 781b ldrb r3, [r3, #0]
8001862: b2db uxtb r3, r3
8001864: 2b19 cmp r3, #25
8001866: d155 bne.n 8001914 <keyIns+0xd98>
if(!focused)
8001868: 4b3a ldr r3, [pc, #232] ; (8001954 <keyIns+0xdd8>)
800186a: 781b ldrb r3, [r3, #0]
800186c: b2db uxtb r3, r3
800186e: f083 0301 eor.w r3, r3, #1
8001872: b2db uxtb r3, r3
8001874: 2b00 cmp r3, #0
8001876: d004 beq.n 8001882 <keyIns+0xd06>
menupos = Back;
8001878: 4b35 ldr r3, [pc, #212] ; (8001950 <keyIns+0xdd4>)
800187a: 22ff movs r2, #255 ; 0xff
800187c: 701a strb r2, [r3, #0]
break;
800187e: f000 bcf6 b.w 800226e <keyIns+0x16f2>
last_iin = pardata.amplif[Ch4].IIN;
8001882: 4b32 ldr r3, [pc, #200] ; (800194c <keyIns+0xdd0>)
8001884: f8b3 3060 ldrh.w r3, [r3, #96] ; 0x60
8001888: f8a7 3072 strh.w r3, [r7, #114] ; 0x72
last_val = pardata.amplif[Ch4].VAL;
800188c: 4b2f ldr r3, [pc, #188] ; (800194c <keyIns+0xdd0>)
800188e: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8001892: f8a7 3070 strh.w r3, [r7, #112] ; 0x70
if(pardata.amplif[Ch4].VAL > Accel)
8001896: 4b2d ldr r3, [pc, #180] ; (800194c <keyIns+0xdd0>)
8001898: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
800189c: b29b uxth r3, r3
800189e: 2b00 cmp r3, #0
80018a0: d01d beq.n 80018de <keyIns+0xd62>
if(pardata.amplif[Ch4].IIN > CHARGE)
80018a2: 4b2a ldr r3, [pc, #168] ; (800194c <keyIns+0xdd0>)
80018a4: f8b3 3060 ldrh.w r3, [r3, #96] ; 0x60
80018a8: b29b uxth r3, r3
80018aa: 2b00 cmp r3, #0
80018ac: d009 beq.n 80018c2 <keyIns+0xd46>
pardata.amplif[Ch4].IIN--;
80018ae: 4b27 ldr r3, [pc, #156] ; (800194c <keyIns+0xdd0>)
80018b0: f8b3 3060 ldrh.w r3, [r3, #96] ; 0x60
80018b4: b29b uxth r3, r3
80018b6: 3b01 subs r3, #1
80018b8: b29a uxth r2, r3
80018ba: 4b24 ldr r3, [pc, #144] ; (800194c <keyIns+0xdd0>)
80018bc: f8a3 2060 strh.w r2, [r3, #96] ; 0x60
80018c0: e015 b.n 80018ee <keyIns+0xd72>
pardata.amplif[Ch4].IIN = ICP;
80018c2: 4b22 ldr r3, [pc, #136] ; (800194c <keyIns+0xdd0>)
80018c4: 2201 movs r2, #1
80018c6: f8a3 2060 strh.w r2, [r3, #96] ; 0x60
pardata.amplif[Ch4].VAL--;
80018ca: 4b20 ldr r3, [pc, #128] ; (800194c <keyIns+0xdd0>)
80018cc: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
80018d0: b29b uxth r3, r3
80018d2: 3b01 subs r3, #1
80018d4: b29a uxth r2, r3
80018d6: 4b1d ldr r3, [pc, #116] ; (800194c <keyIns+0xdd0>)
80018d8: f8a3 2072 strh.w r2, [r3, #114] ; 0x72
80018dc: e007 b.n 80018ee <keyIns+0xd72>
pardata.amplif[Ch4].IIN = ICP;
80018de: 4b1b ldr r3, [pc, #108] ; (800194c <keyIns+0xdd0>)
80018e0: 2201 movs r2, #1
80018e2: f8a3 2060 strh.w r2, [r3, #96] ; 0x60
pardata.amplif[Ch4].VAL = pQ_mV;
80018e6: 4b19 ldr r3, [pc, #100] ; (800194c <keyIns+0xdd0>)
80018e8: 2207 movs r2, #7
80018ea: f8a3 2072 strh.w r2, [r3, #114] ; 0x72
if(WriteChannel(Ch4))
80018ee: 2003 movs r0, #3
80018f0: f00e fdf0 bl 80104d4 <WriteChannel>
80018f4: 4603 mov r3, r0
80018f6: 2b00 cmp r3, #0
80018f8: f000 84b9 beq.w 800226e <keyIns+0x16f2>
pardata.amplif[Ch4].IIN = last_iin;
80018fc: 4a13 ldr r2, [pc, #76] ; (800194c <keyIns+0xdd0>)
80018fe: f8b7 3072 ldrh.w r3, [r7, #114] ; 0x72
8001902: f8a2 3060 strh.w r3, [r2, #96] ; 0x60
pardata.amplif[Ch4].VAL = last_val;
8001906: 4a11 ldr r2, [pc, #68] ; (800194c <keyIns+0xdd0>)
8001908: f8b7 3070 ldrh.w r3, [r7, #112] ; 0x70
800190c: f8a2 3072 strh.w r3, [r2, #114] ; 0x72
break;
8001910: f000 bcad b.w 800226e <keyIns+0x16f2>
if(menupos >= Kikdt_1 && menupos <= Kpt_1) ACTIVE_CHANNEL = Ch1;
8001914: 4b0e ldr r3, [pc, #56] ; (8001950 <keyIns+0xdd4>)
8001916: 781b ldrb r3, [r3, #0]
8001918: b2db uxtb r3, r3
800191a: 2b01 cmp r3, #1
800191c: d908 bls.n 8001930 <keyIns+0xdb4>
800191e: 4b0c ldr r3, [pc, #48] ; (8001950 <keyIns+0xdd4>)
8001920: 781b ldrb r3, [r3, #0]
8001922: b2db uxtb r3, r3
8001924: 2b07 cmp r3, #7
8001926: d803 bhi.n 8001930 <keyIns+0xdb4>
8001928: 4b0b ldr r3, [pc, #44] ; (8001958 <keyIns+0xddc>)
800192a: 2200 movs r2, #0
800192c: 601a str r2, [r3, #0]
800192e: e030 b.n 8001992 <keyIns+0xe16>
else if(menupos >= Kikdt_2 && menupos <= Kpt_2) ACTIVE_CHANNEL = Ch2;
8001930: 4b07 ldr r3, [pc, #28] ; (8001950 <keyIns+0xdd4>)
8001932: 781b ldrb r3, [r3, #0]
8001934: b2db uxtb r3, r3
8001936: 2b09 cmp r3, #9
8001938: d910 bls.n 800195c <keyIns+0xde0>
800193a: 4b05 ldr r3, [pc, #20] ; (8001950 <keyIns+0xdd4>)
800193c: 781b ldrb r3, [r3, #0]
800193e: b2db uxtb r3, r3
8001940: 2b0f cmp r3, #15
8001942: d80b bhi.n 800195c <keyIns+0xde0>
8001944: 4b04 ldr r3, [pc, #16] ; (8001958 <keyIns+0xddc>)
8001946: 2201 movs r2, #1
8001948: 601a str r2, [r3, #0]
800194a: e022 b.n 8001992 <keyIns+0xe16>
800194c: 2006bca8 .word 0x2006bca8
8001950: 20020010 .word 0x20020010
8001954: 200209e4 .word 0x200209e4
8001958: 2006ba68 .word 0x2006ba68
else if(menupos >= Kikdt_3 && menupos <= Kpt_3) ACTIVE_CHANNEL = Ch3;
800195c: 4ba1 ldr r3, [pc, #644] ; (8001be4 <keyIns+0x1068>)
800195e: 781b ldrb r3, [r3, #0]
8001960: b2db uxtb r3, r3
8001962: 2b11 cmp r3, #17
8001964: d908 bls.n 8001978 <keyIns+0xdfc>
8001966: 4b9f ldr r3, [pc, #636] ; (8001be4 <keyIns+0x1068>)
8001968: 781b ldrb r3, [r3, #0]
800196a: b2db uxtb r3, r3
800196c: 2b17 cmp r3, #23
800196e: d803 bhi.n 8001978 <keyIns+0xdfc>
8001970: 4b9d ldr r3, [pc, #628] ; (8001be8 <keyIns+0x106c>)
8001972: 2202 movs r2, #2
8001974: 601a str r2, [r3, #0]
8001976: e00c b.n 8001992 <keyIns+0xe16>
else if(menupos >= Kikdt_4 && menupos <= Kpt_4) ACTIVE_CHANNEL = Ch4;
8001978: 4b9a ldr r3, [pc, #616] ; (8001be4 <keyIns+0x1068>)
800197a: 781b ldrb r3, [r3, #0]
800197c: b2db uxtb r3, r3
800197e: 2b19 cmp r3, #25
8001980: d907 bls.n 8001992 <keyIns+0xe16>
8001982: 4b98 ldr r3, [pc, #608] ; (8001be4 <keyIns+0x1068>)
8001984: 781b ldrb r3, [r3, #0]
8001986: b2db uxtb r3, r3
8001988: 2b1f cmp r3, #31
800198a: d802 bhi.n 8001992 <keyIns+0xe16>
800198c: 4b96 ldr r3, [pc, #600] ; (8001be8 <keyIns+0x106c>)
800198e: 2203 movs r2, #3
8001990: 601a str r2, [r3, #0]
DoKeyDN();
8001992: f002 f859 bl 8003a48 <DoKeyDN>
break;
8001996: f000 bc6a b.w 800226e <keyIns+0x16f2>
if(menu == MAIN)
800199a: 4b94 ldr r3, [pc, #592] ; (8001bec <keyIns+0x1070>)
800199c: 781b ldrb r3, [r3, #0]
800199e: b2db uxtb r3, r3
80019a0: 2b00 cmp r3, #0
80019a2: f040 812b bne.w 8001bfc <keyIns+0x1080>
if(CNT_CHANNELS < 5)
80019a6: 4b92 ldr r3, [pc, #584] ; (8001bf0 <keyIns+0x1074>)
80019a8: 681b ldr r3, [r3, #0]
80019aa: 2b04 cmp r3, #4
80019ac: f200 845f bhi.w 800226e <keyIns+0x16f2>
if(ACTIVE_CHANNEL == Ch1)
80019b0: 4b8d ldr r3, [pc, #564] ; (8001be8 <keyIns+0x106c>)
80019b2: 681b ldr r3, [r3, #0]
80019b4: 2b00 cmp r3, #0
80019b6: d143 bne.n 8001a40 <keyIns+0xec4>
if(menupos == Out)
80019b8: 4b8a ldr r3, [pc, #552] ; (8001be4 <keyIns+0x1068>)
80019ba: 781b ldrb r3, [r3, #0]
80019bc: b2db uxtb r3, r3
80019be: 2b02 cmp r3, #2
80019c0: d13a bne.n 8001a38 <keyIns+0xebc>
if(focused)
80019c2: 4b8c ldr r3, [pc, #560] ; (8001bf4 <keyIns+0x1078>)
80019c4: 781b ldrb r3, [r3, #0]
80019c6: b2db uxtb r3, r3
80019c8: 2b00 cmp r3, #0
80019ca: d003 beq.n 80019d4 <keyIns+0xe58>
SetDN();
80019cc: f001 f888 bl 8002ae0 <SetDN>
break;
80019d0: f000 bc4d b.w 800226e <keyIns+0x16f2>
ACTIVE_CHANNEL = Ch2;
80019d4: 4b84 ldr r3, [pc, #528] ; (8001be8 <keyIns+0x106c>)
80019d6: 2201 movs r2, #1
80019d8: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
80019da: 4b83 ldr r3, [pc, #524] ; (8001be8 <keyIns+0x106c>)
80019dc: 681b ldr r3, [r3, #0]
80019de: 2201 movs r2, #1
80019e0: fa02 f303 lsl.w r3, r2, r3
80019e4: 461a mov r2, r3
80019e6: 4b84 ldr r3, [pc, #528] ; (8001bf8 <keyIns+0x107c>)
80019e8: 681b ldr r3, [r3, #0]
80019ea: 4013 ands r3, r2
80019ec: 2b00 cmp r3, #0
80019ee: d11e bne.n 8001a2e <keyIns+0xeb2>
ACTIVE_CHANNEL = Ch3;
80019f0: 4b7d ldr r3, [pc, #500] ; (8001be8 <keyIns+0x106c>)
80019f2: 2202 movs r2, #2
80019f4: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
80019f6: 4b7c ldr r3, [pc, #496] ; (8001be8 <keyIns+0x106c>)
80019f8: 681b ldr r3, [r3, #0]
80019fa: 2201 movs r2, #1
80019fc: fa02 f303 lsl.w r3, r2, r3
8001a00: 461a mov r2, r3
8001a02: 4b7d ldr r3, [pc, #500] ; (8001bf8 <keyIns+0x107c>)
8001a04: 681b ldr r3, [r3, #0]
8001a06: 4013 ands r3, r2
8001a08: 2b00 cmp r3, #0
8001a0a: d110 bne.n 8001a2e <keyIns+0xeb2>
ACTIVE_CHANNEL = Ch4;
8001a0c: 4b76 ldr r3, [pc, #472] ; (8001be8 <keyIns+0x106c>)
8001a0e: 2203 movs r2, #3
8001a10: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001a12: 4b75 ldr r3, [pc, #468] ; (8001be8 <keyIns+0x106c>)
8001a14: 681b ldr r3, [r3, #0]
8001a16: 2201 movs r2, #1
8001a18: fa02 f303 lsl.w r3, r2, r3
8001a1c: 461a mov r2, r3
8001a1e: 4b76 ldr r3, [pc, #472] ; (8001bf8 <keyIns+0x107c>)
8001a20: 681b ldr r3, [r3, #0]
8001a22: 4013 ands r3, r2
8001a24: 2b00 cmp r3, #0
8001a26: d102 bne.n 8001a2e <keyIns+0xeb2>
ACTIVE_CHANNEL = Ch1;
8001a28: 4b6f ldr r3, [pc, #444] ; (8001be8 <keyIns+0x106c>)
8001a2a: 2200 movs r2, #0
8001a2c: 601a str r2, [r3, #0]
menupos = Hp;
8001a2e: 4b6d ldr r3, [pc, #436] ; (8001be4 <keyIns+0x1068>)
8001a30: 2200 movs r2, #0
8001a32: 701a strb r2, [r3, #0]
break;
8001a34: f000 bc1b b.w 800226e <keyIns+0x16f2>
SetDN();
8001a38: f001 f852 bl 8002ae0 <SetDN>
break;
8001a3c: f000 bc17 b.w 800226e <keyIns+0x16f2>
if(ACTIVE_CHANNEL == Ch2)
8001a40: 4b69 ldr r3, [pc, #420] ; (8001be8 <keyIns+0x106c>)
8001a42: 681b ldr r3, [r3, #0]
8001a44: 2b01 cmp r3, #1
8001a46: d141 bne.n 8001acc <keyIns+0xf50>
if(menupos == Out)
8001a48: 4b66 ldr r3, [pc, #408] ; (8001be4 <keyIns+0x1068>)
8001a4a: 781b ldrb r3, [r3, #0]
8001a4c: b2db uxtb r3, r3
8001a4e: 2b02 cmp r3, #2
8001a50: d139 bne.n 8001ac6 <keyIns+0xf4a>
if(focused)
8001a52: 4b68 ldr r3, [pc, #416] ; (8001bf4 <keyIns+0x1078>)
8001a54: 781b ldrb r3, [r3, #0]
8001a56: b2db uxtb r3, r3
8001a58: 2b00 cmp r3, #0
8001a5a: d003 beq.n 8001a64 <keyIns+0xee8>
SetDN();
8001a5c: f001 f840 bl 8002ae0 <SetDN>
break;
8001a60: f000 bc05 b.w 800226e <keyIns+0x16f2>
ACTIVE_CHANNEL = Ch3;
8001a64: 4b60 ldr r3, [pc, #384] ; (8001be8 <keyIns+0x106c>)
8001a66: 2202 movs r2, #2
8001a68: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001a6a: 4b5f ldr r3, [pc, #380] ; (8001be8 <keyIns+0x106c>)
8001a6c: 681b ldr r3, [r3, #0]
8001a6e: 2201 movs r2, #1
8001a70: fa02 f303 lsl.w r3, r2, r3
8001a74: 461a mov r2, r3
8001a76: 4b60 ldr r3, [pc, #384] ; (8001bf8 <keyIns+0x107c>)
8001a78: 681b ldr r3, [r3, #0]
8001a7a: 4013 ands r3, r2
8001a7c: 2b00 cmp r3, #0
8001a7e: d11e bne.n 8001abe <keyIns+0xf42>
ACTIVE_CHANNEL = Ch4;
8001a80: 4b59 ldr r3, [pc, #356] ; (8001be8 <keyIns+0x106c>)
8001a82: 2203 movs r2, #3
8001a84: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001a86: 4b58 ldr r3, [pc, #352] ; (8001be8 <keyIns+0x106c>)
8001a88: 681b ldr r3, [r3, #0]
8001a8a: 2201 movs r2, #1
8001a8c: fa02 f303 lsl.w r3, r2, r3
8001a90: 461a mov r2, r3
8001a92: 4b59 ldr r3, [pc, #356] ; (8001bf8 <keyIns+0x107c>)
8001a94: 681b ldr r3, [r3, #0]
8001a96: 4013 ands r3, r2
8001a98: 2b00 cmp r3, #0
8001a9a: d110 bne.n 8001abe <keyIns+0xf42>
ACTIVE_CHANNEL = Ch1;
8001a9c: 4b52 ldr r3, [pc, #328] ; (8001be8 <keyIns+0x106c>)
8001a9e: 2200 movs r2, #0
8001aa0: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001aa2: 4b51 ldr r3, [pc, #324] ; (8001be8 <keyIns+0x106c>)
8001aa4: 681b ldr r3, [r3, #0]
8001aa6: 2201 movs r2, #1
8001aa8: fa02 f303 lsl.w r3, r2, r3
8001aac: 461a mov r2, r3
8001aae: 4b52 ldr r3, [pc, #328] ; (8001bf8 <keyIns+0x107c>)
8001ab0: 681b ldr r3, [r3, #0]
8001ab2: 4013 ands r3, r2
8001ab4: 2b00 cmp r3, #0
8001ab6: d102 bne.n 8001abe <keyIns+0xf42>
ACTIVE_CHANNEL = Ch2;
8001ab8: 4b4b ldr r3, [pc, #300] ; (8001be8 <keyIns+0x106c>)
8001aba: 2201 movs r2, #1
8001abc: 601a str r2, [r3, #0]
menupos = Hp;
8001abe: 4b49 ldr r3, [pc, #292] ; (8001be4 <keyIns+0x1068>)
8001ac0: 2200 movs r2, #0
8001ac2: 701a strb r2, [r3, #0]
break;
8001ac4: e3d3 b.n 800226e <keyIns+0x16f2>
SetDN();
8001ac6: f001 f80b bl 8002ae0 <SetDN>
break;
8001aca: e3d0 b.n 800226e <keyIns+0x16f2>
if(ACTIVE_CHANNEL == Ch3)
8001acc: 4b46 ldr r3, [pc, #280] ; (8001be8 <keyIns+0x106c>)
8001ace: 681b ldr r3, [r3, #0]
8001ad0: 2b02 cmp r3, #2
8001ad2: d140 bne.n 8001b56 <keyIns+0xfda>
if(menupos == Out)
8001ad4: 4b43 ldr r3, [pc, #268] ; (8001be4 <keyIns+0x1068>)
8001ad6: 781b ldrb r3, [r3, #0]
8001ad8: b2db uxtb r3, r3
8001ada: 2b02 cmp r3, #2
8001adc: d138 bne.n 8001b50 <keyIns+0xfd4>
if(focused)
8001ade: 4b45 ldr r3, [pc, #276] ; (8001bf4 <keyIns+0x1078>)
8001ae0: 781b ldrb r3, [r3, #0]
8001ae2: b2db uxtb r3, r3
8001ae4: 2b00 cmp r3, #0
8001ae6: d002 beq.n 8001aee <keyIns+0xf72>
SetDN();
8001ae8: f000 fffa bl 8002ae0 <SetDN>
break;
8001aec: e3bf b.n 800226e <keyIns+0x16f2>
ACTIVE_CHANNEL = Ch4;
8001aee: 4b3e ldr r3, [pc, #248] ; (8001be8 <keyIns+0x106c>)
8001af0: 2203 movs r2, #3
8001af2: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001af4: 4b3c ldr r3, [pc, #240] ; (8001be8 <keyIns+0x106c>)
8001af6: 681b ldr r3, [r3, #0]
8001af8: 2201 movs r2, #1
8001afa: fa02 f303 lsl.w r3, r2, r3
8001afe: 461a mov r2, r3
8001b00: 4b3d ldr r3, [pc, #244] ; (8001bf8 <keyIns+0x107c>)
8001b02: 681b ldr r3, [r3, #0]
8001b04: 4013 ands r3, r2
8001b06: 2b00 cmp r3, #0
8001b08: d11e bne.n 8001b48 <keyIns+0xfcc>
ACTIVE_CHANNEL = Ch1;
8001b0a: 4b37 ldr r3, [pc, #220] ; (8001be8 <keyIns+0x106c>)
8001b0c: 2200 movs r2, #0
8001b0e: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001b10: 4b35 ldr r3, [pc, #212] ; (8001be8 <keyIns+0x106c>)
8001b12: 681b ldr r3, [r3, #0]
8001b14: 2201 movs r2, #1
8001b16: fa02 f303 lsl.w r3, r2, r3
8001b1a: 461a mov r2, r3
8001b1c: 4b36 ldr r3, [pc, #216] ; (8001bf8 <keyIns+0x107c>)
8001b1e: 681b ldr r3, [r3, #0]
8001b20: 4013 ands r3, r2
8001b22: 2b00 cmp r3, #0
8001b24: d110 bne.n 8001b48 <keyIns+0xfcc>
ACTIVE_CHANNEL = Ch2;
8001b26: 4b30 ldr r3, [pc, #192] ; (8001be8 <keyIns+0x106c>)
8001b28: 2201 movs r2, #1
8001b2a: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001b2c: 4b2e ldr r3, [pc, #184] ; (8001be8 <keyIns+0x106c>)
8001b2e: 681b ldr r3, [r3, #0]
8001b30: 2201 movs r2, #1
8001b32: fa02 f303 lsl.w r3, r2, r3
8001b36: 461a mov r2, r3
8001b38: 4b2f ldr r3, [pc, #188] ; (8001bf8 <keyIns+0x107c>)
8001b3a: 681b ldr r3, [r3, #0]
8001b3c: 4013 ands r3, r2
8001b3e: 2b00 cmp r3, #0
8001b40: d102 bne.n 8001b48 <keyIns+0xfcc>
ACTIVE_CHANNEL = Ch3;
8001b42: 4b29 ldr r3, [pc, #164] ; (8001be8 <keyIns+0x106c>)
8001b44: 2202 movs r2, #2
8001b46: 601a str r2, [r3, #0]
menupos = Hp;
8001b48: 4b26 ldr r3, [pc, #152] ; (8001be4 <keyIns+0x1068>)
8001b4a: 2200 movs r2, #0
8001b4c: 701a strb r2, [r3, #0]
break;
8001b4e: e38e b.n 800226e <keyIns+0x16f2>
SetDN();
8001b50: f000 ffc6 bl 8002ae0 <SetDN>
break;
8001b54: e38b b.n 800226e <keyIns+0x16f2>
if(ACTIVE_CHANNEL == Ch4)
8001b56: 4b24 ldr r3, [pc, #144] ; (8001be8 <keyIns+0x106c>)
8001b58: 681b ldr r3, [r3, #0]
8001b5a: 2b03 cmp r3, #3
8001b5c: f040 8387 bne.w 800226e <keyIns+0x16f2>
if(menupos == Out)
8001b60: 4b20 ldr r3, [pc, #128] ; (8001be4 <keyIns+0x1068>)
8001b62: 781b ldrb r3, [r3, #0]
8001b64: b2db uxtb r3, r3
8001b66: 2b02 cmp r3, #2
8001b68: d138 bne.n 8001bdc <keyIns+0x1060>
if(focused)
8001b6a: 4b22 ldr r3, [pc, #136] ; (8001bf4 <keyIns+0x1078>)
8001b6c: 781b ldrb r3, [r3, #0]
8001b6e: b2db uxtb r3, r3
8001b70: 2b00 cmp r3, #0
8001b72: d002 beq.n 8001b7a <keyIns+0xffe>
SetDN();
8001b74: f000 ffb4 bl 8002ae0 <SetDN>
break;
8001b78: e379 b.n 800226e <keyIns+0x16f2>
ACTIVE_CHANNEL = Ch1;
8001b7a: 4b1b ldr r3, [pc, #108] ; (8001be8 <keyIns+0x106c>)
8001b7c: 2200 movs r2, #0
8001b7e: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001b80: 4b19 ldr r3, [pc, #100] ; (8001be8 <keyIns+0x106c>)
8001b82: 681b ldr r3, [r3, #0]
8001b84: 2201 movs r2, #1
8001b86: fa02 f303 lsl.w r3, r2, r3
8001b8a: 461a mov r2, r3
8001b8c: 4b1a ldr r3, [pc, #104] ; (8001bf8 <keyIns+0x107c>)
8001b8e: 681b ldr r3, [r3, #0]
8001b90: 4013 ands r3, r2
8001b92: 2b00 cmp r3, #0
8001b94: d11e bne.n 8001bd4 <keyIns+0x1058>
ACTIVE_CHANNEL = Ch2;
8001b96: 4b14 ldr r3, [pc, #80] ; (8001be8 <keyIns+0x106c>)
8001b98: 2201 movs r2, #1
8001b9a: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001b9c: 4b12 ldr r3, [pc, #72] ; (8001be8 <keyIns+0x106c>)
8001b9e: 681b ldr r3, [r3, #0]
8001ba0: 2201 movs r2, #1
8001ba2: fa02 f303 lsl.w r3, r2, r3
8001ba6: 461a mov r2, r3
8001ba8: 4b13 ldr r3, [pc, #76] ; (8001bf8 <keyIns+0x107c>)
8001baa: 681b ldr r3, [r3, #0]
8001bac: 4013 ands r3, r2
8001bae: 2b00 cmp r3, #0
8001bb0: d110 bne.n 8001bd4 <keyIns+0x1058>
ACTIVE_CHANNEL = Ch3;
8001bb2: 4b0d ldr r3, [pc, #52] ; (8001be8 <keyIns+0x106c>)
8001bb4: 2202 movs r2, #2
8001bb6: 601a str r2, [r3, #0]
if((MASK_CHANNELS & (1 << ACTIVE_CHANNEL)) == 0)
8001bb8: 4b0b ldr r3, [pc, #44] ; (8001be8 <keyIns+0x106c>)
8001bba: 681b ldr r3, [r3, #0]
8001bbc: 2201 movs r2, #1
8001bbe: fa02 f303 lsl.w r3, r2, r3
8001bc2: 461a mov r2, r3
8001bc4: 4b0c ldr r3, [pc, #48] ; (8001bf8 <keyIns+0x107c>)
8001bc6: 681b ldr r3, [r3, #0]
8001bc8: 4013 ands r3, r2
8001bca: 2b00 cmp r3, #0
8001bcc: d102 bne.n 8001bd4 <keyIns+0x1058>
ACTIVE_CHANNEL = Ch4;
8001bce: 4b06 ldr r3, [pc, #24] ; (8001be8 <keyIns+0x106c>)
8001bd0: 2203 movs r2, #3
8001bd2: 601a str r2, [r3, #0]
menupos = Hp;
8001bd4: 4b03 ldr r3, [pc, #12] ; (8001be4 <keyIns+0x1068>)
8001bd6: 2200 movs r2, #0
8001bd8: 701a strb r2, [r3, #0]
break;
8001bda: e348 b.n 800226e <keyIns+0x16f2>
SetDN();
8001bdc: f000 ff80 bl 8002ae0 <SetDN>
break;
8001be0: e345 b.n 800226e <keyIns+0x16f2>
8001be2: bf00 nop
8001be4: 20020010 .word 0x20020010
8001be8: 2006ba68 .word 0x2006ba68
8001bec: 200209d9 .word 0x200209d9
8001bf0: 2006ba6c .word 0x2006ba6c
8001bf4: 200209e4 .word 0x200209e4
8001bf8: 2002002c .word 0x2002002c
if(menu == CALIBR_00)
8001bfc: 4ba1 ldr r3, [pc, #644] ; (8001e84 <keyIns+0x1308>)
8001bfe: 781b ldrb r3, [r3, #0]
8001c00: b2db uxtb r3, r3
8001c02: 2b01 cmp r3, #1
8001c04: d10d bne.n 8001c22 <keyIns+0x10a6>
if(menupos < Ch5) menupos++;
8001c06: 4ba0 ldr r3, [pc, #640] ; (8001e88 <keyIns+0x130c>)
8001c08: 781b ldrb r3, [r3, #0]
8001c0a: b2db uxtb r3, r3
8001c0c: 2b03 cmp r3, #3
8001c0e: f200 832e bhi.w 800226e <keyIns+0x16f2>
8001c12: 4b9d ldr r3, [pc, #628] ; (8001e88 <keyIns+0x130c>)
8001c14: 781b ldrb r3, [r3, #0]
8001c16: b2db uxtb r3, r3
8001c18: 3301 adds r3, #1
8001c1a: b2da uxtb r2, r3
8001c1c: 4b9a ldr r3, [pc, #616] ; (8001e88 <keyIns+0x130c>)
8001c1e: 701a strb r2, [r3, #0]
break;
8001c20: e325 b.n 800226e <keyIns+0x16f2>
if(menu >= CALIBR_0 && menu <= CALIBR_22)
8001c22: 4b98 ldr r3, [pc, #608] ; (8001e84 <keyIns+0x1308>)
8001c24: 781b ldrb r3, [r3, #0]
8001c26: b2db uxtb r3, r3
8001c28: 2b01 cmp r3, #1
8001c2a: f240 8320 bls.w 800226e <keyIns+0x16f2>
8001c2e: 4b95 ldr r3, [pc, #596] ; (8001e84 <keyIns+0x1308>)
8001c30: 781b ldrb r3, [r3, #0]
8001c32: b2db uxtb r3, r3
8001c34: 2b18 cmp r3, #24
8001c36: f200 831a bhi.w 800226e <keyIns+0x16f2>
if(menupos == Set100)
8001c3a: 4b93 ldr r3, [pc, #588] ; (8001e88 <keyIns+0x130c>)
8001c3c: 781b ldrb r3, [r3, #0]
8001c3e: b2db uxtb r3, r3
8001c40: 2b00 cmp r3, #0
8001c42: d103 bne.n 8001c4c <keyIns+0x10d0>
menupos = Set_100;
8001c44: 4b90 ldr r3, [pc, #576] ; (8001e88 <keyIns+0x130c>)
8001c46: 2201 movs r2, #1
8001c48: 701a strb r2, [r3, #0]
break;
8001c4a: e310 b.n 800226e <keyIns+0x16f2>
if(menupos == Set_100)
8001c4c: 4b8e ldr r3, [pc, #568] ; (8001e88 <keyIns+0x130c>)
8001c4e: 781b ldrb r3, [r3, #0]
8001c50: b2db uxtb r3, r3
8001c52: 2b01 cmp r3, #1
8001c54: d103 bne.n 8001c5e <keyIns+0x10e2>
menupos = Set10;
8001c56: 4b8c ldr r3, [pc, #560] ; (8001e88 <keyIns+0x130c>)
8001c58: 2202 movs r2, #2
8001c5a: 701a strb r2, [r3, #0]
break;
8001c5c: e307 b.n 800226e <keyIns+0x16f2>
if(menupos == Set10)
8001c5e: 4b8a ldr r3, [pc, #552] ; (8001e88 <keyIns+0x130c>)
8001c60: 781b ldrb r3, [r3, #0]
8001c62: b2db uxtb r3, r3
8001c64: 2b02 cmp r3, #2
8001c66: d103 bne.n 8001c70 <keyIns+0x10f4>
menupos = Set_10;
8001c68: 4b87 ldr r3, [pc, #540] ; (8001e88 <keyIns+0x130c>)
8001c6a: 2203 movs r2, #3
8001c6c: 701a strb r2, [r3, #0]
break;
8001c6e: e2fe b.n 800226e <keyIns+0x16f2>
if(menupos == Set_10)
8001c70: 4b85 ldr r3, [pc, #532] ; (8001e88 <keyIns+0x130c>)
8001c72: 781b ldrb r3, [r3, #0]
8001c74: b2db uxtb r3, r3
8001c76: 2b03 cmp r3, #3
8001c78: d103 bne.n 8001c82 <keyIns+0x1106>
menupos = Set1;
8001c7a: 4b83 ldr r3, [pc, #524] ; (8001e88 <keyIns+0x130c>)
8001c7c: 2204 movs r2, #4
8001c7e: 701a strb r2, [r3, #0]
break;
8001c80: e2f5 b.n 800226e <keyIns+0x16f2>
if(menupos == Set1)
8001c82: 4b81 ldr r3, [pc, #516] ; (8001e88 <keyIns+0x130c>)
8001c84: 781b ldrb r3, [r3, #0]
8001c86: b2db uxtb r3, r3
8001c88: 2b04 cmp r3, #4
8001c8a: d103 bne.n 8001c94 <keyIns+0x1118>
menupos = Set_1;
8001c8c: 4b7e ldr r3, [pc, #504] ; (8001e88 <keyIns+0x130c>)
8001c8e: 2205 movs r2, #5
8001c90: 701a strb r2, [r3, #0]
break;
8001c92: e2ec b.n 800226e <keyIns+0x16f2>
if(menupos == Set_1)
8001c94: 4b7c ldr r3, [pc, #496] ; (8001e88 <keyIns+0x130c>)
8001c96: 781b ldrb r3, [r3, #0]
8001c98: b2db uxtb r3, r3
8001c9a: 2b05 cmp r3, #5
8001c9c: f040 82e7 bne.w 800226e <keyIns+0x16f2>
menupos = Next;
8001ca0: 4b79 ldr r3, [pc, #484] ; (8001e88 <keyIns+0x130c>)
8001ca2: 2206 movs r2, #6
8001ca4: 701a strb r2, [r3, #0]
break;
8001ca6: e2e2 b.n 800226e <keyIns+0x16f2>
case KEY_OK: // TODO KEY OK
{
if(menu == OPTIONS)
8001ca8: 4b76 ldr r3, [pc, #472] ; (8001e84 <keyIns+0x1308>)
8001caa: 781b ldrb r3, [r3, #0]
8001cac: b2db uxtb r3, r3
8001cae: 2b19 cmp r3, #25
8001cb0: d13e bne.n 8001d30 <keyIns+0x11b4>
{
if(menupos == Back)
8001cb2: 4b75 ldr r3, [pc, #468] ; (8001e88 <keyIns+0x130c>)
8001cb4: 781b ldrb r3, [r3, #0]
8001cb6: b2db uxtb r3, r3
8001cb8: 2bff cmp r3, #255 ; 0xff
8001cba: d10c bne.n 8001cd6 <keyIns+0x115a>
{
ACTIVE_CHANNEL = LAST_ACTIVE_CHANNEL;
8001cbc: 4b73 ldr r3, [pc, #460] ; (8001e8c <keyIns+0x1310>)
8001cbe: 681b ldr r3, [r3, #0]
8001cc0: 4a73 ldr r2, [pc, #460] ; (8001e90 <keyIns+0x1314>)
8001cc2: 6013 str r3, [r2, #0]
menupos = lastmenupos;
8001cc4: 4b73 ldr r3, [pc, #460] ; (8001e94 <keyIns+0x1318>)
8001cc6: 781b ldrb r3, [r3, #0]
8001cc8: b2da uxtb r2, r3
8001cca: 4b6f ldr r3, [pc, #444] ; (8001e88 <keyIns+0x130c>)
8001ccc: 701a strb r2, [r3, #0]
menu = MAIN;
8001cce: 4b6d ldr r3, [pc, #436] ; (8001e84 <keyIns+0x1308>)
8001cd0: 2200 movs r2, #0
8001cd2: 701a strb r2, [r3, #0]
WriteCorr(ACTIVE_CHANNEL, (menu - 2), 100);
}
}
}
}
break;
8001cd4: e2cd b.n 8002272 <keyIns+0x16f6>
if(menupos == Inputs)
8001cd6: 4b6c ldr r3, [pc, #432] ; (8001e88 <keyIns+0x130c>)
8001cd8: 781b ldrb r3, [r3, #0]
8001cda: b2db uxtb r3, r3
8001cdc: 2b00 cmp r3, #0
8001cde: d10b bne.n 8001cf8 <keyIns+0x117c>
lastmenupos = menupos;
8001ce0: 4b69 ldr r3, [pc, #420] ; (8001e88 <keyIns+0x130c>)
8001ce2: 781b ldrb r3, [r3, #0]
8001ce4: b2da uxtb r2, r3
8001ce6: 4b6b ldr r3, [pc, #428] ; (8001e94 <keyIns+0x1318>)
8001ce8: 701a strb r2, [r3, #0]
menupos = Sens_1;
8001cea: 4b67 ldr r3, [pc, #412] ; (8001e88 <keyIns+0x130c>)
8001cec: 2200 movs r2, #0
8001cee: 701a strb r2, [r3, #0]
menu = SETTINGS;
8001cf0: 4b64 ldr r3, [pc, #400] ; (8001e84 <keyIns+0x1308>)
8001cf2: 222b movs r2, #43 ; 0x2b
8001cf4: 701a strb r2, [r3, #0]
break;
8001cf6: e2bc b.n 8002272 <keyIns+0x16f6>
if(menupos == Lang)
8001cf8: 4b63 ldr r3, [pc, #396] ; (8001e88 <keyIns+0x130c>)
8001cfa: 781b ldrb r3, [r3, #0]
8001cfc: b2db uxtb r3, r3
8001cfe: 2b01 cmp r3, #1
8001d00: d10d bne.n 8001d1e <keyIns+0x11a2>
focused ^= 1;
8001d02: 4b65 ldr r3, [pc, #404] ; (8001e98 <keyIns+0x131c>)
8001d04: 781b ldrb r3, [r3, #0]
8001d06: b2db uxtb r3, r3
8001d08: f083 0301 eor.w r3, r3, #1
8001d0c: b2db uxtb r3, r3
8001d0e: 2b00 cmp r3, #0
8001d10: bf14 ite ne
8001d12: 2301 movne r3, #1
8001d14: 2300 moveq r3, #0
8001d16: b2da uxtb r2, r3
8001d18: 4b5f ldr r3, [pc, #380] ; (8001e98 <keyIns+0x131c>)
8001d1a: 701a strb r2, [r3, #0]
break;
8001d1c: e2a9 b.n 8002272 <keyIns+0x16f6>
if(menupos == PowerOff)
8001d1e: 4b5a ldr r3, [pc, #360] ; (8001e88 <keyIns+0x130c>)
8001d20: 781b ldrb r3, [r3, #0]
8001d22: b2db uxtb r3, r3
8001d24: 2b02 cmp r3, #2
8001d26: f040 82a4 bne.w 8002272 <keyIns+0x16f6>
Off();
8001d2a: f7fe fc15 bl 8000558 <Off>
break;
8001d2e: e2a0 b.n 8002272 <keyIns+0x16f6>
if(menu == SETTINGS)
8001d30: 4b54 ldr r3, [pc, #336] ; (8001e84 <keyIns+0x1308>)
8001d32: 781b ldrb r3, [r3, #0]
8001d34: b2db uxtb r3, r3
8001d36: 2b2b cmp r3, #43 ; 0x2b
8001d38: f040 8191 bne.w 800205e <keyIns+0x14e2>
if(menupos == Back)
8001d3c: 4b52 ldr r3, [pc, #328] ; (8001e88 <keyIns+0x130c>)
8001d3e: 781b ldrb r3, [r3, #0]
8001d40: b2db uxtb r3, r3
8001d42: 2bff cmp r3, #255 ; 0xff
8001d44: d108 bne.n 8001d58 <keyIns+0x11dc>
menupos = lastmenupos;
8001d46: 4b53 ldr r3, [pc, #332] ; (8001e94 <keyIns+0x1318>)
8001d48: 781b ldrb r3, [r3, #0]
8001d4a: b2da uxtb r2, r3
8001d4c: 4b4e ldr r3, [pc, #312] ; (8001e88 <keyIns+0x130c>)
8001d4e: 701a strb r2, [r3, #0]
menu = OPTIONS;
8001d50: 4b4c ldr r3, [pc, #304] ; (8001e84 <keyIns+0x1308>)
8001d52: 2219 movs r2, #25
8001d54: 701a strb r2, [r3, #0]
break;
8001d56: e28c b.n 8002272 <keyIns+0x16f6>
if(menupos == Val_1)
8001d58: 4b4b ldr r3, [pc, #300] ; (8001e88 <keyIns+0x130c>)
8001d5a: 781b ldrb r3, [r3, #0]
8001d5c: b2db uxtb r3, r3
8001d5e: 2b01 cmp r3, #1
8001d60: d10d bne.n 8001d7e <keyIns+0x1202>
focused ^= 1;
8001d62: 4b4d ldr r3, [pc, #308] ; (8001e98 <keyIns+0x131c>)
8001d64: 781b ldrb r3, [r3, #0]
8001d66: b2db uxtb r3, r3
8001d68: f083 0301 eor.w r3, r3, #1
8001d6c: b2db uxtb r3, r3
8001d6e: 2b00 cmp r3, #0
8001d70: bf14 ite ne
8001d72: 2301 movne r3, #1
8001d74: 2300 moveq r3, #0
8001d76: b2da uxtb r2, r3
8001d78: 4b47 ldr r3, [pc, #284] ; (8001e98 <keyIns+0x131c>)
8001d7a: 701a strb r2, [r3, #0]
break;
8001d7c: e279 b.n 8002272 <keyIns+0x16f6>
if(menupos == Val_2)
8001d7e: 4b42 ldr r3, [pc, #264] ; (8001e88 <keyIns+0x130c>)
8001d80: 781b ldrb r3, [r3, #0]
8001d82: b2db uxtb r3, r3
8001d84: 2b09 cmp r3, #9
8001d86: d10d bne.n 8001da4 <keyIns+0x1228>
focused ^= 1;
8001d88: 4b43 ldr r3, [pc, #268] ; (8001e98 <keyIns+0x131c>)
8001d8a: 781b ldrb r3, [r3, #0]
8001d8c: b2db uxtb r3, r3
8001d8e: f083 0301 eor.w r3, r3, #1
8001d92: b2db uxtb r3, r3
8001d94: 2b00 cmp r3, #0
8001d96: bf14 ite ne
8001d98: 2301 movne r3, #1
8001d9a: 2300 moveq r3, #0
8001d9c: b2da uxtb r2, r3
8001d9e: 4b3e ldr r3, [pc, #248] ; (8001e98 <keyIns+0x131c>)
8001da0: 701a strb r2, [r3, #0]
break;
8001da2: e266 b.n 8002272 <keyIns+0x16f6>
if(menupos == Val_3)
8001da4: 4b38 ldr r3, [pc, #224] ; (8001e88 <keyIns+0x130c>)
8001da6: 781b ldrb r3, [r3, #0]
8001da8: b2db uxtb r3, r3
8001daa: 2b11 cmp r3, #17
8001dac: d10d bne.n 8001dca <keyIns+0x124e>
focused ^= 1;
8001dae: 4b3a ldr r3, [pc, #232] ; (8001e98 <keyIns+0x131c>)
8001db0: 781b ldrb r3, [r3, #0]
8001db2: b2db uxtb r3, r3
8001db4: f083 0301 eor.w r3, r3, #1
8001db8: b2db uxtb r3, r3
8001dba: 2b00 cmp r3, #0
8001dbc: bf14 ite ne
8001dbe: 2301 movne r3, #1
8001dc0: 2300 moveq r3, #0
8001dc2: b2da uxtb r2, r3
8001dc4: 4b34 ldr r3, [pc, #208] ; (8001e98 <keyIns+0x131c>)
8001dc6: 701a strb r2, [r3, #0]
break;
8001dc8: e253 b.n 8002272 <keyIns+0x16f6>
if(menupos == Val_4)
8001dca: 4b2f ldr r3, [pc, #188] ; (8001e88 <keyIns+0x130c>)
8001dcc: 781b ldrb r3, [r3, #0]
8001dce: b2db uxtb r3, r3
8001dd0: 2b19 cmp r3, #25
8001dd2: d10d bne.n 8001df0 <keyIns+0x1274>
focused ^= 1;
8001dd4: 4b30 ldr r3, [pc, #192] ; (8001e98 <keyIns+0x131c>)
8001dd6: 781b ldrb r3, [r3, #0]
8001dd8: b2db uxtb r3, r3
8001dda: f083 0301 eor.w r3, r3, #1
8001dde: b2db uxtb r3, r3
8001de0: 2b00 cmp r3, #0
8001de2: bf14 ite ne
8001de4: 2301 movne r3, #1
8001de6: 2300 moveq r3, #0
8001de8: b2da uxtb r2, r3
8001dea: 4b2b ldr r3, [pc, #172] ; (8001e98 <keyIns+0x131c>)
8001dec: 701a strb r2, [r3, #0]
break;
8001dee: e240 b.n 8002272 <keyIns+0x16f6>
if(menupos == Sens_1)
8001df0: 4b25 ldr r3, [pc, #148] ; (8001e88 <keyIns+0x130c>)
8001df2: 781b ldrb r3, [r3, #0]
8001df4: b2db uxtb r3, r3
8001df6: 2b00 cmp r3, #0
8001df8: d10f bne.n 8001e1a <keyIns+0x129e>
memcpy((void *) &pardata_old, (void *) &pardata, sizeof(UserData_TypeDef));
8001dfa: 4a28 ldr r2, [pc, #160] ; (8001e9c <keyIns+0x1320>)
8001dfc: 4b28 ldr r3, [pc, #160] ; (8001ea0 <keyIns+0x1324>)
8001dfe: 4610 mov r0, r2
8001e00: 4619 mov r1, r3
8001e02: f44f 7302 mov.w r3, #520 ; 0x208
8001e06: 461a mov r2, r3
8001e08: f014 fb20 bl 801644c <memcpy>
focused = true;
8001e0c: 4b22 ldr r3, [pc, #136] ; (8001e98 <keyIns+0x131c>)
8001e0e: 2201 movs r2, #1
8001e10: 701a strb r2, [r3, #0]
menupos = Kikdt_1;
8001e12: 4b1d ldr r3, [pc, #116] ; (8001e88 <keyIns+0x130c>)
8001e14: 2202 movs r2, #2
8001e16: 701a strb r2, [r3, #0]
break;
8001e18: e22b b.n 8002272 <keyIns+0x16f6>
if(menupos >= Kikdt_1 && menupos <= Kpt_1)
8001e1a: 4b1b ldr r3, [pc, #108] ; (8001e88 <keyIns+0x130c>)
8001e1c: 781b ldrb r3, [r3, #0]
8001e1e: b2db uxtb r3, r3
8001e20: 2b01 cmp r3, #1
8001e22: d93f bls.n 8001ea4 <keyIns+0x1328>
8001e24: 4b18 ldr r3, [pc, #96] ; (8001e88 <keyIns+0x130c>)
8001e26: 781b ldrb r3, [r3, #0]
8001e28: b2db uxtb r3, r3
8001e2a: 2b07 cmp r3, #7
8001e2c: d83a bhi.n 8001ea4 <keyIns+0x1328>
if(menupos < Kpt_1)
8001e2e: 4b16 ldr r3, [pc, #88] ; (8001e88 <keyIns+0x130c>)
8001e30: 781b ldrb r3, [r3, #0]
8001e32: b2db uxtb r3, r3
8001e34: 2b06 cmp r3, #6
8001e36: d80a bhi.n 8001e4e <keyIns+0x12d2>
focused = true;
8001e38: 4b17 ldr r3, [pc, #92] ; (8001e98 <keyIns+0x131c>)
8001e3a: 2201 movs r2, #1
8001e3c: 701a strb r2, [r3, #0]
menupos++;
8001e3e: 4b12 ldr r3, [pc, #72] ; (8001e88 <keyIns+0x130c>)
8001e40: 781b ldrb r3, [r3, #0]
8001e42: b2db uxtb r3, r3
8001e44: 3301 adds r3, #1
8001e46: b2da uxtb r2, r3
8001e48: 4b0f ldr r3, [pc, #60] ; (8001e88 <keyIns+0x130c>)
8001e4a: 701a strb r2, [r3, #0]
if(menupos < Kpt_1)
8001e4c: e1e4 b.n 8002218 <keyIns+0x169c>
focused = false;
8001e4e: 4b12 ldr r3, [pc, #72] ; (8001e98 <keyIns+0x131c>)
8001e50: 2200 movs r2, #0
8001e52: 701a strb r2, [r3, #0]
menupos = Sens_1;
8001e54: 4b0c ldr r3, [pc, #48] ; (8001e88 <keyIns+0x130c>)
8001e56: 2200 movs r2, #0
8001e58: 701a strb r2, [r3, #0]
if(WriteChannelSens(Ch1))
8001e5a: 2000 movs r0, #0
8001e5c: f00e fe68 bl 8010b30 <WriteChannelSens>
8001e60: 4603 mov r3, r0
8001e62: 2b00 cmp r3, #0
8001e64: d009 beq.n 8001e7a <keyIns+0x12fe>
memcpy((void *) &pardata, (void *) &pardata_old, sizeof(UserData_TypeDef));
8001e66: 4a0e ldr r2, [pc, #56] ; (8001ea0 <keyIns+0x1324>)
8001e68: 4b0c ldr r3, [pc, #48] ; (8001e9c <keyIns+0x1320>)
8001e6a: 4610 mov r0, r2
8001e6c: 4619 mov r1, r3
8001e6e: f44f 7302 mov.w r3, #520 ; 0x208
8001e72: 461a mov r2, r3
8001e74: f014 faea bl 801644c <memcpy>
if(menupos < Kpt_1)
8001e78: e1ce b.n 8002218 <keyIns+0x169c>
WriteChannel(Ch1);
8001e7a: 2000 movs r0, #0
8001e7c: f00e fb2a bl 80104d4 <WriteChannel>
if(menupos < Kpt_1)
8001e80: e1ca b.n 8002218 <keyIns+0x169c>
8001e82: bf00 nop
8001e84: 200209d9 .word 0x200209d9
8001e88: 20020010 .word 0x20020010
8001e8c: 2006ba64 .word 0x2006ba64
8001e90: 2006ba68 .word 0x2006ba68
8001e94: 20020011 .word 0x20020011
8001e98: 200209e4 .word 0x200209e4
8001e9c: 2006bf1c .word 0x2006bf1c
8001ea0: 2006bca8 .word 0x2006bca8
if(menupos == Sens_2)
8001ea4: 4ba9 ldr r3, [pc, #676] ; (800214c <keyIns+0x15d0>)
8001ea6: 781b ldrb r3, [r3, #0]
8001ea8: b2db uxtb r3, r3
8001eaa: 2b08 cmp r3, #8
8001eac: d10f bne.n 8001ece <keyIns+0x1352>
memcpy((void *) &pardata_old, (void *) &pardata, sizeof(UserData_TypeDef));
8001eae: 4aa8 ldr r2, [pc, #672] ; (8002150 <keyIns+0x15d4>)
8001eb0: 4ba8 ldr r3, [pc, #672] ; (8002154 <keyIns+0x15d8>)
8001eb2: 4610 mov r0, r2
8001eb4: 4619 mov r1, r3
8001eb6: f44f 7302 mov.w r3, #520 ; 0x208
8001eba: 461a mov r2, r3
8001ebc: f014 fac6 bl 801644c <memcpy>
focused = true;
8001ec0: 4ba5 ldr r3, [pc, #660] ; (8002158 <keyIns+0x15dc>)
8001ec2: 2201 movs r2, #1
8001ec4: 701a strb r2, [r3, #0]
menupos = Kikdt_2;
8001ec6: 4ba1 ldr r3, [pc, #644] ; (800214c <keyIns+0x15d0>)
8001ec8: 220a movs r2, #10
8001eca: 701a strb r2, [r3, #0]
break;
8001ecc: e1d1 b.n 8002272 <keyIns+0x16f6>
if(menupos >= Kikdt_2 && menupos <= Kpt_2)
8001ece: 4b9f ldr r3, [pc, #636] ; (800214c <keyIns+0x15d0>)
8001ed0: 781b ldrb r3, [r3, #0]
8001ed2: b2db uxtb r3, r3
8001ed4: 2b09 cmp r3, #9
8001ed6: d92e bls.n 8001f36 <keyIns+0x13ba>
8001ed8: 4b9c ldr r3, [pc, #624] ; (800214c <keyIns+0x15d0>)
8001eda: 781b ldrb r3, [r3, #0]
8001edc: b2db uxtb r3, r3
8001ede: 2b0f cmp r3, #15
8001ee0: d829 bhi.n 8001f36 <keyIns+0x13ba>
if(menupos < Kpt_2)
8001ee2: 4b9a ldr r3, [pc, #616] ; (800214c <keyIns+0x15d0>)
8001ee4: 781b ldrb r3, [r3, #0]
8001ee6: b2db uxtb r3, r3
8001ee8: 2b0e cmp r3, #14
8001eea: d80a bhi.n 8001f02 <keyIns+0x1386>
focused = true;
8001eec: 4b9a ldr r3, [pc, #616] ; (8002158 <keyIns+0x15dc>)
8001eee: 2201 movs r2, #1
8001ef0: 701a strb r2, [r3, #0]
menupos++;
8001ef2: 4b96 ldr r3, [pc, #600] ; (800214c <keyIns+0x15d0>)
8001ef4: 781b ldrb r3, [r3, #0]
8001ef6: b2db uxtb r3, r3
8001ef8: 3301 adds r3, #1
8001efa: b2da uxtb r2, r3
8001efc: 4b93 ldr r3, [pc, #588] ; (800214c <keyIns+0x15d0>)
8001efe: 701a strb r2, [r3, #0]
if(menupos < Kpt_2)
8001f00: e18a b.n 8002218 <keyIns+0x169c>
focused = false;
8001f02: 4b95 ldr r3, [pc, #596] ; (8002158 <keyIns+0x15dc>)
8001f04: 2200 movs r2, #0
8001f06: 701a strb r2, [r3, #0]
menupos = Sens_2;
8001f08: 4b90 ldr r3, [pc, #576] ; (800214c <keyIns+0x15d0>)
8001f0a: 2208 movs r2, #8
8001f0c: 701a strb r2, [r3, #0]
if(WriteChannelSens(Ch2))
8001f0e: 2001 movs r0, #1
8001f10: f00e fe0e bl 8010b30 <WriteChannelSens>
8001f14: 4603 mov r3, r0
8001f16: 2b00 cmp r3, #0
8001f18: d009 beq.n 8001f2e <keyIns+0x13b2>
memcpy((void *) &pardata, (void *) &pardata_old, sizeof(UserData_TypeDef));
8001f1a: 4a8e ldr r2, [pc, #568] ; (8002154 <keyIns+0x15d8>)
8001f1c: 4b8c ldr r3, [pc, #560] ; (8002150 <keyIns+0x15d4>)
8001f1e: 4610 mov r0, r2
8001f20: 4619 mov r1, r3
8001f22: f44f 7302 mov.w r3, #520 ; 0x208
8001f26: 461a mov r2, r3
8001f28: f014 fa90 bl 801644c <memcpy>
if(menupos < Kpt_2)
8001f2c: e174 b.n 8002218 <keyIns+0x169c>
WriteChannel(Ch2);
8001f2e: 2001 movs r0, #1
8001f30: f00e fad0 bl 80104d4 <WriteChannel>
if(menupos < Kpt_2)
8001f34: e170 b.n 8002218 <keyIns+0x169c>
if(menupos == Sens_3)
8001f36: 4b85 ldr r3, [pc, #532] ; (800214c <keyIns+0x15d0>)
8001f38: 781b ldrb r3, [r3, #0]
8001f3a: b2db uxtb r3, r3
8001f3c: 2b10 cmp r3, #16
8001f3e: d10f bne.n 8001f60 <keyIns+0x13e4>
memcpy((void *) &pardata_old, (void *) &pardata, sizeof(UserData_TypeDef));
8001f40: 4a83 ldr r2, [pc, #524] ; (8002150 <keyIns+0x15d4>)
8001f42: 4b84 ldr r3, [pc, #528] ; (8002154 <keyIns+0x15d8>)
8001f44: 4610 mov r0, r2
8001f46: 4619 mov r1, r3
8001f48: f44f 7302 mov.w r3, #520 ; 0x208
8001f4c: 461a mov r2, r3
8001f4e: f014 fa7d bl 801644c <memcpy>
focused = true;
8001f52: 4b81 ldr r3, [pc, #516] ; (8002158 <keyIns+0x15dc>)
8001f54: 2201 movs r2, #1
8001f56: 701a strb r2, [r3, #0]
menupos = Kikdt_3;
8001f58: 4b7c ldr r3, [pc, #496] ; (800214c <keyIns+0x15d0>)
8001f5a: 2212 movs r2, #18
8001f5c: 701a strb r2, [r3, #0]
break;
8001f5e: e188 b.n 8002272 <keyIns+0x16f6>
if(menupos >= Kikdt_3 && menupos <= Kpt_3)
8001f60: 4b7a ldr r3, [pc, #488] ; (800214c <keyIns+0x15d0>)
8001f62: 781b ldrb r3, [r3, #0]
8001f64: b2db uxtb r3, r3
8001f66: 2b11 cmp r3, #17
8001f68: d92e bls.n 8001fc8 <keyIns+0x144c>
8001f6a: 4b78 ldr r3, [pc, #480] ; (800214c <keyIns+0x15d0>)
8001f6c: 781b ldrb r3, [r3, #0]
8001f6e: b2db uxtb r3, r3
8001f70: 2b17 cmp r3, #23
8001f72: d829 bhi.n 8001fc8 <keyIns+0x144c>
if(menupos < Kpt_3)
8001f74: 4b75 ldr r3, [pc, #468] ; (800214c <keyIns+0x15d0>)
8001f76: 781b ldrb r3, [r3, #0]
8001f78: b2db uxtb r3, r3
8001f7a: 2b16 cmp r3, #22
8001f7c: d80a bhi.n 8001f94 <keyIns+0x1418>
focused = true;
8001f7e: 4b76 ldr r3, [pc, #472] ; (8002158 <keyIns+0x15dc>)
8001f80: 2201 movs r2, #1
8001f82: 701a strb r2, [r3, #0]
menupos++;
8001f84: 4b71 ldr r3, [pc, #452] ; (800214c <keyIns+0x15d0>)
8001f86: 781b ldrb r3, [r3, #0]
8001f88: b2db uxtb r3, r3
8001f8a: 3301 adds r3, #1
8001f8c: b2da uxtb r2, r3
8001f8e: 4b6f ldr r3, [pc, #444] ; (800214c <keyIns+0x15d0>)
8001f90: 701a strb r2, [r3, #0]
if(menupos < Kpt_3)
8001f92: e141 b.n 8002218 <keyIns+0x169c>
focused = false;
8001f94: 4b70 ldr r3, [pc, #448] ; (8002158 <keyIns+0x15dc>)
8001f96: 2200 movs r2, #0
8001f98: 701a strb r2, [r3, #0]
menupos = Sens_3;
8001f9a: 4b6c ldr r3, [pc, #432] ; (800214c <keyIns+0x15d0>)
8001f9c: 2210 movs r2, #16
8001f9e: 701a strb r2, [r3, #0]
if(WriteChannelSens(Ch3))
8001fa0: 2002 movs r0, #2
8001fa2: f00e fdc5 bl 8010b30 <WriteChannelSens>
8001fa6: 4603 mov r3, r0
8001fa8: 2b00 cmp r3, #0
8001faa: d009 beq.n 8001fc0 <keyIns+0x1444>
memcpy((void *) &pardata, (void *) &pardata_old, sizeof(UserData_TypeDef));
8001fac: 4a69 ldr r2, [pc, #420] ; (8002154 <keyIns+0x15d8>)
8001fae: 4b68 ldr r3, [pc, #416] ; (8002150 <keyIns+0x15d4>)
8001fb0: 4610 mov r0, r2
8001fb2: 4619 mov r1, r3
8001fb4: f44f 7302 mov.w r3, #520 ; 0x208
8001fb8: 461a mov r2, r3
8001fba: f014 fa47 bl 801644c <memcpy>
if(menupos < Kpt_3)
8001fbe: e12b b.n 8002218 <keyIns+0x169c>
WriteChannel(Ch3);
8001fc0: 2002 movs r0, #2
8001fc2: f00e fa87 bl 80104d4 <WriteChannel>
if(menupos < Kpt_3)
8001fc6: e127 b.n 8002218 <keyIns+0x169c>
if(menupos == Sens_4)
8001fc8: 4b60 ldr r3, [pc, #384] ; (800214c <keyIns+0x15d0>)
8001fca: 781b ldrb r3, [r3, #0]
8001fcc: b2db uxtb r3, r3
8001fce: 2b18 cmp r3, #24
8001fd0: d10f bne.n 8001ff2 <keyIns+0x1476>
memcpy((void *) &pardata_old, (void *) &pardata, sizeof(UserData_TypeDef));
8001fd2: 4a5f ldr r2, [pc, #380] ; (8002150 <keyIns+0x15d4>)
8001fd4: 4b5f ldr r3, [pc, #380] ; (8002154 <keyIns+0x15d8>)
8001fd6: 4610 mov r0, r2
8001fd8: 4619 mov r1, r3
8001fda: f44f 7302 mov.w r3, #520 ; 0x208
8001fde: 461a mov r2, r3
8001fe0: f014 fa34 bl 801644c <memcpy>
focused = true;
8001fe4: 4b5c ldr r3, [pc, #368] ; (8002158 <keyIns+0x15dc>)
8001fe6: 2201 movs r2, #1
8001fe8: 701a strb r2, [r3, #0]
menupos = Kikdt_4;
8001fea: 4b58 ldr r3, [pc, #352] ; (800214c <keyIns+0x15d0>)
8001fec: 221a movs r2, #26
8001fee: 701a strb r2, [r3, #0]
break;
8001ff0: e13f b.n 8002272 <keyIns+0x16f6>
if(menupos >= Kikdt_4 && menupos <= Kpt_4)
8001ff2: 4b56 ldr r3, [pc, #344] ; (800214c <keyIns+0x15d0>)
8001ff4: 781b ldrb r3, [r3, #0]
8001ff6: b2db uxtb r3, r3
8001ff8: 2b19 cmp r3, #25
8001ffa: f240 813a bls.w 8002272 <keyIns+0x16f6>
8001ffe: 4b53 ldr r3, [pc, #332] ; (800214c <keyIns+0x15d0>)
8002000: 781b ldrb r3, [r3, #0]
8002002: b2db uxtb r3, r3
8002004: 2b1f cmp r3, #31
8002006: f200 8134 bhi.w 8002272 <keyIns+0x16f6>
if(menupos < Kpt_4)
800200a: 4b50 ldr r3, [pc, #320] ; (800214c <keyIns+0x15d0>)
800200c: 781b ldrb r3, [r3, #0]
800200e: b2db uxtb r3, r3
8002010: 2b1e cmp r3, #30
8002012: d80a bhi.n 800202a <keyIns+0x14ae>
focused = true;
8002014: 4b50 ldr r3, [pc, #320] ; (8002158 <keyIns+0x15dc>)
8002016: 2201 movs r2, #1
8002018: 701a strb r2, [r3, #0]
menupos++;
800201a: 4b4c ldr r3, [pc, #304] ; (800214c <keyIns+0x15d0>)
800201c: 781b ldrb r3, [r3, #0]
800201e: b2db uxtb r3, r3
8002020: 3301 adds r3, #1
8002022: b2da uxtb r2, r3
8002024: 4b49 ldr r3, [pc, #292] ; (800214c <keyIns+0x15d0>)
8002026: 701a strb r2, [r3, #0]
break;
8002028: e123 b.n 8002272 <keyIns+0x16f6>
focused = false;
800202a: 4b4b ldr r3, [pc, #300] ; (8002158 <keyIns+0x15dc>)
800202c: 2200 movs r2, #0
800202e: 701a strb r2, [r3, #0]
menupos = Sens_4;
8002030: 4b46 ldr r3, [pc, #280] ; (800214c <keyIns+0x15d0>)
8002032: 2218 movs r2, #24
8002034: 701a strb r2, [r3, #0]
if(WriteChannelSens(Ch4))
8002036: 2003 movs r0, #3
8002038: f00e fd7a bl 8010b30 <WriteChannelSens>
800203c: 4603 mov r3, r0
800203e: 2b00 cmp r3, #0
8002040: d009 beq.n 8002056 <keyIns+0x14da>
memcpy((void *) &pardata, (void *) &pardata_old, sizeof(UserData_TypeDef));
8002042: 4a44 ldr r2, [pc, #272] ; (8002154 <keyIns+0x15d8>)
8002044: 4b42 ldr r3, [pc, #264] ; (8002150 <keyIns+0x15d4>)
8002046: 4610 mov r0, r2
8002048: 4619 mov r1, r3
800204a: f44f 7302 mov.w r3, #520 ; 0x208
800204e: 461a mov r2, r3
8002050: f014 f9fc bl 801644c <memcpy>
break;
8002054: e10d b.n 8002272 <keyIns+0x16f6>
WriteChannel(Ch4);
8002056: 2003 movs r0, #3
8002058: f00e fa3c bl 80104d4 <WriteChannel>
break;
800205c: e109 b.n 8002272 <keyIns+0x16f6>
if(menu == MAIN)
800205e: 4b3f ldr r3, [pc, #252] ; (800215c <keyIns+0x15e0>)
8002060: 781b ldrb r3, [r3, #0]
8002062: b2db uxtb r3, r3
8002064: 2b00 cmp r3, #0
8002066: d10d bne.n 8002084 <keyIns+0x1508>
focused ^= 1;
8002068: 4b3b ldr r3, [pc, #236] ; (8002158 <keyIns+0x15dc>)
800206a: 781b ldrb r3, [r3, #0]
800206c: b2db uxtb r3, r3
800206e: f083 0301 eor.w r3, r3, #1
8002072: b2db uxtb r3, r3
8002074: 2b00 cmp r3, #0
8002076: bf14 ite ne
8002078: 2301 movne r3, #1
800207a: 2300 moveq r3, #0
800207c: b2da uxtb r2, r3
800207e: 4b36 ldr r3, [pc, #216] ; (8002158 <keyIns+0x15dc>)
8002080: 701a strb r2, [r3, #0]
break;
8002082: e0f6 b.n 8002272 <keyIns+0x16f6>
if(menu == CALIBR_00)
8002084: 4b35 ldr r3, [pc, #212] ; (800215c <keyIns+0x15e0>)
8002086: 781b ldrb r3, [r3, #0]
8002088: b2db uxtb r3, r3
800208a: 2b01 cmp r3, #1
800208c: d11d bne.n 80020ca <keyIns+0x154e>
if(menupos <= Ch4)
800208e: 4b2f ldr r3, [pc, #188] ; (800214c <keyIns+0x15d0>)
8002090: 781b ldrb r3, [r3, #0]
8002092: b2db uxtb r3, r3
8002094: 2b03 cmp r3, #3
8002096: d813 bhi.n 80020c0 <keyIns+0x1544>
ACTIVE_CHANNEL = menupos;
8002098: 4b2c ldr r3, [pc, #176] ; (800214c <keyIns+0x15d0>)
800209a: 781b ldrb r3, [r3, #0]
800209c: b2db uxtb r3, r3
800209e: 461a mov r2, r3
80020a0: 4b2f ldr r3, [pc, #188] ; (8002160 <keyIns+0x15e4>)
80020a2: 601a str r2, [r3, #0]
menu = CALIBR_0;
80020a4: 4b2d ldr r3, [pc, #180] ; (800215c <keyIns+0x15e0>)
80020a6: 2202 movs r2, #2
80020a8: 701a strb r2, [r3, #0]
menupos = Next;
80020aa: 4b28 ldr r3, [pc, #160] ; (800214c <keyIns+0x15d0>)
80020ac: 2206 movs r2, #6
80020ae: 701a strb r2, [r3, #0]
Calibr(ACTIVE_CHANNEL, 1);
80020b0: 4b2b ldr r3, [pc, #172] ; (8002160 <keyIns+0x15e4>)
80020b2: 681b ldr r3, [r3, #0]
80020b4: b2db uxtb r3, r3
80020b6: 2101 movs r1, #1
80020b8: 4618 mov r0, r3
80020ba: f00e fe7d bl 8010db8 <Calibr>
break;
80020be: e0d8 b.n 8002272 <keyIns+0x16f6>
CalibrOFF();
80020c0: f00f f8f4 bl 80112ac <CalibrOFF>
Off();
80020c4: f7fe fa48 bl 8000558 <Off>
break;
80020c8: e0d3 b.n 8002272 <keyIns+0x16f6>
if(menu >= CALIBR_0 && menu <= CALIBR_22)
80020ca: 4b24 ldr r3, [pc, #144] ; (800215c <keyIns+0x15e0>)
80020cc: 781b ldrb r3, [r3, #0]
80020ce: b2db uxtb r3, r3
80020d0: 2b01 cmp r3, #1
80020d2: f240 80ce bls.w 8002272 <keyIns+0x16f6>
80020d6: 4b21 ldr r3, [pc, #132] ; (800215c <keyIns+0x15e0>)
80020d8: 781b ldrb r3, [r3, #0]
80020da: b2db uxtb r3, r3
80020dc: 2b18 cmp r3, #24
80020de: f200 80c8 bhi.w 8002272 <keyIns+0x16f6>
if(menupos == Next)
80020e2: 4b1a ldr r3, [pc, #104] ; (800214c <keyIns+0x15d0>)
80020e4: 781b ldrb r3, [r3, #0]
80020e6: b2db uxtb r3, r3
80020e8: 2b06 cmp r3, #6
80020ea: d11c bne.n 8002126 <keyIns+0x15aa>
if(menu == CALIBR_22)
80020ec: 4b1b ldr r3, [pc, #108] ; (800215c <keyIns+0x15e0>)
80020ee: 781b ldrb r3, [r3, #0]
80020f0: b2db uxtb r3, r3
80020f2: 2b18 cmp r3, #24
80020f4: d108 bne.n 8002108 <keyIns+0x158c>
menu = CALIBR_00;
80020f6: 4b19 ldr r3, [pc, #100] ; (800215c <keyIns+0x15e0>)
80020f8: 2201 movs r2, #1
80020fa: 701a strb r2, [r3, #0]
menupos = ACTIVE_CHANNEL;
80020fc: 4b18 ldr r3, [pc, #96] ; (8002160 <keyIns+0x15e4>)
80020fe: 681b ldr r3, [r3, #0]
8002100: b2da uxtb r2, r3
8002102: 4b12 ldr r3, [pc, #72] ; (800214c <keyIns+0x15d0>)
8002104: 701a strb r2, [r3, #0]
break;
8002106: e0b4 b.n 8002272 <keyIns+0x16f6>
menu++;
8002108: 4b14 ldr r3, [pc, #80] ; (800215c <keyIns+0x15e0>)
800210a: 781b ldrb r3, [r3, #0]
800210c: b2db uxtb r3, r3
800210e: 3301 adds r3, #1
8002110: b2da uxtb r2, r3
8002112: 4b12 ldr r3, [pc, #72] ; (800215c <keyIns+0x15e0>)
8002114: 701a strb r2, [r3, #0]
Calibr(ACTIVE_CHANNEL, 1);
8002116: 4b12 ldr r3, [pc, #72] ; (8002160 <keyIns+0x15e4>)
8002118: 681b ldr r3, [r3, #0]
800211a: b2db uxtb r3, r3
800211c: 2101 movs r1, #1
800211e: 4618 mov r0, r3
8002120: f00e fe4a bl 8010db8 <Calibr>
break;
8002124: e0a5 b.n 8002272 <keyIns+0x16f6>
if(menupos == Set_1)
8002126: 4b09 ldr r3, [pc, #36] ; (800214c <keyIns+0x15d0>)
8002128: 781b ldrb r3, [r3, #0]
800212a: b2db uxtb r3, r3
800212c: 2b05 cmp r3, #5
800212e: d119 bne.n 8002164 <keyIns+0x15e8>
WriteCorr(ACTIVE_CHANNEL, (menu - 2), (0x01 | 0x80));
8002130: 4b0b ldr r3, [pc, #44] ; (8002160 <keyIns+0x15e4>)
8002132: 681b ldr r3, [r3, #0]
8002134: b2d8 uxtb r0, r3
8002136: 4b09 ldr r3, [pc, #36] ; (800215c <keyIns+0x15e0>)
8002138: 781b ldrb r3, [r3, #0]
800213a: b2db uxtb r3, r3
800213c: 3b02 subs r3, #2
800213e: b2db uxtb r3, r3
8002140: 2281 movs r2, #129 ; 0x81
8002142: 4619 mov r1, r3
8002144: f00e ff7a bl 801103c <WriteCorr>
break;
8002148: e093 b.n 8002272 <keyIns+0x16f6>
800214a: bf00 nop
800214c: 20020010 .word 0x20020010
8002150: 2006bf1c .word 0x2006bf1c
8002154: 2006bca8 .word 0x2006bca8
8002158: 200209e4 .word 0x200209e4
800215c: 200209d9 .word 0x200209d9
8002160: 2006ba68 .word 0x2006ba68
if(menupos == Set1)
8002164: 4b46 ldr r3, [pc, #280] ; (8002280 <keyIns+0x1704>)
8002166: 781b ldrb r3, [r3, #0]
8002168: b2db uxtb r3, r3
800216a: 2b04 cmp r3, #4
800216c: d10c bne.n 8002188 <keyIns+0x160c>
WriteCorr(ACTIVE_CHANNEL, (menu - 2), 0x01);
800216e: 4b45 ldr r3, [pc, #276] ; (8002284 <keyIns+0x1708>)
8002170: 681b ldr r3, [r3, #0]
8002172: b2d8 uxtb r0, r3
8002174: 4b44 ldr r3, [pc, #272] ; (8002288 <keyIns+0x170c>)
8002176: 781b ldrb r3, [r3, #0]
8002178: b2db uxtb r3, r3
800217a: 3b02 subs r3, #2
800217c: b2db uxtb r3, r3
800217e: 2201 movs r2, #1
8002180: 4619 mov r1, r3
8002182: f00e ff5b bl 801103c <WriteCorr>
break;
8002186: e074 b.n 8002272 <keyIns+0x16f6>
if(menupos == Set_10)
8002188: 4b3d ldr r3, [pc, #244] ; (8002280 <keyIns+0x1704>)
800218a: 781b ldrb r3, [r3, #0]
800218c: b2db uxtb r3, r3
800218e: 2b03 cmp r3, #3
8002190: d10c bne.n 80021ac <keyIns+0x1630>
WriteCorr(ACTIVE_CHANNEL, (menu - 2), (10 | 0x80));
8002192: 4b3c ldr r3, [pc, #240] ; (8002284 <keyIns+0x1708>)
8002194: 681b ldr r3, [r3, #0]
8002196: b2d8 uxtb r0, r3
8002198: 4b3b ldr r3, [pc, #236] ; (8002288 <keyIns+0x170c>)
800219a: 781b ldrb r3, [r3, #0]
800219c: b2db uxtb r3, r3
800219e: 3b02 subs r3, #2
80021a0: b2db uxtb r3, r3
80021a2: 228a movs r2, #138 ; 0x8a
80021a4: 4619 mov r1, r3
80021a6: f00e ff49 bl 801103c <WriteCorr>
break;
80021aa: e062 b.n 8002272 <keyIns+0x16f6>
if(menupos == Set10)
80021ac: 4b34 ldr r3, [pc, #208] ; (8002280 <keyIns+0x1704>)
80021ae: 781b ldrb r3, [r3, #0]
80021b0: b2db uxtb r3, r3
80021b2: 2b02 cmp r3, #2
80021b4: d10c bne.n 80021d0 <keyIns+0x1654>
WriteCorr(ACTIVE_CHANNEL, (menu - 2), 10);
80021b6: 4b33 ldr r3, [pc, #204] ; (8002284 <keyIns+0x1708>)
80021b8: 681b ldr r3, [r3, #0]
80021ba: b2d8 uxtb r0, r3
80021bc: 4b32 ldr r3, [pc, #200] ; (8002288 <keyIns+0x170c>)
80021be: 781b ldrb r3, [r3, #0]
80021c0: b2db uxtb r3, r3
80021c2: 3b02 subs r3, #2
80021c4: b2db uxtb r3, r3
80021c6: 220a movs r2, #10
80021c8: 4619 mov r1, r3
80021ca: f00e ff37 bl 801103c <WriteCorr>
break;
80021ce: e050 b.n 8002272 <keyIns+0x16f6>
if(menupos == Set_100)
80021d0: 4b2b ldr r3, [pc, #172] ; (8002280 <keyIns+0x1704>)
80021d2: 781b ldrb r3, [r3, #0]
80021d4: b2db uxtb r3, r3
80021d6: 2b01 cmp r3, #1
80021d8: d10c bne.n 80021f4 <keyIns+0x1678>
WriteCorr(ACTIVE_CHANNEL, (menu - 2), (100 | 0x80));
80021da: 4b2a ldr r3, [pc, #168] ; (8002284 <keyIns+0x1708>)
80021dc: 681b ldr r3, [r3, #0]
80021de: b2d8 uxtb r0, r3
80021e0: 4b29 ldr r3, [pc, #164] ; (8002288 <keyIns+0x170c>)
80021e2: 781b ldrb r3, [r3, #0]
80021e4: b2db uxtb r3, r3
80021e6: 3b02 subs r3, #2
80021e8: b2db uxtb r3, r3
80021ea: 22e4 movs r2, #228 ; 0xe4
80021ec: 4619 mov r1, r3
80021ee: f00e ff25 bl 801103c <WriteCorr>
break;
80021f2: e03e b.n 8002272 <keyIns+0x16f6>
if(menupos == Set100)
80021f4: 4b22 ldr r3, [pc, #136] ; (8002280 <keyIns+0x1704>)
80021f6: 781b ldrb r3, [r3, #0]
80021f8: b2db uxtb r3, r3
80021fa: 2b00 cmp r3, #0
80021fc: d139 bne.n 8002272 <keyIns+0x16f6>
WriteCorr(ACTIVE_CHANNEL, (menu - 2), 100);
80021fe: 4b21 ldr r3, [pc, #132] ; (8002284 <keyIns+0x1708>)
8002200: 681b ldr r3, [r3, #0]
8002202: b2d8 uxtb r0, r3
8002204: 4b20 ldr r3, [pc, #128] ; (8002288 <keyIns+0x170c>)
8002206: 781b ldrb r3, [r3, #0]
8002208: b2db uxtb r3, r3
800220a: 3b02 subs r3, #2
800220c: b2db uxtb r3, r3
800220e: 2264 movs r2, #100 ; 0x64
8002210: 4619 mov r1, r3
8002212: f00e ff13 bl 801103c <WriteCorr>
break;
8002216: e02c b.n 8002272 <keyIns+0x16f6>
8002218: e02b b.n 8002272 <keyIns+0x16f6>
case KEY_PW: //TODO
if(menu == MAIN)
800221a: 4b1b ldr r3, [pc, #108] ; (8002288 <keyIns+0x170c>)
800221c: 781b ldrb r3, [r3, #0]
800221e: b2db uxtb r3, r3
8002220: 2b00 cmp r3, #0
8002222: d10f bne.n 8002244 <keyIns+0x16c8>
{
LAST_ACTIVE_CHANNEL = ACTIVE_CHANNEL;
8002224: 4b17 ldr r3, [pc, #92] ; (8002284 <keyIns+0x1708>)
8002226: 681b ldr r3, [r3, #0]
8002228: 4a18 ldr r2, [pc, #96] ; (800228c <keyIns+0x1710>)
800222a: 6013 str r3, [r2, #0]
lastmenupos = menupos;
800222c: 4b14 ldr r3, [pc, #80] ; (8002280 <keyIns+0x1704>)
800222e: 781b ldrb r3, [r3, #0]
8002230: b2da uxtb r2, r3
8002232: 4b17 ldr r3, [pc, #92] ; (8002290 <keyIns+0x1714>)
8002234: 701a strb r2, [r3, #0]
menupos = Back;
8002236: 4b12 ldr r3, [pc, #72] ; (8002280 <keyIns+0x1704>)
8002238: 22ff movs r2, #255 ; 0xff
800223a: 701a strb r2, [r3, #0]
menu = OPTIONS;
800223c: 4b12 ldr r3, [pc, #72] ; (8002288 <keyIns+0x170c>)
800223e: 2219 movs r2, #25
8002240: 701a strb r2, [r3, #0]
{
ACTIVE_CHANNEL = LAST_ACTIVE_CHANNEL;
menupos = lastmenupos;
menu = MAIN;
}
break;
8002242: e018 b.n 8002276 <keyIns+0x16fa>
if(menupos == OPTIONS)
8002244: 4b0e ldr r3, [pc, #56] ; (8002280 <keyIns+0x1704>)
8002246: 781b ldrb r3, [r3, #0]
8002248: b2db uxtb r3, r3
800224a: 2b19 cmp r3, #25
800224c: d113 bne.n 8002276 <keyIns+0x16fa>
ACTIVE_CHANNEL = LAST_ACTIVE_CHANNEL;
800224e: 4b0f ldr r3, [pc, #60] ; (800228c <keyIns+0x1710>)
8002250: 681b ldr r3, [r3, #0]
8002252: 4a0c ldr r2, [pc, #48] ; (8002284 <keyIns+0x1708>)
8002254: 6013 str r3, [r2, #0]
menupos = lastmenupos;
8002256: 4b0e ldr r3, [pc, #56] ; (8002290 <keyIns+0x1714>)
8002258: 781b ldrb r3, [r3, #0]
800225a: b2da uxtb r2, r3
800225c: 4b08 ldr r3, [pc, #32] ; (8002280 <keyIns+0x1704>)
800225e: 701a strb r2, [r3, #0]
menu = MAIN;
8002260: 4b09 ldr r3, [pc, #36] ; (8002288 <keyIns+0x170c>)
8002262: 2200 movs r2, #0
8002264: 701a strb r2, [r3, #0]
break;
8002266: bf00 nop
8002268: e005 b.n 8002276 <keyIns+0x16fa>
break;
800226a: bf00 nop
800226c: e004 b.n 8002278 <keyIns+0x16fc>
break;
800226e: bf00 nop
8002270: e002 b.n 8002278 <keyIns+0x16fc>
break;
8002272: bf00 nop
8002274: e000 b.n 8002278 <keyIns+0x16fc>
break;
8002276: bf00 nop
}
}
}
8002278: 3778 adds r7, #120 ; 0x78
800227a: 46bd mov sp, r7
800227c: bd80 pop {r7, pc}
800227e: bf00 nop
8002280: 20020010 .word 0x20020010
8002284: 2006ba68 .word 0x2006ba68
8002288: 200209d9 .word 0x200209d9
800228c: 2006ba64 .word 0x2006ba64
8002290: 20020011 .word 0x20020011
08002294 <SetUP>:
void SetUP(void)
{
8002294: b580 push {r7, lr}
8002296: af00 add r7, sp, #0
if(menupos == Lp)
8002298: 4b8f ldr r3, [pc, #572] ; (80024d8 <SetUP+0x244>)
800229a: 781b ldrb r3, [r3, #0]
800229c: b2db uxtb r3, r3
800229e: 2b01 cmp r3, #1
80022a0: d13e bne.n 8002320 <SetUP+0x8c>
{
if(focused)
80022a2: 4b8e ldr r3, [pc, #568] ; (80024dc <SetUP+0x248>)
80022a4: 781b ldrb r3, [r3, #0]
80022a6: b2db uxtb r3, r3
80022a8: 2b00 cmp r3, #0
80022aa: d035 beq.n 8002318 <SetUP+0x84>
{
if(pardata.amplif[ACTIVE_CHANNEL].IFN < Lp100000)
80022ac: 4b8c ldr r3, [pc, #560] ; (80024e0 <SetUP+0x24c>)
80022ae: 681b ldr r3, [r3, #0]
80022b0: 4a8c ldr r2, [pc, #560] ; (80024e4 <SetUP+0x250>)
80022b2: 015b lsls r3, r3, #5
80022b4: 4413 add r3, r2
80022b6: 3304 adds r3, #4
80022b8: 881b ldrh r3, [r3, #0]
80022ba: b29b uxth r3, r3
80022bc: 2b06 cmp r3, #6
80022be: f200 8405 bhi.w 8002acc <SetUP+0x838>
{
pardata.amplif[ACTIVE_CHANNEL].IFN++;
80022c2: 4b87 ldr r3, [pc, #540] ; (80024e0 <SetUP+0x24c>)
80022c4: 681b ldr r3, [r3, #0]
80022c6: 4987 ldr r1, [pc, #540] ; (80024e4 <SetUP+0x250>)
80022c8: 015a lsls r2, r3, #5
80022ca: 440a add r2, r1
80022cc: 3204 adds r2, #4
80022ce: 8812 ldrh r2, [r2, #0]
80022d0: b292 uxth r2, r2
80022d2: 3201 adds r2, #1
80022d4: b291 uxth r1, r2
80022d6: 4a83 ldr r2, [pc, #524] ; (80024e4 <SetUP+0x250>)
80022d8: 015b lsls r3, r3, #5
80022da: 4413 add r3, r2
80022dc: 3304 adds r3, #4
80022de: 460a mov r2, r1
80022e0: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
80022e2: 4b7f ldr r3, [pc, #508] ; (80024e0 <SetUP+0x24c>)
80022e4: 681b ldr r3, [r3, #0]
80022e6: b2db uxtb r3, r3
80022e8: 4618 mov r0, r3
80022ea: f00e f8f3 bl 80104d4 <WriteChannel>
80022ee: 4603 mov r3, r0
80022f0: 2b00 cmp r3, #0
80022f2: f000 83eb beq.w 8002acc <SetUP+0x838>
{
pardata.amplif[ACTIVE_CHANNEL].IFN--;
80022f6: 4b7a ldr r3, [pc, #488] ; (80024e0 <SetUP+0x24c>)
80022f8: 681b ldr r3, [r3, #0]
80022fa: 497a ldr r1, [pc, #488] ; (80024e4 <SetUP+0x250>)
80022fc: 015a lsls r2, r3, #5
80022fe: 440a add r2, r1
8002300: 3204 adds r2, #4
8002302: 8812 ldrh r2, [r2, #0]
8002304: b292 uxth r2, r2
8002306: 3a01 subs r2, #1
8002308: b291 uxth r1, r2
800230a: 4a76 ldr r2, [pc, #472] ; (80024e4 <SetUP+0x250>)
800230c: 015b lsls r3, r3, #5
800230e: 4413 add r3, r2
8002310: 3304 adds r3, #4
8002312: 460a mov r2, r1
8002314: 801a strh r2, [r3, #0]
{
menupos = Lp;
}
}
}
8002316: e3d9 b.n 8002acc <SetUP+0x838>
menupos = Hp;
8002318: 4b6f ldr r3, [pc, #444] ; (80024d8 <SetUP+0x244>)
800231a: 2200 movs r2, #0
800231c: 701a strb r2, [r3, #0]
}
800231e: e3d5 b.n 8002acc <SetUP+0x838>
if(menupos == Out)
8002320: 4b6d ldr r3, [pc, #436] ; (80024d8 <SetUP+0x244>)
8002322: 781b ldrb r3, [r3, #0]
8002324: b2db uxtb r3, r3
8002326: 2b02 cmp r3, #2
8002328: f040 83d0 bne.w 8002acc <SetUP+0x838>
if(focused)
800232c: 4b6b ldr r3, [pc, #428] ; (80024dc <SetUP+0x248>)
800232e: 781b ldrb r3, [r3, #0]
8002330: b2db uxtb r3, r3
8002332: 2b00 cmp r3, #0
8002334: f000 83c7 beq.w 8002ac6 <SetUP+0x832>
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0010f) //0.001
8002338: 4b69 ldr r3, [pc, #420] ; (80024e0 <SetUP+0x24c>)
800233a: 681b ldr r3, [r3, #0]
800233c: 4a69 ldr r2, [pc, #420] ; (80024e4 <SetUP+0x250>)
800233e: 015b lsls r3, r3, #5
8002340: 4413 add r3, r2
8002342: 3318 adds r3, #24
8002344: edd3 7a00 vldr s15, [r3]
8002348: ed9f 7a67 vldr s14, [pc, #412] ; 80024e8 <SetUP+0x254>
800234c: eef4 7ac7 vcmpe.f32 s15, s14
8002350: eef1 fa10 vmrs APSR_nzcv, fpscr
8002354: d835 bhi.n 80023c2 <SetUP+0x12e>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku1000)
8002356: 4b62 ldr r3, [pc, #392] ; (80024e0 <SetUP+0x24c>)
8002358: 681b ldr r3, [r3, #0]
800235a: 4a62 ldr r2, [pc, #392] ; (80024e4 <SetUP+0x250>)
800235c: 015b lsls r3, r3, #5
800235e: 4413 add r3, r2
8002360: 3306 adds r3, #6
8002362: 881b ldrh r3, [r3, #0]
8002364: b29b uxth r3, r3
8002366: 2b0b cmp r3, #11
8002368: f200 83b0 bhi.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
800236c: 4b5c ldr r3, [pc, #368] ; (80024e0 <SetUP+0x24c>)
800236e: 681b ldr r3, [r3, #0]
8002370: 495c ldr r1, [pc, #368] ; (80024e4 <SetUP+0x250>)
8002372: 015a lsls r2, r3, #5
8002374: 440a add r2, r1
8002376: 3206 adds r2, #6
8002378: 8812 ldrh r2, [r2, #0]
800237a: b292 uxth r2, r2
800237c: 3201 adds r2, #1
800237e: b291 uxth r1, r2
8002380: 4a58 ldr r2, [pc, #352] ; (80024e4 <SetUP+0x250>)
8002382: 015b lsls r3, r3, #5
8002384: 4413 add r3, r2
8002386: 3306 adds r3, #6
8002388: 460a mov r2, r1
800238a: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
800238c: 4b54 ldr r3, [pc, #336] ; (80024e0 <SetUP+0x24c>)
800238e: 681b ldr r3, [r3, #0]
8002390: b2db uxtb r3, r3
8002392: 4618 mov r0, r3
8002394: f00e f89e bl 80104d4 <WriteChannel>
8002398: 4603 mov r3, r0
800239a: 2b00 cmp r3, #0
800239c: f000 8396 beq.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
80023a0: 4b4f ldr r3, [pc, #316] ; (80024e0 <SetUP+0x24c>)
80023a2: 681b ldr r3, [r3, #0]
80023a4: 494f ldr r1, [pc, #316] ; (80024e4 <SetUP+0x250>)
80023a6: 015a lsls r2, r3, #5
80023a8: 440a add r2, r1
80023aa: 3206 adds r2, #6
80023ac: 8812 ldrh r2, [r2, #0]
80023ae: b292 uxth r2, r2
80023b0: 3a01 subs r2, #1
80023b2: b291 uxth r1, r2
80023b4: 4a4b ldr r2, [pc, #300] ; (80024e4 <SetUP+0x250>)
80023b6: 015b lsls r3, r3, #5
80023b8: 4413 add r3, r2
80023ba: 3306 adds r3, #6
80023bc: 460a mov r2, r1
80023be: 801a strh r2, [r3, #0]
}
80023c0: e384 b.n 8002acc <SetUP+0x838>
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 10.000f) //0.002
80023c2: 4b47 ldr r3, [pc, #284] ; (80024e0 <SetUP+0x24c>)
80023c4: 681b ldr r3, [r3, #0]
80023c6: 4a47 ldr r2, [pc, #284] ; (80024e4 <SetUP+0x250>)
80023c8: 015b lsls r3, r3, #5
80023ca: 4413 add r3, r2
80023cc: 3318 adds r3, #24
80023ce: edd3 7a00 vldr s15, [r3]
80023d2: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
80023d6: eef4 7ac7 vcmpe.f32 s15, s14
80023da: eef1 fa10 vmrs APSR_nzcv, fpscr
80023de: d835 bhi.n 800244c <SetUP+0x1b8>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku1000)
80023e0: 4b3f ldr r3, [pc, #252] ; (80024e0 <SetUP+0x24c>)
80023e2: 681b ldr r3, [r3, #0]
80023e4: 4a3f ldr r2, [pc, #252] ; (80024e4 <SetUP+0x250>)
80023e6: 015b lsls r3, r3, #5
80023e8: 4413 add r3, r2
80023ea: 3306 adds r3, #6
80023ec: 881b ldrh r3, [r3, #0]
80023ee: b29b uxth r3, r3
80023f0: 2b0b cmp r3, #11
80023f2: f200 836b bhi.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
80023f6: 4b3a ldr r3, [pc, #232] ; (80024e0 <SetUP+0x24c>)
80023f8: 681b ldr r3, [r3, #0]
80023fa: 493a ldr r1, [pc, #232] ; (80024e4 <SetUP+0x250>)
80023fc: 015a lsls r2, r3, #5
80023fe: 440a add r2, r1
8002400: 3206 adds r2, #6
8002402: 8812 ldrh r2, [r2, #0]
8002404: b292 uxth r2, r2
8002406: 3201 adds r2, #1
8002408: b291 uxth r1, r2
800240a: 4a36 ldr r2, [pc, #216] ; (80024e4 <SetUP+0x250>)
800240c: 015b lsls r3, r3, #5
800240e: 4413 add r3, r2
8002410: 3306 adds r3, #6
8002412: 460a mov r2, r1
8002414: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8002416: 4b32 ldr r3, [pc, #200] ; (80024e0 <SetUP+0x24c>)
8002418: 681b ldr r3, [r3, #0]
800241a: b2db uxtb r3, r3
800241c: 4618 mov r0, r3
800241e: f00e f859 bl 80104d4 <WriteChannel>
8002422: 4603 mov r3, r0
8002424: 2b00 cmp r3, #0
8002426: f000 8351 beq.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
800242a: 4b2d ldr r3, [pc, #180] ; (80024e0 <SetUP+0x24c>)
800242c: 681b ldr r3, [r3, #0]
800242e: 492d ldr r1, [pc, #180] ; (80024e4 <SetUP+0x250>)
8002430: 015a lsls r2, r3, #5
8002432: 440a add r2, r1
8002434: 3206 adds r2, #6
8002436: 8812 ldrh r2, [r2, #0]
8002438: b292 uxth r2, r2
800243a: 3a01 subs r2, #1
800243c: b291 uxth r1, r2
800243e: 4a29 ldr r2, [pc, #164] ; (80024e4 <SetUP+0x250>)
8002440: 015b lsls r3, r3, #5
8002442: 4413 add r3, r2
8002444: 3306 adds r3, #6
8002446: 460a mov r2, r1
8002448: 801a strh r2, [r3, #0]
}
800244a: e33f b.n 8002acc <SetUP+0x838>
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 20.000f) //20
800244c: 4b24 ldr r3, [pc, #144] ; (80024e0 <SetUP+0x24c>)
800244e: 681b ldr r3, [r3, #0]
8002450: 4a24 ldr r2, [pc, #144] ; (80024e4 <SetUP+0x250>)
8002452: 015b lsls r3, r3, #5
8002454: 4413 add r3, r2
8002456: 3318 adds r3, #24
8002458: edd3 7a00 vldr s15, [r3]
800245c: eeb3 7a04 vmov.f32 s14, #52 ; 0x41a00000 20.0
8002460: eef4 7ac7 vcmpe.f32 s15, s14
8002464: eef1 fa10 vmrs APSR_nzcv, fpscr
8002468: d840 bhi.n 80024ec <SetUP+0x258>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku500)
800246a: 4b1d ldr r3, [pc, #116] ; (80024e0 <SetUP+0x24c>)
800246c: 681b ldr r3, [r3, #0]
800246e: 4a1d ldr r2, [pc, #116] ; (80024e4 <SetUP+0x250>)
8002470: 015b lsls r3, r3, #5
8002472: 4413 add r3, r2
8002474: 3306 adds r3, #6
8002476: 881b ldrh r3, [r3, #0]
8002478: b29b uxth r3, r3
800247a: 2b0a cmp r3, #10
800247c: f200 8326 bhi.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
8002480: 4b17 ldr r3, [pc, #92] ; (80024e0 <SetUP+0x24c>)
8002482: 681b ldr r3, [r3, #0]
8002484: 4917 ldr r1, [pc, #92] ; (80024e4 <SetUP+0x250>)
8002486: 015a lsls r2, r3, #5
8002488: 440a add r2, r1
800248a: 3206 adds r2, #6
800248c: 8812 ldrh r2, [r2, #0]
800248e: b292 uxth r2, r2
8002490: 3201 adds r2, #1
8002492: b291 uxth r1, r2
8002494: 4a13 ldr r2, [pc, #76] ; (80024e4 <SetUP+0x250>)
8002496: 015b lsls r3, r3, #5
8002498: 4413 add r3, r2
800249a: 3306 adds r3, #6
800249c: 460a mov r2, r1
800249e: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
80024a0: 4b0f ldr r3, [pc, #60] ; (80024e0 <SetUP+0x24c>)
80024a2: 681b ldr r3, [r3, #0]
80024a4: b2db uxtb r3, r3
80024a6: 4618 mov r0, r3
80024a8: f00e f814 bl 80104d4 <WriteChannel>
80024ac: 4603 mov r3, r0
80024ae: 2b00 cmp r3, #0
80024b0: f000 830c beq.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
80024b4: 4b0a ldr r3, [pc, #40] ; (80024e0 <SetUP+0x24c>)
80024b6: 681b ldr r3, [r3, #0]
80024b8: 490a ldr r1, [pc, #40] ; (80024e4 <SetUP+0x250>)
80024ba: 015a lsls r2, r3, #5
80024bc: 440a add r2, r1
80024be: 3206 adds r2, #6
80024c0: 8812 ldrh r2, [r2, #0]
80024c2: b292 uxth r2, r2
80024c4: 3a01 subs r2, #1
80024c6: b291 uxth r1, r2
80024c8: 4a06 ldr r2, [pc, #24] ; (80024e4 <SetUP+0x250>)
80024ca: 015b lsls r3, r3, #5
80024cc: 4413 add r3, r2
80024ce: 3306 adds r3, #6
80024d0: 460a mov r2, r1
80024d2: 801a strh r2, [r3, #0]
}
80024d4: e2fa b.n 8002acc <SetUP+0x838>
80024d6: bf00 nop
80024d8: 20020010 .word 0x20020010
80024dc: 200209e4 .word 0x200209e4
80024e0: 2006ba68 .word 0x2006ba68
80024e4: 2006bca8 .word 0x2006bca8
80024e8: 3a83126f .word 0x3a83126f
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 50.000f) //50
80024ec: 4bac ldr r3, [pc, #688] ; (80027a0 <SetUP+0x50c>)
80024ee: 681b ldr r3, [r3, #0]
80024f0: 4aac ldr r2, [pc, #688] ; (80027a4 <SetUP+0x510>)
80024f2: 015b lsls r3, r3, #5
80024f4: 4413 add r3, r2
80024f6: 3318 adds r3, #24
80024f8: edd3 7a00 vldr s15, [r3]
80024fc: ed9f 7aaa vldr s14, [pc, #680] ; 80027a8 <SetUP+0x514>
8002500: eef4 7ac7 vcmpe.f32 s15, s14
8002504: eef1 fa10 vmrs APSR_nzcv, fpscr
8002508: d835 bhi.n 8002576 <SetUP+0x2e2>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku200)
800250a: 4ba5 ldr r3, [pc, #660] ; (80027a0 <SetUP+0x50c>)
800250c: 681b ldr r3, [r3, #0]
800250e: 4aa5 ldr r2, [pc, #660] ; (80027a4 <SetUP+0x510>)
8002510: 015b lsls r3, r3, #5
8002512: 4413 add r3, r2
8002514: 3306 adds r3, #6
8002516: 881b ldrh r3, [r3, #0]
8002518: b29b uxth r3, r3
800251a: 2b09 cmp r3, #9
800251c: f200 82d6 bhi.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
8002520: 4b9f ldr r3, [pc, #636] ; (80027a0 <SetUP+0x50c>)
8002522: 681b ldr r3, [r3, #0]
8002524: 499f ldr r1, [pc, #636] ; (80027a4 <SetUP+0x510>)
8002526: 015a lsls r2, r3, #5
8002528: 440a add r2, r1
800252a: 3206 adds r2, #6
800252c: 8812 ldrh r2, [r2, #0]
800252e: b292 uxth r2, r2
8002530: 3201 adds r2, #1
8002532: b291 uxth r1, r2
8002534: 4a9b ldr r2, [pc, #620] ; (80027a4 <SetUP+0x510>)
8002536: 015b lsls r3, r3, #5
8002538: 4413 add r3, r2
800253a: 3306 adds r3, #6
800253c: 460a mov r2, r1
800253e: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8002540: 4b97 ldr r3, [pc, #604] ; (80027a0 <SetUP+0x50c>)
8002542: 681b ldr r3, [r3, #0]
8002544: b2db uxtb r3, r3
8002546: 4618 mov r0, r3
8002548: f00d ffc4 bl 80104d4 <WriteChannel>
800254c: 4603 mov r3, r0
800254e: 2b00 cmp r3, #0
8002550: f000 82bc beq.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
8002554: 4b92 ldr r3, [pc, #584] ; (80027a0 <SetUP+0x50c>)
8002556: 681b ldr r3, [r3, #0]
8002558: 4992 ldr r1, [pc, #584] ; (80027a4 <SetUP+0x510>)
800255a: 015a lsls r2, r3, #5
800255c: 440a add r2, r1
800255e: 3206 adds r2, #6
8002560: 8812 ldrh r2, [r2, #0]
8002562: b292 uxth r2, r2
8002564: 3a01 subs r2, #1
8002566: b291 uxth r1, r2
8002568: 4a8e ldr r2, [pc, #568] ; (80027a4 <SetUP+0x510>)
800256a: 015b lsls r3, r3, #5
800256c: 4413 add r3, r2
800256e: 3306 adds r3, #6
8002570: 460a mov r2, r1
8002572: 801a strh r2, [r3, #0]
}
8002574: e2aa b.n 8002acc <SetUP+0x838>
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 100.00f) //100
8002576: 4b8a ldr r3, [pc, #552] ; (80027a0 <SetUP+0x50c>)
8002578: 681b ldr r3, [r3, #0]
800257a: 4a8a ldr r2, [pc, #552] ; (80027a4 <SetUP+0x510>)
800257c: 015b lsls r3, r3, #5
800257e: 4413 add r3, r2
8002580: 3318 adds r3, #24
8002582: edd3 7a00 vldr s15, [r3]
8002586: ed9f 7a89 vldr s14, [pc, #548] ; 80027ac <SetUP+0x518>
800258a: eef4 7ac7 vcmpe.f32 s15, s14
800258e: eef1 fa10 vmrs APSR_nzcv, fpscr
8002592: d835 bhi.n 8002600 <SetUP+0x36c>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku100)
8002594: 4b82 ldr r3, [pc, #520] ; (80027a0 <SetUP+0x50c>)
8002596: 681b ldr r3, [r3, #0]
8002598: 4a82 ldr r2, [pc, #520] ; (80027a4 <SetUP+0x510>)
800259a: 015b lsls r3, r3, #5
800259c: 4413 add r3, r2
800259e: 3306 adds r3, #6
80025a0: 881b ldrh r3, [r3, #0]
80025a2: b29b uxth r3, r3
80025a4: 2b08 cmp r3, #8
80025a6: f200 8291 bhi.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
80025aa: 4b7d ldr r3, [pc, #500] ; (80027a0 <SetUP+0x50c>)
80025ac: 681b ldr r3, [r3, #0]
80025ae: 497d ldr r1, [pc, #500] ; (80027a4 <SetUP+0x510>)
80025b0: 015a lsls r2, r3, #5
80025b2: 440a add r2, r1
80025b4: 3206 adds r2, #6
80025b6: 8812 ldrh r2, [r2, #0]
80025b8: b292 uxth r2, r2
80025ba: 3201 adds r2, #1
80025bc: b291 uxth r1, r2
80025be: 4a79 ldr r2, [pc, #484] ; (80027a4 <SetUP+0x510>)
80025c0: 015b lsls r3, r3, #5
80025c2: 4413 add r3, r2
80025c4: 3306 adds r3, #6
80025c6: 460a mov r2, r1
80025c8: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
80025ca: 4b75 ldr r3, [pc, #468] ; (80027a0 <SetUP+0x50c>)
80025cc: 681b ldr r3, [r3, #0]
80025ce: b2db uxtb r3, r3
80025d0: 4618 mov r0, r3
80025d2: f00d ff7f bl 80104d4 <WriteChannel>
80025d6: 4603 mov r3, r0
80025d8: 2b00 cmp r3, #0
80025da: f000 8277 beq.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
80025de: 4b70 ldr r3, [pc, #448] ; (80027a0 <SetUP+0x50c>)
80025e0: 681b ldr r3, [r3, #0]
80025e2: 4970 ldr r1, [pc, #448] ; (80027a4 <SetUP+0x510>)
80025e4: 015a lsls r2, r3, #5
80025e6: 440a add r2, r1
80025e8: 3206 adds r2, #6
80025ea: 8812 ldrh r2, [r2, #0]
80025ec: b292 uxth r2, r2
80025ee: 3a01 subs r2, #1
80025f0: b291 uxth r1, r2
80025f2: 4a6c ldr r2, [pc, #432] ; (80027a4 <SetUP+0x510>)
80025f4: 015b lsls r3, r3, #5
80025f6: 4413 add r3, r2
80025f8: 3306 adds r3, #6
80025fa: 460a mov r2, r1
80025fc: 801a strh r2, [r3, #0]
}
80025fe: e265 b.n 8002acc <SetUP+0x838>
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 200.00f) //200
8002600: 4b67 ldr r3, [pc, #412] ; (80027a0 <SetUP+0x50c>)
8002602: 681b ldr r3, [r3, #0]
8002604: 4a67 ldr r2, [pc, #412] ; (80027a4 <SetUP+0x510>)
8002606: 015b lsls r3, r3, #5
8002608: 4413 add r3, r2
800260a: 3318 adds r3, #24
800260c: edd3 7a00 vldr s15, [r3]
8002610: ed9f 7a67 vldr s14, [pc, #412] ; 80027b0 <SetUP+0x51c>
8002614: eef4 7ac7 vcmpe.f32 s15, s14
8002618: eef1 fa10 vmrs APSR_nzcv, fpscr
800261c: d835 bhi.n 800268a <SetUP+0x3f6>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku50)
800261e: 4b60 ldr r3, [pc, #384] ; (80027a0 <SetUP+0x50c>)
8002620: 681b ldr r3, [r3, #0]
8002622: 4a60 ldr r2, [pc, #384] ; (80027a4 <SetUP+0x510>)
8002624: 015b lsls r3, r3, #5
8002626: 4413 add r3, r2
8002628: 3306 adds r3, #6
800262a: 881b ldrh r3, [r3, #0]
800262c: b29b uxth r3, r3
800262e: 2b07 cmp r3, #7
8002630: f200 824c bhi.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
8002634: 4b5a ldr r3, [pc, #360] ; (80027a0 <SetUP+0x50c>)
8002636: 681b ldr r3, [r3, #0]
8002638: 495a ldr r1, [pc, #360] ; (80027a4 <SetUP+0x510>)
800263a: 015a lsls r2, r3, #5
800263c: 440a add r2, r1
800263e: 3206 adds r2, #6
8002640: 8812 ldrh r2, [r2, #0]
8002642: b292 uxth r2, r2
8002644: 3201 adds r2, #1
8002646: b291 uxth r1, r2
8002648: 4a56 ldr r2, [pc, #344] ; (80027a4 <SetUP+0x510>)
800264a: 015b lsls r3, r3, #5
800264c: 4413 add r3, r2
800264e: 3306 adds r3, #6
8002650: 460a mov r2, r1
8002652: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8002654: 4b52 ldr r3, [pc, #328] ; (80027a0 <SetUP+0x50c>)
8002656: 681b ldr r3, [r3, #0]
8002658: b2db uxtb r3, r3
800265a: 4618 mov r0, r3
800265c: f00d ff3a bl 80104d4 <WriteChannel>
8002660: 4603 mov r3, r0
8002662: 2b00 cmp r3, #0
8002664: f000 8232 beq.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
8002668: 4b4d ldr r3, [pc, #308] ; (80027a0 <SetUP+0x50c>)
800266a: 681b ldr r3, [r3, #0]
800266c: 494d ldr r1, [pc, #308] ; (80027a4 <SetUP+0x510>)
800266e: 015a lsls r2, r3, #5
8002670: 440a add r2, r1
8002672: 3206 adds r2, #6
8002674: 8812 ldrh r2, [r2, #0]
8002676: b292 uxth r2, r2
8002678: 3a01 subs r2, #1
800267a: b291 uxth r1, r2
800267c: 4a49 ldr r2, [pc, #292] ; (80027a4 <SetUP+0x510>)
800267e: 015b lsls r3, r3, #5
8002680: 4413 add r3, r2
8002682: 3306 adds r3, #6
8002684: 460a mov r2, r1
8002686: 801a strh r2, [r3, #0]
}
8002688: e220 b.n 8002acc <SetUP+0x838>
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 500.00f) //500
800268a: 4b45 ldr r3, [pc, #276] ; (80027a0 <SetUP+0x50c>)
800268c: 681b ldr r3, [r3, #0]
800268e: 4a45 ldr r2, [pc, #276] ; (80027a4 <SetUP+0x510>)
8002690: 015b lsls r3, r3, #5
8002692: 4413 add r3, r2
8002694: 3318 adds r3, #24
8002696: edd3 7a00 vldr s15, [r3]
800269a: ed9f 7a46 vldr s14, [pc, #280] ; 80027b4 <SetUP+0x520>
800269e: eef4 7ac7 vcmpe.f32 s15, s14
80026a2: eef1 fa10 vmrs APSR_nzcv, fpscr
80026a6: d835 bhi.n 8002714 <SetUP+0x480>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku20)
80026a8: 4b3d ldr r3, [pc, #244] ; (80027a0 <SetUP+0x50c>)
80026aa: 681b ldr r3, [r3, #0]
80026ac: 4a3d ldr r2, [pc, #244] ; (80027a4 <SetUP+0x510>)
80026ae: 015b lsls r3, r3, #5
80026b0: 4413 add r3, r2
80026b2: 3306 adds r3, #6
80026b4: 881b ldrh r3, [r3, #0]
80026b6: b29b uxth r3, r3
80026b8: 2b06 cmp r3, #6
80026ba: f200 8207 bhi.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
80026be: 4b38 ldr r3, [pc, #224] ; (80027a0 <SetUP+0x50c>)
80026c0: 681b ldr r3, [r3, #0]
80026c2: 4938 ldr r1, [pc, #224] ; (80027a4 <SetUP+0x510>)
80026c4: 015a lsls r2, r3, #5
80026c6: 440a add r2, r1
80026c8: 3206 adds r2, #6
80026ca: 8812 ldrh r2, [r2, #0]
80026cc: b292 uxth r2, r2
80026ce: 3201 adds r2, #1
80026d0: b291 uxth r1, r2
80026d2: 4a34 ldr r2, [pc, #208] ; (80027a4 <SetUP+0x510>)
80026d4: 015b lsls r3, r3, #5
80026d6: 4413 add r3, r2
80026d8: 3306 adds r3, #6
80026da: 460a mov r2, r1
80026dc: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
80026de: 4b30 ldr r3, [pc, #192] ; (80027a0 <SetUP+0x50c>)
80026e0: 681b ldr r3, [r3, #0]
80026e2: b2db uxtb r3, r3
80026e4: 4618 mov r0, r3
80026e6: f00d fef5 bl 80104d4 <WriteChannel>
80026ea: 4603 mov r3, r0
80026ec: 2b00 cmp r3, #0
80026ee: f000 81ed beq.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
80026f2: 4b2b ldr r3, [pc, #172] ; (80027a0 <SetUP+0x50c>)
80026f4: 681b ldr r3, [r3, #0]
80026f6: 492b ldr r1, [pc, #172] ; (80027a4 <SetUP+0x510>)
80026f8: 015a lsls r2, r3, #5
80026fa: 440a add r2, r1
80026fc: 3206 adds r2, #6
80026fe: 8812 ldrh r2, [r2, #0]
8002700: b292 uxth r2, r2
8002702: 3a01 subs r2, #1
8002704: b291 uxth r1, r2
8002706: 4a27 ldr r2, [pc, #156] ; (80027a4 <SetUP+0x510>)
8002708: 015b lsls r3, r3, #5
800270a: 4413 add r3, r2
800270c: 3306 adds r3, #6
800270e: 460a mov r2, r1
8002710: 801a strh r2, [r3, #0]
}
8002712: e1db b.n 8002acc <SetUP+0x838>
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 1000.0f) //1000
8002714: 4b22 ldr r3, [pc, #136] ; (80027a0 <SetUP+0x50c>)
8002716: 681b ldr r3, [r3, #0]
8002718: 4a22 ldr r2, [pc, #136] ; (80027a4 <SetUP+0x510>)
800271a: 015b lsls r3, r3, #5
800271c: 4413 add r3, r2
800271e: 3318 adds r3, #24
8002720: edd3 7a00 vldr s15, [r3]
8002724: ed9f 7a24 vldr s14, [pc, #144] ; 80027b8 <SetUP+0x524>
8002728: eef4 7ac7 vcmpe.f32 s15, s14
800272c: eef1 fa10 vmrs APSR_nzcv, fpscr
8002730: d844 bhi.n 80027bc <SetUP+0x528>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku10)
8002732: 4b1b ldr r3, [pc, #108] ; (80027a0 <SetUP+0x50c>)
8002734: 681b ldr r3, [r3, #0]
8002736: 4a1b ldr r2, [pc, #108] ; (80027a4 <SetUP+0x510>)
8002738: 015b lsls r3, r3, #5
800273a: 4413 add r3, r2
800273c: 3306 adds r3, #6
800273e: 881b ldrh r3, [r3, #0]
8002740: b29b uxth r3, r3
8002742: 2b05 cmp r3, #5
8002744: f200 81c2 bhi.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
8002748: 4b15 ldr r3, [pc, #84] ; (80027a0 <SetUP+0x50c>)
800274a: 681b ldr r3, [r3, #0]
800274c: 4915 ldr r1, [pc, #84] ; (80027a4 <SetUP+0x510>)
800274e: 015a lsls r2, r3, #5
8002750: 440a add r2, r1
8002752: 3206 adds r2, #6
8002754: 8812 ldrh r2, [r2, #0]
8002756: b292 uxth r2, r2
8002758: 3201 adds r2, #1
800275a: b291 uxth r1, r2
800275c: 4a11 ldr r2, [pc, #68] ; (80027a4 <SetUP+0x510>)
800275e: 015b lsls r3, r3, #5
8002760: 4413 add r3, r2
8002762: 3306 adds r3, #6
8002764: 460a mov r2, r1
8002766: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8002768: 4b0d ldr r3, [pc, #52] ; (80027a0 <SetUP+0x50c>)
800276a: 681b ldr r3, [r3, #0]
800276c: b2db uxtb r3, r3
800276e: 4618 mov r0, r3
8002770: f00d feb0 bl 80104d4 <WriteChannel>
8002774: 4603 mov r3, r0
8002776: 2b00 cmp r3, #0
8002778: f000 81a8 beq.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
800277c: 4b08 ldr r3, [pc, #32] ; (80027a0 <SetUP+0x50c>)
800277e: 681b ldr r3, [r3, #0]
8002780: 4908 ldr r1, [pc, #32] ; (80027a4 <SetUP+0x510>)
8002782: 015a lsls r2, r3, #5
8002784: 440a add r2, r1
8002786: 3206 adds r2, #6
8002788: 8812 ldrh r2, [r2, #0]
800278a: b292 uxth r2, r2
800278c: 3a01 subs r2, #1
800278e: b291 uxth r1, r2
8002790: 4a04 ldr r2, [pc, #16] ; (80027a4 <SetUP+0x510>)
8002792: 015b lsls r3, r3, #5
8002794: 4413 add r3, r2
8002796: 3306 adds r3, #6
8002798: 460a mov r2, r1
800279a: 801a strh r2, [r3, #0]
}
800279c: e196 b.n 8002acc <SetUP+0x838>
800279e: bf00 nop
80027a0: 2006ba68 .word 0x2006ba68
80027a4: 2006bca8 .word 0x2006bca8
80027a8: 42480000 .word 0x42480000
80027ac: 42c80000 .word 0x42c80000
80027b0: 43480000 .word 0x43480000
80027b4: 43fa0000 .word 0x43fa0000
80027b8: 447a0000 .word 0x447a0000
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 2000.0f) //2000
80027bc: 4bab ldr r3, [pc, #684] ; (8002a6c <SetUP+0x7d8>)
80027be: 681b ldr r3, [r3, #0]
80027c0: 4aab ldr r2, [pc, #684] ; (8002a70 <SetUP+0x7dc>)
80027c2: 015b lsls r3, r3, #5
80027c4: 4413 add r3, r2
80027c6: 3318 adds r3, #24
80027c8: edd3 7a00 vldr s15, [r3]
80027cc: ed9f 7aa9 vldr s14, [pc, #676] ; 8002a74 <SetUP+0x7e0>
80027d0: eef4 7ac7 vcmpe.f32 s15, s14
80027d4: eef1 fa10 vmrs APSR_nzcv, fpscr
80027d8: d835 bhi.n 8002846 <SetUP+0x5b2>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku5)
80027da: 4ba4 ldr r3, [pc, #656] ; (8002a6c <SetUP+0x7d8>)
80027dc: 681b ldr r3, [r3, #0]
80027de: 4aa4 ldr r2, [pc, #656] ; (8002a70 <SetUP+0x7dc>)
80027e0: 015b lsls r3, r3, #5
80027e2: 4413 add r3, r2
80027e4: 3306 adds r3, #6
80027e6: 881b ldrh r3, [r3, #0]
80027e8: b29b uxth r3, r3
80027ea: 2b04 cmp r3, #4
80027ec: f200 816e bhi.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
80027f0: 4b9e ldr r3, [pc, #632] ; (8002a6c <SetUP+0x7d8>)
80027f2: 681b ldr r3, [r3, #0]
80027f4: 499e ldr r1, [pc, #632] ; (8002a70 <SetUP+0x7dc>)
80027f6: 015a lsls r2, r3, #5
80027f8: 440a add r2, r1
80027fa: 3206 adds r2, #6
80027fc: 8812 ldrh r2, [r2, #0]
80027fe: b292 uxth r2, r2
8002800: 3201 adds r2, #1
8002802: b291 uxth r1, r2
8002804: 4a9a ldr r2, [pc, #616] ; (8002a70 <SetUP+0x7dc>)
8002806: 015b lsls r3, r3, #5
8002808: 4413 add r3, r2
800280a: 3306 adds r3, #6
800280c: 460a mov r2, r1
800280e: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8002810: 4b96 ldr r3, [pc, #600] ; (8002a6c <SetUP+0x7d8>)
8002812: 681b ldr r3, [r3, #0]
8002814: b2db uxtb r3, r3
8002816: 4618 mov r0, r3
8002818: f00d fe5c bl 80104d4 <WriteChannel>
800281c: 4603 mov r3, r0
800281e: 2b00 cmp r3, #0
8002820: f000 8154 beq.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
8002824: 4b91 ldr r3, [pc, #580] ; (8002a6c <SetUP+0x7d8>)
8002826: 681b ldr r3, [r3, #0]
8002828: 4991 ldr r1, [pc, #580] ; (8002a70 <SetUP+0x7dc>)
800282a: 015a lsls r2, r3, #5
800282c: 440a add r2, r1
800282e: 3206 adds r2, #6
8002830: 8812 ldrh r2, [r2, #0]
8002832: b292 uxth r2, r2
8002834: 3a01 subs r2, #1
8002836: b291 uxth r1, r2
8002838: 4a8d ldr r2, [pc, #564] ; (8002a70 <SetUP+0x7dc>)
800283a: 015b lsls r3, r3, #5
800283c: 4413 add r3, r2
800283e: 3306 adds r3, #6
8002840: 460a mov r2, r1
8002842: 801a strh r2, [r3, #0]
}
8002844: e142 b.n 8002acc <SetUP+0x838>
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 5000.0f) //5000
8002846: 4b89 ldr r3, [pc, #548] ; (8002a6c <SetUP+0x7d8>)
8002848: 681b ldr r3, [r3, #0]
800284a: 4a89 ldr r2, [pc, #548] ; (8002a70 <SetUP+0x7dc>)
800284c: 015b lsls r3, r3, #5
800284e: 4413 add r3, r2
8002850: 3318 adds r3, #24
8002852: edd3 7a00 vldr s15, [r3]
8002856: ed9f 7a88 vldr s14, [pc, #544] ; 8002a78 <SetUP+0x7e4>
800285a: eef4 7ac7 vcmpe.f32 s15, s14
800285e: eef1 fa10 vmrs APSR_nzcv, fpscr
8002862: d835 bhi.n 80028d0 <SetUP+0x63c>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku2)
8002864: 4b81 ldr r3, [pc, #516] ; (8002a6c <SetUP+0x7d8>)
8002866: 681b ldr r3, [r3, #0]
8002868: 4a81 ldr r2, [pc, #516] ; (8002a70 <SetUP+0x7dc>)
800286a: 015b lsls r3, r3, #5
800286c: 4413 add r3, r2
800286e: 3306 adds r3, #6
8002870: 881b ldrh r3, [r3, #0]
8002872: b29b uxth r3, r3
8002874: 2b03 cmp r3, #3
8002876: f200 8129 bhi.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
800287a: 4b7c ldr r3, [pc, #496] ; (8002a6c <SetUP+0x7d8>)
800287c: 681b ldr r3, [r3, #0]
800287e: 497c ldr r1, [pc, #496] ; (8002a70 <SetUP+0x7dc>)
8002880: 015a lsls r2, r3, #5
8002882: 440a add r2, r1
8002884: 3206 adds r2, #6
8002886: 8812 ldrh r2, [r2, #0]
8002888: b292 uxth r2, r2
800288a: 3201 adds r2, #1
800288c: b291 uxth r1, r2
800288e: 4a78 ldr r2, [pc, #480] ; (8002a70 <SetUP+0x7dc>)
8002890: 015b lsls r3, r3, #5
8002892: 4413 add r3, r2
8002894: 3306 adds r3, #6
8002896: 460a mov r2, r1
8002898: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
800289a: 4b74 ldr r3, [pc, #464] ; (8002a6c <SetUP+0x7d8>)
800289c: 681b ldr r3, [r3, #0]
800289e: b2db uxtb r3, r3
80028a0: 4618 mov r0, r3
80028a2: f00d fe17 bl 80104d4 <WriteChannel>
80028a6: 4603 mov r3, r0
80028a8: 2b00 cmp r3, #0
80028aa: f000 810f beq.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
80028ae: 4b6f ldr r3, [pc, #444] ; (8002a6c <SetUP+0x7d8>)
80028b0: 681b ldr r3, [r3, #0]
80028b2: 496f ldr r1, [pc, #444] ; (8002a70 <SetUP+0x7dc>)
80028b4: 015a lsls r2, r3, #5
80028b6: 440a add r2, r1
80028b8: 3206 adds r2, #6
80028ba: 8812 ldrh r2, [r2, #0]
80028bc: b292 uxth r2, r2
80028be: 3a01 subs r2, #1
80028c0: b291 uxth r1, r2
80028c2: 4a6b ldr r2, [pc, #428] ; (8002a70 <SetUP+0x7dc>)
80028c4: 015b lsls r3, r3, #5
80028c6: 4413 add r3, r2
80028c8: 3306 adds r3, #6
80028ca: 460a mov r2, r1
80028cc: 801a strh r2, [r3, #0]
}
80028ce: e0fd b.n 8002acc <SetUP+0x838>
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 10000.0f) //10000
80028d0: 4b66 ldr r3, [pc, #408] ; (8002a6c <SetUP+0x7d8>)
80028d2: 681b ldr r3, [r3, #0]
80028d4: 4a66 ldr r2, [pc, #408] ; (8002a70 <SetUP+0x7dc>)
80028d6: 015b lsls r3, r3, #5
80028d8: 4413 add r3, r2
80028da: 3318 adds r3, #24
80028dc: edd3 7a00 vldr s15, [r3]
80028e0: ed9f 7a66 vldr s14, [pc, #408] ; 8002a7c <SetUP+0x7e8>
80028e4: eef4 7ac7 vcmpe.f32 s15, s14
80028e8: eef1 fa10 vmrs APSR_nzcv, fpscr
80028ec: d835 bhi.n 800295a <SetUP+0x6c6>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku1)
80028ee: 4b5f ldr r3, [pc, #380] ; (8002a6c <SetUP+0x7d8>)
80028f0: 681b ldr r3, [r3, #0]
80028f2: 4a5f ldr r2, [pc, #380] ; (8002a70 <SetUP+0x7dc>)
80028f4: 015b lsls r3, r3, #5
80028f6: 4413 add r3, r2
80028f8: 3306 adds r3, #6
80028fa: 881b ldrh r3, [r3, #0]
80028fc: b29b uxth r3, r3
80028fe: 2b02 cmp r3, #2
8002900: f200 80e4 bhi.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
8002904: 4b59 ldr r3, [pc, #356] ; (8002a6c <SetUP+0x7d8>)
8002906: 681b ldr r3, [r3, #0]
8002908: 4959 ldr r1, [pc, #356] ; (8002a70 <SetUP+0x7dc>)
800290a: 015a lsls r2, r3, #5
800290c: 440a add r2, r1
800290e: 3206 adds r2, #6
8002910: 8812 ldrh r2, [r2, #0]
8002912: b292 uxth r2, r2
8002914: 3201 adds r2, #1
8002916: b291 uxth r1, r2
8002918: 4a55 ldr r2, [pc, #340] ; (8002a70 <SetUP+0x7dc>)
800291a: 015b lsls r3, r3, #5
800291c: 4413 add r3, r2
800291e: 3306 adds r3, #6
8002920: 460a mov r2, r1
8002922: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8002924: 4b51 ldr r3, [pc, #324] ; (8002a6c <SetUP+0x7d8>)
8002926: 681b ldr r3, [r3, #0]
8002928: b2db uxtb r3, r3
800292a: 4618 mov r0, r3
800292c: f00d fdd2 bl 80104d4 <WriteChannel>
8002930: 4603 mov r3, r0
8002932: 2b00 cmp r3, #0
8002934: f000 80ca beq.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
8002938: 4b4c ldr r3, [pc, #304] ; (8002a6c <SetUP+0x7d8>)
800293a: 681b ldr r3, [r3, #0]
800293c: 494c ldr r1, [pc, #304] ; (8002a70 <SetUP+0x7dc>)
800293e: 015a lsls r2, r3, #5
8002940: 440a add r2, r1
8002942: 3206 adds r2, #6
8002944: 8812 ldrh r2, [r2, #0]
8002946: b292 uxth r2, r2
8002948: 3a01 subs r2, #1
800294a: b291 uxth r1, r2
800294c: 4a48 ldr r2, [pc, #288] ; (8002a70 <SetUP+0x7dc>)
800294e: 015b lsls r3, r3, #5
8002950: 4413 add r3, r2
8002952: 3306 adds r3, #6
8002954: 460a mov r2, r1
8002956: 801a strh r2, [r3, #0]
}
8002958: e0b8 b.n 8002acc <SetUP+0x838>
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 20000.0f) //20000
800295a: 4b44 ldr r3, [pc, #272] ; (8002a6c <SetUP+0x7d8>)
800295c: 681b ldr r3, [r3, #0]
800295e: 4a44 ldr r2, [pc, #272] ; (8002a70 <SetUP+0x7dc>)
8002960: 015b lsls r3, r3, #5
8002962: 4413 add r3, r2
8002964: 3318 adds r3, #24
8002966: edd3 7a00 vldr s15, [r3]
800296a: ed9f 7a45 vldr s14, [pc, #276] ; 8002a80 <SetUP+0x7ec>
800296e: eef4 7ac7 vcmpe.f32 s15, s14
8002972: eef1 fa10 vmrs APSR_nzcv, fpscr
8002976: d835 bhi.n 80029e4 <SetUP+0x750>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku0_5)
8002978: 4b3c ldr r3, [pc, #240] ; (8002a6c <SetUP+0x7d8>)
800297a: 681b ldr r3, [r3, #0]
800297c: 4a3c ldr r2, [pc, #240] ; (8002a70 <SetUP+0x7dc>)
800297e: 015b lsls r3, r3, #5
8002980: 4413 add r3, r2
8002982: 3306 adds r3, #6
8002984: 881b ldrh r3, [r3, #0]
8002986: b29b uxth r3, r3
8002988: 2b01 cmp r3, #1
800298a: f200 809f bhi.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
800298e: 4b37 ldr r3, [pc, #220] ; (8002a6c <SetUP+0x7d8>)
8002990: 681b ldr r3, [r3, #0]
8002992: 4937 ldr r1, [pc, #220] ; (8002a70 <SetUP+0x7dc>)
8002994: 015a lsls r2, r3, #5
8002996: 440a add r2, r1
8002998: 3206 adds r2, #6
800299a: 8812 ldrh r2, [r2, #0]
800299c: b292 uxth r2, r2
800299e: 3201 adds r2, #1
80029a0: b291 uxth r1, r2
80029a2: 4a33 ldr r2, [pc, #204] ; (8002a70 <SetUP+0x7dc>)
80029a4: 015b lsls r3, r3, #5
80029a6: 4413 add r3, r2
80029a8: 3306 adds r3, #6
80029aa: 460a mov r2, r1
80029ac: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
80029ae: 4b2f ldr r3, [pc, #188] ; (8002a6c <SetUP+0x7d8>)
80029b0: 681b ldr r3, [r3, #0]
80029b2: b2db uxtb r3, r3
80029b4: 4618 mov r0, r3
80029b6: f00d fd8d bl 80104d4 <WriteChannel>
80029ba: 4603 mov r3, r0
80029bc: 2b00 cmp r3, #0
80029be: f000 8085 beq.w 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
80029c2: 4b2a ldr r3, [pc, #168] ; (8002a6c <SetUP+0x7d8>)
80029c4: 681b ldr r3, [r3, #0]
80029c6: 492a ldr r1, [pc, #168] ; (8002a70 <SetUP+0x7dc>)
80029c8: 015a lsls r2, r3, #5
80029ca: 440a add r2, r1
80029cc: 3206 adds r2, #6
80029ce: 8812 ldrh r2, [r2, #0]
80029d0: b292 uxth r2, r2
80029d2: 3a01 subs r2, #1
80029d4: b291 uxth r1, r2
80029d6: 4a26 ldr r2, [pc, #152] ; (8002a70 <SetUP+0x7dc>)
80029d8: 015b lsls r3, r3, #5
80029da: 4413 add r3, r2
80029dc: 3306 adds r3, #6
80029de: 460a mov r2, r1
80029e0: 801a strh r2, [r3, #0]
}
80029e2: e073 b.n 8002acc <SetUP+0x838>
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 50000.0f) //50000
80029e4: 4b21 ldr r3, [pc, #132] ; (8002a6c <SetUP+0x7d8>)
80029e6: 681b ldr r3, [r3, #0]
80029e8: 4a21 ldr r2, [pc, #132] ; (8002a70 <SetUP+0x7dc>)
80029ea: 015b lsls r3, r3, #5
80029ec: 4413 add r3, r2
80029ee: 3318 adds r3, #24
80029f0: edd3 7a00 vldr s15, [r3]
80029f4: ed9f 7a23 vldr s14, [pc, #140] ; 8002a84 <SetUP+0x7f0>
80029f8: eef4 7ac7 vcmpe.f32 s15, s14
80029fc: eef1 fa10 vmrs APSR_nzcv, fpscr
8002a00: d842 bhi.n 8002a88 <SetUP+0x7f4>
if(pardata.amplif[ACTIVE_CHANNEL].IKU < Ku0_2)
8002a02: 4b1a ldr r3, [pc, #104] ; (8002a6c <SetUP+0x7d8>)
8002a04: 681b ldr r3, [r3, #0]
8002a06: 4a1a ldr r2, [pc, #104] ; (8002a70 <SetUP+0x7dc>)
8002a08: 015b lsls r3, r3, #5
8002a0a: 4413 add r3, r2
8002a0c: 3306 adds r3, #6
8002a0e: 881b ldrh r3, [r3, #0]
8002a10: b29b uxth r3, r3
8002a12: 2b00 cmp r3, #0
8002a14: d15a bne.n 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
8002a16: 4b15 ldr r3, [pc, #84] ; (8002a6c <SetUP+0x7d8>)
8002a18: 681b ldr r3, [r3, #0]
8002a1a: 4915 ldr r1, [pc, #84] ; (8002a70 <SetUP+0x7dc>)
8002a1c: 015a lsls r2, r3, #5
8002a1e: 440a add r2, r1
8002a20: 3206 adds r2, #6
8002a22: 8812 ldrh r2, [r2, #0]
8002a24: b292 uxth r2, r2
8002a26: 3201 adds r2, #1
8002a28: b291 uxth r1, r2
8002a2a: 4a11 ldr r2, [pc, #68] ; (8002a70 <SetUP+0x7dc>)
8002a2c: 015b lsls r3, r3, #5
8002a2e: 4413 add r3, r2
8002a30: 3306 adds r3, #6
8002a32: 460a mov r2, r1
8002a34: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8002a36: 4b0d ldr r3, [pc, #52] ; (8002a6c <SetUP+0x7d8>)
8002a38: 681b ldr r3, [r3, #0]
8002a3a: b2db uxtb r3, r3
8002a3c: 4618 mov r0, r3
8002a3e: f00d fd49 bl 80104d4 <WriteChannel>
8002a42: 4603 mov r3, r0
8002a44: 2b00 cmp r3, #0
8002a46: d041 beq.n 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
8002a48: 4b08 ldr r3, [pc, #32] ; (8002a6c <SetUP+0x7d8>)
8002a4a: 681b ldr r3, [r3, #0]
8002a4c: 4908 ldr r1, [pc, #32] ; (8002a70 <SetUP+0x7dc>)
8002a4e: 015a lsls r2, r3, #5
8002a50: 440a add r2, r1
8002a52: 3206 adds r2, #6
8002a54: 8812 ldrh r2, [r2, #0]
8002a56: b292 uxth r2, r2
8002a58: 3a01 subs r2, #1
8002a5a: b291 uxth r1, r2
8002a5c: 4a04 ldr r2, [pc, #16] ; (8002a70 <SetUP+0x7dc>)
8002a5e: 015b lsls r3, r3, #5
8002a60: 4413 add r3, r2
8002a62: 3306 adds r3, #6
8002a64: 460a mov r2, r1
8002a66: 801a strh r2, [r3, #0]
}
8002a68: e030 b.n 8002acc <SetUP+0x838>
8002a6a: bf00 nop
8002a6c: 2006ba68 .word 0x2006ba68
8002a70: 2006bca8 .word 0x2006bca8
8002a74: 44fa0000 .word 0x44fa0000
8002a78: 459c4000 .word 0x459c4000
8002a7c: 461c4000 .word 0x461c4000
8002a80: 469c4000 .word 0x469c4000
8002a84: 47435000 .word 0x47435000
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) //99999
8002a88: 4b11 ldr r3, [pc, #68] ; (8002ad0 <SetUP+0x83c>)
8002a8a: 681b ldr r3, [r3, #0]
8002a8c: 4a11 ldr r2, [pc, #68] ; (8002ad4 <SetUP+0x840>)
8002a8e: 015b lsls r3, r3, #5
8002a90: 4413 add r3, r2
8002a92: 3318 adds r3, #24
8002a94: edd3 7a00 vldr s15, [r3]
8002a98: ed9f 7a0f vldr s14, [pc, #60] ; 8002ad8 <SetUP+0x844>
8002a9c: eef4 7ac7 vcmpe.f32 s15, s14
8002aa0: eef1 fa10 vmrs APSR_nzcv, fpscr
8002aa4: d400 bmi.n 8002aa8 <SetUP+0x814>
}
8002aa6: e011 b.n 8002acc <SetUP+0x838>
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku0_1;
8002aa8: 4b09 ldr r3, [pc, #36] ; (8002ad0 <SetUP+0x83c>)
8002aaa: 681b ldr r3, [r3, #0]
8002aac: 4a09 ldr r2, [pc, #36] ; (8002ad4 <SetUP+0x840>)
8002aae: 015b lsls r3, r3, #5
8002ab0: 4413 add r3, r2
8002ab2: 3306 adds r3, #6
8002ab4: 2200 movs r2, #0
8002ab6: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8002ab8: 4b05 ldr r3, [pc, #20] ; (8002ad0 <SetUP+0x83c>)
8002aba: 681b ldr r3, [r3, #0]
8002abc: b2db uxtb r3, r3
8002abe: 4618 mov r0, r3
8002ac0: f00d fd08 bl 80104d4 <WriteChannel>
}
8002ac4: e002 b.n 8002acc <SetUP+0x838>
menupos = Lp;
8002ac6: 4b05 ldr r3, [pc, #20] ; (8002adc <SetUP+0x848>)
8002ac8: 2201 movs r2, #1
8002aca: 701a strb r2, [r3, #0]
}
8002acc: bf00 nop
8002ace: bd80 pop {r7, pc}
8002ad0: 2006ba68 .word 0x2006ba68
8002ad4: 2006bca8 .word 0x2006bca8
8002ad8: 47c35000 .word 0x47c35000
8002adc: 20020010 .word 0x20020010
08002ae0 <SetDN>:
void SetDN(void)
{
8002ae0: b580 push {r7, lr}
8002ae2: af00 add r7, sp, #0
if(menupos == Hp)
8002ae4: 4b81 ldr r3, [pc, #516] ; (8002cec <SetDN+0x20c>)
8002ae6: 781b ldrb r3, [r3, #0]
8002ae8: b2db uxtb r3, r3
8002aea: 2b00 cmp r3, #0
8002aec: d13e bne.n 8002b6c <SetDN+0x8c>
{
if(focused)
8002aee: 4b80 ldr r3, [pc, #512] ; (8002cf0 <SetDN+0x210>)
8002af0: 781b ldrb r3, [r3, #0]
8002af2: b2db uxtb r3, r3
8002af4: 2b00 cmp r3, #0
8002af6: d035 beq.n 8002b64 <SetDN+0x84>
{
if(pardata.amplif[ACTIVE_CHANNEL].IFV > Hp0_2)
8002af8: 4b7e ldr r3, [pc, #504] ; (8002cf4 <SetDN+0x214>)
8002afa: 681b ldr r3, [r3, #0]
8002afc: 4a7e ldr r2, [pc, #504] ; (8002cf8 <SetDN+0x218>)
8002afe: 015b lsls r3, r3, #5
8002b00: 4413 add r3, r2
8002b02: 3302 adds r3, #2
8002b04: 881b ldrh r3, [r3, #0]
8002b06: b29b uxth r3, r3
8002b08: 2b00 cmp r3, #0
8002b0a: f000 80ed beq.w 8002ce8 <SetDN+0x208>
{
pardata.amplif[ACTIVE_CHANNEL].IFV--;
8002b0e: 4b79 ldr r3, [pc, #484] ; (8002cf4 <SetDN+0x214>)
8002b10: 681b ldr r3, [r3, #0]
8002b12: 4979 ldr r1, [pc, #484] ; (8002cf8 <SetDN+0x218>)
8002b14: 015a lsls r2, r3, #5
8002b16: 440a add r2, r1
8002b18: 3202 adds r2, #2
8002b1a: 8812 ldrh r2, [r2, #0]
8002b1c: b292 uxth r2, r2
8002b1e: 3a01 subs r2, #1
8002b20: b291 uxth r1, r2
8002b22: 4a75 ldr r2, [pc, #468] ; (8002cf8 <SetDN+0x218>)
8002b24: 015b lsls r3, r3, #5
8002b26: 4413 add r3, r2
8002b28: 3302 adds r3, #2
8002b2a: 460a mov r2, r1
8002b2c: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8002b2e: 4b71 ldr r3, [pc, #452] ; (8002cf4 <SetDN+0x214>)
8002b30: 681b ldr r3, [r3, #0]
8002b32: b2db uxtb r3, r3
8002b34: 4618 mov r0, r3
8002b36: f00d fccd bl 80104d4 <WriteChannel>
8002b3a: 4603 mov r3, r0
8002b3c: 2b00 cmp r3, #0
8002b3e: f000 80d3 beq.w 8002ce8 <SetDN+0x208>
{
pardata.amplif[ACTIVE_CHANNEL].IFV++;
8002b42: 4b6c ldr r3, [pc, #432] ; (8002cf4 <SetDN+0x214>)
8002b44: 681b ldr r3, [r3, #0]
8002b46: 496c ldr r1, [pc, #432] ; (8002cf8 <SetDN+0x218>)
8002b48: 015a lsls r2, r3, #5
8002b4a: 440a add r2, r1
8002b4c: 3202 adds r2, #2
8002b4e: 8812 ldrh r2, [r2, #0]
8002b50: b292 uxth r2, r2
8002b52: 3201 adds r2, #1
8002b54: b291 uxth r1, r2
8002b56: 4a68 ldr r2, [pc, #416] ; (8002cf8 <SetDN+0x218>)
8002b58: 015b lsls r3, r3, #5
8002b5a: 4413 add r3, r2
8002b5c: 3302 adds r3, #2
8002b5e: 460a mov r2, r1
8002b60: 801a strh r2, [r3, #0]
}
}
}
}
}
}
8002b62: e0c1 b.n 8002ce8 <SetDN+0x208>
menupos = Lp;
8002b64: 4b61 ldr r3, [pc, #388] ; (8002cec <SetDN+0x20c>)
8002b66: 2201 movs r2, #1
8002b68: 701a strb r2, [r3, #0]
}
8002b6a: e0bd b.n 8002ce8 <SetDN+0x208>
if(menupos == Lp)
8002b6c: 4b5f ldr r3, [pc, #380] ; (8002cec <SetDN+0x20c>)
8002b6e: 781b ldrb r3, [r3, #0]
8002b70: b2db uxtb r3, r3
8002b72: 2b01 cmp r3, #1
8002b74: d13e bne.n 8002bf4 <SetDN+0x114>
if(focused)
8002b76: 4b5e ldr r3, [pc, #376] ; (8002cf0 <SetDN+0x210>)
8002b78: 781b ldrb r3, [r3, #0]
8002b7a: b2db uxtb r3, r3
8002b7c: 2b00 cmp r3, #0
8002b7e: d035 beq.n 8002bec <SetDN+0x10c>
if(pardata.amplif[ACTIVE_CHANNEL].IFN > Lp200)
8002b80: 4b5c ldr r3, [pc, #368] ; (8002cf4 <SetDN+0x214>)
8002b82: 681b ldr r3, [r3, #0]
8002b84: 4a5c ldr r2, [pc, #368] ; (8002cf8 <SetDN+0x218>)
8002b86: 015b lsls r3, r3, #5
8002b88: 4413 add r3, r2
8002b8a: 3304 adds r3, #4
8002b8c: 881b ldrh r3, [r3, #0]
8002b8e: b29b uxth r3, r3
8002b90: 2b00 cmp r3, #0
8002b92: f000 80a9 beq.w 8002ce8 <SetDN+0x208>
pardata.amplif[ACTIVE_CHANNEL].IFN--;
8002b96: 4b57 ldr r3, [pc, #348] ; (8002cf4 <SetDN+0x214>)
8002b98: 681b ldr r3, [r3, #0]
8002b9a: 4957 ldr r1, [pc, #348] ; (8002cf8 <SetDN+0x218>)
8002b9c: 015a lsls r2, r3, #5
8002b9e: 440a add r2, r1
8002ba0: 3204 adds r2, #4
8002ba2: 8812 ldrh r2, [r2, #0]
8002ba4: b292 uxth r2, r2
8002ba6: 3a01 subs r2, #1
8002ba8: b291 uxth r1, r2
8002baa: 4a53 ldr r2, [pc, #332] ; (8002cf8 <SetDN+0x218>)
8002bac: 015b lsls r3, r3, #5
8002bae: 4413 add r3, r2
8002bb0: 3304 adds r3, #4
8002bb2: 460a mov r2, r1
8002bb4: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8002bb6: 4b4f ldr r3, [pc, #316] ; (8002cf4 <SetDN+0x214>)
8002bb8: 681b ldr r3, [r3, #0]
8002bba: b2db uxtb r3, r3
8002bbc: 4618 mov r0, r3
8002bbe: f00d fc89 bl 80104d4 <WriteChannel>
8002bc2: 4603 mov r3, r0
8002bc4: 2b00 cmp r3, #0
8002bc6: f000 808f beq.w 8002ce8 <SetDN+0x208>
pardata.amplif[ACTIVE_CHANNEL].IFN++;
8002bca: 4b4a ldr r3, [pc, #296] ; (8002cf4 <SetDN+0x214>)
8002bcc: 681b ldr r3, [r3, #0]
8002bce: 494a ldr r1, [pc, #296] ; (8002cf8 <SetDN+0x218>)
8002bd0: 015a lsls r2, r3, #5
8002bd2: 440a add r2, r1
8002bd4: 3204 adds r2, #4
8002bd6: 8812 ldrh r2, [r2, #0]
8002bd8: b292 uxth r2, r2
8002bda: 3201 adds r2, #1
8002bdc: b291 uxth r1, r2
8002bde: 4a46 ldr r2, [pc, #280] ; (8002cf8 <SetDN+0x218>)
8002be0: 015b lsls r3, r3, #5
8002be2: 4413 add r3, r2
8002be4: 3304 adds r3, #4
8002be6: 460a mov r2, r1
8002be8: 801a strh r2, [r3, #0]
}
8002bea: e07d b.n 8002ce8 <SetDN+0x208>
menupos = Out;
8002bec: 4b3f ldr r3, [pc, #252] ; (8002cec <SetDN+0x20c>)
8002bee: 2202 movs r2, #2
8002bf0: 701a strb r2, [r3, #0]
}
8002bf2: e079 b.n 8002ce8 <SetDN+0x208>
if(menupos == Out)
8002bf4: 4b3d ldr r3, [pc, #244] ; (8002cec <SetDN+0x20c>)
8002bf6: 781b ldrb r3, [r3, #0]
8002bf8: b2db uxtb r3, r3
8002bfa: 2b02 cmp r3, #2
8002bfc: d174 bne.n 8002ce8 <SetDN+0x208>
if(focused)
8002bfe: 4b3c ldr r3, [pc, #240] ; (8002cf0 <SetDN+0x210>)
8002c00: 781b ldrb r3, [r3, #0]
8002c02: b2db uxtb r3, r3
8002c04: 2b00 cmp r3, #0
8002c06: d06f beq.n 8002ce8 <SetDN+0x208>
if(pardata.amplif[ACTIVE_CHANNEL].IIN == CHARGE)
8002c08: 4b3a ldr r3, [pc, #232] ; (8002cf4 <SetDN+0x214>)
8002c0a: 681b ldr r3, [r3, #0]
8002c0c: 4a3a ldr r2, [pc, #232] ; (8002cf8 <SetDN+0x218>)
8002c0e: 015b lsls r3, r3, #5
8002c10: 4413 add r3, r2
8002c12: 881b ldrh r3, [r3, #0]
8002c14: b29b uxth r3, r3
8002c16: 2b00 cmp r3, #0
8002c18: d133 bne.n 8002c82 <SetDN+0x1a2>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku0_1)
8002c1a: 4b36 ldr r3, [pc, #216] ; (8002cf4 <SetDN+0x214>)
8002c1c: 681b ldr r3, [r3, #0]
8002c1e: 4a36 ldr r2, [pc, #216] ; (8002cf8 <SetDN+0x218>)
8002c20: 015b lsls r3, r3, #5
8002c22: 4413 add r3, r2
8002c24: 3306 adds r3, #6
8002c26: 881b ldrh r3, [r3, #0]
8002c28: b29b uxth r3, r3
8002c2a: 2b00 cmp r3, #0
8002c2c: d05c beq.n 8002ce8 <SetDN+0x208>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
8002c2e: 4b31 ldr r3, [pc, #196] ; (8002cf4 <SetDN+0x214>)
8002c30: 681b ldr r3, [r3, #0]
8002c32: 4931 ldr r1, [pc, #196] ; (8002cf8 <SetDN+0x218>)
8002c34: 015a lsls r2, r3, #5
8002c36: 440a add r2, r1
8002c38: 3206 adds r2, #6
8002c3a: 8812 ldrh r2, [r2, #0]
8002c3c: b292 uxth r2, r2
8002c3e: 3a01 subs r2, #1
8002c40: b291 uxth r1, r2
8002c42: 4a2d ldr r2, [pc, #180] ; (8002cf8 <SetDN+0x218>)
8002c44: 015b lsls r3, r3, #5
8002c46: 4413 add r3, r2
8002c48: 3306 adds r3, #6
8002c4a: 460a mov r2, r1
8002c4c: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8002c4e: 4b29 ldr r3, [pc, #164] ; (8002cf4 <SetDN+0x214>)
8002c50: 681b ldr r3, [r3, #0]
8002c52: b2db uxtb r3, r3
8002c54: 4618 mov r0, r3
8002c56: f00d fc3d bl 80104d4 <WriteChannel>
8002c5a: 4603 mov r3, r0
8002c5c: 2b00 cmp r3, #0
8002c5e: d043 beq.n 8002ce8 <SetDN+0x208>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
8002c60: 4b24 ldr r3, [pc, #144] ; (8002cf4 <SetDN+0x214>)
8002c62: 681b ldr r3, [r3, #0]
8002c64: 4924 ldr r1, [pc, #144] ; (8002cf8 <SetDN+0x218>)
8002c66: 015a lsls r2, r3, #5
8002c68: 440a add r2, r1
8002c6a: 3206 adds r2, #6
8002c6c: 8812 ldrh r2, [r2, #0]
8002c6e: b292 uxth r2, r2
8002c70: 3201 adds r2, #1
8002c72: b291 uxth r1, r2
8002c74: 4a20 ldr r2, [pc, #128] ; (8002cf8 <SetDN+0x218>)
8002c76: 015b lsls r3, r3, #5
8002c78: 4413 add r3, r2
8002c7a: 3306 adds r3, #6
8002c7c: 460a mov r2, r1
8002c7e: 801a strh r2, [r3, #0]
}
8002c80: e032 b.n 8002ce8 <SetDN+0x208>
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku1)
8002c82: 4b1c ldr r3, [pc, #112] ; (8002cf4 <SetDN+0x214>)
8002c84: 681b ldr r3, [r3, #0]
8002c86: 4a1c ldr r2, [pc, #112] ; (8002cf8 <SetDN+0x218>)
8002c88: 015b lsls r3, r3, #5
8002c8a: 4413 add r3, r2
8002c8c: 3306 adds r3, #6
8002c8e: 881b ldrh r3, [r3, #0]
8002c90: b29b uxth r3, r3
8002c92: 2b03 cmp r3, #3
8002c94: d928 bls.n 8002ce8 <SetDN+0x208>
pardata.amplif[ACTIVE_CHANNEL].IKU--;
8002c96: 4b17 ldr r3, [pc, #92] ; (8002cf4 <SetDN+0x214>)
8002c98: 681b ldr r3, [r3, #0]
8002c9a: 4917 ldr r1, [pc, #92] ; (8002cf8 <SetDN+0x218>)
8002c9c: 015a lsls r2, r3, #5
8002c9e: 440a add r2, r1
8002ca0: 3206 adds r2, #6
8002ca2: 8812 ldrh r2, [r2, #0]
8002ca4: b292 uxth r2, r2
8002ca6: 3a01 subs r2, #1
8002ca8: b291 uxth r1, r2
8002caa: 4a13 ldr r2, [pc, #76] ; (8002cf8 <SetDN+0x218>)
8002cac: 015b lsls r3, r3, #5
8002cae: 4413 add r3, r2
8002cb0: 3306 adds r3, #6
8002cb2: 460a mov r2, r1
8002cb4: 801a strh r2, [r3, #0]
if(WriteChannel(ACTIVE_CHANNEL))
8002cb6: 4b0f ldr r3, [pc, #60] ; (8002cf4 <SetDN+0x214>)
8002cb8: 681b ldr r3, [r3, #0]
8002cba: b2db uxtb r3, r3
8002cbc: 4618 mov r0, r3
8002cbe: f00d fc09 bl 80104d4 <WriteChannel>
8002cc2: 4603 mov r3, r0
8002cc4: 2b00 cmp r3, #0
8002cc6: d00f beq.n 8002ce8 <SetDN+0x208>
pardata.amplif[ACTIVE_CHANNEL].IKU++;
8002cc8: 4b0a ldr r3, [pc, #40] ; (8002cf4 <SetDN+0x214>)
8002cca: 681b ldr r3, [r3, #0]
8002ccc: 490a ldr r1, [pc, #40] ; (8002cf8 <SetDN+0x218>)
8002cce: 015a lsls r2, r3, #5
8002cd0: 440a add r2, r1
8002cd2: 3206 adds r2, #6
8002cd4: 8812 ldrh r2, [r2, #0]
8002cd6: b292 uxth r2, r2
8002cd8: 3201 adds r2, #1
8002cda: b291 uxth r1, r2
8002cdc: 4a06 ldr r2, [pc, #24] ; (8002cf8 <SetDN+0x218>)
8002cde: 015b lsls r3, r3, #5
8002ce0: 4413 add r3, r2
8002ce2: 3306 adds r3, #6
8002ce4: 460a mov r2, r1
8002ce6: 801a strh r2, [r3, #0]
}
8002ce8: bf00 nop
8002cea: bd80 pop {r7, pc}
8002cec: 20020010 .word 0x20020010
8002cf0: 200209e4 .word 0x200209e4
8002cf4: 2006ba68 .word 0x2006ba68
8002cf8: 2006bca8 .word 0x2006bca8
08002cfc <DoKeyUP>:
void DoKeyUP(void)
{
8002cfc: b580 push {r7, lr}
8002cfe: b088 sub sp, #32
8002d00: af00 add r7, sp, #0
uint32_t s, ikdt, ikt, iks, ikd, ike, ipt;
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10.0f) {
8002d02: 4b5f ldr r3, [pc, #380] ; (8002e80 <DoKeyUP+0x184>)
8002d04: 681b ldr r3, [r3, #0]
8002d06: 4a5f ldr r2, [pc, #380] ; (8002e84 <DoKeyUP+0x188>)
8002d08: 015b lsls r3, r3, #5
8002d0a: 4413 add r3, r2
8002d0c: 3318 adds r3, #24
8002d0e: edd3 7a00 vldr s15, [r3]
8002d12: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8002d16: eef4 7ac7 vcmpe.f32 s15, s14
8002d1a: eef1 fa10 vmrs APSR_nzcv, fpscr
8002d1e: d517 bpl.n 8002d50 <DoKeyUP+0x54>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10000.0f) + 0.5f);
8002d20: 4b57 ldr r3, [pc, #348] ; (8002e80 <DoKeyUP+0x184>)
8002d22: 681b ldr r3, [r3, #0]
8002d24: 4a57 ldr r2, [pc, #348] ; (8002e84 <DoKeyUP+0x188>)
8002d26: 015b lsls r3, r3, #5
8002d28: 4413 add r3, r2
8002d2a: 3318 adds r3, #24
8002d2c: edd3 7a00 vldr s15, [r3]
8002d30: ed9f 7a55 vldr s14, [pc, #340] ; 8002e88 <DoKeyUP+0x18c>
8002d34: ee67 7a87 vmul.f32 s15, s15, s14
8002d38: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8002d3c: ee77 7a87 vadd.f32 s15, s15, s14
8002d40: eefc 7ae7 vcvt.u32.f32 s15, s15
8002d44: ee17 3a90 vmov r3, s15
8002d48: 61fb str r3, [r7, #28]
ipt = 4;
8002d4a: 2304 movs r3, #4
8002d4c: 607b str r3, [r7, #4]
8002d4e: e0be b.n 8002ece <DoKeyUP+0x1d2>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100.0f) {
8002d50: 4b4b ldr r3, [pc, #300] ; (8002e80 <DoKeyUP+0x184>)
8002d52: 681b ldr r3, [r3, #0]
8002d54: 4a4b ldr r2, [pc, #300] ; (8002e84 <DoKeyUP+0x188>)
8002d56: 015b lsls r3, r3, #5
8002d58: 4413 add r3, r2
8002d5a: 3318 adds r3, #24
8002d5c: edd3 7a00 vldr s15, [r3]
8002d60: ed9f 7a4a vldr s14, [pc, #296] ; 8002e8c <DoKeyUP+0x190>
8002d64: eef4 7ac7 vcmpe.f32 s15, s14
8002d68: eef1 fa10 vmrs APSR_nzcv, fpscr
8002d6c: d517 bpl.n 8002d9e <DoKeyUP+0xa2>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 1000.0f) + 0.5f);
8002d6e: 4b44 ldr r3, [pc, #272] ; (8002e80 <DoKeyUP+0x184>)
8002d70: 681b ldr r3, [r3, #0]
8002d72: 4a44 ldr r2, [pc, #272] ; (8002e84 <DoKeyUP+0x188>)
8002d74: 015b lsls r3, r3, #5
8002d76: 4413 add r3, r2
8002d78: 3318 adds r3, #24
8002d7a: edd3 7a00 vldr s15, [r3]
8002d7e: ed9f 7a44 vldr s14, [pc, #272] ; 8002e90 <DoKeyUP+0x194>
8002d82: ee67 7a87 vmul.f32 s15, s15, s14
8002d86: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8002d8a: ee77 7a87 vadd.f32 s15, s15, s14
8002d8e: eefc 7ae7 vcvt.u32.f32 s15, s15
8002d92: ee17 3a90 vmov r3, s15
8002d96: 61fb str r3, [r7, #28]
ipt = 3;
8002d98: 2303 movs r3, #3
8002d9a: 607b str r3, [r7, #4]
8002d9c: e097 b.n 8002ece <DoKeyUP+0x1d2>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 1000.0f) {
8002d9e: 4b38 ldr r3, [pc, #224] ; (8002e80 <DoKeyUP+0x184>)
8002da0: 681b ldr r3, [r3, #0]
8002da2: 4a38 ldr r2, [pc, #224] ; (8002e84 <DoKeyUP+0x188>)
8002da4: 015b lsls r3, r3, #5
8002da6: 4413 add r3, r2
8002da8: 3318 adds r3, #24
8002daa: edd3 7a00 vldr s15, [r3]
8002dae: ed9f 7a38 vldr s14, [pc, #224] ; 8002e90 <DoKeyUP+0x194>
8002db2: eef4 7ac7 vcmpe.f32 s15, s14
8002db6: eef1 fa10 vmrs APSR_nzcv, fpscr
8002dba: d517 bpl.n 8002dec <DoKeyUP+0xf0>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 100.0f) + 0.5f);
8002dbc: 4b30 ldr r3, [pc, #192] ; (8002e80 <DoKeyUP+0x184>)
8002dbe: 681b ldr r3, [r3, #0]
8002dc0: 4a30 ldr r2, [pc, #192] ; (8002e84 <DoKeyUP+0x188>)
8002dc2: 015b lsls r3, r3, #5
8002dc4: 4413 add r3, r2
8002dc6: 3318 adds r3, #24
8002dc8: edd3 7a00 vldr s15, [r3]
8002dcc: ed9f 7a2f vldr s14, [pc, #188] ; 8002e8c <DoKeyUP+0x190>
8002dd0: ee67 7a87 vmul.f32 s15, s15, s14
8002dd4: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8002dd8: ee77 7a87 vadd.f32 s15, s15, s14
8002ddc: eefc 7ae7 vcvt.u32.f32 s15, s15
8002de0: ee17 3a90 vmov r3, s15
8002de4: 61fb str r3, [r7, #28]
ipt = 2;
8002de6: 2302 movs r3, #2
8002de8: 607b str r3, [r7, #4]
8002dea: e070 b.n 8002ece <DoKeyUP+0x1d2>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10000.0f) {
8002dec: 4b24 ldr r3, [pc, #144] ; (8002e80 <DoKeyUP+0x184>)
8002dee: 681b ldr r3, [r3, #0]
8002df0: 4a24 ldr r2, [pc, #144] ; (8002e84 <DoKeyUP+0x188>)
8002df2: 015b lsls r3, r3, #5
8002df4: 4413 add r3, r2
8002df6: 3318 adds r3, #24
8002df8: edd3 7a00 vldr s15, [r3]
8002dfc: ed9f 7a22 vldr s14, [pc, #136] ; 8002e88 <DoKeyUP+0x18c>
8002e00: eef4 7ac7 vcmpe.f32 s15, s14
8002e04: eef1 fa10 vmrs APSR_nzcv, fpscr
8002e08: d517 bpl.n 8002e3a <DoKeyUP+0x13e>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10.0f) + 0.5f);
8002e0a: 4b1d ldr r3, [pc, #116] ; (8002e80 <DoKeyUP+0x184>)
8002e0c: 681b ldr r3, [r3, #0]
8002e0e: 4a1d ldr r2, [pc, #116] ; (8002e84 <DoKeyUP+0x188>)
8002e10: 015b lsls r3, r3, #5
8002e12: 4413 add r3, r2
8002e14: 3318 adds r3, #24
8002e16: edd3 7a00 vldr s15, [r3]
8002e1a: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8002e1e: ee67 7a87 vmul.f32 s15, s15, s14
8002e22: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8002e26: ee77 7a87 vadd.f32 s15, s15, s14
8002e2a: eefc 7ae7 vcvt.u32.f32 s15, s15
8002e2e: ee17 3a90 vmov r3, s15
8002e32: 61fb str r3, [r7, #28]
ipt = 1;
8002e34: 2301 movs r3, #1
8002e36: 607b str r3, [r7, #4]
8002e38: e049 b.n 8002ece <DoKeyUP+0x1d2>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) {
8002e3a: 4b11 ldr r3, [pc, #68] ; (8002e80 <DoKeyUP+0x184>)
8002e3c: 681b ldr r3, [r3, #0]
8002e3e: 4a11 ldr r2, [pc, #68] ; (8002e84 <DoKeyUP+0x188>)
8002e40: 015b lsls r3, r3, #5
8002e42: 4413 add r3, r2
8002e44: 3318 adds r3, #24
8002e46: edd3 7a00 vldr s15, [r3]
8002e4a: ed9f 7a12 vldr s14, [pc, #72] ; 8002e94 <DoKeyUP+0x198>
8002e4e: eef4 7ac7 vcmpe.f32 s15, s14
8002e52: eef1 fa10 vmrs APSR_nzcv, fpscr
8002e56: d51f bpl.n 8002e98 <DoKeyUP+0x19c>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS) + 0.5f);
8002e58: 4b09 ldr r3, [pc, #36] ; (8002e80 <DoKeyUP+0x184>)
8002e5a: 681b ldr r3, [r3, #0]
8002e5c: 4a09 ldr r2, [pc, #36] ; (8002e84 <DoKeyUP+0x188>)
8002e5e: 015b lsls r3, r3, #5
8002e60: 4413 add r3, r2
8002e62: 3318 adds r3, #24
8002e64: edd3 7a00 vldr s15, [r3]
8002e68: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8002e6c: ee77 7a87 vadd.f32 s15, s15, s14
8002e70: eefc 7ae7 vcvt.u32.f32 s15, s15
8002e74: ee17 3a90 vmov r3, s15
8002e78: 61fb str r3, [r7, #28]
ipt = 0;
8002e7a: 2300 movs r3, #0
8002e7c: 607b str r3, [r7, #4]
8002e7e: e026 b.n 8002ece <DoKeyUP+0x1d2>
8002e80: 2006ba68 .word 0x2006ba68
8002e84: 2006bca8 .word 0x2006bca8
8002e88: 461c4000 .word 0x461c4000
8002e8c: 42c80000 .word 0x42c80000
8002e90: 447a0000 .word 0x447a0000
8002e94: 47c35000 .word 0x47c35000
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8002e98: 4baf ldr r3, [pc, #700] ; (8003158 <DoKeyUP+0x45c>)
8002e9a: 681b ldr r3, [r3, #0]
8002e9c: 4aaf ldr r2, [pc, #700] ; (800315c <DoKeyUP+0x460>)
8002e9e: 015b lsls r3, r3, #5
8002ea0: 4413 add r3, r2
8002ea2: 3318 adds r3, #24
8002ea4: edd3 7a00 vldr s15, [r3]
8002ea8: ed9f 7aad vldr s14, [pc, #692] ; 8003160 <DoKeyUP+0x464>
8002eac: eef4 7ac7 vcmpe.f32 s15, s14
8002eb0: eef1 fa10 vmrs APSR_nzcv, fpscr
8002eb4: db0b blt.n 8002ece <DoKeyUP+0x1d2>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
8002eb6: 4ba8 ldr r3, [pc, #672] ; (8003158 <DoKeyUP+0x45c>)
8002eb8: 681b ldr r3, [r3, #0]
8002eba: 4aa8 ldr r2, [pc, #672] ; (800315c <DoKeyUP+0x460>)
8002ebc: 015b lsls r3, r3, #5
8002ebe: 4413 add r3, r2
8002ec0: 3318 adds r3, #24
8002ec2: 4aa8 ldr r2, [pc, #672] ; (8003164 <DoKeyUP+0x468>)
8002ec4: 601a str r2, [r3, #0]
s = 99999;
8002ec6: 4ba8 ldr r3, [pc, #672] ; (8003168 <DoKeyUP+0x46c>)
8002ec8: 61fb str r3, [r7, #28]
ipt = 0;
8002eca: 2300 movs r3, #0
8002ecc: 607b str r3, [r7, #4]
}
ikdt = (s / 10000);
8002ece: 69fb ldr r3, [r7, #28]
8002ed0: 4aa6 ldr r2, [pc, #664] ; (800316c <DoKeyUP+0x470>)
8002ed2: fba2 2303 umull r2, r3, r2, r3
8002ed6: 0b5b lsrs r3, r3, #13
8002ed8: 61bb str r3, [r7, #24]
ikt = (s % 10000 / 1000);
8002eda: 69fa ldr r2, [r7, #28]
8002edc: 4ba3 ldr r3, [pc, #652] ; (800316c <DoKeyUP+0x470>)
8002ede: fba3 1302 umull r1, r3, r3, r2
8002ee2: 0b5b lsrs r3, r3, #13
8002ee4: f242 7110 movw r1, #10000 ; 0x2710
8002ee8: fb01 f303 mul.w r3, r1, r3
8002eec: 1ad3 subs r3, r2, r3
8002eee: 4aa0 ldr r2, [pc, #640] ; (8003170 <DoKeyUP+0x474>)
8002ef0: fba2 2303 umull r2, r3, r2, r3
8002ef4: 099b lsrs r3, r3, #6
8002ef6: 617b str r3, [r7, #20]
iks = (s % 10000 % 1000 / 100);
8002ef8: 69fa ldr r2, [r7, #28]
8002efa: 4b9c ldr r3, [pc, #624] ; (800316c <DoKeyUP+0x470>)
8002efc: fba3 1302 umull r1, r3, r3, r2
8002f00: 0b5b lsrs r3, r3, #13
8002f02: f242 7110 movw r1, #10000 ; 0x2710
8002f06: fb01 f303 mul.w r3, r1, r3
8002f0a: 1ad3 subs r3, r2, r3
8002f0c: 4a98 ldr r2, [pc, #608] ; (8003170 <DoKeyUP+0x474>)
8002f0e: fba2 1203 umull r1, r2, r2, r3
8002f12: 0992 lsrs r2, r2, #6
8002f14: f44f 717a mov.w r1, #1000 ; 0x3e8
8002f18: fb01 f202 mul.w r2, r1, r2
8002f1c: 1a9a subs r2, r3, r2
8002f1e: 4b95 ldr r3, [pc, #596] ; (8003174 <DoKeyUP+0x478>)
8002f20: fba3 2302 umull r2, r3, r3, r2
8002f24: 095b lsrs r3, r3, #5
8002f26: 613b str r3, [r7, #16]
ikd = (s % 10000 % 1000 % 100 / 10);
8002f28: 69fb ldr r3, [r7, #28]
8002f2a: 4a90 ldr r2, [pc, #576] ; (800316c <DoKeyUP+0x470>)
8002f2c: fba2 1203 umull r1, r2, r2, r3
8002f30: 0b52 lsrs r2, r2, #13
8002f32: f242 7110 movw r1, #10000 ; 0x2710
8002f36: fb01 f202 mul.w r2, r1, r2
8002f3a: 1a9a subs r2, r3, r2
8002f3c: 4b8c ldr r3, [pc, #560] ; (8003170 <DoKeyUP+0x474>)
8002f3e: fba3 1302 umull r1, r3, r3, r2
8002f42: 099b lsrs r3, r3, #6
8002f44: f44f 717a mov.w r1, #1000 ; 0x3e8
8002f48: fb01 f303 mul.w r3, r1, r3
8002f4c: 1ad3 subs r3, r2, r3
8002f4e: 4a89 ldr r2, [pc, #548] ; (8003174 <DoKeyUP+0x478>)
8002f50: fba2 1203 umull r1, r2, r2, r3
8002f54: 0952 lsrs r2, r2, #5
8002f56: 2164 movs r1, #100 ; 0x64
8002f58: fb01 f202 mul.w r2, r1, r2
8002f5c: 1a9a subs r2, r3, r2
8002f5e: 4b86 ldr r3, [pc, #536] ; (8003178 <DoKeyUP+0x47c>)
8002f60: fba3 2302 umull r2, r3, r3, r2
8002f64: 08db lsrs r3, r3, #3
8002f66: 60fb str r3, [r7, #12]
ike = (s % 10000 % 1000 % 100 % 10);
8002f68: 69fb ldr r3, [r7, #28]
8002f6a: 4a80 ldr r2, [pc, #512] ; (800316c <DoKeyUP+0x470>)
8002f6c: fba2 1203 umull r1, r2, r2, r3
8002f70: 0b52 lsrs r2, r2, #13
8002f72: f242 7110 movw r1, #10000 ; 0x2710
8002f76: fb01 f202 mul.w r2, r1, r2
8002f7a: 1a9a subs r2, r3, r2
8002f7c: 4b7c ldr r3, [pc, #496] ; (8003170 <DoKeyUP+0x474>)
8002f7e: fba3 1302 umull r1, r3, r3, r2
8002f82: 099b lsrs r3, r3, #6
8002f84: f44f 717a mov.w r1, #1000 ; 0x3e8
8002f88: fb01 f303 mul.w r3, r1, r3
8002f8c: 1ad3 subs r3, r2, r3
8002f8e: 4a79 ldr r2, [pc, #484] ; (8003174 <DoKeyUP+0x478>)
8002f90: fba2 1203 umull r1, r2, r2, r3
8002f94: 0952 lsrs r2, r2, #5
8002f96: 2164 movs r1, #100 ; 0x64
8002f98: fb01 f202 mul.w r2, r1, r2
8002f9c: 1a9a subs r2, r3, r2
8002f9e: 4b76 ldr r3, [pc, #472] ; (8003178 <DoKeyUP+0x47c>)
8002fa0: fba3 1302 umull r1, r3, r3, r2
8002fa4: 08d9 lsrs r1, r3, #3
8002fa6: 460b mov r3, r1
8002fa8: 009b lsls r3, r3, #2
8002faa: 440b add r3, r1
8002fac: 005b lsls r3, r3, #1
8002fae: 1ad3 subs r3, r2, r3
8002fb0: 60bb str r3, [r7, #8]
if(menupos == Kikdt_1 || menupos == Kikdt_2 || menupos == Kikdt_3 || menupos == Kikdt_4)
8002fb2: 4b72 ldr r3, [pc, #456] ; (800317c <DoKeyUP+0x480>)
8002fb4: 781b ldrb r3, [r3, #0]
8002fb6: b2db uxtb r3, r3
8002fb8: 2b02 cmp r3, #2
8002fba: d00f beq.n 8002fdc <DoKeyUP+0x2e0>
8002fbc: 4b6f ldr r3, [pc, #444] ; (800317c <DoKeyUP+0x480>)
8002fbe: 781b ldrb r3, [r3, #0]
8002fc0: b2db uxtb r3, r3
8002fc2: 2b0a cmp r3, #10
8002fc4: d00a beq.n 8002fdc <DoKeyUP+0x2e0>
8002fc6: 4b6d ldr r3, [pc, #436] ; (800317c <DoKeyUP+0x480>)
8002fc8: 781b ldrb r3, [r3, #0]
8002fca: b2db uxtb r3, r3
8002fcc: 2b12 cmp r3, #18
8002fce: d005 beq.n 8002fdc <DoKeyUP+0x2e0>
8002fd0: 4b6a ldr r3, [pc, #424] ; (800317c <DoKeyUP+0x480>)
8002fd2: 781b ldrb r3, [r3, #0]
8002fd4: b2db uxtb r3, r3
8002fd6: 2b1a cmp r3, #26
8002fd8: f040 80dc bne.w 8003194 <DoKeyUP+0x498>
{
if(ikdt < 9) {
8002fdc: 69bb ldr r3, [r7, #24]
8002fde: 2b08 cmp r3, #8
8002fe0: d802 bhi.n 8002fe8 <DoKeyUP+0x2ec>
ikdt++;
8002fe2: 69bb ldr r3, [r7, #24]
8002fe4: 3301 adds r3, #1
8002fe6: 61bb str r3, [r7, #24]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
8002fe8: 69bb ldr r3, [r7, #24]
8002fea: f242 7210 movw r2, #10000 ; 0x2710
8002fee: fb02 f203 mul.w r2, r2, r3
8002ff2: 697b ldr r3, [r7, #20]
8002ff4: f44f 717a mov.w r1, #1000 ; 0x3e8
8002ff8: fb01 f303 mul.w r3, r1, r3
8002ffc: 18d1 adds r1, r2, r3
8002ffe: 68fa ldr r2, [r7, #12]
8003000: 4613 mov r3, r2
8003002: 009b lsls r3, r3, #2
8003004: 4413 add r3, r2
8003006: 005b lsls r3, r3, #1
8003008: 4618 mov r0, r3
800300a: 693b ldr r3, [r7, #16]
800300c: 2264 movs r2, #100 ; 0x64
800300e: fb02 f303 mul.w r3, r2, r3
8003012: 4403 add r3, r0
8003014: 18ca adds r2, r1, r3
8003016: 68bb ldr r3, [r7, #8]
8003018: 4413 add r3, r2
800301a: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
800301c: 4b4e ldr r3, [pc, #312] ; (8003158 <DoKeyUP+0x45c>)
800301e: 681b ldr r3, [r3, #0]
8003020: 69fa ldr r2, [r7, #28]
8003022: ee07 2a90 vmov s15, r2
8003026: eef8 7a67 vcvt.f32.u32 s15, s15
800302a: 4a4c ldr r2, [pc, #304] ; (800315c <DoKeyUP+0x460>)
800302c: 015b lsls r3, r3, #5
800302e: 4413 add r3, r2
8003030: 3318 adds r3, #24
8003032: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8003036: 687b ldr r3, [r7, #4]
8003038: 2b01 cmp r3, #1
800303a: d112 bne.n 8003062 <DoKeyUP+0x366>
800303c: 4b46 ldr r3, [pc, #280] ; (8003158 <DoKeyUP+0x45c>)
800303e: 681b ldr r3, [r3, #0]
8003040: 4946 ldr r1, [pc, #280] ; (800315c <DoKeyUP+0x460>)
8003042: 015a lsls r2, r3, #5
8003044: 440a add r2, r1
8003046: 3218 adds r2, #24
8003048: edd2 7a00 vldr s15, [r2]
800304c: ed9f 7a4c vldr s14, [pc, #304] ; 8003180 <DoKeyUP+0x484>
8003050: ee67 7a87 vmul.f32 s15, s15, s14
8003054: 4a41 ldr r2, [pc, #260] ; (800315c <DoKeyUP+0x460>)
8003056: 015b lsls r3, r3, #5
8003058: 4413 add r3, r2
800305a: 3318 adds r3, #24
800305c: edc3 7a00 vstr s15, [r3]
8003060: e040 b.n 80030e4 <DoKeyUP+0x3e8>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8003062: 687b ldr r3, [r7, #4]
8003064: 2b02 cmp r3, #2
8003066: d112 bne.n 800308e <DoKeyUP+0x392>
8003068: 4b3b ldr r3, [pc, #236] ; (8003158 <DoKeyUP+0x45c>)
800306a: 681b ldr r3, [r3, #0]
800306c: 493b ldr r1, [pc, #236] ; (800315c <DoKeyUP+0x460>)
800306e: 015a lsls r2, r3, #5
8003070: 440a add r2, r1
8003072: 3218 adds r2, #24
8003074: edd2 7a00 vldr s15, [r2]
8003078: ed9f 7a42 vldr s14, [pc, #264] ; 8003184 <DoKeyUP+0x488>
800307c: ee67 7a87 vmul.f32 s15, s15, s14
8003080: 4a36 ldr r2, [pc, #216] ; (800315c <DoKeyUP+0x460>)
8003082: 015b lsls r3, r3, #5
8003084: 4413 add r3, r2
8003086: 3318 adds r3, #24
8003088: edc3 7a00 vstr s15, [r3]
800308c: e02a b.n 80030e4 <DoKeyUP+0x3e8>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
800308e: 687b ldr r3, [r7, #4]
8003090: 2b03 cmp r3, #3
8003092: d112 bne.n 80030ba <DoKeyUP+0x3be>
8003094: 4b30 ldr r3, [pc, #192] ; (8003158 <DoKeyUP+0x45c>)
8003096: 681b ldr r3, [r3, #0]
8003098: 4930 ldr r1, [pc, #192] ; (800315c <DoKeyUP+0x460>)
800309a: 015a lsls r2, r3, #5
800309c: 440a add r2, r1
800309e: 3218 adds r2, #24
80030a0: edd2 7a00 vldr s15, [r2]
80030a4: ed9f 7a38 vldr s14, [pc, #224] ; 8003188 <DoKeyUP+0x48c>
80030a8: ee67 7a87 vmul.f32 s15, s15, s14
80030ac: 4a2b ldr r2, [pc, #172] ; (800315c <DoKeyUP+0x460>)
80030ae: 015b lsls r3, r3, #5
80030b0: 4413 add r3, r2
80030b2: 3318 adds r3, #24
80030b4: edc3 7a00 vstr s15, [r3]
80030b8: e014 b.n 80030e4 <DoKeyUP+0x3e8>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
80030ba: 687b ldr r3, [r7, #4]
80030bc: 2b04 cmp r3, #4
80030be: d111 bne.n 80030e4 <DoKeyUP+0x3e8>
80030c0: 4b25 ldr r3, [pc, #148] ; (8003158 <DoKeyUP+0x45c>)
80030c2: 681b ldr r3, [r3, #0]
80030c4: 4925 ldr r1, [pc, #148] ; (800315c <DoKeyUP+0x460>)
80030c6: 015a lsls r2, r3, #5
80030c8: 440a add r2, r1
80030ca: 3218 adds r2, #24
80030cc: edd2 7a00 vldr s15, [r2]
80030d0: ed9f 7a2e vldr s14, [pc, #184] ; 800318c <DoKeyUP+0x490>
80030d4: ee67 7a87 vmul.f32 s15, s15, s14
80030d8: 4a20 ldr r2, [pc, #128] ; (800315c <DoKeyUP+0x460>)
80030da: 015b lsls r3, r3, #5
80030dc: 4413 add r3, r2
80030de: 3318 adds r3, #24
80030e0: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
80030e4: 4b1c ldr r3, [pc, #112] ; (8003158 <DoKeyUP+0x45c>)
80030e6: 681b ldr r3, [r3, #0]
80030e8: 4a1c ldr r2, [pc, #112] ; (800315c <DoKeyUP+0x460>)
80030ea: 015b lsls r3, r3, #5
80030ec: 4413 add r3, r2
80030ee: 3318 adds r3, #24
80030f0: edd3 7a00 vldr s15, [r3]
80030f4: eef5 7ac0 vcmpe.f32 s15, #0.0
80030f8: eef1 fa10 vmrs APSR_nzcv, fpscr
80030fc: d807 bhi.n 800310e <DoKeyUP+0x412>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
80030fe: 4b16 ldr r3, [pc, #88] ; (8003158 <DoKeyUP+0x45c>)
8003100: 681b ldr r3, [r3, #0]
8003102: 4a16 ldr r2, [pc, #88] ; (800315c <DoKeyUP+0x460>)
8003104: 015b lsls r3, r3, #5
8003106: 4413 add r3, r2
8003108: 3318 adds r3, #24
800310a: 4a21 ldr r2, [pc, #132] ; (8003190 <DoKeyUP+0x494>)
800310c: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
800310e: 4b12 ldr r3, [pc, #72] ; (8003158 <DoKeyUP+0x45c>)
8003110: 681b ldr r3, [r3, #0]
8003112: 4a12 ldr r2, [pc, #72] ; (800315c <DoKeyUP+0x460>)
8003114: 015b lsls r3, r3, #5
8003116: 4413 add r3, r2
8003118: 3318 adds r3, #24
800311a: edd3 7a00 vldr s15, [r3]
800311e: ed9f 7a10 vldr s14, [pc, #64] ; 8003160 <DoKeyUP+0x464>
8003122: eef4 7ac7 vcmpe.f32 s15, s14
8003126: eef1 fa10 vmrs APSR_nzcv, fpscr
800312a: db07 blt.n 800313c <DoKeyUP+0x440>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
800312c: 4b0a ldr r3, [pc, #40] ; (8003158 <DoKeyUP+0x45c>)
800312e: 681b ldr r3, [r3, #0]
8003130: 4a0a ldr r2, [pc, #40] ; (800315c <DoKeyUP+0x460>)
8003132: 015b lsls r3, r3, #5
8003134: 4413 add r3, r2
8003136: 3318 adds r3, #24
8003138: 4a0a ldr r2, [pc, #40] ; (8003164 <DoKeyUP+0x468>)
800313a: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
800313c: 4b06 ldr r3, [pc, #24] ; (8003158 <DoKeyUP+0x45c>)
800313e: 681b ldr r3, [r3, #0]
8003140: 4a06 ldr r2, [pc, #24] ; (800315c <DoKeyUP+0x460>)
8003142: 015b lsls r3, r3, #5
8003144: 4413 add r3, r2
8003146: 3318 adds r3, #24
8003148: edd3 7a00 vldr s15, [r3]
800314c: eeb0 0a67 vmov.f32 s0, s15
8003150: f001 fb20 bl 8004794 <VerifyGain>
8003154: f000 bc60 b.w 8003a18 <DoKeyUP+0xd1c>
8003158: 2006ba68 .word 0x2006ba68
800315c: 2006bca8 .word 0x2006bca8
8003160: 47c35000 .word 0x47c35000
8003164: 47c34f80 .word 0x47c34f80
8003168: 0001869f .word 0x0001869f
800316c: d1b71759 .word 0xd1b71759
8003170: 10624dd3 .word 0x10624dd3
8003174: 51eb851f .word 0x51eb851f
8003178: cccccccd .word 0xcccccccd
800317c: 20020010 .word 0x20020010
8003180: 3dcccccd .word 0x3dcccccd
8003184: 3c23d70a .word 0x3c23d70a
8003188: 3a83126f .word 0x3a83126f
800318c: 38d1b717 .word 0x38d1b717
8003190: 38d1b717 .word 0x38d1b717
}
else
if(menupos == Kikt_1 || menupos == Kikt_2 || menupos == Kikt_3 || menupos == Kikt_4)
8003194: 4baa ldr r3, [pc, #680] ; (8003440 <DoKeyUP+0x744>)
8003196: 781b ldrb r3, [r3, #0]
8003198: b2db uxtb r3, r3
800319a: 2b03 cmp r3, #3
800319c: d00f beq.n 80031be <DoKeyUP+0x4c2>
800319e: 4ba8 ldr r3, [pc, #672] ; (8003440 <DoKeyUP+0x744>)
80031a0: 781b ldrb r3, [r3, #0]
80031a2: b2db uxtb r3, r3
80031a4: 2b0b cmp r3, #11
80031a6: d00a beq.n 80031be <DoKeyUP+0x4c2>
80031a8: 4ba5 ldr r3, [pc, #660] ; (8003440 <DoKeyUP+0x744>)
80031aa: 781b ldrb r3, [r3, #0]
80031ac: b2db uxtb r3, r3
80031ae: 2b13 cmp r3, #19
80031b0: d005 beq.n 80031be <DoKeyUP+0x4c2>
80031b2: 4ba3 ldr r3, [pc, #652] ; (8003440 <DoKeyUP+0x744>)
80031b4: 781b ldrb r3, [r3, #0]
80031b6: b2db uxtb r3, r3
80031b8: 2b1b cmp r3, #27
80031ba: f040 80bd bne.w 8003338 <DoKeyUP+0x63c>
{
if(ikt < 9) {
80031be: 697b ldr r3, [r7, #20]
80031c0: 2b08 cmp r3, #8
80031c2: d802 bhi.n 80031ca <DoKeyUP+0x4ce>
ikt++;
80031c4: 697b ldr r3, [r7, #20]
80031c6: 3301 adds r3, #1
80031c8: 617b str r3, [r7, #20]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
80031ca: 69bb ldr r3, [r7, #24]
80031cc: f242 7210 movw r2, #10000 ; 0x2710
80031d0: fb02 f203 mul.w r2, r2, r3
80031d4: 697b ldr r3, [r7, #20]
80031d6: f44f 717a mov.w r1, #1000 ; 0x3e8
80031da: fb01 f303 mul.w r3, r1, r3
80031de: 18d1 adds r1, r2, r3
80031e0: 68fa ldr r2, [r7, #12]
80031e2: 4613 mov r3, r2
80031e4: 009b lsls r3, r3, #2
80031e6: 4413 add r3, r2
80031e8: 005b lsls r3, r3, #1
80031ea: 4618 mov r0, r3
80031ec: 693b ldr r3, [r7, #16]
80031ee: 2264 movs r2, #100 ; 0x64
80031f0: fb02 f303 mul.w r3, r2, r3
80031f4: 4403 add r3, r0
80031f6: 18ca adds r2, r1, r3
80031f8: 68bb ldr r3, [r7, #8]
80031fa: 4413 add r3, r2
80031fc: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
80031fe: 4b91 ldr r3, [pc, #580] ; (8003444 <DoKeyUP+0x748>)
8003200: 681b ldr r3, [r3, #0]
8003202: 69fa ldr r2, [r7, #28]
8003204: ee07 2a90 vmov s15, r2
8003208: eef8 7a67 vcvt.f32.u32 s15, s15
800320c: 4a8e ldr r2, [pc, #568] ; (8003448 <DoKeyUP+0x74c>)
800320e: 015b lsls r3, r3, #5
8003210: 4413 add r3, r2
8003212: 3318 adds r3, #24
8003214: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8003218: 687b ldr r3, [r7, #4]
800321a: 2b01 cmp r3, #1
800321c: d112 bne.n 8003244 <DoKeyUP+0x548>
800321e: 4b89 ldr r3, [pc, #548] ; (8003444 <DoKeyUP+0x748>)
8003220: 681b ldr r3, [r3, #0]
8003222: 4989 ldr r1, [pc, #548] ; (8003448 <DoKeyUP+0x74c>)
8003224: 015a lsls r2, r3, #5
8003226: 440a add r2, r1
8003228: 3218 adds r2, #24
800322a: edd2 7a00 vldr s15, [r2]
800322e: ed9f 7a87 vldr s14, [pc, #540] ; 800344c <DoKeyUP+0x750>
8003232: ee67 7a87 vmul.f32 s15, s15, s14
8003236: 4a84 ldr r2, [pc, #528] ; (8003448 <DoKeyUP+0x74c>)
8003238: 015b lsls r3, r3, #5
800323a: 4413 add r3, r2
800323c: 3318 adds r3, #24
800323e: edc3 7a00 vstr s15, [r3]
8003242: e040 b.n 80032c6 <DoKeyUP+0x5ca>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8003244: 687b ldr r3, [r7, #4]
8003246: 2b02 cmp r3, #2
8003248: d112 bne.n 8003270 <DoKeyUP+0x574>
800324a: 4b7e ldr r3, [pc, #504] ; (8003444 <DoKeyUP+0x748>)
800324c: 681b ldr r3, [r3, #0]
800324e: 497e ldr r1, [pc, #504] ; (8003448 <DoKeyUP+0x74c>)
8003250: 015a lsls r2, r3, #5
8003252: 440a add r2, r1
8003254: 3218 adds r2, #24
8003256: edd2 7a00 vldr s15, [r2]
800325a: ed9f 7a7d vldr s14, [pc, #500] ; 8003450 <DoKeyUP+0x754>
800325e: ee67 7a87 vmul.f32 s15, s15, s14
8003262: 4a79 ldr r2, [pc, #484] ; (8003448 <DoKeyUP+0x74c>)
8003264: 015b lsls r3, r3, #5
8003266: 4413 add r3, r2
8003268: 3318 adds r3, #24
800326a: edc3 7a00 vstr s15, [r3]
800326e: e02a b.n 80032c6 <DoKeyUP+0x5ca>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8003270: 687b ldr r3, [r7, #4]
8003272: 2b03 cmp r3, #3
8003274: d112 bne.n 800329c <DoKeyUP+0x5a0>
8003276: 4b73 ldr r3, [pc, #460] ; (8003444 <DoKeyUP+0x748>)
8003278: 681b ldr r3, [r3, #0]
800327a: 4973 ldr r1, [pc, #460] ; (8003448 <DoKeyUP+0x74c>)
800327c: 015a lsls r2, r3, #5
800327e: 440a add r2, r1
8003280: 3218 adds r2, #24
8003282: edd2 7a00 vldr s15, [r2]
8003286: ed9f 7a73 vldr s14, [pc, #460] ; 8003454 <DoKeyUP+0x758>
800328a: ee67 7a87 vmul.f32 s15, s15, s14
800328e: 4a6e ldr r2, [pc, #440] ; (8003448 <DoKeyUP+0x74c>)
8003290: 015b lsls r3, r3, #5
8003292: 4413 add r3, r2
8003294: 3318 adds r3, #24
8003296: edc3 7a00 vstr s15, [r3]
800329a: e014 b.n 80032c6 <DoKeyUP+0x5ca>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
800329c: 687b ldr r3, [r7, #4]
800329e: 2b04 cmp r3, #4
80032a0: d111 bne.n 80032c6 <DoKeyUP+0x5ca>
80032a2: 4b68 ldr r3, [pc, #416] ; (8003444 <DoKeyUP+0x748>)
80032a4: 681b ldr r3, [r3, #0]
80032a6: 4968 ldr r1, [pc, #416] ; (8003448 <DoKeyUP+0x74c>)
80032a8: 015a lsls r2, r3, #5
80032aa: 440a add r2, r1
80032ac: 3218 adds r2, #24
80032ae: edd2 7a00 vldr s15, [r2]
80032b2: ed9f 7a69 vldr s14, [pc, #420] ; 8003458 <DoKeyUP+0x75c>
80032b6: ee67 7a87 vmul.f32 s15, s15, s14
80032ba: 4a63 ldr r2, [pc, #396] ; (8003448 <DoKeyUP+0x74c>)
80032bc: 015b lsls r3, r3, #5
80032be: 4413 add r3, r2
80032c0: 3318 adds r3, #24
80032c2: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
80032c6: 4b5f ldr r3, [pc, #380] ; (8003444 <DoKeyUP+0x748>)
80032c8: 681b ldr r3, [r3, #0]
80032ca: 4a5f ldr r2, [pc, #380] ; (8003448 <DoKeyUP+0x74c>)
80032cc: 015b lsls r3, r3, #5
80032ce: 4413 add r3, r2
80032d0: 3318 adds r3, #24
80032d2: edd3 7a00 vldr s15, [r3]
80032d6: eef5 7ac0 vcmpe.f32 s15, #0.0
80032da: eef1 fa10 vmrs APSR_nzcv, fpscr
80032de: d807 bhi.n 80032f0 <DoKeyUP+0x5f4>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
80032e0: 4b58 ldr r3, [pc, #352] ; (8003444 <DoKeyUP+0x748>)
80032e2: 681b ldr r3, [r3, #0]
80032e4: 4a58 ldr r2, [pc, #352] ; (8003448 <DoKeyUP+0x74c>)
80032e6: 015b lsls r3, r3, #5
80032e8: 4413 add r3, r2
80032ea: 3318 adds r3, #24
80032ec: 4a5b ldr r2, [pc, #364] ; (800345c <DoKeyUP+0x760>)
80032ee: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
80032f0: 4b54 ldr r3, [pc, #336] ; (8003444 <DoKeyUP+0x748>)
80032f2: 681b ldr r3, [r3, #0]
80032f4: 4a54 ldr r2, [pc, #336] ; (8003448 <DoKeyUP+0x74c>)
80032f6: 015b lsls r3, r3, #5
80032f8: 4413 add r3, r2
80032fa: 3318 adds r3, #24
80032fc: edd3 7a00 vldr s15, [r3]
8003300: ed9f 7a57 vldr s14, [pc, #348] ; 8003460 <DoKeyUP+0x764>
8003304: eef4 7ac7 vcmpe.f32 s15, s14
8003308: eef1 fa10 vmrs APSR_nzcv, fpscr
800330c: db07 blt.n 800331e <DoKeyUP+0x622>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
800330e: 4b4d ldr r3, [pc, #308] ; (8003444 <DoKeyUP+0x748>)
8003310: 681b ldr r3, [r3, #0]
8003312: 4a4d ldr r2, [pc, #308] ; (8003448 <DoKeyUP+0x74c>)
8003314: 015b lsls r3, r3, #5
8003316: 4413 add r3, r2
8003318: 3318 adds r3, #24
800331a: 4a52 ldr r2, [pc, #328] ; (8003464 <DoKeyUP+0x768>)
800331c: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
800331e: 4b49 ldr r3, [pc, #292] ; (8003444 <DoKeyUP+0x748>)
8003320: 681b ldr r3, [r3, #0]
8003322: 4a49 ldr r2, [pc, #292] ; (8003448 <DoKeyUP+0x74c>)
8003324: 015b lsls r3, r3, #5
8003326: 4413 add r3, r2
8003328: 3318 adds r3, #24
800332a: edd3 7a00 vldr s15, [r3]
800332e: eeb0 0a67 vmov.f32 s0, s15
8003332: f001 fa2f bl 8004794 <VerifyGain>
8003336: e36f b.n 8003a18 <DoKeyUP+0xd1c>
}
else
if(menupos == Kiks_1 || menupos == Kiks_2 || menupos == Kiks_3 || menupos == Kiks_4)
8003338: 4b41 ldr r3, [pc, #260] ; (8003440 <DoKeyUP+0x744>)
800333a: 781b ldrb r3, [r3, #0]
800333c: b2db uxtb r3, r3
800333e: 2b04 cmp r3, #4
8003340: d00f beq.n 8003362 <DoKeyUP+0x666>
8003342: 4b3f ldr r3, [pc, #252] ; (8003440 <DoKeyUP+0x744>)
8003344: 781b ldrb r3, [r3, #0]
8003346: b2db uxtb r3, r3
8003348: 2b0c cmp r3, #12
800334a: d00a beq.n 8003362 <DoKeyUP+0x666>
800334c: 4b3c ldr r3, [pc, #240] ; (8003440 <DoKeyUP+0x744>)
800334e: 781b ldrb r3, [r3, #0]
8003350: b2db uxtb r3, r3
8003352: 2b14 cmp r3, #20
8003354: d005 beq.n 8003362 <DoKeyUP+0x666>
8003356: 4b3a ldr r3, [pc, #232] ; (8003440 <DoKeyUP+0x744>)
8003358: 781b ldrb r3, [r3, #0]
800335a: b2db uxtb r3, r3
800335c: 2b1c cmp r3, #28
800335e: f040 80d1 bne.w 8003504 <DoKeyUP+0x808>
{
if(iks < 9) {
8003362: 693b ldr r3, [r7, #16]
8003364: 2b08 cmp r3, #8
8003366: d802 bhi.n 800336e <DoKeyUP+0x672>
iks++;
8003368: 693b ldr r3, [r7, #16]
800336a: 3301 adds r3, #1
800336c: 613b str r3, [r7, #16]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
800336e: 69bb ldr r3, [r7, #24]
8003370: f242 7210 movw r2, #10000 ; 0x2710
8003374: fb02 f203 mul.w r2, r2, r3
8003378: 697b ldr r3, [r7, #20]
800337a: f44f 717a mov.w r1, #1000 ; 0x3e8
800337e: fb01 f303 mul.w r3, r1, r3
8003382: 18d1 adds r1, r2, r3
8003384: 68fa ldr r2, [r7, #12]
8003386: 4613 mov r3, r2
8003388: 009b lsls r3, r3, #2
800338a: 4413 add r3, r2
800338c: 005b lsls r3, r3, #1
800338e: 4618 mov r0, r3
8003390: 693b ldr r3, [r7, #16]
8003392: 2264 movs r2, #100 ; 0x64
8003394: fb02 f303 mul.w r3, r2, r3
8003398: 4403 add r3, r0
800339a: 18ca adds r2, r1, r3
800339c: 68bb ldr r3, [r7, #8]
800339e: 4413 add r3, r2
80033a0: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
80033a2: 4b28 ldr r3, [pc, #160] ; (8003444 <DoKeyUP+0x748>)
80033a4: 681b ldr r3, [r3, #0]
80033a6: 69fa ldr r2, [r7, #28]
80033a8: ee07 2a90 vmov s15, r2
80033ac: eef8 7a67 vcvt.f32.u32 s15, s15
80033b0: 4a25 ldr r2, [pc, #148] ; (8003448 <DoKeyUP+0x74c>)
80033b2: 015b lsls r3, r3, #5
80033b4: 4413 add r3, r2
80033b6: 3318 adds r3, #24
80033b8: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
80033bc: 687b ldr r3, [r7, #4]
80033be: 2b01 cmp r3, #1
80033c0: d112 bne.n 80033e8 <DoKeyUP+0x6ec>
80033c2: 4b20 ldr r3, [pc, #128] ; (8003444 <DoKeyUP+0x748>)
80033c4: 681b ldr r3, [r3, #0]
80033c6: 4920 ldr r1, [pc, #128] ; (8003448 <DoKeyUP+0x74c>)
80033c8: 015a lsls r2, r3, #5
80033ca: 440a add r2, r1
80033cc: 3218 adds r2, #24
80033ce: edd2 7a00 vldr s15, [r2]
80033d2: ed9f 7a1e vldr s14, [pc, #120] ; 800344c <DoKeyUP+0x750>
80033d6: ee67 7a87 vmul.f32 s15, s15, s14
80033da: 4a1b ldr r2, [pc, #108] ; (8003448 <DoKeyUP+0x74c>)
80033dc: 015b lsls r3, r3, #5
80033de: 4413 add r3, r2
80033e0: 3318 adds r3, #24
80033e2: edc3 7a00 vstr s15, [r3]
80033e6: e054 b.n 8003492 <DoKeyUP+0x796>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
80033e8: 687b ldr r3, [r7, #4]
80033ea: 2b02 cmp r3, #2
80033ec: d112 bne.n 8003414 <DoKeyUP+0x718>
80033ee: 4b15 ldr r3, [pc, #84] ; (8003444 <DoKeyUP+0x748>)
80033f0: 681b ldr r3, [r3, #0]
80033f2: 4915 ldr r1, [pc, #84] ; (8003448 <DoKeyUP+0x74c>)
80033f4: 015a lsls r2, r3, #5
80033f6: 440a add r2, r1
80033f8: 3218 adds r2, #24
80033fa: edd2 7a00 vldr s15, [r2]
80033fe: ed9f 7a14 vldr s14, [pc, #80] ; 8003450 <DoKeyUP+0x754>
8003402: ee67 7a87 vmul.f32 s15, s15, s14
8003406: 4a10 ldr r2, [pc, #64] ; (8003448 <DoKeyUP+0x74c>)
8003408: 015b lsls r3, r3, #5
800340a: 4413 add r3, r2
800340c: 3318 adds r3, #24
800340e: edc3 7a00 vstr s15, [r3]
8003412: e03e b.n 8003492 <DoKeyUP+0x796>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8003414: 687b ldr r3, [r7, #4]
8003416: 2b03 cmp r3, #3
8003418: d126 bne.n 8003468 <DoKeyUP+0x76c>
800341a: 4b0a ldr r3, [pc, #40] ; (8003444 <DoKeyUP+0x748>)
800341c: 681b ldr r3, [r3, #0]
800341e: 490a ldr r1, [pc, #40] ; (8003448 <DoKeyUP+0x74c>)
8003420: 015a lsls r2, r3, #5
8003422: 440a add r2, r1
8003424: 3218 adds r2, #24
8003426: edd2 7a00 vldr s15, [r2]
800342a: ed9f 7a0a vldr s14, [pc, #40] ; 8003454 <DoKeyUP+0x758>
800342e: ee67 7a87 vmul.f32 s15, s15, s14
8003432: 4a05 ldr r2, [pc, #20] ; (8003448 <DoKeyUP+0x74c>)
8003434: 015b lsls r3, r3, #5
8003436: 4413 add r3, r2
8003438: 3318 adds r3, #24
800343a: edc3 7a00 vstr s15, [r3]
800343e: e028 b.n 8003492 <DoKeyUP+0x796>
8003440: 20020010 .word 0x20020010
8003444: 2006ba68 .word 0x2006ba68
8003448: 2006bca8 .word 0x2006bca8
800344c: 3dcccccd .word 0x3dcccccd
8003450: 3c23d70a .word 0x3c23d70a
8003454: 3a83126f .word 0x3a83126f
8003458: 38d1b717 .word 0x38d1b717
800345c: 38d1b717 .word 0x38d1b717
8003460: 47c35000 .word 0x47c35000
8003464: 47c34f80 .word 0x47c34f80
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8003468: 687b ldr r3, [r7, #4]
800346a: 2b04 cmp r3, #4
800346c: d111 bne.n 8003492 <DoKeyUP+0x796>
800346e: 4bba ldr r3, [pc, #744] ; (8003758 <DoKeyUP+0xa5c>)
8003470: 681b ldr r3, [r3, #0]
8003472: 49ba ldr r1, [pc, #744] ; (800375c <DoKeyUP+0xa60>)
8003474: 015a lsls r2, r3, #5
8003476: 440a add r2, r1
8003478: 3218 adds r2, #24
800347a: edd2 7a00 vldr s15, [r2]
800347e: ed9f 7ab8 vldr s14, [pc, #736] ; 8003760 <DoKeyUP+0xa64>
8003482: ee67 7a87 vmul.f32 s15, s15, s14
8003486: 4ab5 ldr r2, [pc, #724] ; (800375c <DoKeyUP+0xa60>)
8003488: 015b lsls r3, r3, #5
800348a: 4413 add r3, r2
800348c: 3318 adds r3, #24
800348e: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
8003492: 4bb1 ldr r3, [pc, #708] ; (8003758 <DoKeyUP+0xa5c>)
8003494: 681b ldr r3, [r3, #0]
8003496: 4ab1 ldr r2, [pc, #708] ; (800375c <DoKeyUP+0xa60>)
8003498: 015b lsls r3, r3, #5
800349a: 4413 add r3, r2
800349c: 3318 adds r3, #24
800349e: edd3 7a00 vldr s15, [r3]
80034a2: eef5 7ac0 vcmpe.f32 s15, #0.0
80034a6: eef1 fa10 vmrs APSR_nzcv, fpscr
80034aa: d807 bhi.n 80034bc <DoKeyUP+0x7c0>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
80034ac: 4baa ldr r3, [pc, #680] ; (8003758 <DoKeyUP+0xa5c>)
80034ae: 681b ldr r3, [r3, #0]
80034b0: 4aaa ldr r2, [pc, #680] ; (800375c <DoKeyUP+0xa60>)
80034b2: 015b lsls r3, r3, #5
80034b4: 4413 add r3, r2
80034b6: 3318 adds r3, #24
80034b8: 4aaa ldr r2, [pc, #680] ; (8003764 <DoKeyUP+0xa68>)
80034ba: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
80034bc: 4ba6 ldr r3, [pc, #664] ; (8003758 <DoKeyUP+0xa5c>)
80034be: 681b ldr r3, [r3, #0]
80034c0: 4aa6 ldr r2, [pc, #664] ; (800375c <DoKeyUP+0xa60>)
80034c2: 015b lsls r3, r3, #5
80034c4: 4413 add r3, r2
80034c6: 3318 adds r3, #24
80034c8: edd3 7a00 vldr s15, [r3]
80034cc: ed9f 7aa6 vldr s14, [pc, #664] ; 8003768 <DoKeyUP+0xa6c>
80034d0: eef4 7ac7 vcmpe.f32 s15, s14
80034d4: eef1 fa10 vmrs APSR_nzcv, fpscr
80034d8: db07 blt.n 80034ea <DoKeyUP+0x7ee>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
80034da: 4b9f ldr r3, [pc, #636] ; (8003758 <DoKeyUP+0xa5c>)
80034dc: 681b ldr r3, [r3, #0]
80034de: 4a9f ldr r2, [pc, #636] ; (800375c <DoKeyUP+0xa60>)
80034e0: 015b lsls r3, r3, #5
80034e2: 4413 add r3, r2
80034e4: 3318 adds r3, #24
80034e6: 4aa1 ldr r2, [pc, #644] ; (800376c <DoKeyUP+0xa70>)
80034e8: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
80034ea: 4b9b ldr r3, [pc, #620] ; (8003758 <DoKeyUP+0xa5c>)
80034ec: 681b ldr r3, [r3, #0]
80034ee: 4a9b ldr r2, [pc, #620] ; (800375c <DoKeyUP+0xa60>)
80034f0: 015b lsls r3, r3, #5
80034f2: 4413 add r3, r2
80034f4: 3318 adds r3, #24
80034f6: edd3 7a00 vldr s15, [r3]
80034fa: eeb0 0a67 vmov.f32 s0, s15
80034fe: f001 f949 bl 8004794 <VerifyGain>
8003502: e289 b.n 8003a18 <DoKeyUP+0xd1c>
}
else
if(menupos == Kikd_1 || menupos == Kikd_2 || menupos == Kikd_3 || menupos == Kikd_4)
8003504: 4b9a ldr r3, [pc, #616] ; (8003770 <DoKeyUP+0xa74>)
8003506: 781b ldrb r3, [r3, #0]
8003508: b2db uxtb r3, r3
800350a: 2b05 cmp r3, #5
800350c: d00f beq.n 800352e <DoKeyUP+0x832>
800350e: 4b98 ldr r3, [pc, #608] ; (8003770 <DoKeyUP+0xa74>)
8003510: 781b ldrb r3, [r3, #0]
8003512: b2db uxtb r3, r3
8003514: 2b0d cmp r3, #13
8003516: d00a beq.n 800352e <DoKeyUP+0x832>
8003518: 4b95 ldr r3, [pc, #596] ; (8003770 <DoKeyUP+0xa74>)
800351a: 781b ldrb r3, [r3, #0]
800351c: b2db uxtb r3, r3
800351e: 2b15 cmp r3, #21
8003520: d005 beq.n 800352e <DoKeyUP+0x832>
8003522: 4b93 ldr r3, [pc, #588] ; (8003770 <DoKeyUP+0xa74>)
8003524: 781b ldrb r3, [r3, #0]
8003526: b2db uxtb r3, r3
8003528: 2b1d cmp r3, #29
800352a: f040 80bd bne.w 80036a8 <DoKeyUP+0x9ac>
{
if(ikd < 9) {
800352e: 68fb ldr r3, [r7, #12]
8003530: 2b08 cmp r3, #8
8003532: d802 bhi.n 800353a <DoKeyUP+0x83e>
ikd++;
8003534: 68fb ldr r3, [r7, #12]
8003536: 3301 adds r3, #1
8003538: 60fb str r3, [r7, #12]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
800353a: 69bb ldr r3, [r7, #24]
800353c: f242 7210 movw r2, #10000 ; 0x2710
8003540: fb02 f203 mul.w r2, r2, r3
8003544: 697b ldr r3, [r7, #20]
8003546: f44f 717a mov.w r1, #1000 ; 0x3e8
800354a: fb01 f303 mul.w r3, r1, r3
800354e: 18d1 adds r1, r2, r3
8003550: 68fa ldr r2, [r7, #12]
8003552: 4613 mov r3, r2
8003554: 009b lsls r3, r3, #2
8003556: 4413 add r3, r2
8003558: 005b lsls r3, r3, #1
800355a: 4618 mov r0, r3
800355c: 693b ldr r3, [r7, #16]
800355e: 2264 movs r2, #100 ; 0x64
8003560: fb02 f303 mul.w r3, r2, r3
8003564: 4403 add r3, r0
8003566: 18ca adds r2, r1, r3
8003568: 68bb ldr r3, [r7, #8]
800356a: 4413 add r3, r2
800356c: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
800356e: 4b7a ldr r3, [pc, #488] ; (8003758 <DoKeyUP+0xa5c>)
8003570: 681b ldr r3, [r3, #0]
8003572: 69fa ldr r2, [r7, #28]
8003574: ee07 2a90 vmov s15, r2
8003578: eef8 7a67 vcvt.f32.u32 s15, s15
800357c: 4a77 ldr r2, [pc, #476] ; (800375c <DoKeyUP+0xa60>)
800357e: 015b lsls r3, r3, #5
8003580: 4413 add r3, r2
8003582: 3318 adds r3, #24
8003584: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8003588: 687b ldr r3, [r7, #4]
800358a: 2b01 cmp r3, #1
800358c: d112 bne.n 80035b4 <DoKeyUP+0x8b8>
800358e: 4b72 ldr r3, [pc, #456] ; (8003758 <DoKeyUP+0xa5c>)
8003590: 681b ldr r3, [r3, #0]
8003592: 4972 ldr r1, [pc, #456] ; (800375c <DoKeyUP+0xa60>)
8003594: 015a lsls r2, r3, #5
8003596: 440a add r2, r1
8003598: 3218 adds r2, #24
800359a: edd2 7a00 vldr s15, [r2]
800359e: ed9f 7a75 vldr s14, [pc, #468] ; 8003774 <DoKeyUP+0xa78>
80035a2: ee67 7a87 vmul.f32 s15, s15, s14
80035a6: 4a6d ldr r2, [pc, #436] ; (800375c <DoKeyUP+0xa60>)
80035a8: 015b lsls r3, r3, #5
80035aa: 4413 add r3, r2
80035ac: 3318 adds r3, #24
80035ae: edc3 7a00 vstr s15, [r3]
80035b2: e040 b.n 8003636 <DoKeyUP+0x93a>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
80035b4: 687b ldr r3, [r7, #4]
80035b6: 2b02 cmp r3, #2
80035b8: d112 bne.n 80035e0 <DoKeyUP+0x8e4>
80035ba: 4b67 ldr r3, [pc, #412] ; (8003758 <DoKeyUP+0xa5c>)
80035bc: 681b ldr r3, [r3, #0]
80035be: 4967 ldr r1, [pc, #412] ; (800375c <DoKeyUP+0xa60>)
80035c0: 015a lsls r2, r3, #5
80035c2: 440a add r2, r1
80035c4: 3218 adds r2, #24
80035c6: edd2 7a00 vldr s15, [r2]
80035ca: ed9f 7a6b vldr s14, [pc, #428] ; 8003778 <DoKeyUP+0xa7c>
80035ce: ee67 7a87 vmul.f32 s15, s15, s14
80035d2: 4a62 ldr r2, [pc, #392] ; (800375c <DoKeyUP+0xa60>)
80035d4: 015b lsls r3, r3, #5
80035d6: 4413 add r3, r2
80035d8: 3318 adds r3, #24
80035da: edc3 7a00 vstr s15, [r3]
80035de: e02a b.n 8003636 <DoKeyUP+0x93a>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
80035e0: 687b ldr r3, [r7, #4]
80035e2: 2b03 cmp r3, #3
80035e4: d112 bne.n 800360c <DoKeyUP+0x910>
80035e6: 4b5c ldr r3, [pc, #368] ; (8003758 <DoKeyUP+0xa5c>)
80035e8: 681b ldr r3, [r3, #0]
80035ea: 495c ldr r1, [pc, #368] ; (800375c <DoKeyUP+0xa60>)
80035ec: 015a lsls r2, r3, #5
80035ee: 440a add r2, r1
80035f0: 3218 adds r2, #24
80035f2: edd2 7a00 vldr s15, [r2]
80035f6: ed9f 7a61 vldr s14, [pc, #388] ; 800377c <DoKeyUP+0xa80>
80035fa: ee67 7a87 vmul.f32 s15, s15, s14
80035fe: 4a57 ldr r2, [pc, #348] ; (800375c <DoKeyUP+0xa60>)
8003600: 015b lsls r3, r3, #5
8003602: 4413 add r3, r2
8003604: 3318 adds r3, #24
8003606: edc3 7a00 vstr s15, [r3]
800360a: e014 b.n 8003636 <DoKeyUP+0x93a>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
800360c: 687b ldr r3, [r7, #4]
800360e: 2b04 cmp r3, #4
8003610: d111 bne.n 8003636 <DoKeyUP+0x93a>
8003612: 4b51 ldr r3, [pc, #324] ; (8003758 <DoKeyUP+0xa5c>)
8003614: 681b ldr r3, [r3, #0]
8003616: 4951 ldr r1, [pc, #324] ; (800375c <DoKeyUP+0xa60>)
8003618: 015a lsls r2, r3, #5
800361a: 440a add r2, r1
800361c: 3218 adds r2, #24
800361e: edd2 7a00 vldr s15, [r2]
8003622: ed9f 7a4f vldr s14, [pc, #316] ; 8003760 <DoKeyUP+0xa64>
8003626: ee67 7a87 vmul.f32 s15, s15, s14
800362a: 4a4c ldr r2, [pc, #304] ; (800375c <DoKeyUP+0xa60>)
800362c: 015b lsls r3, r3, #5
800362e: 4413 add r3, r2
8003630: 3318 adds r3, #24
8003632: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
8003636: 4b48 ldr r3, [pc, #288] ; (8003758 <DoKeyUP+0xa5c>)
8003638: 681b ldr r3, [r3, #0]
800363a: 4a48 ldr r2, [pc, #288] ; (800375c <DoKeyUP+0xa60>)
800363c: 015b lsls r3, r3, #5
800363e: 4413 add r3, r2
8003640: 3318 adds r3, #24
8003642: edd3 7a00 vldr s15, [r3]
8003646: eef5 7ac0 vcmpe.f32 s15, #0.0
800364a: eef1 fa10 vmrs APSR_nzcv, fpscr
800364e: d807 bhi.n 8003660 <DoKeyUP+0x964>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
8003650: 4b41 ldr r3, [pc, #260] ; (8003758 <DoKeyUP+0xa5c>)
8003652: 681b ldr r3, [r3, #0]
8003654: 4a41 ldr r2, [pc, #260] ; (800375c <DoKeyUP+0xa60>)
8003656: 015b lsls r3, r3, #5
8003658: 4413 add r3, r2
800365a: 3318 adds r3, #24
800365c: 4a41 ldr r2, [pc, #260] ; (8003764 <DoKeyUP+0xa68>)
800365e: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8003660: 4b3d ldr r3, [pc, #244] ; (8003758 <DoKeyUP+0xa5c>)
8003662: 681b ldr r3, [r3, #0]
8003664: 4a3d ldr r2, [pc, #244] ; (800375c <DoKeyUP+0xa60>)
8003666: 015b lsls r3, r3, #5
8003668: 4413 add r3, r2
800366a: 3318 adds r3, #24
800366c: edd3 7a00 vldr s15, [r3]
8003670: ed9f 7a3d vldr s14, [pc, #244] ; 8003768 <DoKeyUP+0xa6c>
8003674: eef4 7ac7 vcmpe.f32 s15, s14
8003678: eef1 fa10 vmrs APSR_nzcv, fpscr
800367c: db07 blt.n 800368e <DoKeyUP+0x992>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
800367e: 4b36 ldr r3, [pc, #216] ; (8003758 <DoKeyUP+0xa5c>)
8003680: 681b ldr r3, [r3, #0]
8003682: 4a36 ldr r2, [pc, #216] ; (800375c <DoKeyUP+0xa60>)
8003684: 015b lsls r3, r3, #5
8003686: 4413 add r3, r2
8003688: 3318 adds r3, #24
800368a: 4a38 ldr r2, [pc, #224] ; (800376c <DoKeyUP+0xa70>)
800368c: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
800368e: 4b32 ldr r3, [pc, #200] ; (8003758 <DoKeyUP+0xa5c>)
8003690: 681b ldr r3, [r3, #0]
8003692: 4a32 ldr r2, [pc, #200] ; (800375c <DoKeyUP+0xa60>)
8003694: 015b lsls r3, r3, #5
8003696: 4413 add r3, r2
8003698: 3318 adds r3, #24
800369a: edd3 7a00 vldr s15, [r3]
800369e: eeb0 0a67 vmov.f32 s0, s15
80036a2: f001 f877 bl 8004794 <VerifyGain>
80036a6: e1b7 b.n 8003a18 <DoKeyUP+0xd1c>
}
else
if(menupos == Kike_1 || menupos == Kike_2 || menupos == Kike_3 || menupos == Kike_4)
80036a8: 4b31 ldr r3, [pc, #196] ; (8003770 <DoKeyUP+0xa74>)
80036aa: 781b ldrb r3, [r3, #0]
80036ac: b2db uxtb r3, r3
80036ae: 2b06 cmp r3, #6
80036b0: d00f beq.n 80036d2 <DoKeyUP+0x9d6>
80036b2: 4b2f ldr r3, [pc, #188] ; (8003770 <DoKeyUP+0xa74>)
80036b4: 781b ldrb r3, [r3, #0]
80036b6: b2db uxtb r3, r3
80036b8: 2b0e cmp r3, #14
80036ba: d00a beq.n 80036d2 <DoKeyUP+0x9d6>
80036bc: 4b2c ldr r3, [pc, #176] ; (8003770 <DoKeyUP+0xa74>)
80036be: 781b ldrb r3, [r3, #0]
80036c0: b2db uxtb r3, r3
80036c2: 2b16 cmp r3, #22
80036c4: d005 beq.n 80036d2 <DoKeyUP+0x9d6>
80036c6: 4b2a ldr r3, [pc, #168] ; (8003770 <DoKeyUP+0xa74>)
80036c8: 781b ldrb r3, [r3, #0]
80036ca: b2db uxtb r3, r3
80036cc: 2b1e cmp r3, #30
80036ce: f040 80d1 bne.w 8003874 <DoKeyUP+0xb78>
{
if(ike < 9) {
80036d2: 68bb ldr r3, [r7, #8]
80036d4: 2b08 cmp r3, #8
80036d6: d802 bhi.n 80036de <DoKeyUP+0x9e2>
ike++;
80036d8: 68bb ldr r3, [r7, #8]
80036da: 3301 adds r3, #1
80036dc: 60bb str r3, [r7, #8]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
80036de: 69bb ldr r3, [r7, #24]
80036e0: f242 7210 movw r2, #10000 ; 0x2710
80036e4: fb02 f203 mul.w r2, r2, r3
80036e8: 697b ldr r3, [r7, #20]
80036ea: f44f 717a mov.w r1, #1000 ; 0x3e8
80036ee: fb01 f303 mul.w r3, r1, r3
80036f2: 18d1 adds r1, r2, r3
80036f4: 68fa ldr r2, [r7, #12]
80036f6: 4613 mov r3, r2
80036f8: 009b lsls r3, r3, #2
80036fa: 4413 add r3, r2
80036fc: 005b lsls r3, r3, #1
80036fe: 4618 mov r0, r3
8003700: 693b ldr r3, [r7, #16]
8003702: 2264 movs r2, #100 ; 0x64
8003704: fb02 f303 mul.w r3, r2, r3
8003708: 4403 add r3, r0
800370a: 18ca adds r2, r1, r3
800370c: 68bb ldr r3, [r7, #8]
800370e: 4413 add r3, r2
8003710: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
8003712: 4b11 ldr r3, [pc, #68] ; (8003758 <DoKeyUP+0xa5c>)
8003714: 681b ldr r3, [r3, #0]
8003716: 69fa ldr r2, [r7, #28]
8003718: ee07 2a90 vmov s15, r2
800371c: eef8 7a67 vcvt.f32.u32 s15, s15
8003720: 4a0e ldr r2, [pc, #56] ; (800375c <DoKeyUP+0xa60>)
8003722: 015b lsls r3, r3, #5
8003724: 4413 add r3, r2
8003726: 3318 adds r3, #24
8003728: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
800372c: 687b ldr r3, [r7, #4]
800372e: 2b01 cmp r3, #1
8003730: d126 bne.n 8003780 <DoKeyUP+0xa84>
8003732: 4b09 ldr r3, [pc, #36] ; (8003758 <DoKeyUP+0xa5c>)
8003734: 681b ldr r3, [r3, #0]
8003736: 4909 ldr r1, [pc, #36] ; (800375c <DoKeyUP+0xa60>)
8003738: 015a lsls r2, r3, #5
800373a: 440a add r2, r1
800373c: 3218 adds r2, #24
800373e: edd2 7a00 vldr s15, [r2]
8003742: ed9f 7a0c vldr s14, [pc, #48] ; 8003774 <DoKeyUP+0xa78>
8003746: ee67 7a87 vmul.f32 s15, s15, s14
800374a: 4a04 ldr r2, [pc, #16] ; (800375c <DoKeyUP+0xa60>)
800374c: 015b lsls r3, r3, #5
800374e: 4413 add r3, r2
8003750: 3318 adds r3, #24
8003752: edc3 7a00 vstr s15, [r3]
8003756: e054 b.n 8003802 <DoKeyUP+0xb06>
8003758: 2006ba68 .word 0x2006ba68
800375c: 2006bca8 .word 0x2006bca8
8003760: 38d1b717 .word 0x38d1b717
8003764: 38d1b717 .word 0x38d1b717
8003768: 47c35000 .word 0x47c35000
800376c: 47c34f80 .word 0x47c34f80
8003770: 20020010 .word 0x20020010
8003774: 3dcccccd .word 0x3dcccccd
8003778: 3c23d70a .word 0x3c23d70a
800377c: 3a83126f .word 0x3a83126f
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8003780: 687b ldr r3, [r7, #4]
8003782: 2b02 cmp r3, #2
8003784: d112 bne.n 80037ac <DoKeyUP+0xab0>
8003786: 4ba6 ldr r3, [pc, #664] ; (8003a20 <DoKeyUP+0xd24>)
8003788: 681b ldr r3, [r3, #0]
800378a: 49a6 ldr r1, [pc, #664] ; (8003a24 <DoKeyUP+0xd28>)
800378c: 015a lsls r2, r3, #5
800378e: 440a add r2, r1
8003790: 3218 adds r2, #24
8003792: edd2 7a00 vldr s15, [r2]
8003796: ed9f 7aa4 vldr s14, [pc, #656] ; 8003a28 <DoKeyUP+0xd2c>
800379a: ee67 7a87 vmul.f32 s15, s15, s14
800379e: 4aa1 ldr r2, [pc, #644] ; (8003a24 <DoKeyUP+0xd28>)
80037a0: 015b lsls r3, r3, #5
80037a2: 4413 add r3, r2
80037a4: 3318 adds r3, #24
80037a6: edc3 7a00 vstr s15, [r3]
80037aa: e02a b.n 8003802 <DoKeyUP+0xb06>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
80037ac: 687b ldr r3, [r7, #4]
80037ae: 2b03 cmp r3, #3
80037b0: d112 bne.n 80037d8 <DoKeyUP+0xadc>
80037b2: 4b9b ldr r3, [pc, #620] ; (8003a20 <DoKeyUP+0xd24>)
80037b4: 681b ldr r3, [r3, #0]
80037b6: 499b ldr r1, [pc, #620] ; (8003a24 <DoKeyUP+0xd28>)
80037b8: 015a lsls r2, r3, #5
80037ba: 440a add r2, r1
80037bc: 3218 adds r2, #24
80037be: edd2 7a00 vldr s15, [r2]
80037c2: ed9f 7a9a vldr s14, [pc, #616] ; 8003a2c <DoKeyUP+0xd30>
80037c6: ee67 7a87 vmul.f32 s15, s15, s14
80037ca: 4a96 ldr r2, [pc, #600] ; (8003a24 <DoKeyUP+0xd28>)
80037cc: 015b lsls r3, r3, #5
80037ce: 4413 add r3, r2
80037d0: 3318 adds r3, #24
80037d2: edc3 7a00 vstr s15, [r3]
80037d6: e014 b.n 8003802 <DoKeyUP+0xb06>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
80037d8: 687b ldr r3, [r7, #4]
80037da: 2b04 cmp r3, #4
80037dc: d111 bne.n 8003802 <DoKeyUP+0xb06>
80037de: 4b90 ldr r3, [pc, #576] ; (8003a20 <DoKeyUP+0xd24>)
80037e0: 681b ldr r3, [r3, #0]
80037e2: 4990 ldr r1, [pc, #576] ; (8003a24 <DoKeyUP+0xd28>)
80037e4: 015a lsls r2, r3, #5
80037e6: 440a add r2, r1
80037e8: 3218 adds r2, #24
80037ea: edd2 7a00 vldr s15, [r2]
80037ee: ed9f 7a90 vldr s14, [pc, #576] ; 8003a30 <DoKeyUP+0xd34>
80037f2: ee67 7a87 vmul.f32 s15, s15, s14
80037f6: 4a8b ldr r2, [pc, #556] ; (8003a24 <DoKeyUP+0xd28>)
80037f8: 015b lsls r3, r3, #5
80037fa: 4413 add r3, r2
80037fc: 3318 adds r3, #24
80037fe: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
8003802: 4b87 ldr r3, [pc, #540] ; (8003a20 <DoKeyUP+0xd24>)
8003804: 681b ldr r3, [r3, #0]
8003806: 4a87 ldr r2, [pc, #540] ; (8003a24 <DoKeyUP+0xd28>)
8003808: 015b lsls r3, r3, #5
800380a: 4413 add r3, r2
800380c: 3318 adds r3, #24
800380e: edd3 7a00 vldr s15, [r3]
8003812: eef5 7ac0 vcmpe.f32 s15, #0.0
8003816: eef1 fa10 vmrs APSR_nzcv, fpscr
800381a: d807 bhi.n 800382c <DoKeyUP+0xb30>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
800381c: 4b80 ldr r3, [pc, #512] ; (8003a20 <DoKeyUP+0xd24>)
800381e: 681b ldr r3, [r3, #0]
8003820: 4a80 ldr r2, [pc, #512] ; (8003a24 <DoKeyUP+0xd28>)
8003822: 015b lsls r3, r3, #5
8003824: 4413 add r3, r2
8003826: 3318 adds r3, #24
8003828: 4a82 ldr r2, [pc, #520] ; (8003a34 <DoKeyUP+0xd38>)
800382a: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
800382c: 4b7c ldr r3, [pc, #496] ; (8003a20 <DoKeyUP+0xd24>)
800382e: 681b ldr r3, [r3, #0]
8003830: 4a7c ldr r2, [pc, #496] ; (8003a24 <DoKeyUP+0xd28>)
8003832: 015b lsls r3, r3, #5
8003834: 4413 add r3, r2
8003836: 3318 adds r3, #24
8003838: edd3 7a00 vldr s15, [r3]
800383c: ed9f 7a7e vldr s14, [pc, #504] ; 8003a38 <DoKeyUP+0xd3c>
8003840: eef4 7ac7 vcmpe.f32 s15, s14
8003844: eef1 fa10 vmrs APSR_nzcv, fpscr
8003848: db07 blt.n 800385a <DoKeyUP+0xb5e>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
800384a: 4b75 ldr r3, [pc, #468] ; (8003a20 <DoKeyUP+0xd24>)
800384c: 681b ldr r3, [r3, #0]
800384e: 4a75 ldr r2, [pc, #468] ; (8003a24 <DoKeyUP+0xd28>)
8003850: 015b lsls r3, r3, #5
8003852: 4413 add r3, r2
8003854: 3318 adds r3, #24
8003856: 4a79 ldr r2, [pc, #484] ; (8003a3c <DoKeyUP+0xd40>)
8003858: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
800385a: 4b71 ldr r3, [pc, #452] ; (8003a20 <DoKeyUP+0xd24>)
800385c: 681b ldr r3, [r3, #0]
800385e: 4a71 ldr r2, [pc, #452] ; (8003a24 <DoKeyUP+0xd28>)
8003860: 015b lsls r3, r3, #5
8003862: 4413 add r3, r2
8003864: 3318 adds r3, #24
8003866: edd3 7a00 vldr s15, [r3]
800386a: eeb0 0a67 vmov.f32 s0, s15
800386e: f000 ff91 bl 8004794 <VerifyGain>
8003872: e0d1 b.n 8003a18 <DoKeyUP+0xd1c>
}
else
if(menupos == Kpt_1 || menupos == Kpt_2 || menupos == Kpt_3 || menupos == Kpt_4)
8003874: 4b72 ldr r3, [pc, #456] ; (8003a40 <DoKeyUP+0xd44>)
8003876: 781b ldrb r3, [r3, #0]
8003878: b2db uxtb r3, r3
800387a: 2b07 cmp r3, #7
800387c: d00f beq.n 800389e <DoKeyUP+0xba2>
800387e: 4b70 ldr r3, [pc, #448] ; (8003a40 <DoKeyUP+0xd44>)
8003880: 781b ldrb r3, [r3, #0]
8003882: b2db uxtb r3, r3
8003884: 2b0f cmp r3, #15
8003886: d00a beq.n 800389e <DoKeyUP+0xba2>
8003888: 4b6d ldr r3, [pc, #436] ; (8003a40 <DoKeyUP+0xd44>)
800388a: 781b ldrb r3, [r3, #0]
800388c: b2db uxtb r3, r3
800388e: 2b17 cmp r3, #23
8003890: d005 beq.n 800389e <DoKeyUP+0xba2>
8003892: 4b6b ldr r3, [pc, #428] ; (8003a40 <DoKeyUP+0xd44>)
8003894: 781b ldrb r3, [r3, #0]
8003896: b2db uxtb r3, r3
8003898: 2b1f cmp r3, #31
800389a: f040 80bd bne.w 8003a18 <DoKeyUP+0xd1c>
{
if(ipt) {
800389e: 687b ldr r3, [r7, #4]
80038a0: 2b00 cmp r3, #0
80038a2: d002 beq.n 80038aa <DoKeyUP+0xbae>
ipt--;
80038a4: 687b ldr r3, [r7, #4]
80038a6: 3b01 subs r3, #1
80038a8: 607b str r3, [r7, #4]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
80038aa: 69bb ldr r3, [r7, #24]
80038ac: f242 7210 movw r2, #10000 ; 0x2710
80038b0: fb02 f203 mul.w r2, r2, r3
80038b4: 697b ldr r3, [r7, #20]
80038b6: f44f 717a mov.w r1, #1000 ; 0x3e8
80038ba: fb01 f303 mul.w r3, r1, r3
80038be: 18d1 adds r1, r2, r3
80038c0: 68fa ldr r2, [r7, #12]
80038c2: 4613 mov r3, r2
80038c4: 009b lsls r3, r3, #2
80038c6: 4413 add r3, r2
80038c8: 005b lsls r3, r3, #1
80038ca: 4618 mov r0, r3
80038cc: 693b ldr r3, [r7, #16]
80038ce: 2264 movs r2, #100 ; 0x64
80038d0: fb02 f303 mul.w r3, r2, r3
80038d4: 4403 add r3, r0
80038d6: 18ca adds r2, r1, r3
80038d8: 68bb ldr r3, [r7, #8]
80038da: 4413 add r3, r2
80038dc: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
80038de: 4b50 ldr r3, [pc, #320] ; (8003a20 <DoKeyUP+0xd24>)
80038e0: 681b ldr r3, [r3, #0]
80038e2: 69fa ldr r2, [r7, #28]
80038e4: ee07 2a90 vmov s15, r2
80038e8: eef8 7a67 vcvt.f32.u32 s15, s15
80038ec: 4a4d ldr r2, [pc, #308] ; (8003a24 <DoKeyUP+0xd28>)
80038ee: 015b lsls r3, r3, #5
80038f0: 4413 add r3, r2
80038f2: 3318 adds r3, #24
80038f4: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
80038f8: 687b ldr r3, [r7, #4]
80038fa: 2b01 cmp r3, #1
80038fc: d112 bne.n 8003924 <DoKeyUP+0xc28>
80038fe: 4b48 ldr r3, [pc, #288] ; (8003a20 <DoKeyUP+0xd24>)
8003900: 681b ldr r3, [r3, #0]
8003902: 4948 ldr r1, [pc, #288] ; (8003a24 <DoKeyUP+0xd28>)
8003904: 015a lsls r2, r3, #5
8003906: 440a add r2, r1
8003908: 3218 adds r2, #24
800390a: edd2 7a00 vldr s15, [r2]
800390e: ed9f 7a4d vldr s14, [pc, #308] ; 8003a44 <DoKeyUP+0xd48>
8003912: ee67 7a87 vmul.f32 s15, s15, s14
8003916: 4a43 ldr r2, [pc, #268] ; (8003a24 <DoKeyUP+0xd28>)
8003918: 015b lsls r3, r3, #5
800391a: 4413 add r3, r2
800391c: 3318 adds r3, #24
800391e: edc3 7a00 vstr s15, [r3]
8003922: e040 b.n 80039a6 <DoKeyUP+0xcaa>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8003924: 687b ldr r3, [r7, #4]
8003926: 2b02 cmp r3, #2
8003928: d112 bne.n 8003950 <DoKeyUP+0xc54>
800392a: 4b3d ldr r3, [pc, #244] ; (8003a20 <DoKeyUP+0xd24>)
800392c: 681b ldr r3, [r3, #0]
800392e: 493d ldr r1, [pc, #244] ; (8003a24 <DoKeyUP+0xd28>)
8003930: 015a lsls r2, r3, #5
8003932: 440a add r2, r1
8003934: 3218 adds r2, #24
8003936: edd2 7a00 vldr s15, [r2]
800393a: ed9f 7a3b vldr s14, [pc, #236] ; 8003a28 <DoKeyUP+0xd2c>
800393e: ee67 7a87 vmul.f32 s15, s15, s14
8003942: 4a38 ldr r2, [pc, #224] ; (8003a24 <DoKeyUP+0xd28>)
8003944: 015b lsls r3, r3, #5
8003946: 4413 add r3, r2
8003948: 3318 adds r3, #24
800394a: edc3 7a00 vstr s15, [r3]
800394e: e02a b.n 80039a6 <DoKeyUP+0xcaa>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8003950: 687b ldr r3, [r7, #4]
8003952: 2b03 cmp r3, #3
8003954: d112 bne.n 800397c <DoKeyUP+0xc80>
8003956: 4b32 ldr r3, [pc, #200] ; (8003a20 <DoKeyUP+0xd24>)
8003958: 681b ldr r3, [r3, #0]
800395a: 4932 ldr r1, [pc, #200] ; (8003a24 <DoKeyUP+0xd28>)
800395c: 015a lsls r2, r3, #5
800395e: 440a add r2, r1
8003960: 3218 adds r2, #24
8003962: edd2 7a00 vldr s15, [r2]
8003966: ed9f 7a31 vldr s14, [pc, #196] ; 8003a2c <DoKeyUP+0xd30>
800396a: ee67 7a87 vmul.f32 s15, s15, s14
800396e: 4a2d ldr r2, [pc, #180] ; (8003a24 <DoKeyUP+0xd28>)
8003970: 015b lsls r3, r3, #5
8003972: 4413 add r3, r2
8003974: 3318 adds r3, #24
8003976: edc3 7a00 vstr s15, [r3]
800397a: e014 b.n 80039a6 <DoKeyUP+0xcaa>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
800397c: 687b ldr r3, [r7, #4]
800397e: 2b04 cmp r3, #4
8003980: d111 bne.n 80039a6 <DoKeyUP+0xcaa>
8003982: 4b27 ldr r3, [pc, #156] ; (8003a20 <DoKeyUP+0xd24>)
8003984: 681b ldr r3, [r3, #0]
8003986: 4927 ldr r1, [pc, #156] ; (8003a24 <DoKeyUP+0xd28>)
8003988: 015a lsls r2, r3, #5
800398a: 440a add r2, r1
800398c: 3218 adds r2, #24
800398e: edd2 7a00 vldr s15, [r2]
8003992: ed9f 7a27 vldr s14, [pc, #156] ; 8003a30 <DoKeyUP+0xd34>
8003996: ee67 7a87 vmul.f32 s15, s15, s14
800399a: 4a22 ldr r2, [pc, #136] ; (8003a24 <DoKeyUP+0xd28>)
800399c: 015b lsls r3, r3, #5
800399e: 4413 add r3, r2
80039a0: 3318 adds r3, #24
80039a2: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
80039a6: 4b1e ldr r3, [pc, #120] ; (8003a20 <DoKeyUP+0xd24>)
80039a8: 681b ldr r3, [r3, #0]
80039aa: 4a1e ldr r2, [pc, #120] ; (8003a24 <DoKeyUP+0xd28>)
80039ac: 015b lsls r3, r3, #5
80039ae: 4413 add r3, r2
80039b0: 3318 adds r3, #24
80039b2: edd3 7a00 vldr s15, [r3]
80039b6: eef5 7ac0 vcmpe.f32 s15, #0.0
80039ba: eef1 fa10 vmrs APSR_nzcv, fpscr
80039be: d807 bhi.n 80039d0 <DoKeyUP+0xcd4>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
80039c0: 4b17 ldr r3, [pc, #92] ; (8003a20 <DoKeyUP+0xd24>)
80039c2: 681b ldr r3, [r3, #0]
80039c4: 4a17 ldr r2, [pc, #92] ; (8003a24 <DoKeyUP+0xd28>)
80039c6: 015b lsls r3, r3, #5
80039c8: 4413 add r3, r2
80039ca: 3318 adds r3, #24
80039cc: 4a19 ldr r2, [pc, #100] ; (8003a34 <DoKeyUP+0xd38>)
80039ce: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
80039d0: 4b13 ldr r3, [pc, #76] ; (8003a20 <DoKeyUP+0xd24>)
80039d2: 681b ldr r3, [r3, #0]
80039d4: 4a13 ldr r2, [pc, #76] ; (8003a24 <DoKeyUP+0xd28>)
80039d6: 015b lsls r3, r3, #5
80039d8: 4413 add r3, r2
80039da: 3318 adds r3, #24
80039dc: edd3 7a00 vldr s15, [r3]
80039e0: ed9f 7a15 vldr s14, [pc, #84] ; 8003a38 <DoKeyUP+0xd3c>
80039e4: eef4 7ac7 vcmpe.f32 s15, s14
80039e8: eef1 fa10 vmrs APSR_nzcv, fpscr
80039ec: db07 blt.n 80039fe <DoKeyUP+0xd02>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
80039ee: 4b0c ldr r3, [pc, #48] ; (8003a20 <DoKeyUP+0xd24>)
80039f0: 681b ldr r3, [r3, #0]
80039f2: 4a0c ldr r2, [pc, #48] ; (8003a24 <DoKeyUP+0xd28>)
80039f4: 015b lsls r3, r3, #5
80039f6: 4413 add r3, r2
80039f8: 3318 adds r3, #24
80039fa: 4a10 ldr r2, [pc, #64] ; (8003a3c <DoKeyUP+0xd40>)
80039fc: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
80039fe: 4b08 ldr r3, [pc, #32] ; (8003a20 <DoKeyUP+0xd24>)
8003a00: 681b ldr r3, [r3, #0]
8003a02: 4a08 ldr r2, [pc, #32] ; (8003a24 <DoKeyUP+0xd28>)
8003a04: 015b lsls r3, r3, #5
8003a06: 4413 add r3, r2
8003a08: 3318 adds r3, #24
8003a0a: edd3 7a00 vldr s15, [r3]
8003a0e: eeb0 0a67 vmov.f32 s0, s15
8003a12: f000 febf bl 8004794 <VerifyGain>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
}*/
}
8003a16: e7ff b.n 8003a18 <DoKeyUP+0xd1c>
8003a18: bf00 nop
8003a1a: 3720 adds r7, #32
8003a1c: 46bd mov sp, r7
8003a1e: bd80 pop {r7, pc}
8003a20: 2006ba68 .word 0x2006ba68
8003a24: 2006bca8 .word 0x2006bca8
8003a28: 3c23d70a .word 0x3c23d70a
8003a2c: 3a83126f .word 0x3a83126f
8003a30: 38d1b717 .word 0x38d1b717
8003a34: 38d1b717 .word 0x38d1b717
8003a38: 47c35000 .word 0x47c35000
8003a3c: 47c34f80 .word 0x47c34f80
8003a40: 20020010 .word 0x20020010
8003a44: 3dcccccd .word 0x3dcccccd
08003a48 <DoKeyDN>:
void DoKeyDN(void)
{
8003a48: b580 push {r7, lr}
8003a4a: b088 sub sp, #32
8003a4c: af00 add r7, sp, #0
uint32_t s, ikdt, ikt, iks, ikd, ike, ipt;
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10.0f) {
8003a4e: 4b5f ldr r3, [pc, #380] ; (8003bcc <DoKeyDN+0x184>)
8003a50: 681b ldr r3, [r3, #0]
8003a52: 4a5f ldr r2, [pc, #380] ; (8003bd0 <DoKeyDN+0x188>)
8003a54: 015b lsls r3, r3, #5
8003a56: 4413 add r3, r2
8003a58: 3318 adds r3, #24
8003a5a: edd3 7a00 vldr s15, [r3]
8003a5e: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8003a62: eef4 7ac7 vcmpe.f32 s15, s14
8003a66: eef1 fa10 vmrs APSR_nzcv, fpscr
8003a6a: d517 bpl.n 8003a9c <DoKeyDN+0x54>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10000.0f) + 0.5f);
8003a6c: 4b57 ldr r3, [pc, #348] ; (8003bcc <DoKeyDN+0x184>)
8003a6e: 681b ldr r3, [r3, #0]
8003a70: 4a57 ldr r2, [pc, #348] ; (8003bd0 <DoKeyDN+0x188>)
8003a72: 015b lsls r3, r3, #5
8003a74: 4413 add r3, r2
8003a76: 3318 adds r3, #24
8003a78: edd3 7a00 vldr s15, [r3]
8003a7c: ed9f 7a55 vldr s14, [pc, #340] ; 8003bd4 <DoKeyDN+0x18c>
8003a80: ee67 7a87 vmul.f32 s15, s15, s14
8003a84: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8003a88: ee77 7a87 vadd.f32 s15, s15, s14
8003a8c: eefc 7ae7 vcvt.u32.f32 s15, s15
8003a90: ee17 3a90 vmov r3, s15
8003a94: 61fb str r3, [r7, #28]
ipt = 4;
8003a96: 2304 movs r3, #4
8003a98: 607b str r3, [r7, #4]
8003a9a: e0be b.n 8003c1a <DoKeyDN+0x1d2>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100.0f) {
8003a9c: 4b4b ldr r3, [pc, #300] ; (8003bcc <DoKeyDN+0x184>)
8003a9e: 681b ldr r3, [r3, #0]
8003aa0: 4a4b ldr r2, [pc, #300] ; (8003bd0 <DoKeyDN+0x188>)
8003aa2: 015b lsls r3, r3, #5
8003aa4: 4413 add r3, r2
8003aa6: 3318 adds r3, #24
8003aa8: edd3 7a00 vldr s15, [r3]
8003aac: ed9f 7a4a vldr s14, [pc, #296] ; 8003bd8 <DoKeyDN+0x190>
8003ab0: eef4 7ac7 vcmpe.f32 s15, s14
8003ab4: eef1 fa10 vmrs APSR_nzcv, fpscr
8003ab8: d517 bpl.n 8003aea <DoKeyDN+0xa2>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 1000.0f) + 0.5f);
8003aba: 4b44 ldr r3, [pc, #272] ; (8003bcc <DoKeyDN+0x184>)
8003abc: 681b ldr r3, [r3, #0]
8003abe: 4a44 ldr r2, [pc, #272] ; (8003bd0 <DoKeyDN+0x188>)
8003ac0: 015b lsls r3, r3, #5
8003ac2: 4413 add r3, r2
8003ac4: 3318 adds r3, #24
8003ac6: edd3 7a00 vldr s15, [r3]
8003aca: ed9f 7a44 vldr s14, [pc, #272] ; 8003bdc <DoKeyDN+0x194>
8003ace: ee67 7a87 vmul.f32 s15, s15, s14
8003ad2: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8003ad6: ee77 7a87 vadd.f32 s15, s15, s14
8003ada: eefc 7ae7 vcvt.u32.f32 s15, s15
8003ade: ee17 3a90 vmov r3, s15
8003ae2: 61fb str r3, [r7, #28]
ipt = 3;
8003ae4: 2303 movs r3, #3
8003ae6: 607b str r3, [r7, #4]
8003ae8: e097 b.n 8003c1a <DoKeyDN+0x1d2>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 1000.0f) {
8003aea: 4b38 ldr r3, [pc, #224] ; (8003bcc <DoKeyDN+0x184>)
8003aec: 681b ldr r3, [r3, #0]
8003aee: 4a38 ldr r2, [pc, #224] ; (8003bd0 <DoKeyDN+0x188>)
8003af0: 015b lsls r3, r3, #5
8003af2: 4413 add r3, r2
8003af4: 3318 adds r3, #24
8003af6: edd3 7a00 vldr s15, [r3]
8003afa: ed9f 7a38 vldr s14, [pc, #224] ; 8003bdc <DoKeyDN+0x194>
8003afe: eef4 7ac7 vcmpe.f32 s15, s14
8003b02: eef1 fa10 vmrs APSR_nzcv, fpscr
8003b06: d517 bpl.n 8003b38 <DoKeyDN+0xf0>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 100.0f) + 0.5f);
8003b08: 4b30 ldr r3, [pc, #192] ; (8003bcc <DoKeyDN+0x184>)
8003b0a: 681b ldr r3, [r3, #0]
8003b0c: 4a30 ldr r2, [pc, #192] ; (8003bd0 <DoKeyDN+0x188>)
8003b0e: 015b lsls r3, r3, #5
8003b10: 4413 add r3, r2
8003b12: 3318 adds r3, #24
8003b14: edd3 7a00 vldr s15, [r3]
8003b18: ed9f 7a2f vldr s14, [pc, #188] ; 8003bd8 <DoKeyDN+0x190>
8003b1c: ee67 7a87 vmul.f32 s15, s15, s14
8003b20: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8003b24: ee77 7a87 vadd.f32 s15, s15, s14
8003b28: eefc 7ae7 vcvt.u32.f32 s15, s15
8003b2c: ee17 3a90 vmov r3, s15
8003b30: 61fb str r3, [r7, #28]
ipt = 2;
8003b32: 2302 movs r3, #2
8003b34: 607b str r3, [r7, #4]
8003b36: e070 b.n 8003c1a <DoKeyDN+0x1d2>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10000.0f) {
8003b38: 4b24 ldr r3, [pc, #144] ; (8003bcc <DoKeyDN+0x184>)
8003b3a: 681b ldr r3, [r3, #0]
8003b3c: 4a24 ldr r2, [pc, #144] ; (8003bd0 <DoKeyDN+0x188>)
8003b3e: 015b lsls r3, r3, #5
8003b40: 4413 add r3, r2
8003b42: 3318 adds r3, #24
8003b44: edd3 7a00 vldr s15, [r3]
8003b48: ed9f 7a22 vldr s14, [pc, #136] ; 8003bd4 <DoKeyDN+0x18c>
8003b4c: eef4 7ac7 vcmpe.f32 s15, s14
8003b50: eef1 fa10 vmrs APSR_nzcv, fpscr
8003b54: d517 bpl.n 8003b86 <DoKeyDN+0x13e>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10.0f) + 0.5f);
8003b56: 4b1d ldr r3, [pc, #116] ; (8003bcc <DoKeyDN+0x184>)
8003b58: 681b ldr r3, [r3, #0]
8003b5a: 4a1d ldr r2, [pc, #116] ; (8003bd0 <DoKeyDN+0x188>)
8003b5c: 015b lsls r3, r3, #5
8003b5e: 4413 add r3, r2
8003b60: 3318 adds r3, #24
8003b62: edd3 7a00 vldr s15, [r3]
8003b66: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8003b6a: ee67 7a87 vmul.f32 s15, s15, s14
8003b6e: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8003b72: ee77 7a87 vadd.f32 s15, s15, s14
8003b76: eefc 7ae7 vcvt.u32.f32 s15, s15
8003b7a: ee17 3a90 vmov r3, s15
8003b7e: 61fb str r3, [r7, #28]
ipt = 1;
8003b80: 2301 movs r3, #1
8003b82: 607b str r3, [r7, #4]
8003b84: e049 b.n 8003c1a <DoKeyDN+0x1d2>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) {
8003b86: 4b11 ldr r3, [pc, #68] ; (8003bcc <DoKeyDN+0x184>)
8003b88: 681b ldr r3, [r3, #0]
8003b8a: 4a11 ldr r2, [pc, #68] ; (8003bd0 <DoKeyDN+0x188>)
8003b8c: 015b lsls r3, r3, #5
8003b8e: 4413 add r3, r2
8003b90: 3318 adds r3, #24
8003b92: edd3 7a00 vldr s15, [r3]
8003b96: ed9f 7a12 vldr s14, [pc, #72] ; 8003be0 <DoKeyDN+0x198>
8003b9a: eef4 7ac7 vcmpe.f32 s15, s14
8003b9e: eef1 fa10 vmrs APSR_nzcv, fpscr
8003ba2: d51f bpl.n 8003be4 <DoKeyDN+0x19c>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS) + 0.5f);
8003ba4: 4b09 ldr r3, [pc, #36] ; (8003bcc <DoKeyDN+0x184>)
8003ba6: 681b ldr r3, [r3, #0]
8003ba8: 4a09 ldr r2, [pc, #36] ; (8003bd0 <DoKeyDN+0x188>)
8003baa: 015b lsls r3, r3, #5
8003bac: 4413 add r3, r2
8003bae: 3318 adds r3, #24
8003bb0: edd3 7a00 vldr s15, [r3]
8003bb4: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8003bb8: ee77 7a87 vadd.f32 s15, s15, s14
8003bbc: eefc 7ae7 vcvt.u32.f32 s15, s15
8003bc0: ee17 3a90 vmov r3, s15
8003bc4: 61fb str r3, [r7, #28]
ipt = 0;
8003bc6: 2300 movs r3, #0
8003bc8: 607b str r3, [r7, #4]
8003bca: e026 b.n 8003c1a <DoKeyDN+0x1d2>
8003bcc: 2006ba68 .word 0x2006ba68
8003bd0: 2006bca8 .word 0x2006bca8
8003bd4: 461c4000 .word 0x461c4000
8003bd8: 42c80000 .word 0x42c80000
8003bdc: 447a0000 .word 0x447a0000
8003be0: 47c35000 .word 0x47c35000
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8003be4: 4baf ldr r3, [pc, #700] ; (8003ea4 <DoKeyDN+0x45c>)
8003be6: 681b ldr r3, [r3, #0]
8003be8: 4aaf ldr r2, [pc, #700] ; (8003ea8 <DoKeyDN+0x460>)
8003bea: 015b lsls r3, r3, #5
8003bec: 4413 add r3, r2
8003bee: 3318 adds r3, #24
8003bf0: edd3 7a00 vldr s15, [r3]
8003bf4: ed9f 7aad vldr s14, [pc, #692] ; 8003eac <DoKeyDN+0x464>
8003bf8: eef4 7ac7 vcmpe.f32 s15, s14
8003bfc: eef1 fa10 vmrs APSR_nzcv, fpscr
8003c00: db0b blt.n 8003c1a <DoKeyDN+0x1d2>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
8003c02: 4ba8 ldr r3, [pc, #672] ; (8003ea4 <DoKeyDN+0x45c>)
8003c04: 681b ldr r3, [r3, #0]
8003c06: 4aa8 ldr r2, [pc, #672] ; (8003ea8 <DoKeyDN+0x460>)
8003c08: 015b lsls r3, r3, #5
8003c0a: 4413 add r3, r2
8003c0c: 3318 adds r3, #24
8003c0e: 4aa8 ldr r2, [pc, #672] ; (8003eb0 <DoKeyDN+0x468>)
8003c10: 601a str r2, [r3, #0]
s = 99999;
8003c12: 4ba8 ldr r3, [pc, #672] ; (8003eb4 <DoKeyDN+0x46c>)
8003c14: 61fb str r3, [r7, #28]
ipt = 0;
8003c16: 2300 movs r3, #0
8003c18: 607b str r3, [r7, #4]
}
ikdt = (s / 10000);
8003c1a: 69fb ldr r3, [r7, #28]
8003c1c: 4aa6 ldr r2, [pc, #664] ; (8003eb8 <DoKeyDN+0x470>)
8003c1e: fba2 2303 umull r2, r3, r2, r3
8003c22: 0b5b lsrs r3, r3, #13
8003c24: 61bb str r3, [r7, #24]
ikt = (s % 10000 / 1000);
8003c26: 69fa ldr r2, [r7, #28]
8003c28: 4ba3 ldr r3, [pc, #652] ; (8003eb8 <DoKeyDN+0x470>)
8003c2a: fba3 1302 umull r1, r3, r3, r2
8003c2e: 0b5b lsrs r3, r3, #13
8003c30: f242 7110 movw r1, #10000 ; 0x2710
8003c34: fb01 f303 mul.w r3, r1, r3
8003c38: 1ad3 subs r3, r2, r3
8003c3a: 4aa0 ldr r2, [pc, #640] ; (8003ebc <DoKeyDN+0x474>)
8003c3c: fba2 2303 umull r2, r3, r2, r3
8003c40: 099b lsrs r3, r3, #6
8003c42: 617b str r3, [r7, #20]
iks = (s % 10000 % 1000 / 100);
8003c44: 69fa ldr r2, [r7, #28]
8003c46: 4b9c ldr r3, [pc, #624] ; (8003eb8 <DoKeyDN+0x470>)
8003c48: fba3 1302 umull r1, r3, r3, r2
8003c4c: 0b5b lsrs r3, r3, #13
8003c4e: f242 7110 movw r1, #10000 ; 0x2710
8003c52: fb01 f303 mul.w r3, r1, r3
8003c56: 1ad3 subs r3, r2, r3
8003c58: 4a98 ldr r2, [pc, #608] ; (8003ebc <DoKeyDN+0x474>)
8003c5a: fba2 1203 umull r1, r2, r2, r3
8003c5e: 0992 lsrs r2, r2, #6
8003c60: f44f 717a mov.w r1, #1000 ; 0x3e8
8003c64: fb01 f202 mul.w r2, r1, r2
8003c68: 1a9a subs r2, r3, r2
8003c6a: 4b95 ldr r3, [pc, #596] ; (8003ec0 <DoKeyDN+0x478>)
8003c6c: fba3 2302 umull r2, r3, r3, r2
8003c70: 095b lsrs r3, r3, #5
8003c72: 613b str r3, [r7, #16]
ikd = (s % 10000 % 1000 % 100 / 10);
8003c74: 69fb ldr r3, [r7, #28]
8003c76: 4a90 ldr r2, [pc, #576] ; (8003eb8 <DoKeyDN+0x470>)
8003c78: fba2 1203 umull r1, r2, r2, r3
8003c7c: 0b52 lsrs r2, r2, #13
8003c7e: f242 7110 movw r1, #10000 ; 0x2710
8003c82: fb01 f202 mul.w r2, r1, r2
8003c86: 1a9a subs r2, r3, r2
8003c88: 4b8c ldr r3, [pc, #560] ; (8003ebc <DoKeyDN+0x474>)
8003c8a: fba3 1302 umull r1, r3, r3, r2
8003c8e: 099b lsrs r3, r3, #6
8003c90: f44f 717a mov.w r1, #1000 ; 0x3e8
8003c94: fb01 f303 mul.w r3, r1, r3
8003c98: 1ad3 subs r3, r2, r3
8003c9a: 4a89 ldr r2, [pc, #548] ; (8003ec0 <DoKeyDN+0x478>)
8003c9c: fba2 1203 umull r1, r2, r2, r3
8003ca0: 0952 lsrs r2, r2, #5
8003ca2: 2164 movs r1, #100 ; 0x64
8003ca4: fb01 f202 mul.w r2, r1, r2
8003ca8: 1a9a subs r2, r3, r2
8003caa: 4b86 ldr r3, [pc, #536] ; (8003ec4 <DoKeyDN+0x47c>)
8003cac: fba3 2302 umull r2, r3, r3, r2
8003cb0: 08db lsrs r3, r3, #3
8003cb2: 60fb str r3, [r7, #12]
ike = (s % 10000 % 1000 % 100 % 10);
8003cb4: 69fb ldr r3, [r7, #28]
8003cb6: 4a80 ldr r2, [pc, #512] ; (8003eb8 <DoKeyDN+0x470>)
8003cb8: fba2 1203 umull r1, r2, r2, r3
8003cbc: 0b52 lsrs r2, r2, #13
8003cbe: f242 7110 movw r1, #10000 ; 0x2710
8003cc2: fb01 f202 mul.w r2, r1, r2
8003cc6: 1a9a subs r2, r3, r2
8003cc8: 4b7c ldr r3, [pc, #496] ; (8003ebc <DoKeyDN+0x474>)
8003cca: fba3 1302 umull r1, r3, r3, r2
8003cce: 099b lsrs r3, r3, #6
8003cd0: f44f 717a mov.w r1, #1000 ; 0x3e8
8003cd4: fb01 f303 mul.w r3, r1, r3
8003cd8: 1ad3 subs r3, r2, r3
8003cda: 4a79 ldr r2, [pc, #484] ; (8003ec0 <DoKeyDN+0x478>)
8003cdc: fba2 1203 umull r1, r2, r2, r3
8003ce0: 0952 lsrs r2, r2, #5
8003ce2: 2164 movs r1, #100 ; 0x64
8003ce4: fb01 f202 mul.w r2, r1, r2
8003ce8: 1a9a subs r2, r3, r2
8003cea: 4b76 ldr r3, [pc, #472] ; (8003ec4 <DoKeyDN+0x47c>)
8003cec: fba3 1302 umull r1, r3, r3, r2
8003cf0: 08d9 lsrs r1, r3, #3
8003cf2: 460b mov r3, r1
8003cf4: 009b lsls r3, r3, #2
8003cf6: 440b add r3, r1
8003cf8: 005b lsls r3, r3, #1
8003cfa: 1ad3 subs r3, r2, r3
8003cfc: 60bb str r3, [r7, #8]
if(menupos == Kikdt_1 || menupos == Kikdt_2 || menupos == Kikdt_3 || menupos == Kikdt_4)
8003cfe: 4b72 ldr r3, [pc, #456] ; (8003ec8 <DoKeyDN+0x480>)
8003d00: 781b ldrb r3, [r3, #0]
8003d02: b2db uxtb r3, r3
8003d04: 2b02 cmp r3, #2
8003d06: d00f beq.n 8003d28 <DoKeyDN+0x2e0>
8003d08: 4b6f ldr r3, [pc, #444] ; (8003ec8 <DoKeyDN+0x480>)
8003d0a: 781b ldrb r3, [r3, #0]
8003d0c: b2db uxtb r3, r3
8003d0e: 2b0a cmp r3, #10
8003d10: d00a beq.n 8003d28 <DoKeyDN+0x2e0>
8003d12: 4b6d ldr r3, [pc, #436] ; (8003ec8 <DoKeyDN+0x480>)
8003d14: 781b ldrb r3, [r3, #0]
8003d16: b2db uxtb r3, r3
8003d18: 2b12 cmp r3, #18
8003d1a: d005 beq.n 8003d28 <DoKeyDN+0x2e0>
8003d1c: 4b6a ldr r3, [pc, #424] ; (8003ec8 <DoKeyDN+0x480>)
8003d1e: 781b ldrb r3, [r3, #0]
8003d20: b2db uxtb r3, r3
8003d22: 2b1a cmp r3, #26
8003d24: f040 80dc bne.w 8003ee0 <DoKeyDN+0x498>
{
if(ikdt) {
8003d28: 69bb ldr r3, [r7, #24]
8003d2a: 2b00 cmp r3, #0
8003d2c: d002 beq.n 8003d34 <DoKeyDN+0x2ec>
ikdt--;
8003d2e: 69bb ldr r3, [r7, #24]
8003d30: 3b01 subs r3, #1
8003d32: 61bb str r3, [r7, #24]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
8003d34: 69bb ldr r3, [r7, #24]
8003d36: f242 7210 movw r2, #10000 ; 0x2710
8003d3a: fb02 f203 mul.w r2, r2, r3
8003d3e: 697b ldr r3, [r7, #20]
8003d40: f44f 717a mov.w r1, #1000 ; 0x3e8
8003d44: fb01 f303 mul.w r3, r1, r3
8003d48: 18d1 adds r1, r2, r3
8003d4a: 68fa ldr r2, [r7, #12]
8003d4c: 4613 mov r3, r2
8003d4e: 009b lsls r3, r3, #2
8003d50: 4413 add r3, r2
8003d52: 005b lsls r3, r3, #1
8003d54: 4618 mov r0, r3
8003d56: 693b ldr r3, [r7, #16]
8003d58: 2264 movs r2, #100 ; 0x64
8003d5a: fb02 f303 mul.w r3, r2, r3
8003d5e: 4403 add r3, r0
8003d60: 18ca adds r2, r1, r3
8003d62: 68bb ldr r3, [r7, #8]
8003d64: 4413 add r3, r2
8003d66: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
8003d68: 4b4e ldr r3, [pc, #312] ; (8003ea4 <DoKeyDN+0x45c>)
8003d6a: 681b ldr r3, [r3, #0]
8003d6c: 69fa ldr r2, [r7, #28]
8003d6e: ee07 2a90 vmov s15, r2
8003d72: eef8 7a67 vcvt.f32.u32 s15, s15
8003d76: 4a4c ldr r2, [pc, #304] ; (8003ea8 <DoKeyDN+0x460>)
8003d78: 015b lsls r3, r3, #5
8003d7a: 4413 add r3, r2
8003d7c: 3318 adds r3, #24
8003d7e: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8003d82: 687b ldr r3, [r7, #4]
8003d84: 2b01 cmp r3, #1
8003d86: d112 bne.n 8003dae <DoKeyDN+0x366>
8003d88: 4b46 ldr r3, [pc, #280] ; (8003ea4 <DoKeyDN+0x45c>)
8003d8a: 681b ldr r3, [r3, #0]
8003d8c: 4946 ldr r1, [pc, #280] ; (8003ea8 <DoKeyDN+0x460>)
8003d8e: 015a lsls r2, r3, #5
8003d90: 440a add r2, r1
8003d92: 3218 adds r2, #24
8003d94: edd2 7a00 vldr s15, [r2]
8003d98: ed9f 7a4c vldr s14, [pc, #304] ; 8003ecc <DoKeyDN+0x484>
8003d9c: ee67 7a87 vmul.f32 s15, s15, s14
8003da0: 4a41 ldr r2, [pc, #260] ; (8003ea8 <DoKeyDN+0x460>)
8003da2: 015b lsls r3, r3, #5
8003da4: 4413 add r3, r2
8003da6: 3318 adds r3, #24
8003da8: edc3 7a00 vstr s15, [r3]
8003dac: e040 b.n 8003e30 <DoKeyDN+0x3e8>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8003dae: 687b ldr r3, [r7, #4]
8003db0: 2b02 cmp r3, #2
8003db2: d112 bne.n 8003dda <DoKeyDN+0x392>
8003db4: 4b3b ldr r3, [pc, #236] ; (8003ea4 <DoKeyDN+0x45c>)
8003db6: 681b ldr r3, [r3, #0]
8003db8: 493b ldr r1, [pc, #236] ; (8003ea8 <DoKeyDN+0x460>)
8003dba: 015a lsls r2, r3, #5
8003dbc: 440a add r2, r1
8003dbe: 3218 adds r2, #24
8003dc0: edd2 7a00 vldr s15, [r2]
8003dc4: ed9f 7a42 vldr s14, [pc, #264] ; 8003ed0 <DoKeyDN+0x488>
8003dc8: ee67 7a87 vmul.f32 s15, s15, s14
8003dcc: 4a36 ldr r2, [pc, #216] ; (8003ea8 <DoKeyDN+0x460>)
8003dce: 015b lsls r3, r3, #5
8003dd0: 4413 add r3, r2
8003dd2: 3318 adds r3, #24
8003dd4: edc3 7a00 vstr s15, [r3]
8003dd8: e02a b.n 8003e30 <DoKeyDN+0x3e8>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8003dda: 687b ldr r3, [r7, #4]
8003ddc: 2b03 cmp r3, #3
8003dde: d112 bne.n 8003e06 <DoKeyDN+0x3be>
8003de0: 4b30 ldr r3, [pc, #192] ; (8003ea4 <DoKeyDN+0x45c>)
8003de2: 681b ldr r3, [r3, #0]
8003de4: 4930 ldr r1, [pc, #192] ; (8003ea8 <DoKeyDN+0x460>)
8003de6: 015a lsls r2, r3, #5
8003de8: 440a add r2, r1
8003dea: 3218 adds r2, #24
8003dec: edd2 7a00 vldr s15, [r2]
8003df0: ed9f 7a38 vldr s14, [pc, #224] ; 8003ed4 <DoKeyDN+0x48c>
8003df4: ee67 7a87 vmul.f32 s15, s15, s14
8003df8: 4a2b ldr r2, [pc, #172] ; (8003ea8 <DoKeyDN+0x460>)
8003dfa: 015b lsls r3, r3, #5
8003dfc: 4413 add r3, r2
8003dfe: 3318 adds r3, #24
8003e00: edc3 7a00 vstr s15, [r3]
8003e04: e014 b.n 8003e30 <DoKeyDN+0x3e8>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8003e06: 687b ldr r3, [r7, #4]
8003e08: 2b04 cmp r3, #4
8003e0a: d111 bne.n 8003e30 <DoKeyDN+0x3e8>
8003e0c: 4b25 ldr r3, [pc, #148] ; (8003ea4 <DoKeyDN+0x45c>)
8003e0e: 681b ldr r3, [r3, #0]
8003e10: 4925 ldr r1, [pc, #148] ; (8003ea8 <DoKeyDN+0x460>)
8003e12: 015a lsls r2, r3, #5
8003e14: 440a add r2, r1
8003e16: 3218 adds r2, #24
8003e18: edd2 7a00 vldr s15, [r2]
8003e1c: ed9f 7a2e vldr s14, [pc, #184] ; 8003ed8 <DoKeyDN+0x490>
8003e20: ee67 7a87 vmul.f32 s15, s15, s14
8003e24: 4a20 ldr r2, [pc, #128] ; (8003ea8 <DoKeyDN+0x460>)
8003e26: 015b lsls r3, r3, #5
8003e28: 4413 add r3, r2
8003e2a: 3318 adds r3, #24
8003e2c: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
8003e30: 4b1c ldr r3, [pc, #112] ; (8003ea4 <DoKeyDN+0x45c>)
8003e32: 681b ldr r3, [r3, #0]
8003e34: 4a1c ldr r2, [pc, #112] ; (8003ea8 <DoKeyDN+0x460>)
8003e36: 015b lsls r3, r3, #5
8003e38: 4413 add r3, r2
8003e3a: 3318 adds r3, #24
8003e3c: edd3 7a00 vldr s15, [r3]
8003e40: eef5 7ac0 vcmpe.f32 s15, #0.0
8003e44: eef1 fa10 vmrs APSR_nzcv, fpscr
8003e48: d807 bhi.n 8003e5a <DoKeyDN+0x412>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
8003e4a: 4b16 ldr r3, [pc, #88] ; (8003ea4 <DoKeyDN+0x45c>)
8003e4c: 681b ldr r3, [r3, #0]
8003e4e: 4a16 ldr r2, [pc, #88] ; (8003ea8 <DoKeyDN+0x460>)
8003e50: 015b lsls r3, r3, #5
8003e52: 4413 add r3, r2
8003e54: 3318 adds r3, #24
8003e56: 4a21 ldr r2, [pc, #132] ; (8003edc <DoKeyDN+0x494>)
8003e58: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8003e5a: 4b12 ldr r3, [pc, #72] ; (8003ea4 <DoKeyDN+0x45c>)
8003e5c: 681b ldr r3, [r3, #0]
8003e5e: 4a12 ldr r2, [pc, #72] ; (8003ea8 <DoKeyDN+0x460>)
8003e60: 015b lsls r3, r3, #5
8003e62: 4413 add r3, r2
8003e64: 3318 adds r3, #24
8003e66: edd3 7a00 vldr s15, [r3]
8003e6a: ed9f 7a10 vldr s14, [pc, #64] ; 8003eac <DoKeyDN+0x464>
8003e6e: eef4 7ac7 vcmpe.f32 s15, s14
8003e72: eef1 fa10 vmrs APSR_nzcv, fpscr
8003e76: db07 blt.n 8003e88 <DoKeyDN+0x440>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
8003e78: 4b0a ldr r3, [pc, #40] ; (8003ea4 <DoKeyDN+0x45c>)
8003e7a: 681b ldr r3, [r3, #0]
8003e7c: 4a0a ldr r2, [pc, #40] ; (8003ea8 <DoKeyDN+0x460>)
8003e7e: 015b lsls r3, r3, #5
8003e80: 4413 add r3, r2
8003e82: 3318 adds r3, #24
8003e84: 4a0a ldr r2, [pc, #40] ; (8003eb0 <DoKeyDN+0x468>)
8003e86: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
8003e88: 4b06 ldr r3, [pc, #24] ; (8003ea4 <DoKeyDN+0x45c>)
8003e8a: 681b ldr r3, [r3, #0]
8003e8c: 4a06 ldr r2, [pc, #24] ; (8003ea8 <DoKeyDN+0x460>)
8003e8e: 015b lsls r3, r3, #5
8003e90: 4413 add r3, r2
8003e92: 3318 adds r3, #24
8003e94: edd3 7a00 vldr s15, [r3]
8003e98: eeb0 0a67 vmov.f32 s0, s15
8003e9c: f000 fc7a bl 8004794 <VerifyGain>
8003ea0: f000 bc60 b.w 8004764 <DoKeyDN+0xd1c>
8003ea4: 2006ba68 .word 0x2006ba68
8003ea8: 2006bca8 .word 0x2006bca8
8003eac: 47c35000 .word 0x47c35000
8003eb0: 47c34f80 .word 0x47c34f80
8003eb4: 0001869f .word 0x0001869f
8003eb8: d1b71759 .word 0xd1b71759
8003ebc: 10624dd3 .word 0x10624dd3
8003ec0: 51eb851f .word 0x51eb851f
8003ec4: cccccccd .word 0xcccccccd
8003ec8: 20020010 .word 0x20020010
8003ecc: 3dcccccd .word 0x3dcccccd
8003ed0: 3c23d70a .word 0x3c23d70a
8003ed4: 3a83126f .word 0x3a83126f
8003ed8: 38d1b717 .word 0x38d1b717
8003edc: 38d1b717 .word 0x38d1b717
}
else
if(menupos == Kikt_1 || menupos == Kikt_2 || menupos == Kikt_3 || menupos == Kikt_4)
8003ee0: 4baa ldr r3, [pc, #680] ; (800418c <DoKeyDN+0x744>)
8003ee2: 781b ldrb r3, [r3, #0]
8003ee4: b2db uxtb r3, r3
8003ee6: 2b03 cmp r3, #3
8003ee8: d00f beq.n 8003f0a <DoKeyDN+0x4c2>
8003eea: 4ba8 ldr r3, [pc, #672] ; (800418c <DoKeyDN+0x744>)
8003eec: 781b ldrb r3, [r3, #0]
8003eee: b2db uxtb r3, r3
8003ef0: 2b0b cmp r3, #11
8003ef2: d00a beq.n 8003f0a <DoKeyDN+0x4c2>
8003ef4: 4ba5 ldr r3, [pc, #660] ; (800418c <DoKeyDN+0x744>)
8003ef6: 781b ldrb r3, [r3, #0]
8003ef8: b2db uxtb r3, r3
8003efa: 2b13 cmp r3, #19
8003efc: d005 beq.n 8003f0a <DoKeyDN+0x4c2>
8003efe: 4ba3 ldr r3, [pc, #652] ; (800418c <DoKeyDN+0x744>)
8003f00: 781b ldrb r3, [r3, #0]
8003f02: b2db uxtb r3, r3
8003f04: 2b1b cmp r3, #27
8003f06: f040 80bd bne.w 8004084 <DoKeyDN+0x63c>
{
if(ikt) {
8003f0a: 697b ldr r3, [r7, #20]
8003f0c: 2b00 cmp r3, #0
8003f0e: d002 beq.n 8003f16 <DoKeyDN+0x4ce>
ikt--;
8003f10: 697b ldr r3, [r7, #20]
8003f12: 3b01 subs r3, #1
8003f14: 617b str r3, [r7, #20]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
8003f16: 69bb ldr r3, [r7, #24]
8003f18: f242 7210 movw r2, #10000 ; 0x2710
8003f1c: fb02 f203 mul.w r2, r2, r3
8003f20: 697b ldr r3, [r7, #20]
8003f22: f44f 717a mov.w r1, #1000 ; 0x3e8
8003f26: fb01 f303 mul.w r3, r1, r3
8003f2a: 18d1 adds r1, r2, r3
8003f2c: 68fa ldr r2, [r7, #12]
8003f2e: 4613 mov r3, r2
8003f30: 009b lsls r3, r3, #2
8003f32: 4413 add r3, r2
8003f34: 005b lsls r3, r3, #1
8003f36: 4618 mov r0, r3
8003f38: 693b ldr r3, [r7, #16]
8003f3a: 2264 movs r2, #100 ; 0x64
8003f3c: fb02 f303 mul.w r3, r2, r3
8003f40: 4403 add r3, r0
8003f42: 18ca adds r2, r1, r3
8003f44: 68bb ldr r3, [r7, #8]
8003f46: 4413 add r3, r2
8003f48: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
8003f4a: 4b91 ldr r3, [pc, #580] ; (8004190 <DoKeyDN+0x748>)
8003f4c: 681b ldr r3, [r3, #0]
8003f4e: 69fa ldr r2, [r7, #28]
8003f50: ee07 2a90 vmov s15, r2
8003f54: eef8 7a67 vcvt.f32.u32 s15, s15
8003f58: 4a8e ldr r2, [pc, #568] ; (8004194 <DoKeyDN+0x74c>)
8003f5a: 015b lsls r3, r3, #5
8003f5c: 4413 add r3, r2
8003f5e: 3318 adds r3, #24
8003f60: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8003f64: 687b ldr r3, [r7, #4]
8003f66: 2b01 cmp r3, #1
8003f68: d112 bne.n 8003f90 <DoKeyDN+0x548>
8003f6a: 4b89 ldr r3, [pc, #548] ; (8004190 <DoKeyDN+0x748>)
8003f6c: 681b ldr r3, [r3, #0]
8003f6e: 4989 ldr r1, [pc, #548] ; (8004194 <DoKeyDN+0x74c>)
8003f70: 015a lsls r2, r3, #5
8003f72: 440a add r2, r1
8003f74: 3218 adds r2, #24
8003f76: edd2 7a00 vldr s15, [r2]
8003f7a: ed9f 7a87 vldr s14, [pc, #540] ; 8004198 <DoKeyDN+0x750>
8003f7e: ee67 7a87 vmul.f32 s15, s15, s14
8003f82: 4a84 ldr r2, [pc, #528] ; (8004194 <DoKeyDN+0x74c>)
8003f84: 015b lsls r3, r3, #5
8003f86: 4413 add r3, r2
8003f88: 3318 adds r3, #24
8003f8a: edc3 7a00 vstr s15, [r3]
8003f8e: e040 b.n 8004012 <DoKeyDN+0x5ca>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8003f90: 687b ldr r3, [r7, #4]
8003f92: 2b02 cmp r3, #2
8003f94: d112 bne.n 8003fbc <DoKeyDN+0x574>
8003f96: 4b7e ldr r3, [pc, #504] ; (8004190 <DoKeyDN+0x748>)
8003f98: 681b ldr r3, [r3, #0]
8003f9a: 497e ldr r1, [pc, #504] ; (8004194 <DoKeyDN+0x74c>)
8003f9c: 015a lsls r2, r3, #5
8003f9e: 440a add r2, r1
8003fa0: 3218 adds r2, #24
8003fa2: edd2 7a00 vldr s15, [r2]
8003fa6: ed9f 7a7d vldr s14, [pc, #500] ; 800419c <DoKeyDN+0x754>
8003faa: ee67 7a87 vmul.f32 s15, s15, s14
8003fae: 4a79 ldr r2, [pc, #484] ; (8004194 <DoKeyDN+0x74c>)
8003fb0: 015b lsls r3, r3, #5
8003fb2: 4413 add r3, r2
8003fb4: 3318 adds r3, #24
8003fb6: edc3 7a00 vstr s15, [r3]
8003fba: e02a b.n 8004012 <DoKeyDN+0x5ca>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8003fbc: 687b ldr r3, [r7, #4]
8003fbe: 2b03 cmp r3, #3
8003fc0: d112 bne.n 8003fe8 <DoKeyDN+0x5a0>
8003fc2: 4b73 ldr r3, [pc, #460] ; (8004190 <DoKeyDN+0x748>)
8003fc4: 681b ldr r3, [r3, #0]
8003fc6: 4973 ldr r1, [pc, #460] ; (8004194 <DoKeyDN+0x74c>)
8003fc8: 015a lsls r2, r3, #5
8003fca: 440a add r2, r1
8003fcc: 3218 adds r2, #24
8003fce: edd2 7a00 vldr s15, [r2]
8003fd2: ed9f 7a73 vldr s14, [pc, #460] ; 80041a0 <DoKeyDN+0x758>
8003fd6: ee67 7a87 vmul.f32 s15, s15, s14
8003fda: 4a6e ldr r2, [pc, #440] ; (8004194 <DoKeyDN+0x74c>)
8003fdc: 015b lsls r3, r3, #5
8003fde: 4413 add r3, r2
8003fe0: 3318 adds r3, #24
8003fe2: edc3 7a00 vstr s15, [r3]
8003fe6: e014 b.n 8004012 <DoKeyDN+0x5ca>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8003fe8: 687b ldr r3, [r7, #4]
8003fea: 2b04 cmp r3, #4
8003fec: d111 bne.n 8004012 <DoKeyDN+0x5ca>
8003fee: 4b68 ldr r3, [pc, #416] ; (8004190 <DoKeyDN+0x748>)
8003ff0: 681b ldr r3, [r3, #0]
8003ff2: 4968 ldr r1, [pc, #416] ; (8004194 <DoKeyDN+0x74c>)
8003ff4: 015a lsls r2, r3, #5
8003ff6: 440a add r2, r1
8003ff8: 3218 adds r2, #24
8003ffa: edd2 7a00 vldr s15, [r2]
8003ffe: ed9f 7a69 vldr s14, [pc, #420] ; 80041a4 <DoKeyDN+0x75c>
8004002: ee67 7a87 vmul.f32 s15, s15, s14
8004006: 4a63 ldr r2, [pc, #396] ; (8004194 <DoKeyDN+0x74c>)
8004008: 015b lsls r3, r3, #5
800400a: 4413 add r3, r2
800400c: 3318 adds r3, #24
800400e: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
8004012: 4b5f ldr r3, [pc, #380] ; (8004190 <DoKeyDN+0x748>)
8004014: 681b ldr r3, [r3, #0]
8004016: 4a5f ldr r2, [pc, #380] ; (8004194 <DoKeyDN+0x74c>)
8004018: 015b lsls r3, r3, #5
800401a: 4413 add r3, r2
800401c: 3318 adds r3, #24
800401e: edd3 7a00 vldr s15, [r3]
8004022: eef5 7ac0 vcmpe.f32 s15, #0.0
8004026: eef1 fa10 vmrs APSR_nzcv, fpscr
800402a: d807 bhi.n 800403c <DoKeyDN+0x5f4>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
800402c: 4b58 ldr r3, [pc, #352] ; (8004190 <DoKeyDN+0x748>)
800402e: 681b ldr r3, [r3, #0]
8004030: 4a58 ldr r2, [pc, #352] ; (8004194 <DoKeyDN+0x74c>)
8004032: 015b lsls r3, r3, #5
8004034: 4413 add r3, r2
8004036: 3318 adds r3, #24
8004038: 4a5b ldr r2, [pc, #364] ; (80041a8 <DoKeyDN+0x760>)
800403a: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
800403c: 4b54 ldr r3, [pc, #336] ; (8004190 <DoKeyDN+0x748>)
800403e: 681b ldr r3, [r3, #0]
8004040: 4a54 ldr r2, [pc, #336] ; (8004194 <DoKeyDN+0x74c>)
8004042: 015b lsls r3, r3, #5
8004044: 4413 add r3, r2
8004046: 3318 adds r3, #24
8004048: edd3 7a00 vldr s15, [r3]
800404c: ed9f 7a57 vldr s14, [pc, #348] ; 80041ac <DoKeyDN+0x764>
8004050: eef4 7ac7 vcmpe.f32 s15, s14
8004054: eef1 fa10 vmrs APSR_nzcv, fpscr
8004058: db07 blt.n 800406a <DoKeyDN+0x622>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
800405a: 4b4d ldr r3, [pc, #308] ; (8004190 <DoKeyDN+0x748>)
800405c: 681b ldr r3, [r3, #0]
800405e: 4a4d ldr r2, [pc, #308] ; (8004194 <DoKeyDN+0x74c>)
8004060: 015b lsls r3, r3, #5
8004062: 4413 add r3, r2
8004064: 3318 adds r3, #24
8004066: 4a52 ldr r2, [pc, #328] ; (80041b0 <DoKeyDN+0x768>)
8004068: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
800406a: 4b49 ldr r3, [pc, #292] ; (8004190 <DoKeyDN+0x748>)
800406c: 681b ldr r3, [r3, #0]
800406e: 4a49 ldr r2, [pc, #292] ; (8004194 <DoKeyDN+0x74c>)
8004070: 015b lsls r3, r3, #5
8004072: 4413 add r3, r2
8004074: 3318 adds r3, #24
8004076: edd3 7a00 vldr s15, [r3]
800407a: eeb0 0a67 vmov.f32 s0, s15
800407e: f000 fb89 bl 8004794 <VerifyGain>
8004082: e36f b.n 8004764 <DoKeyDN+0xd1c>
}
else
if(menupos == Kiks_1 || menupos == Kiks_2 || menupos == Kiks_3 || menupos == Kiks_4)
8004084: 4b41 ldr r3, [pc, #260] ; (800418c <DoKeyDN+0x744>)
8004086: 781b ldrb r3, [r3, #0]
8004088: b2db uxtb r3, r3
800408a: 2b04 cmp r3, #4
800408c: d00f beq.n 80040ae <DoKeyDN+0x666>
800408e: 4b3f ldr r3, [pc, #252] ; (800418c <DoKeyDN+0x744>)
8004090: 781b ldrb r3, [r3, #0]
8004092: b2db uxtb r3, r3
8004094: 2b0c cmp r3, #12
8004096: d00a beq.n 80040ae <DoKeyDN+0x666>
8004098: 4b3c ldr r3, [pc, #240] ; (800418c <DoKeyDN+0x744>)
800409a: 781b ldrb r3, [r3, #0]
800409c: b2db uxtb r3, r3
800409e: 2b14 cmp r3, #20
80040a0: d005 beq.n 80040ae <DoKeyDN+0x666>
80040a2: 4b3a ldr r3, [pc, #232] ; (800418c <DoKeyDN+0x744>)
80040a4: 781b ldrb r3, [r3, #0]
80040a6: b2db uxtb r3, r3
80040a8: 2b1c cmp r3, #28
80040aa: f040 80d1 bne.w 8004250 <DoKeyDN+0x808>
{
if(iks) {
80040ae: 693b ldr r3, [r7, #16]
80040b0: 2b00 cmp r3, #0
80040b2: d002 beq.n 80040ba <DoKeyDN+0x672>
iks--;
80040b4: 693b ldr r3, [r7, #16]
80040b6: 3b01 subs r3, #1
80040b8: 613b str r3, [r7, #16]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
80040ba: 69bb ldr r3, [r7, #24]
80040bc: f242 7210 movw r2, #10000 ; 0x2710
80040c0: fb02 f203 mul.w r2, r2, r3
80040c4: 697b ldr r3, [r7, #20]
80040c6: f44f 717a mov.w r1, #1000 ; 0x3e8
80040ca: fb01 f303 mul.w r3, r1, r3
80040ce: 18d1 adds r1, r2, r3
80040d0: 68fa ldr r2, [r7, #12]
80040d2: 4613 mov r3, r2
80040d4: 009b lsls r3, r3, #2
80040d6: 4413 add r3, r2
80040d8: 005b lsls r3, r3, #1
80040da: 4618 mov r0, r3
80040dc: 693b ldr r3, [r7, #16]
80040de: 2264 movs r2, #100 ; 0x64
80040e0: fb02 f303 mul.w r3, r2, r3
80040e4: 4403 add r3, r0
80040e6: 18ca adds r2, r1, r3
80040e8: 68bb ldr r3, [r7, #8]
80040ea: 4413 add r3, r2
80040ec: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
80040ee: 4b28 ldr r3, [pc, #160] ; (8004190 <DoKeyDN+0x748>)
80040f0: 681b ldr r3, [r3, #0]
80040f2: 69fa ldr r2, [r7, #28]
80040f4: ee07 2a90 vmov s15, r2
80040f8: eef8 7a67 vcvt.f32.u32 s15, s15
80040fc: 4a25 ldr r2, [pc, #148] ; (8004194 <DoKeyDN+0x74c>)
80040fe: 015b lsls r3, r3, #5
8004100: 4413 add r3, r2
8004102: 3318 adds r3, #24
8004104: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8004108: 687b ldr r3, [r7, #4]
800410a: 2b01 cmp r3, #1
800410c: d112 bne.n 8004134 <DoKeyDN+0x6ec>
800410e: 4b20 ldr r3, [pc, #128] ; (8004190 <DoKeyDN+0x748>)
8004110: 681b ldr r3, [r3, #0]
8004112: 4920 ldr r1, [pc, #128] ; (8004194 <DoKeyDN+0x74c>)
8004114: 015a lsls r2, r3, #5
8004116: 440a add r2, r1
8004118: 3218 adds r2, #24
800411a: edd2 7a00 vldr s15, [r2]
800411e: ed9f 7a1e vldr s14, [pc, #120] ; 8004198 <DoKeyDN+0x750>
8004122: ee67 7a87 vmul.f32 s15, s15, s14
8004126: 4a1b ldr r2, [pc, #108] ; (8004194 <DoKeyDN+0x74c>)
8004128: 015b lsls r3, r3, #5
800412a: 4413 add r3, r2
800412c: 3318 adds r3, #24
800412e: edc3 7a00 vstr s15, [r3]
8004132: e054 b.n 80041de <DoKeyDN+0x796>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8004134: 687b ldr r3, [r7, #4]
8004136: 2b02 cmp r3, #2
8004138: d112 bne.n 8004160 <DoKeyDN+0x718>
800413a: 4b15 ldr r3, [pc, #84] ; (8004190 <DoKeyDN+0x748>)
800413c: 681b ldr r3, [r3, #0]
800413e: 4915 ldr r1, [pc, #84] ; (8004194 <DoKeyDN+0x74c>)
8004140: 015a lsls r2, r3, #5
8004142: 440a add r2, r1
8004144: 3218 adds r2, #24
8004146: edd2 7a00 vldr s15, [r2]
800414a: ed9f 7a14 vldr s14, [pc, #80] ; 800419c <DoKeyDN+0x754>
800414e: ee67 7a87 vmul.f32 s15, s15, s14
8004152: 4a10 ldr r2, [pc, #64] ; (8004194 <DoKeyDN+0x74c>)
8004154: 015b lsls r3, r3, #5
8004156: 4413 add r3, r2
8004158: 3318 adds r3, #24
800415a: edc3 7a00 vstr s15, [r3]
800415e: e03e b.n 80041de <DoKeyDN+0x796>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8004160: 687b ldr r3, [r7, #4]
8004162: 2b03 cmp r3, #3
8004164: d126 bne.n 80041b4 <DoKeyDN+0x76c>
8004166: 4b0a ldr r3, [pc, #40] ; (8004190 <DoKeyDN+0x748>)
8004168: 681b ldr r3, [r3, #0]
800416a: 490a ldr r1, [pc, #40] ; (8004194 <DoKeyDN+0x74c>)
800416c: 015a lsls r2, r3, #5
800416e: 440a add r2, r1
8004170: 3218 adds r2, #24
8004172: edd2 7a00 vldr s15, [r2]
8004176: ed9f 7a0a vldr s14, [pc, #40] ; 80041a0 <DoKeyDN+0x758>
800417a: ee67 7a87 vmul.f32 s15, s15, s14
800417e: 4a05 ldr r2, [pc, #20] ; (8004194 <DoKeyDN+0x74c>)
8004180: 015b lsls r3, r3, #5
8004182: 4413 add r3, r2
8004184: 3318 adds r3, #24
8004186: edc3 7a00 vstr s15, [r3]
800418a: e028 b.n 80041de <DoKeyDN+0x796>
800418c: 20020010 .word 0x20020010
8004190: 2006ba68 .word 0x2006ba68
8004194: 2006bca8 .word 0x2006bca8
8004198: 3dcccccd .word 0x3dcccccd
800419c: 3c23d70a .word 0x3c23d70a
80041a0: 3a83126f .word 0x3a83126f
80041a4: 38d1b717 .word 0x38d1b717
80041a8: 38d1b717 .word 0x38d1b717
80041ac: 47c35000 .word 0x47c35000
80041b0: 47c34f80 .word 0x47c34f80
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
80041b4: 687b ldr r3, [r7, #4]
80041b6: 2b04 cmp r3, #4
80041b8: d111 bne.n 80041de <DoKeyDN+0x796>
80041ba: 4bba ldr r3, [pc, #744] ; (80044a4 <DoKeyDN+0xa5c>)
80041bc: 681b ldr r3, [r3, #0]
80041be: 49ba ldr r1, [pc, #744] ; (80044a8 <DoKeyDN+0xa60>)
80041c0: 015a lsls r2, r3, #5
80041c2: 440a add r2, r1
80041c4: 3218 adds r2, #24
80041c6: edd2 7a00 vldr s15, [r2]
80041ca: ed9f 7ab8 vldr s14, [pc, #736] ; 80044ac <DoKeyDN+0xa64>
80041ce: ee67 7a87 vmul.f32 s15, s15, s14
80041d2: 4ab5 ldr r2, [pc, #724] ; (80044a8 <DoKeyDN+0xa60>)
80041d4: 015b lsls r3, r3, #5
80041d6: 4413 add r3, r2
80041d8: 3318 adds r3, #24
80041da: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
80041de: 4bb1 ldr r3, [pc, #708] ; (80044a4 <DoKeyDN+0xa5c>)
80041e0: 681b ldr r3, [r3, #0]
80041e2: 4ab1 ldr r2, [pc, #708] ; (80044a8 <DoKeyDN+0xa60>)
80041e4: 015b lsls r3, r3, #5
80041e6: 4413 add r3, r2
80041e8: 3318 adds r3, #24
80041ea: edd3 7a00 vldr s15, [r3]
80041ee: eef5 7ac0 vcmpe.f32 s15, #0.0
80041f2: eef1 fa10 vmrs APSR_nzcv, fpscr
80041f6: d807 bhi.n 8004208 <DoKeyDN+0x7c0>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
80041f8: 4baa ldr r3, [pc, #680] ; (80044a4 <DoKeyDN+0xa5c>)
80041fa: 681b ldr r3, [r3, #0]
80041fc: 4aaa ldr r2, [pc, #680] ; (80044a8 <DoKeyDN+0xa60>)
80041fe: 015b lsls r3, r3, #5
8004200: 4413 add r3, r2
8004202: 3318 adds r3, #24
8004204: 4aaa ldr r2, [pc, #680] ; (80044b0 <DoKeyDN+0xa68>)
8004206: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8004208: 4ba6 ldr r3, [pc, #664] ; (80044a4 <DoKeyDN+0xa5c>)
800420a: 681b ldr r3, [r3, #0]
800420c: 4aa6 ldr r2, [pc, #664] ; (80044a8 <DoKeyDN+0xa60>)
800420e: 015b lsls r3, r3, #5
8004210: 4413 add r3, r2
8004212: 3318 adds r3, #24
8004214: edd3 7a00 vldr s15, [r3]
8004218: ed9f 7aa6 vldr s14, [pc, #664] ; 80044b4 <DoKeyDN+0xa6c>
800421c: eef4 7ac7 vcmpe.f32 s15, s14
8004220: eef1 fa10 vmrs APSR_nzcv, fpscr
8004224: db07 blt.n 8004236 <DoKeyDN+0x7ee>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
8004226: 4b9f ldr r3, [pc, #636] ; (80044a4 <DoKeyDN+0xa5c>)
8004228: 681b ldr r3, [r3, #0]
800422a: 4a9f ldr r2, [pc, #636] ; (80044a8 <DoKeyDN+0xa60>)
800422c: 015b lsls r3, r3, #5
800422e: 4413 add r3, r2
8004230: 3318 adds r3, #24
8004232: 4aa1 ldr r2, [pc, #644] ; (80044b8 <DoKeyDN+0xa70>)
8004234: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
8004236: 4b9b ldr r3, [pc, #620] ; (80044a4 <DoKeyDN+0xa5c>)
8004238: 681b ldr r3, [r3, #0]
800423a: 4a9b ldr r2, [pc, #620] ; (80044a8 <DoKeyDN+0xa60>)
800423c: 015b lsls r3, r3, #5
800423e: 4413 add r3, r2
8004240: 3318 adds r3, #24
8004242: edd3 7a00 vldr s15, [r3]
8004246: eeb0 0a67 vmov.f32 s0, s15
800424a: f000 faa3 bl 8004794 <VerifyGain>
800424e: e289 b.n 8004764 <DoKeyDN+0xd1c>
}
else
if(menupos == Kikd_1 || menupos == Kikd_2 || menupos == Kikd_3 || menupos == Kikd_4)
8004250: 4b9a ldr r3, [pc, #616] ; (80044bc <DoKeyDN+0xa74>)
8004252: 781b ldrb r3, [r3, #0]
8004254: b2db uxtb r3, r3
8004256: 2b05 cmp r3, #5
8004258: d00f beq.n 800427a <DoKeyDN+0x832>
800425a: 4b98 ldr r3, [pc, #608] ; (80044bc <DoKeyDN+0xa74>)
800425c: 781b ldrb r3, [r3, #0]
800425e: b2db uxtb r3, r3
8004260: 2b0d cmp r3, #13
8004262: d00a beq.n 800427a <DoKeyDN+0x832>
8004264: 4b95 ldr r3, [pc, #596] ; (80044bc <DoKeyDN+0xa74>)
8004266: 781b ldrb r3, [r3, #0]
8004268: b2db uxtb r3, r3
800426a: 2b15 cmp r3, #21
800426c: d005 beq.n 800427a <DoKeyDN+0x832>
800426e: 4b93 ldr r3, [pc, #588] ; (80044bc <DoKeyDN+0xa74>)
8004270: 781b ldrb r3, [r3, #0]
8004272: b2db uxtb r3, r3
8004274: 2b1d cmp r3, #29
8004276: f040 80bd bne.w 80043f4 <DoKeyDN+0x9ac>
{
if(ikd) {
800427a: 68fb ldr r3, [r7, #12]
800427c: 2b00 cmp r3, #0
800427e: d002 beq.n 8004286 <DoKeyDN+0x83e>
ikd--;
8004280: 68fb ldr r3, [r7, #12]
8004282: 3b01 subs r3, #1
8004284: 60fb str r3, [r7, #12]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
8004286: 69bb ldr r3, [r7, #24]
8004288: f242 7210 movw r2, #10000 ; 0x2710
800428c: fb02 f203 mul.w r2, r2, r3
8004290: 697b ldr r3, [r7, #20]
8004292: f44f 717a mov.w r1, #1000 ; 0x3e8
8004296: fb01 f303 mul.w r3, r1, r3
800429a: 18d1 adds r1, r2, r3
800429c: 68fa ldr r2, [r7, #12]
800429e: 4613 mov r3, r2
80042a0: 009b lsls r3, r3, #2
80042a2: 4413 add r3, r2
80042a4: 005b lsls r3, r3, #1
80042a6: 4618 mov r0, r3
80042a8: 693b ldr r3, [r7, #16]
80042aa: 2264 movs r2, #100 ; 0x64
80042ac: fb02 f303 mul.w r3, r2, r3
80042b0: 4403 add r3, r0
80042b2: 18ca adds r2, r1, r3
80042b4: 68bb ldr r3, [r7, #8]
80042b6: 4413 add r3, r2
80042b8: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
80042ba: 4b7a ldr r3, [pc, #488] ; (80044a4 <DoKeyDN+0xa5c>)
80042bc: 681b ldr r3, [r3, #0]
80042be: 69fa ldr r2, [r7, #28]
80042c0: ee07 2a90 vmov s15, r2
80042c4: eef8 7a67 vcvt.f32.u32 s15, s15
80042c8: 4a77 ldr r2, [pc, #476] ; (80044a8 <DoKeyDN+0xa60>)
80042ca: 015b lsls r3, r3, #5
80042cc: 4413 add r3, r2
80042ce: 3318 adds r3, #24
80042d0: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
80042d4: 687b ldr r3, [r7, #4]
80042d6: 2b01 cmp r3, #1
80042d8: d112 bne.n 8004300 <DoKeyDN+0x8b8>
80042da: 4b72 ldr r3, [pc, #456] ; (80044a4 <DoKeyDN+0xa5c>)
80042dc: 681b ldr r3, [r3, #0]
80042de: 4972 ldr r1, [pc, #456] ; (80044a8 <DoKeyDN+0xa60>)
80042e0: 015a lsls r2, r3, #5
80042e2: 440a add r2, r1
80042e4: 3218 adds r2, #24
80042e6: edd2 7a00 vldr s15, [r2]
80042ea: ed9f 7a75 vldr s14, [pc, #468] ; 80044c0 <DoKeyDN+0xa78>
80042ee: ee67 7a87 vmul.f32 s15, s15, s14
80042f2: 4a6d ldr r2, [pc, #436] ; (80044a8 <DoKeyDN+0xa60>)
80042f4: 015b lsls r3, r3, #5
80042f6: 4413 add r3, r2
80042f8: 3318 adds r3, #24
80042fa: edc3 7a00 vstr s15, [r3]
80042fe: e040 b.n 8004382 <DoKeyDN+0x93a>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8004300: 687b ldr r3, [r7, #4]
8004302: 2b02 cmp r3, #2
8004304: d112 bne.n 800432c <DoKeyDN+0x8e4>
8004306: 4b67 ldr r3, [pc, #412] ; (80044a4 <DoKeyDN+0xa5c>)
8004308: 681b ldr r3, [r3, #0]
800430a: 4967 ldr r1, [pc, #412] ; (80044a8 <DoKeyDN+0xa60>)
800430c: 015a lsls r2, r3, #5
800430e: 440a add r2, r1
8004310: 3218 adds r2, #24
8004312: edd2 7a00 vldr s15, [r2]
8004316: ed9f 7a6b vldr s14, [pc, #428] ; 80044c4 <DoKeyDN+0xa7c>
800431a: ee67 7a87 vmul.f32 s15, s15, s14
800431e: 4a62 ldr r2, [pc, #392] ; (80044a8 <DoKeyDN+0xa60>)
8004320: 015b lsls r3, r3, #5
8004322: 4413 add r3, r2
8004324: 3318 adds r3, #24
8004326: edc3 7a00 vstr s15, [r3]
800432a: e02a b.n 8004382 <DoKeyDN+0x93a>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
800432c: 687b ldr r3, [r7, #4]
800432e: 2b03 cmp r3, #3
8004330: d112 bne.n 8004358 <DoKeyDN+0x910>
8004332: 4b5c ldr r3, [pc, #368] ; (80044a4 <DoKeyDN+0xa5c>)
8004334: 681b ldr r3, [r3, #0]
8004336: 495c ldr r1, [pc, #368] ; (80044a8 <DoKeyDN+0xa60>)
8004338: 015a lsls r2, r3, #5
800433a: 440a add r2, r1
800433c: 3218 adds r2, #24
800433e: edd2 7a00 vldr s15, [r2]
8004342: ed9f 7a61 vldr s14, [pc, #388] ; 80044c8 <DoKeyDN+0xa80>
8004346: ee67 7a87 vmul.f32 s15, s15, s14
800434a: 4a57 ldr r2, [pc, #348] ; (80044a8 <DoKeyDN+0xa60>)
800434c: 015b lsls r3, r3, #5
800434e: 4413 add r3, r2
8004350: 3318 adds r3, #24
8004352: edc3 7a00 vstr s15, [r3]
8004356: e014 b.n 8004382 <DoKeyDN+0x93a>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8004358: 687b ldr r3, [r7, #4]
800435a: 2b04 cmp r3, #4
800435c: d111 bne.n 8004382 <DoKeyDN+0x93a>
800435e: 4b51 ldr r3, [pc, #324] ; (80044a4 <DoKeyDN+0xa5c>)
8004360: 681b ldr r3, [r3, #0]
8004362: 4951 ldr r1, [pc, #324] ; (80044a8 <DoKeyDN+0xa60>)
8004364: 015a lsls r2, r3, #5
8004366: 440a add r2, r1
8004368: 3218 adds r2, #24
800436a: edd2 7a00 vldr s15, [r2]
800436e: ed9f 7a4f vldr s14, [pc, #316] ; 80044ac <DoKeyDN+0xa64>
8004372: ee67 7a87 vmul.f32 s15, s15, s14
8004376: 4a4c ldr r2, [pc, #304] ; (80044a8 <DoKeyDN+0xa60>)
8004378: 015b lsls r3, r3, #5
800437a: 4413 add r3, r2
800437c: 3318 adds r3, #24
800437e: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
8004382: 4b48 ldr r3, [pc, #288] ; (80044a4 <DoKeyDN+0xa5c>)
8004384: 681b ldr r3, [r3, #0]
8004386: 4a48 ldr r2, [pc, #288] ; (80044a8 <DoKeyDN+0xa60>)
8004388: 015b lsls r3, r3, #5
800438a: 4413 add r3, r2
800438c: 3318 adds r3, #24
800438e: edd3 7a00 vldr s15, [r3]
8004392: eef5 7ac0 vcmpe.f32 s15, #0.0
8004396: eef1 fa10 vmrs APSR_nzcv, fpscr
800439a: d807 bhi.n 80043ac <DoKeyDN+0x964>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
800439c: 4b41 ldr r3, [pc, #260] ; (80044a4 <DoKeyDN+0xa5c>)
800439e: 681b ldr r3, [r3, #0]
80043a0: 4a41 ldr r2, [pc, #260] ; (80044a8 <DoKeyDN+0xa60>)
80043a2: 015b lsls r3, r3, #5
80043a4: 4413 add r3, r2
80043a6: 3318 adds r3, #24
80043a8: 4a41 ldr r2, [pc, #260] ; (80044b0 <DoKeyDN+0xa68>)
80043aa: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
80043ac: 4b3d ldr r3, [pc, #244] ; (80044a4 <DoKeyDN+0xa5c>)
80043ae: 681b ldr r3, [r3, #0]
80043b0: 4a3d ldr r2, [pc, #244] ; (80044a8 <DoKeyDN+0xa60>)
80043b2: 015b lsls r3, r3, #5
80043b4: 4413 add r3, r2
80043b6: 3318 adds r3, #24
80043b8: edd3 7a00 vldr s15, [r3]
80043bc: ed9f 7a3d vldr s14, [pc, #244] ; 80044b4 <DoKeyDN+0xa6c>
80043c0: eef4 7ac7 vcmpe.f32 s15, s14
80043c4: eef1 fa10 vmrs APSR_nzcv, fpscr
80043c8: db07 blt.n 80043da <DoKeyDN+0x992>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
80043ca: 4b36 ldr r3, [pc, #216] ; (80044a4 <DoKeyDN+0xa5c>)
80043cc: 681b ldr r3, [r3, #0]
80043ce: 4a36 ldr r2, [pc, #216] ; (80044a8 <DoKeyDN+0xa60>)
80043d0: 015b lsls r3, r3, #5
80043d2: 4413 add r3, r2
80043d4: 3318 adds r3, #24
80043d6: 4a38 ldr r2, [pc, #224] ; (80044b8 <DoKeyDN+0xa70>)
80043d8: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
80043da: 4b32 ldr r3, [pc, #200] ; (80044a4 <DoKeyDN+0xa5c>)
80043dc: 681b ldr r3, [r3, #0]
80043de: 4a32 ldr r2, [pc, #200] ; (80044a8 <DoKeyDN+0xa60>)
80043e0: 015b lsls r3, r3, #5
80043e2: 4413 add r3, r2
80043e4: 3318 adds r3, #24
80043e6: edd3 7a00 vldr s15, [r3]
80043ea: eeb0 0a67 vmov.f32 s0, s15
80043ee: f000 f9d1 bl 8004794 <VerifyGain>
80043f2: e1b7 b.n 8004764 <DoKeyDN+0xd1c>
}
else
if(menupos == Kike_1 || menupos == Kike_2 || menupos == Kike_3 || menupos == Kike_4)
80043f4: 4b31 ldr r3, [pc, #196] ; (80044bc <DoKeyDN+0xa74>)
80043f6: 781b ldrb r3, [r3, #0]
80043f8: b2db uxtb r3, r3
80043fa: 2b06 cmp r3, #6
80043fc: d00f beq.n 800441e <DoKeyDN+0x9d6>
80043fe: 4b2f ldr r3, [pc, #188] ; (80044bc <DoKeyDN+0xa74>)
8004400: 781b ldrb r3, [r3, #0]
8004402: b2db uxtb r3, r3
8004404: 2b0e cmp r3, #14
8004406: d00a beq.n 800441e <DoKeyDN+0x9d6>
8004408: 4b2c ldr r3, [pc, #176] ; (80044bc <DoKeyDN+0xa74>)
800440a: 781b ldrb r3, [r3, #0]
800440c: b2db uxtb r3, r3
800440e: 2b16 cmp r3, #22
8004410: d005 beq.n 800441e <DoKeyDN+0x9d6>
8004412: 4b2a ldr r3, [pc, #168] ; (80044bc <DoKeyDN+0xa74>)
8004414: 781b ldrb r3, [r3, #0]
8004416: b2db uxtb r3, r3
8004418: 2b1e cmp r3, #30
800441a: f040 80d1 bne.w 80045c0 <DoKeyDN+0xb78>
{
if(ike) {
800441e: 68bb ldr r3, [r7, #8]
8004420: 2b00 cmp r3, #0
8004422: d002 beq.n 800442a <DoKeyDN+0x9e2>
ike--;
8004424: 68bb ldr r3, [r7, #8]
8004426: 3b01 subs r3, #1
8004428: 60bb str r3, [r7, #8]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
800442a: 69bb ldr r3, [r7, #24]
800442c: f242 7210 movw r2, #10000 ; 0x2710
8004430: fb02 f203 mul.w r2, r2, r3
8004434: 697b ldr r3, [r7, #20]
8004436: f44f 717a mov.w r1, #1000 ; 0x3e8
800443a: fb01 f303 mul.w r3, r1, r3
800443e: 18d1 adds r1, r2, r3
8004440: 68fa ldr r2, [r7, #12]
8004442: 4613 mov r3, r2
8004444: 009b lsls r3, r3, #2
8004446: 4413 add r3, r2
8004448: 005b lsls r3, r3, #1
800444a: 4618 mov r0, r3
800444c: 693b ldr r3, [r7, #16]
800444e: 2264 movs r2, #100 ; 0x64
8004450: fb02 f303 mul.w r3, r2, r3
8004454: 4403 add r3, r0
8004456: 18ca adds r2, r1, r3
8004458: 68bb ldr r3, [r7, #8]
800445a: 4413 add r3, r2
800445c: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
800445e: 4b11 ldr r3, [pc, #68] ; (80044a4 <DoKeyDN+0xa5c>)
8004460: 681b ldr r3, [r3, #0]
8004462: 69fa ldr r2, [r7, #28]
8004464: ee07 2a90 vmov s15, r2
8004468: eef8 7a67 vcvt.f32.u32 s15, s15
800446c: 4a0e ldr r2, [pc, #56] ; (80044a8 <DoKeyDN+0xa60>)
800446e: 015b lsls r3, r3, #5
8004470: 4413 add r3, r2
8004472: 3318 adds r3, #24
8004474: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8004478: 687b ldr r3, [r7, #4]
800447a: 2b01 cmp r3, #1
800447c: d126 bne.n 80044cc <DoKeyDN+0xa84>
800447e: 4b09 ldr r3, [pc, #36] ; (80044a4 <DoKeyDN+0xa5c>)
8004480: 681b ldr r3, [r3, #0]
8004482: 4909 ldr r1, [pc, #36] ; (80044a8 <DoKeyDN+0xa60>)
8004484: 015a lsls r2, r3, #5
8004486: 440a add r2, r1
8004488: 3218 adds r2, #24
800448a: edd2 7a00 vldr s15, [r2]
800448e: ed9f 7a0c vldr s14, [pc, #48] ; 80044c0 <DoKeyDN+0xa78>
8004492: ee67 7a87 vmul.f32 s15, s15, s14
8004496: 4a04 ldr r2, [pc, #16] ; (80044a8 <DoKeyDN+0xa60>)
8004498: 015b lsls r3, r3, #5
800449a: 4413 add r3, r2
800449c: 3318 adds r3, #24
800449e: edc3 7a00 vstr s15, [r3]
80044a2: e054 b.n 800454e <DoKeyDN+0xb06>
80044a4: 2006ba68 .word 0x2006ba68
80044a8: 2006bca8 .word 0x2006bca8
80044ac: 38d1b717 .word 0x38d1b717
80044b0: 38d1b717 .word 0x38d1b717
80044b4: 47c35000 .word 0x47c35000
80044b8: 47c34f80 .word 0x47c34f80
80044bc: 20020010 .word 0x20020010
80044c0: 3dcccccd .word 0x3dcccccd
80044c4: 3c23d70a .word 0x3c23d70a
80044c8: 3a83126f .word 0x3a83126f
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
80044cc: 687b ldr r3, [r7, #4]
80044ce: 2b02 cmp r3, #2
80044d0: d112 bne.n 80044f8 <DoKeyDN+0xab0>
80044d2: 4ba6 ldr r3, [pc, #664] ; (800476c <DoKeyDN+0xd24>)
80044d4: 681b ldr r3, [r3, #0]
80044d6: 49a6 ldr r1, [pc, #664] ; (8004770 <DoKeyDN+0xd28>)
80044d8: 015a lsls r2, r3, #5
80044da: 440a add r2, r1
80044dc: 3218 adds r2, #24
80044de: edd2 7a00 vldr s15, [r2]
80044e2: ed9f 7aa4 vldr s14, [pc, #656] ; 8004774 <DoKeyDN+0xd2c>
80044e6: ee67 7a87 vmul.f32 s15, s15, s14
80044ea: 4aa1 ldr r2, [pc, #644] ; (8004770 <DoKeyDN+0xd28>)
80044ec: 015b lsls r3, r3, #5
80044ee: 4413 add r3, r2
80044f0: 3318 adds r3, #24
80044f2: edc3 7a00 vstr s15, [r3]
80044f6: e02a b.n 800454e <DoKeyDN+0xb06>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
80044f8: 687b ldr r3, [r7, #4]
80044fa: 2b03 cmp r3, #3
80044fc: d112 bne.n 8004524 <DoKeyDN+0xadc>
80044fe: 4b9b ldr r3, [pc, #620] ; (800476c <DoKeyDN+0xd24>)
8004500: 681b ldr r3, [r3, #0]
8004502: 499b ldr r1, [pc, #620] ; (8004770 <DoKeyDN+0xd28>)
8004504: 015a lsls r2, r3, #5
8004506: 440a add r2, r1
8004508: 3218 adds r2, #24
800450a: edd2 7a00 vldr s15, [r2]
800450e: ed9f 7a9a vldr s14, [pc, #616] ; 8004778 <DoKeyDN+0xd30>
8004512: ee67 7a87 vmul.f32 s15, s15, s14
8004516: 4a96 ldr r2, [pc, #600] ; (8004770 <DoKeyDN+0xd28>)
8004518: 015b lsls r3, r3, #5
800451a: 4413 add r3, r2
800451c: 3318 adds r3, #24
800451e: edc3 7a00 vstr s15, [r3]
8004522: e014 b.n 800454e <DoKeyDN+0xb06>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8004524: 687b ldr r3, [r7, #4]
8004526: 2b04 cmp r3, #4
8004528: d111 bne.n 800454e <DoKeyDN+0xb06>
800452a: 4b90 ldr r3, [pc, #576] ; (800476c <DoKeyDN+0xd24>)
800452c: 681b ldr r3, [r3, #0]
800452e: 4990 ldr r1, [pc, #576] ; (8004770 <DoKeyDN+0xd28>)
8004530: 015a lsls r2, r3, #5
8004532: 440a add r2, r1
8004534: 3218 adds r2, #24
8004536: edd2 7a00 vldr s15, [r2]
800453a: ed9f 7a90 vldr s14, [pc, #576] ; 800477c <DoKeyDN+0xd34>
800453e: ee67 7a87 vmul.f32 s15, s15, s14
8004542: 4a8b ldr r2, [pc, #556] ; (8004770 <DoKeyDN+0xd28>)
8004544: 015b lsls r3, r3, #5
8004546: 4413 add r3, r2
8004548: 3318 adds r3, #24
800454a: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
800454e: 4b87 ldr r3, [pc, #540] ; (800476c <DoKeyDN+0xd24>)
8004550: 681b ldr r3, [r3, #0]
8004552: 4a87 ldr r2, [pc, #540] ; (8004770 <DoKeyDN+0xd28>)
8004554: 015b lsls r3, r3, #5
8004556: 4413 add r3, r2
8004558: 3318 adds r3, #24
800455a: edd3 7a00 vldr s15, [r3]
800455e: eef5 7ac0 vcmpe.f32 s15, #0.0
8004562: eef1 fa10 vmrs APSR_nzcv, fpscr
8004566: d807 bhi.n 8004578 <DoKeyDN+0xb30>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
8004568: 4b80 ldr r3, [pc, #512] ; (800476c <DoKeyDN+0xd24>)
800456a: 681b ldr r3, [r3, #0]
800456c: 4a80 ldr r2, [pc, #512] ; (8004770 <DoKeyDN+0xd28>)
800456e: 015b lsls r3, r3, #5
8004570: 4413 add r3, r2
8004572: 3318 adds r3, #24
8004574: 4a82 ldr r2, [pc, #520] ; (8004780 <DoKeyDN+0xd38>)
8004576: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8004578: 4b7c ldr r3, [pc, #496] ; (800476c <DoKeyDN+0xd24>)
800457a: 681b ldr r3, [r3, #0]
800457c: 4a7c ldr r2, [pc, #496] ; (8004770 <DoKeyDN+0xd28>)
800457e: 015b lsls r3, r3, #5
8004580: 4413 add r3, r2
8004582: 3318 adds r3, #24
8004584: edd3 7a00 vldr s15, [r3]
8004588: ed9f 7a7e vldr s14, [pc, #504] ; 8004784 <DoKeyDN+0xd3c>
800458c: eef4 7ac7 vcmpe.f32 s15, s14
8004590: eef1 fa10 vmrs APSR_nzcv, fpscr
8004594: db07 blt.n 80045a6 <DoKeyDN+0xb5e>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
8004596: 4b75 ldr r3, [pc, #468] ; (800476c <DoKeyDN+0xd24>)
8004598: 681b ldr r3, [r3, #0]
800459a: 4a75 ldr r2, [pc, #468] ; (8004770 <DoKeyDN+0xd28>)
800459c: 015b lsls r3, r3, #5
800459e: 4413 add r3, r2
80045a0: 3318 adds r3, #24
80045a2: 4a79 ldr r2, [pc, #484] ; (8004788 <DoKeyDN+0xd40>)
80045a4: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
80045a6: 4b71 ldr r3, [pc, #452] ; (800476c <DoKeyDN+0xd24>)
80045a8: 681b ldr r3, [r3, #0]
80045aa: 4a71 ldr r2, [pc, #452] ; (8004770 <DoKeyDN+0xd28>)
80045ac: 015b lsls r3, r3, #5
80045ae: 4413 add r3, r2
80045b0: 3318 adds r3, #24
80045b2: edd3 7a00 vldr s15, [r3]
80045b6: eeb0 0a67 vmov.f32 s0, s15
80045ba: f000 f8eb bl 8004794 <VerifyGain>
80045be: e0d1 b.n 8004764 <DoKeyDN+0xd1c>
}
else
if(menupos == Kpt_1 || menupos == Kpt_2 || menupos == Kpt_3 || menupos == Kpt_4)
80045c0: 4b72 ldr r3, [pc, #456] ; (800478c <DoKeyDN+0xd44>)
80045c2: 781b ldrb r3, [r3, #0]
80045c4: b2db uxtb r3, r3
80045c6: 2b07 cmp r3, #7
80045c8: d00f beq.n 80045ea <DoKeyDN+0xba2>
80045ca: 4b70 ldr r3, [pc, #448] ; (800478c <DoKeyDN+0xd44>)
80045cc: 781b ldrb r3, [r3, #0]
80045ce: b2db uxtb r3, r3
80045d0: 2b0f cmp r3, #15
80045d2: d00a beq.n 80045ea <DoKeyDN+0xba2>
80045d4: 4b6d ldr r3, [pc, #436] ; (800478c <DoKeyDN+0xd44>)
80045d6: 781b ldrb r3, [r3, #0]
80045d8: b2db uxtb r3, r3
80045da: 2b17 cmp r3, #23
80045dc: d005 beq.n 80045ea <DoKeyDN+0xba2>
80045de: 4b6b ldr r3, [pc, #428] ; (800478c <DoKeyDN+0xd44>)
80045e0: 781b ldrb r3, [r3, #0]
80045e2: b2db uxtb r3, r3
80045e4: 2b1f cmp r3, #31
80045e6: f040 80bd bne.w 8004764 <DoKeyDN+0xd1c>
{
if(ipt < 4) {
80045ea: 687b ldr r3, [r7, #4]
80045ec: 2b03 cmp r3, #3
80045ee: d802 bhi.n 80045f6 <DoKeyDN+0xbae>
ipt++;
80045f0: 687b ldr r3, [r7, #4]
80045f2: 3301 adds r3, #1
80045f4: 607b str r3, [r7, #4]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
80045f6: 69bb ldr r3, [r7, #24]
80045f8: f242 7210 movw r2, #10000 ; 0x2710
80045fc: fb02 f203 mul.w r2, r2, r3
8004600: 697b ldr r3, [r7, #20]
8004602: f44f 717a mov.w r1, #1000 ; 0x3e8
8004606: fb01 f303 mul.w r3, r1, r3
800460a: 18d1 adds r1, r2, r3
800460c: 68fa ldr r2, [r7, #12]
800460e: 4613 mov r3, r2
8004610: 009b lsls r3, r3, #2
8004612: 4413 add r3, r2
8004614: 005b lsls r3, r3, #1
8004616: 4618 mov r0, r3
8004618: 693b ldr r3, [r7, #16]
800461a: 2264 movs r2, #100 ; 0x64
800461c: fb02 f303 mul.w r3, r2, r3
8004620: 4403 add r3, r0
8004622: 18ca adds r2, r1, r3
8004624: 68bb ldr r3, [r7, #8]
8004626: 4413 add r3, r2
8004628: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
800462a: 4b50 ldr r3, [pc, #320] ; (800476c <DoKeyDN+0xd24>)
800462c: 681b ldr r3, [r3, #0]
800462e: 69fa ldr r2, [r7, #28]
8004630: ee07 2a90 vmov s15, r2
8004634: eef8 7a67 vcvt.f32.u32 s15, s15
8004638: 4a4d ldr r2, [pc, #308] ; (8004770 <DoKeyDN+0xd28>)
800463a: 015b lsls r3, r3, #5
800463c: 4413 add r3, r2
800463e: 3318 adds r3, #24
8004640: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8004644: 687b ldr r3, [r7, #4]
8004646: 2b01 cmp r3, #1
8004648: d112 bne.n 8004670 <DoKeyDN+0xc28>
800464a: 4b48 ldr r3, [pc, #288] ; (800476c <DoKeyDN+0xd24>)
800464c: 681b ldr r3, [r3, #0]
800464e: 4948 ldr r1, [pc, #288] ; (8004770 <DoKeyDN+0xd28>)
8004650: 015a lsls r2, r3, #5
8004652: 440a add r2, r1
8004654: 3218 adds r2, #24
8004656: edd2 7a00 vldr s15, [r2]
800465a: ed9f 7a4d vldr s14, [pc, #308] ; 8004790 <DoKeyDN+0xd48>
800465e: ee67 7a87 vmul.f32 s15, s15, s14
8004662: 4a43 ldr r2, [pc, #268] ; (8004770 <DoKeyDN+0xd28>)
8004664: 015b lsls r3, r3, #5
8004666: 4413 add r3, r2
8004668: 3318 adds r3, #24
800466a: edc3 7a00 vstr s15, [r3]
800466e: e040 b.n 80046f2 <DoKeyDN+0xcaa>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8004670: 687b ldr r3, [r7, #4]
8004672: 2b02 cmp r3, #2
8004674: d112 bne.n 800469c <DoKeyDN+0xc54>
8004676: 4b3d ldr r3, [pc, #244] ; (800476c <DoKeyDN+0xd24>)
8004678: 681b ldr r3, [r3, #0]
800467a: 493d ldr r1, [pc, #244] ; (8004770 <DoKeyDN+0xd28>)
800467c: 015a lsls r2, r3, #5
800467e: 440a add r2, r1
8004680: 3218 adds r2, #24
8004682: edd2 7a00 vldr s15, [r2]
8004686: ed9f 7a3b vldr s14, [pc, #236] ; 8004774 <DoKeyDN+0xd2c>
800468a: ee67 7a87 vmul.f32 s15, s15, s14
800468e: 4a38 ldr r2, [pc, #224] ; (8004770 <DoKeyDN+0xd28>)
8004690: 015b lsls r3, r3, #5
8004692: 4413 add r3, r2
8004694: 3318 adds r3, #24
8004696: edc3 7a00 vstr s15, [r3]
800469a: e02a b.n 80046f2 <DoKeyDN+0xcaa>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
800469c: 687b ldr r3, [r7, #4]
800469e: 2b03 cmp r3, #3
80046a0: d112 bne.n 80046c8 <DoKeyDN+0xc80>
80046a2: 4b32 ldr r3, [pc, #200] ; (800476c <DoKeyDN+0xd24>)
80046a4: 681b ldr r3, [r3, #0]
80046a6: 4932 ldr r1, [pc, #200] ; (8004770 <DoKeyDN+0xd28>)
80046a8: 015a lsls r2, r3, #5
80046aa: 440a add r2, r1
80046ac: 3218 adds r2, #24
80046ae: edd2 7a00 vldr s15, [r2]
80046b2: ed9f 7a31 vldr s14, [pc, #196] ; 8004778 <DoKeyDN+0xd30>
80046b6: ee67 7a87 vmul.f32 s15, s15, s14
80046ba: 4a2d ldr r2, [pc, #180] ; (8004770 <DoKeyDN+0xd28>)
80046bc: 015b lsls r3, r3, #5
80046be: 4413 add r3, r2
80046c0: 3318 adds r3, #24
80046c2: edc3 7a00 vstr s15, [r3]
80046c6: e014 b.n 80046f2 <DoKeyDN+0xcaa>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
80046c8: 687b ldr r3, [r7, #4]
80046ca: 2b04 cmp r3, #4
80046cc: d111 bne.n 80046f2 <DoKeyDN+0xcaa>
80046ce: 4b27 ldr r3, [pc, #156] ; (800476c <DoKeyDN+0xd24>)
80046d0: 681b ldr r3, [r3, #0]
80046d2: 4927 ldr r1, [pc, #156] ; (8004770 <DoKeyDN+0xd28>)
80046d4: 015a lsls r2, r3, #5
80046d6: 440a add r2, r1
80046d8: 3218 adds r2, #24
80046da: edd2 7a00 vldr s15, [r2]
80046de: ed9f 7a27 vldr s14, [pc, #156] ; 800477c <DoKeyDN+0xd34>
80046e2: ee67 7a87 vmul.f32 s15, s15, s14
80046e6: 4a22 ldr r2, [pc, #136] ; (8004770 <DoKeyDN+0xd28>)
80046e8: 015b lsls r3, r3, #5
80046ea: 4413 add r3, r2
80046ec: 3318 adds r3, #24
80046ee: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS <= 0.0f) {
80046f2: 4b1e ldr r3, [pc, #120] ; (800476c <DoKeyDN+0xd24>)
80046f4: 681b ldr r3, [r3, #0]
80046f6: 4a1e ldr r2, [pc, #120] ; (8004770 <DoKeyDN+0xd28>)
80046f8: 015b lsls r3, r3, #5
80046fa: 4413 add r3, r2
80046fc: 3318 adds r3, #24
80046fe: edd3 7a00 vldr s15, [r3]
8004702: eef5 7ac0 vcmpe.f32 s15, #0.0
8004706: eef1 fa10 vmrs APSR_nzcv, fpscr
800470a: d807 bhi.n 800471c <DoKeyDN+0xcd4>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0001f;
800470c: 4b17 ldr r3, [pc, #92] ; (800476c <DoKeyDN+0xd24>)
800470e: 681b ldr r3, [r3, #0]
8004710: 4a17 ldr r2, [pc, #92] ; (8004770 <DoKeyDN+0xd28>)
8004712: 015b lsls r3, r3, #5
8004714: 4413 add r3, r2
8004716: 3318 adds r3, #24
8004718: 4a19 ldr r2, [pc, #100] ; (8004780 <DoKeyDN+0xd38>)
800471a: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
800471c: 4b13 ldr r3, [pc, #76] ; (800476c <DoKeyDN+0xd24>)
800471e: 681b ldr r3, [r3, #0]
8004720: 4a13 ldr r2, [pc, #76] ; (8004770 <DoKeyDN+0xd28>)
8004722: 015b lsls r3, r3, #5
8004724: 4413 add r3, r2
8004726: 3318 adds r3, #24
8004728: edd3 7a00 vldr s15, [r3]
800472c: ed9f 7a15 vldr s14, [pc, #84] ; 8004784 <DoKeyDN+0xd3c>
8004730: eef4 7ac7 vcmpe.f32 s15, s14
8004734: eef1 fa10 vmrs APSR_nzcv, fpscr
8004738: db07 blt.n 800474a <DoKeyDN+0xd02>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
800473a: 4b0c ldr r3, [pc, #48] ; (800476c <DoKeyDN+0xd24>)
800473c: 681b ldr r3, [r3, #0]
800473e: 4a0c ldr r2, [pc, #48] ; (8004770 <DoKeyDN+0xd28>)
8004740: 015b lsls r3, r3, #5
8004742: 4413 add r3, r2
8004744: 3318 adds r3, #24
8004746: 4a10 ldr r2, [pc, #64] ; (8004788 <DoKeyDN+0xd40>)
8004748: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
800474a: 4b08 ldr r3, [pc, #32] ; (800476c <DoKeyDN+0xd24>)
800474c: 681b ldr r3, [r3, #0]
800474e: 4a08 ldr r2, [pc, #32] ; (8004770 <DoKeyDN+0xd28>)
8004750: 015b lsls r3, r3, #5
8004752: 4413 add r3, r2
8004754: 3318 adds r3, #24
8004756: edd3 7a00 vldr s15, [r3]
800475a: eeb0 0a67 vmov.f32 s0, s15
800475e: f000 f819 bl 8004794 <VerifyGain>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
}*/
}
8004762: e7ff b.n 8004764 <DoKeyDN+0xd1c>
8004764: bf00 nop
8004766: 3720 adds r7, #32
8004768: 46bd mov sp, r7
800476a: bd80 pop {r7, pc}
800476c: 2006ba68 .word 0x2006ba68
8004770: 2006bca8 .word 0x2006bca8
8004774: 3c23d70a .word 0x3c23d70a
8004778: 3a83126f .word 0x3a83126f
800477c: 38d1b717 .word 0x38d1b717
8004780: 38d1b717 .word 0x38d1b717
8004784: 47c35000 .word 0x47c35000
8004788: 47c34f80 .word 0x47c34f80
800478c: 20020010 .word 0x20020010
8004790: 3dcccccd .word 0x3dcccccd
08004794 <VerifyGain>:
void VerifyGain(float32_t sens)
{
8004794: b480 push {r7}
8004796: b083 sub sp, #12
8004798: af00 add r7, sp, #0
800479a: ed87 0a01 vstr s0, [r7, #4]
return; //!!!<21><><CE><F2><EA><EB><FE><F7>
800479e: bf00 nop
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku0_1)
{
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku0_1;
}
}
}
80047a0: 370c adds r7, #12
80047a2: 46bd mov sp, r7
80047a4: f85d 7b04 ldr.w r7, [sp], #4
80047a8: 4770 bx lr
...
080047ac <LTDC_Reset>:
}
void LTDC_Reset(void)
{
80047ac: b580 push {r7, lr}
80047ae: af00 add r7, sp, #0
HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_SET); HAL_Delay(100);
80047b0: 2201 movs r2, #1
80047b2: 2140 movs r1, #64 ; 0x40
80047b4: 480b ldr r0, [pc, #44] ; (80047e4 <LTDC_Reset+0x38>)
80047b6: f00e fa0d bl 8012bd4 <HAL_GPIO_WritePin>
80047ba: 2064 movs r0, #100 ; 0x64
80047bc: f00c fede bl 801157c <HAL_Delay>
HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_RESET); HAL_Delay(100);
80047c0: 2200 movs r2, #0
80047c2: 2140 movs r1, #64 ; 0x40
80047c4: 4807 ldr r0, [pc, #28] ; (80047e4 <LTDC_Reset+0x38>)
80047c6: f00e fa05 bl 8012bd4 <HAL_GPIO_WritePin>
80047ca: 2064 movs r0, #100 ; 0x64
80047cc: f00c fed6 bl 801157c <HAL_Delay>
HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_SET); HAL_Delay(100);
80047d0: 2201 movs r2, #1
80047d2: 2140 movs r1, #64 ; 0x40
80047d4: 4803 ldr r0, [pc, #12] ; (80047e4 <LTDC_Reset+0x38>)
80047d6: f00e f9fd bl 8012bd4 <HAL_GPIO_WritePin>
80047da: 2064 movs r0, #100 ; 0x64
80047dc: f00c fece bl 801157c <HAL_Delay>
}
80047e0: bf00 nop
80047e2: bd80 pop {r7, pc}
80047e4: 40020c00 .word 0x40020c00
080047e8 <MX_LTDC_Init>:
/* LTDC init function */
void MX_LTDC_Init(void)
{
80047e8: b580 push {r7, lr}
80047ea: b09c sub sp, #112 ; 0x70
80047ec: af00 add r7, sp, #0
__IO uint32_t tickstart;
// SET_BIT(RCC->CR, RCC_CR_PLLSAION);
// HAL_Delay(100);
LTDC_Reset();
80047ee: f7ff ffdd bl 80047ac <LTDC_Reset>
__HAL_RCC_PLLSAI_ENABLE();
80047f2: 4a8c ldr r2, [pc, #560] ; (8004a24 <MX_LTDC_Init+0x23c>)
80047f4: 4b8b ldr r3, [pc, #556] ; (8004a24 <MX_LTDC_Init+0x23c>)
80047f6: 681b ldr r3, [r3, #0]
80047f8: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
80047fc: 6013 str r3, [r2, #0]
tickstart = HAL_GetTick();
80047fe: f00c feb1 bl 8011564 <HAL_GetTick>
8004802: 4603 mov r3, r0
8004804: 607b str r3, [r7, #4]
while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET)
8004806: e008 b.n 800481a <MX_LTDC_Init+0x32>
{
if((HAL_GetTick() - tickstart) >= PLLSAI_TIMEOUT_VALUE) {
8004808: f00c feac bl 8011564 <HAL_GetTick>
800480c: 4602 mov r2, r0
800480e: 687b ldr r3, [r7, #4]
8004810: 1ad3 subs r3, r2, r3
8004812: 2b63 cmp r3, #99 ; 0x63
8004814: d901 bls.n 800481a <MX_LTDC_Init+0x32>
Error_Handler();
8004816: f001 fae9 bl 8005dec <Error_Handler>
while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET)
800481a: 4b82 ldr r3, [pc, #520] ; (8004a24 <MX_LTDC_Init+0x23c>)
800481c: 681b ldr r3, [r3, #0]
800481e: f003 5300 and.w r3, r3, #536870912 ; 0x20000000
8004822: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000
8004826: d1ef bne.n 8004808 <MX_LTDC_Init+0x20>
}
}
hLtdcHandler.Instance = LTDC;
8004828: 4b7f ldr r3, [pc, #508] ; (8004a28 <MX_LTDC_Init+0x240>)
800482a: 4a80 ldr r2, [pc, #512] ; (8004a2c <MX_LTDC_Init+0x244>)
800482c: 601a str r2, [r3, #0]
hLtdcHandler.Init.HSPolarity = LTDC_HSPOLARITY_AL;
800482e: 4b7e ldr r3, [pc, #504] ; (8004a28 <MX_LTDC_Init+0x240>)
8004830: 2200 movs r2, #0
8004832: 605a str r2, [r3, #4]
hLtdcHandler.Init.VSPolarity = LTDC_VSPOLARITY_AL;
8004834: 4b7c ldr r3, [pc, #496] ; (8004a28 <MX_LTDC_Init+0x240>)
8004836: 2200 movs r2, #0
8004838: 609a str r2, [r3, #8]
hLtdcHandler.Init.DEPolarity = LTDC_DEPOLARITY_AH;
800483a: 4b7b ldr r3, [pc, #492] ; (8004a28 <MX_LTDC_Init+0x240>)
800483c: f04f 5200 mov.w r2, #536870912 ; 0x20000000
8004840: 60da str r2, [r3, #12]
hLtdcHandler.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
8004842: 4b79 ldr r3, [pc, #484] ; (8004a28 <MX_LTDC_Init+0x240>)
8004844: 2200 movs r2, #0
8004846: 611a str r2, [r3, #16]
hLtdcHandler.Init.HorizontalSync = 38;
8004848: 4b77 ldr r3, [pc, #476] ; (8004a28 <MX_LTDC_Init+0x240>)
800484a: 2226 movs r2, #38 ; 0x26
800484c: 615a str r2, [r3, #20]
hLtdcHandler.Init.VerticalSync = 4;
800484e: 4b76 ldr r3, [pc, #472] ; (8004a28 <MX_LTDC_Init+0x240>)
8004850: 2204 movs r2, #4
8004852: 619a str r2, [r3, #24]
hLtdcHandler.Init.AccumulatedHBP = 68;
8004854: 4b74 ldr r3, [pc, #464] ; (8004a28 <MX_LTDC_Init+0x240>)
8004856: 2244 movs r2, #68 ; 0x44
8004858: 61da str r2, [r3, #28]
hLtdcHandler.Init.AccumulatedVBP = 18;
800485a: 4b73 ldr r3, [pc, #460] ; (8004a28 <MX_LTDC_Init+0x240>)
800485c: 2212 movs r2, #18
800485e: 621a str r2, [r3, #32]
hLtdcHandler.Init.AccumulatedActiveW = 388;
8004860: 4b71 ldr r3, [pc, #452] ; (8004a28 <MX_LTDC_Init+0x240>)
8004862: f44f 72c2 mov.w r2, #388 ; 0x184
8004866: 625a str r2, [r3, #36] ; 0x24
hLtdcHandler.Init.AccumulatedActiveH = 262;
8004868: 4b6f ldr r3, [pc, #444] ; (8004a28 <MX_LTDC_Init+0x240>)
800486a: f44f 7283 mov.w r2, #262 ; 0x106
800486e: 629a str r2, [r3, #40] ; 0x28
hLtdcHandler.Init.TotalWidth = 408;
8004870: 4b6d ldr r3, [pc, #436] ; (8004a28 <MX_LTDC_Init+0x240>)
8004872: f44f 72cc mov.w r2, #408 ; 0x198
8004876: 62da str r2, [r3, #44] ; 0x2c
hLtdcHandler.Init.TotalHeigh = 263;
8004878: 4b6b ldr r3, [pc, #428] ; (8004a28 <MX_LTDC_Init+0x240>)
800487a: f240 1207 movw r2, #263 ; 0x107
800487e: 631a str r2, [r3, #48] ; 0x30
hLtdcHandler.Init.Backcolor.Blue = 0;
8004880: 4b69 ldr r3, [pc, #420] ; (8004a28 <MX_LTDC_Init+0x240>)
8004882: 2200 movs r2, #0
8004884: f883 2034 strb.w r2, [r3, #52] ; 0x34
hLtdcHandler.Init.Backcolor.Green = 0;
8004888: 4b67 ldr r3, [pc, #412] ; (8004a28 <MX_LTDC_Init+0x240>)
800488a: 2200 movs r2, #0
800488c: f883 2035 strb.w r2, [r3, #53] ; 0x35
hLtdcHandler.Init.Backcolor.Red = 0;
8004890: 4b65 ldr r3, [pc, #404] ; (8004a28 <MX_LTDC_Init+0x240>)
8004892: 2200 movs r2, #0
8004894: f883 2036 strb.w r2, [r3, #54] ; 0x36
if (HAL_LTDC_Init(&hLtdcHandler) != HAL_OK) {
8004898: 4863 ldr r0, [pc, #396] ; (8004a28 <MX_LTDC_Init+0x240>)
800489a: f00e f9cd bl 8012c38 <HAL_LTDC_Init>
800489e: 4603 mov r3, r0
80048a0: 2b00 cmp r3, #0
80048a2: d001 beq.n 80048a8 <MX_LTDC_Init+0xc0>
Error_Handler();
80048a4: f001 faa2 bl 8005dec <Error_Handler>
}
pLayerCfg.WindowX0 = 0;
80048a8: 2300 movs r3, #0
80048aa: 63fb str r3, [r7, #60] ; 0x3c
pLayerCfg.WindowX1 = 320;
80048ac: f44f 73a0 mov.w r3, #320 ; 0x140
80048b0: 643b str r3, [r7, #64] ; 0x40
pLayerCfg.WindowY0 = 0;
80048b2: 2300 movs r3, #0
80048b4: 647b str r3, [r7, #68] ; 0x44
pLayerCfg.WindowY1 = 240;
80048b6: 23f0 movs r3, #240 ; 0xf0
80048b8: 64bb str r3, [r7, #72] ; 0x48
pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
80048ba: 2302 movs r3, #2
80048bc: 64fb str r3, [r7, #76] ; 0x4c
pLayerCfg.Alpha = 255;
80048be: 23ff movs r3, #255 ; 0xff
80048c0: 653b str r3, [r7, #80] ; 0x50
pLayerCfg.Alpha0 = 0;
80048c2: 2300 movs r3, #0
80048c4: 657b str r3, [r7, #84] ; 0x54
pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
80048c6: f44f 63c0 mov.w r3, #1536 ; 0x600
80048ca: 65bb str r3, [r7, #88] ; 0x58
pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
80048cc: 2307 movs r3, #7
80048ce: 65fb str r3, [r7, #92] ; 0x5c
pLayerCfg.FBStartAdress = (uint32_t) &LAYER_1[0];
80048d0: 4b57 ldr r3, [pc, #348] ; (8004a30 <MX_LTDC_Init+0x248>)
80048d2: 663b str r3, [r7, #96] ; 0x60
pLayerCfg.ImageWidth = 320;
80048d4: f44f 73a0 mov.w r3, #320 ; 0x140
80048d8: 667b str r3, [r7, #100] ; 0x64
pLayerCfg.ImageHeight = 240;
80048da: 23f0 movs r3, #240 ; 0xf0
80048dc: 66bb str r3, [r7, #104] ; 0x68
pLayerCfg.Backcolor.Blue = 0;
80048de: 2300 movs r3, #0
80048e0: f887 306c strb.w r3, [r7, #108] ; 0x6c
pLayerCfg.Backcolor.Green = 0;
80048e4: 2300 movs r3, #0
80048e6: f887 306d strb.w r3, [r7, #109] ; 0x6d
pLayerCfg.Backcolor.Red = 0;
80048ea: 2300 movs r3, #0
80048ec: f887 306e strb.w r3, [r7, #110] ; 0x6e
if(HAL_LTDC_ConfigLayer(&hLtdcHandler, &pLayerCfg, 0) != HAL_OK) {
80048f0: f107 033c add.w r3, r7, #60 ; 0x3c
80048f4: 2200 movs r2, #0
80048f6: 4619 mov r1, r3
80048f8: 484b ldr r0, [pc, #300] ; (8004a28 <MX_LTDC_Init+0x240>)
80048fa: f00e fb25 bl 8012f48 <HAL_LTDC_ConfigLayer>
80048fe: 4603 mov r3, r0
8004900: 2b00 cmp r3, #0
8004902: d001 beq.n 8004908 <MX_LTDC_Init+0x120>
Error_Handler();
8004904: f001 fa72 bl 8005dec <Error_Handler>
}
pLayerCfg1.WindowX0 = 0;
8004908: 2300 movs r3, #0
800490a: 60bb str r3, [r7, #8]
pLayerCfg1.WindowX1 = 320;
800490c: f44f 73a0 mov.w r3, #320 ; 0x140
8004910: 60fb str r3, [r7, #12]
pLayerCfg1.WindowY0 = 0;
8004912: 2300 movs r3, #0
8004914: 613b str r3, [r7, #16]
pLayerCfg1.WindowY1 = 240;
8004916: 23f0 movs r3, #240 ; 0xf0
8004918: 617b str r3, [r7, #20]
pLayerCfg1.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
800491a: 2302 movs r3, #2
800491c: 61bb str r3, [r7, #24]
pLayerCfg1.Alpha = 255;
800491e: 23ff movs r3, #255 ; 0xff
8004920: 61fb str r3, [r7, #28]
pLayerCfg1.Alpha0 = 0;
8004922: 2300 movs r3, #0
8004924: 623b str r3, [r7, #32]
pLayerCfg1.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
8004926: f44f 63c0 mov.w r3, #1536 ; 0x600
800492a: 627b str r3, [r7, #36] ; 0x24
pLayerCfg1.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
800492c: 2307 movs r3, #7
800492e: 62bb str r3, [r7, #40] ; 0x28
pLayerCfg1.FBStartAdress = (uint32_t) &LAYER_2[0];
8004930: 4b40 ldr r3, [pc, #256] ; (8004a34 <MX_LTDC_Init+0x24c>)
8004932: 62fb str r3, [r7, #44] ; 0x2c
pLayerCfg1.ImageWidth = 320;
8004934: f44f 73a0 mov.w r3, #320 ; 0x140
8004938: 633b str r3, [r7, #48] ; 0x30
pLayerCfg1.ImageHeight = 240;
800493a: 23f0 movs r3, #240 ; 0xf0
800493c: 637b str r3, [r7, #52] ; 0x34
pLayerCfg1.Backcolor.Blue = 0;
800493e: 2300 movs r3, #0
8004940: f887 3038 strb.w r3, [r7, #56] ; 0x38
pLayerCfg1.Backcolor.Green = 0;
8004944: 2300 movs r3, #0
8004946: f887 3039 strb.w r3, [r7, #57] ; 0x39
pLayerCfg1.Backcolor.Red = 0;
800494a: 2300 movs r3, #0
800494c: f887 303a strb.w r3, [r7, #58] ; 0x3a
if(HAL_LTDC_ConfigLayer(&hLtdcHandler, &pLayerCfg1, 1) != HAL_OK) {
8004950: f107 0308 add.w r3, r7, #8
8004954: 2201 movs r2, #1
8004956: 4619 mov r1, r3
8004958: 4833 ldr r0, [pc, #204] ; (8004a28 <MX_LTDC_Init+0x240>)
800495a: f00e faf5 bl 8012f48 <HAL_LTDC_ConfigLayer>
800495e: 4603 mov r3, r0
8004960: 2b00 cmp r3, #0
8004962: d001 beq.n 8004968 <MX_LTDC_Init+0x180>
Error_Handler();
8004964: f001 fa42 bl 8005dec <Error_Handler>
}
//HAL_LTDC_EnableCLUT(&hLtdcHandler, 0);
//HAL_LTDC_EnableCLUT(&hLtdcHandler, 1);
ActiveLayer = 1;
8004968: 4b33 ldr r3, [pc, #204] ; (8004a38 <MX_LTDC_Init+0x250>)
800496a: 2201 movs r2, #1
800496c: 601a str r2, [r3, #0]
RenderingLayer = 0;
800496e: 4b33 ldr r3, [pc, #204] ; (8004a3c <MX_LTDC_Init+0x254>)
8004970: 2200 movs r2, #0
8004972: 601a str r2, [r3, #0]
BSP_LCD_DisplayOff();
8004974: f000 f87a bl 8004a6c <BSP_LCD_DisplayOff>
BSP_LCD_SelectLayer(0);
8004978: 2000 movs r0, #0
800497a: f000 f961 bl 8004c40 <BSP_LCD_SelectLayer>
BSP_LCD_Clear(0xFF000000);
800497e: f04f 407f mov.w r0, #4278190080 ; 0xff000000
8004982: f000 fa3f bl 8004e04 <BSP_LCD_Clear>
BSP_LCD_SelectLayer(1);
8004986: 2001 movs r0, #1
8004988: f000 f95a bl 8004c40 <BSP_LCD_SelectLayer>
BSP_LCD_Clear(0xFF000000);
800498c: f04f 407f mov.w r0, #4278190080 ; 0xff000000
8004990: f000 fa38 bl 8004e04 <BSP_LCD_Clear>
BSP_LCD_SetLayerVisible(RenderingLayer, DISABLE);
8004994: 4b29 ldr r3, [pc, #164] ; (8004a3c <MX_LTDC_Init+0x254>)
8004996: 681b ldr r3, [r3, #0]
8004998: 2100 movs r1, #0
800499a: 4618 mov r0, r3
800499c: f000 f960 bl 8004c60 <BSP_LCD_SetLayerVisible>
BSP_LCD_SetLayerVisible(ActiveLayer, DISABLE);
80049a0: 4b25 ldr r3, [pc, #148] ; (8004a38 <MX_LTDC_Init+0x250>)
80049a2: 681b ldr r3, [r3, #0]
80049a4: 2100 movs r1, #0
80049a6: 4618 mov r0, r3
80049a8: f000 f95a bl 8004c60 <BSP_LCD_SetLayerVisible>
HAL_LTDC_Reload(&hLtdcHandler, LTDC_RELOAD_IMMEDIATE);
80049ac: 2101 movs r1, #1
80049ae: 481e ldr r0, [pc, #120] ; (8004a28 <MX_LTDC_Init+0x240>)
80049b0: f00e fb40 bl 8013034 <HAL_LTDC_Reload>
DrawProp[0].BackColor = LCD_COLOR_BLACK;
80049b4: 4b22 ldr r3, [pc, #136] ; (8004a40 <MX_LTDC_Init+0x258>)
80049b6: f04f 427f mov.w r2, #4278190080 ; 0xff000000
80049ba: 605a str r2, [r3, #4]
DrawProp[0].pFont = &Font17;
80049bc: 4b20 ldr r3, [pc, #128] ; (8004a40 <MX_LTDC_Init+0x258>)
80049be: 4a21 ldr r2, [pc, #132] ; (8004a44 <MX_LTDC_Init+0x25c>)
80049c0: 609a str r2, [r3, #8]
DrawProp[0].TextColor = LCD_COLOR_WHITE;
80049c2: 4b1f ldr r3, [pc, #124] ; (8004a40 <MX_LTDC_Init+0x258>)
80049c4: f04f 32ff mov.w r2, #4294967295
80049c8: 601a str r2, [r3, #0]
DrawProp[1].BackColor = LCD_COLOR_BLACK;
80049ca: 4b1d ldr r3, [pc, #116] ; (8004a40 <MX_LTDC_Init+0x258>)
80049cc: f04f 427f mov.w r2, #4278190080 ; 0xff000000
80049d0: 611a str r2, [r3, #16]
DrawProp[1].pFont = &Font17;
80049d2: 4b1b ldr r3, [pc, #108] ; (8004a40 <MX_LTDC_Init+0x258>)
80049d4: 4a1b ldr r2, [pc, #108] ; (8004a44 <MX_LTDC_Init+0x25c>)
80049d6: 615a str r2, [r3, #20]
DrawProp[1].TextColor = LCD_COLOR_WHITE;
80049d8: 4b19 ldr r3, [pc, #100] ; (8004a40 <MX_LTDC_Init+0x258>)
80049da: f04f 32ff mov.w r2, #4294967295
80049de: 60da str r2, [r3, #12]
CurrentFont = &Font17;
80049e0: 4b19 ldr r3, [pc, #100] ; (8004a48 <MX_LTDC_Init+0x260>)
80049e2: 4a18 ldr r2, [pc, #96] ; (8004a44 <MX_LTDC_Init+0x25c>)
80049e4: 601a str r2, [r3, #0]
BSP_LCD_DisplayOn();
80049e6: f000 f835 bl 8004a54 <BSP_LCD_DisplayOn>
HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_SET); // BACKLIGHT IS OFF
80049ea: 2201 movs r2, #1
80049ec: f44f 7180 mov.w r1, #256 ; 0x100
80049f0: 4816 ldr r0, [pc, #88] ; (8004a4c <MX_LTDC_Init+0x264>)
80049f2: f00e f8ef bl 8012bd4 <HAL_GPIO_WritePin>
RefreshScreen = true;
80049f6: 4b16 ldr r3, [pc, #88] ; (8004a50 <MX_LTDC_Init+0x268>)
80049f8: 2201 movs r2, #1
80049fa: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 255);
80049fc: 21ff movs r1, #255 ; 0xff
80049fe: 480a ldr r0, [pc, #40] ; (8004a28 <MX_LTDC_Init+0x240>)
8004a00: f00e fae0 bl 8012fc4 <HAL_LTDC_ProgramLineEvent>
while(RefreshScreen);
8004a04: bf00 nop
8004a06: 4b12 ldr r3, [pc, #72] ; (8004a50 <MX_LTDC_Init+0x268>)
8004a08: 781b ldrb r3, [r3, #0]
8004a0a: b2db uxtb r3, r3
8004a0c: 2b00 cmp r3, #0
8004a0e: d1fa bne.n 8004a06 <MX_LTDC_Init+0x21e>
BSP_LCD_SetLayerVisible(RenderingLayer, ENABLE);
8004a10: 4b0a ldr r3, [pc, #40] ; (8004a3c <MX_LTDC_Init+0x254>)
8004a12: 681b ldr r3, [r3, #0]
8004a14: 2101 movs r1, #1
8004a16: 4618 mov r0, r3
8004a18: f000 f922 bl 8004c60 <BSP_LCD_SetLayerVisible>
}
8004a1c: bf00 nop
8004a1e: 3770 adds r7, #112 ; 0x70
8004a20: 46bd mov sp, r7
8004a22: bd80 pop {r7, pc}
8004a24: 40023800 .word 0x40023800
8004a28: 2006c174 .word 0x2006c174
8004a2c: 40016800 .word 0x40016800
8004a30: 200209ec .word 0x200209ec
8004a34: 200461ec .word 0x200461ec
8004a38: 20020018 .word 0x20020018
8004a3c: 2006ba5c .word 0x2006ba5c
8004a40: 2006ba44 .word 0x2006ba44
8004a44: 20020008 .word 0x20020008
8004a48: 2006c170 .word 0x2006c170
8004a4c: 40020000 .word 0x40020000
8004a50: 2006ba60 .word 0x2006ba60
08004a54 <BSP_LCD_DisplayOn>:
void BSP_LCD_DisplayOn(void)
{
8004a54: b580 push {r7, lr}
8004a56: af00 add r7, sp, #0
//__HAL_LTDC_ENABLE(&hLtdcHandler);
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_SET); // DISPLAY_ON
8004a58: 2201 movs r2, #1
8004a5a: f44f 6180 mov.w r1, #1024 ; 0x400
8004a5e: 4802 ldr r0, [pc, #8] ; (8004a68 <BSP_LCD_DisplayOn+0x14>)
8004a60: f00e f8b8 bl 8012bd4 <HAL_GPIO_WritePin>
}
8004a64: bf00 nop
8004a66: bd80 pop {r7, pc}
8004a68: 40021400 .word 0x40021400
08004a6c <BSP_LCD_DisplayOff>:
/**
* @brief Disables the display.
* @retval None
*/
void BSP_LCD_DisplayOff(void)
{
8004a6c: b580 push {r7, lr}
8004a6e: af00 add r7, sp, #0
//__HAL_LTDC_DISABLE(&hLtdcHandler);
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_RESET); // DISPLAY_OFF
8004a70: 2200 movs r2, #0
8004a72: f44f 6180 mov.w r1, #1024 ; 0x400
8004a76: 4802 ldr r0, [pc, #8] ; (8004a80 <BSP_LCD_DisplayOff+0x14>)
8004a78: f00e f8ac bl 8012bd4 <HAL_GPIO_WritePin>
}
8004a7c: bf00 nop
8004a7e: bd80 pop {r7, pc}
8004a80: 40021400 .word 0x40021400
08004a84 <HAL_LTDC_MspInit>:
void HAL_LTDC_MspInit(LTDC_HandleTypeDef* ltdcHandle)
{
8004a84: b580 push {r7, lr}
8004a86: b088 sub sp, #32
8004a88: af00 add r7, sp, #0
8004a8a: 6078 str r0, [r7, #4]
GPIO_InitTypeDef GPIO_InitStruct;
if(ltdcHandle->Instance == LTDC)
8004a8c: 687b ldr r3, [r7, #4]
8004a8e: 681b ldr r3, [r3, #0]
8004a90: 4a4f ldr r2, [pc, #316] ; (8004bd0 <HAL_LTDC_MspInit+0x14c>)
8004a92: 4293 cmp r3, r2
8004a94: f040 8097 bne.w 8004bc6 <HAL_LTDC_MspInit+0x142>
{
__HAL_RCC_LTDC_CLK_ENABLE();
8004a98: 4a4e ldr r2, [pc, #312] ; (8004bd4 <HAL_LTDC_MspInit+0x150>)
8004a9a: 4b4e ldr r3, [pc, #312] ; (8004bd4 <HAL_LTDC_MspInit+0x150>)
8004a9c: 6c5b ldr r3, [r3, #68] ; 0x44
8004a9e: f043 6380 orr.w r3, r3, #67108864 ; 0x4000000
8004aa2: 6453 str r3, [r2, #68] ; 0x44
8004aa4: 4b4b ldr r3, [pc, #300] ; (8004bd4 <HAL_LTDC_MspInit+0x150>)
8004aa6: 6c5b ldr r3, [r3, #68] ; 0x44
8004aa8: f003 6380 and.w r3, r3, #67108864 ; 0x4000000
8004aac: 60bb str r3, [r7, #8]
8004aae: 68bb ldr r3, [r7, #8]
PG7 ------> LTDC_CLK
PG10 ------> LTDC_G3
PG11 ------> LTDC_B3
PG12 ------> LTDC_B4 */
GPIO_InitStruct.Pin = GPIO_PIN_10;
8004ab0: f44f 6380 mov.w r3, #1024 ; 0x400
8004ab4: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
8004ab6: 2301 movs r3, #1
8004ab8: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004aba: 2300 movs r3, #0
8004abc: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004abe: 2303 movs r3, #3
8004ac0: 61bb str r3, [r7, #24]
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
8004ac2: f107 030c add.w r3, r7, #12
8004ac6: 4619 mov r1, r3
8004ac8: 4843 ldr r0, [pc, #268] ; (8004bd8 <HAL_LTDC_MspInit+0x154>)
8004aca: f00d fec1 bl 8012850 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_6 | GPIO_PIN_11 |GPIO_PIN_12;
8004ace: f641 0358 movw r3, #6232 ; 0x1858
8004ad2: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004ad4: 2302 movs r3, #2
8004ad6: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004ad8: 2300 movs r3, #0
8004ada: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004adc: 2303 movs r3, #3
8004ade: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
8004ae0: 230e movs r3, #14
8004ae2: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
8004ae4: f107 030c add.w r3, r7, #12
8004ae8: 4619 mov r1, r3
8004aea: 483c ldr r0, [pc, #240] ; (8004bdc <HAL_LTDC_MspInit+0x158>)
8004aec: f00d feb0 bl 8012850 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1;
8004af0: 2303 movs r3, #3
8004af2: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004af4: 2302 movs r3, #2
8004af6: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004af8: 2300 movs r3, #0
8004afa: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004afc: 2303 movs r3, #3
8004afe: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF9_LTDC;
8004b00: 2309 movs r3, #9
8004b02: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
8004b04: f107 030c add.w r3, r7, #12
8004b08: 4619 mov r1, r3
8004b0a: 4835 ldr r0, [pc, #212] ; (8004be0 <HAL_LTDC_MspInit+0x15c>)
8004b0c: f00d fea0 bl 8012850 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_8 | GPIO_PIN_9;
8004b10: f44f 6370 mov.w r3, #3840 ; 0xf00
8004b14: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004b16: 2302 movs r3, #2
8004b18: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004b1a: 2300 movs r3, #0
8004b1c: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004b1e: 2303 movs r3, #3
8004b20: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
8004b22: 230e movs r3, #14
8004b24: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
8004b26: f107 030c add.w r3, r7, #12
8004b2a: 4619 mov r1, r3
8004b2c: 482c ldr r0, [pc, #176] ; (8004be0 <HAL_LTDC_MspInit+0x15c>)
8004b2e: f00d fe8f bl 8012850 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_11;
8004b32: f44f 630c mov.w r3, #2240 ; 0x8c0
8004b36: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004b38: 2302 movs r3, #2
8004b3a: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004b3c: 2300 movs r3, #0
8004b3e: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004b40: 2303 movs r3, #3
8004b42: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
8004b44: 230e movs r3, #14
8004b46: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
8004b48: f107 030c add.w r3, r7, #12
8004b4c: 4619 mov r1, r3
8004b4e: 4825 ldr r0, [pc, #148] ; (8004be4 <HAL_LTDC_MspInit+0x160>)
8004b50: f00d fe7e bl 8012850 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_6 | GPIO_PIN_7;
8004b54: 23c0 movs r3, #192 ; 0xc0
8004b56: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004b58: 2302 movs r3, #2
8004b5a: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004b5c: 2300 movs r3, #0
8004b5e: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004b60: 2303 movs r3, #3
8004b62: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
8004b64: 230e movs r3, #14
8004b66: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
8004b68: f107 030c add.w r3, r7, #12
8004b6c: 4619 mov r1, r3
8004b6e: 481e ldr r0, [pc, #120] ; (8004be8 <HAL_LTDC_MspInit+0x164>)
8004b70: f00d fe6e bl 8012850 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_3;
8004b74: 2308 movs r3, #8
8004b76: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004b78: 2302 movs r3, #2
8004b7a: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004b7c: 2300 movs r3, #0
8004b7e: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004b80: 2303 movs r3, #3
8004b82: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
8004b84: 230e movs r3, #14
8004b86: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
8004b88: f107 030c add.w r3, r7, #12
8004b8c: 4619 mov r1, r3
8004b8e: 4817 ldr r0, [pc, #92] ; (8004bec <HAL_LTDC_MspInit+0x168>)
8004b90: f00d fe5e bl 8012850 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_10 | GPIO_PIN_12;
8004b94: f44f 53a0 mov.w r3, #5120 ; 0x1400
8004b98: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004b9a: 2302 movs r3, #2
8004b9c: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004b9e: 2300 movs r3, #0
8004ba0: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004ba2: 2303 movs r3, #3
8004ba4: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF9_LTDC;
8004ba6: 2309 movs r3, #9
8004ba8: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
8004baa: f107 030c add.w r3, r7, #12
8004bae: 4619 mov r1, r3
8004bb0: 480c ldr r0, [pc, #48] ; (8004be4 <HAL_LTDC_MspInit+0x160>)
8004bb2: f00d fe4d bl 8012850 <HAL_GPIO_Init>
HAL_NVIC_SetPriority(LTDC_IRQn, 6, 0);
8004bb6: 2200 movs r2, #0
8004bb8: 2106 movs r1, #6
8004bba: 2058 movs r0, #88 ; 0x58
8004bbc: f00c fdfb bl 80117b6 <HAL_NVIC_SetPriority>
HAL_NVIC_EnableIRQ(LTDC_IRQn);
8004bc0: 2058 movs r0, #88 ; 0x58
8004bc2: f00c fe14 bl 80117ee <HAL_NVIC_EnableIRQ>
}
}
8004bc6: bf00 nop
8004bc8: 3720 adds r7, #32
8004bca: 46bd mov sp, r7
8004bcc: bd80 pop {r7, pc}
8004bce: bf00 nop
8004bd0: 40016800 .word 0x40016800
8004bd4: 40023800 .word 0x40023800
8004bd8: 40021400 .word 0x40021400
8004bdc: 40020000 .word 0x40020000
8004be0: 40020400 .word 0x40020400
8004be4: 40021800 .word 0x40021800
8004be8: 40020800 .word 0x40020800
8004bec: 40020c00 .word 0x40020c00
08004bf0 <BSP_LCD_GetXSize>:
HAL_NVIC_DisableIRQ(LTDC_IRQn);
}
}
uint32_t BSP_LCD_GetXSize(void)
{
8004bf0: b480 push {r7}
8004bf2: af00 add r7, sp, #0
return hLtdcHandler.LayerCfg[ActiveLayer].ImageWidth;
8004bf4: 4b06 ldr r3, [pc, #24] ; (8004c10 <BSP_LCD_GetXSize+0x20>)
8004bf6: 681b ldr r3, [r3, #0]
8004bf8: 4a06 ldr r2, [pc, #24] ; (8004c14 <BSP_LCD_GetXSize+0x24>)
8004bfa: 2134 movs r1, #52 ; 0x34
8004bfc: fb01 f303 mul.w r3, r1, r3
8004c00: 4413 add r3, r2
8004c02: 3360 adds r3, #96 ; 0x60
8004c04: 681b ldr r3, [r3, #0]
}
8004c06: 4618 mov r0, r3
8004c08: 46bd mov sp, r7
8004c0a: f85d 7b04 ldr.w r7, [sp], #4
8004c0e: 4770 bx lr
8004c10: 20020018 .word 0x20020018
8004c14: 2006c174 .word 0x2006c174
08004c18 <BSP_LCD_GetYSize>:
/**
* @brief Gets the LCD Y size.
* @retval Used LCD Y size
*/
uint32_t BSP_LCD_GetYSize(void)
{
8004c18: b480 push {r7}
8004c1a: af00 add r7, sp, #0
return hLtdcHandler.LayerCfg[ActiveLayer].ImageHeight;
8004c1c: 4b06 ldr r3, [pc, #24] ; (8004c38 <BSP_LCD_GetYSize+0x20>)
8004c1e: 681b ldr r3, [r3, #0]
8004c20: 4a06 ldr r2, [pc, #24] ; (8004c3c <BSP_LCD_GetYSize+0x24>)
8004c22: 2134 movs r1, #52 ; 0x34
8004c24: fb01 f303 mul.w r3, r1, r3
8004c28: 4413 add r3, r2
8004c2a: 3364 adds r3, #100 ; 0x64
8004c2c: 681b ldr r3, [r3, #0]
}
8004c2e: 4618 mov r0, r3
8004c30: 46bd mov sp, r7
8004c32: f85d 7b04 ldr.w r7, [sp], #4
8004c36: 4770 bx lr
8004c38: 20020018 .word 0x20020018
8004c3c: 2006c174 .word 0x2006c174
08004c40 <BSP_LCD_SelectLayer>:
{
hLtdcHandler.LayerCfg[ActiveLayer].ImageHeight = imageHeightPixels;
}
void BSP_LCD_SelectLayer(uint32_t LayerIndex)
{
8004c40: b480 push {r7}
8004c42: b083 sub sp, #12
8004c44: af00 add r7, sp, #0
8004c46: 6078 str r0, [r7, #4]
ActiveLayer = LayerIndex;
8004c48: 4a04 ldr r2, [pc, #16] ; (8004c5c <BSP_LCD_SelectLayer+0x1c>)
8004c4a: 687b ldr r3, [r7, #4]
8004c4c: 6013 str r3, [r2, #0]
}
8004c4e: bf00 nop
8004c50: 370c adds r7, #12
8004c52: 46bd mov sp, r7
8004c54: f85d 7b04 ldr.w r7, [sp], #4
8004c58: 4770 bx lr
8004c5a: bf00 nop
8004c5c: 20020018 .word 0x20020018
08004c60 <BSP_LCD_SetLayerVisible>:
* @arg ENABLE
* @arg DISABLE
* @retval None
*/
void BSP_LCD_SetLayerVisible(uint32_t LayerIndex, FunctionalState State)
{
8004c60: b480 push {r7}
8004c62: b083 sub sp, #12
8004c64: af00 add r7, sp, #0
8004c66: 6078 str r0, [r7, #4]
8004c68: 460b mov r3, r1
8004c6a: 70fb strb r3, [r7, #3]
if(State == ENABLE)
8004c6c: 78fb ldrb r3, [r7, #3]
8004c6e: 2b01 cmp r3, #1
8004c70: d113 bne.n 8004c9a <BSP_LCD_SetLayerVisible+0x3a>
__HAL_LTDC_LAYER_ENABLE(&hLtdcHandler, LayerIndex);
8004c72: 4b1a ldr r3, [pc, #104] ; (8004cdc <BSP_LCD_SetLayerVisible+0x7c>)
8004c74: 681b ldr r3, [r3, #0]
8004c76: 461a mov r2, r3
8004c78: 687b ldr r3, [r7, #4]
8004c7a: 01db lsls r3, r3, #7
8004c7c: 4413 add r3, r2
8004c7e: 3384 adds r3, #132 ; 0x84
8004c80: 461a mov r2, r3
8004c82: 4b16 ldr r3, [pc, #88] ; (8004cdc <BSP_LCD_SetLayerVisible+0x7c>)
8004c84: 681b ldr r3, [r3, #0]
8004c86: 4619 mov r1, r3
8004c88: 687b ldr r3, [r7, #4]
8004c8a: 01db lsls r3, r3, #7
8004c8c: 440b add r3, r1
8004c8e: 3384 adds r3, #132 ; 0x84
8004c90: 681b ldr r3, [r3, #0]
8004c92: f043 0301 orr.w r3, r3, #1
8004c96: 6013 str r3, [r2, #0]
8004c98: e012 b.n 8004cc0 <BSP_LCD_SetLayerVisible+0x60>
else __HAL_LTDC_LAYER_DISABLE(&hLtdcHandler, LayerIndex);
8004c9a: 4b10 ldr r3, [pc, #64] ; (8004cdc <BSP_LCD_SetLayerVisible+0x7c>)
8004c9c: 681b ldr r3, [r3, #0]
8004c9e: 461a mov r2, r3
8004ca0: 687b ldr r3, [r7, #4]
8004ca2: 01db lsls r3, r3, #7
8004ca4: 4413 add r3, r2
8004ca6: 3384 adds r3, #132 ; 0x84
8004ca8: 461a mov r2, r3
8004caa: 4b0c ldr r3, [pc, #48] ; (8004cdc <BSP_LCD_SetLayerVisible+0x7c>)
8004cac: 681b ldr r3, [r3, #0]
8004cae: 4619 mov r1, r3
8004cb0: 687b ldr r3, [r7, #4]
8004cb2: 01db lsls r3, r3, #7
8004cb4: 440b add r3, r1
8004cb6: 3384 adds r3, #132 ; 0x84
8004cb8: 681b ldr r3, [r3, #0]
8004cba: f023 0301 bic.w r3, r3, #1
8004cbe: 6013 str r3, [r2, #0]
__HAL_LTDC_RELOAD_CONFIG(&hLtdcHandler);
8004cc0: 4b06 ldr r3, [pc, #24] ; (8004cdc <BSP_LCD_SetLayerVisible+0x7c>)
8004cc2: 681b ldr r3, [r3, #0]
8004cc4: 4a05 ldr r2, [pc, #20] ; (8004cdc <BSP_LCD_SetLayerVisible+0x7c>)
8004cc6: 6812 ldr r2, [r2, #0]
8004cc8: 6a52 ldr r2, [r2, #36] ; 0x24
8004cca: f042 0201 orr.w r2, r2, #1
8004cce: 625a str r2, [r3, #36] ; 0x24
}
8004cd0: bf00 nop
8004cd2: 370c adds r7, #12
8004cd4: 46bd mov sp, r7
8004cd6: f85d 7b04 ldr.w r7, [sp], #4
8004cda: 4770 bx lr
8004cdc: 2006c174 .word 0x2006c174
08004ce0 <BSP_LCD_SetLayerVisible_NoReload>:
* @arg ENABLE
* @arg DISABLE
* @retval None
*/
void BSP_LCD_SetLayerVisible_NoReload(uint32_t LayerIndex, FunctionalState State)
{
8004ce0: b480 push {r7}
8004ce2: b083 sub sp, #12
8004ce4: af00 add r7, sp, #0
8004ce6: 6078 str r0, [r7, #4]
8004ce8: 460b mov r3, r1
8004cea: 70fb strb r3, [r7, #3]
if(State == ENABLE)
8004cec: 78fb ldrb r3, [r7, #3]
8004cee: 2b01 cmp r3, #1
8004cf0: d113 bne.n 8004d1a <BSP_LCD_SetLayerVisible_NoReload+0x3a>
__HAL_LTDC_LAYER_ENABLE(&hLtdcHandler, LayerIndex);
8004cf2: 4b16 ldr r3, [pc, #88] ; (8004d4c <BSP_LCD_SetLayerVisible_NoReload+0x6c>)
8004cf4: 681b ldr r3, [r3, #0]
8004cf6: 461a mov r2, r3
8004cf8: 687b ldr r3, [r7, #4]
8004cfa: 01db lsls r3, r3, #7
8004cfc: 4413 add r3, r2
8004cfe: 3384 adds r3, #132 ; 0x84
8004d00: 461a mov r2, r3
8004d02: 4b12 ldr r3, [pc, #72] ; (8004d4c <BSP_LCD_SetLayerVisible_NoReload+0x6c>)
8004d04: 681b ldr r3, [r3, #0]
8004d06: 4619 mov r1, r3
8004d08: 687b ldr r3, [r7, #4]
8004d0a: 01db lsls r3, r3, #7
8004d0c: 440b add r3, r1
8004d0e: 3384 adds r3, #132 ; 0x84
8004d10: 681b ldr r3, [r3, #0]
8004d12: f043 0301 orr.w r3, r3, #1
8004d16: 6013 str r3, [r2, #0]
else __HAL_LTDC_LAYER_DISABLE(&hLtdcHandler, LayerIndex);
}
8004d18: e012 b.n 8004d40 <BSP_LCD_SetLayerVisible_NoReload+0x60>
else __HAL_LTDC_LAYER_DISABLE(&hLtdcHandler, LayerIndex);
8004d1a: 4b0c ldr r3, [pc, #48] ; (8004d4c <BSP_LCD_SetLayerVisible_NoReload+0x6c>)
8004d1c: 681b ldr r3, [r3, #0]
8004d1e: 461a mov r2, r3
8004d20: 687b ldr r3, [r7, #4]
8004d22: 01db lsls r3, r3, #7
8004d24: 4413 add r3, r2
8004d26: 3384 adds r3, #132 ; 0x84
8004d28: 461a mov r2, r3
8004d2a: 4b08 ldr r3, [pc, #32] ; (8004d4c <BSP_LCD_SetLayerVisible_NoReload+0x6c>)
8004d2c: 681b ldr r3, [r3, #0]
8004d2e: 4619 mov r1, r3
8004d30: 687b ldr r3, [r7, #4]
8004d32: 01db lsls r3, r3, #7
8004d34: 440b add r3, r1
8004d36: 3384 adds r3, #132 ; 0x84
8004d38: 681b ldr r3, [r3, #0]
8004d3a: f023 0301 bic.w r3, r3, #1
8004d3e: 6013 str r3, [r2, #0]
}
8004d40: bf00 nop
8004d42: 370c adds r7, #12
8004d44: 46bd mov sp, r7
8004d46: f85d 7b04 ldr.w r7, [sp], #4
8004d4a: 4770 bx lr
8004d4c: 2006c174 .word 0x2006c174
08004d50 <LCD_SetColors>:
* @brief Sets the LCD text color.
* @param Color: Text color code ARGB(8-8-8-8)
* @retval None
*/
void LCD_SetColors(uint32_t ColorUp, uint32_t ColorDn)
{
8004d50: b480 push {r7}
8004d52: b083 sub sp, #12
8004d54: af00 add r7, sp, #0
8004d56: 6078 str r0, [r7, #4]
8004d58: 6039 str r1, [r7, #0]
DrawProp[ActiveLayer].TextColor = ColorUp;
8004d5a: 4b0d ldr r3, [pc, #52] ; (8004d90 <LCD_SetColors+0x40>)
8004d5c: 681a ldr r2, [r3, #0]
8004d5e: 490d ldr r1, [pc, #52] ; (8004d94 <LCD_SetColors+0x44>)
8004d60: 4613 mov r3, r2
8004d62: 005b lsls r3, r3, #1
8004d64: 4413 add r3, r2
8004d66: 009b lsls r3, r3, #2
8004d68: 440b add r3, r1
8004d6a: 687a ldr r2, [r7, #4]
8004d6c: 601a str r2, [r3, #0]
DrawProp[ActiveLayer].BackColor = ColorDn;
8004d6e: 4b08 ldr r3, [pc, #32] ; (8004d90 <LCD_SetColors+0x40>)
8004d70: 681a ldr r2, [r3, #0]
8004d72: 4908 ldr r1, [pc, #32] ; (8004d94 <LCD_SetColors+0x44>)
8004d74: 4613 mov r3, r2
8004d76: 005b lsls r3, r3, #1
8004d78: 4413 add r3, r2
8004d7a: 009b lsls r3, r3, #2
8004d7c: 440b add r3, r1
8004d7e: 3304 adds r3, #4
8004d80: 683a ldr r2, [r7, #0]
8004d82: 601a str r2, [r3, #0]
}
8004d84: bf00 nop
8004d86: 370c adds r7, #12
8004d88: 46bd mov sp, r7
8004d8a: f85d 7b04 ldr.w r7, [sp], #4
8004d8e: 4770 bx lr
8004d90: 20020018 .word 0x20020018
8004d94: 2006ba44 .word 0x2006ba44
08004d98 <BSP_LCD_SetTextColor>:
void BSP_LCD_SetTextColor(uint32_t Color)
{
8004d98: b480 push {r7}
8004d9a: b083 sub sp, #12
8004d9c: af00 add r7, sp, #0
8004d9e: 6078 str r0, [r7, #4]
DrawProp[ActiveLayer].TextColor = Color;
8004da0: 4b07 ldr r3, [pc, #28] ; (8004dc0 <BSP_LCD_SetTextColor+0x28>)
8004da2: 681a ldr r2, [r3, #0]
8004da4: 4907 ldr r1, [pc, #28] ; (8004dc4 <BSP_LCD_SetTextColor+0x2c>)
8004da6: 4613 mov r3, r2
8004da8: 005b lsls r3, r3, #1
8004daa: 4413 add r3, r2
8004dac: 009b lsls r3, r3, #2
8004dae: 440b add r3, r1
8004db0: 687a ldr r2, [r7, #4]
8004db2: 601a str r2, [r3, #0]
}
8004db4: bf00 nop
8004db6: 370c adds r7, #12
8004db8: 46bd mov sp, r7
8004dba: f85d 7b04 ldr.w r7, [sp], #4
8004dbe: 4770 bx lr
8004dc0: 20020018 .word 0x20020018
8004dc4: 2006ba44 .word 0x2006ba44
08004dc8 <BSP_LCD_SetFont>:
* @brief Sets the LCD text font.
* @param fonts: Layer font to be used
* @retval None
*/
void BSP_LCD_SetFont(sFONT *fonts)
{
8004dc8: b480 push {r7}
8004dca: b083 sub sp, #12
8004dcc: af00 add r7, sp, #0
8004dce: 6078 str r0, [r7, #4]
DrawProp[ActiveLayer].pFont = fonts;
8004dd0: 4b09 ldr r3, [pc, #36] ; (8004df8 <BSP_LCD_SetFont+0x30>)
8004dd2: 681a ldr r2, [r3, #0]
8004dd4: 4909 ldr r1, [pc, #36] ; (8004dfc <BSP_LCD_SetFont+0x34>)
8004dd6: 4613 mov r3, r2
8004dd8: 005b lsls r3, r3, #1
8004dda: 4413 add r3, r2
8004ddc: 009b lsls r3, r3, #2
8004dde: 440b add r3, r1
8004de0: 3308 adds r3, #8
8004de2: 687a ldr r2, [r7, #4]
8004de4: 601a str r2, [r3, #0]
CurrentFont = fonts;
8004de6: 4a06 ldr r2, [pc, #24] ; (8004e00 <BSP_LCD_SetFont+0x38>)
8004de8: 687b ldr r3, [r7, #4]
8004dea: 6013 str r3, [r2, #0]
}
8004dec: bf00 nop
8004dee: 370c adds r7, #12
8004df0: 46bd mov sp, r7
8004df2: f85d 7b04 ldr.w r7, [sp], #4
8004df6: 4770 bx lr
8004df8: 20020018 .word 0x20020018
8004dfc: 2006ba44 .word 0x2006ba44
8004e00: 2006c170 .word 0x2006c170
08004e04 <BSP_LCD_Clear>:
* @brief Clears the hole LCD.
* @param Color: Color of the background
* @retval None
*/
void BSP_LCD_Clear(uint32_t Color)
{
8004e04: b5f0 push {r4, r5, r6, r7, lr}
8004e06: b085 sub sp, #20
8004e08: af02 add r7, sp, #8
8004e0a: 6078 str r0, [r7, #4]
LL_FillBuffer(ActiveLayer, (uint32_t *)(hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress), BSP_LCD_GetXSize(), BSP_LCD_GetYSize(), 0, Color);
8004e0c: 4b0f ldr r3, [pc, #60] ; (8004e4c <BSP_LCD_Clear+0x48>)
8004e0e: 681c ldr r4, [r3, #0]
8004e10: 4b0e ldr r3, [pc, #56] ; (8004e4c <BSP_LCD_Clear+0x48>)
8004e12: 681b ldr r3, [r3, #0]
8004e14: 4a0e ldr r2, [pc, #56] ; (8004e50 <BSP_LCD_Clear+0x4c>)
8004e16: 2134 movs r1, #52 ; 0x34
8004e18: fb01 f303 mul.w r3, r1, r3
8004e1c: 4413 add r3, r2
8004e1e: 335c adds r3, #92 ; 0x5c
8004e20: 681b ldr r3, [r3, #0]
8004e22: 461d mov r5, r3
8004e24: f7ff fee4 bl 8004bf0 <BSP_LCD_GetXSize>
8004e28: 4606 mov r6, r0
8004e2a: f7ff fef5 bl 8004c18 <BSP_LCD_GetYSize>
8004e2e: 4602 mov r2, r0
8004e30: 687b ldr r3, [r7, #4]
8004e32: 9301 str r3, [sp, #4]
8004e34: 2300 movs r3, #0
8004e36: 9300 str r3, [sp, #0]
8004e38: 4613 mov r3, r2
8004e3a: 4632 mov r2, r6
8004e3c: 4629 mov r1, r5
8004e3e: 4620 mov r0, r4
8004e40: f000 fd1a bl 8005878 <LL_FillBuffer>
}
8004e44: bf00 nop
8004e46: 370c adds r7, #12
8004e48: 46bd mov sp, r7
8004e4a: bdf0 pop {r4, r5, r6, r7, pc}
8004e4c: 20020018 .word 0x20020018
8004e50: 2006c174 .word 0x2006c174
08004e54 <BSP_LCD_DisplayChar>:
* @param Ascii: Character ascii code
* This parameter must be a number between Min_Data = 0x20 and Max_Data = 0x7E
* @retval None
*/
void BSP_LCD_DisplayChar(uint16_t Xpos, uint16_t Ypos, uint8_t Ascii)
{
8004e54: b590 push {r4, r7, lr}
8004e56: b083 sub sp, #12
8004e58: af00 add r7, sp, #0
8004e5a: 4603 mov r3, r0
8004e5c: 80fb strh r3, [r7, #6]
8004e5e: 460b mov r3, r1
8004e60: 80bb strh r3, [r7, #4]
8004e62: 4613 mov r3, r2
8004e64: 70fb strb r3, [r7, #3]
DrawChar( Xpos, Ypos, &DrawProp[ActiveLayer].pFont->table[(Ascii - ' ') * DrawProp[ActiveLayer].pFont->Height * ((DrawProp[ActiveLayer].pFont->Width + 7) / 8)] );
8004e66: 4b1b ldr r3, [pc, #108] ; (8004ed4 <BSP_LCD_DisplayChar+0x80>)
8004e68: 681a ldr r2, [r3, #0]
8004e6a: 491b ldr r1, [pc, #108] ; (8004ed8 <BSP_LCD_DisplayChar+0x84>)
8004e6c: 4613 mov r3, r2
8004e6e: 005b lsls r3, r3, #1
8004e70: 4413 add r3, r2
8004e72: 009b lsls r3, r3, #2
8004e74: 440b add r3, r1
8004e76: 3308 adds r3, #8
8004e78: 681b ldr r3, [r3, #0]
8004e7a: 6819 ldr r1, [r3, #0]
8004e7c: 78fb ldrb r3, [r7, #3]
8004e7e: f1a3 0020 sub.w r0, r3, #32
8004e82: 4b14 ldr r3, [pc, #80] ; (8004ed4 <BSP_LCD_DisplayChar+0x80>)
8004e84: 681a ldr r2, [r3, #0]
8004e86: 4c14 ldr r4, [pc, #80] ; (8004ed8 <BSP_LCD_DisplayChar+0x84>)
8004e88: 4613 mov r3, r2
8004e8a: 005b lsls r3, r3, #1
8004e8c: 4413 add r3, r2
8004e8e: 009b lsls r3, r3, #2
8004e90: 4423 add r3, r4
8004e92: 3308 adds r3, #8
8004e94: 681b ldr r3, [r3, #0]
8004e96: 88db ldrh r3, [r3, #6]
8004e98: fb03 f000 mul.w r0, r3, r0
8004e9c: 4b0d ldr r3, [pc, #52] ; (8004ed4 <BSP_LCD_DisplayChar+0x80>)
8004e9e: 681a ldr r2, [r3, #0]
8004ea0: 4c0d ldr r4, [pc, #52] ; (8004ed8 <BSP_LCD_DisplayChar+0x84>)
8004ea2: 4613 mov r3, r2
8004ea4: 005b lsls r3, r3, #1
8004ea6: 4413 add r3, r2
8004ea8: 009b lsls r3, r3, #2
8004eaa: 4423 add r3, r4
8004eac: 3308 adds r3, #8
8004eae: 681b ldr r3, [r3, #0]
8004eb0: 889b ldrh r3, [r3, #4]
8004eb2: 3307 adds r3, #7
8004eb4: 2b00 cmp r3, #0
8004eb6: da00 bge.n 8004eba <BSP_LCD_DisplayChar+0x66>
8004eb8: 3307 adds r3, #7
8004eba: 10db asrs r3, r3, #3
8004ebc: fb03 f300 mul.w r3, r3, r0
8004ec0: 18ca adds r2, r1, r3
8004ec2: 88b9 ldrh r1, [r7, #4]
8004ec4: 88fb ldrh r3, [r7, #6]
8004ec6: 4618 mov r0, r3
8004ec8: f000 fc1e bl 8005708 <DrawChar>
}
8004ecc: bf00 nop
8004ece: 370c adds r7, #12
8004ed0: 46bd mov sp, r7
8004ed2: bd90 pop {r4, r7, pc}
8004ed4: 20020018 .word 0x20020018
8004ed8: 2006ba44 .word 0x2006ba44
08004edc <BSP_LCD_DisplayStringAt>:
* @arg RIGHT_MODE
* @arg LEFT_MODE
* @retval None
*/
void BSP_LCD_DisplayStringAt(uint16_t Xpos, uint16_t Ypos, char *Text, Text_AlignModeTypdef Mode)
{
8004edc: b5b0 push {r4, r5, r7, lr}
8004ede: b088 sub sp, #32
8004ee0: af00 add r7, sp, #0
8004ee2: 60ba str r2, [r7, #8]
8004ee4: 461a mov r2, r3
8004ee6: 4603 mov r3, r0
8004ee8: 81fb strh r3, [r7, #14]
8004eea: 460b mov r3, r1
8004eec: 81bb strh r3, [r7, #12]
8004eee: 4613 mov r3, r2
8004ef0: 71fb strb r3, [r7, #7]
uint16_t ref_column = 1, i = 0, ll = 0;
8004ef2: 2301 movs r3, #1
8004ef4: 83fb strh r3, [r7, #30]
8004ef6: 2300 movs r3, #0
8004ef8: 83bb strh r3, [r7, #28]
8004efa: 2300 movs r3, #0
8004efc: 827b strh r3, [r7, #18]
uint32_t size = 0;
8004efe: 2300 movs r3, #0
8004f00: 61bb str r3, [r7, #24]
uint8_t *ptr;
ptr = (uint8_t *) Text;
8004f02: 68bb ldr r3, [r7, #8]
8004f04: 617b str r3, [r7, #20]
/* Get the text size */
while (*ptr++) size++ ;
8004f06: e002 b.n 8004f0e <BSP_LCD_DisplayStringAt+0x32>
8004f08: 69bb ldr r3, [r7, #24]
8004f0a: 3301 adds r3, #1
8004f0c: 61bb str r3, [r7, #24]
8004f0e: 697b ldr r3, [r7, #20]
8004f10: 1c5a adds r2, r3, #1
8004f12: 617a str r2, [r7, #20]
8004f14: 781b ldrb r3, [r3, #0]
8004f16: 2b00 cmp r3, #0
8004f18: d1f6 bne.n 8004f08 <BSP_LCD_DisplayStringAt+0x2c>
/* Characters number per line */
// xsize = (BSP_LCD_GetXSize() / DrawProp[ActiveLayer].pFont->Width);
switch (Mode)
8004f1a: 79fb ldrb r3, [r7, #7]
8004f1c: 2b02 cmp r3, #2
8004f1e: d01d beq.n 8004f5c <BSP_LCD_DisplayStringAt+0x80>
8004f20: 2b03 cmp r3, #3
8004f22: d018 beq.n 8004f56 <BSP_LCD_DisplayStringAt+0x7a>
8004f24: 2b01 cmp r3, #1
8004f26: d12e bne.n 8004f86 <BSP_LCD_DisplayStringAt+0xaa>
{
case CENTER_MODE:
{
ll = DrawProp[ActiveLayer].pFont->Width * size;
8004f28: 4b44 ldr r3, [pc, #272] ; (800503c <BSP_LCD_DisplayStringAt+0x160>)
8004f2a: 681a ldr r2, [r3, #0]
8004f2c: 4944 ldr r1, [pc, #272] ; (8005040 <BSP_LCD_DisplayStringAt+0x164>)
8004f2e: 4613 mov r3, r2
8004f30: 005b lsls r3, r3, #1
8004f32: 4413 add r3, r2
8004f34: 009b lsls r3, r3, #2
8004f36: 440b add r3, r1
8004f38: 3308 adds r3, #8
8004f3a: 681b ldr r3, [r3, #0]
8004f3c: 889a ldrh r2, [r3, #4]
8004f3e: 69bb ldr r3, [r7, #24]
8004f40: b29b uxth r3, r3
8004f42: fb12 f303 smulbb r3, r2, r3
8004f46: 827b strh r3, [r7, #18]
ref_column = Xpos - (ll >> 1);
8004f48: 8a7b ldrh r3, [r7, #18]
8004f4a: 085b lsrs r3, r3, #1
8004f4c: b29b uxth r3, r3
8004f4e: 89fa ldrh r2, [r7, #14]
8004f50: 1ad3 subs r3, r2, r3
8004f52: 83fb strh r3, [r7, #30]
//if((ref_column + ll > 319) || (ref_column > 319))
// ref_column = Xpos + ((xsize - size)* DrawProp[ActiveLayer].pFont->Width) / 2;
break;
8004f54: e01a b.n 8004f8c <BSP_LCD_DisplayStringAt+0xb0>
}
case LEFT_MODE:
{
ref_column = Xpos;
8004f56: 89fb ldrh r3, [r7, #14]
8004f58: 83fb strh r3, [r7, #30]
break;
8004f5a: e017 b.n 8004f8c <BSP_LCD_DisplayStringAt+0xb0>
}
case RIGHT_MODE:
{
ll = DrawProp[ActiveLayer].pFont->Width * size;
8004f5c: 4b37 ldr r3, [pc, #220] ; (800503c <BSP_LCD_DisplayStringAt+0x160>)
8004f5e: 681a ldr r2, [r3, #0]
8004f60: 4937 ldr r1, [pc, #220] ; (8005040 <BSP_LCD_DisplayStringAt+0x164>)
8004f62: 4613 mov r3, r2
8004f64: 005b lsls r3, r3, #1
8004f66: 4413 add r3, r2
8004f68: 009b lsls r3, r3, #2
8004f6a: 440b add r3, r1
8004f6c: 3308 adds r3, #8
8004f6e: 681b ldr r3, [r3, #0]
8004f70: 889a ldrh r2, [r3, #4]
8004f72: 69bb ldr r3, [r7, #24]
8004f74: b29b uxth r3, r3
8004f76: fb12 f303 smulbb r3, r2, r3
8004f7a: 827b strh r3, [r7, #18]
ref_column = Xpos - ll;
8004f7c: 89fa ldrh r2, [r7, #14]
8004f7e: 8a7b ldrh r3, [r7, #18]
8004f80: 1ad3 subs r3, r2, r3
8004f82: 83fb strh r3, [r7, #30]
// ref_column = - Xpos + ((xsize - size)*DrawProp[ActiveLayer].pFont->Width);
break;
8004f84: e002 b.n 8004f8c <BSP_LCD_DisplayStringAt+0xb0>
}
default:
{
ref_column = Xpos;
8004f86: 89fb ldrh r3, [r7, #14]
8004f88: 83fb strh r3, [r7, #30]
break;
8004f8a: bf00 nop
}
}
/* Check that the Start column is located in the screen */
if ((ref_column < 1) || (ref_column >= 0x8000))
8004f8c: 8bfb ldrh r3, [r7, #30]
8004f8e: 2b00 cmp r3, #0
8004f90: d003 beq.n 8004f9a <BSP_LCD_DisplayStringAt+0xbe>
8004f92: f9b7 301e ldrsh.w r3, [r7, #30]
8004f96: 2b00 cmp r3, #0
8004f98: da1d bge.n 8004fd6 <BSP_LCD_DisplayStringAt+0xfa>
{
ref_column = 1;
8004f9a: 2301 movs r3, #1
8004f9c: 83fb strh r3, [r7, #30]
}
/* Send the string character by character on LCD */
while ((*Text != 0) & (((BSP_LCD_GetXSize() - (i*DrawProp[ActiveLayer].pFont->Width)) & 0xFFFF) >= DrawProp[ActiveLayer].pFont->Width))
8004f9e: e01a b.n 8004fd6 <BSP_LCD_DisplayStringAt+0xfa>
{
/* Display one character on LCD */
BSP_LCD_DisplayChar(ref_column, Ypos, *Text);
8004fa0: 68bb ldr r3, [r7, #8]
8004fa2: 781a ldrb r2, [r3, #0]
8004fa4: 89b9 ldrh r1, [r7, #12]
8004fa6: 8bfb ldrh r3, [r7, #30]
8004fa8: 4618 mov r0, r3
8004faa: f7ff ff53 bl 8004e54 <BSP_LCD_DisplayChar>
/* Decrement the column position by 16 */
ref_column += DrawProp[ActiveLayer].pFont->Width;
8004fae: 4b23 ldr r3, [pc, #140] ; (800503c <BSP_LCD_DisplayStringAt+0x160>)
8004fb0: 681a ldr r2, [r3, #0]
8004fb2: 4923 ldr r1, [pc, #140] ; (8005040 <BSP_LCD_DisplayStringAt+0x164>)
8004fb4: 4613 mov r3, r2
8004fb6: 005b lsls r3, r3, #1
8004fb8: 4413 add r3, r2
8004fba: 009b lsls r3, r3, #2
8004fbc: 440b add r3, r1
8004fbe: 3308 adds r3, #8
8004fc0: 681b ldr r3, [r3, #0]
8004fc2: 889a ldrh r2, [r3, #4]
8004fc4: 8bfb ldrh r3, [r7, #30]
8004fc6: 4413 add r3, r2
8004fc8: 83fb strh r3, [r7, #30]
/* Point on the next character */
Text++;
8004fca: 68bb ldr r3, [r7, #8]
8004fcc: 3301 adds r3, #1
8004fce: 60bb str r3, [r7, #8]
i++;
8004fd0: 8bbb ldrh r3, [r7, #28]
8004fd2: 3301 adds r3, #1
8004fd4: 83bb strh r3, [r7, #28]
while ((*Text != 0) & (((BSP_LCD_GetXSize() - (i*DrawProp[ActiveLayer].pFont->Width)) & 0xFFFF) >= DrawProp[ActiveLayer].pFont->Width))
8004fd6: 68bb ldr r3, [r7, #8]
8004fd8: 781b ldrb r3, [r3, #0]
8004fda: 2b00 cmp r3, #0
8004fdc: bf14 ite ne
8004fde: 2301 movne r3, #1
8004fe0: 2300 moveq r3, #0
8004fe2: b2dc uxtb r4, r3
8004fe4: f7ff fe04 bl 8004bf0 <BSP_LCD_GetXSize>
8004fe8: 4605 mov r5, r0
8004fea: 8bb9 ldrh r1, [r7, #28]
8004fec: 4b13 ldr r3, [pc, #76] ; (800503c <BSP_LCD_DisplayStringAt+0x160>)
8004fee: 681a ldr r2, [r3, #0]
8004ff0: 4813 ldr r0, [pc, #76] ; (8005040 <BSP_LCD_DisplayStringAt+0x164>)
8004ff2: 4613 mov r3, r2
8004ff4: 005b lsls r3, r3, #1
8004ff6: 4413 add r3, r2
8004ff8: 009b lsls r3, r3, #2
8004ffa: 4403 add r3, r0
8004ffc: 3308 adds r3, #8
8004ffe: 681b ldr r3, [r3, #0]
8005000: 889b ldrh r3, [r3, #4]
8005002: fb03 f301 mul.w r3, r3, r1
8005006: 1aeb subs r3, r5, r3
8005008: b299 uxth r1, r3
800500a: 4b0c ldr r3, [pc, #48] ; (800503c <BSP_LCD_DisplayStringAt+0x160>)
800500c: 681a ldr r2, [r3, #0]
800500e: 480c ldr r0, [pc, #48] ; (8005040 <BSP_LCD_DisplayStringAt+0x164>)
8005010: 4613 mov r3, r2
8005012: 005b lsls r3, r3, #1
8005014: 4413 add r3, r2
8005016: 009b lsls r3, r3, #2
8005018: 4403 add r3, r0
800501a: 3308 adds r3, #8
800501c: 681b ldr r3, [r3, #0]
800501e: 889b ldrh r3, [r3, #4]
8005020: 4299 cmp r1, r3
8005022: bf2c ite cs
8005024: 2301 movcs r3, #1
8005026: 2300 movcc r3, #0
8005028: b2db uxtb r3, r3
800502a: 4023 ands r3, r4
800502c: b2db uxtb r3, r3
800502e: 2b00 cmp r3, #0
8005030: d1b6 bne.n 8004fa0 <BSP_LCD_DisplayStringAt+0xc4>
}
}
8005032: bf00 nop
8005034: 3720 adds r7, #32
8005036: 46bd mov sp, r7
8005038: bdb0 pop {r4, r5, r7, pc}
800503a: bf00 nop
800503c: 20020018 .word 0x20020018
8005040: 2006ba44 .word 0x2006ba44
08005044 <BSP_LCD_DrawHLine>:
* @param Ypos: Y position
* @param Length: Line length
* @retval None
*/
void BSP_LCD_DrawHLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length)
{
8005044: b5b0 push {r4, r5, r7, lr}
8005046: b086 sub sp, #24
8005048: af02 add r7, sp, #8
800504a: 4603 mov r3, r0
800504c: 80fb strh r3, [r7, #6]
800504e: 460b mov r3, r1
8005050: 80bb strh r3, [r7, #4]
8005052: 4613 mov r3, r2
8005054: 807b strh r3, [r7, #2]
uint32_t Xaddress = 0;
8005056: 2300 movs r3, #0
8005058: 60fb str r3, [r7, #12]
/* Get the line address */
if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565)
800505a: 4b26 ldr r3, [pc, #152] ; (80050f4 <BSP_LCD_DrawHLine+0xb0>)
800505c: 681b ldr r3, [r3, #0]
800505e: 4a26 ldr r2, [pc, #152] ; (80050f8 <BSP_LCD_DrawHLine+0xb4>)
8005060: 2134 movs r1, #52 ; 0x34
8005062: fb01 f303 mul.w r3, r1, r3
8005066: 4413 add r3, r2
8005068: 3348 adds r3, #72 ; 0x48
800506a: 681b ldr r3, [r3, #0]
800506c: 2b02 cmp r3, #2
800506e: d114 bne.n 800509a <BSP_LCD_DrawHLine+0x56>
{ /* RGB565 format */
Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 2*(BSP_LCD_GetXSize()*Ypos + Xpos);
8005070: 4b20 ldr r3, [pc, #128] ; (80050f4 <BSP_LCD_DrawHLine+0xb0>)
8005072: 681b ldr r3, [r3, #0]
8005074: 4a20 ldr r2, [pc, #128] ; (80050f8 <BSP_LCD_DrawHLine+0xb4>)
8005076: 2134 movs r1, #52 ; 0x34
8005078: fb01 f303 mul.w r3, r1, r3
800507c: 4413 add r3, r2
800507e: 335c adds r3, #92 ; 0x5c
8005080: 681c ldr r4, [r3, #0]
8005082: f7ff fdb5 bl 8004bf0 <BSP_LCD_GetXSize>
8005086: 4602 mov r2, r0
8005088: 88bb ldrh r3, [r7, #4]
800508a: fb03 f202 mul.w r2, r3, r2
800508e: 88fb ldrh r3, [r7, #6]
8005090: 4413 add r3, r2
8005092: 005b lsls r3, r3, #1
8005094: 4423 add r3, r4
8005096: 60fb str r3, [r7, #12]
8005098: e013 b.n 80050c2 <BSP_LCD_DrawHLine+0x7e>
}
else
{ /* ARGB8888 format */
Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 4*(BSP_LCD_GetXSize()*Ypos + Xpos);
800509a: 4b16 ldr r3, [pc, #88] ; (80050f4 <BSP_LCD_DrawHLine+0xb0>)
800509c: 681b ldr r3, [r3, #0]
800509e: 4a16 ldr r2, [pc, #88] ; (80050f8 <BSP_LCD_DrawHLine+0xb4>)
80050a0: 2134 movs r1, #52 ; 0x34
80050a2: fb01 f303 mul.w r3, r1, r3
80050a6: 4413 add r3, r2
80050a8: 335c adds r3, #92 ; 0x5c
80050aa: 681c ldr r4, [r3, #0]
80050ac: f7ff fda0 bl 8004bf0 <BSP_LCD_GetXSize>
80050b0: 4602 mov r2, r0
80050b2: 88bb ldrh r3, [r7, #4]
80050b4: fb03 f202 mul.w r2, r3, r2
80050b8: 88fb ldrh r3, [r7, #6]
80050ba: 4413 add r3, r2
80050bc: 009b lsls r3, r3, #2
80050be: 4423 add r3, r4
80050c0: 60fb str r3, [r7, #12]
}
/* Write line */
LL_FillBuffer(ActiveLayer, (uint32_t *)Xaddress, Length, 1, 0, DrawProp[ActiveLayer].TextColor);
80050c2: 4b0c ldr r3, [pc, #48] ; (80050f4 <BSP_LCD_DrawHLine+0xb0>)
80050c4: 6818 ldr r0, [r3, #0]
80050c6: 68fc ldr r4, [r7, #12]
80050c8: 887d ldrh r5, [r7, #2]
80050ca: 4b0a ldr r3, [pc, #40] ; (80050f4 <BSP_LCD_DrawHLine+0xb0>)
80050cc: 681a ldr r2, [r3, #0]
80050ce: 490b ldr r1, [pc, #44] ; (80050fc <BSP_LCD_DrawHLine+0xb8>)
80050d0: 4613 mov r3, r2
80050d2: 005b lsls r3, r3, #1
80050d4: 4413 add r3, r2
80050d6: 009b lsls r3, r3, #2
80050d8: 440b add r3, r1
80050da: 681b ldr r3, [r3, #0]
80050dc: 9301 str r3, [sp, #4]
80050de: 2300 movs r3, #0
80050e0: 9300 str r3, [sp, #0]
80050e2: 2301 movs r3, #1
80050e4: 462a mov r2, r5
80050e6: 4621 mov r1, r4
80050e8: f000 fbc6 bl 8005878 <LL_FillBuffer>
}
80050ec: bf00 nop
80050ee: 3710 adds r7, #16
80050f0: 46bd mov sp, r7
80050f2: bdb0 pop {r4, r5, r7, pc}
80050f4: 20020018 .word 0x20020018
80050f8: 2006c174 .word 0x2006c174
80050fc: 2006ba44 .word 0x2006ba44
08005100 <BSP_LCD_DrawVLine>:
* @param Ypos: Y position
* @param Length: Line length
* @retval None
*/
void BSP_LCD_DrawVLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length)
{
8005100: b5f0 push {r4, r5, r6, r7, lr}
8005102: b087 sub sp, #28
8005104: af02 add r7, sp, #8
8005106: 4603 mov r3, r0
8005108: 80fb strh r3, [r7, #6]
800510a: 460b mov r3, r1
800510c: 80bb strh r3, [r7, #4]
800510e: 4613 mov r3, r2
8005110: 807b strh r3, [r7, #2]
uint32_t Xaddress = 0;
8005112: 2300 movs r3, #0
8005114: 60fb str r3, [r7, #12]
/* Get the line address */
if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565)
8005116: 4b28 ldr r3, [pc, #160] ; (80051b8 <BSP_LCD_DrawVLine+0xb8>)
8005118: 681b ldr r3, [r3, #0]
800511a: 4a28 ldr r2, [pc, #160] ; (80051bc <BSP_LCD_DrawVLine+0xbc>)
800511c: 2134 movs r1, #52 ; 0x34
800511e: fb01 f303 mul.w r3, r1, r3
8005122: 4413 add r3, r2
8005124: 3348 adds r3, #72 ; 0x48
8005126: 681b ldr r3, [r3, #0]
8005128: 2b02 cmp r3, #2
800512a: d114 bne.n 8005156 <BSP_LCD_DrawVLine+0x56>
{ /* RGB565 format */
Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 2*(BSP_LCD_GetXSize()*Ypos + Xpos);
800512c: 4b22 ldr r3, [pc, #136] ; (80051b8 <BSP_LCD_DrawVLine+0xb8>)
800512e: 681b ldr r3, [r3, #0]
8005130: 4a22 ldr r2, [pc, #136] ; (80051bc <BSP_LCD_DrawVLine+0xbc>)
8005132: 2134 movs r1, #52 ; 0x34
8005134: fb01 f303 mul.w r3, r1, r3
8005138: 4413 add r3, r2
800513a: 335c adds r3, #92 ; 0x5c
800513c: 681c ldr r4, [r3, #0]
800513e: f7ff fd57 bl 8004bf0 <BSP_LCD_GetXSize>
8005142: 4602 mov r2, r0
8005144: 88bb ldrh r3, [r7, #4]
8005146: fb03 f202 mul.w r2, r3, r2
800514a: 88fb ldrh r3, [r7, #6]
800514c: 4413 add r3, r2
800514e: 005b lsls r3, r3, #1
8005150: 4423 add r3, r4
8005152: 60fb str r3, [r7, #12]
8005154: e013 b.n 800517e <BSP_LCD_DrawVLine+0x7e>
}
else
{ /* ARGB8888 format */
Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 4*(BSP_LCD_GetXSize()*Ypos + Xpos);
8005156: 4b18 ldr r3, [pc, #96] ; (80051b8 <BSP_LCD_DrawVLine+0xb8>)
8005158: 681b ldr r3, [r3, #0]
800515a: 4a18 ldr r2, [pc, #96] ; (80051bc <BSP_LCD_DrawVLine+0xbc>)
800515c: 2134 movs r1, #52 ; 0x34
800515e: fb01 f303 mul.w r3, r1, r3
8005162: 4413 add r3, r2
8005164: 335c adds r3, #92 ; 0x5c
8005166: 681c ldr r4, [r3, #0]
8005168: f7ff fd42 bl 8004bf0 <BSP_LCD_GetXSize>
800516c: 4602 mov r2, r0
800516e: 88bb ldrh r3, [r7, #4]
8005170: fb03 f202 mul.w r2, r3, r2
8005174: 88fb ldrh r3, [r7, #6]
8005176: 4413 add r3, r2
8005178: 009b lsls r3, r3, #2
800517a: 4423 add r3, r4
800517c: 60fb str r3, [r7, #12]
}
/* Write line */
LL_FillBuffer(ActiveLayer, (uint32_t *)Xaddress, 1, Length, (BSP_LCD_GetXSize() - 1), DrawProp[ActiveLayer].TextColor);
800517e: 4b0e ldr r3, [pc, #56] ; (80051b8 <BSP_LCD_DrawVLine+0xb8>)
8005180: 681c ldr r4, [r3, #0]
8005182: 68fd ldr r5, [r7, #12]
8005184: 887e ldrh r6, [r7, #2]
8005186: f7ff fd33 bl 8004bf0 <BSP_LCD_GetXSize>
800518a: 4603 mov r3, r0
800518c: 1e59 subs r1, r3, #1
800518e: 4b0a ldr r3, [pc, #40] ; (80051b8 <BSP_LCD_DrawVLine+0xb8>)
8005190: 681a ldr r2, [r3, #0]
8005192: 480b ldr r0, [pc, #44] ; (80051c0 <BSP_LCD_DrawVLine+0xc0>)
8005194: 4613 mov r3, r2
8005196: 005b lsls r3, r3, #1
8005198: 4413 add r3, r2
800519a: 009b lsls r3, r3, #2
800519c: 4403 add r3, r0
800519e: 681b ldr r3, [r3, #0]
80051a0: 9301 str r3, [sp, #4]
80051a2: 9100 str r1, [sp, #0]
80051a4: 4633 mov r3, r6
80051a6: 2201 movs r2, #1
80051a8: 4629 mov r1, r5
80051aa: 4620 mov r0, r4
80051ac: f000 fb64 bl 8005878 <LL_FillBuffer>
}
80051b0: bf00 nop
80051b2: 3714 adds r7, #20
80051b4: 46bd mov sp, r7
80051b6: bdf0 pop {r4, r5, r6, r7, pc}
80051b8: 20020018 .word 0x20020018
80051bc: 2006c174 .word 0x2006c174
80051c0: 2006ba44 .word 0x2006ba44
080051c4 <BSP_LCD_DrawRect>:
* @param Width: Rectangle width
* @param Height: Rectangle height
* @retval None
*/
void BSP_LCD_DrawRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height)
{
80051c4: b590 push {r4, r7, lr}
80051c6: b083 sub sp, #12
80051c8: af00 add r7, sp, #0
80051ca: 4604 mov r4, r0
80051cc: 4608 mov r0, r1
80051ce: 4611 mov r1, r2
80051d0: 461a mov r2, r3
80051d2: 4623 mov r3, r4
80051d4: 80fb strh r3, [r7, #6]
80051d6: 4603 mov r3, r0
80051d8: 80bb strh r3, [r7, #4]
80051da: 460b mov r3, r1
80051dc: 807b strh r3, [r7, #2]
80051de: 4613 mov r3, r2
80051e0: 803b strh r3, [r7, #0]
BSP_LCD_DrawHLine(Xpos, Ypos, Width);
80051e2: 887a ldrh r2, [r7, #2]
80051e4: 88b9 ldrh r1, [r7, #4]
80051e6: 88fb ldrh r3, [r7, #6]
80051e8: 4618 mov r0, r3
80051ea: f7ff ff2b bl 8005044 <BSP_LCD_DrawHLine>
BSP_LCD_DrawVLine(Xpos, Ypos, Height);
80051ee: 883a ldrh r2, [r7, #0]
80051f0: 88b9 ldrh r1, [r7, #4]
80051f2: 88fb ldrh r3, [r7, #6]
80051f4: 4618 mov r0, r3
80051f6: f7ff ff83 bl 8005100 <BSP_LCD_DrawVLine>
BSP_LCD_DrawHLine(Xpos, (Ypos + Height), Width);
80051fa: 88ba ldrh r2, [r7, #4]
80051fc: 883b ldrh r3, [r7, #0]
80051fe: 4413 add r3, r2
8005200: b299 uxth r1, r3
8005202: 887a ldrh r2, [r7, #2]
8005204: 88fb ldrh r3, [r7, #6]
8005206: 4618 mov r0, r3
8005208: f7ff ff1c bl 8005044 <BSP_LCD_DrawHLine>
BSP_LCD_DrawVLine((Xpos + Width), Ypos, Height + 1);
800520c: 88fa ldrh r2, [r7, #6]
800520e: 887b ldrh r3, [r7, #2]
8005210: 4413 add r3, r2
8005212: b298 uxth r0, r3
8005214: 883b ldrh r3, [r7, #0]
8005216: 3301 adds r3, #1
8005218: b29a uxth r2, r3
800521a: 88bb ldrh r3, [r7, #4]
800521c: 4619 mov r1, r3
800521e: f7ff ff6f bl 8005100 <BSP_LCD_DrawVLine>
}
8005222: bf00 nop
8005224: 370c adds r7, #12
8005226: 46bd mov sp, r7
8005228: bd90 pop {r4, r7, pc}
...
0800522c <BSP_LCD_DrawCircle>:
* @param Ypos: Y position
* @param Radius: Circle radius
* @retval None
*/
void BSP_LCD_DrawCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius)
{
800522c: b590 push {r4, r7, lr}
800522e: b087 sub sp, #28
8005230: af00 add r7, sp, #0
8005232: 4603 mov r3, r0
8005234: 80fb strh r3, [r7, #6]
8005236: 460b mov r3, r1
8005238: 80bb strh r3, [r7, #4]
800523a: 4613 mov r3, r2
800523c: 807b strh r3, [r7, #2]
int32_t decision; /* Decision Variable */
uint32_t current_x; /* Current X Value */
uint32_t current_y; /* Current Y Value */
decision = 3 - (Radius << 1);
800523e: 887b ldrh r3, [r7, #2]
8005240: 005b lsls r3, r3, #1
8005242: f1c3 0303 rsb r3, r3, #3
8005246: 617b str r3, [r7, #20]
current_x = 0;
8005248: 2300 movs r3, #0
800524a: 613b str r3, [r7, #16]
current_y = Radius;
800524c: 887b ldrh r3, [r7, #2]
800524e: 60fb str r3, [r7, #12]
while (current_x <= current_y)
8005250: e0cf b.n 80053f2 <BSP_LCD_DrawCircle+0x1c6>
{
BSP_LCD_DrawPixel((Xpos + current_x), (Ypos - current_y), DrawProp[ActiveLayer].TextColor);
8005252: 693b ldr r3, [r7, #16]
8005254: b29a uxth r2, r3
8005256: 88fb ldrh r3, [r7, #6]
8005258: 4413 add r3, r2
800525a: b298 uxth r0, r3
800525c: 68fb ldr r3, [r7, #12]
800525e: b29b uxth r3, r3
8005260: 88ba ldrh r2, [r7, #4]
8005262: 1ad3 subs r3, r2, r3
8005264: b29c uxth r4, r3
8005266: 4b67 ldr r3, [pc, #412] ; (8005404 <BSP_LCD_DrawCircle+0x1d8>)
8005268: 681a ldr r2, [r3, #0]
800526a: 4967 ldr r1, [pc, #412] ; (8005408 <BSP_LCD_DrawCircle+0x1dc>)
800526c: 4613 mov r3, r2
800526e: 005b lsls r3, r3, #1
8005270: 4413 add r3, r2
8005272: 009b lsls r3, r3, #2
8005274: 440b add r3, r1
8005276: 681b ldr r3, [r3, #0]
8005278: 461a mov r2, r3
800527a: 4621 mov r1, r4
800527c: f000 f8c6 bl 800540c <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos - current_x), (Ypos - current_y), DrawProp[ActiveLayer].TextColor);
8005280: 693b ldr r3, [r7, #16]
8005282: b29b uxth r3, r3
8005284: 88fa ldrh r2, [r7, #6]
8005286: 1ad3 subs r3, r2, r3
8005288: b298 uxth r0, r3
800528a: 68fb ldr r3, [r7, #12]
800528c: b29b uxth r3, r3
800528e: 88ba ldrh r2, [r7, #4]
8005290: 1ad3 subs r3, r2, r3
8005292: b29c uxth r4, r3
8005294: 4b5b ldr r3, [pc, #364] ; (8005404 <BSP_LCD_DrawCircle+0x1d8>)
8005296: 681a ldr r2, [r3, #0]
8005298: 495b ldr r1, [pc, #364] ; (8005408 <BSP_LCD_DrawCircle+0x1dc>)
800529a: 4613 mov r3, r2
800529c: 005b lsls r3, r3, #1
800529e: 4413 add r3, r2
80052a0: 009b lsls r3, r3, #2
80052a2: 440b add r3, r1
80052a4: 681b ldr r3, [r3, #0]
80052a6: 461a mov r2, r3
80052a8: 4621 mov r1, r4
80052aa: f000 f8af bl 800540c <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos + current_y), (Ypos - current_x), DrawProp[ActiveLayer].TextColor);
80052ae: 68fb ldr r3, [r7, #12]
80052b0: b29a uxth r2, r3
80052b2: 88fb ldrh r3, [r7, #6]
80052b4: 4413 add r3, r2
80052b6: b298 uxth r0, r3
80052b8: 693b ldr r3, [r7, #16]
80052ba: b29b uxth r3, r3
80052bc: 88ba ldrh r2, [r7, #4]
80052be: 1ad3 subs r3, r2, r3
80052c0: b29c uxth r4, r3
80052c2: 4b50 ldr r3, [pc, #320] ; (8005404 <BSP_LCD_DrawCircle+0x1d8>)
80052c4: 681a ldr r2, [r3, #0]
80052c6: 4950 ldr r1, [pc, #320] ; (8005408 <BSP_LCD_DrawCircle+0x1dc>)
80052c8: 4613 mov r3, r2
80052ca: 005b lsls r3, r3, #1
80052cc: 4413 add r3, r2
80052ce: 009b lsls r3, r3, #2
80052d0: 440b add r3, r1
80052d2: 681b ldr r3, [r3, #0]
80052d4: 461a mov r2, r3
80052d6: 4621 mov r1, r4
80052d8: f000 f898 bl 800540c <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos - current_y), (Ypos - current_x), DrawProp[ActiveLayer].TextColor);
80052dc: 68fb ldr r3, [r7, #12]
80052de: b29b uxth r3, r3
80052e0: 88fa ldrh r2, [r7, #6]
80052e2: 1ad3 subs r3, r2, r3
80052e4: b298 uxth r0, r3
80052e6: 693b ldr r3, [r7, #16]
80052e8: b29b uxth r3, r3
80052ea: 88ba ldrh r2, [r7, #4]
80052ec: 1ad3 subs r3, r2, r3
80052ee: b29c uxth r4, r3
80052f0: 4b44 ldr r3, [pc, #272] ; (8005404 <BSP_LCD_DrawCircle+0x1d8>)
80052f2: 681a ldr r2, [r3, #0]
80052f4: 4944 ldr r1, [pc, #272] ; (8005408 <BSP_LCD_DrawCircle+0x1dc>)
80052f6: 4613 mov r3, r2
80052f8: 005b lsls r3, r3, #1
80052fa: 4413 add r3, r2
80052fc: 009b lsls r3, r3, #2
80052fe: 440b add r3, r1
8005300: 681b ldr r3, [r3, #0]
8005302: 461a mov r2, r3
8005304: 4621 mov r1, r4
8005306: f000 f881 bl 800540c <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos + current_x), (Ypos + current_y), DrawProp[ActiveLayer].TextColor);
800530a: 693b ldr r3, [r7, #16]
800530c: b29a uxth r2, r3
800530e: 88fb ldrh r3, [r7, #6]
8005310: 4413 add r3, r2
8005312: b298 uxth r0, r3
8005314: 68fb ldr r3, [r7, #12]
8005316: b29a uxth r2, r3
8005318: 88bb ldrh r3, [r7, #4]
800531a: 4413 add r3, r2
800531c: b29c uxth r4, r3
800531e: 4b39 ldr r3, [pc, #228] ; (8005404 <BSP_LCD_DrawCircle+0x1d8>)
8005320: 681a ldr r2, [r3, #0]
8005322: 4939 ldr r1, [pc, #228] ; (8005408 <BSP_LCD_DrawCircle+0x1dc>)
8005324: 4613 mov r3, r2
8005326: 005b lsls r3, r3, #1
8005328: 4413 add r3, r2
800532a: 009b lsls r3, r3, #2
800532c: 440b add r3, r1
800532e: 681b ldr r3, [r3, #0]
8005330: 461a mov r2, r3
8005332: 4621 mov r1, r4
8005334: f000 f86a bl 800540c <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos - current_x), (Ypos + current_y), DrawProp[ActiveLayer].TextColor);
8005338: 693b ldr r3, [r7, #16]
800533a: b29b uxth r3, r3
800533c: 88fa ldrh r2, [r7, #6]
800533e: 1ad3 subs r3, r2, r3
8005340: b298 uxth r0, r3
8005342: 68fb ldr r3, [r7, #12]
8005344: b29a uxth r2, r3
8005346: 88bb ldrh r3, [r7, #4]
8005348: 4413 add r3, r2
800534a: b29c uxth r4, r3
800534c: 4b2d ldr r3, [pc, #180] ; (8005404 <BSP_LCD_DrawCircle+0x1d8>)
800534e: 681a ldr r2, [r3, #0]
8005350: 492d ldr r1, [pc, #180] ; (8005408 <BSP_LCD_DrawCircle+0x1dc>)
8005352: 4613 mov r3, r2
8005354: 005b lsls r3, r3, #1
8005356: 4413 add r3, r2
8005358: 009b lsls r3, r3, #2
800535a: 440b add r3, r1
800535c: 681b ldr r3, [r3, #0]
800535e: 461a mov r2, r3
8005360: 4621 mov r1, r4
8005362: f000 f853 bl 800540c <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos + current_y), (Ypos + current_x), DrawProp[ActiveLayer].TextColor);
8005366: 68fb ldr r3, [r7, #12]
8005368: b29a uxth r2, r3
800536a: 88fb ldrh r3, [r7, #6]
800536c: 4413 add r3, r2
800536e: b298 uxth r0, r3
8005370: 693b ldr r3, [r7, #16]
8005372: b29a uxth r2, r3
8005374: 88bb ldrh r3, [r7, #4]
8005376: 4413 add r3, r2
8005378: b29c uxth r4, r3
800537a: 4b22 ldr r3, [pc, #136] ; (8005404 <BSP_LCD_DrawCircle+0x1d8>)
800537c: 681a ldr r2, [r3, #0]
800537e: 4922 ldr r1, [pc, #136] ; (8005408 <BSP_LCD_DrawCircle+0x1dc>)
8005380: 4613 mov r3, r2
8005382: 005b lsls r3, r3, #1
8005384: 4413 add r3, r2
8005386: 009b lsls r3, r3, #2
8005388: 440b add r3, r1
800538a: 681b ldr r3, [r3, #0]
800538c: 461a mov r2, r3
800538e: 4621 mov r1, r4
8005390: f000 f83c bl 800540c <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos - current_y), (Ypos + current_x), DrawProp[ActiveLayer].TextColor);
8005394: 68fb ldr r3, [r7, #12]
8005396: b29b uxth r3, r3
8005398: 88fa ldrh r2, [r7, #6]
800539a: 1ad3 subs r3, r2, r3
800539c: b298 uxth r0, r3
800539e: 693b ldr r3, [r7, #16]
80053a0: b29a uxth r2, r3
80053a2: 88bb ldrh r3, [r7, #4]
80053a4: 4413 add r3, r2
80053a6: b29c uxth r4, r3
80053a8: 4b16 ldr r3, [pc, #88] ; (8005404 <BSP_LCD_DrawCircle+0x1d8>)
80053aa: 681a ldr r2, [r3, #0]
80053ac: 4916 ldr r1, [pc, #88] ; (8005408 <BSP_LCD_DrawCircle+0x1dc>)
80053ae: 4613 mov r3, r2
80053b0: 005b lsls r3, r3, #1
80053b2: 4413 add r3, r2
80053b4: 009b lsls r3, r3, #2
80053b6: 440b add r3, r1
80053b8: 681b ldr r3, [r3, #0]
80053ba: 461a mov r2, r3
80053bc: 4621 mov r1, r4
80053be: f000 f825 bl 800540c <BSP_LCD_DrawPixel>
if (decision < 0)
80053c2: 697b ldr r3, [r7, #20]
80053c4: 2b00 cmp r3, #0
80053c6: da06 bge.n 80053d6 <BSP_LCD_DrawCircle+0x1aa>
{
decision += (current_x << 2) + 6;
80053c8: 693b ldr r3, [r7, #16]
80053ca: 009a lsls r2, r3, #2
80053cc: 697b ldr r3, [r7, #20]
80053ce: 4413 add r3, r2
80053d0: 3306 adds r3, #6
80053d2: 617b str r3, [r7, #20]
80053d4: e00a b.n 80053ec <BSP_LCD_DrawCircle+0x1c0>
}
else
{
decision += ((current_x - current_y) << 2) + 10;
80053d6: 693a ldr r2, [r7, #16]
80053d8: 68fb ldr r3, [r7, #12]
80053da: 1ad3 subs r3, r2, r3
80053dc: 009a lsls r2, r3, #2
80053de: 697b ldr r3, [r7, #20]
80053e0: 4413 add r3, r2
80053e2: 330a adds r3, #10
80053e4: 617b str r3, [r7, #20]
current_y--;
80053e6: 68fb ldr r3, [r7, #12]
80053e8: 3b01 subs r3, #1
80053ea: 60fb str r3, [r7, #12]
}
current_x++;
80053ec: 693b ldr r3, [r7, #16]
80053ee: 3301 adds r3, #1
80053f0: 613b str r3, [r7, #16]
while (current_x <= current_y)
80053f2: 693a ldr r2, [r7, #16]
80053f4: 68fb ldr r3, [r7, #12]
80053f6: 429a cmp r2, r3
80053f8: f67f af2b bls.w 8005252 <BSP_LCD_DrawCircle+0x26>
}
}
80053fc: bf00 nop
80053fe: 371c adds r7, #28
8005400: 46bd mov sp, r7
8005402: bd90 pop {r4, r7, pc}
8005404: 20020018 .word 0x20020018
8005408: 2006ba44 .word 0x2006ba44
0800540c <BSP_LCD_DrawPixel>:
* @param Ypos: Y position
* @param RGB_Code: Pixel color in ARGB mode (8-8-8-8)
* @retval None
*/
void BSP_LCD_DrawPixel(uint16_t Xpos, uint16_t Ypos, uint32_t RGB_Code)
{
800540c: b5b0 push {r4, r5, r7, lr}
800540e: b082 sub sp, #8
8005410: af00 add r7, sp, #0
8005412: 4603 mov r3, r0
8005414: 603a str r2, [r7, #0]
8005416: 80fb strh r3, [r7, #6]
8005418: 460b mov r3, r1
800541a: 80bb strh r3, [r7, #4]
/* Write data value to all SDRAM memory */
if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565)
800541c: 4b2a ldr r3, [pc, #168] ; (80054c8 <BSP_LCD_DrawPixel+0xbc>)
800541e: 681b ldr r3, [r3, #0]
8005420: 4a2a ldr r2, [pc, #168] ; (80054cc <BSP_LCD_DrawPixel+0xc0>)
8005422: 2134 movs r1, #52 ; 0x34
8005424: fb01 f303 mul.w r3, r1, r3
8005428: 4413 add r3, r2
800542a: 3348 adds r3, #72 ; 0x48
800542c: 681b ldr r3, [r3, #0]
800542e: 2b02 cmp r3, #2
8005430: d12f bne.n 8005492 <BSP_LCD_DrawPixel+0x86>
{ /* RGB565 format */
*(__IO uint16_t*) (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (2*(Ypos*BSP_LCD_GetXSize() + Xpos))) = COLOR24TO16(RGB_Code);
8005432: 4b25 ldr r3, [pc, #148] ; (80054c8 <BSP_LCD_DrawPixel+0xbc>)
8005434: 681b ldr r3, [r3, #0]
8005436: 4a25 ldr r2, [pc, #148] ; (80054cc <BSP_LCD_DrawPixel+0xc0>)
8005438: 2134 movs r1, #52 ; 0x34
800543a: fb01 f303 mul.w r3, r1, r3
800543e: 4413 add r3, r2
8005440: 335c adds r3, #92 ; 0x5c
8005442: 681c ldr r4, [r3, #0]
8005444: 88bd ldrh r5, [r7, #4]
8005446: f7ff fbd3 bl 8004bf0 <BSP_LCD_GetXSize>
800544a: 4603 mov r3, r0
800544c: fb03 f205 mul.w r2, r3, r5
8005450: 88fb ldrh r3, [r7, #6]
8005452: 4413 add r3, r2
8005454: 005b lsls r3, r3, #1
8005456: 4423 add r3, r4
8005458: 4619 mov r1, r3
800545a: 683b ldr r3, [r7, #0]
800545c: 0c1b lsrs r3, r3, #16
800545e: b29b uxth r3, r3
8005460: 021b lsls r3, r3, #8
8005462: b29a uxth r2, r3
8005464: 4b1a ldr r3, [pc, #104] ; (80054d0 <BSP_LCD_DrawPixel+0xc4>)
8005466: 4013 ands r3, r2
8005468: b29a uxth r2, r3
800546a: 683b ldr r3, [r7, #0]
800546c: 0a1b lsrs r3, r3, #8
800546e: b29b uxth r3, r3
8005470: 00db lsls r3, r3, #3
8005472: b29b uxth r3, r3
8005474: f403 63fc and.w r3, r3, #2016 ; 0x7e0
8005478: b29b uxth r3, r3
800547a: 4313 orrs r3, r2
800547c: b29a uxth r2, r3
800547e: 683b ldr r3, [r7, #0]
8005480: 08db lsrs r3, r3, #3
8005482: b29b uxth r3, r3
8005484: f003 031f and.w r3, r3, #31
8005488: b29b uxth r3, r3
800548a: 4313 orrs r3, r2
800548c: b29b uxth r3, r3
800548e: 800b strh r3, [r1, #0]
}
else
{ /* ARGB8888 format */
*(__IO uint32_t*) (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (4*(Ypos*BSP_LCD_GetXSize() + Xpos))) = RGB_Code;
}
}
8005490: e015 b.n 80054be <BSP_LCD_DrawPixel+0xb2>
*(__IO uint32_t*) (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (4*(Ypos*BSP_LCD_GetXSize() + Xpos))) = RGB_Code;
8005492: 4b0d ldr r3, [pc, #52] ; (80054c8 <BSP_LCD_DrawPixel+0xbc>)
8005494: 681b ldr r3, [r3, #0]
8005496: 4a0d ldr r2, [pc, #52] ; (80054cc <BSP_LCD_DrawPixel+0xc0>)
8005498: 2134 movs r1, #52 ; 0x34
800549a: fb01 f303 mul.w r3, r1, r3
800549e: 4413 add r3, r2
80054a0: 335c adds r3, #92 ; 0x5c
80054a2: 681c ldr r4, [r3, #0]
80054a4: 88bd ldrh r5, [r7, #4]
80054a6: f7ff fba3 bl 8004bf0 <BSP_LCD_GetXSize>
80054aa: 4603 mov r3, r0
80054ac: fb03 f205 mul.w r2, r3, r5
80054b0: 88fb ldrh r3, [r7, #6]
80054b2: 4413 add r3, r2
80054b4: 009b lsls r3, r3, #2
80054b6: 4423 add r3, r4
80054b8: 461a mov r2, r3
80054ba: 683b ldr r3, [r7, #0]
80054bc: 6013 str r3, [r2, #0]
}
80054be: bf00 nop
80054c0: 3708 adds r7, #8
80054c2: 46bd mov sp, r7
80054c4: bdb0 pop {r4, r5, r7, pc}
80054c6: bf00 nop
80054c8: 20020018 .word 0x20020018
80054cc: 2006c174 .word 0x2006c174
80054d0: fffff800 .word 0xfffff800
080054d4 <BSP_LCD_FillRect>:
* @param Width: Rectangle width
* @param Height: Rectangle height
* @retval None
*/
void BSP_LCD_FillRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height)
{
80054d4: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
80054d8: b086 sub sp, #24
80054da: af02 add r7, sp, #8
80054dc: 4604 mov r4, r0
80054de: 4608 mov r0, r1
80054e0: 4611 mov r1, r2
80054e2: 461a mov r2, r3
80054e4: 4623 mov r3, r4
80054e6: 80fb strh r3, [r7, #6]
80054e8: 4603 mov r3, r0
80054ea: 80bb strh r3, [r7, #4]
80054ec: 460b mov r3, r1
80054ee: 807b strh r3, [r7, #2]
80054f0: 4613 mov r3, r2
80054f2: 803b strh r3, [r7, #0]
uint32_t x_address = 0;
80054f4: 2300 movs r3, #0
80054f6: 60fb str r3, [r7, #12]
/* Set the text color */
BSP_LCD_SetTextColor(DrawProp[ActiveLayer].TextColor);
80054f8: 4b30 ldr r3, [pc, #192] ; (80055bc <BSP_LCD_FillRect+0xe8>)
80054fa: 681a ldr r2, [r3, #0]
80054fc: 4930 ldr r1, [pc, #192] ; (80055c0 <BSP_LCD_FillRect+0xec>)
80054fe: 4613 mov r3, r2
8005500: 005b lsls r3, r3, #1
8005502: 4413 add r3, r2
8005504: 009b lsls r3, r3, #2
8005506: 440b add r3, r1
8005508: 681b ldr r3, [r3, #0]
800550a: 4618 mov r0, r3
800550c: f7ff fc44 bl 8004d98 <BSP_LCD_SetTextColor>
/* Get the rectangle start address */
if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565)
8005510: 4b2a ldr r3, [pc, #168] ; (80055bc <BSP_LCD_FillRect+0xe8>)
8005512: 681b ldr r3, [r3, #0]
8005514: 4a2b ldr r2, [pc, #172] ; (80055c4 <BSP_LCD_FillRect+0xf0>)
8005516: 2134 movs r1, #52 ; 0x34
8005518: fb01 f303 mul.w r3, r1, r3
800551c: 4413 add r3, r2
800551e: 3348 adds r3, #72 ; 0x48
8005520: 681b ldr r3, [r3, #0]
8005522: 2b02 cmp r3, #2
8005524: d114 bne.n 8005550 <BSP_LCD_FillRect+0x7c>
{ /* RGB565 format */
x_address = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 2*(BSP_LCD_GetXSize()*Ypos + Xpos);
8005526: 4b25 ldr r3, [pc, #148] ; (80055bc <BSP_LCD_FillRect+0xe8>)
8005528: 681b ldr r3, [r3, #0]
800552a: 4a26 ldr r2, [pc, #152] ; (80055c4 <BSP_LCD_FillRect+0xf0>)
800552c: 2134 movs r1, #52 ; 0x34
800552e: fb01 f303 mul.w r3, r1, r3
8005532: 4413 add r3, r2
8005534: 335c adds r3, #92 ; 0x5c
8005536: 681c ldr r4, [r3, #0]
8005538: f7ff fb5a bl 8004bf0 <BSP_LCD_GetXSize>
800553c: 4602 mov r2, r0
800553e: 88bb ldrh r3, [r7, #4]
8005540: fb03 f202 mul.w r2, r3, r2
8005544: 88fb ldrh r3, [r7, #6]
8005546: 4413 add r3, r2
8005548: 005b lsls r3, r3, #1
800554a: 4423 add r3, r4
800554c: 60fb str r3, [r7, #12]
800554e: e013 b.n 8005578 <BSP_LCD_FillRect+0xa4>
}
else
{ /* ARGB8888 format */
x_address = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 4*(BSP_LCD_GetXSize()*Ypos + Xpos);
8005550: 4b1a ldr r3, [pc, #104] ; (80055bc <BSP_LCD_FillRect+0xe8>)
8005552: 681b ldr r3, [r3, #0]
8005554: 4a1b ldr r2, [pc, #108] ; (80055c4 <BSP_LCD_FillRect+0xf0>)
8005556: 2134 movs r1, #52 ; 0x34
8005558: fb01 f303 mul.w r3, r1, r3
800555c: 4413 add r3, r2
800555e: 335c adds r3, #92 ; 0x5c
8005560: 681c ldr r4, [r3, #0]
8005562: f7ff fb45 bl 8004bf0 <BSP_LCD_GetXSize>
8005566: 4602 mov r2, r0
8005568: 88bb ldrh r3, [r7, #4]
800556a: fb03 f202 mul.w r2, r3, r2
800556e: 88fb ldrh r3, [r7, #6]
8005570: 4413 add r3, r2
8005572: 009b lsls r3, r3, #2
8005574: 4423 add r3, r4
8005576: 60fb str r3, [r7, #12]
}
/* Fill the rectangle */
LL_FillBuffer(ActiveLayer, (uint32_t *)x_address, Width, Height, (BSP_LCD_GetXSize() - Width), DrawProp[ActiveLayer].TextColor);
8005578: 4b10 ldr r3, [pc, #64] ; (80055bc <BSP_LCD_FillRect+0xe8>)
800557a: 681c ldr r4, [r3, #0]
800557c: 68fd ldr r5, [r7, #12]
800557e: 887e ldrh r6, [r7, #2]
8005580: f8b7 8000 ldrh.w r8, [r7]
8005584: f7ff fb34 bl 8004bf0 <BSP_LCD_GetXSize>
8005588: 4602 mov r2, r0
800558a: 887b ldrh r3, [r7, #2]
800558c: 1ad1 subs r1, r2, r3
800558e: 4b0b ldr r3, [pc, #44] ; (80055bc <BSP_LCD_FillRect+0xe8>)
8005590: 681a ldr r2, [r3, #0]
8005592: 480b ldr r0, [pc, #44] ; (80055c0 <BSP_LCD_FillRect+0xec>)
8005594: 4613 mov r3, r2
8005596: 005b lsls r3, r3, #1
8005598: 4413 add r3, r2
800559a: 009b lsls r3, r3, #2
800559c: 4403 add r3, r0
800559e: 681b ldr r3, [r3, #0]
80055a0: 9301 str r3, [sp, #4]
80055a2: 9100 str r1, [sp, #0]
80055a4: 4643 mov r3, r8
80055a6: 4632 mov r2, r6
80055a8: 4629 mov r1, r5
80055aa: 4620 mov r0, r4
80055ac: f000 f964 bl 8005878 <LL_FillBuffer>
}
80055b0: bf00 nop
80055b2: 3710 adds r7, #16
80055b4: 46bd mov sp, r7
80055b6: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
80055ba: bf00 nop
80055bc: 20020018 .word 0x20020018
80055c0: 2006ba44 .word 0x2006ba44
80055c4: 2006c174 .word 0x2006c174
080055c8 <BSP_LCD_FillCircle>:
* @param Ypos: Y position
* @param Radius: Circle radius
* @retval None
*/
void BSP_LCD_FillCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius)
{
80055c8: b580 push {r7, lr}
80055ca: b086 sub sp, #24
80055cc: af00 add r7, sp, #0
80055ce: 4603 mov r3, r0
80055d0: 80fb strh r3, [r7, #6]
80055d2: 460b mov r3, r1
80055d4: 80bb strh r3, [r7, #4]
80055d6: 4613 mov r3, r2
80055d8: 807b strh r3, [r7, #2]
int32_t decision; /* Decision Variable */
uint32_t current_x; /* Current X Value */
uint32_t current_y; /* Current Y Value */
decision = 3 - (Radius << 1);
80055da: 887b ldrh r3, [r7, #2]
80055dc: 005b lsls r3, r3, #1
80055de: f1c3 0303 rsb r3, r3, #3
80055e2: 617b str r3, [r7, #20]
current_x = 0;
80055e4: 2300 movs r3, #0
80055e6: 613b str r3, [r7, #16]
current_y = Radius;
80055e8: 887b ldrh r3, [r7, #2]
80055ea: 60fb str r3, [r7, #12]
BSP_LCD_SetTextColor(DrawProp[ActiveLayer].TextColor);
80055ec: 4b44 ldr r3, [pc, #272] ; (8005700 <BSP_LCD_FillCircle+0x138>)
80055ee: 681a ldr r2, [r3, #0]
80055f0: 4944 ldr r1, [pc, #272] ; (8005704 <BSP_LCD_FillCircle+0x13c>)
80055f2: 4613 mov r3, r2
80055f4: 005b lsls r3, r3, #1
80055f6: 4413 add r3, r2
80055f8: 009b lsls r3, r3, #2
80055fa: 440b add r3, r1
80055fc: 681b ldr r3, [r3, #0]
80055fe: 4618 mov r0, r3
8005600: f7ff fbca bl 8004d98 <BSP_LCD_SetTextColor>
while (current_x <= current_y)
8005604: e061 b.n 80056ca <BSP_LCD_FillCircle+0x102>
{
if(current_y > 0)
8005606: 68fb ldr r3, [r7, #12]
8005608: 2b00 cmp r3, #0
800560a: d021 beq.n 8005650 <BSP_LCD_FillCircle+0x88>
{
BSP_LCD_DrawHLine(Xpos - current_y, Ypos + current_x, 2*current_y);
800560c: 68fb ldr r3, [r7, #12]
800560e: b29b uxth r3, r3
8005610: 88fa ldrh r2, [r7, #6]
8005612: 1ad3 subs r3, r2, r3
8005614: b298 uxth r0, r3
8005616: 693b ldr r3, [r7, #16]
8005618: b29a uxth r2, r3
800561a: 88bb ldrh r3, [r7, #4]
800561c: 4413 add r3, r2
800561e: b299 uxth r1, r3
8005620: 68fb ldr r3, [r7, #12]
8005622: b29b uxth r3, r3
8005624: 005b lsls r3, r3, #1
8005626: b29b uxth r3, r3
8005628: 461a mov r2, r3
800562a: f7ff fd0b bl 8005044 <BSP_LCD_DrawHLine>
BSP_LCD_DrawHLine(Xpos - current_y, Ypos - current_x, 2*current_y);
800562e: 68fb ldr r3, [r7, #12]
8005630: b29b uxth r3, r3
8005632: 88fa ldrh r2, [r7, #6]
8005634: 1ad3 subs r3, r2, r3
8005636: b298 uxth r0, r3
8005638: 693b ldr r3, [r7, #16]
800563a: b29b uxth r3, r3
800563c: 88ba ldrh r2, [r7, #4]
800563e: 1ad3 subs r3, r2, r3
8005640: b299 uxth r1, r3
8005642: 68fb ldr r3, [r7, #12]
8005644: b29b uxth r3, r3
8005646: 005b lsls r3, r3, #1
8005648: b29b uxth r3, r3
800564a: 461a mov r2, r3
800564c: f7ff fcfa bl 8005044 <BSP_LCD_DrawHLine>
}
if(current_x > 0)
8005650: 693b ldr r3, [r7, #16]
8005652: 2b00 cmp r3, #0
8005654: d021 beq.n 800569a <BSP_LCD_FillCircle+0xd2>
{
BSP_LCD_DrawHLine(Xpos - current_x, Ypos - current_y, 2*current_x);
8005656: 693b ldr r3, [r7, #16]
8005658: b29b uxth r3, r3
800565a: 88fa ldrh r2, [r7, #6]
800565c: 1ad3 subs r3, r2, r3
800565e: b298 uxth r0, r3
8005660: 68fb ldr r3, [r7, #12]
8005662: b29b uxth r3, r3
8005664: 88ba ldrh r2, [r7, #4]
8005666: 1ad3 subs r3, r2, r3
8005668: b299 uxth r1, r3
800566a: 693b ldr r3, [r7, #16]
800566c: b29b uxth r3, r3
800566e: 005b lsls r3, r3, #1
8005670: b29b uxth r3, r3
8005672: 461a mov r2, r3
8005674: f7ff fce6 bl 8005044 <BSP_LCD_DrawHLine>
BSP_LCD_DrawHLine(Xpos - current_x, Ypos + current_y, 2*current_x);
8005678: 693b ldr r3, [r7, #16]
800567a: b29b uxth r3, r3
800567c: 88fa ldrh r2, [r7, #6]
800567e: 1ad3 subs r3, r2, r3
8005680: b298 uxth r0, r3
8005682: 68fb ldr r3, [r7, #12]
8005684: b29a uxth r2, r3
8005686: 88bb ldrh r3, [r7, #4]
8005688: 4413 add r3, r2
800568a: b299 uxth r1, r3
800568c: 693b ldr r3, [r7, #16]
800568e: b29b uxth r3, r3
8005690: 005b lsls r3, r3, #1
8005692: b29b uxth r3, r3
8005694: 461a mov r2, r3
8005696: f7ff fcd5 bl 8005044 <BSP_LCD_DrawHLine>
}
if (decision < 0)
800569a: 697b ldr r3, [r7, #20]
800569c: 2b00 cmp r3, #0
800569e: da06 bge.n 80056ae <BSP_LCD_FillCircle+0xe6>
{
decision += (current_x << 2) + 6;
80056a0: 693b ldr r3, [r7, #16]
80056a2: 009a lsls r2, r3, #2
80056a4: 697b ldr r3, [r7, #20]
80056a6: 4413 add r3, r2
80056a8: 3306 adds r3, #6
80056aa: 617b str r3, [r7, #20]
80056ac: e00a b.n 80056c4 <BSP_LCD_FillCircle+0xfc>
}
else
{
decision += ((current_x - current_y) << 2) + 10;
80056ae: 693a ldr r2, [r7, #16]
80056b0: 68fb ldr r3, [r7, #12]
80056b2: 1ad3 subs r3, r2, r3
80056b4: 009a lsls r2, r3, #2
80056b6: 697b ldr r3, [r7, #20]
80056b8: 4413 add r3, r2
80056ba: 330a adds r3, #10
80056bc: 617b str r3, [r7, #20]
current_y--;
80056be: 68fb ldr r3, [r7, #12]
80056c0: 3b01 subs r3, #1
80056c2: 60fb str r3, [r7, #12]
}
current_x++;
80056c4: 693b ldr r3, [r7, #16]
80056c6: 3301 adds r3, #1
80056c8: 613b str r3, [r7, #16]
while (current_x <= current_y)
80056ca: 693a ldr r2, [r7, #16]
80056cc: 68fb ldr r3, [r7, #12]
80056ce: 429a cmp r2, r3
80056d0: d999 bls.n 8005606 <BSP_LCD_FillCircle+0x3e>
}
BSP_LCD_SetTextColor(DrawProp[ActiveLayer].TextColor);
80056d2: 4b0b ldr r3, [pc, #44] ; (8005700 <BSP_LCD_FillCircle+0x138>)
80056d4: 681a ldr r2, [r3, #0]
80056d6: 490b ldr r1, [pc, #44] ; (8005704 <BSP_LCD_FillCircle+0x13c>)
80056d8: 4613 mov r3, r2
80056da: 005b lsls r3, r3, #1
80056dc: 4413 add r3, r2
80056de: 009b lsls r3, r3, #2
80056e0: 440b add r3, r1
80056e2: 681b ldr r3, [r3, #0]
80056e4: 4618 mov r0, r3
80056e6: f7ff fb57 bl 8004d98 <BSP_LCD_SetTextColor>
BSP_LCD_DrawCircle(Xpos, Ypos, Radius);
80056ea: 887a ldrh r2, [r7, #2]
80056ec: 88b9 ldrh r1, [r7, #4]
80056ee: 88fb ldrh r3, [r7, #6]
80056f0: 4618 mov r0, r3
80056f2: f7ff fd9b bl 800522c <BSP_LCD_DrawCircle>
}
80056f6: bf00 nop
80056f8: 3718 adds r7, #24
80056fa: 46bd mov sp, r7
80056fc: bd80 pop {r7, pc}
80056fe: bf00 nop
8005700: 20020018 .word 0x20020018
8005704: 2006ba44 .word 0x2006ba44
08005708 <DrawChar>:
* @param Ypos: Start column address
* @param c: Pointer to the character data
* @retval None
*/
static void DrawChar(uint16_t Xpos, uint16_t Ypos, const uint8_t *c)
{
8005708: b580 push {r7, lr}
800570a: b088 sub sp, #32
800570c: af00 add r7, sp, #0
800570e: 4603 mov r3, r0
8005710: 603a str r2, [r7, #0]
8005712: 80fb strh r3, [r7, #6]
8005714: 460b mov r3, r1
8005716: 80bb strh r3, [r7, #4]
uint32_t i = 0, j = 0;
8005718: 2300 movs r3, #0
800571a: 61fb str r3, [r7, #28]
800571c: 2300 movs r3, #0
800571e: 61bb str r3, [r7, #24]
uint8_t offset;
uint8_t *pchar;
uint32_t line;
//uint16_t b;
height = DrawProp[ActiveLayer].pFont->Height;
8005720: 4b53 ldr r3, [pc, #332] ; (8005870 <DrawChar+0x168>)
8005722: 681a ldr r2, [r3, #0]
8005724: 4953 ldr r1, [pc, #332] ; (8005874 <DrawChar+0x16c>)
8005726: 4613 mov r3, r2
8005728: 005b lsls r3, r3, #1
800572a: 4413 add r3, r2
800572c: 009b lsls r3, r3, #2
800572e: 440b add r3, r1
8005730: 3308 adds r3, #8
8005732: 681b ldr r3, [r3, #0]
8005734: 88db ldrh r3, [r3, #6]
8005736: 827b strh r3, [r7, #18]
width = DrawProp[ActiveLayer].pFont->Width;
8005738: 4b4d ldr r3, [pc, #308] ; (8005870 <DrawChar+0x168>)
800573a: 681a ldr r2, [r3, #0]
800573c: 494d ldr r1, [pc, #308] ; (8005874 <DrawChar+0x16c>)
800573e: 4613 mov r3, r2
8005740: 005b lsls r3, r3, #1
8005742: 4413 add r3, r2
8005744: 009b lsls r3, r3, #2
8005746: 440b add r3, r1
8005748: 3308 adds r3, #8
800574a: 681b ldr r3, [r3, #0]
800574c: 889b ldrh r3, [r3, #4]
800574e: 823b strh r3, [r7, #16]
offset = 8 *((width + 7)/8) - width ;
8005750: 8a3b ldrh r3, [r7, #16]
8005752: 3307 adds r3, #7
8005754: 2b00 cmp r3, #0
8005756: da00 bge.n 800575a <DrawChar+0x52>
8005758: 3307 adds r3, #7
800575a: 10db asrs r3, r3, #3
800575c: b2db uxtb r3, r3
800575e: 00db lsls r3, r3, #3
8005760: b2da uxtb r2, r3
8005762: 8a3b ldrh r3, [r7, #16]
8005764: b2db uxtb r3, r3
8005766: 1ad3 subs r3, r2, r3
8005768: 73fb strb r3, [r7, #15]
for(i = 0; i < height; i++)
800576a: 2300 movs r3, #0
800576c: 61fb str r3, [r7, #28]
800576e: e076 b.n 800585e <DrawChar+0x156>
{
pchar = ((uint8_t *)c + (width + 7)/8 * i);
8005770: 8a3b ldrh r3, [r7, #16]
8005772: 3307 adds r3, #7
8005774: 2b00 cmp r3, #0
8005776: da00 bge.n 800577a <DrawChar+0x72>
8005778: 3307 adds r3, #7
800577a: 10db asrs r3, r3, #3
800577c: 461a mov r2, r3
800577e: 69fb ldr r3, [r7, #28]
8005780: fb03 f302 mul.w r3, r3, r2
8005784: 683a ldr r2, [r7, #0]
8005786: 4413 add r3, r2
8005788: 60bb str r3, [r7, #8]
switch(((width + 7)/8))
800578a: 8a3b ldrh r3, [r7, #16]
800578c: 3307 adds r3, #7
800578e: 2b00 cmp r3, #0
8005790: da00 bge.n 8005794 <DrawChar+0x8c>
8005792: 3307 adds r3, #7
8005794: 10db asrs r3, r3, #3
8005796: 2b01 cmp r3, #1
8005798: d002 beq.n 80057a0 <DrawChar+0x98>
800579a: 2b02 cmp r3, #2
800579c: d004 beq.n 80057a8 <DrawChar+0xa0>
800579e: e00c b.n 80057ba <DrawChar+0xb2>
{
case 1:
line = pchar[0];
80057a0: 68bb ldr r3, [r7, #8]
80057a2: 781b ldrb r3, [r3, #0]
80057a4: 617b str r3, [r7, #20]
break;
80057a6: e016 b.n 80057d6 <DrawChar+0xce>
case 2:
line = (pchar[0]<< 8) | pchar[1];
80057a8: 68bb ldr r3, [r7, #8]
80057aa: 781b ldrb r3, [r3, #0]
80057ac: 021b lsls r3, r3, #8
80057ae: 68ba ldr r2, [r7, #8]
80057b0: 3201 adds r2, #1
80057b2: 7812 ldrb r2, [r2, #0]
80057b4: 4313 orrs r3, r2
80057b6: 617b str r3, [r7, #20]
break;
80057b8: e00d b.n 80057d6 <DrawChar+0xce>
case 3:
default:
line = (pchar[0]<< 16) | (pchar[1]<< 8) | pchar[2];
80057ba: 68bb ldr r3, [r7, #8]
80057bc: 781b ldrb r3, [r3, #0]
80057be: 041a lsls r2, r3, #16
80057c0: 68bb ldr r3, [r7, #8]
80057c2: 3301 adds r3, #1
80057c4: 781b ldrb r3, [r3, #0]
80057c6: 021b lsls r3, r3, #8
80057c8: 4313 orrs r3, r2
80057ca: 68ba ldr r2, [r7, #8]
80057cc: 3202 adds r2, #2
80057ce: 7812 ldrb r2, [r2, #0]
80057d0: 4313 orrs r3, r2
80057d2: 617b str r3, [r7, #20]
break;
80057d4: bf00 nop
}
for (j = 0; j < width; j++)
80057d6: 2300 movs r3, #0
80057d8: 61bb str r3, [r7, #24]
80057da: e036 b.n 800584a <DrawChar+0x142>
{
if(line & (1 << (width- j + offset- 1)))
80057dc: 8a3a ldrh r2, [r7, #16]
80057de: 69bb ldr r3, [r7, #24]
80057e0: 1ad2 subs r2, r2, r3
80057e2: 7bfb ldrb r3, [r7, #15]
80057e4: 4413 add r3, r2
80057e6: 3b01 subs r3, #1
80057e8: 2201 movs r2, #1
80057ea: fa02 f303 lsl.w r3, r2, r3
80057ee: 461a mov r2, r3
80057f0: 697b ldr r3, [r7, #20]
80057f2: 4013 ands r3, r2
80057f4: 2b00 cmp r3, #0
80057f6: d012 beq.n 800581e <DrawChar+0x116>
{
BSP_LCD_DrawPixel((Xpos + j), Ypos, DrawProp[ActiveLayer].TextColor);
80057f8: 69bb ldr r3, [r7, #24]
80057fa: b29a uxth r2, r3
80057fc: 88fb ldrh r3, [r7, #6]
80057fe: 4413 add r3, r2
8005800: b298 uxth r0, r3
8005802: 4b1b ldr r3, [pc, #108] ; (8005870 <DrawChar+0x168>)
8005804: 681a ldr r2, [r3, #0]
8005806: 491b ldr r1, [pc, #108] ; (8005874 <DrawChar+0x16c>)
8005808: 4613 mov r3, r2
800580a: 005b lsls r3, r3, #1
800580c: 4413 add r3, r2
800580e: 009b lsls r3, r3, #2
8005810: 440b add r3, r1
8005812: 681a ldr r2, [r3, #0]
8005814: 88bb ldrh r3, [r7, #4]
8005816: 4619 mov r1, r3
8005818: f7ff fdf8 bl 800540c <BSP_LCD_DrawPixel>
800581c: e012 b.n 8005844 <DrawChar+0x13c>
}
else
{
BSP_LCD_DrawPixel((Xpos + j), Ypos, DrawProp[ActiveLayer].BackColor);
800581e: 69bb ldr r3, [r7, #24]
8005820: b29a uxth r2, r3
8005822: 88fb ldrh r3, [r7, #6]
8005824: 4413 add r3, r2
8005826: b298 uxth r0, r3
8005828: 4b11 ldr r3, [pc, #68] ; (8005870 <DrawChar+0x168>)
800582a: 681a ldr r2, [r3, #0]
800582c: 4911 ldr r1, [pc, #68] ; (8005874 <DrawChar+0x16c>)
800582e: 4613 mov r3, r2
8005830: 005b lsls r3, r3, #1
8005832: 4413 add r3, r2
8005834: 009b lsls r3, r3, #2
8005836: 440b add r3, r1
8005838: 3304 adds r3, #4
800583a: 681a ldr r2, [r3, #0]
800583c: 88bb ldrh r3, [r7, #4]
800583e: 4619 mov r1, r3
8005840: f7ff fde4 bl 800540c <BSP_LCD_DrawPixel>
for (j = 0; j < width; j++)
8005844: 69bb ldr r3, [r7, #24]
8005846: 3301 adds r3, #1
8005848: 61bb str r3, [r7, #24]
800584a: 8a3a ldrh r2, [r7, #16]
800584c: 69bb ldr r3, [r7, #24]
800584e: 429a cmp r2, r3
8005850: d8c4 bhi.n 80057dc <DrawChar+0xd4>
}
}
Ypos++;
8005852: 88bb ldrh r3, [r7, #4]
8005854: 3301 adds r3, #1
8005856: 80bb strh r3, [r7, #4]
for(i = 0; i < height; i++)
8005858: 69fb ldr r3, [r7, #28]
800585a: 3301 adds r3, #1
800585c: 61fb str r3, [r7, #28]
800585e: 8a7a ldrh r2, [r7, #18]
8005860: 69fb ldr r3, [r7, #28]
8005862: 429a cmp r2, r3
8005864: d884 bhi.n 8005770 <DrawChar+0x68>
}
}
8005866: bf00 nop
8005868: 3720 adds r7, #32
800586a: 46bd mov sp, r7
800586c: bd80 pop {r7, pc}
800586e: bf00 nop
8005870: 20020018 .word 0x20020018
8005874: 2006ba44 .word 0x2006ba44
08005878 <LL_FillBuffer>:
* @param OffLine: Offset
* @param ColorIndex: Color index
* @retval None
*/
static void LL_FillBuffer(uint32_t LayerIndex, void *pDst, uint32_t xSize, uint32_t ySize, uint32_t OffLine, uint32_t ColorIndex)
{
8005878: b580 push {r7, lr}
800587a: b086 sub sp, #24
800587c: af02 add r7, sp, #8
800587e: 60f8 str r0, [r7, #12]
8005880: 60b9 str r1, [r7, #8]
8005882: 607a str r2, [r7, #4]
8005884: 603b str r3, [r7, #0]
/* Register to memory mode with ARGB8888 as color Mode */
hDma2dHandler.Init.Mode = DMA2D_R2M;
8005886: 4b1e ldr r3, [pc, #120] ; (8005900 <LL_FillBuffer+0x88>)
8005888: f44f 3240 mov.w r2, #196608 ; 0x30000
800588c: 605a str r2, [r3, #4]
if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565)
800588e: 4b1d ldr r3, [pc, #116] ; (8005904 <LL_FillBuffer+0x8c>)
8005890: 681b ldr r3, [r3, #0]
8005892: 4a1d ldr r2, [pc, #116] ; (8005908 <LL_FillBuffer+0x90>)
8005894: 2134 movs r1, #52 ; 0x34
8005896: fb01 f303 mul.w r3, r1, r3
800589a: 4413 add r3, r2
800589c: 3348 adds r3, #72 ; 0x48
800589e: 681b ldr r3, [r3, #0]
80058a0: 2b02 cmp r3, #2
80058a2: d103 bne.n 80058ac <LL_FillBuffer+0x34>
hDma2dHandler.Init.ColorMode = DMA2D_RGB565;
80058a4: 4b16 ldr r3, [pc, #88] ; (8005900 <LL_FillBuffer+0x88>)
80058a6: 2202 movs r2, #2
80058a8: 609a str r2, [r3, #8]
80058aa: e002 b.n 80058b2 <LL_FillBuffer+0x3a>
else hDma2dHandler.Init.ColorMode = DMA2D_ARGB8888;
80058ac: 4b14 ldr r3, [pc, #80] ; (8005900 <LL_FillBuffer+0x88>)
80058ae: 2200 movs r2, #0
80058b0: 609a str r2, [r3, #8]
hDma2dHandler.Init.OutputOffset = OffLine;
80058b2: 4a13 ldr r2, [pc, #76] ; (8005900 <LL_FillBuffer+0x88>)
80058b4: 69bb ldr r3, [r7, #24]
80058b6: 60d3 str r3, [r2, #12]
hDma2dHandler.Instance = DMA2D;
80058b8: 4b11 ldr r3, [pc, #68] ; (8005900 <LL_FillBuffer+0x88>)
80058ba: 4a14 ldr r2, [pc, #80] ; (800590c <LL_FillBuffer+0x94>)
80058bc: 601a str r2, [r3, #0]
if(HAL_DMA2D_Init(&hDma2dHandler) == HAL_OK)
80058be: 4810 ldr r0, [pc, #64] ; (8005900 <LL_FillBuffer+0x88>)
80058c0: f00c f9da bl 8011c78 <HAL_DMA2D_Init>
80058c4: 4603 mov r3, r0
80058c6: 2b00 cmp r3, #0
80058c8: d115 bne.n 80058f6 <LL_FillBuffer+0x7e>
{
if(HAL_DMA2D_ConfigLayer(&hDma2dHandler, LayerIndex) == HAL_OK)
80058ca: 68f9 ldr r1, [r7, #12]
80058cc: 480c ldr r0, [pc, #48] ; (8005900 <LL_FillBuffer+0x88>)
80058ce: f00c fb41 bl 8011f54 <HAL_DMA2D_ConfigLayer>
80058d2: 4603 mov r3, r0
80058d4: 2b00 cmp r3, #0
80058d6: d10e bne.n 80058f6 <LL_FillBuffer+0x7e>
{
if (HAL_DMA2D_Start(&hDma2dHandler, ColorIndex, (uint32_t)pDst, xSize, ySize) == HAL_OK)
80058d8: 68ba ldr r2, [r7, #8]
80058da: 683b ldr r3, [r7, #0]
80058dc: 9300 str r3, [sp, #0]
80058de: 687b ldr r3, [r7, #4]
80058e0: 69f9 ldr r1, [r7, #28]
80058e2: 4807 ldr r0, [pc, #28] ; (8005900 <LL_FillBuffer+0x88>)
80058e4: f00c fa22 bl 8011d2c <HAL_DMA2D_Start>
80058e8: 4603 mov r3, r0
80058ea: 2b00 cmp r3, #0
80058ec: d103 bne.n 80058f6 <LL_FillBuffer+0x7e>
{
HAL_DMA2D_PollForTransfer(&hDma2dHandler, 30);
80058ee: 211e movs r1, #30
80058f0: 4803 ldr r0, [pc, #12] ; (8005900 <LL_FillBuffer+0x88>)
80058f2: f00c fa46 bl 8011d82 <HAL_DMA2D_PollForTransfer>
}
}
}
}
80058f6: bf00 nop
80058f8: 3710 adds r7, #16
80058fa: 46bd mov sp, r7
80058fc: bd80 pop {r7, pc}
80058fe: bf00 nop
8005900: 2006b9ec .word 0x2006b9ec
8005904: 20020018 .word 0x20020018
8005908: 2006c174 .word 0x2006c174
800590c: 4002b000 .word 0x4002b000
08005910 <DrawImage>:
}
}
void DrawImage(const GUI_BITMAP * pBM, uint16_t x0, uint16_t y0)
{
8005910: b580 push {r7, lr}
8005912: b088 sub sp, #32
8005914: af02 add r7, sp, #8
8005916: 6078 str r0, [r7, #4]
8005918: 460b mov r3, r1
800591a: 807b strh r3, [r7, #2]
800591c: 4613 mov r3, r2
800591e: 803b strh r3, [r7, #0]
//HAL_StatusTypeDef hal_status = HAL_OK;
uint32_t Xaddress = 0;
8005920: 2300 movs r3, #0
8005922: 617b str r3, [r7, #20]
uint8_t * p;
uint16_t xSize = pBM->XSize;
8005924: 687b ldr r3, [r7, #4]
8005926: 881b ldrh r3, [r3, #0]
8005928: 827b strh r3, [r7, #18]
uint16_t ySize = pBM->YSize;
800592a: 687b ldr r3, [r7, #4]
800592c: 885b ldrh r3, [r3, #2]
800592e: 823b strh r3, [r7, #16]
//uint16_t BytesPerLine = pBM->BytesPerLine;
p = (uint8_t *) pBM->pData;
8005930: 687b ldr r3, [r7, #4]
8005932: 689b ldr r3, [r3, #8]
8005934: 60fb str r3, [r7, #12]
Xaddress = hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + ((320 * y0 + x0) << 1);
8005936: 4b39 ldr r3, [pc, #228] ; (8005a1c <DrawImage+0x10c>)
8005938: 681b ldr r3, [r3, #0]
800593a: 4a39 ldr r2, [pc, #228] ; (8005a20 <DrawImage+0x110>)
800593c: 2134 movs r1, #52 ; 0x34
800593e: fb01 f303 mul.w r3, r1, r3
8005942: 4413 add r3, r2
8005944: 335c adds r3, #92 ; 0x5c
8005946: 6819 ldr r1, [r3, #0]
8005948: 883a ldrh r2, [r7, #0]
800594a: 4613 mov r3, r2
800594c: 009b lsls r3, r3, #2
800594e: 4413 add r3, r2
8005950: 019b lsls r3, r3, #6
8005952: 461a mov r2, r3
8005954: 887b ldrh r3, [r7, #2]
8005956: 4413 add r3, r2
8005958: 005b lsls r3, r3, #1
800595a: 440b add r3, r1
800595c: 617b str r3, [r7, #20]
hDma2dHandler.Init.Mode = DMA2D_M2M;
800595e: 4b31 ldr r3, [pc, #196] ; (8005a24 <DrawImage+0x114>)
8005960: 2200 movs r2, #0
8005962: 605a str r2, [r3, #4]
hDma2dHandler.Init.ColorMode = DMA2D_RGB565;
8005964: 4b2f ldr r3, [pc, #188] ; (8005a24 <DrawImage+0x114>)
8005966: 2202 movs r2, #2
8005968: 609a str r2, [r3, #8]
hDma2dHandler.Init.OutputOffset = 320 - xSize;
800596a: 8a7b ldrh r3, [r7, #18]
800596c: f5c3 73a0 rsb r3, r3, #320 ; 0x140
8005970: 461a mov r2, r3
8005972: 4b2c ldr r3, [pc, #176] ; (8005a24 <DrawImage+0x114>)
8005974: 60da str r2, [r3, #12]
/* DMA2D Callbacks Configuration */
hDma2dHandler.XferCpltCallback = TransferComplete;
8005976: 4b2b ldr r3, [pc, #172] ; (8005a24 <DrawImage+0x114>)
8005978: 4a2b ldr r2, [pc, #172] ; (8005a28 <DrawImage+0x118>)
800597a: 619a str r2, [r3, #24]
hDma2dHandler.XferErrorCallback = TransferError;
800597c: 4b29 ldr r3, [pc, #164] ; (8005a24 <DrawImage+0x114>)
800597e: 4a2b ldr r2, [pc, #172] ; (8005a2c <DrawImage+0x11c>)
8005980: 61da str r2, [r3, #28]
/* Foreground layer Configuration : layer 1 */
hDma2dHandler.LayerCfg[ActiveLayer].AlphaMode = DMA2D_NO_MODIF_ALPHA;
8005982: 4b26 ldr r3, [pc, #152] ; (8005a1c <DrawImage+0x10c>)
8005984: 681a ldr r2, [r3, #0]
8005986: 4927 ldr r1, [pc, #156] ; (8005a24 <DrawImage+0x114>)
8005988: 4613 mov r3, r2
800598a: 005b lsls r3, r3, #1
800598c: 4413 add r3, r2
800598e: 00db lsls r3, r3, #3
8005990: 440b add r3, r1
8005992: 3328 adds r3, #40 ; 0x28
8005994: 2200 movs r2, #0
8005996: 601a str r2, [r3, #0]
hDma2dHandler.LayerCfg[ActiveLayer].InputAlpha = 255; /* Alpha fully opaque */
8005998: 4b20 ldr r3, [pc, #128] ; (8005a1c <DrawImage+0x10c>)
800599a: 681a ldr r2, [r3, #0]
800599c: 4921 ldr r1, [pc, #132] ; (8005a24 <DrawImage+0x114>)
800599e: 4613 mov r3, r2
80059a0: 005b lsls r3, r3, #1
80059a2: 4413 add r3, r2
80059a4: 00db lsls r3, r3, #3
80059a6: 440b add r3, r1
80059a8: 332c adds r3, #44 ; 0x2c
80059aa: 22ff movs r2, #255 ; 0xff
80059ac: 601a str r2, [r3, #0]
hDma2dHandler.LayerCfg[ActiveLayer].InputColorMode = DMA2D_INPUT_RGB565; /* Layer 1 input format is ARGB8888 (32 bpp) */
80059ae: 4b1b ldr r3, [pc, #108] ; (8005a1c <DrawImage+0x10c>)
80059b0: 681a ldr r2, [r3, #0]
80059b2: 491c ldr r1, [pc, #112] ; (8005a24 <DrawImage+0x114>)
80059b4: 4613 mov r3, r2
80059b6: 005b lsls r3, r3, #1
80059b8: 4413 add r3, r2
80059ba: 00db lsls r3, r3, #3
80059bc: 440b add r3, r1
80059be: 3324 adds r3, #36 ; 0x24
80059c0: 2202 movs r2, #2
80059c2: 601a str r2, [r3, #0]
hDma2dHandler.LayerCfg[ActiveLayer].InputOffset = 0; /* No offset in input */
80059c4: 4b15 ldr r3, [pc, #84] ; (8005a1c <DrawImage+0x10c>)
80059c6: 681a ldr r2, [r3, #0]
80059c8: 4916 ldr r1, [pc, #88] ; (8005a24 <DrawImage+0x114>)
80059ca: 4613 mov r3, r2
80059cc: 005b lsls r3, r3, #1
80059ce: 4413 add r3, r2
80059d0: 00db lsls r3, r3, #3
80059d2: 440b add r3, r1
80059d4: 3320 adds r3, #32
80059d6: 2200 movs r2, #0
80059d8: 601a str r2, [r3, #0]
hDma2dHandler.Instance = DMA2D;
80059da: 4b12 ldr r3, [pc, #72] ; (8005a24 <DrawImage+0x114>)
80059dc: 4a14 ldr r2, [pc, #80] ; (8005a30 <DrawImage+0x120>)
80059de: 601a str r2, [r3, #0]
/* DMA2D Initialization */
HAL_DMA2D_Init(&hDma2dHandler);
80059e0: 4810 ldr r0, [pc, #64] ; (8005a24 <DrawImage+0x114>)
80059e2: f00c f949 bl 8011c78 <HAL_DMA2D_Init>
HAL_DMA2D_ConfigLayer(&hDma2dHandler, ActiveLayer);
80059e6: 4b0d ldr r3, [pc, #52] ; (8005a1c <DrawImage+0x10c>)
80059e8: 681b ldr r3, [r3, #0]
80059ea: 4619 mov r1, r3
80059ec: 480d ldr r0, [pc, #52] ; (8005a24 <DrawImage+0x114>)
80059ee: f00c fab1 bl 8011f54 <HAL_DMA2D_ConfigLayer>
DMA2D_TransferOk = 0;
80059f2: 4b10 ldr r3, [pc, #64] ; (8005a34 <DrawImage+0x124>)
80059f4: 2200 movs r2, #0
80059f6: 601a str r2, [r3, #0]
HAL_DMA2D_Start(&hDma2dHandler, (uint32_t) p, Xaddress, xSize, ySize);
80059f8: 68f9 ldr r1, [r7, #12]
80059fa: 8a7a ldrh r2, [r7, #18]
80059fc: 8a3b ldrh r3, [r7, #16]
80059fe: 9300 str r3, [sp, #0]
8005a00: 4613 mov r3, r2
8005a02: 697a ldr r2, [r7, #20]
8005a04: 4807 ldr r0, [pc, #28] ; (8005a24 <DrawImage+0x114>)
8005a06: f00c f991 bl 8011d2c <HAL_DMA2D_Start>
HAL_DMA2D_PollForTransfer(&hDma2dHandler, 30);
8005a0a: 211e movs r1, #30
8005a0c: 4805 ldr r0, [pc, #20] ; (8005a24 <DrawImage+0x114>)
8005a0e: f00c f9b8 bl 8011d82 <HAL_DMA2D_PollForTransfer>
//SCB_CleanInvalidateDCache();
}
8005a12: bf00 nop
8005a14: 3718 adds r7, #24
8005a16: 46bd mov sp, r7
8005a18: bd80 pop {r7, pc}
8005a1a: bf00 nop
8005a1c: 20020018 .word 0x20020018
8005a20: 2006c174 .word 0x2006c174
8005a24: 2006b9ec .word 0x2006b9ec
8005a28: 08005a39 .word 0x08005a39
8005a2c: 08005a59 .word 0x08005a59
8005a30: 4002b000 .word 0x4002b000
8005a34: 2002001c .word 0x2002001c
08005a38 <TransferComplete>:
static void TransferComplete(DMA2D_HandleTypeDef *hdma2d)
{
8005a38: b480 push {r7}
8005a3a: b083 sub sp, #12
8005a3c: af00 add r7, sp, #0
8005a3e: 6078 str r0, [r7, #4]
DMA2D_TransferOk = 1;
8005a40: 4b04 ldr r3, [pc, #16] ; (8005a54 <TransferComplete+0x1c>)
8005a42: 2201 movs r2, #1
8005a44: 601a str r2, [r3, #0]
}
8005a46: bf00 nop
8005a48: 370c adds r7, #12
8005a4a: 46bd mov sp, r7
8005a4c: f85d 7b04 ldr.w r7, [sp], #4
8005a50: 4770 bx lr
8005a52: bf00 nop
8005a54: 2002001c .word 0x2002001c
08005a58 <TransferError>:
static void TransferError(DMA2D_HandleTypeDef *hdma2d)
{
8005a58: b480 push {r7}
8005a5a: b083 sub sp, #12
8005a5c: af00 add r7, sp, #0
8005a5e: 6078 str r0, [r7, #4]
}
8005a60: bf00 nop
8005a62: 370c adds r7, #12
8005a64: 46bd mov sp, r7
8005a66: f85d 7b04 ldr.w r7, [sp], #4
8005a6a: 4770 bx lr
08005a6c <LCD_Refresh>:
void LCD_Refresh(void)
{
8005a6c: b580 push {r7, lr}
8005a6e: af00 add r7, sp, #0
ActiveLayer ^= 1;
8005a70: 4b0e ldr r3, [pc, #56] ; (8005aac <LCD_Refresh+0x40>)
8005a72: 681b ldr r3, [r3, #0]
8005a74: f083 0301 eor.w r3, r3, #1
8005a78: 4a0c ldr r2, [pc, #48] ; (8005aac <LCD_Refresh+0x40>)
8005a7a: 6013 str r3, [r2, #0]
RenderingLayer ^= 1;
8005a7c: 4b0c ldr r3, [pc, #48] ; (8005ab0 <LCD_Refresh+0x44>)
8005a7e: 681b ldr r3, [r3, #0]
8005a80: f083 0301 eor.w r3, r3, #1
8005a84: 4a0a ldr r2, [pc, #40] ; (8005ab0 <LCD_Refresh+0x44>)
8005a86: 6013 str r3, [r2, #0]
BSP_LCD_SetLayerVisible_NoReload(ActiveLayer, DISABLE);
8005a88: 4b08 ldr r3, [pc, #32] ; (8005aac <LCD_Refresh+0x40>)
8005a8a: 681b ldr r3, [r3, #0]
8005a8c: 2100 movs r1, #0
8005a8e: 4618 mov r0, r3
8005a90: f7ff f926 bl 8004ce0 <BSP_LCD_SetLayerVisible_NoReload>
BSP_LCD_SetLayerVisible_NoReload(RenderingLayer, ENABLE);
8005a94: 4b06 ldr r3, [pc, #24] ; (8005ab0 <LCD_Refresh+0x44>)
8005a96: 681b ldr r3, [r3, #0]
8005a98: 2101 movs r1, #1
8005a9a: 4618 mov r0, r3
8005a9c: f7ff f920 bl 8004ce0 <BSP_LCD_SetLayerVisible_NoReload>
HAL_LTDC_Reload(&hLtdcHandler, LTDC_RELOAD_IMMEDIATE);
8005aa0: 2101 movs r1, #1
8005aa2: 4804 ldr r0, [pc, #16] ; (8005ab4 <LCD_Refresh+0x48>)
8005aa4: f00d fac6 bl 8013034 <HAL_LTDC_Reload>
//BSP_LCD_Reload(LCD_RELOAD_VERTICAL_BLANKING);
}
8005aa8: bf00 nop
8005aaa: bd80 pop {r7, pc}
8005aac: 20020018 .word 0x20020018
8005ab0: 2006ba5c .word 0x2006ba5c
8005ab4: 2006c174 .word 0x2006c174
08005ab8 <HAL_LTDC_LineEventCallback>:
void HAL_LTDC_LineEventCallback(LTDC_HandleTypeDef *hltdc)
{
8005ab8: b580 push {r7, lr}
8005aba: b082 sub sp, #8
8005abc: af00 add r7, sp, #0
8005abe: 6078 str r0, [r7, #4]
if(RefreshScreen)
8005ac0: 4b06 ldr r3, [pc, #24] ; (8005adc <HAL_LTDC_LineEventCallback+0x24>)
8005ac2: 781b ldrb r3, [r3, #0]
8005ac4: b2db uxtb r3, r3
8005ac6: 2b00 cmp r3, #0
8005ac8: d004 beq.n 8005ad4 <HAL_LTDC_LineEventCallback+0x1c>
{
LCD_Refresh();
8005aca: f7ff ffcf bl 8005a6c <LCD_Refresh>
RefreshScreen = false;
8005ace: 4b03 ldr r3, [pc, #12] ; (8005adc <HAL_LTDC_LineEventCallback+0x24>)
8005ad0: 2200 movs r2, #0
8005ad2: 701a strb r2, [r3, #0]
}
}
8005ad4: bf00 nop
8005ad6: 3708 adds r7, #8
8005ad8: 46bd mov sp, r7
8005ada: bd80 pop {r7, pc}
8005adc: 2006ba60 .word 0x2006ba60
08005ae0 <main>:
const char _VERSION[] = "VER 2.203.0\0";
volatile char _SERIAL_DRAW[10] = {'S', 'N', ' ', '2', '3', '0', '0', '1', 0, 0};
int main(void)
{
8005ae0: b580 push {r7, lr}
8005ae2: b092 sub sp, #72 ; 0x48
8005ae4: af00 add r7, sp, #0
uint32_t cnt = 0, i, j, k, l;
8005ae6: 2300 movs r3, #0
8005ae8: 63fb str r3, [r7, #60] ; 0x3c
float32_t f;
char str[50];
uint32_t keys = 0;
8005aea: 2300 movs r3, #0
8005aec: 63bb str r3, [r7, #56] ; 0x38
HAL_Init();
8005aee: f00b fcd9 bl 80114a4 <HAL_Init>
SystemClock_Config();
8005af2: f000 f8df bl 8005cb4 <SystemClock_Config>
MX_GPIO_Init();
8005af6: f7fa fe4f bl 8000798 <MX_GPIO_Init>
initFlash();
8005afa: f7fa fdb3 bl 8000664 <initFlash>
MX_DMA2D_Init();
8005afe: f7fa fd59 bl 80005b4 <MX_DMA2D_Init>
MX_TIM7_Init();
8005b02: f009 ff0d bl 800f920 <MX_TIM7_Init>
MX_LTDC_Init();
8005b06: f7fe fe6f bl 80047e8 <MX_LTDC_Init>
initKeys();
8005b0a: f7fa ff39 bl 8000980 <initKeys>
/////////////////////////////// todo
CNT_CHANNELS = 4;
8005b0e: 4b5e ldr r3, [pc, #376] ; (8005c88 <main+0x1a8>)
8005b10: 2204 movs r2, #4
8005b12: 601a str r2, [r3, #0]
ACTIVE_CHANNEL = Ch1;
8005b14: 4b5d ldr r3, [pc, #372] ; (8005c8c <main+0x1ac>)
8005b16: 2200 movs r2, #0
8005b18: 601a str r2, [r3, #0]
menupos = Hp;
8005b1a: 4b5d ldr r3, [pc, #372] ; (8005c90 <main+0x1b0>)
8005b1c: 2200 movs r2, #0
8005b1e: 701a strb r2, [r3, #0]
for(i = 0; i < 16; i++)
8005b20: 2300 movs r3, #0
8005b22: 647b str r3, [r7, #68] ; 0x44
8005b24: e05d b.n 8005be2 <main+0x102>
{
pardata.amplif[i].IIN = CHARGE;
8005b26: 4a5b ldr r2, [pc, #364] ; (8005c94 <main+0x1b4>)
8005b28: 6c7b ldr r3, [r7, #68] ; 0x44
8005b2a: 015b lsls r3, r3, #5
8005b2c: 4413 add r3, r2
8005b2e: 2200 movs r2, #0
8005b30: 801a strh r2, [r3, #0]
pardata.amplif[i].IFV = Hp0_2;
8005b32: 4a58 ldr r2, [pc, #352] ; (8005c94 <main+0x1b4>)
8005b34: 6c7b ldr r3, [r7, #68] ; 0x44
8005b36: 015b lsls r3, r3, #5
8005b38: 4413 add r3, r2
8005b3a: 3302 adds r3, #2
8005b3c: 2200 movs r2, #0
8005b3e: 801a strh r2, [r3, #0]
pardata.amplif[i].IFN = Lp100000;
8005b40: 4a54 ldr r2, [pc, #336] ; (8005c94 <main+0x1b4>)
8005b42: 6c7b ldr r3, [r7, #68] ; 0x44
8005b44: 015b lsls r3, r3, #5
8005b46: 4413 add r3, r2
8005b48: 3304 adds r3, #4
8005b4a: 2207 movs r2, #7
8005b4c: 801a strh r2, [r3, #0]
pardata.amplif[i].IKU = Ku1000;
8005b4e: 4a51 ldr r2, [pc, #324] ; (8005c94 <main+0x1b4>)
8005b50: 6c7b ldr r3, [r7, #68] ; 0x44
8005b52: 015b lsls r3, r3, #5
8005b54: 4413 add r3, r2
8005b56: 3306 adds r3, #6
8005b58: 220c movs r2, #12
8005b5a: 801a strh r2, [r3, #0]
pardata.amplif[i].IKS = 0;
8005b5c: 4a4d ldr r2, [pc, #308] ; (8005c94 <main+0x1b4>)
8005b5e: 6c7b ldr r3, [r7, #68] ; 0x44
8005b60: 015b lsls r3, r3, #5
8005b62: 4413 add r3, r2
8005b64: 330c adds r3, #12
8005b66: 2200 movs r2, #0
8005b68: 801a strh r2, [r3, #0]
pardata.amplif[i].IKD = 0;
8005b6a: 4a4a ldr r2, [pc, #296] ; (8005c94 <main+0x1b4>)
8005b6c: 6c7b ldr r3, [r7, #68] ; 0x44
8005b6e: 015b lsls r3, r3, #5
8005b70: 4413 add r3, r2
8005b72: 330a adds r3, #10
8005b74: 2200 movs r2, #0
8005b76: 801a strh r2, [r3, #0]
pardata.amplif[i].IKE = 1;
8005b78: 4a46 ldr r2, [pc, #280] ; (8005c94 <main+0x1b4>)
8005b7a: 6c7b ldr r3, [r7, #68] ; 0x44
8005b7c: 015b lsls r3, r3, #5
8005b7e: 4413 add r3, r2
8005b80: 3308 adds r3, #8
8005b82: 2201 movs r2, #1
8005b84: 801a strh r2, [r3, #0]
pardata.amplif[i].IPZ = 0;
8005b86: 4a43 ldr r2, [pc, #268] ; (8005c94 <main+0x1b4>)
8005b88: 6c7b ldr r3, [r7, #68] ; 0x44
8005b8a: 015b lsls r3, r3, #5
8005b8c: 4413 add r3, r2
8005b8e: 330e adds r3, #14
8005b90: 2200 movs r2, #0
8005b92: 801a strh r2, [r3, #0]
pardata.amplif[i].OPZ = 0;
8005b94: 4a3f ldr r2, [pc, #252] ; (8005c94 <main+0x1b4>)
8005b96: 6c7b ldr r3, [r7, #68] ; 0x44
8005b98: 015b lsls r3, r3, #5
8005b9a: 4413 add r3, r2
8005b9c: 3310 adds r3, #16
8005b9e: 2200 movs r2, #0
8005ba0: 801a strh r2, [r3, #0]
pardata.amplif[i].VAL = Accel;
8005ba2: 4a3c ldr r2, [pc, #240] ; (8005c94 <main+0x1b4>)
8005ba4: 6c7b ldr r3, [r7, #68] ; 0x44
8005ba6: 015b lsls r3, r3, #5
8005ba8: 4413 add r3, r2
8005baa: 3312 adds r3, #18
8005bac: 2200 movs r2, #0
8005bae: 801a strh r2, [r3, #0]
pardata.amplif[i].KCOND = 1.00f;
8005bb0: 4a38 ldr r2, [pc, #224] ; (8005c94 <main+0x1b4>)
8005bb2: 6c7b ldr r3, [r7, #68] ; 0x44
8005bb4: 015b lsls r3, r3, #5
8005bb6: 4413 add r3, r2
8005bb8: 3314 adds r3, #20
8005bba: f04f 527e mov.w r2, #1065353216 ; 0x3f800000
8005bbe: 601a str r2, [r3, #0]
pardata.amplif[i].SENS = 10.00f;
8005bc0: 4a34 ldr r2, [pc, #208] ; (8005c94 <main+0x1b4>)
8005bc2: 6c7b ldr r3, [r7, #68] ; 0x44
8005bc4: 015b lsls r3, r3, #5
8005bc6: 4413 add r3, r2
8005bc8: 3318 adds r3, #24
8005bca: 4a33 ldr r2, [pc, #204] ; (8005c98 <main+0x1b8>)
8005bcc: 601a str r2, [r3, #0]
pardata.amplif[i].ACCEL = 100.00f;
8005bce: 4a31 ldr r2, [pc, #196] ; (8005c94 <main+0x1b4>)
8005bd0: 6c7b ldr r3, [r7, #68] ; 0x44
8005bd2: 015b lsls r3, r3, #5
8005bd4: 4413 add r3, r2
8005bd6: 331c adds r3, #28
8005bd8: 4a30 ldr r2, [pc, #192] ; (8005c9c <main+0x1bc>)
8005bda: 601a str r2, [r3, #0]
for(i = 0; i < 16; i++)
8005bdc: 6c7b ldr r3, [r7, #68] ; 0x44
8005bde: 3301 adds r3, #1
8005be0: 647b str r3, [r7, #68] ; 0x44
8005be2: 6c7b ldr r3, [r7, #68] ; 0x44
8005be4: 2b0f cmp r3, #15
8005be6: d99e bls.n 8005b26 <main+0x46>
}
pardata.OWN = 18;
8005be8: 4b2a ldr r3, [pc, #168] ; (8005c94 <main+0x1b4>)
8005bea: 2212 movs r2, #18
8005bec: f8a3 2200 strh.w r2, [r3, #512] ; 0x200
pardata.BAUD = 7;
8005bf0: 4b28 ldr r3, [pc, #160] ; (8005c94 <main+0x1b4>)
8005bf2: 2207 movs r2, #7
8005bf4: f8a3 2202 strh.w r2, [r3, #514] ; 0x202
pardata.INFB = 0;
8005bf8: 4b26 ldr r3, [pc, #152] ; (8005c94 <main+0x1b4>)
8005bfa: 2200 movs r2, #0
8005bfc: f8a3 2204 strh.w r2, [r3, #516] ; 0x204
//pardata.LANG = RUS;
/////////////////////////////
MX_UART7_Init();
8005c00: f009 ffa8 bl 800fb54 <MX_UART7_Init>
EXTI_Config();
8005c04: f000 f8f6 bl 8005df4 <EXTI_Config>
Logo();
8005c08: f000 f958 bl 8005ebc <Logo>
while(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET) {
8005c0c: e001 b.n 8005c12 <main+0x132>
RedrawScreen();
8005c0e: f000 f945 bl 8005e9c <RedrawScreen>
while(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET) {
8005c12: 2101 movs r1, #1
8005c14: 4822 ldr r0, [pc, #136] ; (8005ca0 <main+0x1c0>)
8005c16: f00c ffc5 bl 8012ba4 <HAL_GPIO_ReadPin>
8005c1a: 4603 mov r3, r0
8005c1c: 2b01 cmp r3, #1
8005c1e: d0f6 beq.n 8005c0e <main+0x12e>
}
KeysIsReady = true;
8005c20: 4b20 ldr r3, [pc, #128] ; (8005ca4 <main+0x1c4>)
8005c22: 2201 movs r2, #1
8005c24: 701a strb r2, [r3, #0]
for(k = 0; k < 30; k++)
8005c26: 2300 movs r3, #0
8005c28: 643b str r3, [r7, #64] ; 0x40
8005c2a: e00f b.n 8005c4c <main+0x16c>
{
keys = kbhit();
8005c2c: f7fa ff36 bl 8000a9c <kbhit>
8005c30: 63b8 str r0, [r7, #56] ; 0x38
if((keys == KEY_UP) || (keys == (KEY_UP + KEY_OK)))
8005c32: 6bbb ldr r3, [r7, #56] ; 0x38
8005c34: 2b02 cmp r3, #2
8005c36: d002 beq.n 8005c3e <main+0x15e>
8005c38: 6bbb ldr r3, [r7, #56] ; 0x38
8005c3a: 2b22 cmp r3, #34 ; 0x22
8005c3c: d103 bne.n 8005c46 <main+0x166>
{
clbr = true;
8005c3e: 4b1a ldr r3, [pc, #104] ; (8005ca8 <main+0x1c8>)
8005c40: 2201 movs r2, #1
8005c42: 701a strb r2, [r3, #0]
break;
8005c44: e005 b.n 8005c52 <main+0x172>
for(k = 0; k < 30; k++)
8005c46: 6c3b ldr r3, [r7, #64] ; 0x40
8005c48: 3301 adds r3, #1
8005c4a: 643b str r3, [r7, #64] ; 0x40
8005c4c: 6c3b ldr r3, [r7, #64] ; 0x40
8005c4e: 2b1d cmp r3, #29
8005c50: d9ec bls.n 8005c2c <main+0x14c>
}
}
HAL_Delay(1000);
8005c52: f44f 707a mov.w r0, #1000 ; 0x3e8
8005c56: f00b fc91 bl 801157c <HAL_Delay>
AskChannels();
8005c5a: f00b fb59 bl 8011310 <AskChannels>
//menu = MAIN; //todo
timerAsk = msec1900;
8005c5e: 4b13 ldr r3, [pc, #76] ; (8005cac <main+0x1cc>)
8005c60: 22be movs r2, #190 ; 0xbe
8005c62: 801a strh r2, [r3, #0]
FlagAsk = 0;
8005c64: 4b12 ldr r3, [pc, #72] ; (8005cb0 <main+0x1d0>)
8005c66: 2200 movs r2, #0
8005c68: 701a strb r2, [r3, #0]
while(1)
{
RedrawScreen();
8005c6a: f000 f917 bl 8005e9c <RedrawScreen>
keyIns();
8005c6e: f7fa ff85 bl 8000b7c <keyIns>
if(FlagAsk)
8005c72: 4b0f ldr r3, [pc, #60] ; (8005cb0 <main+0x1d0>)
8005c74: 781b ldrb r3, [r3, #0]
8005c76: b2db uxtb r3, r3
8005c78: 2b00 cmp r3, #0
8005c7a: d0f6 beq.n 8005c6a <main+0x18a>
{
FlagAsk = 0;
8005c7c: 4b0c ldr r3, [pc, #48] ; (8005cb0 <main+0x1d0>)
8005c7e: 2200 movs r2, #0
8005c80: 701a strb r2, [r3, #0]
AskPeriodic();
8005c82: f00b fbe1 bl 8011448 <AskPeriodic>
RedrawScreen();
8005c86: e7f0 b.n 8005c6a <main+0x18a>
8005c88: 2006ba6c .word 0x2006ba6c
8005c8c: 2006ba68 .word 0x2006ba68
8005c90: 20020010 .word 0x20020010
8005c94: 2006bca8 .word 0x2006bca8
8005c98: 41200000 .word 0x41200000
8005c9c: 42c80000 .word 0x42c80000
8005ca0: 40020000 .word 0x40020000
8005ca4: 200209dc .word 0x200209dc
8005ca8: 2006c21c .word 0x2006c21c
8005cac: 2002099e .word 0x2002099e
8005cb0: 2006ba87 .word 0x2006ba87
08005cb4 <SystemClock_Config>:
/**
* @brief System Clock Configuration
* @retval None
*/
void SystemClock_Config(void)
{
8005cb4: b580 push {r7, lr}
8005cb6: b0b8 sub sp, #224 ; 0xe0
8005cb8: af00 add r7, sp, #0
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
8005cba: f107 03ac add.w r3, r7, #172 ; 0xac
8005cbe: 2234 movs r2, #52 ; 0x34
8005cc0: 2100 movs r1, #0
8005cc2: 4618 mov r0, r3
8005cc4: f010 fbcd bl 8016462 <memset>
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
8005cc8: f107 0398 add.w r3, r7, #152 ; 0x98
8005ccc: 2200 movs r2, #0
8005cce: 601a str r2, [r3, #0]
8005cd0: 605a str r2, [r3, #4]
8005cd2: 609a str r2, [r3, #8]
8005cd4: 60da str r2, [r3, #12]
8005cd6: 611a str r2, [r3, #16]
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
8005cd8: f107 0308 add.w r3, r7, #8
8005cdc: 2290 movs r2, #144 ; 0x90
8005cde: 2100 movs r1, #0
8005ce0: 4618 mov r0, r3
8005ce2: f010 fbbe bl 8016462 <memset>
__HAL_RCC_PWR_CLK_ENABLE();
8005ce6: 4a3f ldr r2, [pc, #252] ; (8005de4 <SystemClock_Config+0x130>)
8005ce8: 4b3e ldr r3, [pc, #248] ; (8005de4 <SystemClock_Config+0x130>)
8005cea: 6c1b ldr r3, [r3, #64] ; 0x40
8005cec: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
8005cf0: 6413 str r3, [r2, #64] ; 0x40
8005cf2: 4b3c ldr r3, [pc, #240] ; (8005de4 <SystemClock_Config+0x130>)
8005cf4: 6c1b ldr r3, [r3, #64] ; 0x40
8005cf6: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
8005cfa: 607b str r3, [r7, #4]
8005cfc: 687b ldr r3, [r7, #4]
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);
8005cfe: 4a3a ldr r2, [pc, #232] ; (8005de8 <SystemClock_Config+0x134>)
8005d00: 4b39 ldr r3, [pc, #228] ; (8005de8 <SystemClock_Config+0x134>)
8005d02: 681b ldr r3, [r3, #0]
8005d04: f423 4340 bic.w r3, r3, #49152 ; 0xc000
8005d08: f443 4380 orr.w r3, r3, #16384 ; 0x4000
8005d0c: 6013 str r3, [r2, #0]
8005d0e: 4b36 ldr r3, [pc, #216] ; (8005de8 <SystemClock_Config+0x134>)
8005d10: 681b ldr r3, [r3, #0]
8005d12: f403 4340 and.w r3, r3, #49152 ; 0xc000
8005d16: 603b str r3, [r7, #0]
8005d18: 683b ldr r3, [r7, #0]
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
8005d1a: 2302 movs r3, #2
8005d1c: f8c7 30ac str.w r3, [r7, #172] ; 0xac
RCC_OscInitStruct.LSEState = RCC_LSE_BYPASS;
8005d20: 2305 movs r3, #5
8005d22: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
8005d26: 2301 movs r3, #1
8005d28: f8c7 30b8 str.w r3, [r7, #184] ; 0xb8
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
8005d2c: 2310 movs r3, #16
8005d2e: f8c7 30bc str.w r3, [r7, #188] ; 0xbc
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
8005d32: 2302 movs r3, #2
8005d34: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
8005d38: 2300 movs r3, #0
8005d3a: f8c7 30c8 str.w r3, [r7, #200] ; 0xc8
RCC_OscInitStruct.PLL.PLLM = 16;
8005d3e: 2310 movs r3, #16
8005d40: f8c7 30cc str.w r3, [r7, #204] ; 0xcc
RCC_OscInitStruct.PLL.PLLN = 432;
8005d44: f44f 73d8 mov.w r3, #432 ; 0x1b0
8005d48: f8c7 30d0 str.w r3, [r7, #208] ; 0xd0
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV8;
8005d4c: 2308 movs r3, #8
8005d4e: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4
RCC_OscInitStruct.PLL.PLLQ = 9;
8005d52: 2309 movs r3, #9
8005d54: f8c7 30d8 str.w r3, [r7, #216] ; 0xd8
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
8005d58: f107 03ac add.w r3, r7, #172 ; 0xac
8005d5c: 4618 mov r0, r3
8005d5e: f00d fb3b bl 80133d8 <HAL_RCC_OscConfig>
8005d62: 4603 mov r3, r0
8005d64: 2b00 cmp r3, #0
8005d66: d001 beq.n 8005d6c <SystemClock_Config+0xb8>
{
Error_Handler();
8005d68: f000 f840 bl 8005dec <Error_Handler>
}
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
8005d6c: 230f movs r3, #15
8005d6e: f8c7 3098 str.w r3, [r7, #152] ; 0x98
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
8005d72: 2302 movs r3, #2
8005d74: f8c7 309c str.w r3, [r7, #156] ; 0x9c
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
8005d78: 2300 movs r3, #0
8005d7a: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
8005d7e: 2300 movs r3, #0
8005d80: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
8005d84: 2300 movs r3, #0
8005d86: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8
if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
8005d8a: f107 0398 add.w r3, r7, #152 ; 0x98
8005d8e: 2101 movs r1, #1
8005d90: 4618 mov r0, r3
8005d92: f00d fdcf bl 8013934 <HAL_RCC_ClockConfig>
8005d96: 4603 mov r3, r0
8005d98: 2b00 cmp r3, #0
8005d9a: d001 beq.n 8005da0 <SystemClock_Config+0xec>
{
Error_Handler();
8005d9c: f000 f826 bl 8005dec <Error_Handler>
}
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC |RCC_PERIPHCLK_UART7;
8005da0: f241 0308 movw r3, #4104 ; 0x1008
8005da4: 60bb str r3, [r7, #8]
PeriphClkInitStruct.PLLSAI.PLLSAIN = 192;
8005da6: 23c0 movs r3, #192 ; 0xc0
8005da8: 61fb str r3, [r7, #28]
PeriphClkInitStruct.PLLSAI.PLLSAIR = 4;
8005daa: 2304 movs r3, #4
8005dac: 627b str r3, [r7, #36] ; 0x24
PeriphClkInitStruct.PLLSAI.PLLSAIQ = 2;
8005dae: 2302 movs r3, #2
8005db0: 623b str r3, [r7, #32]
PeriphClkInitStruct.PLLSAI.PLLSAIP = RCC_PLLSAIP_DIV4;
8005db2: 2301 movs r3, #1
8005db4: 62bb str r3, [r7, #40] ; 0x28
PeriphClkInitStruct.PLLSAIDivQ = 1;
8005db6: 2301 movs r3, #1
8005db8: 633b str r3, [r7, #48] ; 0x30
PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_2;
8005dba: 2300 movs r3, #0
8005dbc: 637b str r3, [r7, #52] ; 0x34
PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
8005dbe: f44f 7380 mov.w r3, #256 ; 0x100
8005dc2: 63bb str r3, [r7, #56] ; 0x38
PeriphClkInitStruct.Uart7ClockSelection = RCC_UART7CLKSOURCE_PCLK1;
8005dc4: 2300 movs r3, #0
8005dc6: 667b str r3, [r7, #100] ; 0x64
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
8005dc8: f107 0308 add.w r3, r7, #8
8005dcc: 4618 mov r0, r3
8005dce: f00d ff87 bl 8013ce0 <HAL_RCCEx_PeriphCLKConfig>
8005dd2: 4603 mov r3, r0
8005dd4: 2b00 cmp r3, #0
8005dd6: d001 beq.n 8005ddc <SystemClock_Config+0x128>
{
Error_Handler();
8005dd8: f000 f808 bl 8005dec <Error_Handler>
PeriphClkInitStruct.Sdmmc1ClockSelection = RCC_SDMMC1CLKSOURCE_CLK48;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
Error_Handler();
}*/
}
8005ddc: bf00 nop
8005dde: 37e0 adds r7, #224 ; 0xe0
8005de0: 46bd mov sp, r7
8005de2: bd80 pop {r7, pc}
8005de4: 40023800 .word 0x40023800
8005de8: 40007000 .word 0x40007000
08005dec <Error_Handler>:
/**
* @brief This function is executed in case of error occurrence.
* @retval None
*/
void Error_Handler(void)
{
8005dec: b480 push {r7}
8005dee: af00 add r7, sp, #0
__ASM volatile ("cpsid i" : : : "memory");
8005df0: b672 cpsid i
/* USER CODE BEGIN Error_Handler_Debug */
/* User can add his own implementation to report the HAL error return state */
__disable_irq();
while (1)
8005df2: e7fe b.n 8005df2 <Error_Handler+0x6>
08005df4 <EXTI_Config>:
void EXTI_Config(void)
{
8005df4: b580 push {r7, lr}
8005df6: b086 sub sp, #24
8005df8: af00 add r7, sp, #0
GPIO_InitTypeDef EXTILineStruct;
__HAL_RCC_SYSCFG_CLK_ENABLE();
8005dfa: 4a12 ldr r2, [pc, #72] ; (8005e44 <EXTI_Config+0x50>)
8005dfc: 4b11 ldr r3, [pc, #68] ; (8005e44 <EXTI_Config+0x50>)
8005dfe: 6c5b ldr r3, [r3, #68] ; 0x44
8005e00: f443 4380 orr.w r3, r3, #16384 ; 0x4000
8005e04: 6453 str r3, [r2, #68] ; 0x44
8005e06: 4b0f ldr r3, [pc, #60] ; (8005e44 <EXTI_Config+0x50>)
8005e08: 6c5b ldr r3, [r3, #68] ; 0x44
8005e0a: f403 4380 and.w r3, r3, #16384 ; 0x4000
8005e0e: 603b str r3, [r7, #0]
8005e10: 683b ldr r3, [r7, #0]
EXTILineStruct.Pin = GPIO_PIN_2;
8005e12: 2304 movs r3, #4
8005e14: 607b str r3, [r7, #4]
EXTILineStruct.Mode = GPIO_MODE_IT_RISING;
8005e16: f44f 1388 mov.w r3, #1114112 ; 0x110000
8005e1a: 60bb str r3, [r7, #8]
EXTILineStruct.Pull = GPIO_NOPULL;
8005e1c: 2300 movs r3, #0
8005e1e: 60fb str r3, [r7, #12]
HAL_GPIO_Init(GPIOC, &EXTILineStruct);
8005e20: 1d3b adds r3, r7, #4
8005e22: 4619 mov r1, r3
8005e24: 4808 ldr r0, [pc, #32] ; (8005e48 <EXTI_Config+0x54>)
8005e26: f00c fd13 bl 8012850 <HAL_GPIO_Init>
HAL_NVIC_SetPriority(EXTI2_IRQn, 12, 0);
8005e2a: 2200 movs r2, #0
8005e2c: 210c movs r1, #12
8005e2e: 2008 movs r0, #8
8005e30: f00b fcc1 bl 80117b6 <HAL_NVIC_SetPriority>
HAL_NVIC_EnableIRQ(EXTI2_IRQn);
8005e34: 2008 movs r0, #8
8005e36: f00b fcda bl 80117ee <HAL_NVIC_EnableIRQ>
}
8005e3a: bf00 nop
8005e3c: 3718 adds r7, #24
8005e3e: 46bd mov sp, r7
8005e40: bd80 pop {r7, pc}
8005e42: bf00 nop
8005e44: 40023800 .word 0x40023800
8005e48: 40020800 .word 0x40020800
08005e4c <HAL_GPIO_EXTI_Callback>:
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
8005e4c: b580 push {r7, lr}
8005e4e: b082 sub sp, #8
8005e50: af00 add r7, sp, #0
8005e52: 4603 mov r3, r0
8005e54: 80fb strh r3, [r7, #6]
if(GPIO_Pin == GPIO_PIN_2)
8005e56: 88fb ldrh r3, [r7, #6]
8005e58: 2b04 cmp r3, #4
8005e5a: d114 bne.n 8005e86 <HAL_GPIO_EXTI_Callback+0x3a>
{
__HAL_GPIO_EXTI_CLEAR_FLAG(GPIO_PIN_2);
8005e5c: 4b0c ldr r3, [pc, #48] ; (8005e90 <HAL_GPIO_EXTI_Callback+0x44>)
8005e5e: 2204 movs r2, #4
8005e60: 615a str r2, [r3, #20]
if((RefreshScreen == false) && (screen == true))
8005e62: 4b0c ldr r3, [pc, #48] ; (8005e94 <HAL_GPIO_EXTI_Callback+0x48>)
8005e64: 781b ldrb r3, [r3, #0]
8005e66: b2db uxtb r3, r3
8005e68: f083 0301 eor.w r3, r3, #1
8005e6c: b2db uxtb r3, r3
8005e6e: 2b00 cmp r3, #0
8005e70: d009 beq.n 8005e86 <HAL_GPIO_EXTI_Callback+0x3a>
8005e72: 4b09 ldr r3, [pc, #36] ; (8005e98 <HAL_GPIO_EXTI_Callback+0x4c>)
8005e74: 781b ldrb r3, [r3, #0]
8005e76: b2db uxtb r3, r3
8005e78: 2b00 cmp r3, #0
8005e7a: d004 beq.n 8005e86 <HAL_GPIO_EXTI_Callback+0x3a>
{
screen = false;
8005e7c: 4b06 ldr r3, [pc, #24] ; (8005e98 <HAL_GPIO_EXTI_Callback+0x4c>)
8005e7e: 2200 movs r2, #0
8005e80: 701a strb r2, [r3, #0]
Display();
8005e82: f000 f8b9 bl 8005ff8 <Display>
}
//ReadChannel(Ch1);
}
}
8005e86: bf00 nop
8005e88: 3708 adds r7, #8
8005e8a: 46bd mov sp, r7
8005e8c: bd80 pop {r7, pc}
8005e8e: bf00 nop
8005e90: 40013c00 .word 0x40013c00
8005e94: 2006ba60 .word 0x2006ba60
8005e98: 20020030 .word 0x20020030
08005e9c <RedrawScreen>:
void RedrawScreen(void)
{
8005e9c: b480 push {r7}
8005e9e: af00 add r7, sp, #0
__HAL_GPIO_EXTI_GENERATE_SWIT(GPIO_PIN_2);
8005ea0: 4a05 ldr r2, [pc, #20] ; (8005eb8 <RedrawScreen+0x1c>)
8005ea2: 4b05 ldr r3, [pc, #20] ; (8005eb8 <RedrawScreen+0x1c>)
8005ea4: 691b ldr r3, [r3, #16]
8005ea6: f043 0304 orr.w r3, r3, #4
8005eaa: 6113 str r3, [r2, #16]
{
screen = false;
Display();
}*/
}
8005eac: bf00 nop
8005eae: 46bd mov sp, r7
8005eb0: f85d 7b04 ldr.w r7, [sp], #4
8005eb4: 4770 bx lr
8005eb6: bf00 nop
8005eb8: 40013c00 .word 0x40013c00
08005ebc <Logo>:
void Logo(void)
{
8005ebc: b580 push {r7, lr}
8005ebe: b082 sub sp, #8
8005ec0: af00 add r7, sp, #0
uint32_t i;
uint32_t color = LCD_COLOR_BLACK; //0xFF212829;
8005ec2: f04f 437f mov.w r3, #4278190080 ; 0xff000000
8005ec6: 603b str r3, [r7, #0]
#ifdef DRAW_LOGO
BSP_LCD_DisplayOn();
8005ec8: f7fe fdc4 bl 8004a54 <BSP_LCD_DisplayOn>
HAL_NVIC_DisableIRQ(EXTI2_IRQn);
8005ecc: 2008 movs r0, #8
8005ece: f00b fc9c bl 801180a <HAL_NVIC_DisableIRQ>
//*********************************************************
BSP_LCD_SetFont(&Font12);
8005ed2: 4843 ldr r0, [pc, #268] ; (8005fe0 <Logo+0x124>)
8005ed4: f7fe ff78 bl 8004dc8 <BSP_LCD_SetFont>
for(i = 0; i < 3; i++)
8005ed8: 2300 movs r3, #0
8005eda: 607b str r3, [r7, #4]
8005edc: e032 b.n 8005f44 <Logo+0x88>
{
BSP_LCD_Clear(color);
8005ede: 6838 ldr r0, [r7, #0]
8005ee0: f7fe ff90 bl 8004e04 <BSP_LCD_Clear>
DrawImage(&bmLOGO_NEW, 0, 54);
8005ee4: 2236 movs r2, #54 ; 0x36
8005ee6: 2100 movs r1, #0
8005ee8: 483e ldr r0, [pc, #248] ; (8005fe4 <Logo+0x128>)
8005eea: f7ff fd11 bl 8005910 <DrawImage>
RefreshScreen = true;
8005eee: 4b3e ldr r3, [pc, #248] ; (8005fe8 <Logo+0x12c>)
8005ef0: 2201 movs r2, #1
8005ef2: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0);
8005ef4: 2100 movs r1, #0
8005ef6: 483d ldr r0, [pc, #244] ; (8005fec <Logo+0x130>)
8005ef8: f00d f864 bl 8012fc4 <HAL_LTDC_ProgramLineEvent>
while(RefreshScreen);
8005efc: bf00 nop
8005efe: 4b3a ldr r3, [pc, #232] ; (8005fe8 <Logo+0x12c>)
8005f00: 781b ldrb r3, [r3, #0]
8005f02: b2db uxtb r3, r3
8005f04: 2b00 cmp r3, #0
8005f06: d1fa bne.n 8005efe <Logo+0x42>
HAL_Delay(50);
8005f08: 2032 movs r0, #50 ; 0x32
8005f0a: f00b fb37 bl 801157c <HAL_Delay>
BSP_LCD_Clear(color);
8005f0e: 6838 ldr r0, [r7, #0]
8005f10: f7fe ff78 bl 8004e04 <BSP_LCD_Clear>
DrawImage(&bmLOGO_NEW, 0, 54);
8005f14: 2236 movs r2, #54 ; 0x36
8005f16: 2100 movs r1, #0
8005f18: 4832 ldr r0, [pc, #200] ; (8005fe4 <Logo+0x128>)
8005f1a: f7ff fcf9 bl 8005910 <DrawImage>
RefreshScreen = true;
8005f1e: 4b32 ldr r3, [pc, #200] ; (8005fe8 <Logo+0x12c>)
8005f20: 2201 movs r2, #1
8005f22: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0);
8005f24: 2100 movs r1, #0
8005f26: 4831 ldr r0, [pc, #196] ; (8005fec <Logo+0x130>)
8005f28: f00d f84c bl 8012fc4 <HAL_LTDC_ProgramLineEvent>
while(RefreshScreen);
8005f2c: bf00 nop
8005f2e: 4b2e ldr r3, [pc, #184] ; (8005fe8 <Logo+0x12c>)
8005f30: 781b ldrb r3, [r3, #0]
8005f32: b2db uxtb r3, r3
8005f34: 2b00 cmp r3, #0
8005f36: d1fa bne.n 8005f2e <Logo+0x72>
HAL_Delay(50);
8005f38: 2032 movs r0, #50 ; 0x32
8005f3a: f00b fb1f bl 801157c <HAL_Delay>
for(i = 0; i < 3; i++)
8005f3e: 687b ldr r3, [r7, #4]
8005f40: 3301 adds r3, #1
8005f42: 607b str r3, [r7, #4]
8005f44: 687b ldr r3, [r7, #4]
8005f46: 2b02 cmp r3, #2
8005f48: d9c9 bls.n 8005ede <Logo+0x22>
}
HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_RESET); // BACKLIGHT_ON
8005f4a: 2200 movs r2, #0
8005f4c: f44f 7180 mov.w r1, #256 ; 0x100
8005f50: 4827 ldr r0, [pc, #156] ; (8005ff0 <Logo+0x134>)
8005f52: f00c fe3f bl 8012bd4 <HAL_GPIO_WritePin>
//*********************************************************
BSP_LCD_Clear(color);
8005f56: 6838 ldr r0, [r7, #0]
8005f58: f7fe ff54 bl 8004e04 <BSP_LCD_Clear>
DrawImage(&bmLOGO_NEW, 0, 54);
8005f5c: 2236 movs r2, #54 ; 0x36
8005f5e: 2100 movs r1, #0
8005f60: 4820 ldr r0, [pc, #128] ; (8005fe4 <Logo+0x128>)
8005f62: f7ff fcd5 bl 8005910 <DrawImage>
RefreshScreen = true;
8005f66: 4b20 ldr r3, [pc, #128] ; (8005fe8 <Logo+0x12c>)
8005f68: 2201 movs r2, #1
8005f6a: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0);
8005f6c: 2100 movs r1, #0
8005f6e: 481f ldr r0, [pc, #124] ; (8005fec <Logo+0x130>)
8005f70: f00d f828 bl 8012fc4 <HAL_LTDC_ProgramLineEvent>
while(RefreshScreen);
8005f74: bf00 nop
8005f76: 4b1c ldr r3, [pc, #112] ; (8005fe8 <Logo+0x12c>)
8005f78: 781b ldrb r3, [r3, #0]
8005f7a: b2db uxtb r3, r3
8005f7c: 2b00 cmp r3, #0
8005f7e: d1fa bne.n 8005f76 <Logo+0xba>
HAL_Delay(50);
8005f80: 2032 movs r0, #50 ; 0x32
8005f82: f00b fafb bl 801157c <HAL_Delay>
BSP_LCD_Clear(color);
8005f86: 6838 ldr r0, [r7, #0]
8005f88: f7fe ff3c bl 8004e04 <BSP_LCD_Clear>
DrawImage(&bmLOGO_NEW, 0, 54);
8005f8c: 2236 movs r2, #54 ; 0x36
8005f8e: 2100 movs r1, #0
8005f90: 4814 ldr r0, [pc, #80] ; (8005fe4 <Logo+0x128>)
8005f92: f7ff fcbd bl 8005910 <DrawImage>
RefreshScreen = true;
8005f96: 4b14 ldr r3, [pc, #80] ; (8005fe8 <Logo+0x12c>)
8005f98: 2201 movs r2, #1
8005f9a: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0);
8005f9c: 2100 movs r1, #0
8005f9e: 4813 ldr r0, [pc, #76] ; (8005fec <Logo+0x130>)
8005fa0: f00d f810 bl 8012fc4 <HAL_LTDC_ProgramLineEvent>
while(RefreshScreen);
8005fa4: bf00 nop
8005fa6: 4b10 ldr r3, [pc, #64] ; (8005fe8 <Logo+0x12c>)
8005fa8: 781b ldrb r3, [r3, #0]
8005faa: b2db uxtb r3, r3
8005fac: 2b00 cmp r3, #0
8005fae: d1fa bne.n 8005fa6 <Logo+0xea>
HAL_Delay(50);
8005fb0: 2032 movs r0, #50 ; 0x32
8005fb2: f00b fae3 bl 801157c <HAL_Delay>
HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_RESET); // BACKLIGHT_ON
8005fb6: 2200 movs r2, #0
8005fb8: f44f 7180 mov.w r1, #256 ; 0x100
8005fbc: 480c ldr r0, [pc, #48] ; (8005ff0 <Logo+0x134>)
8005fbe: f00c fe09 bl 8012bd4 <HAL_GPIO_WritePin>
HAL_Delay(500);
8005fc2: f44f 70fa mov.w r0, #500 ; 0x1f4
8005fc6: f00b fad9 bl 801157c <HAL_Delay>
menu = LOGO;
8005fca: 4b0a ldr r3, [pc, #40] ; (8005ff4 <Logo+0x138>)
8005fcc: 221e movs r2, #30
8005fce: 701a strb r2, [r3, #0]
HAL_NVIC_EnableIRQ(EXTI2_IRQn);
8005fd0: 2008 movs r0, #8
8005fd2: f00b fc0c bl 80117ee <HAL_NVIC_EnableIRQ>
#endif
}
8005fd6: bf00 nop
8005fd8: 3708 adds r7, #8
8005fda: 46bd mov sp, r7
8005fdc: bd80 pop {r7, pc}
8005fde: bf00 nop
8005fe0: 20020000 .word 0x20020000
8005fe4: 0802fc98 .word 0x0802fc98
8005fe8: 2006ba60 .word 0x2006ba60
8005fec: 2006c174 .word 0x2006c174
8005ff0: 40020000 .word 0x40020000
8005ff4: 200209d9 .word 0x200209d9
08005ff8 <Display>:
void Display(void)
{
8005ff8: b580 push {r7, lr}
8005ffa: f5ad 7d52 sub.w sp, sp, #840 ; 0x348
8005ffe: af00 add r7, sp, #0
char *p8;
TimeDate_TypeDef FatTime;
float32_t f, fs;
uint32_t cl1, cl2;
static uint32_t blink = 0;
bool bl = false;
8006000: 2300 movs r3, #0
8006002: f887 333f strb.w r3, [r7, #831] ; 0x33f
static uint32_t blk = 0;
static uint8_t tt = 0;
static uint32_t tme = 0;
bool bll = false;
8006006: 2300 movs r3, #0
8006008: f887 333e strb.w r3, [r7, #830] ; 0x33e
uint32_t old_DateTime;
uint32_t lx, ly;
uint32_t Year, Month, Day, Hour, Min, Sec;
blk++;
800600c: 4bbd ldr r3, [pc, #756] ; (8006304 <Display+0x30c>)
800600e: 681b ldr r3, [r3, #0]
8006010: 3301 adds r3, #1
8006012: 4abc ldr r2, [pc, #752] ; (8006304 <Display+0x30c>)
8006014: 6013 str r3, [r2, #0]
if(blk > 1)
8006016: 4bbb ldr r3, [pc, #748] ; (8006304 <Display+0x30c>)
8006018: 681b ldr r3, [r3, #0]
800601a: 2b01 cmp r3, #1
800601c: d905 bls.n 800602a <Display+0x32>
{
blk = 0;
800601e: 4bb9 ldr r3, [pc, #740] ; (8006304 <Display+0x30c>)
8006020: 2200 movs r2, #0
8006022: 601a str r2, [r3, #0]
bll = true;
8006024: 2301 movs r3, #1
8006026: f887 333e strb.w r3, [r7, #830] ; 0x33e
}
blink++;
800602a: 4bb7 ldr r3, [pc, #732] ; (8006308 <Display+0x310>)
800602c: 681b ldr r3, [r3, #0]
800602e: 3301 adds r3, #1
8006030: 4ab5 ldr r2, [pc, #724] ; (8006308 <Display+0x310>)
8006032: 6013 str r3, [r2, #0]
if(blink > 8)
8006034: 4bb4 ldr r3, [pc, #720] ; (8006308 <Display+0x310>)
8006036: 681b ldr r3, [r3, #0]
8006038: 2b08 cmp r3, #8
800603a: d905 bls.n 8006048 <Display+0x50>
{
blink = 0;
800603c: 4bb2 ldr r3, [pc, #712] ; (8006308 <Display+0x310>)
800603e: 2200 movs r2, #0
8006040: 601a str r2, [r3, #0]
bl = true;
8006042: 2301 movs r3, #1
8006044: f887 333f strb.w r3, [r7, #831] ; 0x33f
}
Redrawing = true;
8006048: 4bb0 ldr r3, [pc, #704] ; (800630c <Display+0x314>)
800604a: 2201 movs r2, #1
800604c: 701a strb r2, [r3, #0]
BSP_LCD_Clear(LCD_COLOR_BLACK);
800604e: f04f 407f mov.w r0, #4278190080 ; 0xff000000
8006052: f7fe fed7 bl 8004e04 <BSP_LCD_Clear>
//*************************************************** <20><><CE><D2><D0><C8><D1><CE><C2> <20><><D1><D2><D0><CE> <20><><D1><D2><C0><D2><D3> (<28><><C2><C5> <20><><C4><C8><D1><CF><CB> <20> <20><><D7><C0><D1><C0> <20> <20><><C1><C0><D2><C0><D0><C5>) **************************************************************//
//==========================================================================================================================//
//--------------------------------------------------------------------------------------------------------------------------//
//==========================================================================================================================//
switch(menu)
8006056: 4bae ldr r3, [pc, #696] ; (8006310 <Display+0x318>)
8006058: 781b ldrb r3, [r3, #0]
800605a: b2db uxtb r3, r3
800605c: 2b4e cmp r3, #78 ; 0x4e
800605e: f207 8480 bhi.w 800d962 <Display+0x796a>
8006062: a201 add r2, pc, #4 ; (adr r2, 8006068 <Display+0x70>)
8006064: f852 f023 ldr.w pc, [r2, r3, lsl #2]
8006068: 0800cf49 .word 0x0800cf49
800606c: 0800d325 .word 0x0800d325
8006070: 0800d435 .word 0x0800d435
8006074: 0800d465 .word 0x0800d465
8006078: 0800d4f1 .word 0x0800d4f1
800607c: 0800d521 .word 0x0800d521
8006080: 0800d551 .word 0x0800d551
8006084: 0800d581 .word 0x0800d581
8006088: 0800d5b1 .word 0x0800d5b1
800608c: 0800d5e1 .word 0x0800d5e1
8006090: 0800d611 .word 0x0800d611
8006094: 0800d641 .word 0x0800d641
8006098: 0800d671 .word 0x0800d671
800609c: 0800d6a1 .word 0x0800d6a1
80060a0: 0800d6d1 .word 0x0800d6d1
80060a4: 0800d701 .word 0x0800d701
80060a8: 0800d731 .word 0x0800d731
80060ac: 0800d761 .word 0x0800d761
80060b0: 0800d791 .word 0x0800d791
80060b4: 0800d7c1 .word 0x0800d7c1
80060b8: 0800d7f1 .word 0x0800d7f1
80060bc: 0800d821 .word 0x0800d821
80060c0: 0800d8c5 .word 0x0800d8c5
80060c4: 0800d8f5 .word 0x0800d8f5
80060c8: 0800d925 .word 0x0800d925
80060cc: 08006491 .word 0x08006491
80060d0: 0800d963 .word 0x0800d963
80060d4: 0800d963 .word 0x0800d963
80060d8: 0800d963 .word 0x0800d963
80060dc: 0800d963 .word 0x0800d963
80060e0: 080061a5 .word 0x080061a5
80060e4: 0800d963 .word 0x0800d963
80060e8: 0800d963 .word 0x0800d963
80060ec: 0800d963 .word 0x0800d963
80060f0: 0800d963 .word 0x0800d963
80060f4: 0800d963 .word 0x0800d963
80060f8: 0800d963 .word 0x0800d963
80060fc: 0800d963 .word 0x0800d963
8006100: 0800d963 .word 0x0800d963
8006104: 0800d963 .word 0x0800d963
8006108: 0800d963 .word 0x0800d963
800610c: 0800d963 .word 0x0800d963
8006110: 0800d963 .word 0x0800d963
8006114: 08006797 .word 0x08006797
8006118: 0800d963 .word 0x0800d963
800611c: 0800d963 .word 0x0800d963
8006120: 0800d963 .word 0x0800d963
8006124: 0800d963 .word 0x0800d963
8006128: 0800d963 .word 0x0800d963
800612c: 0800d963 .word 0x0800d963
8006130: 0800d963 .word 0x0800d963
8006134: 0800d963 .word 0x0800d963
8006138: 0800d963 .word 0x0800d963
800613c: 0800d963 .word 0x0800d963
8006140: 0800d963 .word 0x0800d963
8006144: 0800d963 .word 0x0800d963
8006148: 0800d963 .word 0x0800d963
800614c: 0800d963 .word 0x0800d963
8006150: 0800d963 .word 0x0800d963
8006154: 0800d963 .word 0x0800d963
8006158: 0800d963 .word 0x0800d963
800615c: 0800d963 .word 0x0800d963
8006160: 0800d963 .word 0x0800d963
8006164: 0800d963 .word 0x0800d963
8006168: 0800d963 .word 0x0800d963
800616c: 0800d963 .word 0x0800d963
8006170: 0800d963 .word 0x0800d963
8006174: 0800d963 .word 0x0800d963
8006178: 0800d963 .word 0x0800d963
800617c: 0800d963 .word 0x0800d963
8006180: 0800d963 .word 0x0800d963
8006184: 0800d963 .word 0x0800d963
8006188: 0800d963 .word 0x0800d963
800618c: 0800d963 .word 0x0800d963
8006190: 0800d963 .word 0x0800d963
8006194: 0800d963 .word 0x0800d963
8006198: 0800d963 .word 0x0800d963
800619c: 0800d963 .word 0x0800d963
80061a0: 0800d963 .word 0x0800d963
{
case LOGO:
//*********************************************************
DrawImage(&bmLOGO_NEW, 0, 54);
80061a4: 2236 movs r2, #54 ; 0x36
80061a6: 2100 movs r1, #0
80061a8: 485a ldr r0, [pc, #360] ; (8006314 <Display+0x31c>)
80061aa: f7ff fbb1 bl 8005910 <DrawImage>
timesLOGO++;
80061ae: 4b5a ldr r3, [pc, #360] ; (8006318 <Display+0x320>)
80061b0: 681b ldr r3, [r3, #0]
80061b2: 3301 adds r3, #1
80061b4: 4a58 ldr r2, [pc, #352] ; (8006318 <Display+0x320>)
80061b6: 6013 str r3, [r2, #0]
if(timesLOGO >= 2)
80061b8: 4b57 ldr r3, [pc, #348] ; (8006318 <Display+0x320>)
80061ba: 681b ldr r3, [r3, #0]
80061bc: 2b01 cmp r3, #1
80061be: f247 83c9 bls.w 800d954 <Display+0x795c>
{
LCD_SetColors(0xFFFFFFFF, 0);
80061c2: 2100 movs r1, #0
80061c4: f04f 30ff mov.w r0, #4294967295
80061c8: f7fe fdc2 bl 8004d50 <LCD_SetColors>
BSP_LCD_SetFont(&Font12);
80061cc: 4853 ldr r0, [pc, #332] ; (800631c <Display+0x324>)
80061ce: f7fe fdfb bl 8004dc8 <BSP_LCD_SetFont>
#ifdef A142
if(pardata.LANG == RUS)
80061d2: 4b53 ldr r3, [pc, #332] ; (8006320 <Display+0x328>)
80061d4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80061d8: b29b uxth r3, r3
80061da: 2b00 cmp r3, #0
80061dc: d10c bne.n 80061f8 <Display+0x200>
{
BSP_LCD_DisplayStringAt(165, 195, "<22>142", CENTER_MODE);
80061de: 2301 movs r3, #1
80061e0: 4a50 ldr r2, [pc, #320] ; (8006324 <Display+0x32c>)
80061e2: 21c3 movs r1, #195 ; 0xc3
80061e4: 20a5 movs r0, #165 ; 0xa5
80061e6: f7fe fe79 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(165, 206, "<22><><D3><F1><E8><EB><E8><F2><E5> <20><><E7><E0><F0><FF> <20> <20><><ED><E0><EF><F0><FF><E6><E5><ED>", CENTER_MODE);
80061ea: 2301 movs r3, #1
80061ec: 4a4e ldr r2, [pc, #312] ; (8006328 <Display+0x330>)
80061ee: 21ce movs r1, #206 ; 0xce
80061f0: 20a5 movs r0, #165 ; 0xa5
80061f2: f7fe fe73 bl 8004edc <BSP_LCD_DisplayStringAt>
80061f6: e005 b.n 8006204 <Display+0x20c>
}
else
BSP_LCD_DisplayStringAt(165, 206, "Amplifier A142", CENTER_MODE);
80061f8: 2301 movs r3, #1
80061fa: 4a4c ldr r2, [pc, #304] ; (800632c <Display+0x334>)
80061fc: 21ce movs r1, #206 ; 0xce
80061fe: 20a5 movs r0, #165 ; 0xa5
8006200: f7fe fe6c bl 8004edc <BSP_LCD_DisplayStringAt>
else
BSP_LCD_DisplayStringAt(165, 206, "Amplifier A148", CENTER_MODE);
#endif
#endif
BSP_LCD_DisplayStringAt(160, 224, (char *) _VERSION, CENTER_MODE);
8006204: 2301 movs r3, #1
8006206: 4a4a ldr r2, [pc, #296] ; (8006330 <Display+0x338>)
8006208: 21e0 movs r1, #224 ; 0xe0
800620a: 20a0 movs r0, #160 ; 0xa0
800620c: f7fe fe66 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 4, (char *) _SERIAL_DRAW, CENTER_MODE);
8006210: 2301 movs r3, #1
8006212: 4a48 ldr r2, [pc, #288] ; (8006334 <Display+0x33c>)
8006214: 2104 movs r1, #4
8006216: 20a0 movs r0, #160 ; 0xa0
8006218: f7fe fe60 bl 8004edc <BSP_LCD_DisplayStringAt>
memset(str, 0, sizeof(str));
800621c: f507 7307 add.w r3, r7, #540 ; 0x21c
8006220: 223c movs r2, #60 ; 0x3c
8006222: 2100 movs r1, #0
8006224: 4618 mov r0, r3
8006226: f010 f91c bl 8016462 <memset>
l = 0;
800622a: 2300 movs r3, #0
800622c: f8c7 3324 str.w r3, [r7, #804] ; 0x324
if(ip_assigned)
8006230: 4b41 ldr r3, [pc, #260] ; (8006338 <Display+0x340>)
8006232: 781b ldrb r3, [r3, #0]
8006234: b2db uxtb r3, r3
8006236: 2b00 cmp r3, #0
8006238: f000 80f9 beq.w 800642e <Display+0x436>
{
for(j = 0; j < 4; j++)
800623c: 2300 movs r3, #0
800623e: f8c7 332c str.w r3, [r7, #812] ; 0x32c
8006242: e0d9 b.n 80063f8 <Display+0x400>
{
k = ip[j];
8006244: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c
8006248: 4a3c ldr r2, [pc, #240] ; (800633c <Display+0x344>)
800624a: 5cd3 ldrb r3, [r2, r3]
800624c: f8c7 3328 str.w r3, [r7, #808] ; 0x328
if(k < 10)
8006250: f8d7 3328 ldr.w r3, [r7, #808] ; 0x328
8006254: 2b09 cmp r3, #9
8006256: d81b bhi.n 8006290 <Display+0x298>
{
str[l++] = (uint8_t) (k + 48);
8006258: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324
800625c: 1c5a adds r2, r3, #1
800625e: f8c7 2324 str.w r2, [r7, #804] ; 0x324
8006262: f8d7 2328 ldr.w r2, [r7, #808] ; 0x328
8006266: b2d2 uxtb r2, r2
8006268: 3230 adds r2, #48 ; 0x30
800626a: b2d1 uxtb r1, r2
800626c: f507 7207 add.w r2, r7, #540 ; 0x21c
8006270: 54d1 strb r1, [r2, r3]
if(j < 3) {
8006272: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c
8006276: 2b02 cmp r3, #2
8006278: f200 80b9 bhi.w 80063ee <Display+0x3f6>
str[l++] = '.';
800627c: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324
8006280: 1c5a adds r2, r3, #1
8006282: f8c7 2324 str.w r2, [r7, #804] ; 0x324
8006286: f507 7207 add.w r2, r7, #540 ; 0x21c
800628a: 212e movs r1, #46 ; 0x2e
800628c: 54d1 strb r1, [r2, r3]
800628e: e0ae b.n 80063ee <Display+0x3f6>
}
}
else
if(k < 100)
8006290: f8d7 3328 ldr.w r3, [r7, #808] ; 0x328
8006294: 2b63 cmp r3, #99 ; 0x63
8006296: d855 bhi.n 8006344 <Display+0x34c>
{
str[l++] = (uint8_t) ((k / 10) + 48);
8006298: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324
800629c: 1c5a adds r2, r3, #1
800629e: f8c7 2324 str.w r2, [r7, #804] ; 0x324
80062a2: f8d7 2328 ldr.w r2, [r7, #808] ; 0x328
80062a6: 4926 ldr r1, [pc, #152] ; (8006340 <Display+0x348>)
80062a8: fba1 1202 umull r1, r2, r1, r2
80062ac: 08d2 lsrs r2, r2, #3
80062ae: b2d2 uxtb r2, r2
80062b0: 3230 adds r2, #48 ; 0x30
80062b2: b2d1 uxtb r1, r2
80062b4: f507 7207 add.w r2, r7, #540 ; 0x21c
80062b8: 54d1 strb r1, [r2, r3]
str[l++] = (uint8_t) ((k % 10) + 48);
80062ba: f8d7 1324 ldr.w r1, [r7, #804] ; 0x324
80062be: 1c4b adds r3, r1, #1
80062c0: f8c7 3324 str.w r3, [r7, #804] ; 0x324
80062c4: f8d7 0328 ldr.w r0, [r7, #808] ; 0x328
80062c8: 4b1d ldr r3, [pc, #116] ; (8006340 <Display+0x348>)
80062ca: fba3 2300 umull r2, r3, r3, r0
80062ce: 08da lsrs r2, r3, #3
80062d0: 4613 mov r3, r2
80062d2: 009b lsls r3, r3, #2
80062d4: 4413 add r3, r2
80062d6: 005b lsls r3, r3, #1
80062d8: 1ac2 subs r2, r0, r3
80062da: b2d3 uxtb r3, r2
80062dc: 3330 adds r3, #48 ; 0x30
80062de: b2da uxtb r2, r3
80062e0: f507 7307 add.w r3, r7, #540 ; 0x21c
80062e4: 545a strb r2, [r3, r1]
if(j < 3) {
80062e6: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c
80062ea: 2b02 cmp r3, #2
80062ec: d87f bhi.n 80063ee <Display+0x3f6>
str[l++] = '.';
80062ee: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324
80062f2: 1c5a adds r2, r3, #1
80062f4: f8c7 2324 str.w r2, [r7, #804] ; 0x324
80062f8: f507 7207 add.w r2, r7, #540 ; 0x21c
80062fc: 212e movs r1, #46 ; 0x2e
80062fe: 54d1 strb r1, [r2, r3]
8006300: e075 b.n 80063ee <Display+0x3f6>
8006302: bf00 nop
8006304: 2006ba78 .word 0x2006ba78
8006308: 2006ba7c .word 0x2006ba7c
800630c: 2006ba74 .word 0x2006ba74
8006310: 200209d9 .word 0x200209d9
8006314: 0802fc98 .word 0x0802fc98
8006318: 2006ba70 .word 0x2006ba70
800631c: 20020000 .word 0x20020000
8006320: 2006bca8 .word 0x2006bca8
8006324: 0801807c .word 0x0801807c
8006328: 08018084 .word 0x08018084
800632c: 080180a4 .word 0x080180a4
8006330: 0801ad88 .word 0x0801ad88
8006334: 20020020 .word 0x20020020
8006338: 2006ba94 .word 0x2006ba94
800633c: 2006ba8c .word 0x2006ba8c
8006340: cccccccd .word 0xcccccccd
}
}
else
{
str[l++] = (uint8_t) ((k / 100) + 48);
8006344: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324
8006348: 1c5a adds r2, r3, #1
800634a: f8c7 2324 str.w r2, [r7, #804] ; 0x324
800634e: f8d7 2328 ldr.w r2, [r7, #808] ; 0x328
8006352: 49ba ldr r1, [pc, #744] ; (800663c <Display+0x644>)
8006354: fba1 1202 umull r1, r2, r1, r2
8006358: 0952 lsrs r2, r2, #5
800635a: b2d2 uxtb r2, r2
800635c: 3230 adds r2, #48 ; 0x30
800635e: b2d1 uxtb r1, r2
8006360: f507 7207 add.w r2, r7, #540 ; 0x21c
8006364: 54d1 strb r1, [r2, r3]
str[l++] = (uint8_t) ((k % 100 / 10) + 48);
8006366: f8d7 2324 ldr.w r2, [r7, #804] ; 0x324
800636a: 1c53 adds r3, r2, #1
800636c: f8c7 3324 str.w r3, [r7, #804] ; 0x324
8006370: f8d7 1328 ldr.w r1, [r7, #808] ; 0x328
8006374: 4bb1 ldr r3, [pc, #708] ; (800663c <Display+0x644>)
8006376: fba3 0301 umull r0, r3, r3, r1
800637a: 095b lsrs r3, r3, #5
800637c: 2064 movs r0, #100 ; 0x64
800637e: fb00 f303 mul.w r3, r0, r3
8006382: 1acb subs r3, r1, r3
8006384: 49ae ldr r1, [pc, #696] ; (8006640 <Display+0x648>)
8006386: fba1 1303 umull r1, r3, r1, r3
800638a: 08db lsrs r3, r3, #3
800638c: b2db uxtb r3, r3
800638e: 3330 adds r3, #48 ; 0x30
8006390: b2d9 uxtb r1, r3
8006392: f507 7307 add.w r3, r7, #540 ; 0x21c
8006396: 5499 strb r1, [r3, r2]
str[l++] = (uint8_t) ((k % 100 % 10) + 48);
8006398: f8d7 0324 ldr.w r0, [r7, #804] ; 0x324
800639c: 1c43 adds r3, r0, #1
800639e: f8c7 3324 str.w r3, [r7, #804] ; 0x324
80063a2: f8d7 3328 ldr.w r3, [r7, #808] ; 0x328
80063a6: 4aa5 ldr r2, [pc, #660] ; (800663c <Display+0x644>)
80063a8: fba2 1203 umull r1, r2, r2, r3
80063ac: 0952 lsrs r2, r2, #5
80063ae: 2164 movs r1, #100 ; 0x64
80063b0: fb01 f202 mul.w r2, r1, r2
80063b4: 1a9a subs r2, r3, r2
80063b6: 4ba2 ldr r3, [pc, #648] ; (8006640 <Display+0x648>)
80063b8: fba3 1302 umull r1, r3, r3, r2
80063bc: 08d9 lsrs r1, r3, #3
80063be: 460b mov r3, r1
80063c0: 009b lsls r3, r3, #2
80063c2: 440b add r3, r1
80063c4: 005b lsls r3, r3, #1
80063c6: 1ad1 subs r1, r2, r3
80063c8: b2cb uxtb r3, r1
80063ca: 3330 adds r3, #48 ; 0x30
80063cc: b2da uxtb r2, r3
80063ce: f507 7307 add.w r3, r7, #540 ; 0x21c
80063d2: 541a strb r2, [r3, r0]
if(j < 3) {
80063d4: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c
80063d8: 2b02 cmp r3, #2
80063da: d808 bhi.n 80063ee <Display+0x3f6>
str[l++] = '.';
80063dc: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324
80063e0: 1c5a adds r2, r3, #1
80063e2: f8c7 2324 str.w r2, [r7, #804] ; 0x324
80063e6: f507 7207 add.w r2, r7, #540 ; 0x21c
80063ea: 212e movs r1, #46 ; 0x2e
80063ec: 54d1 strb r1, [r2, r3]
for(j = 0; j < 4; j++)
80063ee: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c
80063f2: 3301 adds r3, #1
80063f4: f8c7 332c str.w r3, [r7, #812] ; 0x32c
80063f8: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c
80063fc: 2b03 cmp r3, #3
80063fe: f67f af21 bls.w 8006244 <Display+0x24c>
}
}
}
strcat(str, ":7000");
8006402: f507 7307 add.w r3, r7, #540 ; 0x21c
8006406: 4618 mov r0, r3
8006408: f7f9 ff16 bl 8000238 <strlen>
800640c: 4603 mov r3, r0
800640e: 461a mov r2, r3
8006410: f507 7307 add.w r3, r7, #540 ; 0x21c
8006414: 4413 add r3, r2
8006416: 4a8b ldr r2, [pc, #556] ; (8006644 <Display+0x64c>)
8006418: 6810 ldr r0, [r2, #0]
800641a: 6018 str r0, [r3, #0]
800641c: 8892 ldrh r2, [r2, #4]
800641e: 809a strh r2, [r3, #4]
BSP_LCD_DisplayStringAt(160, 24, str, CENTER_MODE);
8006420: f507 7207 add.w r2, r7, #540 ; 0x21c
8006424: 2301 movs r3, #1
8006426: 2118 movs r1, #24
8006428: 20a0 movs r0, #160 ; 0xa0
800642a: f7fe fd57 bl 8004edc <BSP_LCD_DisplayStringAt>
/*if(CORRECTION == false) {
BSP_LCD_DisplayStringAt(0, 4, ".", LEFT_MODE);
}*/
DrawSpinner(300, 20);
800642e: 2114 movs r1, #20
8006430: f44f 7096 mov.w r0, #300 ; 0x12c
8006434: f007 fdee bl 800e014 <DrawSpinner>
if(clbr)
8006438: 4b83 ldr r3, [pc, #524] ; (8006648 <Display+0x650>)
800643a: 781b ldrb r3, [r3, #0]
800643c: b2db uxtb r3, r3
800643e: 2b00 cmp r3, #0
8006440: d00b beq.n 800645a <Display+0x462>
{
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
8006442: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006446: f04f 30ff mov.w r0, #4294967295
800644a: f7fe fc81 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 18, "<22><><C7><C0><CF><D3> <20><><CA><C0><CB><C8><C1><D0><CE><C2>", CENTER_MODE);
800644e: 2301 movs r3, #1
8006450: 4a7e ldr r2, [pc, #504] ; (800664c <Display+0x654>)
8006452: 2112 movs r1, #18
8006454: 20a0 movs r0, #160 ; 0xa0
8006456: f7fe fd41 bl 8004edc <BSP_LCD_DisplayStringAt>
}
if(ASK_COMPLETE)
800645a: 4b7d ldr r3, [pc, #500] ; (8006650 <Display+0x658>)
800645c: 781b ldrb r3, [r3, #0]
800645e: b2db uxtb r3, r3
8006460: 2b00 cmp r3, #0
8006462: f007 8277 beq.w 800d954 <Display+0x795c>
{
timesLOGO = 0;
8006466: 4b7b ldr r3, [pc, #492] ; (8006654 <Display+0x65c>)
8006468: 2200 movs r2, #0
800646a: 601a str r2, [r3, #0]
if(clbr)
800646c: 4b76 ldr r3, [pc, #472] ; (8006648 <Display+0x650>)
800646e: 781b ldrb r3, [r3, #0]
8006470: b2db uxtb r3, r3
8006472: 2b00 cmp r3, #0
8006474: d007 beq.n 8006486 <Display+0x48e>
{
menu = CALIBR_00;
8006476: 4b78 ldr r3, [pc, #480] ; (8006658 <Display+0x660>)
8006478: 2201 movs r2, #1
800647a: 701a strb r2, [r3, #0]
menupos = Ch1;
800647c: 4b77 ldr r3, [pc, #476] ; (800665c <Display+0x664>)
800647e: 2200 movs r2, #0
8006480: 701a strb r2, [r3, #0]
}
else
menu = MAIN;
}
}
break;
8006482: f007 ba67 b.w 800d954 <Display+0x795c>
menu = MAIN;
8006486: 4b74 ldr r3, [pc, #464] ; (8006658 <Display+0x660>)
8006488: 2200 movs r2, #0
800648a: 701a strb r2, [r3, #0]
break;
800648c: f007 ba62 b.w 800d954 <Display+0x795c>
case OPTIONS:
BSP_LCD_SetFont(&Font12);
8006490: 4873 ldr r0, [pc, #460] ; (8006660 <Display+0x668>)
8006492: f7fe fc99 bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
8006496: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800649a: f04f 30ff mov.w r0, #4294967295
800649e: f7fe fc57 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(55, 120, (char *) pOPTIONS[pardata.LANG][2], LEFT_MODE); //<2F><><DF><E7>
80064a2: 4b70 ldr r3, [pc, #448] ; (8006664 <Display+0x66c>)
80064a4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80064a8: b29b uxth r3, r3
80064aa: 4a6f ldr r2, [pc, #444] ; (8006668 <Display+0x670>)
80064ac: 011b lsls r3, r3, #4
80064ae: 4413 add r3, r2
80064b0: 3308 adds r3, #8
80064b2: 681a ldr r2, [r3, #0]
80064b4: 2303 movs r3, #3
80064b6: 2178 movs r1, #120 ; 0x78
80064b8: 2037 movs r0, #55 ; 0x37
80064ba: f7fe fd0f bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Back)
80064be: 4b67 ldr r3, [pc, #412] ; (800665c <Display+0x664>)
80064c0: 781b ldrb r3, [r3, #0]
80064c2: b2db uxtb r3, r3
80064c4: 2bff cmp r3, #255 ; 0xff
80064c6: d148 bne.n 800655a <Display+0x562>
{
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
80064c8: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80064cc: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
80064d0: f7fe fc3e bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(55, 80, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //<2F><><CD><E0><E7>
80064d4: 4b63 ldr r3, [pc, #396] ; (8006664 <Display+0x66c>)
80064d6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80064da: b29b uxth r3, r3
80064dc: 4a62 ldr r2, [pc, #392] ; (8006668 <Display+0x670>)
80064de: 011b lsls r3, r3, #4
80064e0: 4413 add r3, r2
80064e2: 681a ldr r2, [r3, #0]
80064e4: 2303 movs r3, #3
80064e6: 2150 movs r1, #80 ; 0x50
80064e8: 2037 movs r0, #55 ; 0x37
80064ea: f7fe fcf7 bl 8004edc <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
80064ee: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80064f2: f04f 30ff mov.w r0, #4294967295
80064f6: f7fe fc2b bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(55, 100, (char *) pOPTIONS[pardata.LANG][1], LEFT_MODE); //<2F><><CD><E0><F1><F2><F0><EE><E9> <20><><EA><E0><ED><E0><EB>
80064fa: 4b5a ldr r3, [pc, #360] ; (8006664 <Display+0x66c>)
80064fc: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006500: b29b uxth r3, r3
8006502: 4a59 ldr r2, [pc, #356] ; (8006668 <Display+0x670>)
8006504: 011b lsls r3, r3, #4
8006506: 4413 add r3, r2
8006508: 3304 adds r3, #4
800650a: 681a ldr r2, [r3, #0]
800650c: 2303 movs r3, #3
800650e: 2164 movs r1, #100 ; 0x64
8006510: 2037 movs r0, #55 ; 0x37
8006512: f7fe fce3 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(55, 140, (char *) pOPTIONS[pardata.LANG][3], LEFT_MODE); //Off
8006516: 4b53 ldr r3, [pc, #332] ; (8006664 <Display+0x66c>)
8006518: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800651c: b29b uxth r3, r3
800651e: 4a52 ldr r2, [pc, #328] ; (8006668 <Display+0x670>)
8006520: 011b lsls r3, r3, #4
8006522: 4413 add r3, r2
8006524: 330c adds r3, #12
8006526: 681a ldr r2, [r3, #0]
8006528: 2303 movs r3, #3
800652a: 218c movs r1, #140 ; 0x8c
800652c: 2037 movs r0, #55 ; 0x37
800652e: f7fe fcd5 bl 8004edc <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8006532: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006536: 484d ldr r0, [pc, #308] ; (800666c <Display+0x674>)
8006538: f7fe fc0a bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //<2F><><DF><E7>
800653c: 4b49 ldr r3, [pc, #292] ; (8006664 <Display+0x66c>)
800653e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006542: b29b uxth r3, r3
8006544: 461a mov r2, r3
8006546: 4b4a ldr r3, [pc, #296] ; (8006670 <Display+0x678>)
8006548: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800654c: 2301 movs r3, #1
800654e: 2178 movs r1, #120 ; 0x78
8006550: 20f0 movs r0, #240 ; 0xf0
8006552: f7fe fcc3 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(55, 100, (char *) pOPTIONS[pardata.LANG][1], LEFT_MODE); //<2F><><CD><E0><F1><F2><F0><EE><E9> <20><><EA><E0><ED><E0><EB>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //<2F><><DF><E7>
}
break;
8006556: f007 b9ff b.w 800d958 <Display+0x7960>
if(menupos == Inputs)
800655a: 4b40 ldr r3, [pc, #256] ; (800665c <Display+0x664>)
800655c: 781b ldrb r3, [r3, #0]
800655e: b2db uxtb r3, r3
8006560: 2b00 cmp r3, #0
8006562: d148 bne.n 80065f6 <Display+0x5fe>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8006564: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006568: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800656c: f7fe fbf0 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(55, 100, (char *) pOPTIONS[pardata.LANG][1], LEFT_MODE); //<2F><><CD><E0><F1><F2><F0><EE><E9> <20><><EA><E0><ED><E0><EB>
8006570: 4b3c ldr r3, [pc, #240] ; (8006664 <Display+0x66c>)
8006572: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006576: b29b uxth r3, r3
8006578: 4a3b ldr r2, [pc, #236] ; (8006668 <Display+0x670>)
800657a: 011b lsls r3, r3, #4
800657c: 4413 add r3, r2
800657e: 3304 adds r3, #4
8006580: 681a ldr r2, [r3, #0]
8006582: 2303 movs r3, #3
8006584: 2164 movs r1, #100 ; 0x64
8006586: 2037 movs r0, #55 ; 0x37
8006588: f7fe fca8 bl 8004edc <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800658c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006590: f04f 30ff mov.w r0, #4294967295
8006594: f7fe fbdc bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(55, 80, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //<2F><><CD><E0><E7>
8006598: 4b32 ldr r3, [pc, #200] ; (8006664 <Display+0x66c>)
800659a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800659e: b29b uxth r3, r3
80065a0: 4a31 ldr r2, [pc, #196] ; (8006668 <Display+0x670>)
80065a2: 011b lsls r3, r3, #4
80065a4: 4413 add r3, r2
80065a6: 681a ldr r2, [r3, #0]
80065a8: 2303 movs r3, #3
80065aa: 2150 movs r1, #80 ; 0x50
80065ac: 2037 movs r0, #55 ; 0x37
80065ae: f7fe fc95 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(55, 140, (char *) pOPTIONS[pardata.LANG][3], LEFT_MODE); //Off
80065b2: 4b2c ldr r3, [pc, #176] ; (8006664 <Display+0x66c>)
80065b4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80065b8: b29b uxth r3, r3
80065ba: 4a2b ldr r2, [pc, #172] ; (8006668 <Display+0x670>)
80065bc: 011b lsls r3, r3, #4
80065be: 4413 add r3, r2
80065c0: 330c adds r3, #12
80065c2: 681a ldr r2, [r3, #0]
80065c4: 2303 movs r3, #3
80065c6: 218c movs r1, #140 ; 0x8c
80065c8: 2037 movs r0, #55 ; 0x37
80065ca: f7fe fc87 bl 8004edc <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
80065ce: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80065d2: 4826 ldr r0, [pc, #152] ; (800666c <Display+0x674>)
80065d4: f7fe fbbc bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //<2F><><DF><E7>
80065d8: 4b22 ldr r3, [pc, #136] ; (8006664 <Display+0x66c>)
80065da: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80065de: b29b uxth r3, r3
80065e0: 461a mov r2, r3
80065e2: 4b23 ldr r3, [pc, #140] ; (8006670 <Display+0x678>)
80065e4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80065e8: 2301 movs r3, #1
80065ea: 2178 movs r1, #120 ; 0x78
80065ec: 20f0 movs r0, #240 ; 0xf0
80065ee: f7fe fc75 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
80065f2: f007 b9b1 b.w 800d958 <Display+0x7960>
if(menupos == Lang)
80065f6: 4b19 ldr r3, [pc, #100] ; (800665c <Display+0x664>)
80065f8: 781b ldrb r3, [r3, #0]
80065fa: b2db uxtb r3, r3
80065fc: 2b01 cmp r3, #1
80065fe: d17b bne.n 80066f8 <Display+0x700>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8006600: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006604: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8006608: f7fe fba2 bl 8004d50 <LCD_SetColors>
if(focused)
800660c: 4b19 ldr r3, [pc, #100] ; (8006674 <Display+0x67c>)
800660e: 781b ldrb r3, [r3, #0]
8006610: b2db uxtb r3, r3
8006612: 2b00 cmp r3, #0
8006614: d032 beq.n 800667c <Display+0x684>
if(blk)
8006616: 4b18 ldr r3, [pc, #96] ; (8006678 <Display+0x680>)
8006618: 681b ldr r3, [r3, #0]
800661a: 2b00 cmp r3, #0
800661c: d03b beq.n 8006696 <Display+0x69e>
BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //<2F><><DF><E7>
800661e: 4b11 ldr r3, [pc, #68] ; (8006664 <Display+0x66c>)
8006620: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006624: b29b uxth r3, r3
8006626: 461a mov r2, r3
8006628: 4b11 ldr r3, [pc, #68] ; (8006670 <Display+0x678>)
800662a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800662e: 2301 movs r3, #1
8006630: 2178 movs r1, #120 ; 0x78
8006632: 20f0 movs r0, #240 ; 0xf0
8006634: f7fe fc52 bl 8004edc <BSP_LCD_DisplayStringAt>
8006638: e02d b.n 8006696 <Display+0x69e>
800663a: bf00 nop
800663c: 51eb851f .word 0x51eb851f
8006640: cccccccd .word 0xcccccccd
8006644: 080180b4 .word 0x080180b4
8006648: 2006c21c .word 0x2006c21c
800664c: 080180bc .word 0x080180bc
8006650: 2006ba90 .word 0x2006ba90
8006654: 2006ba70 .word 0x2006ba70
8006658: 200209d9 .word 0x200209d9
800665c: 20020010 .word 0x20020010
8006660: 20020000 .word 0x20020000
8006664: 2006bca8 .word 0x2006bca8
8006668: 20020034 .word 0x20020034
800666c: ffd8aa57 .word 0xffd8aa57
8006670: 20020964 .word 0x20020964
8006674: 200209e4 .word 0x200209e4
8006678: 2006ba78 .word 0x2006ba78
BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //<2F><><DF><E7>
800667c: 4b99 ldr r3, [pc, #612] ; (80068e4 <Display+0x8ec>)
800667e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006682: b29b uxth r3, r3
8006684: 461a mov r2, r3
8006686: 4b98 ldr r3, [pc, #608] ; (80068e8 <Display+0x8f0>)
8006688: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800668c: 2301 movs r3, #1
800668e: 2178 movs r1, #120 ; 0x78
8006690: 20f0 movs r0, #240 ; 0xf0
8006692: f7fe fc23 bl 8004edc <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
8006696: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800669a: f04f 30ff mov.w r0, #4294967295
800669e: f7fe fb57 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(55, 80, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //<2F><><CD><E0><E7>
80066a2: 4b90 ldr r3, [pc, #576] ; (80068e4 <Display+0x8ec>)
80066a4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80066a8: b29b uxth r3, r3
80066aa: 4a90 ldr r2, [pc, #576] ; (80068ec <Display+0x8f4>)
80066ac: 011b lsls r3, r3, #4
80066ae: 4413 add r3, r2
80066b0: 681a ldr r2, [r3, #0]
80066b2: 2303 movs r3, #3
80066b4: 2150 movs r1, #80 ; 0x50
80066b6: 2037 movs r0, #55 ; 0x37
80066b8: f7fe fc10 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(55, 100, (char *) pOPTIONS[pardata.LANG][1], LEFT_MODE); //<2F><><CD><E0><F1><F2><F0><EE><E9> <20><><EA><E0><ED><E0><EB>
80066bc: 4b89 ldr r3, [pc, #548] ; (80068e4 <Display+0x8ec>)
80066be: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80066c2: b29b uxth r3, r3
80066c4: 4a89 ldr r2, [pc, #548] ; (80068ec <Display+0x8f4>)
80066c6: 011b lsls r3, r3, #4
80066c8: 4413 add r3, r2
80066ca: 3304 adds r3, #4
80066cc: 681a ldr r2, [r3, #0]
80066ce: 2303 movs r3, #3
80066d0: 2164 movs r1, #100 ; 0x64
80066d2: 2037 movs r0, #55 ; 0x37
80066d4: f7fe fc02 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(55, 140, (char *) pOPTIONS[pardata.LANG][3], LEFT_MODE); //Off
80066d8: 4b82 ldr r3, [pc, #520] ; (80068e4 <Display+0x8ec>)
80066da: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80066de: b29b uxth r3, r3
80066e0: 4a82 ldr r2, [pc, #520] ; (80068ec <Display+0x8f4>)
80066e2: 011b lsls r3, r3, #4
80066e4: 4413 add r3, r2
80066e6: 330c adds r3, #12
80066e8: 681a ldr r2, [r3, #0]
80066ea: 2303 movs r3, #3
80066ec: 218c movs r1, #140 ; 0x8c
80066ee: 2037 movs r0, #55 ; 0x37
80066f0: f7fe fbf4 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
80066f4: f007 b930 b.w 800d958 <Display+0x7960>
if(menupos == PowerOff)
80066f8: 4b7d ldr r3, [pc, #500] ; (80068f0 <Display+0x8f8>)
80066fa: 781b ldrb r3, [r3, #0]
80066fc: b2db uxtb r3, r3
80066fe: 2b02 cmp r3, #2
8006700: f047 812a bne.w 800d958 <Display+0x7960>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8006704: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006708: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800670c: f7fe fb20 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(55, 140, (char *) pOPTIONS[pardata.LANG][3], LEFT_MODE); //Off
8006710: 4b74 ldr r3, [pc, #464] ; (80068e4 <Display+0x8ec>)
8006712: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006716: b29b uxth r3, r3
8006718: 4a74 ldr r2, [pc, #464] ; (80068ec <Display+0x8f4>)
800671a: 011b lsls r3, r3, #4
800671c: 4413 add r3, r2
800671e: 330c adds r3, #12
8006720: 681a ldr r2, [r3, #0]
8006722: 2303 movs r3, #3
8006724: 218c movs r1, #140 ; 0x8c
8006726: 2037 movs r0, #55 ; 0x37
8006728: f7fe fbd8 bl 8004edc <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800672c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006730: f04f 30ff mov.w r0, #4294967295
8006734: f7fe fb0c bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(55, 80, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //<2F><><CD><E0><E7>
8006738: 4b6a ldr r3, [pc, #424] ; (80068e4 <Display+0x8ec>)
800673a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800673e: b29b uxth r3, r3
8006740: 4a6a ldr r2, [pc, #424] ; (80068ec <Display+0x8f4>)
8006742: 011b lsls r3, r3, #4
8006744: 4413 add r3, r2
8006746: 681a ldr r2, [r3, #0]
8006748: 2303 movs r3, #3
800674a: 2150 movs r1, #80 ; 0x50
800674c: 2037 movs r0, #55 ; 0x37
800674e: f7fe fbc5 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(55, 100, (char *) pOPTIONS[pardata.LANG][1], LEFT_MODE); //<2F><><CD><E0><F1><F2><F0><EE><E9> <20><><EA><E0><ED><E0><EB>
8006752: 4b64 ldr r3, [pc, #400] ; (80068e4 <Display+0x8ec>)
8006754: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006758: b29b uxth r3, r3
800675a: 4a64 ldr r2, [pc, #400] ; (80068ec <Display+0x8f4>)
800675c: 011b lsls r3, r3, #4
800675e: 4413 add r3, r2
8006760: 3304 adds r3, #4
8006762: 681a ldr r2, [r3, #0]
8006764: 2303 movs r3, #3
8006766: 2164 movs r1, #100 ; 0x64
8006768: 2037 movs r0, #55 ; 0x37
800676a: f7fe fbb7 bl 8004edc <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800676e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006772: 4860 ldr r0, [pc, #384] ; (80068f4 <Display+0x8fc>)
8006774: f7fe faec bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //<2F><><DF><E7>
8006778: 4b5a ldr r3, [pc, #360] ; (80068e4 <Display+0x8ec>)
800677a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800677e: b29b uxth r3, r3
8006780: 461a mov r2, r3
8006782: 4b59 ldr r3, [pc, #356] ; (80068e8 <Display+0x8f0>)
8006784: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8006788: 2301 movs r3, #1
800678a: 2178 movs r1, #120 ; 0x78
800678c: 20f0 movs r0, #240 ; 0xf0
800678e: f7fe fba5 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
8006792: f007 b8e1 b.w 800d958 <Display+0x7960>
case SETTINGS: //todo
//////////////////////////////////////////////////////////////////////////////
if(pardata.amplif[Ch1].SENS <= 0.0f) {
8006796: 4b53 ldr r3, [pc, #332] ; (80068e4 <Display+0x8ec>)
8006798: edd3 7a06 vldr s15, [r3, #24]
800679c: eef5 7ac0 vcmpe.f32 s15, #0.0
80067a0: eef1 fa10 vmrs APSR_nzcv, fpscr
80067a4: d807 bhi.n 80067b6 <Display+0x7be>
pardata.amplif[Ch1].SENS = 1.0f;
80067a6: 4b4f ldr r3, [pc, #316] ; (80068e4 <Display+0x8ec>)
80067a8: f04f 527e mov.w r2, #1065353216 ; 0x3f800000
80067ac: 619a str r2, [r3, #24]
s = 10000;
80067ae: f242 7310 movw r3, #10000 ; 0x2710
80067b2: f8c7 3344 str.w r3, [r7, #836] ; 0x344
}
if(pardata.amplif[Ch1].SENS < 10.0f) {
80067b6: 4b4b ldr r3, [pc, #300] ; (80068e4 <Display+0x8ec>)
80067b8: edd3 7a06 vldr s15, [r3, #24]
80067bc: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
80067c0: eef4 7ac7 vcmpe.f32 s15, s14
80067c4: eef1 fa10 vmrs APSR_nzcv, fpscr
80067c8: d514 bpl.n 80067f4 <Display+0x7fc>
s = (uint32_t) ((pardata.amplif[Ch1].SENS * 10000.0f) + 0.5f);
80067ca: 4b46 ldr r3, [pc, #280] ; (80068e4 <Display+0x8ec>)
80067cc: edd3 7a06 vldr s15, [r3, #24]
80067d0: ed9f 7a49 vldr s14, [pc, #292] ; 80068f8 <Display+0x900>
80067d4: ee67 7a87 vmul.f32 s15, s15, s14
80067d8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
80067dc: ee77 7a87 vadd.f32 s15, s15, s14
80067e0: eefc 7ae7 vcvt.u32.f32 s15, s15
80067e4: ee17 3a90 vmov r3, s15
80067e8: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt1 = 4;
80067ec: 2304 movs r3, #4
80067ee: f887 3318 strb.w r3, [r7, #792] ; 0x318
80067f2: e09c b.n 800692e <Display+0x936>
}
else if(pardata.amplif[Ch1].SENS < 100.0f) {
80067f4: 4b3b ldr r3, [pc, #236] ; (80068e4 <Display+0x8ec>)
80067f6: edd3 7a06 vldr s15, [r3, #24]
80067fa: ed9f 7a40 vldr s14, [pc, #256] ; 80068fc <Display+0x904>
80067fe: eef4 7ac7 vcmpe.f32 s15, s14
8006802: eef1 fa10 vmrs APSR_nzcv, fpscr
8006806: d514 bpl.n 8006832 <Display+0x83a>
s = (uint32_t) ((pardata.amplif[Ch1].SENS * 1000.0f) + 0.5f);
8006808: 4b36 ldr r3, [pc, #216] ; (80068e4 <Display+0x8ec>)
800680a: edd3 7a06 vldr s15, [r3, #24]
800680e: ed9f 7a3c vldr s14, [pc, #240] ; 8006900 <Display+0x908>
8006812: ee67 7a87 vmul.f32 s15, s15, s14
8006816: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800681a: ee77 7a87 vadd.f32 s15, s15, s14
800681e: eefc 7ae7 vcvt.u32.f32 s15, s15
8006822: ee17 3a90 vmov r3, s15
8006826: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt1 = 3;
800682a: 2303 movs r3, #3
800682c: f887 3318 strb.w r3, [r7, #792] ; 0x318
8006830: e07d b.n 800692e <Display+0x936>
}
else if(pardata.amplif[Ch1].SENS < 1000.0f) {
8006832: 4b2c ldr r3, [pc, #176] ; (80068e4 <Display+0x8ec>)
8006834: edd3 7a06 vldr s15, [r3, #24]
8006838: ed9f 7a31 vldr s14, [pc, #196] ; 8006900 <Display+0x908>
800683c: eef4 7ac7 vcmpe.f32 s15, s14
8006840: eef1 fa10 vmrs APSR_nzcv, fpscr
8006844: d514 bpl.n 8006870 <Display+0x878>
s = (uint32_t) ((pardata.amplif[Ch1].SENS * 100.0f) + 0.5f);
8006846: 4b27 ldr r3, [pc, #156] ; (80068e4 <Display+0x8ec>)
8006848: edd3 7a06 vldr s15, [r3, #24]
800684c: ed9f 7a2b vldr s14, [pc, #172] ; 80068fc <Display+0x904>
8006850: ee67 7a87 vmul.f32 s15, s15, s14
8006854: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006858: ee77 7a87 vadd.f32 s15, s15, s14
800685c: eefc 7ae7 vcvt.u32.f32 s15, s15
8006860: ee17 3a90 vmov r3, s15
8006864: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt1 = 2;
8006868: 2302 movs r3, #2
800686a: f887 3318 strb.w r3, [r7, #792] ; 0x318
800686e: e05e b.n 800692e <Display+0x936>
}
else if(pardata.amplif[Ch1].SENS < 10000.0f) {
8006870: 4b1c ldr r3, [pc, #112] ; (80068e4 <Display+0x8ec>)
8006872: edd3 7a06 vldr s15, [r3, #24]
8006876: ed9f 7a20 vldr s14, [pc, #128] ; 80068f8 <Display+0x900>
800687a: eef4 7ac7 vcmpe.f32 s15, s14
800687e: eef1 fa10 vmrs APSR_nzcv, fpscr
8006882: d514 bpl.n 80068ae <Display+0x8b6>
s = (uint32_t) ((pardata.amplif[Ch1].SENS * 10.0f) + 0.5f);
8006884: 4b17 ldr r3, [pc, #92] ; (80068e4 <Display+0x8ec>)
8006886: edd3 7a06 vldr s15, [r3, #24]
800688a: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800688e: ee67 7a87 vmul.f32 s15, s15, s14
8006892: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006896: ee77 7a87 vadd.f32 s15, s15, s14
800689a: eefc 7ae7 vcvt.u32.f32 s15, s15
800689e: ee17 3a90 vmov r3, s15
80068a2: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt1 = 1;
80068a6: 2301 movs r3, #1
80068a8: f887 3318 strb.w r3, [r7, #792] ; 0x318
80068ac: e03f b.n 800692e <Display+0x936>
}
else if(pardata.amplif[Ch1].SENS < 100000.0f) {
80068ae: 4b0d ldr r3, [pc, #52] ; (80068e4 <Display+0x8ec>)
80068b0: edd3 7a06 vldr s15, [r3, #24]
80068b4: ed9f 7a13 vldr s14, [pc, #76] ; 8006904 <Display+0x90c>
80068b8: eef4 7ac7 vcmpe.f32 s15, s14
80068bc: eef1 fa10 vmrs APSR_nzcv, fpscr
80068c0: d522 bpl.n 8006908 <Display+0x910>
s = (uint32_t) ((pardata.amplif[Ch1].SENS) + 0.5f);
80068c2: 4b08 ldr r3, [pc, #32] ; (80068e4 <Display+0x8ec>)
80068c4: edd3 7a06 vldr s15, [r3, #24]
80068c8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
80068cc: ee77 7a87 vadd.f32 s15, s15, s14
80068d0: eefc 7ae7 vcvt.u32.f32 s15, s15
80068d4: ee17 3a90 vmov r3, s15
80068d8: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt1 = 0;
80068dc: 2300 movs r3, #0
80068de: f887 3318 strb.w r3, [r7, #792] ; 0x318
80068e2: e024 b.n 800692e <Display+0x936>
80068e4: 2006bca8 .word 0x2006bca8
80068e8: 20020964 .word 0x20020964
80068ec: 20020034 .word 0x20020034
80068f0: 20020010 .word 0x20020010
80068f4: ffd8aa57 .word 0xffd8aa57
80068f8: 461c4000 .word 0x461c4000
80068fc: 42c80000 .word 0x42c80000
8006900: 447a0000 .word 0x447a0000
8006904: 47c35000 .word 0x47c35000
}
else if(pardata.amplif[Ch1].SENS >= 100000.0f) {
8006908: 4bd8 ldr r3, [pc, #864] ; (8006c6c <Display+0xc74>)
800690a: edd3 7a06 vldr s15, [r3, #24]
800690e: ed9f 7ad8 vldr s14, [pc, #864] ; 8006c70 <Display+0xc78>
8006912: eef4 7ac7 vcmpe.f32 s15, s14
8006916: eef1 fa10 vmrs APSR_nzcv, fpscr
800691a: db08 blt.n 800692e <Display+0x936>
pardata.amplif[Ch1].SENS = 99999.0f;
800691c: 4bd3 ldr r3, [pc, #844] ; (8006c6c <Display+0xc74>)
800691e: 4ad5 ldr r2, [pc, #852] ; (8006c74 <Display+0xc7c>)
8006920: 619a str r2, [r3, #24]
s = 99999;
8006922: 4bd5 ldr r3, [pc, #852] ; (8006c78 <Display+0xc80>)
8006924: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt1 = 0;
8006928: 2300 movs r3, #0
800692a: f887 3318 strb.w r3, [r7, #792] ; 0x318
}
idt1 = (s / 10000);
800692e: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
8006932: 4ad2 ldr r2, [pc, #840] ; (8006c7c <Display+0xc84>)
8006934: fba2 2303 umull r2, r3, r2, r3
8006938: 0b5b lsrs r3, r3, #13
800693a: b2db uxtb r3, r3
800693c: f887 331f strb.w r3, [r7, #799] ; 0x31f
iet1 = (s % 10000 / 1000);
8006940: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
8006944: 4bcd ldr r3, [pc, #820] ; (8006c7c <Display+0xc84>)
8006946: fba3 1302 umull r1, r3, r3, r2
800694a: 0b5b lsrs r3, r3, #13
800694c: f242 7110 movw r1, #10000 ; 0x2710
8006950: fb01 f303 mul.w r3, r1, r3
8006954: 1ad3 subs r3, r2, r3
8006956: 4aca ldr r2, [pc, #808] ; (8006c80 <Display+0xc88>)
8006958: fba2 2303 umull r2, r3, r2, r3
800695c: 099b lsrs r3, r3, #6
800695e: b2db uxtb r3, r3
8006960: f887 331e strb.w r3, [r7, #798] ; 0x31e
ies1 = (s % 10000 % 1000 / 100);
8006964: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
8006968: 4bc4 ldr r3, [pc, #784] ; (8006c7c <Display+0xc84>)
800696a: fba3 1302 umull r1, r3, r3, r2
800696e: 0b5b lsrs r3, r3, #13
8006970: f242 7110 movw r1, #10000 ; 0x2710
8006974: fb01 f303 mul.w r3, r1, r3
8006978: 1ad3 subs r3, r2, r3
800697a: 4ac1 ldr r2, [pc, #772] ; (8006c80 <Display+0xc88>)
800697c: fba2 1203 umull r1, r2, r2, r3
8006980: 0992 lsrs r2, r2, #6
8006982: f44f 717a mov.w r1, #1000 ; 0x3e8
8006986: fb01 f202 mul.w r2, r1, r2
800698a: 1a9a subs r2, r3, r2
800698c: 4bbd ldr r3, [pc, #756] ; (8006c84 <Display+0xc8c>)
800698e: fba3 2302 umull r2, r3, r3, r2
8006992: 095b lsrs r3, r3, #5
8006994: b2db uxtb r3, r3
8006996: f887 331d strb.w r3, [r7, #797] ; 0x31d
ied1 = (s % 10000 % 1000 % 100 / 10);
800699a: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
800699e: 4ab7 ldr r2, [pc, #732] ; (8006c7c <Display+0xc84>)
80069a0: fba2 1203 umull r1, r2, r2, r3
80069a4: 0b52 lsrs r2, r2, #13
80069a6: f242 7110 movw r1, #10000 ; 0x2710
80069aa: fb01 f202 mul.w r2, r1, r2
80069ae: 1a9a subs r2, r3, r2
80069b0: 4bb3 ldr r3, [pc, #716] ; (8006c80 <Display+0xc88>)
80069b2: fba3 1302 umull r1, r3, r3, r2
80069b6: 099b lsrs r3, r3, #6
80069b8: f44f 717a mov.w r1, #1000 ; 0x3e8
80069bc: fb01 f303 mul.w r3, r1, r3
80069c0: 1ad3 subs r3, r2, r3
80069c2: 4ab0 ldr r2, [pc, #704] ; (8006c84 <Display+0xc8c>)
80069c4: fba2 1203 umull r1, r2, r2, r3
80069c8: 0952 lsrs r2, r2, #5
80069ca: 2164 movs r1, #100 ; 0x64
80069cc: fb01 f202 mul.w r2, r1, r2
80069d0: 1a9a subs r2, r3, r2
80069d2: 4bad ldr r3, [pc, #692] ; (8006c88 <Display+0xc90>)
80069d4: fba3 2302 umull r2, r3, r3, r2
80069d8: 08db lsrs r3, r3, #3
80069da: b2db uxtb r3, r3
80069dc: f887 331c strb.w r3, [r7, #796] ; 0x31c
iee1 = (s % 10000 % 1000 % 100 % 10);
80069e0: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
80069e4: 4aa5 ldr r2, [pc, #660] ; (8006c7c <Display+0xc84>)
80069e6: fba2 1203 umull r1, r2, r2, r3
80069ea: 0b52 lsrs r2, r2, #13
80069ec: f242 7110 movw r1, #10000 ; 0x2710
80069f0: fb01 f202 mul.w r2, r1, r2
80069f4: 1a9a subs r2, r3, r2
80069f6: 4ba2 ldr r3, [pc, #648] ; (8006c80 <Display+0xc88>)
80069f8: fba3 1302 umull r1, r3, r3, r2
80069fc: 099b lsrs r3, r3, #6
80069fe: f44f 717a mov.w r1, #1000 ; 0x3e8
8006a02: fb01 f303 mul.w r3, r1, r3
8006a06: 1ad3 subs r3, r2, r3
8006a08: 4a9e ldr r2, [pc, #632] ; (8006c84 <Display+0xc8c>)
8006a0a: fba2 1203 umull r1, r2, r2, r3
8006a0e: 0952 lsrs r2, r2, #5
8006a10: 2164 movs r1, #100 ; 0x64
8006a12: fb01 f202 mul.w r2, r1, r2
8006a16: 1a9a subs r2, r3, r2
8006a18: 4b9b ldr r3, [pc, #620] ; (8006c88 <Display+0xc90>)
8006a1a: fba3 1302 umull r1, r3, r3, r2
8006a1e: 08d9 lsrs r1, r3, #3
8006a20: 460b mov r3, r1
8006a22: 009b lsls r3, r3, #2
8006a24: 440b add r3, r1
8006a26: 005b lsls r3, r3, #1
8006a28: 1ad1 subs r1, r2, r3
8006a2a: b2cb uxtb r3, r1
8006a2c: f887 331b strb.w r3, [r7, #795] ; 0x31b
p8 = str1;
8006a30: f507 738e add.w r3, r7, #284 ; 0x11c
8006a34: f8c7 3340 str.w r3, [r7, #832] ; 0x340
if(pardata.amplif[Ch1].SENS < 10.0f) {
8006a38: 4b8c ldr r3, [pc, #560] ; (8006c6c <Display+0xc74>)
8006a3a: edd3 7a06 vldr s15, [r3, #24]
8006a3e: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8006a42: eef4 7ac7 vcmpe.f32 s15, s14
8006a46: eef1 fa10 vmrs APSR_nzcv, fpscr
8006a4a: d50b bpl.n 8006a64 <Display+0xa6c>
p8 = FloatToASCII(pardata.amplif[Ch1].SENS, -4);
8006a4c: 4b87 ldr r3, [pc, #540] ; (8006c6c <Display+0xc74>)
8006a4e: edd3 7a06 vldr s15, [r3, #24]
8006a52: f06f 0003 mvn.w r0, #3
8006a56: eeb0 0a67 vmov.f32 s0, s15
8006a5a: f008 fce5 bl 800f428 <FloatToASCII>
8006a5e: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8006a62: e055 b.n 8006b10 <Display+0xb18>
}
else if(pardata.amplif[Ch1].SENS < 100.0f) {
8006a64: 4b81 ldr r3, [pc, #516] ; (8006c6c <Display+0xc74>)
8006a66: edd3 7a06 vldr s15, [r3, #24]
8006a6a: ed9f 7a88 vldr s14, [pc, #544] ; 8006c8c <Display+0xc94>
8006a6e: eef4 7ac7 vcmpe.f32 s15, s14
8006a72: eef1 fa10 vmrs APSR_nzcv, fpscr
8006a76: d50b bpl.n 8006a90 <Display+0xa98>
p8 = FloatToASCII(pardata.amplif[Ch1].SENS, -3);
8006a78: 4b7c ldr r3, [pc, #496] ; (8006c6c <Display+0xc74>)
8006a7a: edd3 7a06 vldr s15, [r3, #24]
8006a7e: f06f 0002 mvn.w r0, #2
8006a82: eeb0 0a67 vmov.f32 s0, s15
8006a86: f008 fccf bl 800f428 <FloatToASCII>
8006a8a: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8006a8e: e03f b.n 8006b10 <Display+0xb18>
}
else if(pardata.amplif[Ch1].SENS < 1000.0f) {
8006a90: 4b76 ldr r3, [pc, #472] ; (8006c6c <Display+0xc74>)
8006a92: edd3 7a06 vldr s15, [r3, #24]
8006a96: ed9f 7a7e vldr s14, [pc, #504] ; 8006c90 <Display+0xc98>
8006a9a: eef4 7ac7 vcmpe.f32 s15, s14
8006a9e: eef1 fa10 vmrs APSR_nzcv, fpscr
8006aa2: d50b bpl.n 8006abc <Display+0xac4>
p8 = FloatToASCII(pardata.amplif[Ch1].SENS, -2);
8006aa4: 4b71 ldr r3, [pc, #452] ; (8006c6c <Display+0xc74>)
8006aa6: edd3 7a06 vldr s15, [r3, #24]
8006aaa: f06f 0001 mvn.w r0, #1
8006aae: eeb0 0a67 vmov.f32 s0, s15
8006ab2: f008 fcb9 bl 800f428 <FloatToASCII>
8006ab6: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8006aba: e029 b.n 8006b10 <Display+0xb18>
}
else if(pardata.amplif[Ch1].SENS < 10000.0f) {
8006abc: 4b6b ldr r3, [pc, #428] ; (8006c6c <Display+0xc74>)
8006abe: edd3 7a06 vldr s15, [r3, #24]
8006ac2: ed9f 7a74 vldr s14, [pc, #464] ; 8006c94 <Display+0xc9c>
8006ac6: eef4 7ac7 vcmpe.f32 s15, s14
8006aca: eef1 fa10 vmrs APSR_nzcv, fpscr
8006ace: d50b bpl.n 8006ae8 <Display+0xaf0>
p8 = FloatToASCII(pardata.amplif[Ch1].SENS, -1);
8006ad0: 4b66 ldr r3, [pc, #408] ; (8006c6c <Display+0xc74>)
8006ad2: edd3 7a06 vldr s15, [r3, #24]
8006ad6: f04f 30ff mov.w r0, #4294967295
8006ada: eeb0 0a67 vmov.f32 s0, s15
8006ade: f008 fca3 bl 800f428 <FloatToASCII>
8006ae2: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8006ae6: e013 b.n 8006b10 <Display+0xb18>
}
else if(pardata.amplif[Ch1].SENS < 100000.0f) {
8006ae8: 4b60 ldr r3, [pc, #384] ; (8006c6c <Display+0xc74>)
8006aea: edd3 7a06 vldr s15, [r3, #24]
8006aee: ed9f 7a60 vldr s14, [pc, #384] ; 8006c70 <Display+0xc78>
8006af2: eef4 7ac7 vcmpe.f32 s15, s14
8006af6: eef1 fa10 vmrs APSR_nzcv, fpscr
8006afa: d509 bpl.n 8006b10 <Display+0xb18>
p8 = FloatToASCII(pardata.amplif[Ch1].SENS, 0);
8006afc: 4b5b ldr r3, [pc, #364] ; (8006c6c <Display+0xc74>)
8006afe: edd3 7a06 vldr s15, [r3, #24]
8006b02: 2000 movs r0, #0
8006b04: eeb0 0a67 vmov.f32 s0, s15
8006b08: f008 fc8e bl 800f428 <FloatToASCII>
8006b0c: f8c7 0340 str.w r0, [r7, #832] ; 0x340
}
strcpy((void *) str1, (void *) p8);
8006b10: f507 738e add.w r3, r7, #284 ; 0x11c
8006b14: f8d7 1340 ldr.w r1, [r7, #832] ; 0x340
8006b18: 4618 mov r0, r3
8006b1a: f00f fcaa bl 8016472 <strcpy>
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
if(pardata.amplif[Ch2].SENS <= 0.0f) {
8006b1e: 4b53 ldr r3, [pc, #332] ; (8006c6c <Display+0xc74>)
8006b20: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006b24: eef5 7ac0 vcmpe.f32 s15, #0.0
8006b28: eef1 fa10 vmrs APSR_nzcv, fpscr
8006b2c: d807 bhi.n 8006b3e <Display+0xb46>
pardata.amplif[Ch2].SENS = 1.0f;
8006b2e: 4b4f ldr r3, [pc, #316] ; (8006c6c <Display+0xc74>)
8006b30: f04f 527e mov.w r2, #1065353216 ; 0x3f800000
8006b34: 639a str r2, [r3, #56] ; 0x38
s = 10000;
8006b36: f242 7310 movw r3, #10000 ; 0x2710
8006b3a: f8c7 3344 str.w r3, [r7, #836] ; 0x344
}
if(pardata.amplif[Ch2].SENS < 10.0f) {
8006b3e: 4b4b ldr r3, [pc, #300] ; (8006c6c <Display+0xc74>)
8006b40: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006b44: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8006b48: eef4 7ac7 vcmpe.f32 s15, s14
8006b4c: eef1 fa10 vmrs APSR_nzcv, fpscr
8006b50: d514 bpl.n 8006b7c <Display+0xb84>
s = (uint32_t) ((pardata.amplif[Ch2].SENS * 10000.0f) + 0.5f);
8006b52: 4b46 ldr r3, [pc, #280] ; (8006c6c <Display+0xc74>)
8006b54: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006b58: ed9f 7a4e vldr s14, [pc, #312] ; 8006c94 <Display+0xc9c>
8006b5c: ee67 7a87 vmul.f32 s15, s15, s14
8006b60: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006b64: ee77 7a87 vadd.f32 s15, s15, s14
8006b68: eefc 7ae7 vcvt.u32.f32 s15, s15
8006b6c: ee17 3a90 vmov r3, s15
8006b70: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt2 = 4;
8006b74: 2304 movs r3, #4
8006b76: f887 3310 strb.w r3, [r7, #784] ; 0x310
8006b7a: e0a0 b.n 8006cbe <Display+0xcc6>
}
else if(pardata.amplif[Ch2].SENS < 100.0f) {
8006b7c: 4b3b ldr r3, [pc, #236] ; (8006c6c <Display+0xc74>)
8006b7e: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006b82: ed9f 7a42 vldr s14, [pc, #264] ; 8006c8c <Display+0xc94>
8006b86: eef4 7ac7 vcmpe.f32 s15, s14
8006b8a: eef1 fa10 vmrs APSR_nzcv, fpscr
8006b8e: d514 bpl.n 8006bba <Display+0xbc2>
s = (uint32_t) ((pardata.amplif[Ch2].SENS * 1000.0f) + 0.5f);
8006b90: 4b36 ldr r3, [pc, #216] ; (8006c6c <Display+0xc74>)
8006b92: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006b96: ed9f 7a3e vldr s14, [pc, #248] ; 8006c90 <Display+0xc98>
8006b9a: ee67 7a87 vmul.f32 s15, s15, s14
8006b9e: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006ba2: ee77 7a87 vadd.f32 s15, s15, s14
8006ba6: eefc 7ae7 vcvt.u32.f32 s15, s15
8006baa: ee17 3a90 vmov r3, s15
8006bae: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt2 = 3;
8006bb2: 2303 movs r3, #3
8006bb4: f887 3310 strb.w r3, [r7, #784] ; 0x310
8006bb8: e081 b.n 8006cbe <Display+0xcc6>
}
else if(pardata.amplif[Ch2].SENS < 1000.0f) {
8006bba: 4b2c ldr r3, [pc, #176] ; (8006c6c <Display+0xc74>)
8006bbc: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006bc0: ed9f 7a33 vldr s14, [pc, #204] ; 8006c90 <Display+0xc98>
8006bc4: eef4 7ac7 vcmpe.f32 s15, s14
8006bc8: eef1 fa10 vmrs APSR_nzcv, fpscr
8006bcc: d514 bpl.n 8006bf8 <Display+0xc00>
s = (uint32_t) ((pardata.amplif[Ch2].SENS * 100.0f) + 0.5f);
8006bce: 4b27 ldr r3, [pc, #156] ; (8006c6c <Display+0xc74>)
8006bd0: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006bd4: ed9f 7a2d vldr s14, [pc, #180] ; 8006c8c <Display+0xc94>
8006bd8: ee67 7a87 vmul.f32 s15, s15, s14
8006bdc: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006be0: ee77 7a87 vadd.f32 s15, s15, s14
8006be4: eefc 7ae7 vcvt.u32.f32 s15, s15
8006be8: ee17 3a90 vmov r3, s15
8006bec: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt2 = 2;
8006bf0: 2302 movs r3, #2
8006bf2: f887 3310 strb.w r3, [r7, #784] ; 0x310
8006bf6: e062 b.n 8006cbe <Display+0xcc6>
}
else if(pardata.amplif[Ch2].SENS < 10000.0f) {
8006bf8: 4b1c ldr r3, [pc, #112] ; (8006c6c <Display+0xc74>)
8006bfa: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006bfe: ed9f 7a25 vldr s14, [pc, #148] ; 8006c94 <Display+0xc9c>
8006c02: eef4 7ac7 vcmpe.f32 s15, s14
8006c06: eef1 fa10 vmrs APSR_nzcv, fpscr
8006c0a: d514 bpl.n 8006c36 <Display+0xc3e>
s = (uint32_t) ((pardata.amplif[Ch2].SENS * 10.0f) + 0.5f);
8006c0c: 4b17 ldr r3, [pc, #92] ; (8006c6c <Display+0xc74>)
8006c0e: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006c12: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8006c16: ee67 7a87 vmul.f32 s15, s15, s14
8006c1a: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006c1e: ee77 7a87 vadd.f32 s15, s15, s14
8006c22: eefc 7ae7 vcvt.u32.f32 s15, s15
8006c26: ee17 3a90 vmov r3, s15
8006c2a: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt2 = 1;
8006c2e: 2301 movs r3, #1
8006c30: f887 3310 strb.w r3, [r7, #784] ; 0x310
8006c34: e043 b.n 8006cbe <Display+0xcc6>
}
else if(pardata.amplif[Ch2].SENS < 100000.0f) {
8006c36: 4b0d ldr r3, [pc, #52] ; (8006c6c <Display+0xc74>)
8006c38: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006c3c: ed9f 7a0c vldr s14, [pc, #48] ; 8006c70 <Display+0xc78>
8006c40: eef4 7ac7 vcmpe.f32 s15, s14
8006c44: eef1 fa10 vmrs APSR_nzcv, fpscr
8006c48: d526 bpl.n 8006c98 <Display+0xca0>
s = (uint32_t) ((pardata.amplif[Ch2].SENS) + 0.5f);
8006c4a: 4b08 ldr r3, [pc, #32] ; (8006c6c <Display+0xc74>)
8006c4c: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006c50: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006c54: ee77 7a87 vadd.f32 s15, s15, s14
8006c58: eefc 7ae7 vcvt.u32.f32 s15, s15
8006c5c: ee17 3a90 vmov r3, s15
8006c60: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt2 = 0;
8006c64: 2300 movs r3, #0
8006c66: f887 3310 strb.w r3, [r7, #784] ; 0x310
8006c6a: e028 b.n 8006cbe <Display+0xcc6>
8006c6c: 2006bca8 .word 0x2006bca8
8006c70: 47c35000 .word 0x47c35000
8006c74: 47c34f80 .word 0x47c34f80
8006c78: 0001869f .word 0x0001869f
8006c7c: d1b71759 .word 0xd1b71759
8006c80: 10624dd3 .word 0x10624dd3
8006c84: 51eb851f .word 0x51eb851f
8006c88: cccccccd .word 0xcccccccd
8006c8c: 42c80000 .word 0x42c80000
8006c90: 447a0000 .word 0x447a0000
8006c94: 461c4000 .word 0x461c4000
}
else if(pardata.amplif[Ch2].SENS >= 100000.0f) {
8006c98: 4bd8 ldr r3, [pc, #864] ; (8006ffc <Display+0x1004>)
8006c9a: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006c9e: ed9f 7ad8 vldr s14, [pc, #864] ; 8007000 <Display+0x1008>
8006ca2: eef4 7ac7 vcmpe.f32 s15, s14
8006ca6: eef1 fa10 vmrs APSR_nzcv, fpscr
8006caa: db08 blt.n 8006cbe <Display+0xcc6>
pardata.amplif[Ch2].SENS = 99999.0f;
8006cac: 4bd3 ldr r3, [pc, #844] ; (8006ffc <Display+0x1004>)
8006cae: 4ad5 ldr r2, [pc, #852] ; (8007004 <Display+0x100c>)
8006cb0: 639a str r2, [r3, #56] ; 0x38
s = 99999;
8006cb2: 4bd5 ldr r3, [pc, #852] ; (8007008 <Display+0x1010>)
8006cb4: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt2 = 0;
8006cb8: 2300 movs r3, #0
8006cba: f887 3310 strb.w r3, [r7, #784] ; 0x310
}
idt2 = (s / 10000);
8006cbe: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
8006cc2: 4ad2 ldr r2, [pc, #840] ; (800700c <Display+0x1014>)
8006cc4: fba2 2303 umull r2, r3, r2, r3
8006cc8: 0b5b lsrs r3, r3, #13
8006cca: b2db uxtb r3, r3
8006ccc: f887 3317 strb.w r3, [r7, #791] ; 0x317
iet2 = (s % 10000 / 1000);
8006cd0: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
8006cd4: 4bcd ldr r3, [pc, #820] ; (800700c <Display+0x1014>)
8006cd6: fba3 1302 umull r1, r3, r3, r2
8006cda: 0b5b lsrs r3, r3, #13
8006cdc: f242 7110 movw r1, #10000 ; 0x2710
8006ce0: fb01 f303 mul.w r3, r1, r3
8006ce4: 1ad3 subs r3, r2, r3
8006ce6: 4aca ldr r2, [pc, #808] ; (8007010 <Display+0x1018>)
8006ce8: fba2 2303 umull r2, r3, r2, r3
8006cec: 099b lsrs r3, r3, #6
8006cee: b2db uxtb r3, r3
8006cf0: f887 3316 strb.w r3, [r7, #790] ; 0x316
ies2 = (s % 10000 % 1000 / 100);
8006cf4: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
8006cf8: 4bc4 ldr r3, [pc, #784] ; (800700c <Display+0x1014>)
8006cfa: fba3 1302 umull r1, r3, r3, r2
8006cfe: 0b5b lsrs r3, r3, #13
8006d00: f242 7110 movw r1, #10000 ; 0x2710
8006d04: fb01 f303 mul.w r3, r1, r3
8006d08: 1ad3 subs r3, r2, r3
8006d0a: 4ac1 ldr r2, [pc, #772] ; (8007010 <Display+0x1018>)
8006d0c: fba2 1203 umull r1, r2, r2, r3
8006d10: 0992 lsrs r2, r2, #6
8006d12: f44f 717a mov.w r1, #1000 ; 0x3e8
8006d16: fb01 f202 mul.w r2, r1, r2
8006d1a: 1a9a subs r2, r3, r2
8006d1c: 4bbd ldr r3, [pc, #756] ; (8007014 <Display+0x101c>)
8006d1e: fba3 2302 umull r2, r3, r3, r2
8006d22: 095b lsrs r3, r3, #5
8006d24: b2db uxtb r3, r3
8006d26: f887 3315 strb.w r3, [r7, #789] ; 0x315
ied2 = (s % 10000 % 1000 % 100 / 10);
8006d2a: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
8006d2e: 4ab7 ldr r2, [pc, #732] ; (800700c <Display+0x1014>)
8006d30: fba2 1203 umull r1, r2, r2, r3
8006d34: 0b52 lsrs r2, r2, #13
8006d36: f242 7110 movw r1, #10000 ; 0x2710
8006d3a: fb01 f202 mul.w r2, r1, r2
8006d3e: 1a9a subs r2, r3, r2
8006d40: 4bb3 ldr r3, [pc, #716] ; (8007010 <Display+0x1018>)
8006d42: fba3 1302 umull r1, r3, r3, r2
8006d46: 099b lsrs r3, r3, #6
8006d48: f44f 717a mov.w r1, #1000 ; 0x3e8
8006d4c: fb01 f303 mul.w r3, r1, r3
8006d50: 1ad3 subs r3, r2, r3
8006d52: 4ab0 ldr r2, [pc, #704] ; (8007014 <Display+0x101c>)
8006d54: fba2 1203 umull r1, r2, r2, r3
8006d58: 0952 lsrs r2, r2, #5
8006d5a: 2164 movs r1, #100 ; 0x64
8006d5c: fb01 f202 mul.w r2, r1, r2
8006d60: 1a9a subs r2, r3, r2
8006d62: 4bad ldr r3, [pc, #692] ; (8007018 <Display+0x1020>)
8006d64: fba3 2302 umull r2, r3, r3, r2
8006d68: 08db lsrs r3, r3, #3
8006d6a: b2db uxtb r3, r3
8006d6c: f887 3314 strb.w r3, [r7, #788] ; 0x314
iee2 = (s % 10000 % 1000 % 100 % 10);
8006d70: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
8006d74: 4aa5 ldr r2, [pc, #660] ; (800700c <Display+0x1014>)
8006d76: fba2 1203 umull r1, r2, r2, r3
8006d7a: 0b52 lsrs r2, r2, #13
8006d7c: f242 7110 movw r1, #10000 ; 0x2710
8006d80: fb01 f202 mul.w r2, r1, r2
8006d84: 1a9a subs r2, r3, r2
8006d86: 4ba2 ldr r3, [pc, #648] ; (8007010 <Display+0x1018>)
8006d88: fba3 1302 umull r1, r3, r3, r2
8006d8c: 099b lsrs r3, r3, #6
8006d8e: f44f 717a mov.w r1, #1000 ; 0x3e8
8006d92: fb01 f303 mul.w r3, r1, r3
8006d96: 1ad3 subs r3, r2, r3
8006d98: 4a9e ldr r2, [pc, #632] ; (8007014 <Display+0x101c>)
8006d9a: fba2 1203 umull r1, r2, r2, r3
8006d9e: 0952 lsrs r2, r2, #5
8006da0: 2164 movs r1, #100 ; 0x64
8006da2: fb01 f202 mul.w r2, r1, r2
8006da6: 1a9a subs r2, r3, r2
8006da8: 4b9b ldr r3, [pc, #620] ; (8007018 <Display+0x1020>)
8006daa: fba3 1302 umull r1, r3, r3, r2
8006dae: 08d9 lsrs r1, r3, #3
8006db0: 460b mov r3, r1
8006db2: 009b lsls r3, r3, #2
8006db4: 440b add r3, r1
8006db6: 005b lsls r3, r3, #1
8006db8: 1ad1 subs r1, r2, r3
8006dba: b2cb uxtb r3, r1
8006dbc: f887 3313 strb.w r3, [r7, #787] ; 0x313
p8 = str2;
8006dc0: f107 03e0 add.w r3, r7, #224 ; 0xe0
8006dc4: f8c7 3340 str.w r3, [r7, #832] ; 0x340
if(pardata.amplif[Ch2].SENS < 10.0f) {
8006dc8: 4b8c ldr r3, [pc, #560] ; (8006ffc <Display+0x1004>)
8006dca: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006dce: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8006dd2: eef4 7ac7 vcmpe.f32 s15, s14
8006dd6: eef1 fa10 vmrs APSR_nzcv, fpscr
8006dda: d50b bpl.n 8006df4 <Display+0xdfc>
p8 = FloatToASCII(pardata.amplif[Ch2].SENS, -4);
8006ddc: 4b87 ldr r3, [pc, #540] ; (8006ffc <Display+0x1004>)
8006dde: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006de2: f06f 0003 mvn.w r0, #3
8006de6: eeb0 0a67 vmov.f32 s0, s15
8006dea: f008 fb1d bl 800f428 <FloatToASCII>
8006dee: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8006df2: e055 b.n 8006ea0 <Display+0xea8>
}
else if(pardata.amplif[Ch2].SENS < 100.0f) {
8006df4: 4b81 ldr r3, [pc, #516] ; (8006ffc <Display+0x1004>)
8006df6: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006dfa: ed9f 7a88 vldr s14, [pc, #544] ; 800701c <Display+0x1024>
8006dfe: eef4 7ac7 vcmpe.f32 s15, s14
8006e02: eef1 fa10 vmrs APSR_nzcv, fpscr
8006e06: d50b bpl.n 8006e20 <Display+0xe28>
p8 = FloatToASCII(pardata.amplif[Ch2].SENS, -3);
8006e08: 4b7c ldr r3, [pc, #496] ; (8006ffc <Display+0x1004>)
8006e0a: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006e0e: f06f 0002 mvn.w r0, #2
8006e12: eeb0 0a67 vmov.f32 s0, s15
8006e16: f008 fb07 bl 800f428 <FloatToASCII>
8006e1a: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8006e1e: e03f b.n 8006ea0 <Display+0xea8>
}
else if(pardata.amplif[Ch2].SENS < 1000.0f) {
8006e20: 4b76 ldr r3, [pc, #472] ; (8006ffc <Display+0x1004>)
8006e22: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006e26: ed9f 7a7e vldr s14, [pc, #504] ; 8007020 <Display+0x1028>
8006e2a: eef4 7ac7 vcmpe.f32 s15, s14
8006e2e: eef1 fa10 vmrs APSR_nzcv, fpscr
8006e32: d50b bpl.n 8006e4c <Display+0xe54>
p8 = FloatToASCII(pardata.amplif[Ch2].SENS, -2);
8006e34: 4b71 ldr r3, [pc, #452] ; (8006ffc <Display+0x1004>)
8006e36: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006e3a: f06f 0001 mvn.w r0, #1
8006e3e: eeb0 0a67 vmov.f32 s0, s15
8006e42: f008 faf1 bl 800f428 <FloatToASCII>
8006e46: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8006e4a: e029 b.n 8006ea0 <Display+0xea8>
}
else if(pardata.amplif[Ch2].SENS < 10000.0f) {
8006e4c: 4b6b ldr r3, [pc, #428] ; (8006ffc <Display+0x1004>)
8006e4e: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006e52: ed9f 7a74 vldr s14, [pc, #464] ; 8007024 <Display+0x102c>
8006e56: eef4 7ac7 vcmpe.f32 s15, s14
8006e5a: eef1 fa10 vmrs APSR_nzcv, fpscr
8006e5e: d50b bpl.n 8006e78 <Display+0xe80>
p8 = FloatToASCII(pardata.amplif[Ch2].SENS, -1);
8006e60: 4b66 ldr r3, [pc, #408] ; (8006ffc <Display+0x1004>)
8006e62: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006e66: f04f 30ff mov.w r0, #4294967295
8006e6a: eeb0 0a67 vmov.f32 s0, s15
8006e6e: f008 fadb bl 800f428 <FloatToASCII>
8006e72: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8006e76: e013 b.n 8006ea0 <Display+0xea8>
}
else if(pardata.amplif[Ch2].SENS < 100000.0f) {
8006e78: 4b60 ldr r3, [pc, #384] ; (8006ffc <Display+0x1004>)
8006e7a: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006e7e: ed9f 7a60 vldr s14, [pc, #384] ; 8007000 <Display+0x1008>
8006e82: eef4 7ac7 vcmpe.f32 s15, s14
8006e86: eef1 fa10 vmrs APSR_nzcv, fpscr
8006e8a: d509 bpl.n 8006ea0 <Display+0xea8>
p8 = FloatToASCII(pardata.amplif[Ch2].SENS, 0);
8006e8c: 4b5b ldr r3, [pc, #364] ; (8006ffc <Display+0x1004>)
8006e8e: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006e92: 2000 movs r0, #0
8006e94: eeb0 0a67 vmov.f32 s0, s15
8006e98: f008 fac6 bl 800f428 <FloatToASCII>
8006e9c: f8c7 0340 str.w r0, [r7, #832] ; 0x340
}
strcpy((void *) str2, (void *) p8);
8006ea0: f107 03e0 add.w r3, r7, #224 ; 0xe0
8006ea4: f8d7 1340 ldr.w r1, [r7, #832] ; 0x340
8006ea8: 4618 mov r0, r3
8006eaa: f00f fae2 bl 8016472 <strcpy>
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
if(pardata.amplif[Ch3].SENS <= 0.0f) {
8006eae: 4b53 ldr r3, [pc, #332] ; (8006ffc <Display+0x1004>)
8006eb0: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8006eb4: eef5 7ac0 vcmpe.f32 s15, #0.0
8006eb8: eef1 fa10 vmrs APSR_nzcv, fpscr
8006ebc: d807 bhi.n 8006ece <Display+0xed6>
pardata.amplif[Ch3].SENS = 1.0f;
8006ebe: 4b4f ldr r3, [pc, #316] ; (8006ffc <Display+0x1004>)
8006ec0: f04f 527e mov.w r2, #1065353216 ; 0x3f800000
8006ec4: 659a str r2, [r3, #88] ; 0x58
s = 10000;
8006ec6: f242 7310 movw r3, #10000 ; 0x2710
8006eca: f8c7 3344 str.w r3, [r7, #836] ; 0x344
}
if(pardata.amplif[Ch3].SENS < 10.0f) {
8006ece: 4b4b ldr r3, [pc, #300] ; (8006ffc <Display+0x1004>)
8006ed0: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8006ed4: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8006ed8: eef4 7ac7 vcmpe.f32 s15, s14
8006edc: eef1 fa10 vmrs APSR_nzcv, fpscr
8006ee0: d514 bpl.n 8006f0c <Display+0xf14>
s = (uint32_t) ((pardata.amplif[Ch3].SENS * 10000.0f) + 0.5f);
8006ee2: 4b46 ldr r3, [pc, #280] ; (8006ffc <Display+0x1004>)
8006ee4: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8006ee8: ed9f 7a4e vldr s14, [pc, #312] ; 8007024 <Display+0x102c>
8006eec: ee67 7a87 vmul.f32 s15, s15, s14
8006ef0: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006ef4: ee77 7a87 vadd.f32 s15, s15, s14
8006ef8: eefc 7ae7 vcvt.u32.f32 s15, s15
8006efc: ee17 3a90 vmov r3, s15
8006f00: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt3 = 4;
8006f04: 2304 movs r3, #4
8006f06: f887 3308 strb.w r3, [r7, #776] ; 0x308
8006f0a: e0a0 b.n 800704e <Display+0x1056>
}
else if(pardata.amplif[Ch3].SENS < 100.0f) {
8006f0c: 4b3b ldr r3, [pc, #236] ; (8006ffc <Display+0x1004>)
8006f0e: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8006f12: ed9f 7a42 vldr s14, [pc, #264] ; 800701c <Display+0x1024>
8006f16: eef4 7ac7 vcmpe.f32 s15, s14
8006f1a: eef1 fa10 vmrs APSR_nzcv, fpscr
8006f1e: d514 bpl.n 8006f4a <Display+0xf52>
s = (uint32_t) ((pardata.amplif[Ch3].SENS * 1000.0f) + 0.5f);
8006f20: 4b36 ldr r3, [pc, #216] ; (8006ffc <Display+0x1004>)
8006f22: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8006f26: ed9f 7a3e vldr s14, [pc, #248] ; 8007020 <Display+0x1028>
8006f2a: ee67 7a87 vmul.f32 s15, s15, s14
8006f2e: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006f32: ee77 7a87 vadd.f32 s15, s15, s14
8006f36: eefc 7ae7 vcvt.u32.f32 s15, s15
8006f3a: ee17 3a90 vmov r3, s15
8006f3e: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt3 = 3;
8006f42: 2303 movs r3, #3
8006f44: f887 3308 strb.w r3, [r7, #776] ; 0x308
8006f48: e081 b.n 800704e <Display+0x1056>
}
else if(pardata.amplif[Ch3].SENS < 1000.0f) {
8006f4a: 4b2c ldr r3, [pc, #176] ; (8006ffc <Display+0x1004>)
8006f4c: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8006f50: ed9f 7a33 vldr s14, [pc, #204] ; 8007020 <Display+0x1028>
8006f54: eef4 7ac7 vcmpe.f32 s15, s14
8006f58: eef1 fa10 vmrs APSR_nzcv, fpscr
8006f5c: d514 bpl.n 8006f88 <Display+0xf90>
s = (uint32_t) ((pardata.amplif[Ch3].SENS * 100.0f) + 0.5f);
8006f5e: 4b27 ldr r3, [pc, #156] ; (8006ffc <Display+0x1004>)
8006f60: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8006f64: ed9f 7a2d vldr s14, [pc, #180] ; 800701c <Display+0x1024>
8006f68: ee67 7a87 vmul.f32 s15, s15, s14
8006f6c: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006f70: ee77 7a87 vadd.f32 s15, s15, s14
8006f74: eefc 7ae7 vcvt.u32.f32 s15, s15
8006f78: ee17 3a90 vmov r3, s15
8006f7c: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt3 = 2;
8006f80: 2302 movs r3, #2
8006f82: f887 3308 strb.w r3, [r7, #776] ; 0x308
8006f86: e062 b.n 800704e <Display+0x1056>
}
else if(pardata.amplif[Ch3].SENS < 10000.0f) {
8006f88: 4b1c ldr r3, [pc, #112] ; (8006ffc <Display+0x1004>)
8006f8a: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8006f8e: ed9f 7a25 vldr s14, [pc, #148] ; 8007024 <Display+0x102c>
8006f92: eef4 7ac7 vcmpe.f32 s15, s14
8006f96: eef1 fa10 vmrs APSR_nzcv, fpscr
8006f9a: d514 bpl.n 8006fc6 <Display+0xfce>
s = (uint32_t) ((pardata.amplif[Ch3].SENS * 10.0f) + 0.5f);
8006f9c: 4b17 ldr r3, [pc, #92] ; (8006ffc <Display+0x1004>)
8006f9e: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8006fa2: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8006fa6: ee67 7a87 vmul.f32 s15, s15, s14
8006faa: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006fae: ee77 7a87 vadd.f32 s15, s15, s14
8006fb2: eefc 7ae7 vcvt.u32.f32 s15, s15
8006fb6: ee17 3a90 vmov r3, s15
8006fba: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt3 = 1;
8006fbe: 2301 movs r3, #1
8006fc0: f887 3308 strb.w r3, [r7, #776] ; 0x308
8006fc4: e043 b.n 800704e <Display+0x1056>
}
else if(pardata.amplif[Ch3].SENS < 100000.0f) {
8006fc6: 4b0d ldr r3, [pc, #52] ; (8006ffc <Display+0x1004>)
8006fc8: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8006fcc: ed9f 7a0c vldr s14, [pc, #48] ; 8007000 <Display+0x1008>
8006fd0: eef4 7ac7 vcmpe.f32 s15, s14
8006fd4: eef1 fa10 vmrs APSR_nzcv, fpscr
8006fd8: d526 bpl.n 8007028 <Display+0x1030>
s = (uint32_t) ((pardata.amplif[Ch3].SENS) + 0.5f);
8006fda: 4b08 ldr r3, [pc, #32] ; (8006ffc <Display+0x1004>)
8006fdc: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8006fe0: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006fe4: ee77 7a87 vadd.f32 s15, s15, s14
8006fe8: eefc 7ae7 vcvt.u32.f32 s15, s15
8006fec: ee17 3a90 vmov r3, s15
8006ff0: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt3 = 0;
8006ff4: 2300 movs r3, #0
8006ff6: f887 3308 strb.w r3, [r7, #776] ; 0x308
8006ffa: e028 b.n 800704e <Display+0x1056>
8006ffc: 2006bca8 .word 0x2006bca8
8007000: 47c35000 .word 0x47c35000
8007004: 47c34f80 .word 0x47c34f80
8007008: 0001869f .word 0x0001869f
800700c: d1b71759 .word 0xd1b71759
8007010: 10624dd3 .word 0x10624dd3
8007014: 51eb851f .word 0x51eb851f
8007018: cccccccd .word 0xcccccccd
800701c: 42c80000 .word 0x42c80000
8007020: 447a0000 .word 0x447a0000
8007024: 461c4000 .word 0x461c4000
}
else if(pardata.amplif[Ch3].SENS >= 100000.0f) {
8007028: 4bd8 ldr r3, [pc, #864] ; (800738c <Display+0x1394>)
800702a: edd3 7a16 vldr s15, [r3, #88] ; 0x58
800702e: ed9f 7ad8 vldr s14, [pc, #864] ; 8007390 <Display+0x1398>
8007032: eef4 7ac7 vcmpe.f32 s15, s14
8007036: eef1 fa10 vmrs APSR_nzcv, fpscr
800703a: db08 blt.n 800704e <Display+0x1056>
pardata.amplif[Ch3].SENS = 99999.0f;
800703c: 4bd3 ldr r3, [pc, #844] ; (800738c <Display+0x1394>)
800703e: 4ad5 ldr r2, [pc, #852] ; (8007394 <Display+0x139c>)
8007040: 659a str r2, [r3, #88] ; 0x58
s = 99999;
8007042: 4bd5 ldr r3, [pc, #852] ; (8007398 <Display+0x13a0>)
8007044: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt3 = 0;
8007048: 2300 movs r3, #0
800704a: f887 3308 strb.w r3, [r7, #776] ; 0x308
}
idt3 = (s / 10000);
800704e: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
8007052: 4ad2 ldr r2, [pc, #840] ; (800739c <Display+0x13a4>)
8007054: fba2 2303 umull r2, r3, r2, r3
8007058: 0b5b lsrs r3, r3, #13
800705a: b2db uxtb r3, r3
800705c: f887 330f strb.w r3, [r7, #783] ; 0x30f
iet3 = (s % 10000 / 1000);
8007060: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
8007064: 4bcd ldr r3, [pc, #820] ; (800739c <Display+0x13a4>)
8007066: fba3 1302 umull r1, r3, r3, r2
800706a: 0b5b lsrs r3, r3, #13
800706c: f242 7110 movw r1, #10000 ; 0x2710
8007070: fb01 f303 mul.w r3, r1, r3
8007074: 1ad3 subs r3, r2, r3
8007076: 4aca ldr r2, [pc, #808] ; (80073a0 <Display+0x13a8>)
8007078: fba2 2303 umull r2, r3, r2, r3
800707c: 099b lsrs r3, r3, #6
800707e: b2db uxtb r3, r3
8007080: f887 330e strb.w r3, [r7, #782] ; 0x30e
ies3 = (s % 10000 % 1000 / 100);
8007084: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
8007088: 4bc4 ldr r3, [pc, #784] ; (800739c <Display+0x13a4>)
800708a: fba3 1302 umull r1, r3, r3, r2
800708e: 0b5b lsrs r3, r3, #13
8007090: f242 7110 movw r1, #10000 ; 0x2710
8007094: fb01 f303 mul.w r3, r1, r3
8007098: 1ad3 subs r3, r2, r3
800709a: 4ac1 ldr r2, [pc, #772] ; (80073a0 <Display+0x13a8>)
800709c: fba2 1203 umull r1, r2, r2, r3
80070a0: 0992 lsrs r2, r2, #6
80070a2: f44f 717a mov.w r1, #1000 ; 0x3e8
80070a6: fb01 f202 mul.w r2, r1, r2
80070aa: 1a9a subs r2, r3, r2
80070ac: 4bbd ldr r3, [pc, #756] ; (80073a4 <Display+0x13ac>)
80070ae: fba3 2302 umull r2, r3, r3, r2
80070b2: 095b lsrs r3, r3, #5
80070b4: b2db uxtb r3, r3
80070b6: f887 330d strb.w r3, [r7, #781] ; 0x30d
ied3 = (s % 10000 % 1000 % 100 / 10);
80070ba: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
80070be: 4ab7 ldr r2, [pc, #732] ; (800739c <Display+0x13a4>)
80070c0: fba2 1203 umull r1, r2, r2, r3
80070c4: 0b52 lsrs r2, r2, #13
80070c6: f242 7110 movw r1, #10000 ; 0x2710
80070ca: fb01 f202 mul.w r2, r1, r2
80070ce: 1a9a subs r2, r3, r2
80070d0: 4bb3 ldr r3, [pc, #716] ; (80073a0 <Display+0x13a8>)
80070d2: fba3 1302 umull r1, r3, r3, r2
80070d6: 099b lsrs r3, r3, #6
80070d8: f44f 717a mov.w r1, #1000 ; 0x3e8
80070dc: fb01 f303 mul.w r3, r1, r3
80070e0: 1ad3 subs r3, r2, r3
80070e2: 4ab0 ldr r2, [pc, #704] ; (80073a4 <Display+0x13ac>)
80070e4: fba2 1203 umull r1, r2, r2, r3
80070e8: 0952 lsrs r2, r2, #5
80070ea: 2164 movs r1, #100 ; 0x64
80070ec: fb01 f202 mul.w r2, r1, r2
80070f0: 1a9a subs r2, r3, r2
80070f2: 4bad ldr r3, [pc, #692] ; (80073a8 <Display+0x13b0>)
80070f4: fba3 2302 umull r2, r3, r3, r2
80070f8: 08db lsrs r3, r3, #3
80070fa: b2db uxtb r3, r3
80070fc: f887 330c strb.w r3, [r7, #780] ; 0x30c
iee3 = (s % 10000 % 1000 % 100 % 10);
8007100: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
8007104: 4aa5 ldr r2, [pc, #660] ; (800739c <Display+0x13a4>)
8007106: fba2 1203 umull r1, r2, r2, r3
800710a: 0b52 lsrs r2, r2, #13
800710c: f242 7110 movw r1, #10000 ; 0x2710
8007110: fb01 f202 mul.w r2, r1, r2
8007114: 1a9a subs r2, r3, r2
8007116: 4ba2 ldr r3, [pc, #648] ; (80073a0 <Display+0x13a8>)
8007118: fba3 1302 umull r1, r3, r3, r2
800711c: 099b lsrs r3, r3, #6
800711e: f44f 717a mov.w r1, #1000 ; 0x3e8
8007122: fb01 f303 mul.w r3, r1, r3
8007126: 1ad3 subs r3, r2, r3
8007128: 4a9e ldr r2, [pc, #632] ; (80073a4 <Display+0x13ac>)
800712a: fba2 1203 umull r1, r2, r2, r3
800712e: 0952 lsrs r2, r2, #5
8007130: 2164 movs r1, #100 ; 0x64
8007132: fb01 f202 mul.w r2, r1, r2
8007136: 1a9a subs r2, r3, r2
8007138: 4b9b ldr r3, [pc, #620] ; (80073a8 <Display+0x13b0>)
800713a: fba3 1302 umull r1, r3, r3, r2
800713e: 08d9 lsrs r1, r3, #3
8007140: 460b mov r3, r1
8007142: 009b lsls r3, r3, #2
8007144: 440b add r3, r1
8007146: 005b lsls r3, r3, #1
8007148: 1ad1 subs r1, r2, r3
800714a: b2cb uxtb r3, r1
800714c: f887 330b strb.w r3, [r7, #779] ; 0x30b
p8 = str3;
8007150: f107 03a4 add.w r3, r7, #164 ; 0xa4
8007154: f8c7 3340 str.w r3, [r7, #832] ; 0x340
if(pardata.amplif[Ch3].SENS < 10.0f) {
8007158: 4b8c ldr r3, [pc, #560] ; (800738c <Display+0x1394>)
800715a: edd3 7a16 vldr s15, [r3, #88] ; 0x58
800715e: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8007162: eef4 7ac7 vcmpe.f32 s15, s14
8007166: eef1 fa10 vmrs APSR_nzcv, fpscr
800716a: d50b bpl.n 8007184 <Display+0x118c>
p8 = FloatToASCII(pardata.amplif[Ch3].SENS, -4);
800716c: 4b87 ldr r3, [pc, #540] ; (800738c <Display+0x1394>)
800716e: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8007172: f06f 0003 mvn.w r0, #3
8007176: eeb0 0a67 vmov.f32 s0, s15
800717a: f008 f955 bl 800f428 <FloatToASCII>
800717e: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8007182: e055 b.n 8007230 <Display+0x1238>
}
else if(pardata.amplif[Ch3].SENS < 100.0f) {
8007184: 4b81 ldr r3, [pc, #516] ; (800738c <Display+0x1394>)
8007186: edd3 7a16 vldr s15, [r3, #88] ; 0x58
800718a: ed9f 7a88 vldr s14, [pc, #544] ; 80073ac <Display+0x13b4>
800718e: eef4 7ac7 vcmpe.f32 s15, s14
8007192: eef1 fa10 vmrs APSR_nzcv, fpscr
8007196: d50b bpl.n 80071b0 <Display+0x11b8>
p8 = FloatToASCII(pardata.amplif[Ch3].SENS, -3);
8007198: 4b7c ldr r3, [pc, #496] ; (800738c <Display+0x1394>)
800719a: edd3 7a16 vldr s15, [r3, #88] ; 0x58
800719e: f06f 0002 mvn.w r0, #2
80071a2: eeb0 0a67 vmov.f32 s0, s15
80071a6: f008 f93f bl 800f428 <FloatToASCII>
80071aa: f8c7 0340 str.w r0, [r7, #832] ; 0x340
80071ae: e03f b.n 8007230 <Display+0x1238>
}
else if(pardata.amplif[Ch3].SENS < 1000.0f) {
80071b0: 4b76 ldr r3, [pc, #472] ; (800738c <Display+0x1394>)
80071b2: edd3 7a16 vldr s15, [r3, #88] ; 0x58
80071b6: ed9f 7a7e vldr s14, [pc, #504] ; 80073b0 <Display+0x13b8>
80071ba: eef4 7ac7 vcmpe.f32 s15, s14
80071be: eef1 fa10 vmrs APSR_nzcv, fpscr
80071c2: d50b bpl.n 80071dc <Display+0x11e4>
p8 = FloatToASCII(pardata.amplif[Ch3].SENS, -2);
80071c4: 4b71 ldr r3, [pc, #452] ; (800738c <Display+0x1394>)
80071c6: edd3 7a16 vldr s15, [r3, #88] ; 0x58
80071ca: f06f 0001 mvn.w r0, #1
80071ce: eeb0 0a67 vmov.f32 s0, s15
80071d2: f008 f929 bl 800f428 <FloatToASCII>
80071d6: f8c7 0340 str.w r0, [r7, #832] ; 0x340
80071da: e029 b.n 8007230 <Display+0x1238>
}
else if(pardata.amplif[Ch3].SENS < 10000.0f) {
80071dc: 4b6b ldr r3, [pc, #428] ; (800738c <Display+0x1394>)
80071de: edd3 7a16 vldr s15, [r3, #88] ; 0x58
80071e2: ed9f 7a74 vldr s14, [pc, #464] ; 80073b4 <Display+0x13bc>
80071e6: eef4 7ac7 vcmpe.f32 s15, s14
80071ea: eef1 fa10 vmrs APSR_nzcv, fpscr
80071ee: d50b bpl.n 8007208 <Display+0x1210>
p8 = FloatToASCII(pardata.amplif[Ch3].SENS, -1);
80071f0: 4b66 ldr r3, [pc, #408] ; (800738c <Display+0x1394>)
80071f2: edd3 7a16 vldr s15, [r3, #88] ; 0x58
80071f6: f04f 30ff mov.w r0, #4294967295
80071fa: eeb0 0a67 vmov.f32 s0, s15
80071fe: f008 f913 bl 800f428 <FloatToASCII>
8007202: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8007206: e013 b.n 8007230 <Display+0x1238>
}
else if(pardata.amplif[Ch3].SENS < 100000.0f) {
8007208: 4b60 ldr r3, [pc, #384] ; (800738c <Display+0x1394>)
800720a: edd3 7a16 vldr s15, [r3, #88] ; 0x58
800720e: ed9f 7a60 vldr s14, [pc, #384] ; 8007390 <Display+0x1398>
8007212: eef4 7ac7 vcmpe.f32 s15, s14
8007216: eef1 fa10 vmrs APSR_nzcv, fpscr
800721a: d509 bpl.n 8007230 <Display+0x1238>
p8 = FloatToASCII(pardata.amplif[Ch3].SENS, 0);
800721c: 4b5b ldr r3, [pc, #364] ; (800738c <Display+0x1394>)
800721e: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8007222: 2000 movs r0, #0
8007224: eeb0 0a67 vmov.f32 s0, s15
8007228: f008 f8fe bl 800f428 <FloatToASCII>
800722c: f8c7 0340 str.w r0, [r7, #832] ; 0x340
}
strcpy((void *) str3, (void *) p8);
8007230: f107 03a4 add.w r3, r7, #164 ; 0xa4
8007234: f8d7 1340 ldr.w r1, [r7, #832] ; 0x340
8007238: 4618 mov r0, r3
800723a: f00f f91a bl 8016472 <strcpy>
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
if(pardata.amplif[Ch4].SENS <= 0.0f) {
800723e: 4b53 ldr r3, [pc, #332] ; (800738c <Display+0x1394>)
8007240: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007244: eef5 7ac0 vcmpe.f32 s15, #0.0
8007248: eef1 fa10 vmrs APSR_nzcv, fpscr
800724c: d807 bhi.n 800725e <Display+0x1266>
pardata.amplif[Ch4].SENS = 1.0f;
800724e: 4b4f ldr r3, [pc, #316] ; (800738c <Display+0x1394>)
8007250: f04f 527e mov.w r2, #1065353216 ; 0x3f800000
8007254: 679a str r2, [r3, #120] ; 0x78
s = 10000;
8007256: f242 7310 movw r3, #10000 ; 0x2710
800725a: f8c7 3344 str.w r3, [r7, #836] ; 0x344
}
if(pardata.amplif[Ch4].SENS < 10.0f) {
800725e: 4b4b ldr r3, [pc, #300] ; (800738c <Display+0x1394>)
8007260: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007264: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8007268: eef4 7ac7 vcmpe.f32 s15, s14
800726c: eef1 fa10 vmrs APSR_nzcv, fpscr
8007270: d514 bpl.n 800729c <Display+0x12a4>
s = (uint32_t) ((pardata.amplif[Ch4].SENS * 10000.0f) + 0.5f);
8007272: 4b46 ldr r3, [pc, #280] ; (800738c <Display+0x1394>)
8007274: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007278: ed9f 7a4e vldr s14, [pc, #312] ; 80073b4 <Display+0x13bc>
800727c: ee67 7a87 vmul.f32 s15, s15, s14
8007280: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8007284: ee77 7a87 vadd.f32 s15, s15, s14
8007288: eefc 7ae7 vcvt.u32.f32 s15, s15
800728c: ee17 3a90 vmov r3, s15
8007290: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt4 = 4;
8007294: 2304 movs r3, #4
8007296: f887 3300 strb.w r3, [r7, #768] ; 0x300
800729a: e0a0 b.n 80073de <Display+0x13e6>
}
else if(pardata.amplif[Ch4].SENS < 100.0f) {
800729c: 4b3b ldr r3, [pc, #236] ; (800738c <Display+0x1394>)
800729e: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80072a2: ed9f 7a42 vldr s14, [pc, #264] ; 80073ac <Display+0x13b4>
80072a6: eef4 7ac7 vcmpe.f32 s15, s14
80072aa: eef1 fa10 vmrs APSR_nzcv, fpscr
80072ae: d514 bpl.n 80072da <Display+0x12e2>
s = (uint32_t) ((pardata.amplif[Ch4].SENS * 1000.0f) + 0.5f);
80072b0: 4b36 ldr r3, [pc, #216] ; (800738c <Display+0x1394>)
80072b2: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80072b6: ed9f 7a3e vldr s14, [pc, #248] ; 80073b0 <Display+0x13b8>
80072ba: ee67 7a87 vmul.f32 s15, s15, s14
80072be: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
80072c2: ee77 7a87 vadd.f32 s15, s15, s14
80072c6: eefc 7ae7 vcvt.u32.f32 s15, s15
80072ca: ee17 3a90 vmov r3, s15
80072ce: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt4 = 3;
80072d2: 2303 movs r3, #3
80072d4: f887 3300 strb.w r3, [r7, #768] ; 0x300
80072d8: e081 b.n 80073de <Display+0x13e6>
}
else if(pardata.amplif[Ch4].SENS < 1000.0f) {
80072da: 4b2c ldr r3, [pc, #176] ; (800738c <Display+0x1394>)
80072dc: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80072e0: ed9f 7a33 vldr s14, [pc, #204] ; 80073b0 <Display+0x13b8>
80072e4: eef4 7ac7 vcmpe.f32 s15, s14
80072e8: eef1 fa10 vmrs APSR_nzcv, fpscr
80072ec: d514 bpl.n 8007318 <Display+0x1320>
s = (uint32_t) ((pardata.amplif[Ch4].SENS * 100.0f) + 0.5f);
80072ee: 4b27 ldr r3, [pc, #156] ; (800738c <Display+0x1394>)
80072f0: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80072f4: ed9f 7a2d vldr s14, [pc, #180] ; 80073ac <Display+0x13b4>
80072f8: ee67 7a87 vmul.f32 s15, s15, s14
80072fc: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8007300: ee77 7a87 vadd.f32 s15, s15, s14
8007304: eefc 7ae7 vcvt.u32.f32 s15, s15
8007308: ee17 3a90 vmov r3, s15
800730c: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt4 = 2;
8007310: 2302 movs r3, #2
8007312: f887 3300 strb.w r3, [r7, #768] ; 0x300
8007316: e062 b.n 80073de <Display+0x13e6>
}
else if(pardata.amplif[Ch4].SENS < 10000.0f) {
8007318: 4b1c ldr r3, [pc, #112] ; (800738c <Display+0x1394>)
800731a: edd3 7a1e vldr s15, [r3, #120] ; 0x78
800731e: ed9f 7a25 vldr s14, [pc, #148] ; 80073b4 <Display+0x13bc>
8007322: eef4 7ac7 vcmpe.f32 s15, s14
8007326: eef1 fa10 vmrs APSR_nzcv, fpscr
800732a: d514 bpl.n 8007356 <Display+0x135e>
s = (uint32_t) ((pardata.amplif[Ch4].SENS * 10.0f) + 0.5f);
800732c: 4b17 ldr r3, [pc, #92] ; (800738c <Display+0x1394>)
800732e: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007332: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8007336: ee67 7a87 vmul.f32 s15, s15, s14
800733a: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800733e: ee77 7a87 vadd.f32 s15, s15, s14
8007342: eefc 7ae7 vcvt.u32.f32 s15, s15
8007346: ee17 3a90 vmov r3, s15
800734a: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt4 = 1;
800734e: 2301 movs r3, #1
8007350: f887 3300 strb.w r3, [r7, #768] ; 0x300
8007354: e043 b.n 80073de <Display+0x13e6>
}
else if(pardata.amplif[Ch4].SENS < 100000.0f) {
8007356: 4b0d ldr r3, [pc, #52] ; (800738c <Display+0x1394>)
8007358: edd3 7a1e vldr s15, [r3, #120] ; 0x78
800735c: ed9f 7a0c vldr s14, [pc, #48] ; 8007390 <Display+0x1398>
8007360: eef4 7ac7 vcmpe.f32 s15, s14
8007364: eef1 fa10 vmrs APSR_nzcv, fpscr
8007368: d526 bpl.n 80073b8 <Display+0x13c0>
s = (uint32_t) ((pardata.amplif[Ch4].SENS) + 0.5f);
800736a: 4b08 ldr r3, [pc, #32] ; (800738c <Display+0x1394>)
800736c: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007370: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8007374: ee77 7a87 vadd.f32 s15, s15, s14
8007378: eefc 7ae7 vcvt.u32.f32 s15, s15
800737c: ee17 3a90 vmov r3, s15
8007380: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt4 = 0;
8007384: 2300 movs r3, #0
8007386: f887 3300 strb.w r3, [r7, #768] ; 0x300
800738a: e028 b.n 80073de <Display+0x13e6>
800738c: 2006bca8 .word 0x2006bca8
8007390: 47c35000 .word 0x47c35000
8007394: 47c34f80 .word 0x47c34f80
8007398: 0001869f .word 0x0001869f
800739c: d1b71759 .word 0xd1b71759
80073a0: 10624dd3 .word 0x10624dd3
80073a4: 51eb851f .word 0x51eb851f
80073a8: cccccccd .word 0xcccccccd
80073ac: 42c80000 .word 0x42c80000
80073b0: 447a0000 .word 0x447a0000
80073b4: 461c4000 .word 0x461c4000
}
else if(pardata.amplif[Ch4].SENS >= 100000.0f) {
80073b8: 4bc9 ldr r3, [pc, #804] ; (80076e0 <Display+0x16e8>)
80073ba: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80073be: ed9f 7ac9 vldr s14, [pc, #804] ; 80076e4 <Display+0x16ec>
80073c2: eef4 7ac7 vcmpe.f32 s15, s14
80073c6: eef1 fa10 vmrs APSR_nzcv, fpscr
80073ca: db08 blt.n 80073de <Display+0x13e6>
pardata.amplif[Ch4].SENS = 99999.0f;
80073cc: 4bc4 ldr r3, [pc, #784] ; (80076e0 <Display+0x16e8>)
80073ce: 4ac6 ldr r2, [pc, #792] ; (80076e8 <Display+0x16f0>)
80073d0: 679a str r2, [r3, #120] ; 0x78
s = 99999;
80073d2: 4bc6 ldr r3, [pc, #792] ; (80076ec <Display+0x16f4>)
80073d4: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt4 = 0;
80073d8: 2300 movs r3, #0
80073da: f887 3300 strb.w r3, [r7, #768] ; 0x300
}
idt4 = (s / 10000);
80073de: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
80073e2: 4ac3 ldr r2, [pc, #780] ; (80076f0 <Display+0x16f8>)
80073e4: fba2 2303 umull r2, r3, r2, r3
80073e8: 0b5b lsrs r3, r3, #13
80073ea: b2db uxtb r3, r3
80073ec: f887 3307 strb.w r3, [r7, #775] ; 0x307
iet4 = (s % 10000 / 1000);
80073f0: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
80073f4: 4bbe ldr r3, [pc, #760] ; (80076f0 <Display+0x16f8>)
80073f6: fba3 1302 umull r1, r3, r3, r2
80073fa: 0b5b lsrs r3, r3, #13
80073fc: f242 7110 movw r1, #10000 ; 0x2710
8007400: fb01 f303 mul.w r3, r1, r3
8007404: 1ad3 subs r3, r2, r3
8007406: 4abb ldr r2, [pc, #748] ; (80076f4 <Display+0x16fc>)
8007408: fba2 2303 umull r2, r3, r2, r3
800740c: 099b lsrs r3, r3, #6
800740e: b2db uxtb r3, r3
8007410: f887 3306 strb.w r3, [r7, #774] ; 0x306
ies4 = (s % 10000 % 1000 / 100);
8007414: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
8007418: 4bb5 ldr r3, [pc, #724] ; (80076f0 <Display+0x16f8>)
800741a: fba3 1302 umull r1, r3, r3, r2
800741e: 0b5b lsrs r3, r3, #13
8007420: f242 7110 movw r1, #10000 ; 0x2710
8007424: fb01 f303 mul.w r3, r1, r3
8007428: 1ad3 subs r3, r2, r3
800742a: 4ab2 ldr r2, [pc, #712] ; (80076f4 <Display+0x16fc>)
800742c: fba2 1203 umull r1, r2, r2, r3
8007430: 0992 lsrs r2, r2, #6
8007432: f44f 717a mov.w r1, #1000 ; 0x3e8
8007436: fb01 f202 mul.w r2, r1, r2
800743a: 1a9a subs r2, r3, r2
800743c: 4bae ldr r3, [pc, #696] ; (80076f8 <Display+0x1700>)
800743e: fba3 2302 umull r2, r3, r3, r2
8007442: 095b lsrs r3, r3, #5
8007444: b2db uxtb r3, r3
8007446: f887 3305 strb.w r3, [r7, #773] ; 0x305
ied4 = (s % 10000 % 1000 % 100 / 10);
800744a: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
800744e: 4aa8 ldr r2, [pc, #672] ; (80076f0 <Display+0x16f8>)
8007450: fba2 1203 umull r1, r2, r2, r3
8007454: 0b52 lsrs r2, r2, #13
8007456: f242 7110 movw r1, #10000 ; 0x2710
800745a: fb01 f202 mul.w r2, r1, r2
800745e: 1a9a subs r2, r3, r2
8007460: 4ba4 ldr r3, [pc, #656] ; (80076f4 <Display+0x16fc>)
8007462: fba3 1302 umull r1, r3, r3, r2
8007466: 099b lsrs r3, r3, #6
8007468: f44f 717a mov.w r1, #1000 ; 0x3e8
800746c: fb01 f303 mul.w r3, r1, r3
8007470: 1ad3 subs r3, r2, r3
8007472: 4aa1 ldr r2, [pc, #644] ; (80076f8 <Display+0x1700>)
8007474: fba2 1203 umull r1, r2, r2, r3
8007478: 0952 lsrs r2, r2, #5
800747a: 2164 movs r1, #100 ; 0x64
800747c: fb01 f202 mul.w r2, r1, r2
8007480: 1a9a subs r2, r3, r2
8007482: 4b9e ldr r3, [pc, #632] ; (80076fc <Display+0x1704>)
8007484: fba3 2302 umull r2, r3, r3, r2
8007488: 08db lsrs r3, r3, #3
800748a: b2db uxtb r3, r3
800748c: f887 3304 strb.w r3, [r7, #772] ; 0x304
iee4 = (s % 10000 % 1000 % 100 % 10);
8007490: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
8007494: 4a96 ldr r2, [pc, #600] ; (80076f0 <Display+0x16f8>)
8007496: fba2 1203 umull r1, r2, r2, r3
800749a: 0b52 lsrs r2, r2, #13
800749c: f242 7110 movw r1, #10000 ; 0x2710
80074a0: fb01 f202 mul.w r2, r1, r2
80074a4: 1a9a subs r2, r3, r2
80074a6: 4b93 ldr r3, [pc, #588] ; (80076f4 <Display+0x16fc>)
80074a8: fba3 1302 umull r1, r3, r3, r2
80074ac: 099b lsrs r3, r3, #6
80074ae: f44f 717a mov.w r1, #1000 ; 0x3e8
80074b2: fb01 f303 mul.w r3, r1, r3
80074b6: 1ad3 subs r3, r2, r3
80074b8: 4a8f ldr r2, [pc, #572] ; (80076f8 <Display+0x1700>)
80074ba: fba2 1203 umull r1, r2, r2, r3
80074be: 0952 lsrs r2, r2, #5
80074c0: 2164 movs r1, #100 ; 0x64
80074c2: fb01 f202 mul.w r2, r1, r2
80074c6: 1a9a subs r2, r3, r2
80074c8: 4b8c ldr r3, [pc, #560] ; (80076fc <Display+0x1704>)
80074ca: fba3 1302 umull r1, r3, r3, r2
80074ce: 08d9 lsrs r1, r3, #3
80074d0: 460b mov r3, r1
80074d2: 009b lsls r3, r3, #2
80074d4: 440b add r3, r1
80074d6: 005b lsls r3, r3, #1
80074d8: 1ad1 subs r1, r2, r3
80074da: b2cb uxtb r3, r1
80074dc: f887 3303 strb.w r3, [r7, #771] ; 0x303
p8 = str4;
80074e0: f107 0368 add.w r3, r7, #104 ; 0x68
80074e4: f8c7 3340 str.w r3, [r7, #832] ; 0x340
if(pardata.amplif[Ch4].SENS < 10.0f) {
80074e8: 4b7d ldr r3, [pc, #500] ; (80076e0 <Display+0x16e8>)
80074ea: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80074ee: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
80074f2: eef4 7ac7 vcmpe.f32 s15, s14
80074f6: eef1 fa10 vmrs APSR_nzcv, fpscr
80074fa: d50b bpl.n 8007514 <Display+0x151c>
p8 = FloatToASCII(pardata.amplif[Ch4].SENS, -4);
80074fc: 4b78 ldr r3, [pc, #480] ; (80076e0 <Display+0x16e8>)
80074fe: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007502: f06f 0003 mvn.w r0, #3
8007506: eeb0 0a67 vmov.f32 s0, s15
800750a: f007 ff8d bl 800f428 <FloatToASCII>
800750e: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8007512: e055 b.n 80075c0 <Display+0x15c8>
}
else if(pardata.amplif[Ch4].SENS < 100.0f) {
8007514: 4b72 ldr r3, [pc, #456] ; (80076e0 <Display+0x16e8>)
8007516: edd3 7a1e vldr s15, [r3, #120] ; 0x78
800751a: ed9f 7a79 vldr s14, [pc, #484] ; 8007700 <Display+0x1708>
800751e: eef4 7ac7 vcmpe.f32 s15, s14
8007522: eef1 fa10 vmrs APSR_nzcv, fpscr
8007526: d50b bpl.n 8007540 <Display+0x1548>
p8 = FloatToASCII(pardata.amplif[Ch4].SENS, -3);
8007528: 4b6d ldr r3, [pc, #436] ; (80076e0 <Display+0x16e8>)
800752a: edd3 7a1e vldr s15, [r3, #120] ; 0x78
800752e: f06f 0002 mvn.w r0, #2
8007532: eeb0 0a67 vmov.f32 s0, s15
8007536: f007 ff77 bl 800f428 <FloatToASCII>
800753a: f8c7 0340 str.w r0, [r7, #832] ; 0x340
800753e: e03f b.n 80075c0 <Display+0x15c8>
}
else if(pardata.amplif[Ch4].SENS < 1000.0f) {
8007540: 4b67 ldr r3, [pc, #412] ; (80076e0 <Display+0x16e8>)
8007542: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007546: ed9f 7a6f vldr s14, [pc, #444] ; 8007704 <Display+0x170c>
800754a: eef4 7ac7 vcmpe.f32 s15, s14
800754e: eef1 fa10 vmrs APSR_nzcv, fpscr
8007552: d50b bpl.n 800756c <Display+0x1574>
p8 = FloatToASCII(pardata.amplif[Ch4].SENS, -2);
8007554: 4b62 ldr r3, [pc, #392] ; (80076e0 <Display+0x16e8>)
8007556: edd3 7a1e vldr s15, [r3, #120] ; 0x78
800755a: f06f 0001 mvn.w r0, #1
800755e: eeb0 0a67 vmov.f32 s0, s15
8007562: f007 ff61 bl 800f428 <FloatToASCII>
8007566: f8c7 0340 str.w r0, [r7, #832] ; 0x340
800756a: e029 b.n 80075c0 <Display+0x15c8>
}
else if(pardata.amplif[Ch4].SENS < 10000.0f) {
800756c: 4b5c ldr r3, [pc, #368] ; (80076e0 <Display+0x16e8>)
800756e: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007572: ed9f 7a65 vldr s14, [pc, #404] ; 8007708 <Display+0x1710>
8007576: eef4 7ac7 vcmpe.f32 s15, s14
800757a: eef1 fa10 vmrs APSR_nzcv, fpscr
800757e: d50b bpl.n 8007598 <Display+0x15a0>
p8 = FloatToASCII(pardata.amplif[Ch4].SENS, -1);
8007580: 4b57 ldr r3, [pc, #348] ; (80076e0 <Display+0x16e8>)
8007582: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007586: f04f 30ff mov.w r0, #4294967295
800758a: eeb0 0a67 vmov.f32 s0, s15
800758e: f007 ff4b bl 800f428 <FloatToASCII>
8007592: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8007596: e013 b.n 80075c0 <Display+0x15c8>
}
else if(pardata.amplif[Ch4].SENS < 100000.0f) {
8007598: 4b51 ldr r3, [pc, #324] ; (80076e0 <Display+0x16e8>)
800759a: edd3 7a1e vldr s15, [r3, #120] ; 0x78
800759e: ed9f 7a51 vldr s14, [pc, #324] ; 80076e4 <Display+0x16ec>
80075a2: eef4 7ac7 vcmpe.f32 s15, s14
80075a6: eef1 fa10 vmrs APSR_nzcv, fpscr
80075aa: d509 bpl.n 80075c0 <Display+0x15c8>
p8 = FloatToASCII(pardata.amplif[Ch4].SENS, 0);
80075ac: 4b4c ldr r3, [pc, #304] ; (80076e0 <Display+0x16e8>)
80075ae: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80075b2: 2000 movs r0, #0
80075b4: eeb0 0a67 vmov.f32 s0, s15
80075b8: f007 ff36 bl 800f428 <FloatToASCII>
80075bc: f8c7 0340 str.w r0, [r7, #832] ; 0x340
}
strcpy((void *) str4, (void *) p8);
80075c0: f107 0368 add.w r3, r7, #104 ; 0x68
80075c4: f8d7 1340 ldr.w r1, [r7, #832] ; 0x340
80075c8: 4618 mov r0, r3
80075ca: f00e ff52 bl 8016472 <strcpy>
//////////////////////////////////////////////////////////////////////////////
BSP_LCD_SetFont(&Font12);
80075ce: 484f ldr r0, [pc, #316] ; (800770c <Display+0x1714>)
80075d0: f7fd fbfa bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
80075d4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80075d8: 484d ldr r0, [pc, #308] ; (8007710 <Display+0x1718>)
80075da: f7fd fbb9 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 5, "Sensetivity", CENTER_MODE);
80075de: 2301 movs r3, #1
80075e0: 4a4c ldr r2, [pc, #304] ; (8007714 <Display+0x171c>)
80075e2: 2105 movs r1, #5
80075e4: 20a0 movs r0, #160 ; 0xa0
80075e6: f7fd fc79 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(240, 5, "Units", CENTER_MODE);
80075ea: 2301 movs r3, #1
80075ec: 4a4a ldr r2, [pc, #296] ; (8007718 <Display+0x1720>)
80075ee: 2105 movs r1, #5
80075f0: 20f0 movs r0, #240 ; 0xf0
80075f2: f7fd fc73 bl 8004edc <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_ORANGE, LCD_COLOR_BLACK);
80075f6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80075fa: 4848 ldr r0, [pc, #288] ; (800771c <Display+0x1724>)
80075fc: f7fd fba8 bl 8004d50 <LCD_SetColors>
if(pardata.amplif[Ch1].IIN == CHARGE)
8007600: 4b37 ldr r3, [pc, #220] ; (80076e0 <Display+0x16e8>)
8007602: 881b ldrh r3, [r3, #0]
8007604: b29b uxth r3, r3
8007606: 2b00 cmp r3, #0
8007608: d106 bne.n 8007618 <Display+0x1620>
BSP_LCD_DisplayStringAt(95, 60, "PE", LEFT_MODE);
800760a: 2303 movs r3, #3
800760c: 4a44 ldr r2, [pc, #272] ; (8007720 <Display+0x1728>)
800760e: 213c movs r1, #60 ; 0x3c
8007610: 205f movs r0, #95 ; 0x5f
8007612: f7fd fc63 bl 8004edc <BSP_LCD_DisplayStringAt>
8007616: e005 b.n 8007624 <Display+0x162c>
else BSP_LCD_DisplayStringAt(95, 60, "IEPE", LEFT_MODE);
8007618: 2303 movs r3, #3
800761a: 4a42 ldr r2, [pc, #264] ; (8007724 <Display+0x172c>)
800761c: 213c movs r1, #60 ; 0x3c
800761e: 205f movs r0, #95 ; 0x5f
8007620: f7fd fc5c bl 8004edc <BSP_LCD_DisplayStringAt>
if(pardata.amplif[Ch2].IIN == CHARGE)
8007624: 4b2e ldr r3, [pc, #184] ; (80076e0 <Display+0x16e8>)
8007626: 8c1b ldrh r3, [r3, #32]
8007628: b29b uxth r3, r3
800762a: 2b00 cmp r3, #0
800762c: d106 bne.n 800763c <Display+0x1644>
BSP_LCD_DisplayStringAt(95, 80, "PE", LEFT_MODE);
800762e: 2303 movs r3, #3
8007630: 4a3b ldr r2, [pc, #236] ; (8007720 <Display+0x1728>)
8007632: 2150 movs r1, #80 ; 0x50
8007634: 205f movs r0, #95 ; 0x5f
8007636: f7fd fc51 bl 8004edc <BSP_LCD_DisplayStringAt>
800763a: e005 b.n 8007648 <Display+0x1650>
else BSP_LCD_DisplayStringAt(95, 80, "IEPE", LEFT_MODE);
800763c: 2303 movs r3, #3
800763e: 4a39 ldr r2, [pc, #228] ; (8007724 <Display+0x172c>)
8007640: 2150 movs r1, #80 ; 0x50
8007642: 205f movs r0, #95 ; 0x5f
8007644: f7fd fc4a bl 8004edc <BSP_LCD_DisplayStringAt>
if(pardata.amplif[Ch3].IIN == CHARGE)
8007648: 4b25 ldr r3, [pc, #148] ; (80076e0 <Display+0x16e8>)
800764a: f8b3 3040 ldrh.w r3, [r3, #64] ; 0x40
800764e: b29b uxth r3, r3
8007650: 2b00 cmp r3, #0
8007652: d106 bne.n 8007662 <Display+0x166a>
BSP_LCD_DisplayStringAt(95, 100, "PE", LEFT_MODE);
8007654: 2303 movs r3, #3
8007656: 4a32 ldr r2, [pc, #200] ; (8007720 <Display+0x1728>)
8007658: 2164 movs r1, #100 ; 0x64
800765a: 205f movs r0, #95 ; 0x5f
800765c: f7fd fc3e bl 8004edc <BSP_LCD_DisplayStringAt>
8007660: e005 b.n 800766e <Display+0x1676>
else BSP_LCD_DisplayStringAt(95, 100, "IEPE", LEFT_MODE);
8007662: 2303 movs r3, #3
8007664: 4a2f ldr r2, [pc, #188] ; (8007724 <Display+0x172c>)
8007666: 2164 movs r1, #100 ; 0x64
8007668: 205f movs r0, #95 ; 0x5f
800766a: f7fd fc37 bl 8004edc <BSP_LCD_DisplayStringAt>
if(pardata.amplif[Ch4].IIN == CHARGE)
800766e: 4b1c ldr r3, [pc, #112] ; (80076e0 <Display+0x16e8>)
8007670: f8b3 3060 ldrh.w r3, [r3, #96] ; 0x60
8007674: b29b uxth r3, r3
8007676: 2b00 cmp r3, #0
8007678: d106 bne.n 8007688 <Display+0x1690>
BSP_LCD_DisplayStringAt(95, 120, "PE", LEFT_MODE);
800767a: 2303 movs r3, #3
800767c: 4a28 ldr r2, [pc, #160] ; (8007720 <Display+0x1728>)
800767e: 2178 movs r1, #120 ; 0x78
8007680: 205f movs r0, #95 ; 0x5f
8007682: f7fd fc2b bl 8004edc <BSP_LCD_DisplayStringAt>
8007686: e005 b.n 8007694 <Display+0x169c>
else BSP_LCD_DisplayStringAt(95, 120, "IEPE", LEFT_MODE);
8007688: 2303 movs r3, #3
800768a: 4a26 ldr r2, [pc, #152] ; (8007724 <Display+0x172c>)
800768c: 2178 movs r1, #120 ; 0x78
800768e: 205f movs r0, #95 ; 0x5f
8007690: f7fd fc24 bl 8004edc <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
8007694: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007698: f04f 30ff mov.w r0, #4294967295
800769c: f7fd fb58 bl 8004d50 <LCD_SetColors>
if(pardata.LANG == RUS)
80076a0: 4b0f ldr r3, [pc, #60] ; (80076e0 <Display+0x16e8>)
80076a2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80076a6: b29b uxth r3, r3
80076a8: 2b00 cmp r3, #0
80076aa: d145 bne.n 8007738 <Display+0x1740>
{
BSP_LCD_DisplayStringAt(20, 60, "<22><><CA><C0><CD> 1:", LEFT_MODE);
80076ac: 2303 movs r3, #3
80076ae: 4a1e ldr r2, [pc, #120] ; (8007728 <Display+0x1730>)
80076b0: 213c movs r1, #60 ; 0x3c
80076b2: 2014 movs r0, #20
80076b4: f7fd fc12 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(20, 80, "<22><><CA><C0><CD> 2:", LEFT_MODE);
80076b8: 2303 movs r3, #3
80076ba: 4a1c ldr r2, [pc, #112] ; (800772c <Display+0x1734>)
80076bc: 2150 movs r1, #80 ; 0x50
80076be: 2014 movs r0, #20
80076c0: f7fd fc0c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(20, 100, "<22><><CA><C0><CD> 3:", LEFT_MODE);
80076c4: 2303 movs r3, #3
80076c6: 4a1a ldr r2, [pc, #104] ; (8007730 <Display+0x1738>)
80076c8: 2164 movs r1, #100 ; 0x64
80076ca: 2014 movs r0, #20
80076cc: f7fd fc06 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(20, 120, "<22><><CA><C0><CD> 4:", LEFT_MODE);
80076d0: 2303 movs r3, #3
80076d2: 4a18 ldr r2, [pc, #96] ; (8007734 <Display+0x173c>)
80076d4: 2178 movs r1, #120 ; 0x78
80076d6: 2014 movs r0, #20
80076d8: f7fd fc00 bl 8004edc <BSP_LCD_DisplayStringAt>
80076dc: e044 b.n 8007768 <Display+0x1770>
80076de: bf00 nop
80076e0: 2006bca8 .word 0x2006bca8
80076e4: 47c35000 .word 0x47c35000
80076e8: 47c34f80 .word 0x47c34f80
80076ec: 0001869f .word 0x0001869f
80076f0: d1b71759 .word 0xd1b71759
80076f4: 10624dd3 .word 0x10624dd3
80076f8: 51eb851f .word 0x51eb851f
80076fc: cccccccd .word 0xcccccccd
8007700: 42c80000 .word 0x42c80000
8007704: 447a0000 .word 0x447a0000
8007708: 461c4000 .word 0x461c4000
800770c: 20020000 .word 0x20020000
8007710: ff808080 .word 0xff808080
8007714: 080180d0 .word 0x080180d0
8007718: 080180dc .word 0x080180dc
800771c: ffffa500 .word 0xffffa500
8007720: 080180e4 .word 0x080180e4
8007724: 080180e8 .word 0x080180e8
8007728: 080180f0 .word 0x080180f0
800772c: 080180fc .word 0x080180fc
8007730: 08018108 .word 0x08018108
8007734: 08018114 .word 0x08018114
}
else
{
BSP_LCD_DisplayStringAt(20, 60, "CHANNEL 1:", LEFT_MODE);
8007738: 2303 movs r3, #3
800773a: 4abe ldr r2, [pc, #760] ; (8007a34 <Display+0x1a3c>)
800773c: 213c movs r1, #60 ; 0x3c
800773e: 2014 movs r0, #20
8007740: f7fd fbcc bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(20, 80, "CHANNEL 2:", LEFT_MODE);
8007744: 2303 movs r3, #3
8007746: 4abc ldr r2, [pc, #752] ; (8007a38 <Display+0x1a40>)
8007748: 2150 movs r1, #80 ; 0x50
800774a: 2014 movs r0, #20
800774c: f7fd fbc6 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(20, 100, "CHANNEL 3:", LEFT_MODE);
8007750: 2303 movs r3, #3
8007752: 4aba ldr r2, [pc, #744] ; (8007a3c <Display+0x1a44>)
8007754: 2164 movs r1, #100 ; 0x64
8007756: 2014 movs r0, #20
8007758: f7fd fbc0 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(20, 120, "CHANNEL 4:", LEFT_MODE);
800775c: 2303 movs r3, #3
800775e: 4ab8 ldr r2, [pc, #736] ; (8007a40 <Display+0x1a48>)
8007760: 2178 movs r1, #120 ; 0x78
8007762: 2014 movs r0, #20
8007764: f7fd fbba bl 8004edc <BSP_LCD_DisplayStringAt>
}
if(menupos != Back)
8007768: 4bb6 ldr r3, [pc, #728] ; (8007a44 <Display+0x1a4c>)
800776a: 781b ldrb r3, [r3, #0]
800776c: b2db uxtb r3, r3
800776e: 2bff cmp r3, #255 ; 0xff
8007770: d006 beq.n 8007780 <Display+0x1788>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
8007772: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007776: f04f 30ff mov.w r0, #4294967295
800777a: f7fd fae9 bl 8004d50 <LCD_SetColors>
800777e: e005 b.n 800778c <Display+0x1794>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8007780: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007784: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8007788: f7fd fae2 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(20, 40, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //<2F><><CD><E0><E7>
800778c: 4bae ldr r3, [pc, #696] ; (8007a48 <Display+0x1a50>)
800778e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007792: b29b uxth r3, r3
8007794: 4aad ldr r2, [pc, #692] ; (8007a4c <Display+0x1a54>)
8007796: 011b lsls r3, r3, #4
8007798: 4413 add r3, r2
800779a: 681a ldr r2, [r3, #0]
800779c: 2303 movs r3, #3
800779e: 2128 movs r1, #40 ; 0x28
80077a0: 2014 movs r0, #20
80077a2: f7fd fb9b bl 8004edc <BSP_LCD_DisplayStringAt>
//todo
if(menupos == Back)
80077a6: 4ba7 ldr r3, [pc, #668] ; (8007a44 <Display+0x1a4c>)
80077a8: 781b ldrb r3, [r3, #0]
80077aa: b2db uxtb r3, r3
80077ac: 2bff cmp r3, #255 ; 0xff
80077ae: f040 8083 bne.w 80078b8 <Display+0x18c0>
{
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
80077b2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80077b6: 48a6 ldr r0, [pc, #664] ; (8007a50 <Display+0x1a58>)
80077b8: f7fd faca bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
80077bc: f507 728e add.w r2, r7, #284 ; 0x11c
80077c0: 2303 movs r3, #3
80077c2: 213c movs r1, #60 ; 0x3c
80077c4: 208c movs r0, #140 ; 0x8c
80077c6: f7fd fb89 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
80077ca: f107 02e0 add.w r2, r7, #224 ; 0xe0
80077ce: 2303 movs r3, #3
80077d0: 2150 movs r1, #80 ; 0x50
80077d2: 208c movs r0, #140 ; 0x8c
80077d4: f7fd fb82 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
80077d8: f107 02a4 add.w r2, r7, #164 ; 0xa4
80077dc: 2303 movs r3, #3
80077de: 2164 movs r1, #100 ; 0x64
80077e0: 208c movs r0, #140 ; 0x8c
80077e2: f7fd fb7b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
80077e6: f107 0268 add.w r2, r7, #104 ; 0x68
80077ea: 2303 movs r3, #3
80077ec: 2178 movs r1, #120 ; 0x78
80077ee: 208c movs r0, #140 ; 0x8c
80077f0: f7fd fb74 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
80077f4: 4b94 ldr r3, [pc, #592] ; (8007a48 <Display+0x1a50>)
80077f6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80077fa: b29b uxth r3, r3
80077fc: 4618 mov r0, r3
80077fe: 4b92 ldr r3, [pc, #584] ; (8007a48 <Display+0x1a50>)
8007800: 8a5b ldrh r3, [r3, #18]
8007802: b29b uxth r3, r3
8007804: 005b lsls r3, r3, #1
8007806: 4a90 ldr r2, [pc, #576] ; (8007a48 <Display+0x1a50>)
8007808: 8812 ldrh r2, [r2, #0]
800780a: b292 uxth r2, r2
800780c: 4413 add r3, r2
800780e: 4991 ldr r1, [pc, #580] ; (8007a54 <Display+0x1a5c>)
8007810: 0102 lsls r2, r0, #4
8007812: 4413 add r3, r2
8007814: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007818: 2303 movs r3, #3
800781a: 213c movs r1, #60 ; 0x3c
800781c: 20dc movs r0, #220 ; 0xdc
800781e: f7fd fb5d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8007822: 4b89 ldr r3, [pc, #548] ; (8007a48 <Display+0x1a50>)
8007824: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007828: b29b uxth r3, r3
800782a: 4618 mov r0, r3
800782c: 4b86 ldr r3, [pc, #536] ; (8007a48 <Display+0x1a50>)
800782e: 8e5b ldrh r3, [r3, #50] ; 0x32
8007830: b29b uxth r3, r3
8007832: 005b lsls r3, r3, #1
8007834: 4a84 ldr r2, [pc, #528] ; (8007a48 <Display+0x1a50>)
8007836: 8c12 ldrh r2, [r2, #32]
8007838: b292 uxth r2, r2
800783a: 4413 add r3, r2
800783c: 4985 ldr r1, [pc, #532] ; (8007a54 <Display+0x1a5c>)
800783e: 0102 lsls r2, r0, #4
8007840: 4413 add r3, r2
8007842: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007846: 2303 movs r3, #3
8007848: 2150 movs r1, #80 ; 0x50
800784a: 20dc movs r0, #220 ; 0xdc
800784c: f7fd fb46 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8007850: 4b7d ldr r3, [pc, #500] ; (8007a48 <Display+0x1a50>)
8007852: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007856: b29b uxth r3, r3
8007858: 4618 mov r0, r3
800785a: 4b7b ldr r3, [pc, #492] ; (8007a48 <Display+0x1a50>)
800785c: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8007860: b29b uxth r3, r3
8007862: 005b lsls r3, r3, #1
8007864: 4a78 ldr r2, [pc, #480] ; (8007a48 <Display+0x1a50>)
8007866: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
800786a: b292 uxth r2, r2
800786c: 4413 add r3, r2
800786e: 4979 ldr r1, [pc, #484] ; (8007a54 <Display+0x1a5c>)
8007870: 0102 lsls r2, r0, #4
8007872: 4413 add r3, r2
8007874: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007878: 2303 movs r3, #3
800787a: 2164 movs r1, #100 ; 0x64
800787c: 20dc movs r0, #220 ; 0xdc
800787e: f7fd fb2d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
8007882: 4b71 ldr r3, [pc, #452] ; (8007a48 <Display+0x1a50>)
8007884: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007888: b29b uxth r3, r3
800788a: 4618 mov r0, r3
800788c: 4b6e ldr r3, [pc, #440] ; (8007a48 <Display+0x1a50>)
800788e: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8007892: b29b uxth r3, r3
8007894: 005b lsls r3, r3, #1
8007896: 4a6c ldr r2, [pc, #432] ; (8007a48 <Display+0x1a50>)
8007898: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
800789c: b292 uxth r2, r2
800789e: 4413 add r3, r2
80078a0: 496c ldr r1, [pc, #432] ; (8007a54 <Display+0x1a5c>)
80078a2: 0102 lsls r2, r0, #4
80078a4: 4413 add r3, r2
80078a6: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80078aa: 2303 movs r3, #3
80078ac: 2178 movs r1, #120 ; 0x78
80078ae: 20dc movs r0, #220 ; 0xdc
80078b0: f7fd fb14 bl 8004edc <BSP_LCD_DisplayStringAt>
}
}
}
}
break;
80078b4: f006 b852 b.w 800d95c <Display+0x7964>
if(menupos == Sens_1)
80078b8: 4b62 ldr r3, [pc, #392] ; (8007a44 <Display+0x1a4c>)
80078ba: 781b ldrb r3, [r3, #0]
80078bc: b2db uxtb r3, r3
80078be: 2b00 cmp r3, #0
80078c0: f040 809a bne.w 80079f8 <Display+0x1a00>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
80078c4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80078c8: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
80078cc: f7fd fa40 bl 8004d50 <LCD_SetColors>
if(focused)
80078d0: 4b61 ldr r3, [pc, #388] ; (8007a58 <Display+0x1a60>)
80078d2: 781b ldrb r3, [r3, #0]
80078d4: b2db uxtb r3, r3
80078d6: 2b00 cmp r3, #0
80078d8: d00b beq.n 80078f2 <Display+0x18fa>
if(blk)
80078da: 4b60 ldr r3, [pc, #384] ; (8007a5c <Display+0x1a64>)
80078dc: 681b ldr r3, [r3, #0]
80078de: 2b00 cmp r3, #0
80078e0: d00e beq.n 8007900 <Display+0x1908>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
80078e2: f507 728e add.w r2, r7, #284 ; 0x11c
80078e6: 2303 movs r3, #3
80078e8: 213c movs r1, #60 ; 0x3c
80078ea: 208c movs r0, #140 ; 0x8c
80078ec: f7fd faf6 bl 8004edc <BSP_LCD_DisplayStringAt>
80078f0: e006 b.n 8007900 <Display+0x1908>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
80078f2: f507 728e add.w r2, r7, #284 ; 0x11c
80078f6: 2303 movs r3, #3
80078f8: 213c movs r1, #60 ; 0x3c
80078fa: 208c movs r0, #140 ; 0x8c
80078fc: f7fd faee bl 8004edc <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8007900: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007904: 4852 ldr r0, [pc, #328] ; (8007a50 <Display+0x1a58>)
8007906: f7fd fa23 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
800790a: f107 02e0 add.w r2, r7, #224 ; 0xe0
800790e: 2303 movs r3, #3
8007910: 2150 movs r1, #80 ; 0x50
8007912: 208c movs r0, #140 ; 0x8c
8007914: f7fd fae2 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8007918: f107 02a4 add.w r2, r7, #164 ; 0xa4
800791c: 2303 movs r3, #3
800791e: 2164 movs r1, #100 ; 0x64
8007920: 208c movs r0, #140 ; 0x8c
8007922: f7fd fadb bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8007926: f107 0268 add.w r2, r7, #104 ; 0x68
800792a: 2303 movs r3, #3
800792c: 2178 movs r1, #120 ; 0x78
800792e: 208c movs r0, #140 ; 0x8c
8007930: f7fd fad4 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
8007934: 4b44 ldr r3, [pc, #272] ; (8007a48 <Display+0x1a50>)
8007936: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800793a: b29b uxth r3, r3
800793c: 4618 mov r0, r3
800793e: 4b42 ldr r3, [pc, #264] ; (8007a48 <Display+0x1a50>)
8007940: 8a5b ldrh r3, [r3, #18]
8007942: b29b uxth r3, r3
8007944: 005b lsls r3, r3, #1
8007946: 4a40 ldr r2, [pc, #256] ; (8007a48 <Display+0x1a50>)
8007948: 8812 ldrh r2, [r2, #0]
800794a: b292 uxth r2, r2
800794c: 4413 add r3, r2
800794e: 4941 ldr r1, [pc, #260] ; (8007a54 <Display+0x1a5c>)
8007950: 0102 lsls r2, r0, #4
8007952: 4413 add r3, r2
8007954: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007958: 2303 movs r3, #3
800795a: 213c movs r1, #60 ; 0x3c
800795c: 20dc movs r0, #220 ; 0xdc
800795e: f7fd fabd bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8007962: 4b39 ldr r3, [pc, #228] ; (8007a48 <Display+0x1a50>)
8007964: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007968: b29b uxth r3, r3
800796a: 4618 mov r0, r3
800796c: 4b36 ldr r3, [pc, #216] ; (8007a48 <Display+0x1a50>)
800796e: 8e5b ldrh r3, [r3, #50] ; 0x32
8007970: b29b uxth r3, r3
8007972: 005b lsls r3, r3, #1
8007974: 4a34 ldr r2, [pc, #208] ; (8007a48 <Display+0x1a50>)
8007976: 8c12 ldrh r2, [r2, #32]
8007978: b292 uxth r2, r2
800797a: 4413 add r3, r2
800797c: 4935 ldr r1, [pc, #212] ; (8007a54 <Display+0x1a5c>)
800797e: 0102 lsls r2, r0, #4
8007980: 4413 add r3, r2
8007982: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007986: 2303 movs r3, #3
8007988: 2150 movs r1, #80 ; 0x50
800798a: 20dc movs r0, #220 ; 0xdc
800798c: f7fd faa6 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8007990: 4b2d ldr r3, [pc, #180] ; (8007a48 <Display+0x1a50>)
8007992: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007996: b29b uxth r3, r3
8007998: 4618 mov r0, r3
800799a: 4b2b ldr r3, [pc, #172] ; (8007a48 <Display+0x1a50>)
800799c: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
80079a0: b29b uxth r3, r3
80079a2: 005b lsls r3, r3, #1
80079a4: 4a28 ldr r2, [pc, #160] ; (8007a48 <Display+0x1a50>)
80079a6: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
80079aa: b292 uxth r2, r2
80079ac: 4413 add r3, r2
80079ae: 4929 ldr r1, [pc, #164] ; (8007a54 <Display+0x1a5c>)
80079b0: 0102 lsls r2, r0, #4
80079b2: 4413 add r3, r2
80079b4: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80079b8: 2303 movs r3, #3
80079ba: 2164 movs r1, #100 ; 0x64
80079bc: 20dc movs r0, #220 ; 0xdc
80079be: f7fd fa8d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
80079c2: 4b21 ldr r3, [pc, #132] ; (8007a48 <Display+0x1a50>)
80079c4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80079c8: b29b uxth r3, r3
80079ca: 4618 mov r0, r3
80079cc: 4b1e ldr r3, [pc, #120] ; (8007a48 <Display+0x1a50>)
80079ce: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
80079d2: b29b uxth r3, r3
80079d4: 005b lsls r3, r3, #1
80079d6: 4a1c ldr r2, [pc, #112] ; (8007a48 <Display+0x1a50>)
80079d8: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
80079dc: b292 uxth r2, r2
80079de: 4413 add r3, r2
80079e0: 491c ldr r1, [pc, #112] ; (8007a54 <Display+0x1a5c>)
80079e2: 0102 lsls r2, r0, #4
80079e4: 4413 add r3, r2
80079e6: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80079ea: 2303 movs r3, #3
80079ec: 2178 movs r1, #120 ; 0x78
80079ee: 20dc movs r0, #220 ; 0xdc
80079f0: f7fd fa74 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
80079f4: f005 bfb2 b.w 800d95c <Display+0x7964>
if(menupos == Sens_2)
80079f8: 4b12 ldr r3, [pc, #72] ; (8007a44 <Display+0x1a4c>)
80079fa: 781b ldrb r3, [r3, #0]
80079fc: b2db uxtb r3, r3
80079fe: 2b08 cmp r3, #8
8007a00: f040 80b1 bne.w 8007b66 <Display+0x1b6e>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8007a04: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007a08: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8007a0c: f7fd f9a0 bl 8004d50 <LCD_SetColors>
if(focused)
8007a10: 4b11 ldr r3, [pc, #68] ; (8007a58 <Display+0x1a60>)
8007a12: 781b ldrb r3, [r3, #0]
8007a14: b2db uxtb r3, r3
8007a16: 2b00 cmp r3, #0
8007a18: d022 beq.n 8007a60 <Display+0x1a68>
if(blk)
8007a1a: 4b10 ldr r3, [pc, #64] ; (8007a5c <Display+0x1a64>)
8007a1c: 681b ldr r3, [r3, #0]
8007a1e: 2b00 cmp r3, #0
8007a20: d025 beq.n 8007a6e <Display+0x1a76>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8007a22: f107 02e0 add.w r2, r7, #224 ; 0xe0
8007a26: 2303 movs r3, #3
8007a28: 2150 movs r1, #80 ; 0x50
8007a2a: 208c movs r0, #140 ; 0x8c
8007a2c: f7fd fa56 bl 8004edc <BSP_LCD_DisplayStringAt>
8007a30: e01d b.n 8007a6e <Display+0x1a76>
8007a32: bf00 nop
8007a34: 08018120 .word 0x08018120
8007a38: 0801812c .word 0x0801812c
8007a3c: 08018138 .word 0x08018138
8007a40: 08018144 .word 0x08018144
8007a44: 20020010 .word 0x20020010
8007a48: 2006bca8 .word 0x2006bca8
8007a4c: 20020034 .word 0x20020034
8007a50: ffd8aa57 .word 0xffd8aa57
8007a54: 200200bc .word 0x200200bc
8007a58: 200209e4 .word 0x200209e4
8007a5c: 2006ba78 .word 0x2006ba78
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8007a60: f107 02e0 add.w r2, r7, #224 ; 0xe0
8007a64: 2303 movs r3, #3
8007a66: 2150 movs r1, #80 ; 0x50
8007a68: 208c movs r0, #140 ; 0x8c
8007a6a: f7fd fa37 bl 8004edc <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8007a6e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007a72: 489b ldr r0, [pc, #620] ; (8007ce0 <Display+0x1ce8>)
8007a74: f7fd f96c bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8007a78: f507 728e add.w r2, r7, #284 ; 0x11c
8007a7c: 2303 movs r3, #3
8007a7e: 213c movs r1, #60 ; 0x3c
8007a80: 208c movs r0, #140 ; 0x8c
8007a82: f7fd fa2b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8007a86: f107 02a4 add.w r2, r7, #164 ; 0xa4
8007a8a: 2303 movs r3, #3
8007a8c: 2164 movs r1, #100 ; 0x64
8007a8e: 208c movs r0, #140 ; 0x8c
8007a90: f7fd fa24 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8007a94: f107 0268 add.w r2, r7, #104 ; 0x68
8007a98: 2303 movs r3, #3
8007a9a: 2178 movs r1, #120 ; 0x78
8007a9c: 208c movs r0, #140 ; 0x8c
8007a9e: f7fd fa1d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
8007aa2: 4b90 ldr r3, [pc, #576] ; (8007ce4 <Display+0x1cec>)
8007aa4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007aa8: b29b uxth r3, r3
8007aaa: 4618 mov r0, r3
8007aac: 4b8d ldr r3, [pc, #564] ; (8007ce4 <Display+0x1cec>)
8007aae: 8a5b ldrh r3, [r3, #18]
8007ab0: b29b uxth r3, r3
8007ab2: 005b lsls r3, r3, #1
8007ab4: 4a8b ldr r2, [pc, #556] ; (8007ce4 <Display+0x1cec>)
8007ab6: 8812 ldrh r2, [r2, #0]
8007ab8: b292 uxth r2, r2
8007aba: 4413 add r3, r2
8007abc: 498a ldr r1, [pc, #552] ; (8007ce8 <Display+0x1cf0>)
8007abe: 0102 lsls r2, r0, #4
8007ac0: 4413 add r3, r2
8007ac2: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007ac6: 2303 movs r3, #3
8007ac8: 213c movs r1, #60 ; 0x3c
8007aca: 20dc movs r0, #220 ; 0xdc
8007acc: f7fd fa06 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8007ad0: 4b84 ldr r3, [pc, #528] ; (8007ce4 <Display+0x1cec>)
8007ad2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007ad6: b29b uxth r3, r3
8007ad8: 4618 mov r0, r3
8007ada: 4b82 ldr r3, [pc, #520] ; (8007ce4 <Display+0x1cec>)
8007adc: 8e5b ldrh r3, [r3, #50] ; 0x32
8007ade: b29b uxth r3, r3
8007ae0: 005b lsls r3, r3, #1
8007ae2: 4a80 ldr r2, [pc, #512] ; (8007ce4 <Display+0x1cec>)
8007ae4: 8c12 ldrh r2, [r2, #32]
8007ae6: b292 uxth r2, r2
8007ae8: 4413 add r3, r2
8007aea: 497f ldr r1, [pc, #508] ; (8007ce8 <Display+0x1cf0>)
8007aec: 0102 lsls r2, r0, #4
8007aee: 4413 add r3, r2
8007af0: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007af4: 2303 movs r3, #3
8007af6: 2150 movs r1, #80 ; 0x50
8007af8: 20dc movs r0, #220 ; 0xdc
8007afa: f7fd f9ef bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8007afe: 4b79 ldr r3, [pc, #484] ; (8007ce4 <Display+0x1cec>)
8007b00: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007b04: b29b uxth r3, r3
8007b06: 4618 mov r0, r3
8007b08: 4b76 ldr r3, [pc, #472] ; (8007ce4 <Display+0x1cec>)
8007b0a: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8007b0e: b29b uxth r3, r3
8007b10: 005b lsls r3, r3, #1
8007b12: 4a74 ldr r2, [pc, #464] ; (8007ce4 <Display+0x1cec>)
8007b14: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
8007b18: b292 uxth r2, r2
8007b1a: 4413 add r3, r2
8007b1c: 4972 ldr r1, [pc, #456] ; (8007ce8 <Display+0x1cf0>)
8007b1e: 0102 lsls r2, r0, #4
8007b20: 4413 add r3, r2
8007b22: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007b26: 2303 movs r3, #3
8007b28: 2164 movs r1, #100 ; 0x64
8007b2a: 20dc movs r0, #220 ; 0xdc
8007b2c: f7fd f9d6 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
8007b30: 4b6c ldr r3, [pc, #432] ; (8007ce4 <Display+0x1cec>)
8007b32: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007b36: b29b uxth r3, r3
8007b38: 4618 mov r0, r3
8007b3a: 4b6a ldr r3, [pc, #424] ; (8007ce4 <Display+0x1cec>)
8007b3c: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8007b40: b29b uxth r3, r3
8007b42: 005b lsls r3, r3, #1
8007b44: 4a67 ldr r2, [pc, #412] ; (8007ce4 <Display+0x1cec>)
8007b46: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
8007b4a: b292 uxth r2, r2
8007b4c: 4413 add r3, r2
8007b4e: 4966 ldr r1, [pc, #408] ; (8007ce8 <Display+0x1cf0>)
8007b50: 0102 lsls r2, r0, #4
8007b52: 4413 add r3, r2
8007b54: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007b58: 2303 movs r3, #3
8007b5a: 2178 movs r1, #120 ; 0x78
8007b5c: 20dc movs r0, #220 ; 0xdc
8007b5e: f7fd f9bd bl 8004edc <BSP_LCD_DisplayStringAt>
break;
8007b62: f005 befb b.w 800d95c <Display+0x7964>
if(menupos == Sens_3)
8007b66: 4b61 ldr r3, [pc, #388] ; (8007cec <Display+0x1cf4>)
8007b68: 781b ldrb r3, [r3, #0]
8007b6a: b2db uxtb r3, r3
8007b6c: 2b10 cmp r3, #16
8007b6e: f040 809a bne.w 8007ca6 <Display+0x1cae>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8007b72: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007b76: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8007b7a: f7fd f8e9 bl 8004d50 <LCD_SetColors>
if(focused)
8007b7e: 4b5c ldr r3, [pc, #368] ; (8007cf0 <Display+0x1cf8>)
8007b80: 781b ldrb r3, [r3, #0]
8007b82: b2db uxtb r3, r3
8007b84: 2b00 cmp r3, #0
8007b86: d00b beq.n 8007ba0 <Display+0x1ba8>
if(blk)
8007b88: 4b5a ldr r3, [pc, #360] ; (8007cf4 <Display+0x1cfc>)
8007b8a: 681b ldr r3, [r3, #0]
8007b8c: 2b00 cmp r3, #0
8007b8e: d00e beq.n 8007bae <Display+0x1bb6>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8007b90: f107 02a4 add.w r2, r7, #164 ; 0xa4
8007b94: 2303 movs r3, #3
8007b96: 2164 movs r1, #100 ; 0x64
8007b98: 208c movs r0, #140 ; 0x8c
8007b9a: f7fd f99f bl 8004edc <BSP_LCD_DisplayStringAt>
8007b9e: e006 b.n 8007bae <Display+0x1bb6>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8007ba0: f107 02a4 add.w r2, r7, #164 ; 0xa4
8007ba4: 2303 movs r3, #3
8007ba6: 2164 movs r1, #100 ; 0x64
8007ba8: 208c movs r0, #140 ; 0x8c
8007baa: f7fd f997 bl 8004edc <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8007bae: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007bb2: 484b ldr r0, [pc, #300] ; (8007ce0 <Display+0x1ce8>)
8007bb4: f7fd f8cc bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8007bb8: f507 728e add.w r2, r7, #284 ; 0x11c
8007bbc: 2303 movs r3, #3
8007bbe: 213c movs r1, #60 ; 0x3c
8007bc0: 208c movs r0, #140 ; 0x8c
8007bc2: f7fd f98b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8007bc6: f107 02e0 add.w r2, r7, #224 ; 0xe0
8007bca: 2303 movs r3, #3
8007bcc: 2150 movs r1, #80 ; 0x50
8007bce: 208c movs r0, #140 ; 0x8c
8007bd0: f7fd f984 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8007bd4: f107 0268 add.w r2, r7, #104 ; 0x68
8007bd8: 2303 movs r3, #3
8007bda: 2178 movs r1, #120 ; 0x78
8007bdc: 208c movs r0, #140 ; 0x8c
8007bde: f7fd f97d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
8007be2: 4b40 ldr r3, [pc, #256] ; (8007ce4 <Display+0x1cec>)
8007be4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007be8: b29b uxth r3, r3
8007bea: 4618 mov r0, r3
8007bec: 4b3d ldr r3, [pc, #244] ; (8007ce4 <Display+0x1cec>)
8007bee: 8a5b ldrh r3, [r3, #18]
8007bf0: b29b uxth r3, r3
8007bf2: 005b lsls r3, r3, #1
8007bf4: 4a3b ldr r2, [pc, #236] ; (8007ce4 <Display+0x1cec>)
8007bf6: 8812 ldrh r2, [r2, #0]
8007bf8: b292 uxth r2, r2
8007bfa: 4413 add r3, r2
8007bfc: 493a ldr r1, [pc, #232] ; (8007ce8 <Display+0x1cf0>)
8007bfe: 0102 lsls r2, r0, #4
8007c00: 4413 add r3, r2
8007c02: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007c06: 2303 movs r3, #3
8007c08: 213c movs r1, #60 ; 0x3c
8007c0a: 20dc movs r0, #220 ; 0xdc
8007c0c: f7fd f966 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8007c10: 4b34 ldr r3, [pc, #208] ; (8007ce4 <Display+0x1cec>)
8007c12: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007c16: b29b uxth r3, r3
8007c18: 4618 mov r0, r3
8007c1a: 4b32 ldr r3, [pc, #200] ; (8007ce4 <Display+0x1cec>)
8007c1c: 8e5b ldrh r3, [r3, #50] ; 0x32
8007c1e: b29b uxth r3, r3
8007c20: 005b lsls r3, r3, #1
8007c22: 4a30 ldr r2, [pc, #192] ; (8007ce4 <Display+0x1cec>)
8007c24: 8c12 ldrh r2, [r2, #32]
8007c26: b292 uxth r2, r2
8007c28: 4413 add r3, r2
8007c2a: 492f ldr r1, [pc, #188] ; (8007ce8 <Display+0x1cf0>)
8007c2c: 0102 lsls r2, r0, #4
8007c2e: 4413 add r3, r2
8007c30: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007c34: 2303 movs r3, #3
8007c36: 2150 movs r1, #80 ; 0x50
8007c38: 20dc movs r0, #220 ; 0xdc
8007c3a: f7fd f94f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8007c3e: 4b29 ldr r3, [pc, #164] ; (8007ce4 <Display+0x1cec>)
8007c40: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007c44: b29b uxth r3, r3
8007c46: 4618 mov r0, r3
8007c48: 4b26 ldr r3, [pc, #152] ; (8007ce4 <Display+0x1cec>)
8007c4a: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8007c4e: b29b uxth r3, r3
8007c50: 005b lsls r3, r3, #1
8007c52: 4a24 ldr r2, [pc, #144] ; (8007ce4 <Display+0x1cec>)
8007c54: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
8007c58: b292 uxth r2, r2
8007c5a: 4413 add r3, r2
8007c5c: 4922 ldr r1, [pc, #136] ; (8007ce8 <Display+0x1cf0>)
8007c5e: 0102 lsls r2, r0, #4
8007c60: 4413 add r3, r2
8007c62: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007c66: 2303 movs r3, #3
8007c68: 2164 movs r1, #100 ; 0x64
8007c6a: 20dc movs r0, #220 ; 0xdc
8007c6c: f7fd f936 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
8007c70: 4b1c ldr r3, [pc, #112] ; (8007ce4 <Display+0x1cec>)
8007c72: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007c76: b29b uxth r3, r3
8007c78: 4618 mov r0, r3
8007c7a: 4b1a ldr r3, [pc, #104] ; (8007ce4 <Display+0x1cec>)
8007c7c: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8007c80: b29b uxth r3, r3
8007c82: 005b lsls r3, r3, #1
8007c84: 4a17 ldr r2, [pc, #92] ; (8007ce4 <Display+0x1cec>)
8007c86: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
8007c8a: b292 uxth r2, r2
8007c8c: 4413 add r3, r2
8007c8e: 4916 ldr r1, [pc, #88] ; (8007ce8 <Display+0x1cf0>)
8007c90: 0102 lsls r2, r0, #4
8007c92: 4413 add r3, r2
8007c94: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007c98: 2303 movs r3, #3
8007c9a: 2178 movs r1, #120 ; 0x78
8007c9c: 20dc movs r0, #220 ; 0xdc
8007c9e: f7fd f91d bl 8004edc <BSP_LCD_DisplayStringAt>
break;
8007ca2: f005 be5b b.w 800d95c <Display+0x7964>
if(menupos == Sens_4)
8007ca6: 4b11 ldr r3, [pc, #68] ; (8007cec <Display+0x1cf4>)
8007ca8: 781b ldrb r3, [r3, #0]
8007caa: b2db uxtb r3, r3
8007cac: 2b18 cmp r3, #24
8007cae: f040 80a6 bne.w 8007dfe <Display+0x1e06>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8007cb2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007cb6: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8007cba: f7fd f849 bl 8004d50 <LCD_SetColors>
if(focused)
8007cbe: 4b0c ldr r3, [pc, #48] ; (8007cf0 <Display+0x1cf8>)
8007cc0: 781b ldrb r3, [r3, #0]
8007cc2: b2db uxtb r3, r3
8007cc4: 2b00 cmp r3, #0
8007cc6: d017 beq.n 8007cf8 <Display+0x1d00>
if(blk)
8007cc8: 4b0a ldr r3, [pc, #40] ; (8007cf4 <Display+0x1cfc>)
8007cca: 681b ldr r3, [r3, #0]
8007ccc: 2b00 cmp r3, #0
8007cce: d01a beq.n 8007d06 <Display+0x1d0e>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8007cd0: f107 0268 add.w r2, r7, #104 ; 0x68
8007cd4: 2303 movs r3, #3
8007cd6: 2178 movs r1, #120 ; 0x78
8007cd8: 208c movs r0, #140 ; 0x8c
8007cda: f7fd f8ff bl 8004edc <BSP_LCD_DisplayStringAt>
8007cde: e012 b.n 8007d06 <Display+0x1d0e>
8007ce0: ffd8aa57 .word 0xffd8aa57
8007ce4: 2006bca8 .word 0x2006bca8
8007ce8: 200200bc .word 0x200200bc
8007cec: 20020010 .word 0x20020010
8007cf0: 200209e4 .word 0x200209e4
8007cf4: 2006ba78 .word 0x2006ba78
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8007cf8: f107 0268 add.w r2, r7, #104 ; 0x68
8007cfc: 2303 movs r3, #3
8007cfe: 2178 movs r1, #120 ; 0x78
8007d00: 208c movs r0, #140 ; 0x8c
8007d02: f7fd f8eb bl 8004edc <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8007d06: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007d0a: 48ab ldr r0, [pc, #684] ; (8007fb8 <Display+0x1fc0>)
8007d0c: f7fd f820 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8007d10: f507 728e add.w r2, r7, #284 ; 0x11c
8007d14: 2303 movs r3, #3
8007d16: 213c movs r1, #60 ; 0x3c
8007d18: 208c movs r0, #140 ; 0x8c
8007d1a: f7fd f8df bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8007d1e: f107 02e0 add.w r2, r7, #224 ; 0xe0
8007d22: 2303 movs r3, #3
8007d24: 2150 movs r1, #80 ; 0x50
8007d26: 208c movs r0, #140 ; 0x8c
8007d28: f7fd f8d8 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8007d2c: f107 02a4 add.w r2, r7, #164 ; 0xa4
8007d30: 2303 movs r3, #3
8007d32: 2164 movs r1, #100 ; 0x64
8007d34: 208c movs r0, #140 ; 0x8c
8007d36: f7fd f8d1 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
8007d3a: 4ba0 ldr r3, [pc, #640] ; (8007fbc <Display+0x1fc4>)
8007d3c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007d40: b29b uxth r3, r3
8007d42: 4618 mov r0, r3
8007d44: 4b9d ldr r3, [pc, #628] ; (8007fbc <Display+0x1fc4>)
8007d46: 8a5b ldrh r3, [r3, #18]
8007d48: b29b uxth r3, r3
8007d4a: 005b lsls r3, r3, #1
8007d4c: 4a9b ldr r2, [pc, #620] ; (8007fbc <Display+0x1fc4>)
8007d4e: 8812 ldrh r2, [r2, #0]
8007d50: b292 uxth r2, r2
8007d52: 4413 add r3, r2
8007d54: 499a ldr r1, [pc, #616] ; (8007fc0 <Display+0x1fc8>)
8007d56: 0102 lsls r2, r0, #4
8007d58: 4413 add r3, r2
8007d5a: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007d5e: 2303 movs r3, #3
8007d60: 213c movs r1, #60 ; 0x3c
8007d62: 20dc movs r0, #220 ; 0xdc
8007d64: f7fd f8ba bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8007d68: 4b94 ldr r3, [pc, #592] ; (8007fbc <Display+0x1fc4>)
8007d6a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007d6e: b29b uxth r3, r3
8007d70: 4618 mov r0, r3
8007d72: 4b92 ldr r3, [pc, #584] ; (8007fbc <Display+0x1fc4>)
8007d74: 8e5b ldrh r3, [r3, #50] ; 0x32
8007d76: b29b uxth r3, r3
8007d78: 005b lsls r3, r3, #1
8007d7a: 4a90 ldr r2, [pc, #576] ; (8007fbc <Display+0x1fc4>)
8007d7c: 8c12 ldrh r2, [r2, #32]
8007d7e: b292 uxth r2, r2
8007d80: 4413 add r3, r2
8007d82: 498f ldr r1, [pc, #572] ; (8007fc0 <Display+0x1fc8>)
8007d84: 0102 lsls r2, r0, #4
8007d86: 4413 add r3, r2
8007d88: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007d8c: 2303 movs r3, #3
8007d8e: 2150 movs r1, #80 ; 0x50
8007d90: 20dc movs r0, #220 ; 0xdc
8007d92: f7fd f8a3 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8007d96: 4b89 ldr r3, [pc, #548] ; (8007fbc <Display+0x1fc4>)
8007d98: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007d9c: b29b uxth r3, r3
8007d9e: 4618 mov r0, r3
8007da0: 4b86 ldr r3, [pc, #536] ; (8007fbc <Display+0x1fc4>)
8007da2: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8007da6: b29b uxth r3, r3
8007da8: 005b lsls r3, r3, #1
8007daa: 4a84 ldr r2, [pc, #528] ; (8007fbc <Display+0x1fc4>)
8007dac: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
8007db0: b292 uxth r2, r2
8007db2: 4413 add r3, r2
8007db4: 4982 ldr r1, [pc, #520] ; (8007fc0 <Display+0x1fc8>)
8007db6: 0102 lsls r2, r0, #4
8007db8: 4413 add r3, r2
8007dba: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007dbe: 2303 movs r3, #3
8007dc0: 2164 movs r1, #100 ; 0x64
8007dc2: 20dc movs r0, #220 ; 0xdc
8007dc4: f7fd f88a bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
8007dc8: 4b7c ldr r3, [pc, #496] ; (8007fbc <Display+0x1fc4>)
8007dca: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007dce: b29b uxth r3, r3
8007dd0: 4618 mov r0, r3
8007dd2: 4b7a ldr r3, [pc, #488] ; (8007fbc <Display+0x1fc4>)
8007dd4: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8007dd8: b29b uxth r3, r3
8007dda: 005b lsls r3, r3, #1
8007ddc: 4a77 ldr r2, [pc, #476] ; (8007fbc <Display+0x1fc4>)
8007dde: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
8007de2: b292 uxth r2, r2
8007de4: 4413 add r3, r2
8007de6: 4976 ldr r1, [pc, #472] ; (8007fc0 <Display+0x1fc8>)
8007de8: 0102 lsls r2, r0, #4
8007dea: 4413 add r3, r2
8007dec: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007df0: 2303 movs r3, #3
8007df2: 2178 movs r1, #120 ; 0x78
8007df4: 20dc movs r0, #220 ; 0xdc
8007df6: f7fd f871 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
8007dfa: f005 bdaf b.w 800d95c <Display+0x7964>
if(menupos == Val_1)
8007dfe: 4b71 ldr r3, [pc, #452] ; (8007fc4 <Display+0x1fcc>)
8007e00: 781b ldrb r3, [r3, #0]
8007e02: b2db uxtb r3, r3
8007e04: 2b01 cmp r3, #1
8007e06: f040 80aa bne.w 8007f5e <Display+0x1f66>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8007e0a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007e0e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8007e12: f7fc ff9d bl 8004d50 <LCD_SetColors>
if(focused)
8007e16: 4b6c ldr r3, [pc, #432] ; (8007fc8 <Display+0x1fd0>)
8007e18: 781b ldrb r3, [r3, #0]
8007e1a: b2db uxtb r3, r3
8007e1c: 2b00 cmp r3, #0
8007e1e: d01b beq.n 8007e58 <Display+0x1e60>
if(blk)
8007e20: 4b6a ldr r3, [pc, #424] ; (8007fcc <Display+0x1fd4>)
8007e22: 681b ldr r3, [r3, #0]
8007e24: 2b00 cmp r3, #0
8007e26: d02e beq.n 8007e86 <Display+0x1e8e>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
8007e28: 4b64 ldr r3, [pc, #400] ; (8007fbc <Display+0x1fc4>)
8007e2a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007e2e: b29b uxth r3, r3
8007e30: 4618 mov r0, r3
8007e32: 4b62 ldr r3, [pc, #392] ; (8007fbc <Display+0x1fc4>)
8007e34: 8a5b ldrh r3, [r3, #18]
8007e36: b29b uxth r3, r3
8007e38: 005b lsls r3, r3, #1
8007e3a: 4a60 ldr r2, [pc, #384] ; (8007fbc <Display+0x1fc4>)
8007e3c: 8812 ldrh r2, [r2, #0]
8007e3e: b292 uxth r2, r2
8007e40: 4413 add r3, r2
8007e42: 495f ldr r1, [pc, #380] ; (8007fc0 <Display+0x1fc8>)
8007e44: 0102 lsls r2, r0, #4
8007e46: 4413 add r3, r2
8007e48: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007e4c: 2303 movs r3, #3
8007e4e: 213c movs r1, #60 ; 0x3c
8007e50: 20dc movs r0, #220 ; 0xdc
8007e52: f7fd f843 bl 8004edc <BSP_LCD_DisplayStringAt>
8007e56: e016 b.n 8007e86 <Display+0x1e8e>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
8007e58: 4b58 ldr r3, [pc, #352] ; (8007fbc <Display+0x1fc4>)
8007e5a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007e5e: b29b uxth r3, r3
8007e60: 4618 mov r0, r3
8007e62: 4b56 ldr r3, [pc, #344] ; (8007fbc <Display+0x1fc4>)
8007e64: 8a5b ldrh r3, [r3, #18]
8007e66: b29b uxth r3, r3
8007e68: 005b lsls r3, r3, #1
8007e6a: 4a54 ldr r2, [pc, #336] ; (8007fbc <Display+0x1fc4>)
8007e6c: 8812 ldrh r2, [r2, #0]
8007e6e: b292 uxth r2, r2
8007e70: 4413 add r3, r2
8007e72: 4953 ldr r1, [pc, #332] ; (8007fc0 <Display+0x1fc8>)
8007e74: 0102 lsls r2, r0, #4
8007e76: 4413 add r3, r2
8007e78: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007e7c: 2303 movs r3, #3
8007e7e: 213c movs r1, #60 ; 0x3c
8007e80: 20dc movs r0, #220 ; 0xdc
8007e82: f7fd f82b bl 8004edc <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8007e86: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007e8a: 484b ldr r0, [pc, #300] ; (8007fb8 <Display+0x1fc0>)
8007e8c: f7fc ff60 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8007e90: f507 728e add.w r2, r7, #284 ; 0x11c
8007e94: 2303 movs r3, #3
8007e96: 213c movs r1, #60 ; 0x3c
8007e98: 208c movs r0, #140 ; 0x8c
8007e9a: f7fd f81f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8007e9e: f107 02e0 add.w r2, r7, #224 ; 0xe0
8007ea2: 2303 movs r3, #3
8007ea4: 2150 movs r1, #80 ; 0x50
8007ea6: 208c movs r0, #140 ; 0x8c
8007ea8: f7fd f818 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8007eac: f107 02a4 add.w r2, r7, #164 ; 0xa4
8007eb0: 2303 movs r3, #3
8007eb2: 2164 movs r1, #100 ; 0x64
8007eb4: 208c movs r0, #140 ; 0x8c
8007eb6: f7fd f811 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8007eba: f107 0268 add.w r2, r7, #104 ; 0x68
8007ebe: 2303 movs r3, #3
8007ec0: 2178 movs r1, #120 ; 0x78
8007ec2: 208c movs r0, #140 ; 0x8c
8007ec4: f7fd f80a bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8007ec8: 4b3c ldr r3, [pc, #240] ; (8007fbc <Display+0x1fc4>)
8007eca: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007ece: b29b uxth r3, r3
8007ed0: 4618 mov r0, r3
8007ed2: 4b3a ldr r3, [pc, #232] ; (8007fbc <Display+0x1fc4>)
8007ed4: 8e5b ldrh r3, [r3, #50] ; 0x32
8007ed6: b29b uxth r3, r3
8007ed8: 005b lsls r3, r3, #1
8007eda: 4a38 ldr r2, [pc, #224] ; (8007fbc <Display+0x1fc4>)
8007edc: 8c12 ldrh r2, [r2, #32]
8007ede: b292 uxth r2, r2
8007ee0: 4413 add r3, r2
8007ee2: 4937 ldr r1, [pc, #220] ; (8007fc0 <Display+0x1fc8>)
8007ee4: 0102 lsls r2, r0, #4
8007ee6: 4413 add r3, r2
8007ee8: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007eec: 2303 movs r3, #3
8007eee: 2150 movs r1, #80 ; 0x50
8007ef0: 20dc movs r0, #220 ; 0xdc
8007ef2: f7fc fff3 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8007ef6: 4b31 ldr r3, [pc, #196] ; (8007fbc <Display+0x1fc4>)
8007ef8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007efc: b29b uxth r3, r3
8007efe: 4618 mov r0, r3
8007f00: 4b2e ldr r3, [pc, #184] ; (8007fbc <Display+0x1fc4>)
8007f02: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8007f06: b29b uxth r3, r3
8007f08: 005b lsls r3, r3, #1
8007f0a: 4a2c ldr r2, [pc, #176] ; (8007fbc <Display+0x1fc4>)
8007f0c: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
8007f10: b292 uxth r2, r2
8007f12: 4413 add r3, r2
8007f14: 492a ldr r1, [pc, #168] ; (8007fc0 <Display+0x1fc8>)
8007f16: 0102 lsls r2, r0, #4
8007f18: 4413 add r3, r2
8007f1a: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007f1e: 2303 movs r3, #3
8007f20: 2164 movs r1, #100 ; 0x64
8007f22: 20dc movs r0, #220 ; 0xdc
8007f24: f7fc ffda bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
8007f28: 4b24 ldr r3, [pc, #144] ; (8007fbc <Display+0x1fc4>)
8007f2a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007f2e: b29b uxth r3, r3
8007f30: 4618 mov r0, r3
8007f32: 4b22 ldr r3, [pc, #136] ; (8007fbc <Display+0x1fc4>)
8007f34: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8007f38: b29b uxth r3, r3
8007f3a: 005b lsls r3, r3, #1
8007f3c: 4a1f ldr r2, [pc, #124] ; (8007fbc <Display+0x1fc4>)
8007f3e: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
8007f42: b292 uxth r2, r2
8007f44: 4413 add r3, r2
8007f46: 491e ldr r1, [pc, #120] ; (8007fc0 <Display+0x1fc8>)
8007f48: 0102 lsls r2, r0, #4
8007f4a: 4413 add r3, r2
8007f4c: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007f50: 2303 movs r3, #3
8007f52: 2178 movs r1, #120 ; 0x78
8007f54: 20dc movs r0, #220 ; 0xdc
8007f56: f7fc ffc1 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
8007f5a: f005 bcff b.w 800d95c <Display+0x7964>
if(menupos == Val_2)
8007f5e: 4b19 ldr r3, [pc, #100] ; (8007fc4 <Display+0x1fcc>)
8007f60: 781b ldrb r3, [r3, #0]
8007f62: b2db uxtb r3, r3
8007f64: 2b09 cmp r3, #9
8007f66: f040 80b6 bne.w 80080d6 <Display+0x20de>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8007f6a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007f6e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8007f72: f7fc feed bl 8004d50 <LCD_SetColors>
if(focused)
8007f76: 4b14 ldr r3, [pc, #80] ; (8007fc8 <Display+0x1fd0>)
8007f78: 781b ldrb r3, [r3, #0]
8007f7a: b2db uxtb r3, r3
8007f7c: 2b00 cmp r3, #0
8007f7e: d027 beq.n 8007fd0 <Display+0x1fd8>
if(blk)
8007f80: 4b12 ldr r3, [pc, #72] ; (8007fcc <Display+0x1fd4>)
8007f82: 681b ldr r3, [r3, #0]
8007f84: 2b00 cmp r3, #0
8007f86: d03a beq.n 8007ffe <Display+0x2006>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8007f88: 4b0c ldr r3, [pc, #48] ; (8007fbc <Display+0x1fc4>)
8007f8a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007f8e: b29b uxth r3, r3
8007f90: 4618 mov r0, r3
8007f92: 4b0a ldr r3, [pc, #40] ; (8007fbc <Display+0x1fc4>)
8007f94: 8e5b ldrh r3, [r3, #50] ; 0x32
8007f96: b29b uxth r3, r3
8007f98: 005b lsls r3, r3, #1
8007f9a: 4a08 ldr r2, [pc, #32] ; (8007fbc <Display+0x1fc4>)
8007f9c: 8c12 ldrh r2, [r2, #32]
8007f9e: b292 uxth r2, r2
8007fa0: 4413 add r3, r2
8007fa2: 4907 ldr r1, [pc, #28] ; (8007fc0 <Display+0x1fc8>)
8007fa4: 0102 lsls r2, r0, #4
8007fa6: 4413 add r3, r2
8007fa8: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007fac: 2303 movs r3, #3
8007fae: 2150 movs r1, #80 ; 0x50
8007fb0: 20dc movs r0, #220 ; 0xdc
8007fb2: f7fc ff93 bl 8004edc <BSP_LCD_DisplayStringAt>
8007fb6: e022 b.n 8007ffe <Display+0x2006>
8007fb8: ffd8aa57 .word 0xffd8aa57
8007fbc: 2006bca8 .word 0x2006bca8
8007fc0: 200200bc .word 0x200200bc
8007fc4: 20020010 .word 0x20020010
8007fc8: 200209e4 .word 0x200209e4
8007fcc: 2006ba78 .word 0x2006ba78
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8007fd0: 4bb1 ldr r3, [pc, #708] ; (8008298 <Display+0x22a0>)
8007fd2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007fd6: b29b uxth r3, r3
8007fd8: 4618 mov r0, r3
8007fda: 4baf ldr r3, [pc, #700] ; (8008298 <Display+0x22a0>)
8007fdc: 8e5b ldrh r3, [r3, #50] ; 0x32
8007fde: b29b uxth r3, r3
8007fe0: 005b lsls r3, r3, #1
8007fe2: 4aad ldr r2, [pc, #692] ; (8008298 <Display+0x22a0>)
8007fe4: 8c12 ldrh r2, [r2, #32]
8007fe6: b292 uxth r2, r2
8007fe8: 4413 add r3, r2
8007fea: 49ac ldr r1, [pc, #688] ; (800829c <Display+0x22a4>)
8007fec: 0102 lsls r2, r0, #4
8007fee: 4413 add r3, r2
8007ff0: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007ff4: 2303 movs r3, #3
8007ff6: 2150 movs r1, #80 ; 0x50
8007ff8: 20dc movs r0, #220 ; 0xdc
8007ffa: f7fc ff6f bl 8004edc <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8007ffe: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008002: 48a7 ldr r0, [pc, #668] ; (80082a0 <Display+0x22a8>)
8008004: f7fc fea4 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8008008: f507 728e add.w r2, r7, #284 ; 0x11c
800800c: 2303 movs r3, #3
800800e: 213c movs r1, #60 ; 0x3c
8008010: 208c movs r0, #140 ; 0x8c
8008012: f7fc ff63 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8008016: f107 02e0 add.w r2, r7, #224 ; 0xe0
800801a: 2303 movs r3, #3
800801c: 2150 movs r1, #80 ; 0x50
800801e: 208c movs r0, #140 ; 0x8c
8008020: f7fc ff5c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8008024: f107 02a4 add.w r2, r7, #164 ; 0xa4
8008028: 2303 movs r3, #3
800802a: 2164 movs r1, #100 ; 0x64
800802c: 208c movs r0, #140 ; 0x8c
800802e: f7fc ff55 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8008032: f107 0268 add.w r2, r7, #104 ; 0x68
8008036: 2303 movs r3, #3
8008038: 2178 movs r1, #120 ; 0x78
800803a: 208c movs r0, #140 ; 0x8c
800803c: f7fc ff4e bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
8008040: 4b95 ldr r3, [pc, #596] ; (8008298 <Display+0x22a0>)
8008042: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008046: b29b uxth r3, r3
8008048: 4618 mov r0, r3
800804a: 4b93 ldr r3, [pc, #588] ; (8008298 <Display+0x22a0>)
800804c: 8a5b ldrh r3, [r3, #18]
800804e: b29b uxth r3, r3
8008050: 005b lsls r3, r3, #1
8008052: 4a91 ldr r2, [pc, #580] ; (8008298 <Display+0x22a0>)
8008054: 8812 ldrh r2, [r2, #0]
8008056: b292 uxth r2, r2
8008058: 4413 add r3, r2
800805a: 4990 ldr r1, [pc, #576] ; (800829c <Display+0x22a4>)
800805c: 0102 lsls r2, r0, #4
800805e: 4413 add r3, r2
8008060: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008064: 2303 movs r3, #3
8008066: 213c movs r1, #60 ; 0x3c
8008068: 20dc movs r0, #220 ; 0xdc
800806a: f7fc ff37 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
800806e: 4b8a ldr r3, [pc, #552] ; (8008298 <Display+0x22a0>)
8008070: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008074: b29b uxth r3, r3
8008076: 4618 mov r0, r3
8008078: 4b87 ldr r3, [pc, #540] ; (8008298 <Display+0x22a0>)
800807a: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
800807e: b29b uxth r3, r3
8008080: 005b lsls r3, r3, #1
8008082: 4a85 ldr r2, [pc, #532] ; (8008298 <Display+0x22a0>)
8008084: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
8008088: b292 uxth r2, r2
800808a: 4413 add r3, r2
800808c: 4983 ldr r1, [pc, #524] ; (800829c <Display+0x22a4>)
800808e: 0102 lsls r2, r0, #4
8008090: 4413 add r3, r2
8008092: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008096: 2303 movs r3, #3
8008098: 2164 movs r1, #100 ; 0x64
800809a: 20dc movs r0, #220 ; 0xdc
800809c: f7fc ff1e bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
80080a0: 4b7d ldr r3, [pc, #500] ; (8008298 <Display+0x22a0>)
80080a2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80080a6: b29b uxth r3, r3
80080a8: 4618 mov r0, r3
80080aa: 4b7b ldr r3, [pc, #492] ; (8008298 <Display+0x22a0>)
80080ac: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
80080b0: b29b uxth r3, r3
80080b2: 005b lsls r3, r3, #1
80080b4: 4a78 ldr r2, [pc, #480] ; (8008298 <Display+0x22a0>)
80080b6: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
80080ba: b292 uxth r2, r2
80080bc: 4413 add r3, r2
80080be: 4977 ldr r1, [pc, #476] ; (800829c <Display+0x22a4>)
80080c0: 0102 lsls r2, r0, #4
80080c2: 4413 add r3, r2
80080c4: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80080c8: 2303 movs r3, #3
80080ca: 2178 movs r1, #120 ; 0x78
80080cc: 20dc movs r0, #220 ; 0xdc
80080ce: f7fc ff05 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
80080d2: f005 bc43 b.w 800d95c <Display+0x7964>
if(menupos == Val_3)
80080d6: 4b73 ldr r3, [pc, #460] ; (80082a4 <Display+0x22ac>)
80080d8: 781b ldrb r3, [r3, #0]
80080da: b2db uxtb r3, r3
80080dc: 2b11 cmp r3, #17
80080de: f040 80ac bne.w 800823a <Display+0x2242>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
80080e2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80080e6: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
80080ea: f7fc fe31 bl 8004d50 <LCD_SetColors>
if(focused)
80080ee: 4b6e ldr r3, [pc, #440] ; (80082a8 <Display+0x22b0>)
80080f0: 781b ldrb r3, [r3, #0]
80080f2: b2db uxtb r3, r3
80080f4: 2b00 cmp r3, #0
80080f6: d01d beq.n 8008134 <Display+0x213c>
if(blk)
80080f8: 4b6c ldr r3, [pc, #432] ; (80082ac <Display+0x22b4>)
80080fa: 681b ldr r3, [r3, #0]
80080fc: 2b00 cmp r3, #0
80080fe: d032 beq.n 8008166 <Display+0x216e>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8008100: 4b65 ldr r3, [pc, #404] ; (8008298 <Display+0x22a0>)
8008102: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008106: b29b uxth r3, r3
8008108: 4618 mov r0, r3
800810a: 4b63 ldr r3, [pc, #396] ; (8008298 <Display+0x22a0>)
800810c: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8008110: b29b uxth r3, r3
8008112: 005b lsls r3, r3, #1
8008114: 4a60 ldr r2, [pc, #384] ; (8008298 <Display+0x22a0>)
8008116: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
800811a: b292 uxth r2, r2
800811c: 4413 add r3, r2
800811e: 495f ldr r1, [pc, #380] ; (800829c <Display+0x22a4>)
8008120: 0102 lsls r2, r0, #4
8008122: 4413 add r3, r2
8008124: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008128: 2303 movs r3, #3
800812a: 2164 movs r1, #100 ; 0x64
800812c: 20dc movs r0, #220 ; 0xdc
800812e: f7fc fed5 bl 8004edc <BSP_LCD_DisplayStringAt>
8008132: e018 b.n 8008166 <Display+0x216e>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8008134: 4b58 ldr r3, [pc, #352] ; (8008298 <Display+0x22a0>)
8008136: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800813a: b29b uxth r3, r3
800813c: 4618 mov r0, r3
800813e: 4b56 ldr r3, [pc, #344] ; (8008298 <Display+0x22a0>)
8008140: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8008144: b29b uxth r3, r3
8008146: 005b lsls r3, r3, #1
8008148: 4a53 ldr r2, [pc, #332] ; (8008298 <Display+0x22a0>)
800814a: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
800814e: b292 uxth r2, r2
8008150: 4413 add r3, r2
8008152: 4952 ldr r1, [pc, #328] ; (800829c <Display+0x22a4>)
8008154: 0102 lsls r2, r0, #4
8008156: 4413 add r3, r2
8008158: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800815c: 2303 movs r3, #3
800815e: 2164 movs r1, #100 ; 0x64
8008160: 20dc movs r0, #220 ; 0xdc
8008162: f7fc febb bl 8004edc <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8008166: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800816a: 484d ldr r0, [pc, #308] ; (80082a0 <Display+0x22a8>)
800816c: f7fc fdf0 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8008170: f507 728e add.w r2, r7, #284 ; 0x11c
8008174: 2303 movs r3, #3
8008176: 213c movs r1, #60 ; 0x3c
8008178: 208c movs r0, #140 ; 0x8c
800817a: f7fc feaf bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
800817e: f107 02e0 add.w r2, r7, #224 ; 0xe0
8008182: 2303 movs r3, #3
8008184: 2150 movs r1, #80 ; 0x50
8008186: 208c movs r0, #140 ; 0x8c
8008188: f7fc fea8 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
800818c: f107 02a4 add.w r2, r7, #164 ; 0xa4
8008190: 2303 movs r3, #3
8008192: 2164 movs r1, #100 ; 0x64
8008194: 208c movs r0, #140 ; 0x8c
8008196: f7fc fea1 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
800819a: f107 0268 add.w r2, r7, #104 ; 0x68
800819e: 2303 movs r3, #3
80081a0: 2178 movs r1, #120 ; 0x78
80081a2: 208c movs r0, #140 ; 0x8c
80081a4: f7fc fe9a bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
80081a8: 4b3b ldr r3, [pc, #236] ; (8008298 <Display+0x22a0>)
80081aa: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80081ae: b29b uxth r3, r3
80081b0: 4618 mov r0, r3
80081b2: 4b39 ldr r3, [pc, #228] ; (8008298 <Display+0x22a0>)
80081b4: 8a5b ldrh r3, [r3, #18]
80081b6: b29b uxth r3, r3
80081b8: 005b lsls r3, r3, #1
80081ba: 4a37 ldr r2, [pc, #220] ; (8008298 <Display+0x22a0>)
80081bc: 8812 ldrh r2, [r2, #0]
80081be: b292 uxth r2, r2
80081c0: 4413 add r3, r2
80081c2: 4936 ldr r1, [pc, #216] ; (800829c <Display+0x22a4>)
80081c4: 0102 lsls r2, r0, #4
80081c6: 4413 add r3, r2
80081c8: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80081cc: 2303 movs r3, #3
80081ce: 213c movs r1, #60 ; 0x3c
80081d0: 20dc movs r0, #220 ; 0xdc
80081d2: f7fc fe83 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
80081d6: 4b30 ldr r3, [pc, #192] ; (8008298 <Display+0x22a0>)
80081d8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80081dc: b29b uxth r3, r3
80081de: 4618 mov r0, r3
80081e0: 4b2d ldr r3, [pc, #180] ; (8008298 <Display+0x22a0>)
80081e2: 8e5b ldrh r3, [r3, #50] ; 0x32
80081e4: b29b uxth r3, r3
80081e6: 005b lsls r3, r3, #1
80081e8: 4a2b ldr r2, [pc, #172] ; (8008298 <Display+0x22a0>)
80081ea: 8c12 ldrh r2, [r2, #32]
80081ec: b292 uxth r2, r2
80081ee: 4413 add r3, r2
80081f0: 492a ldr r1, [pc, #168] ; (800829c <Display+0x22a4>)
80081f2: 0102 lsls r2, r0, #4
80081f4: 4413 add r3, r2
80081f6: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80081fa: 2303 movs r3, #3
80081fc: 2150 movs r1, #80 ; 0x50
80081fe: 20dc movs r0, #220 ; 0xdc
8008200: f7fc fe6c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
8008204: 4b24 ldr r3, [pc, #144] ; (8008298 <Display+0x22a0>)
8008206: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800820a: b29b uxth r3, r3
800820c: 4618 mov r0, r3
800820e: 4b22 ldr r3, [pc, #136] ; (8008298 <Display+0x22a0>)
8008210: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8008214: b29b uxth r3, r3
8008216: 005b lsls r3, r3, #1
8008218: 4a1f ldr r2, [pc, #124] ; (8008298 <Display+0x22a0>)
800821a: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
800821e: b292 uxth r2, r2
8008220: 4413 add r3, r2
8008222: 491e ldr r1, [pc, #120] ; (800829c <Display+0x22a4>)
8008224: 0102 lsls r2, r0, #4
8008226: 4413 add r3, r2
8008228: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800822c: 2303 movs r3, #3
800822e: 2178 movs r1, #120 ; 0x78
8008230: 20dc movs r0, #220 ; 0xdc
8008232: f7fc fe53 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
8008236: f005 bb91 b.w 800d95c <Display+0x7964>
if(menupos == Val_4)
800823a: 4b1a ldr r3, [pc, #104] ; (80082a4 <Display+0x22ac>)
800823c: 781b ldrb r3, [r3, #0]
800823e: b2db uxtb r3, r3
8008240: 2b19 cmp r3, #25
8008242: f040 80b8 bne.w 80083b6 <Display+0x23be>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8008246: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800824a: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800824e: f7fc fd7f bl 8004d50 <LCD_SetColors>
if(focused)
8008252: 4b15 ldr r3, [pc, #84] ; (80082a8 <Display+0x22b0>)
8008254: 781b ldrb r3, [r3, #0]
8008256: b2db uxtb r3, r3
8008258: 2b00 cmp r3, #0
800825a: d029 beq.n 80082b0 <Display+0x22b8>
if(blk)
800825c: 4b13 ldr r3, [pc, #76] ; (80082ac <Display+0x22b4>)
800825e: 681b ldr r3, [r3, #0]
8008260: 2b00 cmp r3, #0
8008262: d03e beq.n 80082e2 <Display+0x22ea>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
8008264: 4b0c ldr r3, [pc, #48] ; (8008298 <Display+0x22a0>)
8008266: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800826a: b29b uxth r3, r3
800826c: 4618 mov r0, r3
800826e: 4b0a ldr r3, [pc, #40] ; (8008298 <Display+0x22a0>)
8008270: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8008274: b29b uxth r3, r3
8008276: 005b lsls r3, r3, #1
8008278: 4a07 ldr r2, [pc, #28] ; (8008298 <Display+0x22a0>)
800827a: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
800827e: b292 uxth r2, r2
8008280: 4413 add r3, r2
8008282: 4906 ldr r1, [pc, #24] ; (800829c <Display+0x22a4>)
8008284: 0102 lsls r2, r0, #4
8008286: 4413 add r3, r2
8008288: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800828c: 2303 movs r3, #3
800828e: 2178 movs r1, #120 ; 0x78
8008290: 20dc movs r0, #220 ; 0xdc
8008292: f7fc fe23 bl 8004edc <BSP_LCD_DisplayStringAt>
8008296: e024 b.n 80082e2 <Display+0x22ea>
8008298: 2006bca8 .word 0x2006bca8
800829c: 200200bc .word 0x200200bc
80082a0: ffd8aa57 .word 0xffd8aa57
80082a4: 20020010 .word 0x20020010
80082a8: 200209e4 .word 0x200209e4
80082ac: 2006ba78 .word 0x2006ba78
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
80082b0: 4bb0 ldr r3, [pc, #704] ; (8008574 <Display+0x257c>)
80082b2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80082b6: b29b uxth r3, r3
80082b8: 4618 mov r0, r3
80082ba: 4bae ldr r3, [pc, #696] ; (8008574 <Display+0x257c>)
80082bc: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
80082c0: b29b uxth r3, r3
80082c2: 005b lsls r3, r3, #1
80082c4: 4aab ldr r2, [pc, #684] ; (8008574 <Display+0x257c>)
80082c6: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
80082ca: b292 uxth r2, r2
80082cc: 4413 add r3, r2
80082ce: 49aa ldr r1, [pc, #680] ; (8008578 <Display+0x2580>)
80082d0: 0102 lsls r2, r0, #4
80082d2: 4413 add r3, r2
80082d4: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80082d8: 2303 movs r3, #3
80082da: 2178 movs r1, #120 ; 0x78
80082dc: 20dc movs r0, #220 ; 0xdc
80082de: f7fc fdfd bl 8004edc <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
80082e2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80082e6: 48a5 ldr r0, [pc, #660] ; (800857c <Display+0x2584>)
80082e8: f7fc fd32 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
80082ec: f507 728e add.w r2, r7, #284 ; 0x11c
80082f0: 2303 movs r3, #3
80082f2: 213c movs r1, #60 ; 0x3c
80082f4: 208c movs r0, #140 ; 0x8c
80082f6: f7fc fdf1 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
80082fa: f107 02e0 add.w r2, r7, #224 ; 0xe0
80082fe: 2303 movs r3, #3
8008300: 2150 movs r1, #80 ; 0x50
8008302: 208c movs r0, #140 ; 0x8c
8008304: f7fc fdea bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8008308: f107 02a4 add.w r2, r7, #164 ; 0xa4
800830c: 2303 movs r3, #3
800830e: 2164 movs r1, #100 ; 0x64
8008310: 208c movs r0, #140 ; 0x8c
8008312: f7fc fde3 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8008316: f107 0268 add.w r2, r7, #104 ; 0x68
800831a: 2303 movs r3, #3
800831c: 2178 movs r1, #120 ; 0x78
800831e: 208c movs r0, #140 ; 0x8c
8008320: f7fc fddc bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
8008324: 4b93 ldr r3, [pc, #588] ; (8008574 <Display+0x257c>)
8008326: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800832a: b29b uxth r3, r3
800832c: 4618 mov r0, r3
800832e: 4b91 ldr r3, [pc, #580] ; (8008574 <Display+0x257c>)
8008330: 8a5b ldrh r3, [r3, #18]
8008332: b29b uxth r3, r3
8008334: 005b lsls r3, r3, #1
8008336: 4a8f ldr r2, [pc, #572] ; (8008574 <Display+0x257c>)
8008338: 8812 ldrh r2, [r2, #0]
800833a: b292 uxth r2, r2
800833c: 4413 add r3, r2
800833e: 498e ldr r1, [pc, #568] ; (8008578 <Display+0x2580>)
8008340: 0102 lsls r2, r0, #4
8008342: 4413 add r3, r2
8008344: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008348: 2303 movs r3, #3
800834a: 213c movs r1, #60 ; 0x3c
800834c: 20dc movs r0, #220 ; 0xdc
800834e: f7fc fdc5 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8008352: 4b88 ldr r3, [pc, #544] ; (8008574 <Display+0x257c>)
8008354: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008358: b29b uxth r3, r3
800835a: 4618 mov r0, r3
800835c: 4b85 ldr r3, [pc, #532] ; (8008574 <Display+0x257c>)
800835e: 8e5b ldrh r3, [r3, #50] ; 0x32
8008360: b29b uxth r3, r3
8008362: 005b lsls r3, r3, #1
8008364: 4a83 ldr r2, [pc, #524] ; (8008574 <Display+0x257c>)
8008366: 8c12 ldrh r2, [r2, #32]
8008368: b292 uxth r2, r2
800836a: 4413 add r3, r2
800836c: 4982 ldr r1, [pc, #520] ; (8008578 <Display+0x2580>)
800836e: 0102 lsls r2, r0, #4
8008370: 4413 add r3, r2
8008372: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008376: 2303 movs r3, #3
8008378: 2150 movs r1, #80 ; 0x50
800837a: 20dc movs r0, #220 ; 0xdc
800837c: f7fc fdae bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8008380: 4b7c ldr r3, [pc, #496] ; (8008574 <Display+0x257c>)
8008382: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008386: b29b uxth r3, r3
8008388: 4618 mov r0, r3
800838a: 4b7a ldr r3, [pc, #488] ; (8008574 <Display+0x257c>)
800838c: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8008390: b29b uxth r3, r3
8008392: 005b lsls r3, r3, #1
8008394: 4a77 ldr r2, [pc, #476] ; (8008574 <Display+0x257c>)
8008396: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
800839a: b292 uxth r2, r2
800839c: 4413 add r3, r2
800839e: 4976 ldr r1, [pc, #472] ; (8008578 <Display+0x2580>)
80083a0: 0102 lsls r2, r0, #4
80083a2: 4413 add r3, r2
80083a4: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80083a8: 2303 movs r3, #3
80083aa: 2164 movs r1, #100 ; 0x64
80083ac: 20dc movs r0, #220 ; 0xdc
80083ae: f7fc fd95 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
80083b2: f005 bad3 b.w 800d95c <Display+0x7964>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
80083b6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80083ba: 4870 ldr r0, [pc, #448] ; (800857c <Display+0x2584>)
80083bc: f7fc fcc8 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
80083c0: 4b6c ldr r3, [pc, #432] ; (8008574 <Display+0x257c>)
80083c2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80083c6: b29b uxth r3, r3
80083c8: 4618 mov r0, r3
80083ca: 4b6a ldr r3, [pc, #424] ; (8008574 <Display+0x257c>)
80083cc: 8a5b ldrh r3, [r3, #18]
80083ce: b29b uxth r3, r3
80083d0: 005b lsls r3, r3, #1
80083d2: 4a68 ldr r2, [pc, #416] ; (8008574 <Display+0x257c>)
80083d4: 8812 ldrh r2, [r2, #0]
80083d6: b292 uxth r2, r2
80083d8: 4413 add r3, r2
80083da: 4967 ldr r1, [pc, #412] ; (8008578 <Display+0x2580>)
80083dc: 0102 lsls r2, r0, #4
80083de: 4413 add r3, r2
80083e0: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80083e4: 2303 movs r3, #3
80083e6: 213c movs r1, #60 ; 0x3c
80083e8: 20dc movs r0, #220 ; 0xdc
80083ea: f7fc fd77 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
80083ee: 4b61 ldr r3, [pc, #388] ; (8008574 <Display+0x257c>)
80083f0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80083f4: b29b uxth r3, r3
80083f6: 4618 mov r0, r3
80083f8: 4b5e ldr r3, [pc, #376] ; (8008574 <Display+0x257c>)
80083fa: 8e5b ldrh r3, [r3, #50] ; 0x32
80083fc: b29b uxth r3, r3
80083fe: 005b lsls r3, r3, #1
8008400: 4a5c ldr r2, [pc, #368] ; (8008574 <Display+0x257c>)
8008402: 8c12 ldrh r2, [r2, #32]
8008404: b292 uxth r2, r2
8008406: 4413 add r3, r2
8008408: 495b ldr r1, [pc, #364] ; (8008578 <Display+0x2580>)
800840a: 0102 lsls r2, r0, #4
800840c: 4413 add r3, r2
800840e: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008412: 2303 movs r3, #3
8008414: 2150 movs r1, #80 ; 0x50
8008416: 20dc movs r0, #220 ; 0xdc
8008418: f7fc fd60 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
800841c: 4b55 ldr r3, [pc, #340] ; (8008574 <Display+0x257c>)
800841e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008422: b29b uxth r3, r3
8008424: 4618 mov r0, r3
8008426: 4b53 ldr r3, [pc, #332] ; (8008574 <Display+0x257c>)
8008428: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
800842c: b29b uxth r3, r3
800842e: 005b lsls r3, r3, #1
8008430: 4a50 ldr r2, [pc, #320] ; (8008574 <Display+0x257c>)
8008432: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
8008436: b292 uxth r2, r2
8008438: 4413 add r3, r2
800843a: 494f ldr r1, [pc, #316] ; (8008578 <Display+0x2580>)
800843c: 0102 lsls r2, r0, #4
800843e: 4413 add r3, r2
8008440: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008444: 2303 movs r3, #3
8008446: 2164 movs r1, #100 ; 0x64
8008448: 20dc movs r0, #220 ; 0xdc
800844a: f7fc fd47 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
800844e: 4b49 ldr r3, [pc, #292] ; (8008574 <Display+0x257c>)
8008450: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008454: b29b uxth r3, r3
8008456: 4618 mov r0, r3
8008458: 4b46 ldr r3, [pc, #280] ; (8008574 <Display+0x257c>)
800845a: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
800845e: b29b uxth r3, r3
8008460: 005b lsls r3, r3, #1
8008462: 4a44 ldr r2, [pc, #272] ; (8008574 <Display+0x257c>)
8008464: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
8008468: b292 uxth r2, r2
800846a: 4413 add r3, r2
800846c: 4942 ldr r1, [pc, #264] ; (8008578 <Display+0x2580>)
800846e: 0102 lsls r2, r0, #4
8008470: 4413 add r3, r2
8008472: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008476: 2303 movs r3, #3
8008478: 2178 movs r1, #120 ; 0x78
800847a: 20dc movs r0, #220 ; 0xdc
800847c: f7fc fd2e bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos >= Kikdt_1 && menupos <= Kpt_1)
8008480: 4b3f ldr r3, [pc, #252] ; (8008580 <Display+0x2588>)
8008482: 781b ldrb r3, [r3, #0]
8008484: b2db uxtb r3, r3
8008486: 2b01 cmp r3, #1
8008488: f241 8152 bls.w 8009730 <Display+0x3738>
800848c: 4b3c ldr r3, [pc, #240] ; (8008580 <Display+0x2588>)
800848e: 781b ldrb r3, [r3, #0]
8008490: b2db uxtb r3, r3
8008492: 2b07 cmp r3, #7
8008494: f201 814c bhi.w 8009730 <Display+0x3738>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8008498: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800849c: 4837 ldr r0, [pc, #220] ; (800857c <Display+0x2584>)
800849e: f7fc fc57 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
80084a2: f107 02e0 add.w r2, r7, #224 ; 0xe0
80084a6: 2303 movs r3, #3
80084a8: 2150 movs r1, #80 ; 0x50
80084aa: 208c movs r0, #140 ; 0x8c
80084ac: f7fc fd16 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
80084b0: f107 02a4 add.w r2, r7, #164 ; 0xa4
80084b4: 2303 movs r3, #3
80084b6: 2164 movs r1, #100 ; 0x64
80084b8: 208c movs r0, #140 ; 0x8c
80084ba: f7fc fd0f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
80084be: f107 0268 add.w r2, r7, #104 ; 0x68
80084c2: 2303 movs r3, #3
80084c4: 2178 movs r1, #120 ; 0x78
80084c6: 208c movs r0, #140 ; 0x8c
80084c8: f7fc fd08 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80084cc: 4b2c ldr r3, [pc, #176] ; (8008580 <Display+0x2588>)
80084ce: 781b ldrb r3, [r3, #0]
80084d0: b2db uxtb r3, r3
80084d2: 2b02 cmp r3, #2
80084d4: f040 814f bne.w 8008776 <Display+0x277e>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
80084d8: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80084dc: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
80084e0: f7fc fc36 bl 8004d50 <LCD_SetColors>
if(blk)
80084e4: 4b27 ldr r3, [pc, #156] ; (8008584 <Display+0x258c>)
80084e6: 681b ldr r3, [r3, #0]
80084e8: 2b00 cmp r3, #0
80084ea: d00b beq.n 8008504 <Display+0x250c>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
80084ec: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
80084f0: b2db uxtb r3, r3
80084f2: 461a mov r2, r3
80084f4: 4b24 ldr r3, [pc, #144] ; (8008588 <Display+0x2590>)
80084f6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80084fa: 2303 movs r3, #3
80084fc: 213c movs r1, #60 ; 0x3c
80084fe: 208c movs r0, #140 ; 0x8c
8008500: f7fc fcec bl 8004edc <BSP_LCD_DisplayStringAt>
if(!ipt1)
8008504: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008508: b2db uxtb r3, r3
800850a: 2b00 cmp r3, #0
800850c: d13e bne.n 800858c <Display+0x2594>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
800850e: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008512: b2db uxtb r3, r3
8008514: 461a mov r2, r3
8008516: 4b1c ldr r3, [pc, #112] ; (8008588 <Display+0x2590>)
8008518: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800851c: 2303 movs r3, #3
800851e: 213c movs r1, #60 ; 0x3c
8008520: 2093 movs r0, #147 ; 0x93
8008522: f7fc fcdb bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008526: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
800852a: b2db uxtb r3, r3
800852c: 461a mov r2, r3
800852e: 4b16 ldr r3, [pc, #88] ; (8008588 <Display+0x2590>)
8008530: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008534: 2303 movs r3, #3
8008536: 213c movs r1, #60 ; 0x3c
8008538: 209a movs r0, #154 ; 0x9a
800853a: f7fc fccf bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
800853e: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008542: b2db uxtb r3, r3
8008544: 461a mov r2, r3
8008546: 4b10 ldr r3, [pc, #64] ; (8008588 <Display+0x2590>)
8008548: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800854c: 2303 movs r3, #3
800854e: 213c movs r1, #60 ; 0x3c
8008550: 20a1 movs r0, #161 ; 0xa1
8008552: f7fc fcc3 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008556: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
800855a: b2db uxtb r3, r3
800855c: 461a mov r2, r3
800855e: 4b0a ldr r3, [pc, #40] ; (8008588 <Display+0x2590>)
8008560: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008564: 2303 movs r3, #3
8008566: 213c movs r1, #60 ; 0x3c
8008568: 20a8 movs r0, #168 ; 0xa8
800856a: f7fc fcb7 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
800856e: f004 bce2 b.w 800cf36 <Display+0x6f3e>
8008572: bf00 nop
8008574: 2006bca8 .word 0x2006bca8
8008578: 200200bc .word 0x200200bc
800857c: ffd8aa57 .word 0xffd8aa57
8008580: 20020010 .word 0x20020010
8008584: 2006ba78 .word 0x2006ba78
8008588: 2002096c .word 0x2002096c
if(ipt1 == 1)
800858c: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008590: b2db uxtb r3, r3
8008592: 2b01 cmp r3, #1
8008594: d137 bne.n 8008606 <Display+0x260e>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008596: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
800859a: b2db uxtb r3, r3
800859c: 461a mov r2, r3
800859e: 4bc6 ldr r3, [pc, #792] ; (80088b8 <Display+0x28c0>)
80085a0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80085a4: 2303 movs r3, #3
80085a6: 213c movs r1, #60 ; 0x3c
80085a8: 2093 movs r0, #147 ; 0x93
80085aa: f7fc fc97 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
80085ae: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80085b2: b2db uxtb r3, r3
80085b4: 461a mov r2, r3
80085b6: 4bc0 ldr r3, [pc, #768] ; (80088b8 <Display+0x28c0>)
80085b8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80085bc: 2303 movs r3, #3
80085be: 213c movs r1, #60 ; 0x3c
80085c0: 209a movs r0, #154 ; 0x9a
80085c2: f7fc fc8b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
80085c6: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80085ca: b2db uxtb r3, r3
80085cc: 461a mov r2, r3
80085ce: 4bba ldr r3, [pc, #744] ; (80088b8 <Display+0x28c0>)
80085d0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80085d4: 2303 movs r3, #3
80085d6: 213c movs r1, #60 ; 0x3c
80085d8: 20a1 movs r0, #161 ; 0xa1
80085da: f7fc fc7f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE);
80085de: 2303 movs r3, #3
80085e0: 4ab6 ldr r2, [pc, #728] ; (80088bc <Display+0x28c4>)
80085e2: 213c movs r1, #60 ; 0x3c
80085e4: 20a8 movs r0, #168 ; 0xa8
80085e6: f7fc fc79 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
80085ea: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80085ee: b2db uxtb r3, r3
80085f0: 461a mov r2, r3
80085f2: 4bb1 ldr r3, [pc, #708] ; (80088b8 <Display+0x28c0>)
80085f4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80085f8: 2303 movs r3, #3
80085fa: 213c movs r1, #60 ; 0x3c
80085fc: 20af movs r0, #175 ; 0xaf
80085fe: f7fc fc6d bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008602: f004 bc98 b.w 800cf36 <Display+0x6f3e>
if(ipt1 == 2)
8008606: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
800860a: b2db uxtb r3, r3
800860c: 2b02 cmp r3, #2
800860e: d137 bne.n 8008680 <Display+0x2688>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008610: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008614: b2db uxtb r3, r3
8008616: 461a mov r2, r3
8008618: 4ba7 ldr r3, [pc, #668] ; (80088b8 <Display+0x28c0>)
800861a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800861e: 2303 movs r3, #3
8008620: 213c movs r1, #60 ; 0x3c
8008622: 2093 movs r0, #147 ; 0x93
8008624: f7fc fc5a bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008628: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
800862c: b2db uxtb r3, r3
800862e: 461a mov r2, r3
8008630: 4ba1 ldr r3, [pc, #644] ; (80088b8 <Display+0x28c0>)
8008632: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008636: 2303 movs r3, #3
8008638: 213c movs r1, #60 ; 0x3c
800863a: 209a movs r0, #154 ; 0x9a
800863c: f7fc fc4e bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE);
8008640: 2303 movs r3, #3
8008642: 4a9e ldr r2, [pc, #632] ; (80088bc <Display+0x28c4>)
8008644: 213c movs r1, #60 ; 0x3c
8008646: 20a1 movs r0, #161 ; 0xa1
8008648: f7fc fc48 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
800864c: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008650: b2db uxtb r3, r3
8008652: 461a mov r2, r3
8008654: 4b98 ldr r3, [pc, #608] ; (80088b8 <Display+0x28c0>)
8008656: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800865a: 2303 movs r3, #3
800865c: 213c movs r1, #60 ; 0x3c
800865e: 20a8 movs r0, #168 ; 0xa8
8008660: f7fc fc3c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008664: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008668: b2db uxtb r3, r3
800866a: 461a mov r2, r3
800866c: 4b92 ldr r3, [pc, #584] ; (80088b8 <Display+0x28c0>)
800866e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008672: 2303 movs r3, #3
8008674: 213c movs r1, #60 ; 0x3c
8008676: 20af movs r0, #175 ; 0xaf
8008678: f7fc fc30 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
800867c: f004 bc5b b.w 800cf36 <Display+0x6f3e>
if(ipt1 == 3)
8008680: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008684: b2db uxtb r3, r3
8008686: 2b03 cmp r3, #3
8008688: d137 bne.n 80086fa <Display+0x2702>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
800868a: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
800868e: b2db uxtb r3, r3
8008690: 461a mov r2, r3
8008692: 4b89 ldr r3, [pc, #548] ; (80088b8 <Display+0x28c0>)
8008694: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008698: 2303 movs r3, #3
800869a: 213c movs r1, #60 ; 0x3c
800869c: 2093 movs r0, #147 ; 0x93
800869e: f7fc fc1d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE);
80086a2: 2303 movs r3, #3
80086a4: 4a85 ldr r2, [pc, #532] ; (80088bc <Display+0x28c4>)
80086a6: 213c movs r1, #60 ; 0x3c
80086a8: 209a movs r0, #154 ; 0x9a
80086aa: f7fc fc17 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
80086ae: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80086b2: b2db uxtb r3, r3
80086b4: 461a mov r2, r3
80086b6: 4b80 ldr r3, [pc, #512] ; (80088b8 <Display+0x28c0>)
80086b8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80086bc: 2303 movs r3, #3
80086be: 213c movs r1, #60 ; 0x3c
80086c0: 20a1 movs r0, #161 ; 0xa1
80086c2: f7fc fc0b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
80086c6: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80086ca: b2db uxtb r3, r3
80086cc: 461a mov r2, r3
80086ce: 4b7a ldr r3, [pc, #488] ; (80088b8 <Display+0x28c0>)
80086d0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80086d4: 2303 movs r3, #3
80086d6: 213c movs r1, #60 ; 0x3c
80086d8: 20a8 movs r0, #168 ; 0xa8
80086da: f7fc fbff bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
80086de: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80086e2: b2db uxtb r3, r3
80086e4: 461a mov r2, r3
80086e6: 4b74 ldr r3, [pc, #464] ; (80088b8 <Display+0x28c0>)
80086e8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80086ec: 2303 movs r3, #3
80086ee: 213c movs r1, #60 ; 0x3c
80086f0: 20af movs r0, #175 ; 0xaf
80086f2: f7fc fbf3 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80086f6: f004 bc1e b.w 800cf36 <Display+0x6f3e>
if(ipt1 == 4)
80086fa: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
80086fe: b2db uxtb r3, r3
8008700: 2b04 cmp r3, #4
8008702: f044 8418 bne.w 800cf36 <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE);
8008706: 2303 movs r3, #3
8008708: 4a6c ldr r2, [pc, #432] ; (80088bc <Display+0x28c4>)
800870a: 213c movs r1, #60 ; 0x3c
800870c: 2093 movs r0, #147 ; 0x93
800870e: f7fc fbe5 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008712: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008716: b2db uxtb r3, r3
8008718: 461a mov r2, r3
800871a: 4b67 ldr r3, [pc, #412] ; (80088b8 <Display+0x28c0>)
800871c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008720: 2303 movs r3, #3
8008722: 213c movs r1, #60 ; 0x3c
8008724: 209a movs r0, #154 ; 0x9a
8008726: f7fc fbd9 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
800872a: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
800872e: b2db uxtb r3, r3
8008730: 461a mov r2, r3
8008732: 4b61 ldr r3, [pc, #388] ; (80088b8 <Display+0x28c0>)
8008734: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008738: 2303 movs r3, #3
800873a: 213c movs r1, #60 ; 0x3c
800873c: 20a1 movs r0, #161 ; 0xa1
800873e: f7fc fbcd bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008742: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008746: b2db uxtb r3, r3
8008748: 461a mov r2, r3
800874a: 4b5b ldr r3, [pc, #364] ; (80088b8 <Display+0x28c0>)
800874c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008750: 2303 movs r3, #3
8008752: 213c movs r1, #60 ; 0x3c
8008754: 20a8 movs r0, #168 ; 0xa8
8008756: f7fc fbc1 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
800875a: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
800875e: b2db uxtb r3, r3
8008760: 461a mov r2, r3
8008762: 4b55 ldr r3, [pc, #340] ; (80088b8 <Display+0x28c0>)
8008764: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008768: 2303 movs r3, #3
800876a: 213c movs r1, #60 ; 0x3c
800876c: 20af movs r0, #175 ; 0xaf
800876e: f7fc fbb5 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008772: f004 bbe0 b.w 800cf36 <Display+0x6f3e>
if(menupos == Kikt_1)
8008776: 4b52 ldr r3, [pc, #328] ; (80088c0 <Display+0x28c8>)
8008778: 781b ldrb r3, [r3, #0]
800877a: b2db uxtb r3, r3
800877c: 2b03 cmp r3, #3
800877e: f040 818b bne.w 8008a98 <Display+0x2aa0>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8008782: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008786: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800878a: f7fc fae1 bl 8004d50 <LCD_SetColors>
if(!ipt1)
800878e: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008792: b2db uxtb r3, r3
8008794: 2b00 cmp r3, #0
8008796: d141 bne.n 800881c <Display+0x2824>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008798: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
800879c: b2db uxtb r3, r3
800879e: 461a mov r2, r3
80087a0: 4b45 ldr r3, [pc, #276] ; (80088b8 <Display+0x28c0>)
80087a2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80087a6: 2303 movs r3, #3
80087a8: 213c movs r1, #60 ; 0x3c
80087aa: 208c movs r0, #140 ; 0x8c
80087ac: f7fc fb96 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
80087b0: 4b44 ldr r3, [pc, #272] ; (80088c4 <Display+0x28cc>)
80087b2: 681b ldr r3, [r3, #0]
80087b4: 2b00 cmp r3, #0
80087b6: d00b beq.n 80087d0 <Display+0x27d8>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
80087b8: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
80087bc: b2db uxtb r3, r3
80087be: 461a mov r2, r3
80087c0: 4b3d ldr r3, [pc, #244] ; (80088b8 <Display+0x28c0>)
80087c2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80087c6: 2303 movs r3, #3
80087c8: 213c movs r1, #60 ; 0x3c
80087ca: 2093 movs r0, #147 ; 0x93
80087cc: f7fc fb86 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
80087d0: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80087d4: b2db uxtb r3, r3
80087d6: 461a mov r2, r3
80087d8: 4b37 ldr r3, [pc, #220] ; (80088b8 <Display+0x28c0>)
80087da: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80087de: 2303 movs r3, #3
80087e0: 213c movs r1, #60 ; 0x3c
80087e2: 209a movs r0, #154 ; 0x9a
80087e4: f7fc fb7a bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
80087e8: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80087ec: b2db uxtb r3, r3
80087ee: 461a mov r2, r3
80087f0: 4b31 ldr r3, [pc, #196] ; (80088b8 <Display+0x28c0>)
80087f2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80087f6: 2303 movs r3, #3
80087f8: 213c movs r1, #60 ; 0x3c
80087fa: 20a1 movs r0, #161 ; 0xa1
80087fc: f7fc fb6e bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008800: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008804: b2db uxtb r3, r3
8008806: 461a mov r2, r3
8008808: 4b2b ldr r3, [pc, #172] ; (80088b8 <Display+0x28c0>)
800880a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800880e: 2303 movs r3, #3
8008810: 213c movs r1, #60 ; 0x3c
8008812: 20a8 movs r0, #168 ; 0xa8
8008814: f7fc fb62 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008818: f004 bb8d b.w 800cf36 <Display+0x6f3e>
if(ipt1 == 1)
800881c: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008820: b2db uxtb r3, r3
8008822: 2b01 cmp r3, #1
8008824: d150 bne.n 80088c8 <Display+0x28d0>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008826: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
800882a: b2db uxtb r3, r3
800882c: 461a mov r2, r3
800882e: 4b22 ldr r3, [pc, #136] ; (80088b8 <Display+0x28c0>)
8008830: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008834: 2303 movs r3, #3
8008836: 213c movs r1, #60 ; 0x3c
8008838: 208c movs r0, #140 ; 0x8c
800883a: f7fc fb4f bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800883e: 4b21 ldr r3, [pc, #132] ; (80088c4 <Display+0x28cc>)
8008840: 681b ldr r3, [r3, #0]
8008842: 2b00 cmp r3, #0
8008844: d00b beq.n 800885e <Display+0x2866>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008846: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
800884a: b2db uxtb r3, r3
800884c: 461a mov r2, r3
800884e: 4b1a ldr r3, [pc, #104] ; (80088b8 <Display+0x28c0>)
8008850: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008854: 2303 movs r3, #3
8008856: 213c movs r1, #60 ; 0x3c
8008858: 2093 movs r0, #147 ; 0x93
800885a: f7fc fb3f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
800885e: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008862: b2db uxtb r3, r3
8008864: 461a mov r2, r3
8008866: 4b14 ldr r3, [pc, #80] ; (80088b8 <Display+0x28c0>)
8008868: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800886c: 2303 movs r3, #3
800886e: 213c movs r1, #60 ; 0x3c
8008870: 209a movs r0, #154 ; 0x9a
8008872: f7fc fb33 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008876: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
800887a: b2db uxtb r3, r3
800887c: 461a mov r2, r3
800887e: 4b0e ldr r3, [pc, #56] ; (80088b8 <Display+0x28c0>)
8008880: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008884: 2303 movs r3, #3
8008886: 213c movs r1, #60 ; 0x3c
8008888: 20a1 movs r0, #161 ; 0xa1
800888a: f7fc fb27 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE);
800888e: 2303 movs r3, #3
8008890: 4a0a ldr r2, [pc, #40] ; (80088bc <Display+0x28c4>)
8008892: 213c movs r1, #60 ; 0x3c
8008894: 20a8 movs r0, #168 ; 0xa8
8008896: f7fc fb21 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
800889a: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
800889e: b2db uxtb r3, r3
80088a0: 461a mov r2, r3
80088a2: 4b05 ldr r3, [pc, #20] ; (80088b8 <Display+0x28c0>)
80088a4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80088a8: 2303 movs r3, #3
80088aa: 213c movs r1, #60 ; 0x3c
80088ac: 20af movs r0, #175 ; 0xaf
80088ae: f7fc fb15 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80088b2: f004 bb40 b.w 800cf36 <Display+0x6f3e>
80088b6: bf00 nop
80088b8: 2002096c .word 0x2002096c
80088bc: 08018150 .word 0x08018150
80088c0: 20020010 .word 0x20020010
80088c4: 2006ba78 .word 0x2006ba78
if(ipt1 == 2)
80088c8: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
80088cc: b2db uxtb r3, r3
80088ce: 2b02 cmp r3, #2
80088d0: d147 bne.n 8008962 <Display+0x296a>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
80088d2: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
80088d6: b2db uxtb r3, r3
80088d8: 461a mov r2, r3
80088da: 4bbf ldr r3, [pc, #764] ; (8008bd8 <Display+0x2be0>)
80088dc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80088e0: 2303 movs r3, #3
80088e2: 213c movs r1, #60 ; 0x3c
80088e4: 208c movs r0, #140 ; 0x8c
80088e6: f7fc faf9 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
80088ea: 4bbc ldr r3, [pc, #752] ; (8008bdc <Display+0x2be4>)
80088ec: 681b ldr r3, [r3, #0]
80088ee: 2b00 cmp r3, #0
80088f0: d00b beq.n 800890a <Display+0x2912>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
80088f2: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
80088f6: b2db uxtb r3, r3
80088f8: 461a mov r2, r3
80088fa: 4bb7 ldr r3, [pc, #732] ; (8008bd8 <Display+0x2be0>)
80088fc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008900: 2303 movs r3, #3
8008902: 213c movs r1, #60 ; 0x3c
8008904: 2093 movs r0, #147 ; 0x93
8008906: f7fc fae9 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
800890a: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
800890e: b2db uxtb r3, r3
8008910: 461a mov r2, r3
8008912: 4bb1 ldr r3, [pc, #708] ; (8008bd8 <Display+0x2be0>)
8008914: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008918: 2303 movs r3, #3
800891a: 213c movs r1, #60 ; 0x3c
800891c: 209a movs r0, #154 ; 0x9a
800891e: f7fc fadd bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE);
8008922: 2303 movs r3, #3
8008924: 4aae ldr r2, [pc, #696] ; (8008be0 <Display+0x2be8>)
8008926: 213c movs r1, #60 ; 0x3c
8008928: 20a1 movs r0, #161 ; 0xa1
800892a: f7fc fad7 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
800892e: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008932: b2db uxtb r3, r3
8008934: 461a mov r2, r3
8008936: 4ba8 ldr r3, [pc, #672] ; (8008bd8 <Display+0x2be0>)
8008938: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800893c: 2303 movs r3, #3
800893e: 213c movs r1, #60 ; 0x3c
8008940: 20a8 movs r0, #168 ; 0xa8
8008942: f7fc facb bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008946: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
800894a: b2db uxtb r3, r3
800894c: 461a mov r2, r3
800894e: 4ba2 ldr r3, [pc, #648] ; (8008bd8 <Display+0x2be0>)
8008950: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008954: 2303 movs r3, #3
8008956: 213c movs r1, #60 ; 0x3c
8008958: 20af movs r0, #175 ; 0xaf
800895a: f7fc fabf bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
800895e: f004 baea b.w 800cf36 <Display+0x6f3e>
if(ipt1 == 3)
8008962: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008966: b2db uxtb r3, r3
8008968: 2b03 cmp r3, #3
800896a: d147 bne.n 80089fc <Display+0x2a04>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
800896c: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008970: b2db uxtb r3, r3
8008972: 461a mov r2, r3
8008974: 4b98 ldr r3, [pc, #608] ; (8008bd8 <Display+0x2be0>)
8008976: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800897a: 2303 movs r3, #3
800897c: 213c movs r1, #60 ; 0x3c
800897e: 208c movs r0, #140 ; 0x8c
8008980: f7fc faac bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8008984: 4b95 ldr r3, [pc, #596] ; (8008bdc <Display+0x2be4>)
8008986: 681b ldr r3, [r3, #0]
8008988: 2b00 cmp r3, #0
800898a: d00b beq.n 80089a4 <Display+0x29ac>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
800898c: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008990: b2db uxtb r3, r3
8008992: 461a mov r2, r3
8008994: 4b90 ldr r3, [pc, #576] ; (8008bd8 <Display+0x2be0>)
8008996: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800899a: 2303 movs r3, #3
800899c: 213c movs r1, #60 ; 0x3c
800899e: 2093 movs r0, #147 ; 0x93
80089a0: f7fc fa9c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE);
80089a4: 2303 movs r3, #3
80089a6: 4a8e ldr r2, [pc, #568] ; (8008be0 <Display+0x2be8>)
80089a8: 213c movs r1, #60 ; 0x3c
80089aa: 209a movs r0, #154 ; 0x9a
80089ac: f7fc fa96 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
80089b0: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80089b4: b2db uxtb r3, r3
80089b6: 461a mov r2, r3
80089b8: 4b87 ldr r3, [pc, #540] ; (8008bd8 <Display+0x2be0>)
80089ba: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80089be: 2303 movs r3, #3
80089c0: 213c movs r1, #60 ; 0x3c
80089c2: 20a1 movs r0, #161 ; 0xa1
80089c4: f7fc fa8a bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
80089c8: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80089cc: b2db uxtb r3, r3
80089ce: 461a mov r2, r3
80089d0: 4b81 ldr r3, [pc, #516] ; (8008bd8 <Display+0x2be0>)
80089d2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80089d6: 2303 movs r3, #3
80089d8: 213c movs r1, #60 ; 0x3c
80089da: 20a8 movs r0, #168 ; 0xa8
80089dc: f7fc fa7e bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
80089e0: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80089e4: b2db uxtb r3, r3
80089e6: 461a mov r2, r3
80089e8: 4b7b ldr r3, [pc, #492] ; (8008bd8 <Display+0x2be0>)
80089ea: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80089ee: 2303 movs r3, #3
80089f0: 213c movs r1, #60 ; 0x3c
80089f2: 20af movs r0, #175 ; 0xaf
80089f4: f7fc fa72 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80089f8: f004 ba9d b.w 800cf36 <Display+0x6f3e>
if(ipt1 == 4)
80089fc: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008a00: b2db uxtb r3, r3
8008a02: 2b04 cmp r3, #4
8008a04: f044 8297 bne.w 800cf36 <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008a08: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008a0c: b2db uxtb r3, r3
8008a0e: 461a mov r2, r3
8008a10: 4b71 ldr r3, [pc, #452] ; (8008bd8 <Display+0x2be0>)
8008a12: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008a16: 2303 movs r3, #3
8008a18: 213c movs r1, #60 ; 0x3c
8008a1a: 208c movs r0, #140 ; 0x8c
8008a1c: f7fc fa5e bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE);
8008a20: 2303 movs r3, #3
8008a22: 4a6f ldr r2, [pc, #444] ; (8008be0 <Display+0x2be8>)
8008a24: 213c movs r1, #60 ; 0x3c
8008a26: 2093 movs r0, #147 ; 0x93
8008a28: f7fc fa58 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8008a2c: 4b6b ldr r3, [pc, #428] ; (8008bdc <Display+0x2be4>)
8008a2e: 681b ldr r3, [r3, #0]
8008a30: 2b00 cmp r3, #0
8008a32: d00b beq.n 8008a4c <Display+0x2a54>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008a34: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008a38: b2db uxtb r3, r3
8008a3a: 461a mov r2, r3
8008a3c: 4b66 ldr r3, [pc, #408] ; (8008bd8 <Display+0x2be0>)
8008a3e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008a42: 2303 movs r3, #3
8008a44: 213c movs r1, #60 ; 0x3c
8008a46: 209a movs r0, #154 ; 0x9a
8008a48: f7fc fa48 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008a4c: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008a50: b2db uxtb r3, r3
8008a52: 461a mov r2, r3
8008a54: 4b60 ldr r3, [pc, #384] ; (8008bd8 <Display+0x2be0>)
8008a56: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008a5a: 2303 movs r3, #3
8008a5c: 213c movs r1, #60 ; 0x3c
8008a5e: 20a1 movs r0, #161 ; 0xa1
8008a60: f7fc fa3c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008a64: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008a68: b2db uxtb r3, r3
8008a6a: 461a mov r2, r3
8008a6c: 4b5a ldr r3, [pc, #360] ; (8008bd8 <Display+0x2be0>)
8008a6e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008a72: 2303 movs r3, #3
8008a74: 213c movs r1, #60 ; 0x3c
8008a76: 20a8 movs r0, #168 ; 0xa8
8008a78: f7fc fa30 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008a7c: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008a80: b2db uxtb r3, r3
8008a82: 461a mov r2, r3
8008a84: 4b54 ldr r3, [pc, #336] ; (8008bd8 <Display+0x2be0>)
8008a86: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008a8a: 2303 movs r3, #3
8008a8c: 213c movs r1, #60 ; 0x3c
8008a8e: 20af movs r0, #175 ; 0xaf
8008a90: f7fc fa24 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008a94: f004 ba4f b.w 800cf36 <Display+0x6f3e>
if(menupos == Kiks_1)
8008a98: 4b52 ldr r3, [pc, #328] ; (8008be4 <Display+0x2bec>)
8008a9a: 781b ldrb r3, [r3, #0]
8008a9c: b2db uxtb r3, r3
8008a9e: 2b04 cmp r3, #4
8008aa0: f040 818a bne.w 8008db8 <Display+0x2dc0>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8008aa4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008aa8: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8008aac: f7fc f950 bl 8004d50 <LCD_SetColors>
if(!ipt1)
8008ab0: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008ab4: b2db uxtb r3, r3
8008ab6: 2b00 cmp r3, #0
8008ab8: d141 bne.n 8008b3e <Display+0x2b46>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008aba: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008abe: b2db uxtb r3, r3
8008ac0: 461a mov r2, r3
8008ac2: 4b45 ldr r3, [pc, #276] ; (8008bd8 <Display+0x2be0>)
8008ac4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008ac8: 2303 movs r3, #3
8008aca: 213c movs r1, #60 ; 0x3c
8008acc: 208c movs r0, #140 ; 0x8c
8008ace: f7fc fa05 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008ad2: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008ad6: b2db uxtb r3, r3
8008ad8: 461a mov r2, r3
8008ada: 4b3f ldr r3, [pc, #252] ; (8008bd8 <Display+0x2be0>)
8008adc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008ae0: 2303 movs r3, #3
8008ae2: 213c movs r1, #60 ; 0x3c
8008ae4: 2093 movs r0, #147 ; 0x93
8008ae6: f7fc f9f9 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8008aea: 4b3c ldr r3, [pc, #240] ; (8008bdc <Display+0x2be4>)
8008aec: 681b ldr r3, [r3, #0]
8008aee: 2b00 cmp r3, #0
8008af0: d00b beq.n 8008b0a <Display+0x2b12>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008af2: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008af6: b2db uxtb r3, r3
8008af8: 461a mov r2, r3
8008afa: 4b37 ldr r3, [pc, #220] ; (8008bd8 <Display+0x2be0>)
8008afc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008b00: 2303 movs r3, #3
8008b02: 213c movs r1, #60 ; 0x3c
8008b04: 209a movs r0, #154 ; 0x9a
8008b06: f7fc f9e9 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008b0a: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008b0e: b2db uxtb r3, r3
8008b10: 461a mov r2, r3
8008b12: 4b31 ldr r3, [pc, #196] ; (8008bd8 <Display+0x2be0>)
8008b14: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008b18: 2303 movs r3, #3
8008b1a: 213c movs r1, #60 ; 0x3c
8008b1c: 20a1 movs r0, #161 ; 0xa1
8008b1e: f7fc f9dd bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008b22: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008b26: b2db uxtb r3, r3
8008b28: 461a mov r2, r3
8008b2a: 4b2b ldr r3, [pc, #172] ; (8008bd8 <Display+0x2be0>)
8008b2c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008b30: 2303 movs r3, #3
8008b32: 213c movs r1, #60 ; 0x3c
8008b34: 20a8 movs r0, #168 ; 0xa8
8008b36: f7fc f9d1 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008b3a: f004 b9fc b.w 800cf36 <Display+0x6f3e>
if(ipt1 == 1)
8008b3e: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008b42: b2db uxtb r3, r3
8008b44: 2b01 cmp r3, #1
8008b46: d14f bne.n 8008be8 <Display+0x2bf0>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008b48: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008b4c: b2db uxtb r3, r3
8008b4e: 461a mov r2, r3
8008b50: 4b21 ldr r3, [pc, #132] ; (8008bd8 <Display+0x2be0>)
8008b52: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008b56: 2303 movs r3, #3
8008b58: 213c movs r1, #60 ; 0x3c
8008b5a: 208c movs r0, #140 ; 0x8c
8008b5c: f7fc f9be bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008b60: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008b64: b2db uxtb r3, r3
8008b66: 461a mov r2, r3
8008b68: 4b1b ldr r3, [pc, #108] ; (8008bd8 <Display+0x2be0>)
8008b6a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008b6e: 2303 movs r3, #3
8008b70: 213c movs r1, #60 ; 0x3c
8008b72: 2093 movs r0, #147 ; 0x93
8008b74: f7fc f9b2 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8008b78: 4b18 ldr r3, [pc, #96] ; (8008bdc <Display+0x2be4>)
8008b7a: 681b ldr r3, [r3, #0]
8008b7c: 2b00 cmp r3, #0
8008b7e: d00b beq.n 8008b98 <Display+0x2ba0>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008b80: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008b84: b2db uxtb r3, r3
8008b86: 461a mov r2, r3
8008b88: 4b13 ldr r3, [pc, #76] ; (8008bd8 <Display+0x2be0>)
8008b8a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008b8e: 2303 movs r3, #3
8008b90: 213c movs r1, #60 ; 0x3c
8008b92: 209a movs r0, #154 ; 0x9a
8008b94: f7fc f9a2 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008b98: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008b9c: b2db uxtb r3, r3
8008b9e: 461a mov r2, r3
8008ba0: 4b0d ldr r3, [pc, #52] ; (8008bd8 <Display+0x2be0>)
8008ba2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008ba6: 2303 movs r3, #3
8008ba8: 213c movs r1, #60 ; 0x3c
8008baa: 20a1 movs r0, #161 ; 0xa1
8008bac: f7fc f996 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE);
8008bb0: 2303 movs r3, #3
8008bb2: 4a0b ldr r2, [pc, #44] ; (8008be0 <Display+0x2be8>)
8008bb4: 213c movs r1, #60 ; 0x3c
8008bb6: 20a8 movs r0, #168 ; 0xa8
8008bb8: f7fc f990 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008bbc: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008bc0: b2db uxtb r3, r3
8008bc2: 461a mov r2, r3
8008bc4: 4b04 ldr r3, [pc, #16] ; (8008bd8 <Display+0x2be0>)
8008bc6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008bca: 2303 movs r3, #3
8008bcc: 213c movs r1, #60 ; 0x3c
8008bce: 20af movs r0, #175 ; 0xaf
8008bd0: f7fc f984 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008bd4: f004 b9af b.w 800cf36 <Display+0x6f3e>
8008bd8: 2002096c .word 0x2002096c
8008bdc: 2006ba78 .word 0x2006ba78
8008be0: 08018150 .word 0x08018150
8008be4: 20020010 .word 0x20020010
if(ipt1 == 2)
8008be8: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008bec: b2db uxtb r3, r3
8008bee: 2b02 cmp r3, #2
8008bf0: d147 bne.n 8008c82 <Display+0x2c8a>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008bf2: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008bf6: b2db uxtb r3, r3
8008bf8: 461a mov r2, r3
8008bfa: 4bbf ldr r3, [pc, #764] ; (8008ef8 <Display+0x2f00>)
8008bfc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008c00: 2303 movs r3, #3
8008c02: 213c movs r1, #60 ; 0x3c
8008c04: 208c movs r0, #140 ; 0x8c
8008c06: f7fc f969 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008c0a: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008c0e: b2db uxtb r3, r3
8008c10: 461a mov r2, r3
8008c12: 4bb9 ldr r3, [pc, #740] ; (8008ef8 <Display+0x2f00>)
8008c14: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008c18: 2303 movs r3, #3
8008c1a: 213c movs r1, #60 ; 0x3c
8008c1c: 2093 movs r0, #147 ; 0x93
8008c1e: f7fc f95d bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8008c22: 4bb6 ldr r3, [pc, #728] ; (8008efc <Display+0x2f04>)
8008c24: 681b ldr r3, [r3, #0]
8008c26: 2b00 cmp r3, #0
8008c28: d00b beq.n 8008c42 <Display+0x2c4a>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008c2a: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008c2e: b2db uxtb r3, r3
8008c30: 461a mov r2, r3
8008c32: 4bb1 ldr r3, [pc, #708] ; (8008ef8 <Display+0x2f00>)
8008c34: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008c38: 2303 movs r3, #3
8008c3a: 213c movs r1, #60 ; 0x3c
8008c3c: 209a movs r0, #154 ; 0x9a
8008c3e: f7fc f94d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE);
8008c42: 2303 movs r3, #3
8008c44: 4aae ldr r2, [pc, #696] ; (8008f00 <Display+0x2f08>)
8008c46: 213c movs r1, #60 ; 0x3c
8008c48: 20a1 movs r0, #161 ; 0xa1
8008c4a: f7fc f947 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008c4e: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008c52: b2db uxtb r3, r3
8008c54: 461a mov r2, r3
8008c56: 4ba8 ldr r3, [pc, #672] ; (8008ef8 <Display+0x2f00>)
8008c58: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008c5c: 2303 movs r3, #3
8008c5e: 213c movs r1, #60 ; 0x3c
8008c60: 20a8 movs r0, #168 ; 0xa8
8008c62: f7fc f93b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008c66: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008c6a: b2db uxtb r3, r3
8008c6c: 461a mov r2, r3
8008c6e: 4ba2 ldr r3, [pc, #648] ; (8008ef8 <Display+0x2f00>)
8008c70: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008c74: 2303 movs r3, #3
8008c76: 213c movs r1, #60 ; 0x3c
8008c78: 20af movs r0, #175 ; 0xaf
8008c7a: f7fc f92f bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008c7e: f004 b95a b.w 800cf36 <Display+0x6f3e>
if(ipt1 == 3)
8008c82: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008c86: b2db uxtb r3, r3
8008c88: 2b03 cmp r3, #3
8008c8a: d147 bne.n 8008d1c <Display+0x2d24>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008c8c: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008c90: b2db uxtb r3, r3
8008c92: 461a mov r2, r3
8008c94: 4b98 ldr r3, [pc, #608] ; (8008ef8 <Display+0x2f00>)
8008c96: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008c9a: 2303 movs r3, #3
8008c9c: 213c movs r1, #60 ; 0x3c
8008c9e: 208c movs r0, #140 ; 0x8c
8008ca0: f7fc f91c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008ca4: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008ca8: b2db uxtb r3, r3
8008caa: 461a mov r2, r3
8008cac: 4b92 ldr r3, [pc, #584] ; (8008ef8 <Display+0x2f00>)
8008cae: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008cb2: 2303 movs r3, #3
8008cb4: 213c movs r1, #60 ; 0x3c
8008cb6: 2093 movs r0, #147 ; 0x93
8008cb8: f7fc f910 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE);
8008cbc: 2303 movs r3, #3
8008cbe: 4a90 ldr r2, [pc, #576] ; (8008f00 <Display+0x2f08>)
8008cc0: 213c movs r1, #60 ; 0x3c
8008cc2: 209a movs r0, #154 ; 0x9a
8008cc4: f7fc f90a bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8008cc8: 4b8c ldr r3, [pc, #560] ; (8008efc <Display+0x2f04>)
8008cca: 681b ldr r3, [r3, #0]
8008ccc: 2b00 cmp r3, #0
8008cce: d00b beq.n 8008ce8 <Display+0x2cf0>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008cd0: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008cd4: b2db uxtb r3, r3
8008cd6: 461a mov r2, r3
8008cd8: 4b87 ldr r3, [pc, #540] ; (8008ef8 <Display+0x2f00>)
8008cda: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008cde: 2303 movs r3, #3
8008ce0: 213c movs r1, #60 ; 0x3c
8008ce2: 20a1 movs r0, #161 ; 0xa1
8008ce4: f7fc f8fa bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008ce8: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008cec: b2db uxtb r3, r3
8008cee: 461a mov r2, r3
8008cf0: 4b81 ldr r3, [pc, #516] ; (8008ef8 <Display+0x2f00>)
8008cf2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008cf6: 2303 movs r3, #3
8008cf8: 213c movs r1, #60 ; 0x3c
8008cfa: 20a8 movs r0, #168 ; 0xa8
8008cfc: f7fc f8ee bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008d00: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008d04: b2db uxtb r3, r3
8008d06: 461a mov r2, r3
8008d08: 4b7b ldr r3, [pc, #492] ; (8008ef8 <Display+0x2f00>)
8008d0a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008d0e: 2303 movs r3, #3
8008d10: 213c movs r1, #60 ; 0x3c
8008d12: 20af movs r0, #175 ; 0xaf
8008d14: f7fc f8e2 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008d18: f004 b90d b.w 800cf36 <Display+0x6f3e>
if(ipt1 == 4)
8008d1c: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008d20: b2db uxtb r3, r3
8008d22: 2b04 cmp r3, #4
8008d24: f044 8107 bne.w 800cf36 <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008d28: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008d2c: b2db uxtb r3, r3
8008d2e: 461a mov r2, r3
8008d30: 4b71 ldr r3, [pc, #452] ; (8008ef8 <Display+0x2f00>)
8008d32: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008d36: 2303 movs r3, #3
8008d38: 213c movs r1, #60 ; 0x3c
8008d3a: 208c movs r0, #140 ; 0x8c
8008d3c: f7fc f8ce bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE);
8008d40: 2303 movs r3, #3
8008d42: 4a6f ldr r2, [pc, #444] ; (8008f00 <Display+0x2f08>)
8008d44: 213c movs r1, #60 ; 0x3c
8008d46: 2093 movs r0, #147 ; 0x93
8008d48: f7fc f8c8 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008d4c: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008d50: b2db uxtb r3, r3
8008d52: 461a mov r2, r3
8008d54: 4b68 ldr r3, [pc, #416] ; (8008ef8 <Display+0x2f00>)
8008d56: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008d5a: 2303 movs r3, #3
8008d5c: 213c movs r1, #60 ; 0x3c
8008d5e: 209a movs r0, #154 ; 0x9a
8008d60: f7fc f8bc bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8008d64: 4b65 ldr r3, [pc, #404] ; (8008efc <Display+0x2f04>)
8008d66: 681b ldr r3, [r3, #0]
8008d68: 2b00 cmp r3, #0
8008d6a: d00b beq.n 8008d84 <Display+0x2d8c>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008d6c: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008d70: b2db uxtb r3, r3
8008d72: 461a mov r2, r3
8008d74: 4b60 ldr r3, [pc, #384] ; (8008ef8 <Display+0x2f00>)
8008d76: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008d7a: 2303 movs r3, #3
8008d7c: 213c movs r1, #60 ; 0x3c
8008d7e: 20a1 movs r0, #161 ; 0xa1
8008d80: f7fc f8ac bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008d84: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008d88: b2db uxtb r3, r3
8008d8a: 461a mov r2, r3
8008d8c: 4b5a ldr r3, [pc, #360] ; (8008ef8 <Display+0x2f00>)
8008d8e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008d92: 2303 movs r3, #3
8008d94: 213c movs r1, #60 ; 0x3c
8008d96: 20a8 movs r0, #168 ; 0xa8
8008d98: f7fc f8a0 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008d9c: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008da0: b2db uxtb r3, r3
8008da2: 461a mov r2, r3
8008da4: 4b54 ldr r3, [pc, #336] ; (8008ef8 <Display+0x2f00>)
8008da6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008daa: 2303 movs r3, #3
8008dac: 213c movs r1, #60 ; 0x3c
8008dae: 20af movs r0, #175 ; 0xaf
8008db0: f7fc f894 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008db4: f004 b8bf b.w 800cf36 <Display+0x6f3e>
if(menupos == Kikd_1)
8008db8: 4b52 ldr r3, [pc, #328] ; (8008f04 <Display+0x2f0c>)
8008dba: 781b ldrb r3, [r3, #0]
8008dbc: b2db uxtb r3, r3
8008dbe: 2b05 cmp r3, #5
8008dc0: f040 818a bne.w 80090d8 <Display+0x30e0>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8008dc4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008dc8: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8008dcc: f7fb ffc0 bl 8004d50 <LCD_SetColors>
if(!ipt1)
8008dd0: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008dd4: b2db uxtb r3, r3
8008dd6: 2b00 cmp r3, #0
8008dd8: d141 bne.n 8008e5e <Display+0x2e66>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008dda: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008dde: b2db uxtb r3, r3
8008de0: 461a mov r2, r3
8008de2: 4b45 ldr r3, [pc, #276] ; (8008ef8 <Display+0x2f00>)
8008de4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008de8: 2303 movs r3, #3
8008dea: 213c movs r1, #60 ; 0x3c
8008dec: 208c movs r0, #140 ; 0x8c
8008dee: f7fc f875 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008df2: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008df6: b2db uxtb r3, r3
8008df8: 461a mov r2, r3
8008dfa: 4b3f ldr r3, [pc, #252] ; (8008ef8 <Display+0x2f00>)
8008dfc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008e00: 2303 movs r3, #3
8008e02: 213c movs r1, #60 ; 0x3c
8008e04: 2093 movs r0, #147 ; 0x93
8008e06: f7fc f869 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008e0a: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008e0e: b2db uxtb r3, r3
8008e10: 461a mov r2, r3
8008e12: 4b39 ldr r3, [pc, #228] ; (8008ef8 <Display+0x2f00>)
8008e14: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008e18: 2303 movs r3, #3
8008e1a: 213c movs r1, #60 ; 0x3c
8008e1c: 209a movs r0, #154 ; 0x9a
8008e1e: f7fc f85d bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8008e22: 4b36 ldr r3, [pc, #216] ; (8008efc <Display+0x2f04>)
8008e24: 681b ldr r3, [r3, #0]
8008e26: 2b00 cmp r3, #0
8008e28: d00b beq.n 8008e42 <Display+0x2e4a>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008e2a: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008e2e: b2db uxtb r3, r3
8008e30: 461a mov r2, r3
8008e32: 4b31 ldr r3, [pc, #196] ; (8008ef8 <Display+0x2f00>)
8008e34: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008e38: 2303 movs r3, #3
8008e3a: 213c movs r1, #60 ; 0x3c
8008e3c: 20a1 movs r0, #161 ; 0xa1
8008e3e: f7fc f84d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008e42: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008e46: b2db uxtb r3, r3
8008e48: 461a mov r2, r3
8008e4a: 4b2b ldr r3, [pc, #172] ; (8008ef8 <Display+0x2f00>)
8008e4c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008e50: 2303 movs r3, #3
8008e52: 213c movs r1, #60 ; 0x3c
8008e54: 20a8 movs r0, #168 ; 0xa8
8008e56: f7fc f841 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008e5a: f004 b86c b.w 800cf36 <Display+0x6f3e>
if(ipt1 == 1)
8008e5e: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008e62: b2db uxtb r3, r3
8008e64: 2b01 cmp r3, #1
8008e66: d14f bne.n 8008f08 <Display+0x2f10>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008e68: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008e6c: b2db uxtb r3, r3
8008e6e: 461a mov r2, r3
8008e70: 4b21 ldr r3, [pc, #132] ; (8008ef8 <Display+0x2f00>)
8008e72: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008e76: 2303 movs r3, #3
8008e78: 213c movs r1, #60 ; 0x3c
8008e7a: 208c movs r0, #140 ; 0x8c
8008e7c: f7fc f82e bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008e80: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008e84: b2db uxtb r3, r3
8008e86: 461a mov r2, r3
8008e88: 4b1b ldr r3, [pc, #108] ; (8008ef8 <Display+0x2f00>)
8008e8a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008e8e: 2303 movs r3, #3
8008e90: 213c movs r1, #60 ; 0x3c
8008e92: 2093 movs r0, #147 ; 0x93
8008e94: f7fc f822 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008e98: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008e9c: b2db uxtb r3, r3
8008e9e: 461a mov r2, r3
8008ea0: 4b15 ldr r3, [pc, #84] ; (8008ef8 <Display+0x2f00>)
8008ea2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008ea6: 2303 movs r3, #3
8008ea8: 213c movs r1, #60 ; 0x3c
8008eaa: 209a movs r0, #154 ; 0x9a
8008eac: f7fc f816 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8008eb0: 4b12 ldr r3, [pc, #72] ; (8008efc <Display+0x2f04>)
8008eb2: 681b ldr r3, [r3, #0]
8008eb4: 2b00 cmp r3, #0
8008eb6: d00b beq.n 8008ed0 <Display+0x2ed8>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008eb8: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008ebc: b2db uxtb r3, r3
8008ebe: 461a mov r2, r3
8008ec0: 4b0d ldr r3, [pc, #52] ; (8008ef8 <Display+0x2f00>)
8008ec2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008ec6: 2303 movs r3, #3
8008ec8: 213c movs r1, #60 ; 0x3c
8008eca: 20a1 movs r0, #161 ; 0xa1
8008ecc: f7fc f806 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE);
8008ed0: 2303 movs r3, #3
8008ed2: 4a0b ldr r2, [pc, #44] ; (8008f00 <Display+0x2f08>)
8008ed4: 213c movs r1, #60 ; 0x3c
8008ed6: 20a8 movs r0, #168 ; 0xa8
8008ed8: f7fc f800 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008edc: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008ee0: b2db uxtb r3, r3
8008ee2: 461a mov r2, r3
8008ee4: 4b04 ldr r3, [pc, #16] ; (8008ef8 <Display+0x2f00>)
8008ee6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008eea: 2303 movs r3, #3
8008eec: 213c movs r1, #60 ; 0x3c
8008eee: 20af movs r0, #175 ; 0xaf
8008ef0: f7fb fff4 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008ef4: f004 b81f b.w 800cf36 <Display+0x6f3e>
8008ef8: 2002096c .word 0x2002096c
8008efc: 2006ba78 .word 0x2006ba78
8008f00: 08018150 .word 0x08018150
8008f04: 20020010 .word 0x20020010
if(ipt1 == 2)
8008f08: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008f0c: b2db uxtb r3, r3
8008f0e: 2b02 cmp r3, #2
8008f10: d147 bne.n 8008fa2 <Display+0x2faa>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008f12: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008f16: b2db uxtb r3, r3
8008f18: 461a mov r2, r3
8008f1a: 4bc0 ldr r3, [pc, #768] ; (800921c <Display+0x3224>)
8008f1c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008f20: 2303 movs r3, #3
8008f22: 213c movs r1, #60 ; 0x3c
8008f24: 208c movs r0, #140 ; 0x8c
8008f26: f7fb ffd9 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008f2a: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008f2e: b2db uxtb r3, r3
8008f30: 461a mov r2, r3
8008f32: 4bba ldr r3, [pc, #744] ; (800921c <Display+0x3224>)
8008f34: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008f38: 2303 movs r3, #3
8008f3a: 213c movs r1, #60 ; 0x3c
8008f3c: 2093 movs r0, #147 ; 0x93
8008f3e: f7fb ffcd bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008f42: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008f46: b2db uxtb r3, r3
8008f48: 461a mov r2, r3
8008f4a: 4bb4 ldr r3, [pc, #720] ; (800921c <Display+0x3224>)
8008f4c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008f50: 2303 movs r3, #3
8008f52: 213c movs r1, #60 ; 0x3c
8008f54: 209a movs r0, #154 ; 0x9a
8008f56: f7fb ffc1 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE);
8008f5a: 2303 movs r3, #3
8008f5c: 4ab0 ldr r2, [pc, #704] ; (8009220 <Display+0x3228>)
8008f5e: 213c movs r1, #60 ; 0x3c
8008f60: 20a1 movs r0, #161 ; 0xa1
8008f62: f7fb ffbb bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8008f66: 4baf ldr r3, [pc, #700] ; (8009224 <Display+0x322c>)
8008f68: 681b ldr r3, [r3, #0]
8008f6a: 2b00 cmp r3, #0
8008f6c: d00b beq.n 8008f86 <Display+0x2f8e>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008f6e: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008f72: b2db uxtb r3, r3
8008f74: 461a mov r2, r3
8008f76: 4ba9 ldr r3, [pc, #676] ; (800921c <Display+0x3224>)
8008f78: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008f7c: 2303 movs r3, #3
8008f7e: 213c movs r1, #60 ; 0x3c
8008f80: 20a8 movs r0, #168 ; 0xa8
8008f82: f7fb ffab bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008f86: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008f8a: b2db uxtb r3, r3
8008f8c: 461a mov r2, r3
8008f8e: 4ba3 ldr r3, [pc, #652] ; (800921c <Display+0x3224>)
8008f90: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008f94: 2303 movs r3, #3
8008f96: 213c movs r1, #60 ; 0x3c
8008f98: 20af movs r0, #175 ; 0xaf
8008f9a: f7fb ff9f bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008f9e: f003 bfca b.w 800cf36 <Display+0x6f3e>
if(ipt1 == 3)
8008fa2: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008fa6: b2db uxtb r3, r3
8008fa8: 2b03 cmp r3, #3
8008faa: d147 bne.n 800903c <Display+0x3044>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008fac: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008fb0: b2db uxtb r3, r3
8008fb2: 461a mov r2, r3
8008fb4: 4b99 ldr r3, [pc, #612] ; (800921c <Display+0x3224>)
8008fb6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008fba: 2303 movs r3, #3
8008fbc: 213c movs r1, #60 ; 0x3c
8008fbe: 208c movs r0, #140 ; 0x8c
8008fc0: f7fb ff8c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008fc4: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008fc8: b2db uxtb r3, r3
8008fca: 461a mov r2, r3
8008fcc: 4b93 ldr r3, [pc, #588] ; (800921c <Display+0x3224>)
8008fce: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008fd2: 2303 movs r3, #3
8008fd4: 213c movs r1, #60 ; 0x3c
8008fd6: 2093 movs r0, #147 ; 0x93
8008fd8: f7fb ff80 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE);
8008fdc: 2303 movs r3, #3
8008fde: 4a90 ldr r2, [pc, #576] ; (8009220 <Display+0x3228>)
8008fe0: 213c movs r1, #60 ; 0x3c
8008fe2: 209a movs r0, #154 ; 0x9a
8008fe4: f7fb ff7a bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008fe8: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008fec: b2db uxtb r3, r3
8008fee: 461a mov r2, r3
8008ff0: 4b8a ldr r3, [pc, #552] ; (800921c <Display+0x3224>)
8008ff2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008ff6: 2303 movs r3, #3
8008ff8: 213c movs r1, #60 ; 0x3c
8008ffa: 20a1 movs r0, #161 ; 0xa1
8008ffc: f7fb ff6e bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8009000: 4b88 ldr r3, [pc, #544] ; (8009224 <Display+0x322c>)
8009002: 681b ldr r3, [r3, #0]
8009004: 2b00 cmp r3, #0
8009006: d00b beq.n 8009020 <Display+0x3028>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8009008: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
800900c: b2db uxtb r3, r3
800900e: 461a mov r2, r3
8009010: 4b82 ldr r3, [pc, #520] ; (800921c <Display+0x3224>)
8009012: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009016: 2303 movs r3, #3
8009018: 213c movs r1, #60 ; 0x3c
800901a: 20a8 movs r0, #168 ; 0xa8
800901c: f7fb ff5e bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009020: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8009024: b2db uxtb r3, r3
8009026: 461a mov r2, r3
8009028: 4b7c ldr r3, [pc, #496] ; (800921c <Display+0x3224>)
800902a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800902e: 2303 movs r3, #3
8009030: 213c movs r1, #60 ; 0x3c
8009032: 20af movs r0, #175 ; 0xaf
8009034: f7fb ff52 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8009038: f003 bf7d b.w 800cf36 <Display+0x6f3e>
if(ipt1 == 4)
800903c: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8009040: b2db uxtb r3, r3
8009042: 2b04 cmp r3, #4
8009044: f043 8777 bne.w 800cf36 <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8009048: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
800904c: b2db uxtb r3, r3
800904e: 461a mov r2, r3
8009050: 4b72 ldr r3, [pc, #456] ; (800921c <Display+0x3224>)
8009052: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009056: 2303 movs r3, #3
8009058: 213c movs r1, #60 ; 0x3c
800905a: 208c movs r0, #140 ; 0x8c
800905c: f7fb ff3e bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE);
8009060: 2303 movs r3, #3
8009062: 4a6f ldr r2, [pc, #444] ; (8009220 <Display+0x3228>)
8009064: 213c movs r1, #60 ; 0x3c
8009066: 2093 movs r0, #147 ; 0x93
8009068: f7fb ff38 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE);
800906c: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8009070: b2db uxtb r3, r3
8009072: 461a mov r2, r3
8009074: 4b69 ldr r3, [pc, #420] ; (800921c <Display+0x3224>)
8009076: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800907a: 2303 movs r3, #3
800907c: 213c movs r1, #60 ; 0x3c
800907e: 209a movs r0, #154 ; 0x9a
8009080: f7fb ff2c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8009084: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8009088: b2db uxtb r3, r3
800908a: 461a mov r2, r3
800908c: 4b63 ldr r3, [pc, #396] ; (800921c <Display+0x3224>)
800908e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009092: 2303 movs r3, #3
8009094: 213c movs r1, #60 ; 0x3c
8009096: 20a1 movs r0, #161 ; 0xa1
8009098: f7fb ff20 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800909c: 4b61 ldr r3, [pc, #388] ; (8009224 <Display+0x322c>)
800909e: 681b ldr r3, [r3, #0]
80090a0: 2b00 cmp r3, #0
80090a2: d00b beq.n 80090bc <Display+0x30c4>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
80090a4: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80090a8: b2db uxtb r3, r3
80090aa: 461a mov r2, r3
80090ac: 4b5b ldr r3, [pc, #364] ; (800921c <Display+0x3224>)
80090ae: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80090b2: 2303 movs r3, #3
80090b4: 213c movs r1, #60 ; 0x3c
80090b6: 20a8 movs r0, #168 ; 0xa8
80090b8: f7fb ff10 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
80090bc: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80090c0: b2db uxtb r3, r3
80090c2: 461a mov r2, r3
80090c4: 4b55 ldr r3, [pc, #340] ; (800921c <Display+0x3224>)
80090c6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80090ca: 2303 movs r3, #3
80090cc: 213c movs r1, #60 ; 0x3c
80090ce: 20af movs r0, #175 ; 0xaf
80090d0: f7fb ff04 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80090d4: f003 bf2f b.w 800cf36 <Display+0x6f3e>
if(menupos == Kike_1)
80090d8: 4b53 ldr r3, [pc, #332] ; (8009228 <Display+0x3230>)
80090da: 781b ldrb r3, [r3, #0]
80090dc: b2db uxtb r3, r3
80090de: 2b06 cmp r3, #6
80090e0: f040 818f bne.w 8009402 <Display+0x340a>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
80090e4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80090e8: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
80090ec: f7fb fe30 bl 8004d50 <LCD_SetColors>
if(!ipt1)
80090f0: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
80090f4: b2db uxtb r3, r3
80090f6: 2b00 cmp r3, #0
80090f8: d142 bne.n 8009180 <Display+0x3188>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
80090fa: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
80090fe: b2db uxtb r3, r3
8009100: 461a mov r2, r3
8009102: 4b46 ldr r3, [pc, #280] ; (800921c <Display+0x3224>)
8009104: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009108: 2303 movs r3, #3
800910a: 213c movs r1, #60 ; 0x3c
800910c: 208c movs r0, #140 ; 0x8c
800910e: f7fb fee5 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8009112: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8009116: b2db uxtb r3, r3
8009118: 461a mov r2, r3
800911a: 4b40 ldr r3, [pc, #256] ; (800921c <Display+0x3224>)
800911c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009120: 2303 movs r3, #3
8009122: 213c movs r1, #60 ; 0x3c
8009124: 2093 movs r0, #147 ; 0x93
8009126: f7fb fed9 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
800912a: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
800912e: b2db uxtb r3, r3
8009130: 461a mov r2, r3
8009132: 4b3a ldr r3, [pc, #232] ; (800921c <Display+0x3224>)
8009134: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009138: 2303 movs r3, #3
800913a: 213c movs r1, #60 ; 0x3c
800913c: 209a movs r0, #154 ; 0x9a
800913e: f7fb fecd bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
8009142: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8009146: b2db uxtb r3, r3
8009148: 461a mov r2, r3
800914a: 4b34 ldr r3, [pc, #208] ; (800921c <Display+0x3224>)
800914c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009150: 2303 movs r3, #3
8009152: 213c movs r1, #60 ; 0x3c
8009154: 20a1 movs r0, #161 ; 0xa1
8009156: f7fb fec1 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800915a: 4b32 ldr r3, [pc, #200] ; (8009224 <Display+0x322c>)
800915c: 681b ldr r3, [r3, #0]
800915e: 2b00 cmp r3, #0
8009160: f003 86e9 beq.w 800cf36 <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009164: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8009168: b2db uxtb r3, r3
800916a: 461a mov r2, r3
800916c: 4b2b ldr r3, [pc, #172] ; (800921c <Display+0x3224>)
800916e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009172: 2303 movs r3, #3
8009174: 213c movs r1, #60 ; 0x3c
8009176: 20a8 movs r0, #168 ; 0xa8
8009178: f7fb feb0 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
800917c: f003 bedb b.w 800cf36 <Display+0x6f3e>
if(ipt1 == 1)
8009180: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8009184: b2db uxtb r3, r3
8009186: 2b01 cmp r3, #1
8009188: d150 bne.n 800922c <Display+0x3234>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
800918a: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
800918e: b2db uxtb r3, r3
8009190: 461a mov r2, r3
8009192: 4b22 ldr r3, [pc, #136] ; (800921c <Display+0x3224>)
8009194: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009198: 2303 movs r3, #3
800919a: 213c movs r1, #60 ; 0x3c
800919c: 208c movs r0, #140 ; 0x8c
800919e: f7fb fe9d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
80091a2: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
80091a6: b2db uxtb r3, r3
80091a8: 461a mov r2, r3
80091aa: 4b1c ldr r3, [pc, #112] ; (800921c <Display+0x3224>)
80091ac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80091b0: 2303 movs r3, #3
80091b2: 213c movs r1, #60 ; 0x3c
80091b4: 2093 movs r0, #147 ; 0x93
80091b6: f7fb fe91 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
80091ba: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80091be: b2db uxtb r3, r3
80091c0: 461a mov r2, r3
80091c2: 4b16 ldr r3, [pc, #88] ; (800921c <Display+0x3224>)
80091c4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80091c8: 2303 movs r3, #3
80091ca: 213c movs r1, #60 ; 0x3c
80091cc: 209a movs r0, #154 ; 0x9a
80091ce: f7fb fe85 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
80091d2: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80091d6: b2db uxtb r3, r3
80091d8: 461a mov r2, r3
80091da: 4b10 ldr r3, [pc, #64] ; (800921c <Display+0x3224>)
80091dc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80091e0: 2303 movs r3, #3
80091e2: 213c movs r1, #60 ; 0x3c
80091e4: 20a1 movs r0, #161 ; 0xa1
80091e6: f7fb fe79 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE);
80091ea: 2303 movs r3, #3
80091ec: 4a0c ldr r2, [pc, #48] ; (8009220 <Display+0x3228>)
80091ee: 213c movs r1, #60 ; 0x3c
80091f0: 20a8 movs r0, #168 ; 0xa8
80091f2: f7fb fe73 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
80091f6: 4b0b ldr r3, [pc, #44] ; (8009224 <Display+0x322c>)
80091f8: 681b ldr r3, [r3, #0]
80091fa: 2b00 cmp r3, #0
80091fc: f003 869b beq.w 800cf36 <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009200: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8009204: b2db uxtb r3, r3
8009206: 461a mov r2, r3
8009208: 4b04 ldr r3, [pc, #16] ; (800921c <Display+0x3224>)
800920a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800920e: 2303 movs r3, #3
8009210: 213c movs r1, #60 ; 0x3c
8009212: 20af movs r0, #175 ; 0xaf
8009214: f7fb fe62 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8009218: f003 be8d b.w 800cf36 <Display+0x6f3e>
800921c: 2002096c .word 0x2002096c
8009220: 08018150 .word 0x08018150
8009224: 2006ba78 .word 0x2006ba78
8009228: 20020010 .word 0x20020010
if(ipt1 == 2)
800922c: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8009230: b2db uxtb r3, r3
8009232: 2b02 cmp r3, #2
8009234: d148 bne.n 80092c8 <Display+0x32d0>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8009236: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
800923a: b2db uxtb r3, r3
800923c: 461a mov r2, r3
800923e: 4bc4 ldr r3, [pc, #784] ; (8009550 <Display+0x3558>)
8009240: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009244: 2303 movs r3, #3
8009246: 213c movs r1, #60 ; 0x3c
8009248: 208c movs r0, #140 ; 0x8c
800924a: f7fb fe47 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
800924e: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8009252: b2db uxtb r3, r3
8009254: 461a mov r2, r3
8009256: 4bbe ldr r3, [pc, #760] ; (8009550 <Display+0x3558>)
8009258: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800925c: 2303 movs r3, #3
800925e: 213c movs r1, #60 ; 0x3c
8009260: 2093 movs r0, #147 ; 0x93
8009262: f7fb fe3b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8009266: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
800926a: b2db uxtb r3, r3
800926c: 461a mov r2, r3
800926e: 4bb8 ldr r3, [pc, #736] ; (8009550 <Display+0x3558>)
8009270: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009274: 2303 movs r3, #3
8009276: 213c movs r1, #60 ; 0x3c
8009278: 209a movs r0, #154 ; 0x9a
800927a: f7fb fe2f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE);
800927e: 2303 movs r3, #3
8009280: 4ab4 ldr r2, [pc, #720] ; (8009554 <Display+0x355c>)
8009282: 213c movs r1, #60 ; 0x3c
8009284: 20a1 movs r0, #161 ; 0xa1
8009286: f7fb fe29 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
800928a: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
800928e: b2db uxtb r3, r3
8009290: 461a mov r2, r3
8009292: 4baf ldr r3, [pc, #700] ; (8009550 <Display+0x3558>)
8009294: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009298: 2303 movs r3, #3
800929a: 213c movs r1, #60 ; 0x3c
800929c: 20a8 movs r0, #168 ; 0xa8
800929e: f7fb fe1d bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
80092a2: 4bad ldr r3, [pc, #692] ; (8009558 <Display+0x3560>)
80092a4: 681b ldr r3, [r3, #0]
80092a6: 2b00 cmp r3, #0
80092a8: f003 8645 beq.w 800cf36 <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
80092ac: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80092b0: b2db uxtb r3, r3
80092b2: 461a mov r2, r3
80092b4: 4ba6 ldr r3, [pc, #664] ; (8009550 <Display+0x3558>)
80092b6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80092ba: 2303 movs r3, #3
80092bc: 213c movs r1, #60 ; 0x3c
80092be: 20af movs r0, #175 ; 0xaf
80092c0: f7fb fe0c bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80092c4: f003 be37 b.w 800cf36 <Display+0x6f3e>
if(ipt1 == 3)
80092c8: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
80092cc: b2db uxtb r3, r3
80092ce: 2b03 cmp r3, #3
80092d0: d148 bne.n 8009364 <Display+0x336c>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
80092d2: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
80092d6: b2db uxtb r3, r3
80092d8: 461a mov r2, r3
80092da: 4b9d ldr r3, [pc, #628] ; (8009550 <Display+0x3558>)
80092dc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80092e0: 2303 movs r3, #3
80092e2: 213c movs r1, #60 ; 0x3c
80092e4: 208c movs r0, #140 ; 0x8c
80092e6: f7fb fdf9 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
80092ea: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
80092ee: b2db uxtb r3, r3
80092f0: 461a mov r2, r3
80092f2: 4b97 ldr r3, [pc, #604] ; (8009550 <Display+0x3558>)
80092f4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80092f8: 2303 movs r3, #3
80092fa: 213c movs r1, #60 ; 0x3c
80092fc: 2093 movs r0, #147 ; 0x93
80092fe: f7fb fded bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE);
8009302: 2303 movs r3, #3
8009304: 4a93 ldr r2, [pc, #588] ; (8009554 <Display+0x355c>)
8009306: 213c movs r1, #60 ; 0x3c
8009308: 209a movs r0, #154 ; 0x9a
800930a: f7fb fde7 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
800930e: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8009312: b2db uxtb r3, r3
8009314: 461a mov r2, r3
8009316: 4b8e ldr r3, [pc, #568] ; (8009550 <Display+0x3558>)
8009318: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800931c: 2303 movs r3, #3
800931e: 213c movs r1, #60 ; 0x3c
8009320: 20a1 movs r0, #161 ; 0xa1
8009322: f7fb fddb bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8009326: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
800932a: b2db uxtb r3, r3
800932c: 461a mov r2, r3
800932e: 4b88 ldr r3, [pc, #544] ; (8009550 <Display+0x3558>)
8009330: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009334: 2303 movs r3, #3
8009336: 213c movs r1, #60 ; 0x3c
8009338: 20a8 movs r0, #168 ; 0xa8
800933a: f7fb fdcf bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800933e: 4b86 ldr r3, [pc, #536] ; (8009558 <Display+0x3560>)
8009340: 681b ldr r3, [r3, #0]
8009342: 2b00 cmp r3, #0
8009344: f003 85f7 beq.w 800cf36 <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009348: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
800934c: b2db uxtb r3, r3
800934e: 461a mov r2, r3
8009350: 4b7f ldr r3, [pc, #508] ; (8009550 <Display+0x3558>)
8009352: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009356: 2303 movs r3, #3
8009358: 213c movs r1, #60 ; 0x3c
800935a: 20af movs r0, #175 ; 0xaf
800935c: f7fb fdbe bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8009360: f003 bde9 b.w 800cf36 <Display+0x6f3e>
if(ipt1 == 4)
8009364: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8009368: b2db uxtb r3, r3
800936a: 2b04 cmp r3, #4
800936c: f043 85e3 bne.w 800cf36 <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8009370: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8009374: b2db uxtb r3, r3
8009376: 461a mov r2, r3
8009378: 4b75 ldr r3, [pc, #468] ; (8009550 <Display+0x3558>)
800937a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800937e: 2303 movs r3, #3
8009380: 213c movs r1, #60 ; 0x3c
8009382: 208c movs r0, #140 ; 0x8c
8009384: f7fb fdaa bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE);
8009388: 2303 movs r3, #3
800938a: 4a72 ldr r2, [pc, #456] ; (8009554 <Display+0x355c>)
800938c: 213c movs r1, #60 ; 0x3c
800938e: 2093 movs r0, #147 ; 0x93
8009390: f7fb fda4 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE);
8009394: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8009398: b2db uxtb r3, r3
800939a: 461a mov r2, r3
800939c: 4b6c ldr r3, [pc, #432] ; (8009550 <Display+0x3558>)
800939e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80093a2: 2303 movs r3, #3
80093a4: 213c movs r1, #60 ; 0x3c
80093a6: 209a movs r0, #154 ; 0x9a
80093a8: f7fb fd98 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
80093ac: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80093b0: b2db uxtb r3, r3
80093b2: 461a mov r2, r3
80093b4: 4b66 ldr r3, [pc, #408] ; (8009550 <Display+0x3558>)
80093b6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80093ba: 2303 movs r3, #3
80093bc: 213c movs r1, #60 ; 0x3c
80093be: 20a1 movs r0, #161 ; 0xa1
80093c0: f7fb fd8c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
80093c4: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80093c8: b2db uxtb r3, r3
80093ca: 461a mov r2, r3
80093cc: 4b60 ldr r3, [pc, #384] ; (8009550 <Display+0x3558>)
80093ce: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80093d2: 2303 movs r3, #3
80093d4: 213c movs r1, #60 ; 0x3c
80093d6: 20a8 movs r0, #168 ; 0xa8
80093d8: f7fb fd80 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
80093dc: 4b5e ldr r3, [pc, #376] ; (8009558 <Display+0x3560>)
80093de: 681b ldr r3, [r3, #0]
80093e0: 2b00 cmp r3, #0
80093e2: f003 85a8 beq.w 800cf36 <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
80093e6: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80093ea: b2db uxtb r3, r3
80093ec: 461a mov r2, r3
80093ee: 4b58 ldr r3, [pc, #352] ; (8009550 <Display+0x3558>)
80093f0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80093f4: 2303 movs r3, #3
80093f6: 213c movs r1, #60 ; 0x3c
80093f8: 20af movs r0, #175 ; 0xaf
80093fa: f7fb fd6f bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80093fe: f003 bd9a b.w 800cf36 <Display+0x6f3e>
if(menupos == Kpt_1)
8009402: 4b56 ldr r3, [pc, #344] ; (800955c <Display+0x3564>)
8009404: 781b ldrb r3, [r3, #0]
8009406: b2db uxtb r3, r3
8009408: 2b07 cmp r3, #7
800940a: f043 8594 bne.w 800cf36 <Display+0x6f3e>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800940e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8009412: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8009416: f7fb fc9b bl 8004d50 <LCD_SetColors>
if(!ipt1)
800941a: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
800941e: b2db uxtb r3, r3
8009420: 2b00 cmp r3, #0
8009422: d148 bne.n 80094b6 <Display+0x34be>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8009424: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8009428: b2db uxtb r3, r3
800942a: 461a mov r2, r3
800942c: 4b48 ldr r3, [pc, #288] ; (8009550 <Display+0x3558>)
800942e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009432: 2303 movs r3, #3
8009434: 213c movs r1, #60 ; 0x3c
8009436: 208c movs r0, #140 ; 0x8c
8009438: f7fb fd50 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
800943c: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8009440: b2db uxtb r3, r3
8009442: 461a mov r2, r3
8009444: 4b42 ldr r3, [pc, #264] ; (8009550 <Display+0x3558>)
8009446: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800944a: 2303 movs r3, #3
800944c: 213c movs r1, #60 ; 0x3c
800944e: 2093 movs r0, #147 ; 0x93
8009450: f7fb fd44 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8009454: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8009458: b2db uxtb r3, r3
800945a: 461a mov r2, r3
800945c: 4b3c ldr r3, [pc, #240] ; (8009550 <Display+0x3558>)
800945e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009462: 2303 movs r3, #3
8009464: 213c movs r1, #60 ; 0x3c
8009466: 209a movs r0, #154 ; 0x9a
8009468: f7fb fd38 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
800946c: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8009470: b2db uxtb r3, r3
8009472: 461a mov r2, r3
8009474: 4b36 ldr r3, [pc, #216] ; (8009550 <Display+0x3558>)
8009476: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800947a: 2303 movs r3, #3
800947c: 213c movs r1, #60 ; 0x3c
800947e: 20a1 movs r0, #161 ; 0xa1
8009480: f7fb fd2c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009484: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8009488: b2db uxtb r3, r3
800948a: 461a mov r2, r3
800948c: 4b30 ldr r3, [pc, #192] ; (8009550 <Display+0x3558>)
800948e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009492: 2303 movs r3, #3
8009494: 213c movs r1, #60 ; 0x3c
8009496: 20a8 movs r0, #168 ; 0xa8
8009498: f7fb fd20 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800949c: 4b2e ldr r3, [pc, #184] ; (8009558 <Display+0x3560>)
800949e: 681b ldr r3, [r3, #0]
80094a0: 2b00 cmp r3, #0
80094a2: f003 8548 beq.w 800cf36 <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140+35, 60, ".", LEFT_MODE);
80094a6: 2303 movs r3, #3
80094a8: 4a2a ldr r2, [pc, #168] ; (8009554 <Display+0x355c>)
80094aa: 213c movs r1, #60 ; 0x3c
80094ac: 20af movs r0, #175 ; 0xaf
80094ae: f7fb fd15 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80094b2: f003 bd40 b.w 800cf36 <Display+0x6f3e>
if(ipt1 == 1)
80094b6: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
80094ba: b2db uxtb r3, r3
80094bc: 2b01 cmp r3, #1
80094be: d14f bne.n 8009560 <Display+0x3568>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
80094c0: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
80094c4: b2db uxtb r3, r3
80094c6: 461a mov r2, r3
80094c8: 4b21 ldr r3, [pc, #132] ; (8009550 <Display+0x3558>)
80094ca: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80094ce: 2303 movs r3, #3
80094d0: 213c movs r1, #60 ; 0x3c
80094d2: 208c movs r0, #140 ; 0x8c
80094d4: f7fb fd02 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
80094d8: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
80094dc: b2db uxtb r3, r3
80094de: 461a mov r2, r3
80094e0: 4b1b ldr r3, [pc, #108] ; (8009550 <Display+0x3558>)
80094e2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80094e6: 2303 movs r3, #3
80094e8: 213c movs r1, #60 ; 0x3c
80094ea: 2093 movs r0, #147 ; 0x93
80094ec: f7fb fcf6 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
80094f0: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80094f4: b2db uxtb r3, r3
80094f6: 461a mov r2, r3
80094f8: 4b15 ldr r3, [pc, #84] ; (8009550 <Display+0x3558>)
80094fa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80094fe: 2303 movs r3, #3
8009500: 213c movs r1, #60 ; 0x3c
8009502: 209a movs r0, #154 ; 0x9a
8009504: f7fb fcea bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
8009508: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
800950c: b2db uxtb r3, r3
800950e: 461a mov r2, r3
8009510: 4b0f ldr r3, [pc, #60] ; (8009550 <Display+0x3558>)
8009512: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009516: 2303 movs r3, #3
8009518: 213c movs r1, #60 ; 0x3c
800951a: 20a1 movs r0, #161 ; 0xa1
800951c: f7fb fcde bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8009520: 4b0d ldr r3, [pc, #52] ; (8009558 <Display+0x3560>)
8009522: 681b ldr r3, [r3, #0]
8009524: 2b00 cmp r3, #0
8009526: d005 beq.n 8009534 <Display+0x353c>
BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE);
8009528: 2303 movs r3, #3
800952a: 4a0a ldr r2, [pc, #40] ; (8009554 <Display+0x355c>)
800952c: 213c movs r1, #60 ; 0x3c
800952e: 20a8 movs r0, #168 ; 0xa8
8009530: f7fb fcd4 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009534: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8009538: b2db uxtb r3, r3
800953a: 461a mov r2, r3
800953c: 4b04 ldr r3, [pc, #16] ; (8009550 <Display+0x3558>)
800953e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009542: 2303 movs r3, #3
8009544: 213c movs r1, #60 ; 0x3c
8009546: 20af movs r0, #175 ; 0xaf
8009548: f7fb fcc8 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
800954c: f003 bcf3 b.w 800cf36 <Display+0x6f3e>
8009550: 2002096c .word 0x2002096c
8009554: 08018150 .word 0x08018150
8009558: 2006ba78 .word 0x2006ba78
800955c: 20020010 .word 0x20020010
if(ipt1 == 2)
8009560: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8009564: b2db uxtb r3, r3
8009566: 2b02 cmp r3, #2
8009568: d147 bne.n 80095fa <Display+0x3602>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
800956a: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
800956e: b2db uxtb r3, r3
8009570: 461a mov r2, r3
8009572: 4bca ldr r3, [pc, #808] ; (800989c <Display+0x38a4>)
8009574: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009578: 2303 movs r3, #3
800957a: 213c movs r1, #60 ; 0x3c
800957c: 208c movs r0, #140 ; 0x8c
800957e: f7fb fcad bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8009582: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8009586: b2db uxtb r3, r3
8009588: 461a mov r2, r3
800958a: 4bc4 ldr r3, [pc, #784] ; (800989c <Display+0x38a4>)
800958c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009590: 2303 movs r3, #3
8009592: 213c movs r1, #60 ; 0x3c
8009594: 2093 movs r0, #147 ; 0x93
8009596: f7fb fca1 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
800959a: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
800959e: b2db uxtb r3, r3
80095a0: 461a mov r2, r3
80095a2: 4bbe ldr r3, [pc, #760] ; (800989c <Display+0x38a4>)
80095a4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80095a8: 2303 movs r3, #3
80095aa: 213c movs r1, #60 ; 0x3c
80095ac: 209a movs r0, #154 ; 0x9a
80095ae: f7fb fc95 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
80095b2: 4bbb ldr r3, [pc, #748] ; (80098a0 <Display+0x38a8>)
80095b4: 681b ldr r3, [r3, #0]
80095b6: 2b00 cmp r3, #0
80095b8: d005 beq.n 80095c6 <Display+0x35ce>
BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE);
80095ba: 2303 movs r3, #3
80095bc: 4ab9 ldr r2, [pc, #740] ; (80098a4 <Display+0x38ac>)
80095be: 213c movs r1, #60 ; 0x3c
80095c0: 20a1 movs r0, #161 ; 0xa1
80095c2: f7fb fc8b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
80095c6: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80095ca: b2db uxtb r3, r3
80095cc: 461a mov r2, r3
80095ce: 4bb3 ldr r3, [pc, #716] ; (800989c <Display+0x38a4>)
80095d0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80095d4: 2303 movs r3, #3
80095d6: 213c movs r1, #60 ; 0x3c
80095d8: 20a8 movs r0, #168 ; 0xa8
80095da: f7fb fc7f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
80095de: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80095e2: b2db uxtb r3, r3
80095e4: 461a mov r2, r3
80095e6: 4bad ldr r3, [pc, #692] ; (800989c <Display+0x38a4>)
80095e8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80095ec: 2303 movs r3, #3
80095ee: 213c movs r1, #60 ; 0x3c
80095f0: 20af movs r0, #175 ; 0xaf
80095f2: f7fb fc73 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80095f6: f003 bc9e b.w 800cf36 <Display+0x6f3e>
if(ipt1 == 3)
80095fa: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
80095fe: b2db uxtb r3, r3
8009600: 2b03 cmp r3, #3
8009602: d147 bne.n 8009694 <Display+0x369c>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8009604: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8009608: b2db uxtb r3, r3
800960a: 461a mov r2, r3
800960c: 4ba3 ldr r3, [pc, #652] ; (800989c <Display+0x38a4>)
800960e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009612: 2303 movs r3, #3
8009614: 213c movs r1, #60 ; 0x3c
8009616: 208c movs r0, #140 ; 0x8c
8009618: f7fb fc60 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
800961c: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8009620: b2db uxtb r3, r3
8009622: 461a mov r2, r3
8009624: 4b9d ldr r3, [pc, #628] ; (800989c <Display+0x38a4>)
8009626: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800962a: 2303 movs r3, #3
800962c: 213c movs r1, #60 ; 0x3c
800962e: 2093 movs r0, #147 ; 0x93
8009630: f7fb fc54 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8009634: 4b9a ldr r3, [pc, #616] ; (80098a0 <Display+0x38a8>)
8009636: 681b ldr r3, [r3, #0]
8009638: 2b00 cmp r3, #0
800963a: d005 beq.n 8009648 <Display+0x3650>
BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE);
800963c: 2303 movs r3, #3
800963e: 4a99 ldr r2, [pc, #612] ; (80098a4 <Display+0x38ac>)
8009640: 213c movs r1, #60 ; 0x3c
8009642: 209a movs r0, #154 ; 0x9a
8009644: f7fb fc4a bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8009648: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
800964c: b2db uxtb r3, r3
800964e: 461a mov r2, r3
8009650: 4b92 ldr r3, [pc, #584] ; (800989c <Display+0x38a4>)
8009652: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009656: 2303 movs r3, #3
8009658: 213c movs r1, #60 ; 0x3c
800965a: 20a1 movs r0, #161 ; 0xa1
800965c: f7fb fc3e bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8009660: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8009664: b2db uxtb r3, r3
8009666: 461a mov r2, r3
8009668: 4b8c ldr r3, [pc, #560] ; (800989c <Display+0x38a4>)
800966a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800966e: 2303 movs r3, #3
8009670: 213c movs r1, #60 ; 0x3c
8009672: 20a8 movs r0, #168 ; 0xa8
8009674: f7fb fc32 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009678: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
800967c: b2db uxtb r3, r3
800967e: 461a mov r2, r3
8009680: 4b86 ldr r3, [pc, #536] ; (800989c <Display+0x38a4>)
8009682: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009686: 2303 movs r3, #3
8009688: 213c movs r1, #60 ; 0x3c
800968a: 20af movs r0, #175 ; 0xaf
800968c: f7fb fc26 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8009690: f003 bc51 b.w 800cf36 <Display+0x6f3e>
if(ipt1 == 4)
8009694: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8009698: b2db uxtb r3, r3
800969a: 2b04 cmp r3, #4
800969c: f043 844b bne.w 800cf36 <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
80096a0: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
80096a4: b2db uxtb r3, r3
80096a6: 461a mov r2, r3
80096a8: 4b7c ldr r3, [pc, #496] ; (800989c <Display+0x38a4>)
80096aa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80096ae: 2303 movs r3, #3
80096b0: 213c movs r1, #60 ; 0x3c
80096b2: 208c movs r0, #140 ; 0x8c
80096b4: f7fb fc12 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
80096b8: 4b79 ldr r3, [pc, #484] ; (80098a0 <Display+0x38a8>)
80096ba: 681b ldr r3, [r3, #0]
80096bc: 2b00 cmp r3, #0
80096be: d005 beq.n 80096cc <Display+0x36d4>
BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE);
80096c0: 2303 movs r3, #3
80096c2: 4a78 ldr r2, [pc, #480] ; (80098a4 <Display+0x38ac>)
80096c4: 213c movs r1, #60 ; 0x3c
80096c6: 2093 movs r0, #147 ; 0x93
80096c8: f7fb fc08 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE);
80096cc: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
80096d0: b2db uxtb r3, r3
80096d2: 461a mov r2, r3
80096d4: 4b71 ldr r3, [pc, #452] ; (800989c <Display+0x38a4>)
80096d6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80096da: 2303 movs r3, #3
80096dc: 213c movs r1, #60 ; 0x3c
80096de: 209a movs r0, #154 ; 0x9a
80096e0: f7fb fbfc bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
80096e4: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80096e8: b2db uxtb r3, r3
80096ea: 461a mov r2, r3
80096ec: 4b6b ldr r3, [pc, #428] ; (800989c <Display+0x38a4>)
80096ee: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80096f2: 2303 movs r3, #3
80096f4: 213c movs r1, #60 ; 0x3c
80096f6: 20a1 movs r0, #161 ; 0xa1
80096f8: f7fb fbf0 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
80096fc: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8009700: b2db uxtb r3, r3
8009702: 461a mov r2, r3
8009704: 4b65 ldr r3, [pc, #404] ; (800989c <Display+0x38a4>)
8009706: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800970a: 2303 movs r3, #3
800970c: 213c movs r1, #60 ; 0x3c
800970e: 20a8 movs r0, #168 ; 0xa8
8009710: f7fb fbe4 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009714: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8009718: b2db uxtb r3, r3
800971a: 461a mov r2, r3
800971c: 4b5f ldr r3, [pc, #380] ; (800989c <Display+0x38a4>)
800971e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009722: 2303 movs r3, #3
8009724: 213c movs r1, #60 ; 0x3c
8009726: 20af movs r0, #175 ; 0xaf
8009728: f7fb fbd8 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
800972c: f003 bc03 b.w 800cf36 <Display+0x6f3e>
if(menupos >= Kikdt_2 && menupos <= Kpt_2)
8009730: 4b5d ldr r3, [pc, #372] ; (80098a8 <Display+0x38b0>)
8009732: 781b ldrb r3, [r3, #0]
8009734: b2db uxtb r3, r3
8009736: 2b09 cmp r3, #9
8009738: f241 8151 bls.w 800a9de <Display+0x49e6>
800973c: 4b5a ldr r3, [pc, #360] ; (80098a8 <Display+0x38b0>)
800973e: 781b ldrb r3, [r3, #0]
8009740: b2db uxtb r3, r3
8009742: 2b0f cmp r3, #15
8009744: f201 814b bhi.w 800a9de <Display+0x49e6>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8009748: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800974c: 4857 ldr r0, [pc, #348] ; (80098ac <Display+0x38b4>)
800974e: f7fb faff bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8009752: f507 728e add.w r2, r7, #284 ; 0x11c
8009756: 2303 movs r3, #3
8009758: 213c movs r1, #60 ; 0x3c
800975a: 208c movs r0, #140 ; 0x8c
800975c: f7fb fbbe bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8009760: f107 02a4 add.w r2, r7, #164 ; 0xa4
8009764: 2303 movs r3, #3
8009766: 2164 movs r1, #100 ; 0x64
8009768: 208c movs r0, #140 ; 0x8c
800976a: f7fb fbb7 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
800976e: f107 0268 add.w r2, r7, #104 ; 0x68
8009772: 2303 movs r3, #3
8009774: 2178 movs r1, #120 ; 0x78
8009776: 208c movs r0, #140 ; 0x8c
8009778: f7fb fbb0 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800977c: 4b4a ldr r3, [pc, #296] ; (80098a8 <Display+0x38b0>)
800977e: 781b ldrb r3, [r3, #0]
8009780: b2db uxtb r3, r3
8009782: 2b0a cmp r3, #10
8009784: f040 814c bne.w 8009a20 <Display+0x3a28>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8009788: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800978c: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8009790: f7fb fade bl 8004d50 <LCD_SetColors>
if(blk)
8009794: 4b42 ldr r3, [pc, #264] ; (80098a0 <Display+0x38a8>)
8009796: 681b ldr r3, [r3, #0]
8009798: 2b00 cmp r3, #0
800979a: d00b beq.n 80097b4 <Display+0x37bc>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800979c: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
80097a0: b2db uxtb r3, r3
80097a2: 461a mov r2, r3
80097a4: 4b3d ldr r3, [pc, #244] ; (800989c <Display+0x38a4>)
80097a6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80097aa: 2303 movs r3, #3
80097ac: 2150 movs r1, #80 ; 0x50
80097ae: 208c movs r0, #140 ; 0x8c
80097b0: f7fb fb94 bl 8004edc <BSP_LCD_DisplayStringAt>
if(!ipt2)
80097b4: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
80097b8: b2db uxtb r3, r3
80097ba: 2b00 cmp r3, #0
80097bc: d131 bne.n 8009822 <Display+0x382a>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
80097be: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
80097c2: b2db uxtb r3, r3
80097c4: 461a mov r2, r3
80097c6: 4b35 ldr r3, [pc, #212] ; (800989c <Display+0x38a4>)
80097c8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80097cc: 2303 movs r3, #3
80097ce: 2150 movs r1, #80 ; 0x50
80097d0: 2093 movs r0, #147 ; 0x93
80097d2: f7fb fb83 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
80097d6: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
80097da: b2db uxtb r3, r3
80097dc: 461a mov r2, r3
80097de: 4b2f ldr r3, [pc, #188] ; (800989c <Display+0x38a4>)
80097e0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80097e4: 2303 movs r3, #3
80097e6: 2150 movs r1, #80 ; 0x50
80097e8: 209a movs r0, #154 ; 0x9a
80097ea: f7fb fb77 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
80097ee: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
80097f2: b2db uxtb r3, r3
80097f4: 461a mov r2, r3
80097f6: 4b29 ldr r3, [pc, #164] ; (800989c <Display+0x38a4>)
80097f8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80097fc: 2303 movs r3, #3
80097fe: 2150 movs r1, #80 ; 0x50
8009800: 20a1 movs r0, #161 ; 0xa1
8009802: f7fb fb6b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009806: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800980a: b2db uxtb r3, r3
800980c: 461a mov r2, r3
800980e: 4b23 ldr r3, [pc, #140] ; (800989c <Display+0x38a4>)
8009810: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009814: 2303 movs r3, #3
8009816: 2150 movs r1, #80 ; 0x50
8009818: 20a8 movs r0, #168 ; 0xa8
800981a: f7fb fb5f bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800981e: f003 bb8d b.w 800cf3c <Display+0x6f44>
if(ipt2 == 1)
8009822: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009826: b2db uxtb r3, r3
8009828: 2b01 cmp r3, #1
800982a: d141 bne.n 80098b0 <Display+0x38b8>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800982c: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009830: b2db uxtb r3, r3
8009832: 461a mov r2, r3
8009834: 4b19 ldr r3, [pc, #100] ; (800989c <Display+0x38a4>)
8009836: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800983a: 2303 movs r3, #3
800983c: 2150 movs r1, #80 ; 0x50
800983e: 2093 movs r0, #147 ; 0x93
8009840: f7fb fb4c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009844: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009848: b2db uxtb r3, r3
800984a: 461a mov r2, r3
800984c: 4b13 ldr r3, [pc, #76] ; (800989c <Display+0x38a4>)
800984e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009852: 2303 movs r3, #3
8009854: 2150 movs r1, #80 ; 0x50
8009856: 209a movs r0, #154 ; 0x9a
8009858: f7fb fb40 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
800985c: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009860: b2db uxtb r3, r3
8009862: 461a mov r2, r3
8009864: 4b0d ldr r3, [pc, #52] ; (800989c <Display+0x38a4>)
8009866: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800986a: 2303 movs r3, #3
800986c: 2150 movs r1, #80 ; 0x50
800986e: 20a1 movs r0, #161 ; 0xa1
8009870: f7fb fb34 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE);
8009874: 2303 movs r3, #3
8009876: 4a0b ldr r2, [pc, #44] ; (80098a4 <Display+0x38ac>)
8009878: 2150 movs r1, #80 ; 0x50
800987a: 20a8 movs r0, #168 ; 0xa8
800987c: f7fb fb2e bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009880: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009884: b2db uxtb r3, r3
8009886: 461a mov r2, r3
8009888: 4b04 ldr r3, [pc, #16] ; (800989c <Display+0x38a4>)
800988a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800988e: 2303 movs r3, #3
8009890: 2150 movs r1, #80 ; 0x50
8009892: 20af movs r0, #175 ; 0xaf
8009894: f7fb fb22 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009898: f003 bb50 b.w 800cf3c <Display+0x6f44>
800989c: 2002096c .word 0x2002096c
80098a0: 2006ba78 .word 0x2006ba78
80098a4: 08018150 .word 0x08018150
80098a8: 20020010 .word 0x20020010
80098ac: ffd8aa57 .word 0xffd8aa57
if(ipt2 == 2)
80098b0: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
80098b4: b2db uxtb r3, r3
80098b6: 2b02 cmp r3, #2
80098b8: d137 bne.n 800992a <Display+0x3932>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
80098ba: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
80098be: b2db uxtb r3, r3
80098c0: 461a mov r2, r3
80098c2: 4bce ldr r3, [pc, #824] ; (8009bfc <Display+0x3c04>)
80098c4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80098c8: 2303 movs r3, #3
80098ca: 2150 movs r1, #80 ; 0x50
80098cc: 2093 movs r0, #147 ; 0x93
80098ce: f7fb fb05 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
80098d2: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
80098d6: b2db uxtb r3, r3
80098d8: 461a mov r2, r3
80098da: 4bc8 ldr r3, [pc, #800] ; (8009bfc <Display+0x3c04>)
80098dc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80098e0: 2303 movs r3, #3
80098e2: 2150 movs r1, #80 ; 0x50
80098e4: 209a movs r0, #154 ; 0x9a
80098e6: f7fb faf9 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE);
80098ea: 2303 movs r3, #3
80098ec: 4ac4 ldr r2, [pc, #784] ; (8009c00 <Display+0x3c08>)
80098ee: 2150 movs r1, #80 ; 0x50
80098f0: 20a1 movs r0, #161 ; 0xa1
80098f2: f7fb faf3 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
80098f6: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
80098fa: b2db uxtb r3, r3
80098fc: 461a mov r2, r3
80098fe: 4bbf ldr r3, [pc, #764] ; (8009bfc <Display+0x3c04>)
8009900: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009904: 2303 movs r3, #3
8009906: 2150 movs r1, #80 ; 0x50
8009908: 20a8 movs r0, #168 ; 0xa8
800990a: f7fb fae7 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800990e: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009912: b2db uxtb r3, r3
8009914: 461a mov r2, r3
8009916: 4bb9 ldr r3, [pc, #740] ; (8009bfc <Display+0x3c04>)
8009918: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800991c: 2303 movs r3, #3
800991e: 2150 movs r1, #80 ; 0x50
8009920: 20af movs r0, #175 ; 0xaf
8009922: f7fb fadb bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009926: f003 bb09 b.w 800cf3c <Display+0x6f44>
if(ipt2 == 3)
800992a: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800992e: b2db uxtb r3, r3
8009930: 2b03 cmp r3, #3
8009932: d137 bne.n 80099a4 <Display+0x39ac>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009934: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009938: b2db uxtb r3, r3
800993a: 461a mov r2, r3
800993c: 4baf ldr r3, [pc, #700] ; (8009bfc <Display+0x3c04>)
800993e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009942: 2303 movs r3, #3
8009944: 2150 movs r1, #80 ; 0x50
8009946: 2093 movs r0, #147 ; 0x93
8009948: f7fb fac8 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE);
800994c: 2303 movs r3, #3
800994e: 4aac ldr r2, [pc, #688] ; (8009c00 <Display+0x3c08>)
8009950: 2150 movs r1, #80 ; 0x50
8009952: 209a movs r0, #154 ; 0x9a
8009954: f7fb fac2 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009958: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800995c: b2db uxtb r3, r3
800995e: 461a mov r2, r3
8009960: 4ba6 ldr r3, [pc, #664] ; (8009bfc <Display+0x3c04>)
8009962: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009966: 2303 movs r3, #3
8009968: 2150 movs r1, #80 ; 0x50
800996a: 20a1 movs r0, #161 ; 0xa1
800996c: f7fb fab6 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009970: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009974: b2db uxtb r3, r3
8009976: 461a mov r2, r3
8009978: 4ba0 ldr r3, [pc, #640] ; (8009bfc <Display+0x3c04>)
800997a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800997e: 2303 movs r3, #3
8009980: 2150 movs r1, #80 ; 0x50
8009982: 20a8 movs r0, #168 ; 0xa8
8009984: f7fb faaa bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009988: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800998c: b2db uxtb r3, r3
800998e: 461a mov r2, r3
8009990: 4b9a ldr r3, [pc, #616] ; (8009bfc <Display+0x3c04>)
8009992: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009996: 2303 movs r3, #3
8009998: 2150 movs r1, #80 ; 0x50
800999a: 20af movs r0, #175 ; 0xaf
800999c: f7fb fa9e bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
80099a0: f003 bacc b.w 800cf3c <Display+0x6f44>
if(ipt2 == 4)
80099a4: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
80099a8: b2db uxtb r3, r3
80099aa: 2b04 cmp r3, #4
80099ac: f043 82c6 bne.w 800cf3c <Display+0x6f44>
BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE);
80099b0: 2303 movs r3, #3
80099b2: 4a93 ldr r2, [pc, #588] ; (8009c00 <Display+0x3c08>)
80099b4: 2150 movs r1, #80 ; 0x50
80099b6: 2093 movs r0, #147 ; 0x93
80099b8: f7fb fa90 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE);
80099bc: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
80099c0: b2db uxtb r3, r3
80099c2: 461a mov r2, r3
80099c4: 4b8d ldr r3, [pc, #564] ; (8009bfc <Display+0x3c04>)
80099c6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80099ca: 2303 movs r3, #3
80099cc: 2150 movs r1, #80 ; 0x50
80099ce: 209a movs r0, #154 ; 0x9a
80099d0: f7fb fa84 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
80099d4: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
80099d8: b2db uxtb r3, r3
80099da: 461a mov r2, r3
80099dc: 4b87 ldr r3, [pc, #540] ; (8009bfc <Display+0x3c04>)
80099de: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80099e2: 2303 movs r3, #3
80099e4: 2150 movs r1, #80 ; 0x50
80099e6: 20a1 movs r0, #161 ; 0xa1
80099e8: f7fb fa78 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
80099ec: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
80099f0: b2db uxtb r3, r3
80099f2: 461a mov r2, r3
80099f4: 4b81 ldr r3, [pc, #516] ; (8009bfc <Display+0x3c04>)
80099f6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80099fa: 2303 movs r3, #3
80099fc: 2150 movs r1, #80 ; 0x50
80099fe: 20a8 movs r0, #168 ; 0xa8
8009a00: f7fb fa6c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009a04: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009a08: b2db uxtb r3, r3
8009a0a: 461a mov r2, r3
8009a0c: 4b7b ldr r3, [pc, #492] ; (8009bfc <Display+0x3c04>)
8009a0e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009a12: 2303 movs r3, #3
8009a14: 2150 movs r1, #80 ; 0x50
8009a16: 20af movs r0, #175 ; 0xaf
8009a18: f7fb fa60 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009a1c: f003 ba8e b.w 800cf3c <Display+0x6f44>
if(menupos == Kikt_2)
8009a20: 4b78 ldr r3, [pc, #480] ; (8009c04 <Display+0x3c0c>)
8009a22: 781b ldrb r3, [r3, #0]
8009a24: b2db uxtb r3, r3
8009a26: 2b0b cmp r3, #11
8009a28: f040 818b bne.w 8009d42 <Display+0x3d4a>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8009a2c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8009a30: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8009a34: f7fb f98c bl 8004d50 <LCD_SetColors>
if(!ipt2)
8009a38: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009a3c: b2db uxtb r3, r3
8009a3e: 2b00 cmp r3, #0
8009a40: d141 bne.n 8009ac6 <Display+0x3ace>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009a42: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009a46: b2db uxtb r3, r3
8009a48: 461a mov r2, r3
8009a4a: 4b6c ldr r3, [pc, #432] ; (8009bfc <Display+0x3c04>)
8009a4c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009a50: 2303 movs r3, #3
8009a52: 2150 movs r1, #80 ; 0x50
8009a54: 208c movs r0, #140 ; 0x8c
8009a56: f7fb fa41 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8009a5a: 4b6b ldr r3, [pc, #428] ; (8009c08 <Display+0x3c10>)
8009a5c: 681b ldr r3, [r3, #0]
8009a5e: 2b00 cmp r3, #0
8009a60: d00b beq.n 8009a7a <Display+0x3a82>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009a62: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009a66: b2db uxtb r3, r3
8009a68: 461a mov r2, r3
8009a6a: 4b64 ldr r3, [pc, #400] ; (8009bfc <Display+0x3c04>)
8009a6c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009a70: 2303 movs r3, #3
8009a72: 2150 movs r1, #80 ; 0x50
8009a74: 2093 movs r0, #147 ; 0x93
8009a76: f7fb fa31 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009a7a: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009a7e: b2db uxtb r3, r3
8009a80: 461a mov r2, r3
8009a82: 4b5e ldr r3, [pc, #376] ; (8009bfc <Display+0x3c04>)
8009a84: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009a88: 2303 movs r3, #3
8009a8a: 2150 movs r1, #80 ; 0x50
8009a8c: 209a movs r0, #154 ; 0x9a
8009a8e: f7fb fa25 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009a92: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009a96: b2db uxtb r3, r3
8009a98: 461a mov r2, r3
8009a9a: 4b58 ldr r3, [pc, #352] ; (8009bfc <Display+0x3c04>)
8009a9c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009aa0: 2303 movs r3, #3
8009aa2: 2150 movs r1, #80 ; 0x50
8009aa4: 20a1 movs r0, #161 ; 0xa1
8009aa6: f7fb fa19 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009aaa: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009aae: b2db uxtb r3, r3
8009ab0: 461a mov r2, r3
8009ab2: 4b52 ldr r3, [pc, #328] ; (8009bfc <Display+0x3c04>)
8009ab4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009ab8: 2303 movs r3, #3
8009aba: 2150 movs r1, #80 ; 0x50
8009abc: 20a8 movs r0, #168 ; 0xa8
8009abe: f7fb fa0d bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009ac2: f003 ba3b b.w 800cf3c <Display+0x6f44>
if(ipt2 == 1)
8009ac6: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009aca: b2db uxtb r3, r3
8009acc: 2b01 cmp r3, #1
8009ace: d147 bne.n 8009b60 <Display+0x3b68>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009ad0: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009ad4: b2db uxtb r3, r3
8009ad6: 461a mov r2, r3
8009ad8: 4b48 ldr r3, [pc, #288] ; (8009bfc <Display+0x3c04>)
8009ada: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009ade: 2303 movs r3, #3
8009ae0: 2150 movs r1, #80 ; 0x50
8009ae2: 208c movs r0, #140 ; 0x8c
8009ae4: f7fb f9fa bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8009ae8: 4b47 ldr r3, [pc, #284] ; (8009c08 <Display+0x3c10>)
8009aea: 681b ldr r3, [r3, #0]
8009aec: 2b00 cmp r3, #0
8009aee: d00b beq.n 8009b08 <Display+0x3b10>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009af0: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009af4: b2db uxtb r3, r3
8009af6: 461a mov r2, r3
8009af8: 4b40 ldr r3, [pc, #256] ; (8009bfc <Display+0x3c04>)
8009afa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009afe: 2303 movs r3, #3
8009b00: 2150 movs r1, #80 ; 0x50
8009b02: 2093 movs r0, #147 ; 0x93
8009b04: f7fb f9ea bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009b08: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009b0c: b2db uxtb r3, r3
8009b0e: 461a mov r2, r3
8009b10: 4b3a ldr r3, [pc, #232] ; (8009bfc <Display+0x3c04>)
8009b12: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009b16: 2303 movs r3, #3
8009b18: 2150 movs r1, #80 ; 0x50
8009b1a: 209a movs r0, #154 ; 0x9a
8009b1c: f7fb f9de bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009b20: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009b24: b2db uxtb r3, r3
8009b26: 461a mov r2, r3
8009b28: 4b34 ldr r3, [pc, #208] ; (8009bfc <Display+0x3c04>)
8009b2a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009b2e: 2303 movs r3, #3
8009b30: 2150 movs r1, #80 ; 0x50
8009b32: 20a1 movs r0, #161 ; 0xa1
8009b34: f7fb f9d2 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE);
8009b38: 2303 movs r3, #3
8009b3a: 4a31 ldr r2, [pc, #196] ; (8009c00 <Display+0x3c08>)
8009b3c: 2150 movs r1, #80 ; 0x50
8009b3e: 20a8 movs r0, #168 ; 0xa8
8009b40: f7fb f9cc bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009b44: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009b48: b2db uxtb r3, r3
8009b4a: 461a mov r2, r3
8009b4c: 4b2b ldr r3, [pc, #172] ; (8009bfc <Display+0x3c04>)
8009b4e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009b52: 2303 movs r3, #3
8009b54: 2150 movs r1, #80 ; 0x50
8009b56: 20af movs r0, #175 ; 0xaf
8009b58: f7fb f9c0 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009b5c: f003 b9ee b.w 800cf3c <Display+0x6f44>
if(ipt2 == 2)
8009b60: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009b64: b2db uxtb r3, r3
8009b66: 2b02 cmp r3, #2
8009b68: d150 bne.n 8009c0c <Display+0x3c14>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009b6a: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009b6e: b2db uxtb r3, r3
8009b70: 461a mov r2, r3
8009b72: 4b22 ldr r3, [pc, #136] ; (8009bfc <Display+0x3c04>)
8009b74: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009b78: 2303 movs r3, #3
8009b7a: 2150 movs r1, #80 ; 0x50
8009b7c: 208c movs r0, #140 ; 0x8c
8009b7e: f7fb f9ad bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8009b82: 4b21 ldr r3, [pc, #132] ; (8009c08 <Display+0x3c10>)
8009b84: 681b ldr r3, [r3, #0]
8009b86: 2b00 cmp r3, #0
8009b88: d00b beq.n 8009ba2 <Display+0x3baa>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009b8a: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009b8e: b2db uxtb r3, r3
8009b90: 461a mov r2, r3
8009b92: 4b1a ldr r3, [pc, #104] ; (8009bfc <Display+0x3c04>)
8009b94: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009b98: 2303 movs r3, #3
8009b9a: 2150 movs r1, #80 ; 0x50
8009b9c: 2093 movs r0, #147 ; 0x93
8009b9e: f7fb f99d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009ba2: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009ba6: b2db uxtb r3, r3
8009ba8: 461a mov r2, r3
8009baa: 4b14 ldr r3, [pc, #80] ; (8009bfc <Display+0x3c04>)
8009bac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009bb0: 2303 movs r3, #3
8009bb2: 2150 movs r1, #80 ; 0x50
8009bb4: 209a movs r0, #154 ; 0x9a
8009bb6: f7fb f991 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE);
8009bba: 2303 movs r3, #3
8009bbc: 4a10 ldr r2, [pc, #64] ; (8009c00 <Display+0x3c08>)
8009bbe: 2150 movs r1, #80 ; 0x50
8009bc0: 20a1 movs r0, #161 ; 0xa1
8009bc2: f7fb f98b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009bc6: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009bca: b2db uxtb r3, r3
8009bcc: 461a mov r2, r3
8009bce: 4b0b ldr r3, [pc, #44] ; (8009bfc <Display+0x3c04>)
8009bd0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009bd4: 2303 movs r3, #3
8009bd6: 2150 movs r1, #80 ; 0x50
8009bd8: 20a8 movs r0, #168 ; 0xa8
8009bda: f7fb f97f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009bde: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009be2: b2db uxtb r3, r3
8009be4: 461a mov r2, r3
8009be6: 4b05 ldr r3, [pc, #20] ; (8009bfc <Display+0x3c04>)
8009be8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009bec: 2303 movs r3, #3
8009bee: 2150 movs r1, #80 ; 0x50
8009bf0: 20af movs r0, #175 ; 0xaf
8009bf2: f7fb f973 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009bf6: f003 b9a1 b.w 800cf3c <Display+0x6f44>
8009bfa: bf00 nop
8009bfc: 2002096c .word 0x2002096c
8009c00: 08018150 .word 0x08018150
8009c04: 20020010 .word 0x20020010
8009c08: 2006ba78 .word 0x2006ba78
if(ipt2 == 3)
8009c0c: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009c10: b2db uxtb r3, r3
8009c12: 2b03 cmp r3, #3
8009c14: d147 bne.n 8009ca6 <Display+0x3cae>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009c16: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009c1a: b2db uxtb r3, r3
8009c1c: 461a mov r2, r3
8009c1e: 4bbf ldr r3, [pc, #764] ; (8009f1c <Display+0x3f24>)
8009c20: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009c24: 2303 movs r3, #3
8009c26: 2150 movs r1, #80 ; 0x50
8009c28: 208c movs r0, #140 ; 0x8c
8009c2a: f7fb f957 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8009c2e: 4bbc ldr r3, [pc, #752] ; (8009f20 <Display+0x3f28>)
8009c30: 681b ldr r3, [r3, #0]
8009c32: 2b00 cmp r3, #0
8009c34: d00b beq.n 8009c4e <Display+0x3c56>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009c36: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009c3a: b2db uxtb r3, r3
8009c3c: 461a mov r2, r3
8009c3e: 4bb7 ldr r3, [pc, #732] ; (8009f1c <Display+0x3f24>)
8009c40: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009c44: 2303 movs r3, #3
8009c46: 2150 movs r1, #80 ; 0x50
8009c48: 2093 movs r0, #147 ; 0x93
8009c4a: f7fb f947 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE);
8009c4e: 2303 movs r3, #3
8009c50: 4ab4 ldr r2, [pc, #720] ; (8009f24 <Display+0x3f2c>)
8009c52: 2150 movs r1, #80 ; 0x50
8009c54: 209a movs r0, #154 ; 0x9a
8009c56: f7fb f941 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009c5a: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009c5e: b2db uxtb r3, r3
8009c60: 461a mov r2, r3
8009c62: 4bae ldr r3, [pc, #696] ; (8009f1c <Display+0x3f24>)
8009c64: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009c68: 2303 movs r3, #3
8009c6a: 2150 movs r1, #80 ; 0x50
8009c6c: 20a1 movs r0, #161 ; 0xa1
8009c6e: f7fb f935 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009c72: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009c76: b2db uxtb r3, r3
8009c78: 461a mov r2, r3
8009c7a: 4ba8 ldr r3, [pc, #672] ; (8009f1c <Display+0x3f24>)
8009c7c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009c80: 2303 movs r3, #3
8009c82: 2150 movs r1, #80 ; 0x50
8009c84: 20a8 movs r0, #168 ; 0xa8
8009c86: f7fb f929 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009c8a: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009c8e: b2db uxtb r3, r3
8009c90: 461a mov r2, r3
8009c92: 4ba2 ldr r3, [pc, #648] ; (8009f1c <Display+0x3f24>)
8009c94: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009c98: 2303 movs r3, #3
8009c9a: 2150 movs r1, #80 ; 0x50
8009c9c: 20af movs r0, #175 ; 0xaf
8009c9e: f7fb f91d bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009ca2: f003 b94b b.w 800cf3c <Display+0x6f44>
if(ipt2 == 4)
8009ca6: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009caa: b2db uxtb r3, r3
8009cac: 2b04 cmp r3, #4
8009cae: f043 8145 bne.w 800cf3c <Display+0x6f44>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009cb2: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009cb6: b2db uxtb r3, r3
8009cb8: 461a mov r2, r3
8009cba: 4b98 ldr r3, [pc, #608] ; (8009f1c <Display+0x3f24>)
8009cbc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009cc0: 2303 movs r3, #3
8009cc2: 2150 movs r1, #80 ; 0x50
8009cc4: 208c movs r0, #140 ; 0x8c
8009cc6: f7fb f909 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE);
8009cca: 2303 movs r3, #3
8009ccc: 4a95 ldr r2, [pc, #596] ; (8009f24 <Display+0x3f2c>)
8009cce: 2150 movs r1, #80 ; 0x50
8009cd0: 2093 movs r0, #147 ; 0x93
8009cd2: f7fb f903 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8009cd6: 4b92 ldr r3, [pc, #584] ; (8009f20 <Display+0x3f28>)
8009cd8: 681b ldr r3, [r3, #0]
8009cda: 2b00 cmp r3, #0
8009cdc: d00b beq.n 8009cf6 <Display+0x3cfe>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009cde: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009ce2: b2db uxtb r3, r3
8009ce4: 461a mov r2, r3
8009ce6: 4b8d ldr r3, [pc, #564] ; (8009f1c <Display+0x3f24>)
8009ce8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009cec: 2303 movs r3, #3
8009cee: 2150 movs r1, #80 ; 0x50
8009cf0: 209a movs r0, #154 ; 0x9a
8009cf2: f7fb f8f3 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009cf6: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009cfa: b2db uxtb r3, r3
8009cfc: 461a mov r2, r3
8009cfe: 4b87 ldr r3, [pc, #540] ; (8009f1c <Display+0x3f24>)
8009d00: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009d04: 2303 movs r3, #3
8009d06: 2150 movs r1, #80 ; 0x50
8009d08: 20a1 movs r0, #161 ; 0xa1
8009d0a: f7fb f8e7 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009d0e: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009d12: b2db uxtb r3, r3
8009d14: 461a mov r2, r3
8009d16: 4b81 ldr r3, [pc, #516] ; (8009f1c <Display+0x3f24>)
8009d18: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009d1c: 2303 movs r3, #3
8009d1e: 2150 movs r1, #80 ; 0x50
8009d20: 20a8 movs r0, #168 ; 0xa8
8009d22: f7fb f8db bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009d26: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009d2a: b2db uxtb r3, r3
8009d2c: 461a mov r2, r3
8009d2e: 4b7b ldr r3, [pc, #492] ; (8009f1c <Display+0x3f24>)
8009d30: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009d34: 2303 movs r3, #3
8009d36: 2150 movs r1, #80 ; 0x50
8009d38: 20af movs r0, #175 ; 0xaf
8009d3a: f7fb f8cf bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009d3e: f003 b8fd b.w 800cf3c <Display+0x6f44>
if(menupos == Kiks_2)
8009d42: 4b79 ldr r3, [pc, #484] ; (8009f28 <Display+0x3f30>)
8009d44: 781b ldrb r3, [r3, #0]
8009d46: b2db uxtb r3, r3
8009d48: 2b0c cmp r3, #12
8009d4a: f040 818a bne.w 800a062 <Display+0x406a>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8009d4e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8009d52: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8009d56: f7fa fffb bl 8004d50 <LCD_SetColors>
if(!ipt2)
8009d5a: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009d5e: b2db uxtb r3, r3
8009d60: 2b00 cmp r3, #0
8009d62: d141 bne.n 8009de8 <Display+0x3df0>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009d64: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009d68: b2db uxtb r3, r3
8009d6a: 461a mov r2, r3
8009d6c: 4b6b ldr r3, [pc, #428] ; (8009f1c <Display+0x3f24>)
8009d6e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009d72: 2303 movs r3, #3
8009d74: 2150 movs r1, #80 ; 0x50
8009d76: 208c movs r0, #140 ; 0x8c
8009d78: f7fb f8b0 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009d7c: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009d80: b2db uxtb r3, r3
8009d82: 461a mov r2, r3
8009d84: 4b65 ldr r3, [pc, #404] ; (8009f1c <Display+0x3f24>)
8009d86: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009d8a: 2303 movs r3, #3
8009d8c: 2150 movs r1, #80 ; 0x50
8009d8e: 2093 movs r0, #147 ; 0x93
8009d90: f7fb f8a4 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8009d94: 4b62 ldr r3, [pc, #392] ; (8009f20 <Display+0x3f28>)
8009d96: 681b ldr r3, [r3, #0]
8009d98: 2b00 cmp r3, #0
8009d9a: d00b beq.n 8009db4 <Display+0x3dbc>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009d9c: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009da0: b2db uxtb r3, r3
8009da2: 461a mov r2, r3
8009da4: 4b5d ldr r3, [pc, #372] ; (8009f1c <Display+0x3f24>)
8009da6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009daa: 2303 movs r3, #3
8009dac: 2150 movs r1, #80 ; 0x50
8009dae: 209a movs r0, #154 ; 0x9a
8009db0: f7fb f894 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009db4: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009db8: b2db uxtb r3, r3
8009dba: 461a mov r2, r3
8009dbc: 4b57 ldr r3, [pc, #348] ; (8009f1c <Display+0x3f24>)
8009dbe: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009dc2: 2303 movs r3, #3
8009dc4: 2150 movs r1, #80 ; 0x50
8009dc6: 20a1 movs r0, #161 ; 0xa1
8009dc8: f7fb f888 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009dcc: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009dd0: b2db uxtb r3, r3
8009dd2: 461a mov r2, r3
8009dd4: 4b51 ldr r3, [pc, #324] ; (8009f1c <Display+0x3f24>)
8009dd6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009dda: 2303 movs r3, #3
8009ddc: 2150 movs r1, #80 ; 0x50
8009dde: 20a8 movs r0, #168 ; 0xa8
8009de0: f7fb f87c bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009de4: f003 b8aa b.w 800cf3c <Display+0x6f44>
if(ipt2 == 1)
8009de8: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009dec: b2db uxtb r3, r3
8009dee: 2b01 cmp r3, #1
8009df0: d147 bne.n 8009e82 <Display+0x3e8a>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009df2: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009df6: b2db uxtb r3, r3
8009df8: 461a mov r2, r3
8009dfa: 4b48 ldr r3, [pc, #288] ; (8009f1c <Display+0x3f24>)
8009dfc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009e00: 2303 movs r3, #3
8009e02: 2150 movs r1, #80 ; 0x50
8009e04: 208c movs r0, #140 ; 0x8c
8009e06: f7fb f869 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009e0a: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009e0e: b2db uxtb r3, r3
8009e10: 461a mov r2, r3
8009e12: 4b42 ldr r3, [pc, #264] ; (8009f1c <Display+0x3f24>)
8009e14: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009e18: 2303 movs r3, #3
8009e1a: 2150 movs r1, #80 ; 0x50
8009e1c: 2093 movs r0, #147 ; 0x93
8009e1e: f7fb f85d bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8009e22: 4b3f ldr r3, [pc, #252] ; (8009f20 <Display+0x3f28>)
8009e24: 681b ldr r3, [r3, #0]
8009e26: 2b00 cmp r3, #0
8009e28: d00b beq.n 8009e42 <Display+0x3e4a>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009e2a: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009e2e: b2db uxtb r3, r3
8009e30: 461a mov r2, r3
8009e32: 4b3a ldr r3, [pc, #232] ; (8009f1c <Display+0x3f24>)
8009e34: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009e38: 2303 movs r3, #3
8009e3a: 2150 movs r1, #80 ; 0x50
8009e3c: 209a movs r0, #154 ; 0x9a
8009e3e: f7fb f84d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009e42: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009e46: b2db uxtb r3, r3
8009e48: 461a mov r2, r3
8009e4a: 4b34 ldr r3, [pc, #208] ; (8009f1c <Display+0x3f24>)
8009e4c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009e50: 2303 movs r3, #3
8009e52: 2150 movs r1, #80 ; 0x50
8009e54: 20a1 movs r0, #161 ; 0xa1
8009e56: f7fb f841 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE);
8009e5a: 2303 movs r3, #3
8009e5c: 4a31 ldr r2, [pc, #196] ; (8009f24 <Display+0x3f2c>)
8009e5e: 2150 movs r1, #80 ; 0x50
8009e60: 20a8 movs r0, #168 ; 0xa8
8009e62: f7fb f83b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009e66: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009e6a: b2db uxtb r3, r3
8009e6c: 461a mov r2, r3
8009e6e: 4b2b ldr r3, [pc, #172] ; (8009f1c <Display+0x3f24>)
8009e70: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009e74: 2303 movs r3, #3
8009e76: 2150 movs r1, #80 ; 0x50
8009e78: 20af movs r0, #175 ; 0xaf
8009e7a: f7fb f82f bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009e7e: f003 b85d b.w 800cf3c <Display+0x6f44>
if(ipt2 == 2)
8009e82: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009e86: b2db uxtb r3, r3
8009e88: 2b02 cmp r3, #2
8009e8a: d14f bne.n 8009f2c <Display+0x3f34>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009e8c: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009e90: b2db uxtb r3, r3
8009e92: 461a mov r2, r3
8009e94: 4b21 ldr r3, [pc, #132] ; (8009f1c <Display+0x3f24>)
8009e96: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009e9a: 2303 movs r3, #3
8009e9c: 2150 movs r1, #80 ; 0x50
8009e9e: 208c movs r0, #140 ; 0x8c
8009ea0: f7fb f81c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009ea4: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009ea8: b2db uxtb r3, r3
8009eaa: 461a mov r2, r3
8009eac: 4b1b ldr r3, [pc, #108] ; (8009f1c <Display+0x3f24>)
8009eae: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009eb2: 2303 movs r3, #3
8009eb4: 2150 movs r1, #80 ; 0x50
8009eb6: 2093 movs r0, #147 ; 0x93
8009eb8: f7fb f810 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8009ebc: 4b18 ldr r3, [pc, #96] ; (8009f20 <Display+0x3f28>)
8009ebe: 681b ldr r3, [r3, #0]
8009ec0: 2b00 cmp r3, #0
8009ec2: d00b beq.n 8009edc <Display+0x3ee4>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009ec4: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009ec8: b2db uxtb r3, r3
8009eca: 461a mov r2, r3
8009ecc: 4b13 ldr r3, [pc, #76] ; (8009f1c <Display+0x3f24>)
8009ece: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009ed2: 2303 movs r3, #3
8009ed4: 2150 movs r1, #80 ; 0x50
8009ed6: 209a movs r0, #154 ; 0x9a
8009ed8: f7fb f800 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE);
8009edc: 2303 movs r3, #3
8009ede: 4a11 ldr r2, [pc, #68] ; (8009f24 <Display+0x3f2c>)
8009ee0: 2150 movs r1, #80 ; 0x50
8009ee2: 20a1 movs r0, #161 ; 0xa1
8009ee4: f7fa fffa bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009ee8: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009eec: b2db uxtb r3, r3
8009eee: 461a mov r2, r3
8009ef0: 4b0a ldr r3, [pc, #40] ; (8009f1c <Display+0x3f24>)
8009ef2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009ef6: 2303 movs r3, #3
8009ef8: 2150 movs r1, #80 ; 0x50
8009efa: 20a8 movs r0, #168 ; 0xa8
8009efc: f7fa ffee bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009f00: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009f04: b2db uxtb r3, r3
8009f06: 461a mov r2, r3
8009f08: 4b04 ldr r3, [pc, #16] ; (8009f1c <Display+0x3f24>)
8009f0a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009f0e: 2303 movs r3, #3
8009f10: 2150 movs r1, #80 ; 0x50
8009f12: 20af movs r0, #175 ; 0xaf
8009f14: f7fa ffe2 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009f18: f003 b810 b.w 800cf3c <Display+0x6f44>
8009f1c: 2002096c .word 0x2002096c
8009f20: 2006ba78 .word 0x2006ba78
8009f24: 08018150 .word 0x08018150
8009f28: 20020010 .word 0x20020010
if(ipt2 == 3)
8009f2c: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009f30: b2db uxtb r3, r3
8009f32: 2b03 cmp r3, #3
8009f34: d147 bne.n 8009fc6 <Display+0x3fce>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009f36: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009f3a: b2db uxtb r3, r3
8009f3c: 461a mov r2, r3
8009f3e: 4bbf ldr r3, [pc, #764] ; (800a23c <Display+0x4244>)
8009f40: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009f44: 2303 movs r3, #3
8009f46: 2150 movs r1, #80 ; 0x50
8009f48: 208c movs r0, #140 ; 0x8c
8009f4a: f7fa ffc7 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009f4e: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009f52: b2db uxtb r3, r3
8009f54: 461a mov r2, r3
8009f56: 4bb9 ldr r3, [pc, #740] ; (800a23c <Display+0x4244>)
8009f58: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009f5c: 2303 movs r3, #3
8009f5e: 2150 movs r1, #80 ; 0x50
8009f60: 2093 movs r0, #147 ; 0x93
8009f62: f7fa ffbb bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE);
8009f66: 2303 movs r3, #3
8009f68: 4ab5 ldr r2, [pc, #724] ; (800a240 <Display+0x4248>)
8009f6a: 2150 movs r1, #80 ; 0x50
8009f6c: 209a movs r0, #154 ; 0x9a
8009f6e: f7fa ffb5 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
8009f72: 4bb4 ldr r3, [pc, #720] ; (800a244 <Display+0x424c>)
8009f74: 681b ldr r3, [r3, #0]
8009f76: 2b00 cmp r3, #0
8009f78: d00b beq.n 8009f92 <Display+0x3f9a>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009f7a: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009f7e: b2db uxtb r3, r3
8009f80: 461a mov r2, r3
8009f82: 4bae ldr r3, [pc, #696] ; (800a23c <Display+0x4244>)
8009f84: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009f88: 2303 movs r3, #3
8009f8a: 2150 movs r1, #80 ; 0x50
8009f8c: 20a1 movs r0, #161 ; 0xa1
8009f8e: f7fa ffa5 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009f92: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009f96: b2db uxtb r3, r3
8009f98: 461a mov r2, r3
8009f9a: 4ba8 ldr r3, [pc, #672] ; (800a23c <Display+0x4244>)
8009f9c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009fa0: 2303 movs r3, #3
8009fa2: 2150 movs r1, #80 ; 0x50
8009fa4: 20a8 movs r0, #168 ; 0xa8
8009fa6: f7fa ff99 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009faa: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009fae: b2db uxtb r3, r3
8009fb0: 461a mov r2, r3
8009fb2: 4ba2 ldr r3, [pc, #648] ; (800a23c <Display+0x4244>)
8009fb4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009fb8: 2303 movs r3, #3
8009fba: 2150 movs r1, #80 ; 0x50
8009fbc: 20af movs r0, #175 ; 0xaf
8009fbe: f7fa ff8d bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009fc2: f002 bfbb b.w 800cf3c <Display+0x6f44>
if(ipt2 == 4)
8009fc6: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009fca: b2db uxtb r3, r3
8009fcc: 2b04 cmp r3, #4
8009fce: f042 87b5 bne.w 800cf3c <Display+0x6f44>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009fd2: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009fd6: b2db uxtb r3, r3
8009fd8: 461a mov r2, r3
8009fda: 4b98 ldr r3, [pc, #608] ; (800a23c <Display+0x4244>)
8009fdc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009fe0: 2303 movs r3, #3
8009fe2: 2150 movs r1, #80 ; 0x50
8009fe4: 208c movs r0, #140 ; 0x8c
8009fe6: f7fa ff79 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE);
8009fea: 2303 movs r3, #3
8009fec: 4a94 ldr r2, [pc, #592] ; (800a240 <Display+0x4248>)
8009fee: 2150 movs r1, #80 ; 0x50
8009ff0: 2093 movs r0, #147 ; 0x93
8009ff2: f7fa ff73 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009ff6: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009ffa: b2db uxtb r3, r3
8009ffc: 461a mov r2, r3
8009ffe: 4b8f ldr r3, [pc, #572] ; (800a23c <Display+0x4244>)
800a000: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a004: 2303 movs r3, #3
800a006: 2150 movs r1, #80 ; 0x50
800a008: 209a movs r0, #154 ; 0x9a
800a00a: f7fa ff67 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800a00e: 4b8d ldr r3, [pc, #564] ; (800a244 <Display+0x424c>)
800a010: 681b ldr r3, [r3, #0]
800a012: 2b00 cmp r3, #0
800a014: d00b beq.n 800a02e <Display+0x4036>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a016: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a01a: b2db uxtb r3, r3
800a01c: 461a mov r2, r3
800a01e: 4b87 ldr r3, [pc, #540] ; (800a23c <Display+0x4244>)
800a020: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a024: 2303 movs r3, #3
800a026: 2150 movs r1, #80 ; 0x50
800a028: 20a1 movs r0, #161 ; 0xa1
800a02a: f7fa ff57 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a02e: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a032: b2db uxtb r3, r3
800a034: 461a mov r2, r3
800a036: 4b81 ldr r3, [pc, #516] ; (800a23c <Display+0x4244>)
800a038: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a03c: 2303 movs r3, #3
800a03e: 2150 movs r1, #80 ; 0x50
800a040: 20a8 movs r0, #168 ; 0xa8
800a042: f7fa ff4b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a046: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a04a: b2db uxtb r3, r3
800a04c: 461a mov r2, r3
800a04e: 4b7b ldr r3, [pc, #492] ; (800a23c <Display+0x4244>)
800a050: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a054: 2303 movs r3, #3
800a056: 2150 movs r1, #80 ; 0x50
800a058: 20af movs r0, #175 ; 0xaf
800a05a: f7fa ff3f bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a05e: f002 bf6d b.w 800cf3c <Display+0x6f44>
if(menupos == Kikd_2)
800a062: 4b79 ldr r3, [pc, #484] ; (800a248 <Display+0x4250>)
800a064: 781b ldrb r3, [r3, #0]
800a066: b2db uxtb r3, r3
800a068: 2b0d cmp r3, #13
800a06a: f040 818a bne.w 800a382 <Display+0x438a>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800a06e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800a072: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800a076: f7fa fe6b bl 8004d50 <LCD_SetColors>
if(!ipt2)
800a07a: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a07e: b2db uxtb r3, r3
800a080: 2b00 cmp r3, #0
800a082: d141 bne.n 800a108 <Display+0x4110>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a084: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a088: b2db uxtb r3, r3
800a08a: 461a mov r2, r3
800a08c: 4b6b ldr r3, [pc, #428] ; (800a23c <Display+0x4244>)
800a08e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a092: 2303 movs r3, #3
800a094: 2150 movs r1, #80 ; 0x50
800a096: 208c movs r0, #140 ; 0x8c
800a098: f7fa ff20 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a09c: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a0a0: b2db uxtb r3, r3
800a0a2: 461a mov r2, r3
800a0a4: 4b65 ldr r3, [pc, #404] ; (800a23c <Display+0x4244>)
800a0a6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a0aa: 2303 movs r3, #3
800a0ac: 2150 movs r1, #80 ; 0x50
800a0ae: 2093 movs r0, #147 ; 0x93
800a0b0: f7fa ff14 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a0b4: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a0b8: b2db uxtb r3, r3
800a0ba: 461a mov r2, r3
800a0bc: 4b5f ldr r3, [pc, #380] ; (800a23c <Display+0x4244>)
800a0be: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a0c2: 2303 movs r3, #3
800a0c4: 2150 movs r1, #80 ; 0x50
800a0c6: 209a movs r0, #154 ; 0x9a
800a0c8: f7fa ff08 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800a0cc: 4b5d ldr r3, [pc, #372] ; (800a244 <Display+0x424c>)
800a0ce: 681b ldr r3, [r3, #0]
800a0d0: 2b00 cmp r3, #0
800a0d2: d00b beq.n 800a0ec <Display+0x40f4>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a0d4: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a0d8: b2db uxtb r3, r3
800a0da: 461a mov r2, r3
800a0dc: 4b57 ldr r3, [pc, #348] ; (800a23c <Display+0x4244>)
800a0de: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a0e2: 2303 movs r3, #3
800a0e4: 2150 movs r1, #80 ; 0x50
800a0e6: 20a1 movs r0, #161 ; 0xa1
800a0e8: f7fa fef8 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a0ec: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a0f0: b2db uxtb r3, r3
800a0f2: 461a mov r2, r3
800a0f4: 4b51 ldr r3, [pc, #324] ; (800a23c <Display+0x4244>)
800a0f6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a0fa: 2303 movs r3, #3
800a0fc: 2150 movs r1, #80 ; 0x50
800a0fe: 20a8 movs r0, #168 ; 0xa8
800a100: f7fa feec bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a104: f002 bf1a b.w 800cf3c <Display+0x6f44>
if(ipt2 == 1)
800a108: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a10c: b2db uxtb r3, r3
800a10e: 2b01 cmp r3, #1
800a110: d147 bne.n 800a1a2 <Display+0x41aa>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a112: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a116: b2db uxtb r3, r3
800a118: 461a mov r2, r3
800a11a: 4b48 ldr r3, [pc, #288] ; (800a23c <Display+0x4244>)
800a11c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a120: 2303 movs r3, #3
800a122: 2150 movs r1, #80 ; 0x50
800a124: 208c movs r0, #140 ; 0x8c
800a126: f7fa fed9 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a12a: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a12e: b2db uxtb r3, r3
800a130: 461a mov r2, r3
800a132: 4b42 ldr r3, [pc, #264] ; (800a23c <Display+0x4244>)
800a134: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a138: 2303 movs r3, #3
800a13a: 2150 movs r1, #80 ; 0x50
800a13c: 2093 movs r0, #147 ; 0x93
800a13e: f7fa fecd bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a142: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a146: b2db uxtb r3, r3
800a148: 461a mov r2, r3
800a14a: 4b3c ldr r3, [pc, #240] ; (800a23c <Display+0x4244>)
800a14c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a150: 2303 movs r3, #3
800a152: 2150 movs r1, #80 ; 0x50
800a154: 209a movs r0, #154 ; 0x9a
800a156: f7fa fec1 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800a15a: 4b3a ldr r3, [pc, #232] ; (800a244 <Display+0x424c>)
800a15c: 681b ldr r3, [r3, #0]
800a15e: 2b00 cmp r3, #0
800a160: d00b beq.n 800a17a <Display+0x4182>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a162: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a166: b2db uxtb r3, r3
800a168: 461a mov r2, r3
800a16a: 4b34 ldr r3, [pc, #208] ; (800a23c <Display+0x4244>)
800a16c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a170: 2303 movs r3, #3
800a172: 2150 movs r1, #80 ; 0x50
800a174: 20a1 movs r0, #161 ; 0xa1
800a176: f7fa feb1 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE);
800a17a: 2303 movs r3, #3
800a17c: 4a30 ldr r2, [pc, #192] ; (800a240 <Display+0x4248>)
800a17e: 2150 movs r1, #80 ; 0x50
800a180: 20a8 movs r0, #168 ; 0xa8
800a182: f7fa feab bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a186: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a18a: b2db uxtb r3, r3
800a18c: 461a mov r2, r3
800a18e: 4b2b ldr r3, [pc, #172] ; (800a23c <Display+0x4244>)
800a190: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a194: 2303 movs r3, #3
800a196: 2150 movs r1, #80 ; 0x50
800a198: 20af movs r0, #175 ; 0xaf
800a19a: f7fa fe9f bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a19e: f002 becd b.w 800cf3c <Display+0x6f44>
if(ipt2 == 2)
800a1a2: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a1a6: b2db uxtb r3, r3
800a1a8: 2b02 cmp r3, #2
800a1aa: d14f bne.n 800a24c <Display+0x4254>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a1ac: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a1b0: b2db uxtb r3, r3
800a1b2: 461a mov r2, r3
800a1b4: 4b21 ldr r3, [pc, #132] ; (800a23c <Display+0x4244>)
800a1b6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a1ba: 2303 movs r3, #3
800a1bc: 2150 movs r1, #80 ; 0x50
800a1be: 208c movs r0, #140 ; 0x8c
800a1c0: f7fa fe8c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a1c4: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a1c8: b2db uxtb r3, r3
800a1ca: 461a mov r2, r3
800a1cc: 4b1b ldr r3, [pc, #108] ; (800a23c <Display+0x4244>)
800a1ce: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a1d2: 2303 movs r3, #3
800a1d4: 2150 movs r1, #80 ; 0x50
800a1d6: 2093 movs r0, #147 ; 0x93
800a1d8: f7fa fe80 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a1dc: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a1e0: b2db uxtb r3, r3
800a1e2: 461a mov r2, r3
800a1e4: 4b15 ldr r3, [pc, #84] ; (800a23c <Display+0x4244>)
800a1e6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a1ea: 2303 movs r3, #3
800a1ec: 2150 movs r1, #80 ; 0x50
800a1ee: 209a movs r0, #154 ; 0x9a
800a1f0: f7fa fe74 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE);
800a1f4: 2303 movs r3, #3
800a1f6: 4a12 ldr r2, [pc, #72] ; (800a240 <Display+0x4248>)
800a1f8: 2150 movs r1, #80 ; 0x50
800a1fa: 20a1 movs r0, #161 ; 0xa1
800a1fc: f7fa fe6e bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800a200: 4b10 ldr r3, [pc, #64] ; (800a244 <Display+0x424c>)
800a202: 681b ldr r3, [r3, #0]
800a204: 2b00 cmp r3, #0
800a206: d00b beq.n 800a220 <Display+0x4228>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a208: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a20c: b2db uxtb r3, r3
800a20e: 461a mov r2, r3
800a210: 4b0a ldr r3, [pc, #40] ; (800a23c <Display+0x4244>)
800a212: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a216: 2303 movs r3, #3
800a218: 2150 movs r1, #80 ; 0x50
800a21a: 20a8 movs r0, #168 ; 0xa8
800a21c: f7fa fe5e bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a220: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a224: b2db uxtb r3, r3
800a226: 461a mov r2, r3
800a228: 4b04 ldr r3, [pc, #16] ; (800a23c <Display+0x4244>)
800a22a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a22e: 2303 movs r3, #3
800a230: 2150 movs r1, #80 ; 0x50
800a232: 20af movs r0, #175 ; 0xaf
800a234: f7fa fe52 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a238: f002 be80 b.w 800cf3c <Display+0x6f44>
800a23c: 2002096c .word 0x2002096c
800a240: 08018150 .word 0x08018150
800a244: 2006ba78 .word 0x2006ba78
800a248: 20020010 .word 0x20020010
if(ipt2 == 3)
800a24c: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a250: b2db uxtb r3, r3
800a252: 2b03 cmp r3, #3
800a254: d147 bne.n 800a2e6 <Display+0x42ee>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a256: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a25a: b2db uxtb r3, r3
800a25c: 461a mov r2, r3
800a25e: 4bc1 ldr r3, [pc, #772] ; (800a564 <Display+0x456c>)
800a260: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a264: 2303 movs r3, #3
800a266: 2150 movs r1, #80 ; 0x50
800a268: 208c movs r0, #140 ; 0x8c
800a26a: f7fa fe37 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a26e: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a272: b2db uxtb r3, r3
800a274: 461a mov r2, r3
800a276: 4bbb ldr r3, [pc, #748] ; (800a564 <Display+0x456c>)
800a278: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a27c: 2303 movs r3, #3
800a27e: 2150 movs r1, #80 ; 0x50
800a280: 2093 movs r0, #147 ; 0x93
800a282: f7fa fe2b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE);
800a286: 2303 movs r3, #3
800a288: 4ab7 ldr r2, [pc, #732] ; (800a568 <Display+0x4570>)
800a28a: 2150 movs r1, #80 ; 0x50
800a28c: 209a movs r0, #154 ; 0x9a
800a28e: f7fa fe25 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a292: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a296: b2db uxtb r3, r3
800a298: 461a mov r2, r3
800a29a: 4bb2 ldr r3, [pc, #712] ; (800a564 <Display+0x456c>)
800a29c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a2a0: 2303 movs r3, #3
800a2a2: 2150 movs r1, #80 ; 0x50
800a2a4: 20a1 movs r0, #161 ; 0xa1
800a2a6: f7fa fe19 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800a2aa: 4bb0 ldr r3, [pc, #704] ; (800a56c <Display+0x4574>)
800a2ac: 681b ldr r3, [r3, #0]
800a2ae: 2b00 cmp r3, #0
800a2b0: d00b beq.n 800a2ca <Display+0x42d2>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a2b2: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a2b6: b2db uxtb r3, r3
800a2b8: 461a mov r2, r3
800a2ba: 4baa ldr r3, [pc, #680] ; (800a564 <Display+0x456c>)
800a2bc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a2c0: 2303 movs r3, #3
800a2c2: 2150 movs r1, #80 ; 0x50
800a2c4: 20a8 movs r0, #168 ; 0xa8
800a2c6: f7fa fe09 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a2ca: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a2ce: b2db uxtb r3, r3
800a2d0: 461a mov r2, r3
800a2d2: 4ba4 ldr r3, [pc, #656] ; (800a564 <Display+0x456c>)
800a2d4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a2d8: 2303 movs r3, #3
800a2da: 2150 movs r1, #80 ; 0x50
800a2dc: 20af movs r0, #175 ; 0xaf
800a2de: f7fa fdfd bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a2e2: f002 be2b b.w 800cf3c <Display+0x6f44>
if(ipt2 == 4)
800a2e6: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a2ea: b2db uxtb r3, r3
800a2ec: 2b04 cmp r3, #4
800a2ee: f042 8625 bne.w 800cf3c <Display+0x6f44>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a2f2: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a2f6: b2db uxtb r3, r3
800a2f8: 461a mov r2, r3
800a2fa: 4b9a ldr r3, [pc, #616] ; (800a564 <Display+0x456c>)
800a2fc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a300: 2303 movs r3, #3
800a302: 2150 movs r1, #80 ; 0x50
800a304: 208c movs r0, #140 ; 0x8c
800a306: f7fa fde9 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE);
800a30a: 2303 movs r3, #3
800a30c: 4a96 ldr r2, [pc, #600] ; (800a568 <Display+0x4570>)
800a30e: 2150 movs r1, #80 ; 0x50
800a310: 2093 movs r0, #147 ; 0x93
800a312: f7fa fde3 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a316: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a31a: b2db uxtb r3, r3
800a31c: 461a mov r2, r3
800a31e: 4b91 ldr r3, [pc, #580] ; (800a564 <Display+0x456c>)
800a320: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a324: 2303 movs r3, #3
800a326: 2150 movs r1, #80 ; 0x50
800a328: 209a movs r0, #154 ; 0x9a
800a32a: f7fa fdd7 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a32e: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a332: b2db uxtb r3, r3
800a334: 461a mov r2, r3
800a336: 4b8b ldr r3, [pc, #556] ; (800a564 <Display+0x456c>)
800a338: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a33c: 2303 movs r3, #3
800a33e: 2150 movs r1, #80 ; 0x50
800a340: 20a1 movs r0, #161 ; 0xa1
800a342: f7fa fdcb bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800a346: 4b89 ldr r3, [pc, #548] ; (800a56c <Display+0x4574>)
800a348: 681b ldr r3, [r3, #0]
800a34a: 2b00 cmp r3, #0
800a34c: d00b beq.n 800a366 <Display+0x436e>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a34e: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a352: b2db uxtb r3, r3
800a354: 461a mov r2, r3
800a356: 4b83 ldr r3, [pc, #524] ; (800a564 <Display+0x456c>)
800a358: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a35c: 2303 movs r3, #3
800a35e: 2150 movs r1, #80 ; 0x50
800a360: 20a8 movs r0, #168 ; 0xa8
800a362: f7fa fdbb bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a366: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a36a: b2db uxtb r3, r3
800a36c: 461a mov r2, r3
800a36e: 4b7d ldr r3, [pc, #500] ; (800a564 <Display+0x456c>)
800a370: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a374: 2303 movs r3, #3
800a376: 2150 movs r1, #80 ; 0x50
800a378: 20af movs r0, #175 ; 0xaf
800a37a: f7fa fdaf bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a37e: f002 bddd b.w 800cf3c <Display+0x6f44>
if(menupos == Kike_2)
800a382: 4b7b ldr r3, [pc, #492] ; (800a570 <Display+0x4578>)
800a384: 781b ldrb r3, [r3, #0]
800a386: b2db uxtb r3, r3
800a388: 2b0e cmp r3, #14
800a38a: f040 8190 bne.w 800a6ae <Display+0x46b6>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800a38e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800a392: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800a396: f7fa fcdb bl 8004d50 <LCD_SetColors>
if(!ipt2)
800a39a: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a39e: b2db uxtb r3, r3
800a3a0: 2b00 cmp r3, #0
800a3a2: d142 bne.n 800a42a <Display+0x4432>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a3a4: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a3a8: b2db uxtb r3, r3
800a3aa: 461a mov r2, r3
800a3ac: 4b6d ldr r3, [pc, #436] ; (800a564 <Display+0x456c>)
800a3ae: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a3b2: 2303 movs r3, #3
800a3b4: 2150 movs r1, #80 ; 0x50
800a3b6: 208c movs r0, #140 ; 0x8c
800a3b8: f7fa fd90 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a3bc: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a3c0: b2db uxtb r3, r3
800a3c2: 461a mov r2, r3
800a3c4: 4b67 ldr r3, [pc, #412] ; (800a564 <Display+0x456c>)
800a3c6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a3ca: 2303 movs r3, #3
800a3cc: 2150 movs r1, #80 ; 0x50
800a3ce: 2093 movs r0, #147 ; 0x93
800a3d0: f7fa fd84 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a3d4: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a3d8: b2db uxtb r3, r3
800a3da: 461a mov r2, r3
800a3dc: 4b61 ldr r3, [pc, #388] ; (800a564 <Display+0x456c>)
800a3de: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a3e2: 2303 movs r3, #3
800a3e4: 2150 movs r1, #80 ; 0x50
800a3e6: 209a movs r0, #154 ; 0x9a
800a3e8: f7fa fd78 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a3ec: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a3f0: b2db uxtb r3, r3
800a3f2: 461a mov r2, r3
800a3f4: 4b5b ldr r3, [pc, #364] ; (800a564 <Display+0x456c>)
800a3f6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a3fa: 2303 movs r3, #3
800a3fc: 2150 movs r1, #80 ; 0x50
800a3fe: 20a1 movs r0, #161 ; 0xa1
800a400: f7fa fd6c bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800a404: 4b59 ldr r3, [pc, #356] ; (800a56c <Display+0x4574>)
800a406: 681b ldr r3, [r3, #0]
800a408: 2b00 cmp r3, #0
800a40a: f002 8597 beq.w 800cf3c <Display+0x6f44>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a40e: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a412: b2db uxtb r3, r3
800a414: 461a mov r2, r3
800a416: 4b53 ldr r3, [pc, #332] ; (800a564 <Display+0x456c>)
800a418: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a41c: 2303 movs r3, #3
800a41e: 2150 movs r1, #80 ; 0x50
800a420: 20a8 movs r0, #168 ; 0xa8
800a422: f7fa fd5b bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a426: f002 bd89 b.w 800cf3c <Display+0x6f44>
if(ipt2 == 1)
800a42a: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a42e: b2db uxtb r3, r3
800a430: 2b01 cmp r3, #1
800a432: d148 bne.n 800a4c6 <Display+0x44ce>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a434: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a438: b2db uxtb r3, r3
800a43a: 461a mov r2, r3
800a43c: 4b49 ldr r3, [pc, #292] ; (800a564 <Display+0x456c>)
800a43e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a442: 2303 movs r3, #3
800a444: 2150 movs r1, #80 ; 0x50
800a446: 208c movs r0, #140 ; 0x8c
800a448: f7fa fd48 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a44c: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a450: b2db uxtb r3, r3
800a452: 461a mov r2, r3
800a454: 4b43 ldr r3, [pc, #268] ; (800a564 <Display+0x456c>)
800a456: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a45a: 2303 movs r3, #3
800a45c: 2150 movs r1, #80 ; 0x50
800a45e: 2093 movs r0, #147 ; 0x93
800a460: f7fa fd3c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a464: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a468: b2db uxtb r3, r3
800a46a: 461a mov r2, r3
800a46c: 4b3d ldr r3, [pc, #244] ; (800a564 <Display+0x456c>)
800a46e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a472: 2303 movs r3, #3
800a474: 2150 movs r1, #80 ; 0x50
800a476: 209a movs r0, #154 ; 0x9a
800a478: f7fa fd30 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a47c: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a480: b2db uxtb r3, r3
800a482: 461a mov r2, r3
800a484: 4b37 ldr r3, [pc, #220] ; (800a564 <Display+0x456c>)
800a486: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a48a: 2303 movs r3, #3
800a48c: 2150 movs r1, #80 ; 0x50
800a48e: 20a1 movs r0, #161 ; 0xa1
800a490: f7fa fd24 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE);
800a494: 2303 movs r3, #3
800a496: 4a34 ldr r2, [pc, #208] ; (800a568 <Display+0x4570>)
800a498: 2150 movs r1, #80 ; 0x50
800a49a: 20a8 movs r0, #168 ; 0xa8
800a49c: f7fa fd1e bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800a4a0: 4b32 ldr r3, [pc, #200] ; (800a56c <Display+0x4574>)
800a4a2: 681b ldr r3, [r3, #0]
800a4a4: 2b00 cmp r3, #0
800a4a6: f002 8549 beq.w 800cf3c <Display+0x6f44>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a4aa: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a4ae: b2db uxtb r3, r3
800a4b0: 461a mov r2, r3
800a4b2: 4b2c ldr r3, [pc, #176] ; (800a564 <Display+0x456c>)
800a4b4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a4b8: 2303 movs r3, #3
800a4ba: 2150 movs r1, #80 ; 0x50
800a4bc: 20af movs r0, #175 ; 0xaf
800a4be: f7fa fd0d bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a4c2: f002 bd3b b.w 800cf3c <Display+0x6f44>
if(ipt2 == 2)
800a4c6: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a4ca: b2db uxtb r3, r3
800a4cc: 2b02 cmp r3, #2
800a4ce: d151 bne.n 800a574 <Display+0x457c>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a4d0: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a4d4: b2db uxtb r3, r3
800a4d6: 461a mov r2, r3
800a4d8: 4b22 ldr r3, [pc, #136] ; (800a564 <Display+0x456c>)
800a4da: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a4de: 2303 movs r3, #3
800a4e0: 2150 movs r1, #80 ; 0x50
800a4e2: 208c movs r0, #140 ; 0x8c
800a4e4: f7fa fcfa bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a4e8: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a4ec: b2db uxtb r3, r3
800a4ee: 461a mov r2, r3
800a4f0: 4b1c ldr r3, [pc, #112] ; (800a564 <Display+0x456c>)
800a4f2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a4f6: 2303 movs r3, #3
800a4f8: 2150 movs r1, #80 ; 0x50
800a4fa: 2093 movs r0, #147 ; 0x93
800a4fc: f7fa fcee bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a500: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a504: b2db uxtb r3, r3
800a506: 461a mov r2, r3
800a508: 4b16 ldr r3, [pc, #88] ; (800a564 <Display+0x456c>)
800a50a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a50e: 2303 movs r3, #3
800a510: 2150 movs r1, #80 ; 0x50
800a512: 209a movs r0, #154 ; 0x9a
800a514: f7fa fce2 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE);
800a518: 2303 movs r3, #3
800a51a: 4a13 ldr r2, [pc, #76] ; (800a568 <Display+0x4570>)
800a51c: 2150 movs r1, #80 ; 0x50
800a51e: 20a1 movs r0, #161 ; 0xa1
800a520: f7fa fcdc bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a524: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a528: b2db uxtb r3, r3
800a52a: 461a mov r2, r3
800a52c: 4b0d ldr r3, [pc, #52] ; (800a564 <Display+0x456c>)
800a52e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a532: 2303 movs r3, #3
800a534: 2150 movs r1, #80 ; 0x50
800a536: 20a8 movs r0, #168 ; 0xa8
800a538: f7fa fcd0 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800a53c: 4b0b ldr r3, [pc, #44] ; (800a56c <Display+0x4574>)
800a53e: 681b ldr r3, [r3, #0]
800a540: 2b00 cmp r3, #0
800a542: f002 84fb beq.w 800cf3c <Display+0x6f44>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a546: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a54a: b2db uxtb r3, r3
800a54c: 461a mov r2, r3
800a54e: 4b05 ldr r3, [pc, #20] ; (800a564 <Display+0x456c>)
800a550: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a554: 2303 movs r3, #3
800a556: 2150 movs r1, #80 ; 0x50
800a558: 20af movs r0, #175 ; 0xaf
800a55a: f7fa fcbf bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a55e: f002 bced b.w 800cf3c <Display+0x6f44>
800a562: bf00 nop
800a564: 2002096c .word 0x2002096c
800a568: 08018150 .word 0x08018150
800a56c: 2006ba78 .word 0x2006ba78
800a570: 20020010 .word 0x20020010
if(ipt2 == 3)
800a574: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a578: b2db uxtb r3, r3
800a57a: 2b03 cmp r3, #3
800a57c: d148 bne.n 800a610 <Display+0x4618>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a57e: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a582: b2db uxtb r3, r3
800a584: 461a mov r2, r3
800a586: 4bc4 ldr r3, [pc, #784] ; (800a898 <Display+0x48a0>)
800a588: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a58c: 2303 movs r3, #3
800a58e: 2150 movs r1, #80 ; 0x50
800a590: 208c movs r0, #140 ; 0x8c
800a592: f7fa fca3 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a596: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a59a: b2db uxtb r3, r3
800a59c: 461a mov r2, r3
800a59e: 4bbe ldr r3, [pc, #760] ; (800a898 <Display+0x48a0>)
800a5a0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a5a4: 2303 movs r3, #3
800a5a6: 2150 movs r1, #80 ; 0x50
800a5a8: 2093 movs r0, #147 ; 0x93
800a5aa: f7fa fc97 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE);
800a5ae: 2303 movs r3, #3
800a5b0: 4aba ldr r2, [pc, #744] ; (800a89c <Display+0x48a4>)
800a5b2: 2150 movs r1, #80 ; 0x50
800a5b4: 209a movs r0, #154 ; 0x9a
800a5b6: f7fa fc91 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a5ba: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a5be: b2db uxtb r3, r3
800a5c0: 461a mov r2, r3
800a5c2: 4bb5 ldr r3, [pc, #724] ; (800a898 <Display+0x48a0>)
800a5c4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a5c8: 2303 movs r3, #3
800a5ca: 2150 movs r1, #80 ; 0x50
800a5cc: 20a1 movs r0, #161 ; 0xa1
800a5ce: f7fa fc85 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a5d2: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a5d6: b2db uxtb r3, r3
800a5d8: 461a mov r2, r3
800a5da: 4baf ldr r3, [pc, #700] ; (800a898 <Display+0x48a0>)
800a5dc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a5e0: 2303 movs r3, #3
800a5e2: 2150 movs r1, #80 ; 0x50
800a5e4: 20a8 movs r0, #168 ; 0xa8
800a5e6: f7fa fc79 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800a5ea: 4bad ldr r3, [pc, #692] ; (800a8a0 <Display+0x48a8>)
800a5ec: 681b ldr r3, [r3, #0]
800a5ee: 2b00 cmp r3, #0
800a5f0: f002 84a4 beq.w 800cf3c <Display+0x6f44>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a5f4: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a5f8: b2db uxtb r3, r3
800a5fa: 461a mov r2, r3
800a5fc: 4ba6 ldr r3, [pc, #664] ; (800a898 <Display+0x48a0>)
800a5fe: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a602: 2303 movs r3, #3
800a604: 2150 movs r1, #80 ; 0x50
800a606: 20af movs r0, #175 ; 0xaf
800a608: f7fa fc68 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a60c: f002 bc96 b.w 800cf3c <Display+0x6f44>
if(ipt2 == 4)
800a610: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a614: b2db uxtb r3, r3
800a616: 2b04 cmp r3, #4
800a618: f042 8490 bne.w 800cf3c <Display+0x6f44>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a61c: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a620: b2db uxtb r3, r3
800a622: 461a mov r2, r3
800a624: 4b9c ldr r3, [pc, #624] ; (800a898 <Display+0x48a0>)
800a626: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a62a: 2303 movs r3, #3
800a62c: 2150 movs r1, #80 ; 0x50
800a62e: 208c movs r0, #140 ; 0x8c
800a630: f7fa fc54 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE);
800a634: 2303 movs r3, #3
800a636: 4a99 ldr r2, [pc, #612] ; (800a89c <Display+0x48a4>)
800a638: 2150 movs r1, #80 ; 0x50
800a63a: 2093 movs r0, #147 ; 0x93
800a63c: f7fa fc4e bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a640: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a644: b2db uxtb r3, r3
800a646: 461a mov r2, r3
800a648: 4b93 ldr r3, [pc, #588] ; (800a898 <Display+0x48a0>)
800a64a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a64e: 2303 movs r3, #3
800a650: 2150 movs r1, #80 ; 0x50
800a652: 209a movs r0, #154 ; 0x9a
800a654: f7fa fc42 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a658: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a65c: b2db uxtb r3, r3
800a65e: 461a mov r2, r3
800a660: 4b8d ldr r3, [pc, #564] ; (800a898 <Display+0x48a0>)
800a662: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a666: 2303 movs r3, #3
800a668: 2150 movs r1, #80 ; 0x50
800a66a: 20a1 movs r0, #161 ; 0xa1
800a66c: f7fa fc36 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a670: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a674: b2db uxtb r3, r3
800a676: 461a mov r2, r3
800a678: 4b87 ldr r3, [pc, #540] ; (800a898 <Display+0x48a0>)
800a67a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a67e: 2303 movs r3, #3
800a680: 2150 movs r1, #80 ; 0x50
800a682: 20a8 movs r0, #168 ; 0xa8
800a684: f7fa fc2a bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800a688: 4b85 ldr r3, [pc, #532] ; (800a8a0 <Display+0x48a8>)
800a68a: 681b ldr r3, [r3, #0]
800a68c: 2b00 cmp r3, #0
800a68e: f002 8455 beq.w 800cf3c <Display+0x6f44>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a692: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a696: b2db uxtb r3, r3
800a698: 461a mov r2, r3
800a69a: 4b7f ldr r3, [pc, #508] ; (800a898 <Display+0x48a0>)
800a69c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a6a0: 2303 movs r3, #3
800a6a2: 2150 movs r1, #80 ; 0x50
800a6a4: 20af movs r0, #175 ; 0xaf
800a6a6: f7fa fc19 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a6aa: f002 bc47 b.w 800cf3c <Display+0x6f44>
if(menupos == Kpt_2)
800a6ae: 4b7d ldr r3, [pc, #500] ; (800a8a4 <Display+0x48ac>)
800a6b0: 781b ldrb r3, [r3, #0]
800a6b2: b2db uxtb r3, r3
800a6b4: 2b0f cmp r3, #15
800a6b6: f042 8441 bne.w 800cf3c <Display+0x6f44>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800a6ba: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800a6be: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800a6c2: f7fa fb45 bl 8004d50 <LCD_SetColors>
if(!ipt2)
800a6c6: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a6ca: b2db uxtb r3, r3
800a6cc: 2b00 cmp r3, #0
800a6ce: d148 bne.n 800a762 <Display+0x476a>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a6d0: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a6d4: b2db uxtb r3, r3
800a6d6: 461a mov r2, r3
800a6d8: 4b6f ldr r3, [pc, #444] ; (800a898 <Display+0x48a0>)
800a6da: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a6de: 2303 movs r3, #3
800a6e0: 2150 movs r1, #80 ; 0x50
800a6e2: 208c movs r0, #140 ; 0x8c
800a6e4: f7fa fbfa bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a6e8: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a6ec: b2db uxtb r3, r3
800a6ee: 461a mov r2, r3
800a6f0: 4b69 ldr r3, [pc, #420] ; (800a898 <Display+0x48a0>)
800a6f2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a6f6: 2303 movs r3, #3
800a6f8: 2150 movs r1, #80 ; 0x50
800a6fa: 2093 movs r0, #147 ; 0x93
800a6fc: f7fa fbee bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a700: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a704: b2db uxtb r3, r3
800a706: 461a mov r2, r3
800a708: 4b63 ldr r3, [pc, #396] ; (800a898 <Display+0x48a0>)
800a70a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a70e: 2303 movs r3, #3
800a710: 2150 movs r1, #80 ; 0x50
800a712: 209a movs r0, #154 ; 0x9a
800a714: f7fa fbe2 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a718: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a71c: b2db uxtb r3, r3
800a71e: 461a mov r2, r3
800a720: 4b5d ldr r3, [pc, #372] ; (800a898 <Display+0x48a0>)
800a722: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a726: 2303 movs r3, #3
800a728: 2150 movs r1, #80 ; 0x50
800a72a: 20a1 movs r0, #161 ; 0xa1
800a72c: f7fa fbd6 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a730: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a734: b2db uxtb r3, r3
800a736: 461a mov r2, r3
800a738: 4b57 ldr r3, [pc, #348] ; (800a898 <Display+0x48a0>)
800a73a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a73e: 2303 movs r3, #3
800a740: 2150 movs r1, #80 ; 0x50
800a742: 20a8 movs r0, #168 ; 0xa8
800a744: f7fa fbca bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800a748: 4b55 ldr r3, [pc, #340] ; (800a8a0 <Display+0x48a8>)
800a74a: 681b ldr r3, [r3, #0]
800a74c: 2b00 cmp r3, #0
800a74e: f002 83f5 beq.w 800cf3c <Display+0x6f44>
BSP_LCD_DisplayStringAt(140+35, 80, ".", LEFT_MODE);
800a752: 2303 movs r3, #3
800a754: 4a51 ldr r2, [pc, #324] ; (800a89c <Display+0x48a4>)
800a756: 2150 movs r1, #80 ; 0x50
800a758: 20af movs r0, #175 ; 0xaf
800a75a: f7fa fbbf bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a75e: f002 bbed b.w 800cf3c <Display+0x6f44>
if(ipt2 == 1)
800a762: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a766: b2db uxtb r3, r3
800a768: 2b01 cmp r3, #1
800a76a: d147 bne.n 800a7fc <Display+0x4804>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a76c: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a770: b2db uxtb r3, r3
800a772: 461a mov r2, r3
800a774: 4b48 ldr r3, [pc, #288] ; (800a898 <Display+0x48a0>)
800a776: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a77a: 2303 movs r3, #3
800a77c: 2150 movs r1, #80 ; 0x50
800a77e: 208c movs r0, #140 ; 0x8c
800a780: f7fa fbac bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a784: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a788: b2db uxtb r3, r3
800a78a: 461a mov r2, r3
800a78c: 4b42 ldr r3, [pc, #264] ; (800a898 <Display+0x48a0>)
800a78e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a792: 2303 movs r3, #3
800a794: 2150 movs r1, #80 ; 0x50
800a796: 2093 movs r0, #147 ; 0x93
800a798: f7fa fba0 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a79c: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a7a0: b2db uxtb r3, r3
800a7a2: 461a mov r2, r3
800a7a4: 4b3c ldr r3, [pc, #240] ; (800a898 <Display+0x48a0>)
800a7a6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a7aa: 2303 movs r3, #3
800a7ac: 2150 movs r1, #80 ; 0x50
800a7ae: 209a movs r0, #154 ; 0x9a
800a7b0: f7fa fb94 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a7b4: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a7b8: b2db uxtb r3, r3
800a7ba: 461a mov r2, r3
800a7bc: 4b36 ldr r3, [pc, #216] ; (800a898 <Display+0x48a0>)
800a7be: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a7c2: 2303 movs r3, #3
800a7c4: 2150 movs r1, #80 ; 0x50
800a7c6: 20a1 movs r0, #161 ; 0xa1
800a7c8: f7fa fb88 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800a7cc: 4b34 ldr r3, [pc, #208] ; (800a8a0 <Display+0x48a8>)
800a7ce: 681b ldr r3, [r3, #0]
800a7d0: 2b00 cmp r3, #0
800a7d2: d005 beq.n 800a7e0 <Display+0x47e8>
BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE);
800a7d4: 2303 movs r3, #3
800a7d6: 4a31 ldr r2, [pc, #196] ; (800a89c <Display+0x48a4>)
800a7d8: 2150 movs r1, #80 ; 0x50
800a7da: 20a8 movs r0, #168 ; 0xa8
800a7dc: f7fa fb7e bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a7e0: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a7e4: b2db uxtb r3, r3
800a7e6: 461a mov r2, r3
800a7e8: 4b2b ldr r3, [pc, #172] ; (800a898 <Display+0x48a0>)
800a7ea: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a7ee: 2303 movs r3, #3
800a7f0: 2150 movs r1, #80 ; 0x50
800a7f2: 20af movs r0, #175 ; 0xaf
800a7f4: f7fa fb72 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a7f8: f002 bba0 b.w 800cf3c <Display+0x6f44>
if(ipt2 == 2)
800a7fc: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a800: b2db uxtb r3, r3
800a802: 2b02 cmp r3, #2
800a804: d150 bne.n 800a8a8 <Display+0x48b0>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a806: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a80a: b2db uxtb r3, r3
800a80c: 461a mov r2, r3
800a80e: 4b22 ldr r3, [pc, #136] ; (800a898 <Display+0x48a0>)
800a810: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a814: 2303 movs r3, #3
800a816: 2150 movs r1, #80 ; 0x50
800a818: 208c movs r0, #140 ; 0x8c
800a81a: f7fa fb5f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a81e: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a822: b2db uxtb r3, r3
800a824: 461a mov r2, r3
800a826: 4b1c ldr r3, [pc, #112] ; (800a898 <Display+0x48a0>)
800a828: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a82c: 2303 movs r3, #3
800a82e: 2150 movs r1, #80 ; 0x50
800a830: 2093 movs r0, #147 ; 0x93
800a832: f7fa fb53 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a836: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a83a: b2db uxtb r3, r3
800a83c: 461a mov r2, r3
800a83e: 4b16 ldr r3, [pc, #88] ; (800a898 <Display+0x48a0>)
800a840: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a844: 2303 movs r3, #3
800a846: 2150 movs r1, #80 ; 0x50
800a848: 209a movs r0, #154 ; 0x9a
800a84a: f7fa fb47 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800a84e: 4b14 ldr r3, [pc, #80] ; (800a8a0 <Display+0x48a8>)
800a850: 681b ldr r3, [r3, #0]
800a852: 2b00 cmp r3, #0
800a854: d005 beq.n 800a862 <Display+0x486a>
BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE);
800a856: 2303 movs r3, #3
800a858: 4a10 ldr r2, [pc, #64] ; (800a89c <Display+0x48a4>)
800a85a: 2150 movs r1, #80 ; 0x50
800a85c: 20a1 movs r0, #161 ; 0xa1
800a85e: f7fa fb3d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a862: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a866: b2db uxtb r3, r3
800a868: 461a mov r2, r3
800a86a: 4b0b ldr r3, [pc, #44] ; (800a898 <Display+0x48a0>)
800a86c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a870: 2303 movs r3, #3
800a872: 2150 movs r1, #80 ; 0x50
800a874: 20a8 movs r0, #168 ; 0xa8
800a876: f7fa fb31 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a87a: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a87e: b2db uxtb r3, r3
800a880: 461a mov r2, r3
800a882: 4b05 ldr r3, [pc, #20] ; (800a898 <Display+0x48a0>)
800a884: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a888: 2303 movs r3, #3
800a88a: 2150 movs r1, #80 ; 0x50
800a88c: 20af movs r0, #175 ; 0xaf
800a88e: f7fa fb25 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a892: f002 bb53 b.w 800cf3c <Display+0x6f44>
800a896: bf00 nop
800a898: 2002096c .word 0x2002096c
800a89c: 08018150 .word 0x08018150
800a8a0: 2006ba78 .word 0x2006ba78
800a8a4: 20020010 .word 0x20020010
if(ipt2 == 3)
800a8a8: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a8ac: b2db uxtb r3, r3
800a8ae: 2b03 cmp r3, #3
800a8b0: d147 bne.n 800a942 <Display+0x494a>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a8b2: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a8b6: b2db uxtb r3, r3
800a8b8: 461a mov r2, r3
800a8ba: 4bc2 ldr r3, [pc, #776] ; (800abc4 <Display+0x4bcc>)
800a8bc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a8c0: 2303 movs r3, #3
800a8c2: 2150 movs r1, #80 ; 0x50
800a8c4: 208c movs r0, #140 ; 0x8c
800a8c6: f7fa fb09 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a8ca: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a8ce: b2db uxtb r3, r3
800a8d0: 461a mov r2, r3
800a8d2: 4bbc ldr r3, [pc, #752] ; (800abc4 <Display+0x4bcc>)
800a8d4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a8d8: 2303 movs r3, #3
800a8da: 2150 movs r1, #80 ; 0x50
800a8dc: 2093 movs r0, #147 ; 0x93
800a8de: f7fa fafd bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800a8e2: 4bb9 ldr r3, [pc, #740] ; (800abc8 <Display+0x4bd0>)
800a8e4: 681b ldr r3, [r3, #0]
800a8e6: 2b00 cmp r3, #0
800a8e8: d005 beq.n 800a8f6 <Display+0x48fe>
BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE);
800a8ea: 2303 movs r3, #3
800a8ec: 4ab7 ldr r2, [pc, #732] ; (800abcc <Display+0x4bd4>)
800a8ee: 2150 movs r1, #80 ; 0x50
800a8f0: 209a movs r0, #154 ; 0x9a
800a8f2: f7fa faf3 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a8f6: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a8fa: b2db uxtb r3, r3
800a8fc: 461a mov r2, r3
800a8fe: 4bb1 ldr r3, [pc, #708] ; (800abc4 <Display+0x4bcc>)
800a900: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a904: 2303 movs r3, #3
800a906: 2150 movs r1, #80 ; 0x50
800a908: 20a1 movs r0, #161 ; 0xa1
800a90a: f7fa fae7 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a90e: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a912: b2db uxtb r3, r3
800a914: 461a mov r2, r3
800a916: 4bab ldr r3, [pc, #684] ; (800abc4 <Display+0x4bcc>)
800a918: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a91c: 2303 movs r3, #3
800a91e: 2150 movs r1, #80 ; 0x50
800a920: 20a8 movs r0, #168 ; 0xa8
800a922: f7fa fadb bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a926: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a92a: b2db uxtb r3, r3
800a92c: 461a mov r2, r3
800a92e: 4ba5 ldr r3, [pc, #660] ; (800abc4 <Display+0x4bcc>)
800a930: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a934: 2303 movs r3, #3
800a936: 2150 movs r1, #80 ; 0x50
800a938: 20af movs r0, #175 ; 0xaf
800a93a: f7fa facf bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a93e: f002 bafd b.w 800cf3c <Display+0x6f44>
if(ipt2 == 4)
800a942: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a946: b2db uxtb r3, r3
800a948: 2b04 cmp r3, #4
800a94a: f042 82f7 bne.w 800cf3c <Display+0x6f44>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a94e: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a952: b2db uxtb r3, r3
800a954: 461a mov r2, r3
800a956: 4b9b ldr r3, [pc, #620] ; (800abc4 <Display+0x4bcc>)
800a958: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a95c: 2303 movs r3, #3
800a95e: 2150 movs r1, #80 ; 0x50
800a960: 208c movs r0, #140 ; 0x8c
800a962: f7fa fabb bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800a966: 4b98 ldr r3, [pc, #608] ; (800abc8 <Display+0x4bd0>)
800a968: 681b ldr r3, [r3, #0]
800a96a: 2b00 cmp r3, #0
800a96c: d005 beq.n 800a97a <Display+0x4982>
BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE);
800a96e: 2303 movs r3, #3
800a970: 4a96 ldr r2, [pc, #600] ; (800abcc <Display+0x4bd4>)
800a972: 2150 movs r1, #80 ; 0x50
800a974: 2093 movs r0, #147 ; 0x93
800a976: f7fa fab1 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a97a: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a97e: b2db uxtb r3, r3
800a980: 461a mov r2, r3
800a982: 4b90 ldr r3, [pc, #576] ; (800abc4 <Display+0x4bcc>)
800a984: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a988: 2303 movs r3, #3
800a98a: 2150 movs r1, #80 ; 0x50
800a98c: 209a movs r0, #154 ; 0x9a
800a98e: f7fa faa5 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a992: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a996: b2db uxtb r3, r3
800a998: 461a mov r2, r3
800a99a: 4b8a ldr r3, [pc, #552] ; (800abc4 <Display+0x4bcc>)
800a99c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a9a0: 2303 movs r3, #3
800a9a2: 2150 movs r1, #80 ; 0x50
800a9a4: 20a1 movs r0, #161 ; 0xa1
800a9a6: f7fa fa99 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a9aa: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a9ae: b2db uxtb r3, r3
800a9b0: 461a mov r2, r3
800a9b2: 4b84 ldr r3, [pc, #528] ; (800abc4 <Display+0x4bcc>)
800a9b4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a9b8: 2303 movs r3, #3
800a9ba: 2150 movs r1, #80 ; 0x50
800a9bc: 20a8 movs r0, #168 ; 0xa8
800a9be: f7fa fa8d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a9c2: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a9c6: b2db uxtb r3, r3
800a9c8: 461a mov r2, r3
800a9ca: 4b7e ldr r3, [pc, #504] ; (800abc4 <Display+0x4bcc>)
800a9cc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a9d0: 2303 movs r3, #3
800a9d2: 2150 movs r1, #80 ; 0x50
800a9d4: 20af movs r0, #175 ; 0xaf
800a9d6: f7fa fa81 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a9da: f002 baaf b.w 800cf3c <Display+0x6f44>
if(menupos >= Kikdt_3 && menupos <= Kpt_3)
800a9de: 4b7c ldr r3, [pc, #496] ; (800abd0 <Display+0x4bd8>)
800a9e0: 781b ldrb r3, [r3, #0]
800a9e2: b2db uxtb r3, r3
800a9e4: 2b11 cmp r3, #17
800a9e6: f241 8150 bls.w 800bc8a <Display+0x5c92>
800a9ea: 4b79 ldr r3, [pc, #484] ; (800abd0 <Display+0x4bd8>)
800a9ec: 781b ldrb r3, [r3, #0]
800a9ee: b2db uxtb r3, r3
800a9f0: 2b17 cmp r3, #23
800a9f2: f201 814a bhi.w 800bc8a <Display+0x5c92>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800a9f6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800a9fa: 4876 ldr r0, [pc, #472] ; (800abd4 <Display+0x4bdc>)
800a9fc: f7fa f9a8 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
800aa00: f507 728e add.w r2, r7, #284 ; 0x11c
800aa04: 2303 movs r3, #3
800aa06: 213c movs r1, #60 ; 0x3c
800aa08: 208c movs r0, #140 ; 0x8c
800aa0a: f7fa fa67 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
800aa0e: f107 02e0 add.w r2, r7, #224 ; 0xe0
800aa12: 2303 movs r3, #3
800aa14: 2150 movs r1, #80 ; 0x50
800aa16: 208c movs r0, #140 ; 0x8c
800aa18: f7fa fa60 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
800aa1c: f107 0268 add.w r2, r7, #104 ; 0x68
800aa20: 2303 movs r3, #3
800aa22: 2178 movs r1, #120 ; 0x78
800aa24: 208c movs r0, #140 ; 0x8c
800aa26: f7fa fa59 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800aa2a: 4b69 ldr r3, [pc, #420] ; (800abd0 <Display+0x4bd8>)
800aa2c: 781b ldrb r3, [r3, #0]
800aa2e: b2db uxtb r3, r3
800aa30: 2b12 cmp r3, #18
800aa32: f040 814c bne.w 800acce <Display+0x4cd6>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800aa36: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800aa3a: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800aa3e: f7fa f987 bl 8004d50 <LCD_SetColors>
if(blk)
800aa42: 4b61 ldr r3, [pc, #388] ; (800abc8 <Display+0x4bd0>)
800aa44: 681b ldr r3, [r3, #0]
800aa46: 2b00 cmp r3, #0
800aa48: d00b beq.n 800aa62 <Display+0x4a6a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800aa4a: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800aa4e: b2db uxtb r3, r3
800aa50: 461a mov r2, r3
800aa52: 4b5c ldr r3, [pc, #368] ; (800abc4 <Display+0x4bcc>)
800aa54: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aa58: 2303 movs r3, #3
800aa5a: 2164 movs r1, #100 ; 0x64
800aa5c: 208c movs r0, #140 ; 0x8c
800aa5e: f7fa fa3d bl 8004edc <BSP_LCD_DisplayStringAt>
if(!ipt3)
800aa62: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800aa66: b2db uxtb r3, r3
800aa68: 2b00 cmp r3, #0
800aa6a: d131 bne.n 800aad0 <Display+0x4ad8>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800aa6c: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800aa70: b2db uxtb r3, r3
800aa72: 461a mov r2, r3
800aa74: 4b53 ldr r3, [pc, #332] ; (800abc4 <Display+0x4bcc>)
800aa76: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aa7a: 2303 movs r3, #3
800aa7c: 2164 movs r1, #100 ; 0x64
800aa7e: 2093 movs r0, #147 ; 0x93
800aa80: f7fa fa2c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800aa84: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800aa88: b2db uxtb r3, r3
800aa8a: 461a mov r2, r3
800aa8c: 4b4d ldr r3, [pc, #308] ; (800abc4 <Display+0x4bcc>)
800aa8e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aa92: 2303 movs r3, #3
800aa94: 2164 movs r1, #100 ; 0x64
800aa96: 209a movs r0, #154 ; 0x9a
800aa98: f7fa fa20 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800aa9c: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800aaa0: b2db uxtb r3, r3
800aaa2: 461a mov r2, r3
800aaa4: 4b47 ldr r3, [pc, #284] ; (800abc4 <Display+0x4bcc>)
800aaa6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aaaa: 2303 movs r3, #3
800aaac: 2164 movs r1, #100 ; 0x64
800aaae: 20a1 movs r0, #161 ; 0xa1
800aab0: f7fa fa14 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE);
800aab4: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800aab8: b2db uxtb r3, r3
800aaba: 461a mov r2, r3
800aabc: 4b41 ldr r3, [pc, #260] ; (800abc4 <Display+0x4bcc>)
800aabe: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aac2: 2303 movs r3, #3
800aac4: 2164 movs r1, #100 ; 0x64
800aac6: 20a8 movs r0, #168 ; 0xa8
800aac8: f7fa fa08 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800aacc: f002 ba39 b.w 800cf42 <Display+0x6f4a>
if(ipt3 == 1)
800aad0: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800aad4: b2db uxtb r3, r3
800aad6: 2b01 cmp r3, #1
800aad8: d137 bne.n 800ab4a <Display+0x4b52>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800aada: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800aade: b2db uxtb r3, r3
800aae0: 461a mov r2, r3
800aae2: 4b38 ldr r3, [pc, #224] ; (800abc4 <Display+0x4bcc>)
800aae4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aae8: 2303 movs r3, #3
800aaea: 2164 movs r1, #100 ; 0x64
800aaec: 2093 movs r0, #147 ; 0x93
800aaee: f7fa f9f5 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800aaf2: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800aaf6: b2db uxtb r3, r3
800aaf8: 461a mov r2, r3
800aafa: 4b32 ldr r3, [pc, #200] ; (800abc4 <Display+0x4bcc>)
800aafc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ab00: 2303 movs r3, #3
800ab02: 2164 movs r1, #100 ; 0x64
800ab04: 209a movs r0, #154 ; 0x9a
800ab06: f7fa f9e9 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800ab0a: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800ab0e: b2db uxtb r3, r3
800ab10: 461a mov r2, r3
800ab12: 4b2c ldr r3, [pc, #176] ; (800abc4 <Display+0x4bcc>)
800ab14: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ab18: 2303 movs r3, #3
800ab1a: 2164 movs r1, #100 ; 0x64
800ab1c: 20a1 movs r0, #161 ; 0xa1
800ab1e: f7fa f9dd bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE);
800ab22: 2303 movs r3, #3
800ab24: 4a29 ldr r2, [pc, #164] ; (800abcc <Display+0x4bd4>)
800ab26: 2164 movs r1, #100 ; 0x64
800ab28: 20a8 movs r0, #168 ; 0xa8
800ab2a: f7fa f9d7 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800ab2e: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800ab32: b2db uxtb r3, r3
800ab34: 461a mov r2, r3
800ab36: 4b23 ldr r3, [pc, #140] ; (800abc4 <Display+0x4bcc>)
800ab38: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ab3c: 2303 movs r3, #3
800ab3e: 2164 movs r1, #100 ; 0x64
800ab40: 20af movs r0, #175 ; 0xaf
800ab42: f7fa f9cb bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800ab46: f002 b9fc b.w 800cf42 <Display+0x6f4a>
if(ipt3 == 2)
800ab4a: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800ab4e: b2db uxtb r3, r3
800ab50: 2b02 cmp r3, #2
800ab52: d141 bne.n 800abd8 <Display+0x4be0>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800ab54: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800ab58: b2db uxtb r3, r3
800ab5a: 461a mov r2, r3
800ab5c: 4b19 ldr r3, [pc, #100] ; (800abc4 <Display+0x4bcc>)
800ab5e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ab62: 2303 movs r3, #3
800ab64: 2164 movs r1, #100 ; 0x64
800ab66: 2093 movs r0, #147 ; 0x93
800ab68: f7fa f9b8 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800ab6c: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800ab70: b2db uxtb r3, r3
800ab72: 461a mov r2, r3
800ab74: 4b13 ldr r3, [pc, #76] ; (800abc4 <Display+0x4bcc>)
800ab76: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ab7a: 2303 movs r3, #3
800ab7c: 2164 movs r1, #100 ; 0x64
800ab7e: 209a movs r0, #154 ; 0x9a
800ab80: f7fa f9ac bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE);
800ab84: 2303 movs r3, #3
800ab86: 4a11 ldr r2, [pc, #68] ; (800abcc <Display+0x4bd4>)
800ab88: 2164 movs r1, #100 ; 0x64
800ab8a: 20a1 movs r0, #161 ; 0xa1
800ab8c: f7fa f9a6 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800ab90: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800ab94: b2db uxtb r3, r3
800ab96: 461a mov r2, r3
800ab98: 4b0a ldr r3, [pc, #40] ; (800abc4 <Display+0x4bcc>)
800ab9a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ab9e: 2303 movs r3, #3
800aba0: 2164 movs r1, #100 ; 0x64
800aba2: 20a8 movs r0, #168 ; 0xa8
800aba4: f7fa f99a bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800aba8: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800abac: b2db uxtb r3, r3
800abae: 461a mov r2, r3
800abb0: 4b04 ldr r3, [pc, #16] ; (800abc4 <Display+0x4bcc>)
800abb2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800abb6: 2303 movs r3, #3
800abb8: 2164 movs r1, #100 ; 0x64
800abba: 20af movs r0, #175 ; 0xaf
800abbc: f7fa f98e bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800abc0: f002 b9bf b.w 800cf42 <Display+0x6f4a>
800abc4: 2002096c .word 0x2002096c
800abc8: 2006ba78 .word 0x2006ba78
800abcc: 08018150 .word 0x08018150
800abd0: 20020010 .word 0x20020010
800abd4: ffd8aa57 .word 0xffd8aa57
if(ipt3 == 3)
800abd8: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800abdc: b2db uxtb r3, r3
800abde: 2b03 cmp r3, #3
800abe0: d137 bne.n 800ac52 <Display+0x4c5a>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800abe2: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800abe6: b2db uxtb r3, r3
800abe8: 461a mov r2, r3
800abea: 4baf ldr r3, [pc, #700] ; (800aea8 <Display+0x4eb0>)
800abec: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800abf0: 2303 movs r3, #3
800abf2: 2164 movs r1, #100 ; 0x64
800abf4: 2093 movs r0, #147 ; 0x93
800abf6: f7fa f971 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE);
800abfa: 2303 movs r3, #3
800abfc: 4aab ldr r2, [pc, #684] ; (800aeac <Display+0x4eb4>)
800abfe: 2164 movs r1, #100 ; 0x64
800ac00: 209a movs r0, #154 ; 0x9a
800ac02: f7fa f96b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800ac06: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800ac0a: b2db uxtb r3, r3
800ac0c: 461a mov r2, r3
800ac0e: 4ba6 ldr r3, [pc, #664] ; (800aea8 <Display+0x4eb0>)
800ac10: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ac14: 2303 movs r3, #3
800ac16: 2164 movs r1, #100 ; 0x64
800ac18: 20a1 movs r0, #161 ; 0xa1
800ac1a: f7fa f95f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800ac1e: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800ac22: b2db uxtb r3, r3
800ac24: 461a mov r2, r3
800ac26: 4ba0 ldr r3, [pc, #640] ; (800aea8 <Display+0x4eb0>)
800ac28: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ac2c: 2303 movs r3, #3
800ac2e: 2164 movs r1, #100 ; 0x64
800ac30: 20a8 movs r0, #168 ; 0xa8
800ac32: f7fa f953 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800ac36: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800ac3a: b2db uxtb r3, r3
800ac3c: 461a mov r2, r3
800ac3e: 4b9a ldr r3, [pc, #616] ; (800aea8 <Display+0x4eb0>)
800ac40: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ac44: 2303 movs r3, #3
800ac46: 2164 movs r1, #100 ; 0x64
800ac48: 20af movs r0, #175 ; 0xaf
800ac4a: f7fa f947 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800ac4e: f002 b978 b.w 800cf42 <Display+0x6f4a>
if(ipt3 == 4)
800ac52: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800ac56: b2db uxtb r3, r3
800ac58: 2b04 cmp r3, #4
800ac5a: f042 8172 bne.w 800cf42 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE);
800ac5e: 2303 movs r3, #3
800ac60: 4a92 ldr r2, [pc, #584] ; (800aeac <Display+0x4eb4>)
800ac62: 2164 movs r1, #100 ; 0x64
800ac64: 2093 movs r0, #147 ; 0x93
800ac66: f7fa f939 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE);
800ac6a: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800ac6e: b2db uxtb r3, r3
800ac70: 461a mov r2, r3
800ac72: 4b8d ldr r3, [pc, #564] ; (800aea8 <Display+0x4eb0>)
800ac74: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ac78: 2303 movs r3, #3
800ac7a: 2164 movs r1, #100 ; 0x64
800ac7c: 209a movs r0, #154 ; 0x9a
800ac7e: f7fa f92d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800ac82: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800ac86: b2db uxtb r3, r3
800ac88: 461a mov r2, r3
800ac8a: 4b87 ldr r3, [pc, #540] ; (800aea8 <Display+0x4eb0>)
800ac8c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ac90: 2303 movs r3, #3
800ac92: 2164 movs r1, #100 ; 0x64
800ac94: 20a1 movs r0, #161 ; 0xa1
800ac96: f7fa f921 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800ac9a: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800ac9e: b2db uxtb r3, r3
800aca0: 461a mov r2, r3
800aca2: 4b81 ldr r3, [pc, #516] ; (800aea8 <Display+0x4eb0>)
800aca4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aca8: 2303 movs r3, #3
800acaa: 2164 movs r1, #100 ; 0x64
800acac: 20a8 movs r0, #168 ; 0xa8
800acae: f7fa f915 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800acb2: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800acb6: b2db uxtb r3, r3
800acb8: 461a mov r2, r3
800acba: 4b7b ldr r3, [pc, #492] ; (800aea8 <Display+0x4eb0>)
800acbc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800acc0: 2303 movs r3, #3
800acc2: 2164 movs r1, #100 ; 0x64
800acc4: 20af movs r0, #175 ; 0xaf
800acc6: f7fa f909 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800acca: f002 b93a b.w 800cf42 <Display+0x6f4a>
if(menupos == Kikt_3)
800acce: 4b78 ldr r3, [pc, #480] ; (800aeb0 <Display+0x4eb8>)
800acd0: 781b ldrb r3, [r3, #0]
800acd2: b2db uxtb r3, r3
800acd4: 2b13 cmp r3, #19
800acd6: f040 818a bne.w 800afee <Display+0x4ff6>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800acda: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800acde: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800ace2: f7fa f835 bl 8004d50 <LCD_SetColors>
if(!ipt3)
800ace6: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800acea: b2db uxtb r3, r3
800acec: 2b00 cmp r3, #0
800acee: d141 bne.n 800ad74 <Display+0x4d7c>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800acf0: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800acf4: b2db uxtb r3, r3
800acf6: 461a mov r2, r3
800acf8: 4b6b ldr r3, [pc, #428] ; (800aea8 <Display+0x4eb0>)
800acfa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800acfe: 2303 movs r3, #3
800ad00: 2164 movs r1, #100 ; 0x64
800ad02: 208c movs r0, #140 ; 0x8c
800ad04: f7fa f8ea bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800ad08: 4b6a ldr r3, [pc, #424] ; (800aeb4 <Display+0x4ebc>)
800ad0a: 681b ldr r3, [r3, #0]
800ad0c: 2b00 cmp r3, #0
800ad0e: d00b beq.n 800ad28 <Display+0x4d30>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800ad10: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800ad14: b2db uxtb r3, r3
800ad16: 461a mov r2, r3
800ad18: 4b63 ldr r3, [pc, #396] ; (800aea8 <Display+0x4eb0>)
800ad1a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ad1e: 2303 movs r3, #3
800ad20: 2164 movs r1, #100 ; 0x64
800ad22: 2093 movs r0, #147 ; 0x93
800ad24: f7fa f8da bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800ad28: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800ad2c: b2db uxtb r3, r3
800ad2e: 461a mov r2, r3
800ad30: 4b5d ldr r3, [pc, #372] ; (800aea8 <Display+0x4eb0>)
800ad32: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ad36: 2303 movs r3, #3
800ad38: 2164 movs r1, #100 ; 0x64
800ad3a: 209a movs r0, #154 ; 0x9a
800ad3c: f7fa f8ce bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800ad40: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800ad44: b2db uxtb r3, r3
800ad46: 461a mov r2, r3
800ad48: 4b57 ldr r3, [pc, #348] ; (800aea8 <Display+0x4eb0>)
800ad4a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ad4e: 2303 movs r3, #3
800ad50: 2164 movs r1, #100 ; 0x64
800ad52: 20a1 movs r0, #161 ; 0xa1
800ad54: f7fa f8c2 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE);
800ad58: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800ad5c: b2db uxtb r3, r3
800ad5e: 461a mov r2, r3
800ad60: 4b51 ldr r3, [pc, #324] ; (800aea8 <Display+0x4eb0>)
800ad62: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ad66: 2303 movs r3, #3
800ad68: 2164 movs r1, #100 ; 0x64
800ad6a: 20a8 movs r0, #168 ; 0xa8
800ad6c: f7fa f8b6 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800ad70: f002 b8e7 b.w 800cf42 <Display+0x6f4a>
if(ipt3 == 1)
800ad74: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800ad78: b2db uxtb r3, r3
800ad7a: 2b01 cmp r3, #1
800ad7c: d147 bne.n 800ae0e <Display+0x4e16>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800ad7e: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800ad82: b2db uxtb r3, r3
800ad84: 461a mov r2, r3
800ad86: 4b48 ldr r3, [pc, #288] ; (800aea8 <Display+0x4eb0>)
800ad88: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ad8c: 2303 movs r3, #3
800ad8e: 2164 movs r1, #100 ; 0x64
800ad90: 208c movs r0, #140 ; 0x8c
800ad92: f7fa f8a3 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800ad96: 4b47 ldr r3, [pc, #284] ; (800aeb4 <Display+0x4ebc>)
800ad98: 681b ldr r3, [r3, #0]
800ad9a: 2b00 cmp r3, #0
800ad9c: d00b beq.n 800adb6 <Display+0x4dbe>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800ad9e: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800ada2: b2db uxtb r3, r3
800ada4: 461a mov r2, r3
800ada6: 4b40 ldr r3, [pc, #256] ; (800aea8 <Display+0x4eb0>)
800ada8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800adac: 2303 movs r3, #3
800adae: 2164 movs r1, #100 ; 0x64
800adb0: 2093 movs r0, #147 ; 0x93
800adb2: f7fa f893 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800adb6: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800adba: b2db uxtb r3, r3
800adbc: 461a mov r2, r3
800adbe: 4b3a ldr r3, [pc, #232] ; (800aea8 <Display+0x4eb0>)
800adc0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800adc4: 2303 movs r3, #3
800adc6: 2164 movs r1, #100 ; 0x64
800adc8: 209a movs r0, #154 ; 0x9a
800adca: f7fa f887 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800adce: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800add2: b2db uxtb r3, r3
800add4: 461a mov r2, r3
800add6: 4b34 ldr r3, [pc, #208] ; (800aea8 <Display+0x4eb0>)
800add8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800addc: 2303 movs r3, #3
800adde: 2164 movs r1, #100 ; 0x64
800ade0: 20a1 movs r0, #161 ; 0xa1
800ade2: f7fa f87b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE);
800ade6: 2303 movs r3, #3
800ade8: 4a30 ldr r2, [pc, #192] ; (800aeac <Display+0x4eb4>)
800adea: 2164 movs r1, #100 ; 0x64
800adec: 20a8 movs r0, #168 ; 0xa8
800adee: f7fa f875 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800adf2: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800adf6: b2db uxtb r3, r3
800adf8: 461a mov r2, r3
800adfa: 4b2b ldr r3, [pc, #172] ; (800aea8 <Display+0x4eb0>)
800adfc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ae00: 2303 movs r3, #3
800ae02: 2164 movs r1, #100 ; 0x64
800ae04: 20af movs r0, #175 ; 0xaf
800ae06: f7fa f869 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800ae0a: f002 b89a b.w 800cf42 <Display+0x6f4a>
if(ipt3 == 2)
800ae0e: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800ae12: b2db uxtb r3, r3
800ae14: 2b02 cmp r3, #2
800ae16: d14f bne.n 800aeb8 <Display+0x4ec0>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800ae18: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800ae1c: b2db uxtb r3, r3
800ae1e: 461a mov r2, r3
800ae20: 4b21 ldr r3, [pc, #132] ; (800aea8 <Display+0x4eb0>)
800ae22: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ae26: 2303 movs r3, #3
800ae28: 2164 movs r1, #100 ; 0x64
800ae2a: 208c movs r0, #140 ; 0x8c
800ae2c: f7fa f856 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800ae30: 4b20 ldr r3, [pc, #128] ; (800aeb4 <Display+0x4ebc>)
800ae32: 681b ldr r3, [r3, #0]
800ae34: 2b00 cmp r3, #0
800ae36: d00b beq.n 800ae50 <Display+0x4e58>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800ae38: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800ae3c: b2db uxtb r3, r3
800ae3e: 461a mov r2, r3
800ae40: 4b19 ldr r3, [pc, #100] ; (800aea8 <Display+0x4eb0>)
800ae42: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ae46: 2303 movs r3, #3
800ae48: 2164 movs r1, #100 ; 0x64
800ae4a: 2093 movs r0, #147 ; 0x93
800ae4c: f7fa f846 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800ae50: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800ae54: b2db uxtb r3, r3
800ae56: 461a mov r2, r3
800ae58: 4b13 ldr r3, [pc, #76] ; (800aea8 <Display+0x4eb0>)
800ae5a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ae5e: 2303 movs r3, #3
800ae60: 2164 movs r1, #100 ; 0x64
800ae62: 209a movs r0, #154 ; 0x9a
800ae64: f7fa f83a bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE);
800ae68: 2303 movs r3, #3
800ae6a: 4a10 ldr r2, [pc, #64] ; (800aeac <Display+0x4eb4>)
800ae6c: 2164 movs r1, #100 ; 0x64
800ae6e: 20a1 movs r0, #161 ; 0xa1
800ae70: f7fa f834 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800ae74: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800ae78: b2db uxtb r3, r3
800ae7a: 461a mov r2, r3
800ae7c: 4b0a ldr r3, [pc, #40] ; (800aea8 <Display+0x4eb0>)
800ae7e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ae82: 2303 movs r3, #3
800ae84: 2164 movs r1, #100 ; 0x64
800ae86: 20a8 movs r0, #168 ; 0xa8
800ae88: f7fa f828 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800ae8c: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800ae90: b2db uxtb r3, r3
800ae92: 461a mov r2, r3
800ae94: 4b04 ldr r3, [pc, #16] ; (800aea8 <Display+0x4eb0>)
800ae96: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ae9a: 2303 movs r3, #3
800ae9c: 2164 movs r1, #100 ; 0x64
800ae9e: 20af movs r0, #175 ; 0xaf
800aea0: f7fa f81c bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800aea4: f002 b84d b.w 800cf42 <Display+0x6f4a>
800aea8: 2002096c .word 0x2002096c
800aeac: 08018150 .word 0x08018150
800aeb0: 20020010 .word 0x20020010
800aeb4: 2006ba78 .word 0x2006ba78
if(ipt3 == 3)
800aeb8: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800aebc: b2db uxtb r3, r3
800aebe: 2b03 cmp r3, #3
800aec0: d147 bne.n 800af52 <Display+0x4f5a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800aec2: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800aec6: b2db uxtb r3, r3
800aec8: 461a mov r2, r3
800aeca: 4bbf ldr r3, [pc, #764] ; (800b1c8 <Display+0x51d0>)
800aecc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aed0: 2303 movs r3, #3
800aed2: 2164 movs r1, #100 ; 0x64
800aed4: 208c movs r0, #140 ; 0x8c
800aed6: f7fa f801 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800aeda: 4bbc ldr r3, [pc, #752] ; (800b1cc <Display+0x51d4>)
800aedc: 681b ldr r3, [r3, #0]
800aede: 2b00 cmp r3, #0
800aee0: d00b beq.n 800aefa <Display+0x4f02>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800aee2: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800aee6: b2db uxtb r3, r3
800aee8: 461a mov r2, r3
800aeea: 4bb7 ldr r3, [pc, #732] ; (800b1c8 <Display+0x51d0>)
800aeec: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aef0: 2303 movs r3, #3
800aef2: 2164 movs r1, #100 ; 0x64
800aef4: 2093 movs r0, #147 ; 0x93
800aef6: f7f9 fff1 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE);
800aefa: 2303 movs r3, #3
800aefc: 4ab4 ldr r2, [pc, #720] ; (800b1d0 <Display+0x51d8>)
800aefe: 2164 movs r1, #100 ; 0x64
800af00: 209a movs r0, #154 ; 0x9a
800af02: f7f9 ffeb bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800af06: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800af0a: b2db uxtb r3, r3
800af0c: 461a mov r2, r3
800af0e: 4bae ldr r3, [pc, #696] ; (800b1c8 <Display+0x51d0>)
800af10: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800af14: 2303 movs r3, #3
800af16: 2164 movs r1, #100 ; 0x64
800af18: 20a1 movs r0, #161 ; 0xa1
800af1a: f7f9 ffdf bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800af1e: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800af22: b2db uxtb r3, r3
800af24: 461a mov r2, r3
800af26: 4ba8 ldr r3, [pc, #672] ; (800b1c8 <Display+0x51d0>)
800af28: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800af2c: 2303 movs r3, #3
800af2e: 2164 movs r1, #100 ; 0x64
800af30: 20a8 movs r0, #168 ; 0xa8
800af32: f7f9 ffd3 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800af36: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800af3a: b2db uxtb r3, r3
800af3c: 461a mov r2, r3
800af3e: 4ba2 ldr r3, [pc, #648] ; (800b1c8 <Display+0x51d0>)
800af40: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800af44: 2303 movs r3, #3
800af46: 2164 movs r1, #100 ; 0x64
800af48: 20af movs r0, #175 ; 0xaf
800af4a: f7f9 ffc7 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800af4e: f001 bff8 b.w 800cf42 <Display+0x6f4a>
if(ipt3 == 4)
800af52: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800af56: b2db uxtb r3, r3
800af58: 2b04 cmp r3, #4
800af5a: f041 87f2 bne.w 800cf42 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800af5e: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800af62: b2db uxtb r3, r3
800af64: 461a mov r2, r3
800af66: 4b98 ldr r3, [pc, #608] ; (800b1c8 <Display+0x51d0>)
800af68: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800af6c: 2303 movs r3, #3
800af6e: 2164 movs r1, #100 ; 0x64
800af70: 208c movs r0, #140 ; 0x8c
800af72: f7f9 ffb3 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE);
800af76: 2303 movs r3, #3
800af78: 4a95 ldr r2, [pc, #596] ; (800b1d0 <Display+0x51d8>)
800af7a: 2164 movs r1, #100 ; 0x64
800af7c: 2093 movs r0, #147 ; 0x93
800af7e: f7f9 ffad bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800af82: 4b92 ldr r3, [pc, #584] ; (800b1cc <Display+0x51d4>)
800af84: 681b ldr r3, [r3, #0]
800af86: 2b00 cmp r3, #0
800af88: d00b beq.n 800afa2 <Display+0x4faa>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE);
800af8a: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800af8e: b2db uxtb r3, r3
800af90: 461a mov r2, r3
800af92: 4b8d ldr r3, [pc, #564] ; (800b1c8 <Display+0x51d0>)
800af94: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800af98: 2303 movs r3, #3
800af9a: 2164 movs r1, #100 ; 0x64
800af9c: 209a movs r0, #154 ; 0x9a
800af9e: f7f9 ff9d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800afa2: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800afa6: b2db uxtb r3, r3
800afa8: 461a mov r2, r3
800afaa: 4b87 ldr r3, [pc, #540] ; (800b1c8 <Display+0x51d0>)
800afac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800afb0: 2303 movs r3, #3
800afb2: 2164 movs r1, #100 ; 0x64
800afb4: 20a1 movs r0, #161 ; 0xa1
800afb6: f7f9 ff91 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800afba: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800afbe: b2db uxtb r3, r3
800afc0: 461a mov r2, r3
800afc2: 4b81 ldr r3, [pc, #516] ; (800b1c8 <Display+0x51d0>)
800afc4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800afc8: 2303 movs r3, #3
800afca: 2164 movs r1, #100 ; 0x64
800afcc: 20a8 movs r0, #168 ; 0xa8
800afce: f7f9 ff85 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800afd2: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800afd6: b2db uxtb r3, r3
800afd8: 461a mov r2, r3
800afda: 4b7b ldr r3, [pc, #492] ; (800b1c8 <Display+0x51d0>)
800afdc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800afe0: 2303 movs r3, #3
800afe2: 2164 movs r1, #100 ; 0x64
800afe4: 20af movs r0, #175 ; 0xaf
800afe6: f7f9 ff79 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800afea: f001 bfaa b.w 800cf42 <Display+0x6f4a>
if(menupos == Kiks_3)
800afee: 4b79 ldr r3, [pc, #484] ; (800b1d4 <Display+0x51dc>)
800aff0: 781b ldrb r3, [r3, #0]
800aff2: b2db uxtb r3, r3
800aff4: 2b14 cmp r3, #20
800aff6: f040 818a bne.w 800b30e <Display+0x5316>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800affa: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800affe: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800b002: f7f9 fea5 bl 8004d50 <LCD_SetColors>
if(!ipt3)
800b006: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b00a: b2db uxtb r3, r3
800b00c: 2b00 cmp r3, #0
800b00e: d141 bne.n 800b094 <Display+0x509c>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b010: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b014: b2db uxtb r3, r3
800b016: 461a mov r2, r3
800b018: 4b6b ldr r3, [pc, #428] ; (800b1c8 <Display+0x51d0>)
800b01a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b01e: 2303 movs r3, #3
800b020: 2164 movs r1, #100 ; 0x64
800b022: 208c movs r0, #140 ; 0x8c
800b024: f7f9 ff5a bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b028: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b02c: b2db uxtb r3, r3
800b02e: 461a mov r2, r3
800b030: 4b65 ldr r3, [pc, #404] ; (800b1c8 <Display+0x51d0>)
800b032: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b036: 2303 movs r3, #3
800b038: 2164 movs r1, #100 ; 0x64
800b03a: 2093 movs r0, #147 ; 0x93
800b03c: f7f9 ff4e bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800b040: 4b62 ldr r3, [pc, #392] ; (800b1cc <Display+0x51d4>)
800b042: 681b ldr r3, [r3, #0]
800b044: 2b00 cmp r3, #0
800b046: d00b beq.n 800b060 <Display+0x5068>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b048: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b04c: b2db uxtb r3, r3
800b04e: 461a mov r2, r3
800b050: 4b5d ldr r3, [pc, #372] ; (800b1c8 <Display+0x51d0>)
800b052: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b056: 2303 movs r3, #3
800b058: 2164 movs r1, #100 ; 0x64
800b05a: 209a movs r0, #154 ; 0x9a
800b05c: f7f9 ff3e bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b060: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b064: b2db uxtb r3, r3
800b066: 461a mov r2, r3
800b068: 4b57 ldr r3, [pc, #348] ; (800b1c8 <Display+0x51d0>)
800b06a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b06e: 2303 movs r3, #3
800b070: 2164 movs r1, #100 ; 0x64
800b072: 20a1 movs r0, #161 ; 0xa1
800b074: f7f9 ff32 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b078: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b07c: b2db uxtb r3, r3
800b07e: 461a mov r2, r3
800b080: 4b51 ldr r3, [pc, #324] ; (800b1c8 <Display+0x51d0>)
800b082: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b086: 2303 movs r3, #3
800b088: 2164 movs r1, #100 ; 0x64
800b08a: 20a8 movs r0, #168 ; 0xa8
800b08c: f7f9 ff26 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b090: f001 bf57 b.w 800cf42 <Display+0x6f4a>
if(ipt3 == 1)
800b094: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b098: b2db uxtb r3, r3
800b09a: 2b01 cmp r3, #1
800b09c: d147 bne.n 800b12e <Display+0x5136>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b09e: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b0a2: b2db uxtb r3, r3
800b0a4: 461a mov r2, r3
800b0a6: 4b48 ldr r3, [pc, #288] ; (800b1c8 <Display+0x51d0>)
800b0a8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b0ac: 2303 movs r3, #3
800b0ae: 2164 movs r1, #100 ; 0x64
800b0b0: 208c movs r0, #140 ; 0x8c
800b0b2: f7f9 ff13 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b0b6: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b0ba: b2db uxtb r3, r3
800b0bc: 461a mov r2, r3
800b0be: 4b42 ldr r3, [pc, #264] ; (800b1c8 <Display+0x51d0>)
800b0c0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b0c4: 2303 movs r3, #3
800b0c6: 2164 movs r1, #100 ; 0x64
800b0c8: 2093 movs r0, #147 ; 0x93
800b0ca: f7f9 ff07 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800b0ce: 4b3f ldr r3, [pc, #252] ; (800b1cc <Display+0x51d4>)
800b0d0: 681b ldr r3, [r3, #0]
800b0d2: 2b00 cmp r3, #0
800b0d4: d00b beq.n 800b0ee <Display+0x50f6>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b0d6: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b0da: b2db uxtb r3, r3
800b0dc: 461a mov r2, r3
800b0de: 4b3a ldr r3, [pc, #232] ; (800b1c8 <Display+0x51d0>)
800b0e0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b0e4: 2303 movs r3, #3
800b0e6: 2164 movs r1, #100 ; 0x64
800b0e8: 209a movs r0, #154 ; 0x9a
800b0ea: f7f9 fef7 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b0ee: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b0f2: b2db uxtb r3, r3
800b0f4: 461a mov r2, r3
800b0f6: 4b34 ldr r3, [pc, #208] ; (800b1c8 <Display+0x51d0>)
800b0f8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b0fc: 2303 movs r3, #3
800b0fe: 2164 movs r1, #100 ; 0x64
800b100: 20a1 movs r0, #161 ; 0xa1
800b102: f7f9 feeb bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE);
800b106: 2303 movs r3, #3
800b108: 4a31 ldr r2, [pc, #196] ; (800b1d0 <Display+0x51d8>)
800b10a: 2164 movs r1, #100 ; 0x64
800b10c: 20a8 movs r0, #168 ; 0xa8
800b10e: f7f9 fee5 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b112: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b116: b2db uxtb r3, r3
800b118: 461a mov r2, r3
800b11a: 4b2b ldr r3, [pc, #172] ; (800b1c8 <Display+0x51d0>)
800b11c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b120: 2303 movs r3, #3
800b122: 2164 movs r1, #100 ; 0x64
800b124: 20af movs r0, #175 ; 0xaf
800b126: f7f9 fed9 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b12a: f001 bf0a b.w 800cf42 <Display+0x6f4a>
if(ipt3 == 2)
800b12e: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b132: b2db uxtb r3, r3
800b134: 2b02 cmp r3, #2
800b136: d14f bne.n 800b1d8 <Display+0x51e0>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b138: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b13c: b2db uxtb r3, r3
800b13e: 461a mov r2, r3
800b140: 4b21 ldr r3, [pc, #132] ; (800b1c8 <Display+0x51d0>)
800b142: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b146: 2303 movs r3, #3
800b148: 2164 movs r1, #100 ; 0x64
800b14a: 208c movs r0, #140 ; 0x8c
800b14c: f7f9 fec6 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b150: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b154: b2db uxtb r3, r3
800b156: 461a mov r2, r3
800b158: 4b1b ldr r3, [pc, #108] ; (800b1c8 <Display+0x51d0>)
800b15a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b15e: 2303 movs r3, #3
800b160: 2164 movs r1, #100 ; 0x64
800b162: 2093 movs r0, #147 ; 0x93
800b164: f7f9 feba bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800b168: 4b18 ldr r3, [pc, #96] ; (800b1cc <Display+0x51d4>)
800b16a: 681b ldr r3, [r3, #0]
800b16c: 2b00 cmp r3, #0
800b16e: d00b beq.n 800b188 <Display+0x5190>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b170: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b174: b2db uxtb r3, r3
800b176: 461a mov r2, r3
800b178: 4b13 ldr r3, [pc, #76] ; (800b1c8 <Display+0x51d0>)
800b17a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b17e: 2303 movs r3, #3
800b180: 2164 movs r1, #100 ; 0x64
800b182: 209a movs r0, #154 ; 0x9a
800b184: f7f9 feaa bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE);
800b188: 2303 movs r3, #3
800b18a: 4a11 ldr r2, [pc, #68] ; (800b1d0 <Display+0x51d8>)
800b18c: 2164 movs r1, #100 ; 0x64
800b18e: 20a1 movs r0, #161 ; 0xa1
800b190: f7f9 fea4 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b194: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b198: b2db uxtb r3, r3
800b19a: 461a mov r2, r3
800b19c: 4b0a ldr r3, [pc, #40] ; (800b1c8 <Display+0x51d0>)
800b19e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b1a2: 2303 movs r3, #3
800b1a4: 2164 movs r1, #100 ; 0x64
800b1a6: 20a8 movs r0, #168 ; 0xa8
800b1a8: f7f9 fe98 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b1ac: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b1b0: b2db uxtb r3, r3
800b1b2: 461a mov r2, r3
800b1b4: 4b04 ldr r3, [pc, #16] ; (800b1c8 <Display+0x51d0>)
800b1b6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b1ba: 2303 movs r3, #3
800b1bc: 2164 movs r1, #100 ; 0x64
800b1be: 20af movs r0, #175 ; 0xaf
800b1c0: f7f9 fe8c bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b1c4: f001 bebd b.w 800cf42 <Display+0x6f4a>
800b1c8: 2002096c .word 0x2002096c
800b1cc: 2006ba78 .word 0x2006ba78
800b1d0: 08018150 .word 0x08018150
800b1d4: 20020010 .word 0x20020010
if(ipt3 == 3)
800b1d8: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b1dc: b2db uxtb r3, r3
800b1de: 2b03 cmp r3, #3
800b1e0: d147 bne.n 800b272 <Display+0x527a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b1e2: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b1e6: b2db uxtb r3, r3
800b1e8: 461a mov r2, r3
800b1ea: 4bbf ldr r3, [pc, #764] ; (800b4e8 <Display+0x54f0>)
800b1ec: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b1f0: 2303 movs r3, #3
800b1f2: 2164 movs r1, #100 ; 0x64
800b1f4: 208c movs r0, #140 ; 0x8c
800b1f6: f7f9 fe71 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b1fa: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b1fe: b2db uxtb r3, r3
800b200: 461a mov r2, r3
800b202: 4bb9 ldr r3, [pc, #740] ; (800b4e8 <Display+0x54f0>)
800b204: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b208: 2303 movs r3, #3
800b20a: 2164 movs r1, #100 ; 0x64
800b20c: 2093 movs r0, #147 ; 0x93
800b20e: f7f9 fe65 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE);
800b212: 2303 movs r3, #3
800b214: 4ab5 ldr r2, [pc, #724] ; (800b4ec <Display+0x54f4>)
800b216: 2164 movs r1, #100 ; 0x64
800b218: 209a movs r0, #154 ; 0x9a
800b21a: f7f9 fe5f bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800b21e: 4bb4 ldr r3, [pc, #720] ; (800b4f0 <Display+0x54f8>)
800b220: 681b ldr r3, [r3, #0]
800b222: 2b00 cmp r3, #0
800b224: d00b beq.n 800b23e <Display+0x5246>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b226: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b22a: b2db uxtb r3, r3
800b22c: 461a mov r2, r3
800b22e: 4bae ldr r3, [pc, #696] ; (800b4e8 <Display+0x54f0>)
800b230: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b234: 2303 movs r3, #3
800b236: 2164 movs r1, #100 ; 0x64
800b238: 20a1 movs r0, #161 ; 0xa1
800b23a: f7f9 fe4f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b23e: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b242: b2db uxtb r3, r3
800b244: 461a mov r2, r3
800b246: 4ba8 ldr r3, [pc, #672] ; (800b4e8 <Display+0x54f0>)
800b248: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b24c: 2303 movs r3, #3
800b24e: 2164 movs r1, #100 ; 0x64
800b250: 20a8 movs r0, #168 ; 0xa8
800b252: f7f9 fe43 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b256: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b25a: b2db uxtb r3, r3
800b25c: 461a mov r2, r3
800b25e: 4ba2 ldr r3, [pc, #648] ; (800b4e8 <Display+0x54f0>)
800b260: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b264: 2303 movs r3, #3
800b266: 2164 movs r1, #100 ; 0x64
800b268: 20af movs r0, #175 ; 0xaf
800b26a: f7f9 fe37 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b26e: f001 be68 b.w 800cf42 <Display+0x6f4a>
if(ipt3 == 4)
800b272: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b276: b2db uxtb r3, r3
800b278: 2b04 cmp r3, #4
800b27a: f041 8662 bne.w 800cf42 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b27e: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b282: b2db uxtb r3, r3
800b284: 461a mov r2, r3
800b286: 4b98 ldr r3, [pc, #608] ; (800b4e8 <Display+0x54f0>)
800b288: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b28c: 2303 movs r3, #3
800b28e: 2164 movs r1, #100 ; 0x64
800b290: 208c movs r0, #140 ; 0x8c
800b292: f7f9 fe23 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE);
800b296: 2303 movs r3, #3
800b298: 4a94 ldr r2, [pc, #592] ; (800b4ec <Display+0x54f4>)
800b29a: 2164 movs r1, #100 ; 0x64
800b29c: 2093 movs r0, #147 ; 0x93
800b29e: f7f9 fe1d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b2a2: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b2a6: b2db uxtb r3, r3
800b2a8: 461a mov r2, r3
800b2aa: 4b8f ldr r3, [pc, #572] ; (800b4e8 <Display+0x54f0>)
800b2ac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b2b0: 2303 movs r3, #3
800b2b2: 2164 movs r1, #100 ; 0x64
800b2b4: 209a movs r0, #154 ; 0x9a
800b2b6: f7f9 fe11 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800b2ba: 4b8d ldr r3, [pc, #564] ; (800b4f0 <Display+0x54f8>)
800b2bc: 681b ldr r3, [r3, #0]
800b2be: 2b00 cmp r3, #0
800b2c0: d00b beq.n 800b2da <Display+0x52e2>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b2c2: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b2c6: b2db uxtb r3, r3
800b2c8: 461a mov r2, r3
800b2ca: 4b87 ldr r3, [pc, #540] ; (800b4e8 <Display+0x54f0>)
800b2cc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b2d0: 2303 movs r3, #3
800b2d2: 2164 movs r1, #100 ; 0x64
800b2d4: 20a1 movs r0, #161 ; 0xa1
800b2d6: f7f9 fe01 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b2da: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b2de: b2db uxtb r3, r3
800b2e0: 461a mov r2, r3
800b2e2: 4b81 ldr r3, [pc, #516] ; (800b4e8 <Display+0x54f0>)
800b2e4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b2e8: 2303 movs r3, #3
800b2ea: 2164 movs r1, #100 ; 0x64
800b2ec: 20a8 movs r0, #168 ; 0xa8
800b2ee: f7f9 fdf5 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b2f2: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b2f6: b2db uxtb r3, r3
800b2f8: 461a mov r2, r3
800b2fa: 4b7b ldr r3, [pc, #492] ; (800b4e8 <Display+0x54f0>)
800b2fc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b300: 2303 movs r3, #3
800b302: 2164 movs r1, #100 ; 0x64
800b304: 20af movs r0, #175 ; 0xaf
800b306: f7f9 fde9 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b30a: f001 be1a b.w 800cf42 <Display+0x6f4a>
if(menupos == Kikd_3)
800b30e: 4b79 ldr r3, [pc, #484] ; (800b4f4 <Display+0x54fc>)
800b310: 781b ldrb r3, [r3, #0]
800b312: b2db uxtb r3, r3
800b314: 2b15 cmp r3, #21
800b316: f040 818a bne.w 800b62e <Display+0x5636>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800b31a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b31e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800b322: f7f9 fd15 bl 8004d50 <LCD_SetColors>
if(!ipt3)
800b326: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b32a: b2db uxtb r3, r3
800b32c: 2b00 cmp r3, #0
800b32e: d141 bne.n 800b3b4 <Display+0x53bc>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b330: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b334: b2db uxtb r3, r3
800b336: 461a mov r2, r3
800b338: 4b6b ldr r3, [pc, #428] ; (800b4e8 <Display+0x54f0>)
800b33a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b33e: 2303 movs r3, #3
800b340: 2164 movs r1, #100 ; 0x64
800b342: 208c movs r0, #140 ; 0x8c
800b344: f7f9 fdca bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b348: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b34c: b2db uxtb r3, r3
800b34e: 461a mov r2, r3
800b350: 4b65 ldr r3, [pc, #404] ; (800b4e8 <Display+0x54f0>)
800b352: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b356: 2303 movs r3, #3
800b358: 2164 movs r1, #100 ; 0x64
800b35a: 2093 movs r0, #147 ; 0x93
800b35c: f7f9 fdbe bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b360: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b364: b2db uxtb r3, r3
800b366: 461a mov r2, r3
800b368: 4b5f ldr r3, [pc, #380] ; (800b4e8 <Display+0x54f0>)
800b36a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b36e: 2303 movs r3, #3
800b370: 2164 movs r1, #100 ; 0x64
800b372: 209a movs r0, #154 ; 0x9a
800b374: f7f9 fdb2 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800b378: 4b5d ldr r3, [pc, #372] ; (800b4f0 <Display+0x54f8>)
800b37a: 681b ldr r3, [r3, #0]
800b37c: 2b00 cmp r3, #0
800b37e: d00b beq.n 800b398 <Display+0x53a0>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b380: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b384: b2db uxtb r3, r3
800b386: 461a mov r2, r3
800b388: 4b57 ldr r3, [pc, #348] ; (800b4e8 <Display+0x54f0>)
800b38a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b38e: 2303 movs r3, #3
800b390: 2164 movs r1, #100 ; 0x64
800b392: 20a1 movs r0, #161 ; 0xa1
800b394: f7f9 fda2 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b398: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b39c: b2db uxtb r3, r3
800b39e: 461a mov r2, r3
800b3a0: 4b51 ldr r3, [pc, #324] ; (800b4e8 <Display+0x54f0>)
800b3a2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b3a6: 2303 movs r3, #3
800b3a8: 2164 movs r1, #100 ; 0x64
800b3aa: 20a8 movs r0, #168 ; 0xa8
800b3ac: f7f9 fd96 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b3b0: f001 bdc7 b.w 800cf42 <Display+0x6f4a>
if(ipt3 == 1)
800b3b4: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b3b8: b2db uxtb r3, r3
800b3ba: 2b01 cmp r3, #1
800b3bc: d147 bne.n 800b44e <Display+0x5456>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b3be: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b3c2: b2db uxtb r3, r3
800b3c4: 461a mov r2, r3
800b3c6: 4b48 ldr r3, [pc, #288] ; (800b4e8 <Display+0x54f0>)
800b3c8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b3cc: 2303 movs r3, #3
800b3ce: 2164 movs r1, #100 ; 0x64
800b3d0: 208c movs r0, #140 ; 0x8c
800b3d2: f7f9 fd83 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b3d6: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b3da: b2db uxtb r3, r3
800b3dc: 461a mov r2, r3
800b3de: 4b42 ldr r3, [pc, #264] ; (800b4e8 <Display+0x54f0>)
800b3e0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b3e4: 2303 movs r3, #3
800b3e6: 2164 movs r1, #100 ; 0x64
800b3e8: 2093 movs r0, #147 ; 0x93
800b3ea: f7f9 fd77 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b3ee: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b3f2: b2db uxtb r3, r3
800b3f4: 461a mov r2, r3
800b3f6: 4b3c ldr r3, [pc, #240] ; (800b4e8 <Display+0x54f0>)
800b3f8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b3fc: 2303 movs r3, #3
800b3fe: 2164 movs r1, #100 ; 0x64
800b400: 209a movs r0, #154 ; 0x9a
800b402: f7f9 fd6b bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800b406: 4b3a ldr r3, [pc, #232] ; (800b4f0 <Display+0x54f8>)
800b408: 681b ldr r3, [r3, #0]
800b40a: 2b00 cmp r3, #0
800b40c: d00b beq.n 800b426 <Display+0x542e>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b40e: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b412: b2db uxtb r3, r3
800b414: 461a mov r2, r3
800b416: 4b34 ldr r3, [pc, #208] ; (800b4e8 <Display+0x54f0>)
800b418: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b41c: 2303 movs r3, #3
800b41e: 2164 movs r1, #100 ; 0x64
800b420: 20a1 movs r0, #161 ; 0xa1
800b422: f7f9 fd5b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE);
800b426: 2303 movs r3, #3
800b428: 4a30 ldr r2, [pc, #192] ; (800b4ec <Display+0x54f4>)
800b42a: 2164 movs r1, #100 ; 0x64
800b42c: 20a8 movs r0, #168 ; 0xa8
800b42e: f7f9 fd55 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b432: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b436: b2db uxtb r3, r3
800b438: 461a mov r2, r3
800b43a: 4b2b ldr r3, [pc, #172] ; (800b4e8 <Display+0x54f0>)
800b43c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b440: 2303 movs r3, #3
800b442: 2164 movs r1, #100 ; 0x64
800b444: 20af movs r0, #175 ; 0xaf
800b446: f7f9 fd49 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b44a: f001 bd7a b.w 800cf42 <Display+0x6f4a>
if(ipt3 == 2)
800b44e: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b452: b2db uxtb r3, r3
800b454: 2b02 cmp r3, #2
800b456: d14f bne.n 800b4f8 <Display+0x5500>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b458: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b45c: b2db uxtb r3, r3
800b45e: 461a mov r2, r3
800b460: 4b21 ldr r3, [pc, #132] ; (800b4e8 <Display+0x54f0>)
800b462: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b466: 2303 movs r3, #3
800b468: 2164 movs r1, #100 ; 0x64
800b46a: 208c movs r0, #140 ; 0x8c
800b46c: f7f9 fd36 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b470: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b474: b2db uxtb r3, r3
800b476: 461a mov r2, r3
800b478: 4b1b ldr r3, [pc, #108] ; (800b4e8 <Display+0x54f0>)
800b47a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b47e: 2303 movs r3, #3
800b480: 2164 movs r1, #100 ; 0x64
800b482: 2093 movs r0, #147 ; 0x93
800b484: f7f9 fd2a bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b488: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b48c: b2db uxtb r3, r3
800b48e: 461a mov r2, r3
800b490: 4b15 ldr r3, [pc, #84] ; (800b4e8 <Display+0x54f0>)
800b492: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b496: 2303 movs r3, #3
800b498: 2164 movs r1, #100 ; 0x64
800b49a: 209a movs r0, #154 ; 0x9a
800b49c: f7f9 fd1e bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE);
800b4a0: 2303 movs r3, #3
800b4a2: 4a12 ldr r2, [pc, #72] ; (800b4ec <Display+0x54f4>)
800b4a4: 2164 movs r1, #100 ; 0x64
800b4a6: 20a1 movs r0, #161 ; 0xa1
800b4a8: f7f9 fd18 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800b4ac: 4b10 ldr r3, [pc, #64] ; (800b4f0 <Display+0x54f8>)
800b4ae: 681b ldr r3, [r3, #0]
800b4b0: 2b00 cmp r3, #0
800b4b2: d00b beq.n 800b4cc <Display+0x54d4>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b4b4: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b4b8: b2db uxtb r3, r3
800b4ba: 461a mov r2, r3
800b4bc: 4b0a ldr r3, [pc, #40] ; (800b4e8 <Display+0x54f0>)
800b4be: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b4c2: 2303 movs r3, #3
800b4c4: 2164 movs r1, #100 ; 0x64
800b4c6: 20a8 movs r0, #168 ; 0xa8
800b4c8: f7f9 fd08 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b4cc: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b4d0: b2db uxtb r3, r3
800b4d2: 461a mov r2, r3
800b4d4: 4b04 ldr r3, [pc, #16] ; (800b4e8 <Display+0x54f0>)
800b4d6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b4da: 2303 movs r3, #3
800b4dc: 2164 movs r1, #100 ; 0x64
800b4de: 20af movs r0, #175 ; 0xaf
800b4e0: f7f9 fcfc bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b4e4: f001 bd2d b.w 800cf42 <Display+0x6f4a>
800b4e8: 2002096c .word 0x2002096c
800b4ec: 08018150 .word 0x08018150
800b4f0: 2006ba78 .word 0x2006ba78
800b4f4: 20020010 .word 0x20020010
if(ipt3 == 3)
800b4f8: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b4fc: b2db uxtb r3, r3
800b4fe: 2b03 cmp r3, #3
800b500: d147 bne.n 800b592 <Display+0x559a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b502: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b506: b2db uxtb r3, r3
800b508: 461a mov r2, r3
800b50a: 4bc1 ldr r3, [pc, #772] ; (800b810 <Display+0x5818>)
800b50c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b510: 2303 movs r3, #3
800b512: 2164 movs r1, #100 ; 0x64
800b514: 208c movs r0, #140 ; 0x8c
800b516: f7f9 fce1 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b51a: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b51e: b2db uxtb r3, r3
800b520: 461a mov r2, r3
800b522: 4bbb ldr r3, [pc, #748] ; (800b810 <Display+0x5818>)
800b524: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b528: 2303 movs r3, #3
800b52a: 2164 movs r1, #100 ; 0x64
800b52c: 2093 movs r0, #147 ; 0x93
800b52e: f7f9 fcd5 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE);
800b532: 2303 movs r3, #3
800b534: 4ab7 ldr r2, [pc, #732] ; (800b814 <Display+0x581c>)
800b536: 2164 movs r1, #100 ; 0x64
800b538: 209a movs r0, #154 ; 0x9a
800b53a: f7f9 fccf bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b53e: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b542: b2db uxtb r3, r3
800b544: 461a mov r2, r3
800b546: 4bb2 ldr r3, [pc, #712] ; (800b810 <Display+0x5818>)
800b548: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b54c: 2303 movs r3, #3
800b54e: 2164 movs r1, #100 ; 0x64
800b550: 20a1 movs r0, #161 ; 0xa1
800b552: f7f9 fcc3 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800b556: 4bb0 ldr r3, [pc, #704] ; (800b818 <Display+0x5820>)
800b558: 681b ldr r3, [r3, #0]
800b55a: 2b00 cmp r3, #0
800b55c: d00b beq.n 800b576 <Display+0x557e>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b55e: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b562: b2db uxtb r3, r3
800b564: 461a mov r2, r3
800b566: 4baa ldr r3, [pc, #680] ; (800b810 <Display+0x5818>)
800b568: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b56c: 2303 movs r3, #3
800b56e: 2164 movs r1, #100 ; 0x64
800b570: 20a8 movs r0, #168 ; 0xa8
800b572: f7f9 fcb3 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b576: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b57a: b2db uxtb r3, r3
800b57c: 461a mov r2, r3
800b57e: 4ba4 ldr r3, [pc, #656] ; (800b810 <Display+0x5818>)
800b580: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b584: 2303 movs r3, #3
800b586: 2164 movs r1, #100 ; 0x64
800b588: 20af movs r0, #175 ; 0xaf
800b58a: f7f9 fca7 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b58e: f001 bcd8 b.w 800cf42 <Display+0x6f4a>
if(ipt3 == 4)
800b592: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b596: b2db uxtb r3, r3
800b598: 2b04 cmp r3, #4
800b59a: f041 84d2 bne.w 800cf42 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b59e: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b5a2: b2db uxtb r3, r3
800b5a4: 461a mov r2, r3
800b5a6: 4b9a ldr r3, [pc, #616] ; (800b810 <Display+0x5818>)
800b5a8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b5ac: 2303 movs r3, #3
800b5ae: 2164 movs r1, #100 ; 0x64
800b5b0: 208c movs r0, #140 ; 0x8c
800b5b2: f7f9 fc93 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE);
800b5b6: 2303 movs r3, #3
800b5b8: 4a96 ldr r2, [pc, #600] ; (800b814 <Display+0x581c>)
800b5ba: 2164 movs r1, #100 ; 0x64
800b5bc: 2093 movs r0, #147 ; 0x93
800b5be: f7f9 fc8d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b5c2: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b5c6: b2db uxtb r3, r3
800b5c8: 461a mov r2, r3
800b5ca: 4b91 ldr r3, [pc, #580] ; (800b810 <Display+0x5818>)
800b5cc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b5d0: 2303 movs r3, #3
800b5d2: 2164 movs r1, #100 ; 0x64
800b5d4: 209a movs r0, #154 ; 0x9a
800b5d6: f7f9 fc81 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b5da: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b5de: b2db uxtb r3, r3
800b5e0: 461a mov r2, r3
800b5e2: 4b8b ldr r3, [pc, #556] ; (800b810 <Display+0x5818>)
800b5e4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b5e8: 2303 movs r3, #3
800b5ea: 2164 movs r1, #100 ; 0x64
800b5ec: 20a1 movs r0, #161 ; 0xa1
800b5ee: f7f9 fc75 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800b5f2: 4b89 ldr r3, [pc, #548] ; (800b818 <Display+0x5820>)
800b5f4: 681b ldr r3, [r3, #0]
800b5f6: 2b00 cmp r3, #0
800b5f8: d00b beq.n 800b612 <Display+0x561a>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b5fa: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b5fe: b2db uxtb r3, r3
800b600: 461a mov r2, r3
800b602: 4b83 ldr r3, [pc, #524] ; (800b810 <Display+0x5818>)
800b604: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b608: 2303 movs r3, #3
800b60a: 2164 movs r1, #100 ; 0x64
800b60c: 20a8 movs r0, #168 ; 0xa8
800b60e: f7f9 fc65 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b612: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b616: b2db uxtb r3, r3
800b618: 461a mov r2, r3
800b61a: 4b7d ldr r3, [pc, #500] ; (800b810 <Display+0x5818>)
800b61c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b620: 2303 movs r3, #3
800b622: 2164 movs r1, #100 ; 0x64
800b624: 20af movs r0, #175 ; 0xaf
800b626: f7f9 fc59 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b62a: f001 bc8a b.w 800cf42 <Display+0x6f4a>
if(menupos == Kike_3)
800b62e: 4b7b ldr r3, [pc, #492] ; (800b81c <Display+0x5824>)
800b630: 781b ldrb r3, [r3, #0]
800b632: b2db uxtb r3, r3
800b634: 2b16 cmp r3, #22
800b636: f040 8190 bne.w 800b95a <Display+0x5962>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800b63a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b63e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800b642: f7f9 fb85 bl 8004d50 <LCD_SetColors>
if(!ipt3)
800b646: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b64a: b2db uxtb r3, r3
800b64c: 2b00 cmp r3, #0
800b64e: d142 bne.n 800b6d6 <Display+0x56de>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b650: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b654: b2db uxtb r3, r3
800b656: 461a mov r2, r3
800b658: 4b6d ldr r3, [pc, #436] ; (800b810 <Display+0x5818>)
800b65a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b65e: 2303 movs r3, #3
800b660: 2164 movs r1, #100 ; 0x64
800b662: 208c movs r0, #140 ; 0x8c
800b664: f7f9 fc3a bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b668: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b66c: b2db uxtb r3, r3
800b66e: 461a mov r2, r3
800b670: 4b67 ldr r3, [pc, #412] ; (800b810 <Display+0x5818>)
800b672: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b676: 2303 movs r3, #3
800b678: 2164 movs r1, #100 ; 0x64
800b67a: 2093 movs r0, #147 ; 0x93
800b67c: f7f9 fc2e bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b680: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b684: b2db uxtb r3, r3
800b686: 461a mov r2, r3
800b688: 4b61 ldr r3, [pc, #388] ; (800b810 <Display+0x5818>)
800b68a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b68e: 2303 movs r3, #3
800b690: 2164 movs r1, #100 ; 0x64
800b692: 209a movs r0, #154 ; 0x9a
800b694: f7f9 fc22 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b698: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b69c: b2db uxtb r3, r3
800b69e: 461a mov r2, r3
800b6a0: 4b5b ldr r3, [pc, #364] ; (800b810 <Display+0x5818>)
800b6a2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b6a6: 2303 movs r3, #3
800b6a8: 2164 movs r1, #100 ; 0x64
800b6aa: 20a1 movs r0, #161 ; 0xa1
800b6ac: f7f9 fc16 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800b6b0: 4b59 ldr r3, [pc, #356] ; (800b818 <Display+0x5820>)
800b6b2: 681b ldr r3, [r3, #0]
800b6b4: 2b00 cmp r3, #0
800b6b6: f001 8444 beq.w 800cf42 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b6ba: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b6be: b2db uxtb r3, r3
800b6c0: 461a mov r2, r3
800b6c2: 4b53 ldr r3, [pc, #332] ; (800b810 <Display+0x5818>)
800b6c4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b6c8: 2303 movs r3, #3
800b6ca: 2164 movs r1, #100 ; 0x64
800b6cc: 20a8 movs r0, #168 ; 0xa8
800b6ce: f7f9 fc05 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b6d2: f001 bc36 b.w 800cf42 <Display+0x6f4a>
if(ipt3 == 1)
800b6d6: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b6da: b2db uxtb r3, r3
800b6dc: 2b01 cmp r3, #1
800b6de: d148 bne.n 800b772 <Display+0x577a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b6e0: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b6e4: b2db uxtb r3, r3
800b6e6: 461a mov r2, r3
800b6e8: 4b49 ldr r3, [pc, #292] ; (800b810 <Display+0x5818>)
800b6ea: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b6ee: 2303 movs r3, #3
800b6f0: 2164 movs r1, #100 ; 0x64
800b6f2: 208c movs r0, #140 ; 0x8c
800b6f4: f7f9 fbf2 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b6f8: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b6fc: b2db uxtb r3, r3
800b6fe: 461a mov r2, r3
800b700: 4b43 ldr r3, [pc, #268] ; (800b810 <Display+0x5818>)
800b702: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b706: 2303 movs r3, #3
800b708: 2164 movs r1, #100 ; 0x64
800b70a: 2093 movs r0, #147 ; 0x93
800b70c: f7f9 fbe6 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b710: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b714: b2db uxtb r3, r3
800b716: 461a mov r2, r3
800b718: 4b3d ldr r3, [pc, #244] ; (800b810 <Display+0x5818>)
800b71a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b71e: 2303 movs r3, #3
800b720: 2164 movs r1, #100 ; 0x64
800b722: 209a movs r0, #154 ; 0x9a
800b724: f7f9 fbda bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b728: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b72c: b2db uxtb r3, r3
800b72e: 461a mov r2, r3
800b730: 4b37 ldr r3, [pc, #220] ; (800b810 <Display+0x5818>)
800b732: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b736: 2303 movs r3, #3
800b738: 2164 movs r1, #100 ; 0x64
800b73a: 20a1 movs r0, #161 ; 0xa1
800b73c: f7f9 fbce bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE);
800b740: 2303 movs r3, #3
800b742: 4a34 ldr r2, [pc, #208] ; (800b814 <Display+0x581c>)
800b744: 2164 movs r1, #100 ; 0x64
800b746: 20a8 movs r0, #168 ; 0xa8
800b748: f7f9 fbc8 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800b74c: 4b32 ldr r3, [pc, #200] ; (800b818 <Display+0x5820>)
800b74e: 681b ldr r3, [r3, #0]
800b750: 2b00 cmp r3, #0
800b752: f001 83f6 beq.w 800cf42 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b756: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b75a: b2db uxtb r3, r3
800b75c: 461a mov r2, r3
800b75e: 4b2c ldr r3, [pc, #176] ; (800b810 <Display+0x5818>)
800b760: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b764: 2303 movs r3, #3
800b766: 2164 movs r1, #100 ; 0x64
800b768: 20af movs r0, #175 ; 0xaf
800b76a: f7f9 fbb7 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b76e: f001 bbe8 b.w 800cf42 <Display+0x6f4a>
if(ipt3 == 2)
800b772: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b776: b2db uxtb r3, r3
800b778: 2b02 cmp r3, #2
800b77a: d151 bne.n 800b820 <Display+0x5828>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b77c: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b780: b2db uxtb r3, r3
800b782: 461a mov r2, r3
800b784: 4b22 ldr r3, [pc, #136] ; (800b810 <Display+0x5818>)
800b786: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b78a: 2303 movs r3, #3
800b78c: 2164 movs r1, #100 ; 0x64
800b78e: 208c movs r0, #140 ; 0x8c
800b790: f7f9 fba4 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b794: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b798: b2db uxtb r3, r3
800b79a: 461a mov r2, r3
800b79c: 4b1c ldr r3, [pc, #112] ; (800b810 <Display+0x5818>)
800b79e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b7a2: 2303 movs r3, #3
800b7a4: 2164 movs r1, #100 ; 0x64
800b7a6: 2093 movs r0, #147 ; 0x93
800b7a8: f7f9 fb98 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b7ac: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b7b0: b2db uxtb r3, r3
800b7b2: 461a mov r2, r3
800b7b4: 4b16 ldr r3, [pc, #88] ; (800b810 <Display+0x5818>)
800b7b6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b7ba: 2303 movs r3, #3
800b7bc: 2164 movs r1, #100 ; 0x64
800b7be: 209a movs r0, #154 ; 0x9a
800b7c0: f7f9 fb8c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE);
800b7c4: 2303 movs r3, #3
800b7c6: 4a13 ldr r2, [pc, #76] ; (800b814 <Display+0x581c>)
800b7c8: 2164 movs r1, #100 ; 0x64
800b7ca: 20a1 movs r0, #161 ; 0xa1
800b7cc: f7f9 fb86 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b7d0: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b7d4: b2db uxtb r3, r3
800b7d6: 461a mov r2, r3
800b7d8: 4b0d ldr r3, [pc, #52] ; (800b810 <Display+0x5818>)
800b7da: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b7de: 2303 movs r3, #3
800b7e0: 2164 movs r1, #100 ; 0x64
800b7e2: 20a8 movs r0, #168 ; 0xa8
800b7e4: f7f9 fb7a bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800b7e8: 4b0b ldr r3, [pc, #44] ; (800b818 <Display+0x5820>)
800b7ea: 681b ldr r3, [r3, #0]
800b7ec: 2b00 cmp r3, #0
800b7ee: f001 83a8 beq.w 800cf42 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b7f2: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b7f6: b2db uxtb r3, r3
800b7f8: 461a mov r2, r3
800b7fa: 4b05 ldr r3, [pc, #20] ; (800b810 <Display+0x5818>)
800b7fc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b800: 2303 movs r3, #3
800b802: 2164 movs r1, #100 ; 0x64
800b804: 20af movs r0, #175 ; 0xaf
800b806: f7f9 fb69 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b80a: f001 bb9a b.w 800cf42 <Display+0x6f4a>
800b80e: bf00 nop
800b810: 2002096c .word 0x2002096c
800b814: 08018150 .word 0x08018150
800b818: 2006ba78 .word 0x2006ba78
800b81c: 20020010 .word 0x20020010
if(ipt3 == 3)
800b820: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b824: b2db uxtb r3, r3
800b826: 2b03 cmp r3, #3
800b828: d148 bne.n 800b8bc <Display+0x58c4>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b82a: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b82e: b2db uxtb r3, r3
800b830: 461a mov r2, r3
800b832: 4bc4 ldr r3, [pc, #784] ; (800bb44 <Display+0x5b4c>)
800b834: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b838: 2303 movs r3, #3
800b83a: 2164 movs r1, #100 ; 0x64
800b83c: 208c movs r0, #140 ; 0x8c
800b83e: f7f9 fb4d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b842: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b846: b2db uxtb r3, r3
800b848: 461a mov r2, r3
800b84a: 4bbe ldr r3, [pc, #760] ; (800bb44 <Display+0x5b4c>)
800b84c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b850: 2303 movs r3, #3
800b852: 2164 movs r1, #100 ; 0x64
800b854: 2093 movs r0, #147 ; 0x93
800b856: f7f9 fb41 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE);
800b85a: 2303 movs r3, #3
800b85c: 4aba ldr r2, [pc, #744] ; (800bb48 <Display+0x5b50>)
800b85e: 2164 movs r1, #100 ; 0x64
800b860: 209a movs r0, #154 ; 0x9a
800b862: f7f9 fb3b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b866: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b86a: b2db uxtb r3, r3
800b86c: 461a mov r2, r3
800b86e: 4bb5 ldr r3, [pc, #724] ; (800bb44 <Display+0x5b4c>)
800b870: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b874: 2303 movs r3, #3
800b876: 2164 movs r1, #100 ; 0x64
800b878: 20a1 movs r0, #161 ; 0xa1
800b87a: f7f9 fb2f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b87e: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b882: b2db uxtb r3, r3
800b884: 461a mov r2, r3
800b886: 4baf ldr r3, [pc, #700] ; (800bb44 <Display+0x5b4c>)
800b888: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b88c: 2303 movs r3, #3
800b88e: 2164 movs r1, #100 ; 0x64
800b890: 20a8 movs r0, #168 ; 0xa8
800b892: f7f9 fb23 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800b896: 4bad ldr r3, [pc, #692] ; (800bb4c <Display+0x5b54>)
800b898: 681b ldr r3, [r3, #0]
800b89a: 2b00 cmp r3, #0
800b89c: f001 8351 beq.w 800cf42 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b8a0: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b8a4: b2db uxtb r3, r3
800b8a6: 461a mov r2, r3
800b8a8: 4ba6 ldr r3, [pc, #664] ; (800bb44 <Display+0x5b4c>)
800b8aa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b8ae: 2303 movs r3, #3
800b8b0: 2164 movs r1, #100 ; 0x64
800b8b2: 20af movs r0, #175 ; 0xaf
800b8b4: f7f9 fb12 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b8b8: f001 bb43 b.w 800cf42 <Display+0x6f4a>
if(ipt3 == 4)
800b8bc: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b8c0: b2db uxtb r3, r3
800b8c2: 2b04 cmp r3, #4
800b8c4: f041 833d bne.w 800cf42 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b8c8: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b8cc: b2db uxtb r3, r3
800b8ce: 461a mov r2, r3
800b8d0: 4b9c ldr r3, [pc, #624] ; (800bb44 <Display+0x5b4c>)
800b8d2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b8d6: 2303 movs r3, #3
800b8d8: 2164 movs r1, #100 ; 0x64
800b8da: 208c movs r0, #140 ; 0x8c
800b8dc: f7f9 fafe bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE);
800b8e0: 2303 movs r3, #3
800b8e2: 4a99 ldr r2, [pc, #612] ; (800bb48 <Display+0x5b50>)
800b8e4: 2164 movs r1, #100 ; 0x64
800b8e6: 2093 movs r0, #147 ; 0x93
800b8e8: f7f9 faf8 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b8ec: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b8f0: b2db uxtb r3, r3
800b8f2: 461a mov r2, r3
800b8f4: 4b93 ldr r3, [pc, #588] ; (800bb44 <Display+0x5b4c>)
800b8f6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b8fa: 2303 movs r3, #3
800b8fc: 2164 movs r1, #100 ; 0x64
800b8fe: 209a movs r0, #154 ; 0x9a
800b900: f7f9 faec bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b904: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b908: b2db uxtb r3, r3
800b90a: 461a mov r2, r3
800b90c: 4b8d ldr r3, [pc, #564] ; (800bb44 <Display+0x5b4c>)
800b90e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b912: 2303 movs r3, #3
800b914: 2164 movs r1, #100 ; 0x64
800b916: 20a1 movs r0, #161 ; 0xa1
800b918: f7f9 fae0 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b91c: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b920: b2db uxtb r3, r3
800b922: 461a mov r2, r3
800b924: 4b87 ldr r3, [pc, #540] ; (800bb44 <Display+0x5b4c>)
800b926: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b92a: 2303 movs r3, #3
800b92c: 2164 movs r1, #100 ; 0x64
800b92e: 20a8 movs r0, #168 ; 0xa8
800b930: f7f9 fad4 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800b934: 4b85 ldr r3, [pc, #532] ; (800bb4c <Display+0x5b54>)
800b936: 681b ldr r3, [r3, #0]
800b938: 2b00 cmp r3, #0
800b93a: f001 8302 beq.w 800cf42 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b93e: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b942: b2db uxtb r3, r3
800b944: 461a mov r2, r3
800b946: 4b7f ldr r3, [pc, #508] ; (800bb44 <Display+0x5b4c>)
800b948: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b94c: 2303 movs r3, #3
800b94e: 2164 movs r1, #100 ; 0x64
800b950: 20af movs r0, #175 ; 0xaf
800b952: f7f9 fac3 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b956: f001 baf4 b.w 800cf42 <Display+0x6f4a>
if(menupos == Kpt_3)
800b95a: 4b7d ldr r3, [pc, #500] ; (800bb50 <Display+0x5b58>)
800b95c: 781b ldrb r3, [r3, #0]
800b95e: b2db uxtb r3, r3
800b960: 2b17 cmp r3, #23
800b962: f041 82ee bne.w 800cf42 <Display+0x6f4a>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800b966: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b96a: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800b96e: f7f9 f9ef bl 8004d50 <LCD_SetColors>
if(!ipt3)
800b972: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b976: b2db uxtb r3, r3
800b978: 2b00 cmp r3, #0
800b97a: d148 bne.n 800ba0e <Display+0x5a16>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b97c: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b980: b2db uxtb r3, r3
800b982: 461a mov r2, r3
800b984: 4b6f ldr r3, [pc, #444] ; (800bb44 <Display+0x5b4c>)
800b986: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b98a: 2303 movs r3, #3
800b98c: 2164 movs r1, #100 ; 0x64
800b98e: 208c movs r0, #140 ; 0x8c
800b990: f7f9 faa4 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b994: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b998: b2db uxtb r3, r3
800b99a: 461a mov r2, r3
800b99c: 4b69 ldr r3, [pc, #420] ; (800bb44 <Display+0x5b4c>)
800b99e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b9a2: 2303 movs r3, #3
800b9a4: 2164 movs r1, #100 ; 0x64
800b9a6: 2093 movs r0, #147 ; 0x93
800b9a8: f7f9 fa98 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b9ac: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b9b0: b2db uxtb r3, r3
800b9b2: 461a mov r2, r3
800b9b4: 4b63 ldr r3, [pc, #396] ; (800bb44 <Display+0x5b4c>)
800b9b6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b9ba: 2303 movs r3, #3
800b9bc: 2164 movs r1, #100 ; 0x64
800b9be: 209a movs r0, #154 ; 0x9a
800b9c0: f7f9 fa8c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b9c4: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b9c8: b2db uxtb r3, r3
800b9ca: 461a mov r2, r3
800b9cc: 4b5d ldr r3, [pc, #372] ; (800bb44 <Display+0x5b4c>)
800b9ce: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b9d2: 2303 movs r3, #3
800b9d4: 2164 movs r1, #100 ; 0x64
800b9d6: 20a1 movs r0, #161 ; 0xa1
800b9d8: f7f9 fa80 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b9dc: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b9e0: b2db uxtb r3, r3
800b9e2: 461a mov r2, r3
800b9e4: 4b57 ldr r3, [pc, #348] ; (800bb44 <Display+0x5b4c>)
800b9e6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b9ea: 2303 movs r3, #3
800b9ec: 2164 movs r1, #100 ; 0x64
800b9ee: 20a8 movs r0, #168 ; 0xa8
800b9f0: f7f9 fa74 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800b9f4: 4b55 ldr r3, [pc, #340] ; (800bb4c <Display+0x5b54>)
800b9f6: 681b ldr r3, [r3, #0]
800b9f8: 2b00 cmp r3, #0
800b9fa: f001 82a2 beq.w 800cf42 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140+35, 100, ".", LEFT_MODE);
800b9fe: 2303 movs r3, #3
800ba00: 4a51 ldr r2, [pc, #324] ; (800bb48 <Display+0x5b50>)
800ba02: 2164 movs r1, #100 ; 0x64
800ba04: 20af movs r0, #175 ; 0xaf
800ba06: f7f9 fa69 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800ba0a: f001 ba9a b.w 800cf42 <Display+0x6f4a>
if(ipt3 == 1)
800ba0e: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800ba12: b2db uxtb r3, r3
800ba14: 2b01 cmp r3, #1
800ba16: d147 bne.n 800baa8 <Display+0x5ab0>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800ba18: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800ba1c: b2db uxtb r3, r3
800ba1e: 461a mov r2, r3
800ba20: 4b48 ldr r3, [pc, #288] ; (800bb44 <Display+0x5b4c>)
800ba22: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ba26: 2303 movs r3, #3
800ba28: 2164 movs r1, #100 ; 0x64
800ba2a: 208c movs r0, #140 ; 0x8c
800ba2c: f7f9 fa56 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800ba30: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800ba34: b2db uxtb r3, r3
800ba36: 461a mov r2, r3
800ba38: 4b42 ldr r3, [pc, #264] ; (800bb44 <Display+0x5b4c>)
800ba3a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ba3e: 2303 movs r3, #3
800ba40: 2164 movs r1, #100 ; 0x64
800ba42: 2093 movs r0, #147 ; 0x93
800ba44: f7f9 fa4a bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800ba48: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800ba4c: b2db uxtb r3, r3
800ba4e: 461a mov r2, r3
800ba50: 4b3c ldr r3, [pc, #240] ; (800bb44 <Display+0x5b4c>)
800ba52: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ba56: 2303 movs r3, #3
800ba58: 2164 movs r1, #100 ; 0x64
800ba5a: 209a movs r0, #154 ; 0x9a
800ba5c: f7f9 fa3e bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800ba60: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800ba64: b2db uxtb r3, r3
800ba66: 461a mov r2, r3
800ba68: 4b36 ldr r3, [pc, #216] ; (800bb44 <Display+0x5b4c>)
800ba6a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ba6e: 2303 movs r3, #3
800ba70: 2164 movs r1, #100 ; 0x64
800ba72: 20a1 movs r0, #161 ; 0xa1
800ba74: f7f9 fa32 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800ba78: 4b34 ldr r3, [pc, #208] ; (800bb4c <Display+0x5b54>)
800ba7a: 681b ldr r3, [r3, #0]
800ba7c: 2b00 cmp r3, #0
800ba7e: d005 beq.n 800ba8c <Display+0x5a94>
BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE);
800ba80: 2303 movs r3, #3
800ba82: 4a31 ldr r2, [pc, #196] ; (800bb48 <Display+0x5b50>)
800ba84: 2164 movs r1, #100 ; 0x64
800ba86: 20a8 movs r0, #168 ; 0xa8
800ba88: f7f9 fa28 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800ba8c: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800ba90: b2db uxtb r3, r3
800ba92: 461a mov r2, r3
800ba94: 4b2b ldr r3, [pc, #172] ; (800bb44 <Display+0x5b4c>)
800ba96: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ba9a: 2303 movs r3, #3
800ba9c: 2164 movs r1, #100 ; 0x64
800ba9e: 20af movs r0, #175 ; 0xaf
800baa0: f7f9 fa1c bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800baa4: f001 ba4d b.w 800cf42 <Display+0x6f4a>
if(ipt3 == 2)
800baa8: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800baac: b2db uxtb r3, r3
800baae: 2b02 cmp r3, #2
800bab0: d150 bne.n 800bb54 <Display+0x5b5c>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800bab2: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800bab6: b2db uxtb r3, r3
800bab8: 461a mov r2, r3
800baba: 4b22 ldr r3, [pc, #136] ; (800bb44 <Display+0x5b4c>)
800babc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bac0: 2303 movs r3, #3
800bac2: 2164 movs r1, #100 ; 0x64
800bac4: 208c movs r0, #140 ; 0x8c
800bac6: f7f9 fa09 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800baca: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800bace: b2db uxtb r3, r3
800bad0: 461a mov r2, r3
800bad2: 4b1c ldr r3, [pc, #112] ; (800bb44 <Display+0x5b4c>)
800bad4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bad8: 2303 movs r3, #3
800bada: 2164 movs r1, #100 ; 0x64
800badc: 2093 movs r0, #147 ; 0x93
800bade: f7f9 f9fd bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800bae2: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800bae6: b2db uxtb r3, r3
800bae8: 461a mov r2, r3
800baea: 4b16 ldr r3, [pc, #88] ; (800bb44 <Display+0x5b4c>)
800baec: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800baf0: 2303 movs r3, #3
800baf2: 2164 movs r1, #100 ; 0x64
800baf4: 209a movs r0, #154 ; 0x9a
800baf6: f7f9 f9f1 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800bafa: 4b14 ldr r3, [pc, #80] ; (800bb4c <Display+0x5b54>)
800bafc: 681b ldr r3, [r3, #0]
800bafe: 2b00 cmp r3, #0
800bb00: d005 beq.n 800bb0e <Display+0x5b16>
BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE);
800bb02: 2303 movs r3, #3
800bb04: 4a10 ldr r2, [pc, #64] ; (800bb48 <Display+0x5b50>)
800bb06: 2164 movs r1, #100 ; 0x64
800bb08: 20a1 movs r0, #161 ; 0xa1
800bb0a: f7f9 f9e7 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800bb0e: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800bb12: b2db uxtb r3, r3
800bb14: 461a mov r2, r3
800bb16: 4b0b ldr r3, [pc, #44] ; (800bb44 <Display+0x5b4c>)
800bb18: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bb1c: 2303 movs r3, #3
800bb1e: 2164 movs r1, #100 ; 0x64
800bb20: 20a8 movs r0, #168 ; 0xa8
800bb22: f7f9 f9db bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800bb26: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800bb2a: b2db uxtb r3, r3
800bb2c: 461a mov r2, r3
800bb2e: 4b05 ldr r3, [pc, #20] ; (800bb44 <Display+0x5b4c>)
800bb30: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bb34: 2303 movs r3, #3
800bb36: 2164 movs r1, #100 ; 0x64
800bb38: 20af movs r0, #175 ; 0xaf
800bb3a: f7f9 f9cf bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800bb3e: f001 ba00 b.w 800cf42 <Display+0x6f4a>
800bb42: bf00 nop
800bb44: 2002096c .word 0x2002096c
800bb48: 08018150 .word 0x08018150
800bb4c: 2006ba78 .word 0x2006ba78
800bb50: 20020010 .word 0x20020010
if(ipt3 == 3)
800bb54: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800bb58: b2db uxtb r3, r3
800bb5a: 2b03 cmp r3, #3
800bb5c: d147 bne.n 800bbee <Display+0x5bf6>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800bb5e: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800bb62: b2db uxtb r3, r3
800bb64: 461a mov r2, r3
800bb66: 4bc2 ldr r3, [pc, #776] ; (800be70 <Display+0x5e78>)
800bb68: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bb6c: 2303 movs r3, #3
800bb6e: 2164 movs r1, #100 ; 0x64
800bb70: 208c movs r0, #140 ; 0x8c
800bb72: f7f9 f9b3 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800bb76: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800bb7a: b2db uxtb r3, r3
800bb7c: 461a mov r2, r3
800bb7e: 4bbc ldr r3, [pc, #752] ; (800be70 <Display+0x5e78>)
800bb80: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bb84: 2303 movs r3, #3
800bb86: 2164 movs r1, #100 ; 0x64
800bb88: 2093 movs r0, #147 ; 0x93
800bb8a: f7f9 f9a7 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800bb8e: 4bb9 ldr r3, [pc, #740] ; (800be74 <Display+0x5e7c>)
800bb90: 681b ldr r3, [r3, #0]
800bb92: 2b00 cmp r3, #0
800bb94: d005 beq.n 800bba2 <Display+0x5baa>
BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE);
800bb96: 2303 movs r3, #3
800bb98: 4ab7 ldr r2, [pc, #732] ; (800be78 <Display+0x5e80>)
800bb9a: 2164 movs r1, #100 ; 0x64
800bb9c: 209a movs r0, #154 ; 0x9a
800bb9e: f7f9 f99d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800bba2: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800bba6: b2db uxtb r3, r3
800bba8: 461a mov r2, r3
800bbaa: 4bb1 ldr r3, [pc, #708] ; (800be70 <Display+0x5e78>)
800bbac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bbb0: 2303 movs r3, #3
800bbb2: 2164 movs r1, #100 ; 0x64
800bbb4: 20a1 movs r0, #161 ; 0xa1
800bbb6: f7f9 f991 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800bbba: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800bbbe: b2db uxtb r3, r3
800bbc0: 461a mov r2, r3
800bbc2: 4bab ldr r3, [pc, #684] ; (800be70 <Display+0x5e78>)
800bbc4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bbc8: 2303 movs r3, #3
800bbca: 2164 movs r1, #100 ; 0x64
800bbcc: 20a8 movs r0, #168 ; 0xa8
800bbce: f7f9 f985 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800bbd2: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800bbd6: b2db uxtb r3, r3
800bbd8: 461a mov r2, r3
800bbda: 4ba5 ldr r3, [pc, #660] ; (800be70 <Display+0x5e78>)
800bbdc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bbe0: 2303 movs r3, #3
800bbe2: 2164 movs r1, #100 ; 0x64
800bbe4: 20af movs r0, #175 ; 0xaf
800bbe6: f7f9 f979 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800bbea: f001 b9aa b.w 800cf42 <Display+0x6f4a>
if(ipt3 == 4)
800bbee: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800bbf2: b2db uxtb r3, r3
800bbf4: 2b04 cmp r3, #4
800bbf6: f041 81a4 bne.w 800cf42 <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800bbfa: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800bbfe: b2db uxtb r3, r3
800bc00: 461a mov r2, r3
800bc02: 4b9b ldr r3, [pc, #620] ; (800be70 <Display+0x5e78>)
800bc04: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bc08: 2303 movs r3, #3
800bc0a: 2164 movs r1, #100 ; 0x64
800bc0c: 208c movs r0, #140 ; 0x8c
800bc0e: f7f9 f965 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800bc12: 4b98 ldr r3, [pc, #608] ; (800be74 <Display+0x5e7c>)
800bc14: 681b ldr r3, [r3, #0]
800bc16: 2b00 cmp r3, #0
800bc18: d005 beq.n 800bc26 <Display+0x5c2e>
BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE);
800bc1a: 2303 movs r3, #3
800bc1c: 4a96 ldr r2, [pc, #600] ; (800be78 <Display+0x5e80>)
800bc1e: 2164 movs r1, #100 ; 0x64
800bc20: 2093 movs r0, #147 ; 0x93
800bc22: f7f9 f95b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE);
800bc26: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800bc2a: b2db uxtb r3, r3
800bc2c: 461a mov r2, r3
800bc2e: 4b90 ldr r3, [pc, #576] ; (800be70 <Display+0x5e78>)
800bc30: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bc34: 2303 movs r3, #3
800bc36: 2164 movs r1, #100 ; 0x64
800bc38: 209a movs r0, #154 ; 0x9a
800bc3a: f7f9 f94f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800bc3e: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800bc42: b2db uxtb r3, r3
800bc44: 461a mov r2, r3
800bc46: 4b8a ldr r3, [pc, #552] ; (800be70 <Display+0x5e78>)
800bc48: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bc4c: 2303 movs r3, #3
800bc4e: 2164 movs r1, #100 ; 0x64
800bc50: 20a1 movs r0, #161 ; 0xa1
800bc52: f7f9 f943 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800bc56: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800bc5a: b2db uxtb r3, r3
800bc5c: 461a mov r2, r3
800bc5e: 4b84 ldr r3, [pc, #528] ; (800be70 <Display+0x5e78>)
800bc60: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bc64: 2303 movs r3, #3
800bc66: 2164 movs r1, #100 ; 0x64
800bc68: 20a8 movs r0, #168 ; 0xa8
800bc6a: f7f9 f937 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800bc6e: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800bc72: b2db uxtb r3, r3
800bc74: 461a mov r2, r3
800bc76: 4b7e ldr r3, [pc, #504] ; (800be70 <Display+0x5e78>)
800bc78: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bc7c: 2303 movs r3, #3
800bc7e: 2164 movs r1, #100 ; 0x64
800bc80: 20af movs r0, #175 ; 0xaf
800bc82: f7f9 f92b bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800bc86: f001 b95c b.w 800cf42 <Display+0x6f4a>
if(menupos >= Kikdt_4 && menupos <= Kpt_4)
800bc8a: 4b7c ldr r3, [pc, #496] ; (800be7c <Display+0x5e84>)
800bc8c: 781b ldrb r3, [r3, #0]
800bc8e: b2db uxtb r3, r3
800bc90: 2b19 cmp r3, #25
800bc92: f241 8663 bls.w 800d95c <Display+0x7964>
800bc96: 4b79 ldr r3, [pc, #484] ; (800be7c <Display+0x5e84>)
800bc98: 781b ldrb r3, [r3, #0]
800bc9a: b2db uxtb r3, r3
800bc9c: 2b1f cmp r3, #31
800bc9e: f201 865d bhi.w 800d95c <Display+0x7964>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800bca2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800bca6: 4876 ldr r0, [pc, #472] ; (800be80 <Display+0x5e88>)
800bca8: f7f9 f852 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
800bcac: f507 728e add.w r2, r7, #284 ; 0x11c
800bcb0: 2303 movs r3, #3
800bcb2: 213c movs r1, #60 ; 0x3c
800bcb4: 208c movs r0, #140 ; 0x8c
800bcb6: f7f9 f911 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
800bcba: f107 02e0 add.w r2, r7, #224 ; 0xe0
800bcbe: 2303 movs r3, #3
800bcc0: 2150 movs r1, #80 ; 0x50
800bcc2: 208c movs r0, #140 ; 0x8c
800bcc4: f7f9 f90a bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
800bcc8: f107 02a4 add.w r2, r7, #164 ; 0xa4
800bccc: 2303 movs r3, #3
800bcce: 2164 movs r1, #100 ; 0x64
800bcd0: 208c movs r0, #140 ; 0x8c
800bcd2: f7f9 f903 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_4)
800bcd6: 4b69 ldr r3, [pc, #420] ; (800be7c <Display+0x5e84>)
800bcd8: 781b ldrb r3, [r3, #0]
800bcda: b2db uxtb r3, r3
800bcdc: 2b1a cmp r3, #26
800bcde: f040 814c bne.w 800bf7a <Display+0x5f82>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800bce2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800bce6: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800bcea: f7f9 f831 bl 8004d50 <LCD_SetColors>
if(blk)
800bcee: 4b61 ldr r3, [pc, #388] ; (800be74 <Display+0x5e7c>)
800bcf0: 681b ldr r3, [r3, #0]
800bcf2: 2b00 cmp r3, #0
800bcf4: d00b beq.n 800bd0e <Display+0x5d16>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800bcf6: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800bcfa: b2db uxtb r3, r3
800bcfc: 461a mov r2, r3
800bcfe: 4b5c ldr r3, [pc, #368] ; (800be70 <Display+0x5e78>)
800bd00: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bd04: 2303 movs r3, #3
800bd06: 2178 movs r1, #120 ; 0x78
800bd08: 208c movs r0, #140 ; 0x8c
800bd0a: f7f9 f8e7 bl 8004edc <BSP_LCD_DisplayStringAt>
if(!ipt4)
800bd0e: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800bd12: b2db uxtb r3, r3
800bd14: 2b00 cmp r3, #0
800bd16: d131 bne.n 800bd7c <Display+0x5d84>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800bd18: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800bd1c: b2db uxtb r3, r3
800bd1e: 461a mov r2, r3
800bd20: 4b53 ldr r3, [pc, #332] ; (800be70 <Display+0x5e78>)
800bd22: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bd26: 2303 movs r3, #3
800bd28: 2178 movs r1, #120 ; 0x78
800bd2a: 2093 movs r0, #147 ; 0x93
800bd2c: f7f9 f8d6 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800bd30: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800bd34: b2db uxtb r3, r3
800bd36: 461a mov r2, r3
800bd38: 4b4d ldr r3, [pc, #308] ; (800be70 <Display+0x5e78>)
800bd3a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bd3e: 2303 movs r3, #3
800bd40: 2178 movs r1, #120 ; 0x78
800bd42: 209a movs r0, #154 ; 0x9a
800bd44: f7f9 f8ca bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800bd48: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800bd4c: b2db uxtb r3, r3
800bd4e: 461a mov r2, r3
800bd50: 4b47 ldr r3, [pc, #284] ; (800be70 <Display+0x5e78>)
800bd52: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bd56: 2303 movs r3, #3
800bd58: 2178 movs r1, #120 ; 0x78
800bd5a: 20a1 movs r0, #161 ; 0xa1
800bd5c: f7f9 f8be bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE);
800bd60: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800bd64: b2db uxtb r3, r3
800bd66: 461a mov r2, r3
800bd68: 4b41 ldr r3, [pc, #260] ; (800be70 <Display+0x5e78>)
800bd6a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bd6e: 2303 movs r3, #3
800bd70: 2178 movs r1, #120 ; 0x78
800bd72: 20a8 movs r0, #168 ; 0xa8
800bd74: f7f9 f8b2 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800bd78: f001 bdf0 b.w 800d95c <Display+0x7964>
if(ipt4 == 1)
800bd7c: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800bd80: b2db uxtb r3, r3
800bd82: 2b01 cmp r3, #1
800bd84: d137 bne.n 800bdf6 <Display+0x5dfe>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800bd86: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800bd8a: b2db uxtb r3, r3
800bd8c: 461a mov r2, r3
800bd8e: 4b38 ldr r3, [pc, #224] ; (800be70 <Display+0x5e78>)
800bd90: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bd94: 2303 movs r3, #3
800bd96: 2178 movs r1, #120 ; 0x78
800bd98: 2093 movs r0, #147 ; 0x93
800bd9a: f7f9 f89f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800bd9e: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800bda2: b2db uxtb r3, r3
800bda4: 461a mov r2, r3
800bda6: 4b32 ldr r3, [pc, #200] ; (800be70 <Display+0x5e78>)
800bda8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bdac: 2303 movs r3, #3
800bdae: 2178 movs r1, #120 ; 0x78
800bdb0: 209a movs r0, #154 ; 0x9a
800bdb2: f7f9 f893 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800bdb6: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800bdba: b2db uxtb r3, r3
800bdbc: 461a mov r2, r3
800bdbe: 4b2c ldr r3, [pc, #176] ; (800be70 <Display+0x5e78>)
800bdc0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bdc4: 2303 movs r3, #3
800bdc6: 2178 movs r1, #120 ; 0x78
800bdc8: 20a1 movs r0, #161 ; 0xa1
800bdca: f7f9 f887 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE);
800bdce: 2303 movs r3, #3
800bdd0: 4a29 ldr r2, [pc, #164] ; (800be78 <Display+0x5e80>)
800bdd2: 2178 movs r1, #120 ; 0x78
800bdd4: 20a8 movs r0, #168 ; 0xa8
800bdd6: f7f9 f881 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800bdda: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800bdde: b2db uxtb r3, r3
800bde0: 461a mov r2, r3
800bde2: 4b23 ldr r3, [pc, #140] ; (800be70 <Display+0x5e78>)
800bde4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bde8: 2303 movs r3, #3
800bdea: 2178 movs r1, #120 ; 0x78
800bdec: 20af movs r0, #175 ; 0xaf
800bdee: f7f9 f875 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800bdf2: f001 bdb3 b.w 800d95c <Display+0x7964>
if(ipt4 == 2)
800bdf6: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800bdfa: b2db uxtb r3, r3
800bdfc: 2b02 cmp r3, #2
800bdfe: d141 bne.n 800be84 <Display+0x5e8c>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800be00: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800be04: b2db uxtb r3, r3
800be06: 461a mov r2, r3
800be08: 4b19 ldr r3, [pc, #100] ; (800be70 <Display+0x5e78>)
800be0a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800be0e: 2303 movs r3, #3
800be10: 2178 movs r1, #120 ; 0x78
800be12: 2093 movs r0, #147 ; 0x93
800be14: f7f9 f862 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800be18: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800be1c: b2db uxtb r3, r3
800be1e: 461a mov r2, r3
800be20: 4b13 ldr r3, [pc, #76] ; (800be70 <Display+0x5e78>)
800be22: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800be26: 2303 movs r3, #3
800be28: 2178 movs r1, #120 ; 0x78
800be2a: 209a movs r0, #154 ; 0x9a
800be2c: f7f9 f856 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE);
800be30: 2303 movs r3, #3
800be32: 4a11 ldr r2, [pc, #68] ; (800be78 <Display+0x5e80>)
800be34: 2178 movs r1, #120 ; 0x78
800be36: 20a1 movs r0, #161 ; 0xa1
800be38: f7f9 f850 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800be3c: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800be40: b2db uxtb r3, r3
800be42: 461a mov r2, r3
800be44: 4b0a ldr r3, [pc, #40] ; (800be70 <Display+0x5e78>)
800be46: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800be4a: 2303 movs r3, #3
800be4c: 2178 movs r1, #120 ; 0x78
800be4e: 20a8 movs r0, #168 ; 0xa8
800be50: f7f9 f844 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800be54: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800be58: b2db uxtb r3, r3
800be5a: 461a mov r2, r3
800be5c: 4b04 ldr r3, [pc, #16] ; (800be70 <Display+0x5e78>)
800be5e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800be62: 2303 movs r3, #3
800be64: 2178 movs r1, #120 ; 0x78
800be66: 20af movs r0, #175 ; 0xaf
800be68: f7f9 f838 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800be6c: f001 bd76 b.w 800d95c <Display+0x7964>
800be70: 2002096c .word 0x2002096c
800be74: 2006ba78 .word 0x2006ba78
800be78: 08018150 .word 0x08018150
800be7c: 20020010 .word 0x20020010
800be80: ffd8aa57 .word 0xffd8aa57
if(ipt4 == 3)
800be84: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800be88: b2db uxtb r3, r3
800be8a: 2b03 cmp r3, #3
800be8c: d137 bne.n 800befe <Display+0x5f06>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800be8e: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800be92: b2db uxtb r3, r3
800be94: 461a mov r2, r3
800be96: 4baf ldr r3, [pc, #700] ; (800c154 <Display+0x615c>)
800be98: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800be9c: 2303 movs r3, #3
800be9e: 2178 movs r1, #120 ; 0x78
800bea0: 2093 movs r0, #147 ; 0x93
800bea2: f7f9 f81b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE);
800bea6: 2303 movs r3, #3
800bea8: 4aab ldr r2, [pc, #684] ; (800c158 <Display+0x6160>)
800beaa: 2178 movs r1, #120 ; 0x78
800beac: 209a movs r0, #154 ; 0x9a
800beae: f7f9 f815 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800beb2: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800beb6: b2db uxtb r3, r3
800beb8: 461a mov r2, r3
800beba: 4ba6 ldr r3, [pc, #664] ; (800c154 <Display+0x615c>)
800bebc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bec0: 2303 movs r3, #3
800bec2: 2178 movs r1, #120 ; 0x78
800bec4: 20a1 movs r0, #161 ; 0xa1
800bec6: f7f9 f809 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800beca: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800bece: b2db uxtb r3, r3
800bed0: 461a mov r2, r3
800bed2: 4ba0 ldr r3, [pc, #640] ; (800c154 <Display+0x615c>)
800bed4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bed8: 2303 movs r3, #3
800beda: 2178 movs r1, #120 ; 0x78
800bedc: 20a8 movs r0, #168 ; 0xa8
800bede: f7f8 fffd bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800bee2: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800bee6: b2db uxtb r3, r3
800bee8: 461a mov r2, r3
800beea: 4b9a ldr r3, [pc, #616] ; (800c154 <Display+0x615c>)
800beec: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bef0: 2303 movs r3, #3
800bef2: 2178 movs r1, #120 ; 0x78
800bef4: 20af movs r0, #175 ; 0xaf
800bef6: f7f8 fff1 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800befa: f001 bd2f b.w 800d95c <Display+0x7964>
if(ipt4 == 4)
800befe: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800bf02: b2db uxtb r3, r3
800bf04: 2b04 cmp r3, #4
800bf06: f041 8529 bne.w 800d95c <Display+0x7964>
BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE);
800bf0a: 2303 movs r3, #3
800bf0c: 4a92 ldr r2, [pc, #584] ; (800c158 <Display+0x6160>)
800bf0e: 2178 movs r1, #120 ; 0x78
800bf10: 2093 movs r0, #147 ; 0x93
800bf12: f7f8 ffe3 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE);
800bf16: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800bf1a: b2db uxtb r3, r3
800bf1c: 461a mov r2, r3
800bf1e: 4b8d ldr r3, [pc, #564] ; (800c154 <Display+0x615c>)
800bf20: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bf24: 2303 movs r3, #3
800bf26: 2178 movs r1, #120 ; 0x78
800bf28: 209a movs r0, #154 ; 0x9a
800bf2a: f7f8 ffd7 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800bf2e: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800bf32: b2db uxtb r3, r3
800bf34: 461a mov r2, r3
800bf36: 4b87 ldr r3, [pc, #540] ; (800c154 <Display+0x615c>)
800bf38: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bf3c: 2303 movs r3, #3
800bf3e: 2178 movs r1, #120 ; 0x78
800bf40: 20a1 movs r0, #161 ; 0xa1
800bf42: f7f8 ffcb bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800bf46: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800bf4a: b2db uxtb r3, r3
800bf4c: 461a mov r2, r3
800bf4e: 4b81 ldr r3, [pc, #516] ; (800c154 <Display+0x615c>)
800bf50: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bf54: 2303 movs r3, #3
800bf56: 2178 movs r1, #120 ; 0x78
800bf58: 20a8 movs r0, #168 ; 0xa8
800bf5a: f7f8 ffbf bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800bf5e: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800bf62: b2db uxtb r3, r3
800bf64: 461a mov r2, r3
800bf66: 4b7b ldr r3, [pc, #492] ; (800c154 <Display+0x615c>)
800bf68: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bf6c: 2303 movs r3, #3
800bf6e: 2178 movs r1, #120 ; 0x78
800bf70: 20af movs r0, #175 ; 0xaf
800bf72: f7f8 ffb3 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800bf76: f001 bcf1 b.w 800d95c <Display+0x7964>
if(menupos == Kikt_4)
800bf7a: 4b78 ldr r3, [pc, #480] ; (800c15c <Display+0x6164>)
800bf7c: 781b ldrb r3, [r3, #0]
800bf7e: b2db uxtb r3, r3
800bf80: 2b1b cmp r3, #27
800bf82: f040 818a bne.w 800c29a <Display+0x62a2>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800bf86: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800bf8a: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800bf8e: f7f8 fedf bl 8004d50 <LCD_SetColors>
if(!ipt4)
800bf92: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800bf96: b2db uxtb r3, r3
800bf98: 2b00 cmp r3, #0
800bf9a: d141 bne.n 800c020 <Display+0x6028>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800bf9c: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800bfa0: b2db uxtb r3, r3
800bfa2: 461a mov r2, r3
800bfa4: 4b6b ldr r3, [pc, #428] ; (800c154 <Display+0x615c>)
800bfa6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bfaa: 2303 movs r3, #3
800bfac: 2178 movs r1, #120 ; 0x78
800bfae: 208c movs r0, #140 ; 0x8c
800bfb0: f7f8 ff94 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800bfb4: 4b6a ldr r3, [pc, #424] ; (800c160 <Display+0x6168>)
800bfb6: 681b ldr r3, [r3, #0]
800bfb8: 2b00 cmp r3, #0
800bfba: d00b beq.n 800bfd4 <Display+0x5fdc>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800bfbc: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800bfc0: b2db uxtb r3, r3
800bfc2: 461a mov r2, r3
800bfc4: 4b63 ldr r3, [pc, #396] ; (800c154 <Display+0x615c>)
800bfc6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bfca: 2303 movs r3, #3
800bfcc: 2178 movs r1, #120 ; 0x78
800bfce: 2093 movs r0, #147 ; 0x93
800bfd0: f7f8 ff84 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800bfd4: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800bfd8: b2db uxtb r3, r3
800bfda: 461a mov r2, r3
800bfdc: 4b5d ldr r3, [pc, #372] ; (800c154 <Display+0x615c>)
800bfde: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bfe2: 2303 movs r3, #3
800bfe4: 2178 movs r1, #120 ; 0x78
800bfe6: 209a movs r0, #154 ; 0x9a
800bfe8: f7f8 ff78 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800bfec: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800bff0: b2db uxtb r3, r3
800bff2: 461a mov r2, r3
800bff4: 4b57 ldr r3, [pc, #348] ; (800c154 <Display+0x615c>)
800bff6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bffa: 2303 movs r3, #3
800bffc: 2178 movs r1, #120 ; 0x78
800bffe: 20a1 movs r0, #161 ; 0xa1
800c000: f7f8 ff6c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c004: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c008: b2db uxtb r3, r3
800c00a: 461a mov r2, r3
800c00c: 4b51 ldr r3, [pc, #324] ; (800c154 <Display+0x615c>)
800c00e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c012: 2303 movs r3, #3
800c014: 2178 movs r1, #120 ; 0x78
800c016: 20a8 movs r0, #168 ; 0xa8
800c018: f7f8 ff60 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800c01c: f001 bc9e b.w 800d95c <Display+0x7964>
if(ipt4 == 1)
800c020: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c024: b2db uxtb r3, r3
800c026: 2b01 cmp r3, #1
800c028: d147 bne.n 800c0ba <Display+0x60c2>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c02a: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c02e: b2db uxtb r3, r3
800c030: 461a mov r2, r3
800c032: 4b48 ldr r3, [pc, #288] ; (800c154 <Display+0x615c>)
800c034: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c038: 2303 movs r3, #3
800c03a: 2178 movs r1, #120 ; 0x78
800c03c: 208c movs r0, #140 ; 0x8c
800c03e: f7f8 ff4d bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800c042: 4b47 ldr r3, [pc, #284] ; (800c160 <Display+0x6168>)
800c044: 681b ldr r3, [r3, #0]
800c046: 2b00 cmp r3, #0
800c048: d00b beq.n 800c062 <Display+0x606a>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c04a: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c04e: b2db uxtb r3, r3
800c050: 461a mov r2, r3
800c052: 4b40 ldr r3, [pc, #256] ; (800c154 <Display+0x615c>)
800c054: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c058: 2303 movs r3, #3
800c05a: 2178 movs r1, #120 ; 0x78
800c05c: 2093 movs r0, #147 ; 0x93
800c05e: f7f8 ff3d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c062: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c066: b2db uxtb r3, r3
800c068: 461a mov r2, r3
800c06a: 4b3a ldr r3, [pc, #232] ; (800c154 <Display+0x615c>)
800c06c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c070: 2303 movs r3, #3
800c072: 2178 movs r1, #120 ; 0x78
800c074: 209a movs r0, #154 ; 0x9a
800c076: f7f8 ff31 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c07a: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c07e: b2db uxtb r3, r3
800c080: 461a mov r2, r3
800c082: 4b34 ldr r3, [pc, #208] ; (800c154 <Display+0x615c>)
800c084: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c088: 2303 movs r3, #3
800c08a: 2178 movs r1, #120 ; 0x78
800c08c: 20a1 movs r0, #161 ; 0xa1
800c08e: f7f8 ff25 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE);
800c092: 2303 movs r3, #3
800c094: 4a30 ldr r2, [pc, #192] ; (800c158 <Display+0x6160>)
800c096: 2178 movs r1, #120 ; 0x78
800c098: 20a8 movs r0, #168 ; 0xa8
800c09a: f7f8 ff1f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c09e: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c0a2: b2db uxtb r3, r3
800c0a4: 461a mov r2, r3
800c0a6: 4b2b ldr r3, [pc, #172] ; (800c154 <Display+0x615c>)
800c0a8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c0ac: 2303 movs r3, #3
800c0ae: 2178 movs r1, #120 ; 0x78
800c0b0: 20af movs r0, #175 ; 0xaf
800c0b2: f7f8 ff13 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800c0b6: f001 bc51 b.w 800d95c <Display+0x7964>
if(ipt4 == 2)
800c0ba: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c0be: b2db uxtb r3, r3
800c0c0: 2b02 cmp r3, #2
800c0c2: d14f bne.n 800c164 <Display+0x616c>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c0c4: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c0c8: b2db uxtb r3, r3
800c0ca: 461a mov r2, r3
800c0cc: 4b21 ldr r3, [pc, #132] ; (800c154 <Display+0x615c>)
800c0ce: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c0d2: 2303 movs r3, #3
800c0d4: 2178 movs r1, #120 ; 0x78
800c0d6: 208c movs r0, #140 ; 0x8c
800c0d8: f7f8 ff00 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800c0dc: 4b20 ldr r3, [pc, #128] ; (800c160 <Display+0x6168>)
800c0de: 681b ldr r3, [r3, #0]
800c0e0: 2b00 cmp r3, #0
800c0e2: d00b beq.n 800c0fc <Display+0x6104>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c0e4: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c0e8: b2db uxtb r3, r3
800c0ea: 461a mov r2, r3
800c0ec: 4b19 ldr r3, [pc, #100] ; (800c154 <Display+0x615c>)
800c0ee: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c0f2: 2303 movs r3, #3
800c0f4: 2178 movs r1, #120 ; 0x78
800c0f6: 2093 movs r0, #147 ; 0x93
800c0f8: f7f8 fef0 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c0fc: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c100: b2db uxtb r3, r3
800c102: 461a mov r2, r3
800c104: 4b13 ldr r3, [pc, #76] ; (800c154 <Display+0x615c>)
800c106: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c10a: 2303 movs r3, #3
800c10c: 2178 movs r1, #120 ; 0x78
800c10e: 209a movs r0, #154 ; 0x9a
800c110: f7f8 fee4 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE);
800c114: 2303 movs r3, #3
800c116: 4a10 ldr r2, [pc, #64] ; (800c158 <Display+0x6160>)
800c118: 2178 movs r1, #120 ; 0x78
800c11a: 20a1 movs r0, #161 ; 0xa1
800c11c: f7f8 fede bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c120: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c124: b2db uxtb r3, r3
800c126: 461a mov r2, r3
800c128: 4b0a ldr r3, [pc, #40] ; (800c154 <Display+0x615c>)
800c12a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c12e: 2303 movs r3, #3
800c130: 2178 movs r1, #120 ; 0x78
800c132: 20a8 movs r0, #168 ; 0xa8
800c134: f7f8 fed2 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c138: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c13c: b2db uxtb r3, r3
800c13e: 461a mov r2, r3
800c140: 4b04 ldr r3, [pc, #16] ; (800c154 <Display+0x615c>)
800c142: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c146: 2303 movs r3, #3
800c148: 2178 movs r1, #120 ; 0x78
800c14a: 20af movs r0, #175 ; 0xaf
800c14c: f7f8 fec6 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800c150: f001 bc04 b.w 800d95c <Display+0x7964>
800c154: 2002096c .word 0x2002096c
800c158: 08018150 .word 0x08018150
800c15c: 20020010 .word 0x20020010
800c160: 2006ba78 .word 0x2006ba78
if(ipt4 == 3)
800c164: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c168: b2db uxtb r3, r3
800c16a: 2b03 cmp r3, #3
800c16c: d147 bne.n 800c1fe <Display+0x6206>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c16e: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c172: b2db uxtb r3, r3
800c174: 461a mov r2, r3
800c176: 4bbf ldr r3, [pc, #764] ; (800c474 <Display+0x647c>)
800c178: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c17c: 2303 movs r3, #3
800c17e: 2178 movs r1, #120 ; 0x78
800c180: 208c movs r0, #140 ; 0x8c
800c182: f7f8 feab bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800c186: 4bbc ldr r3, [pc, #752] ; (800c478 <Display+0x6480>)
800c188: 681b ldr r3, [r3, #0]
800c18a: 2b00 cmp r3, #0
800c18c: d00b beq.n 800c1a6 <Display+0x61ae>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c18e: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c192: b2db uxtb r3, r3
800c194: 461a mov r2, r3
800c196: 4bb7 ldr r3, [pc, #732] ; (800c474 <Display+0x647c>)
800c198: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c19c: 2303 movs r3, #3
800c19e: 2178 movs r1, #120 ; 0x78
800c1a0: 2093 movs r0, #147 ; 0x93
800c1a2: f7f8 fe9b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE);
800c1a6: 2303 movs r3, #3
800c1a8: 4ab4 ldr r2, [pc, #720] ; (800c47c <Display+0x6484>)
800c1aa: 2178 movs r1, #120 ; 0x78
800c1ac: 209a movs r0, #154 ; 0x9a
800c1ae: f7f8 fe95 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c1b2: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c1b6: b2db uxtb r3, r3
800c1b8: 461a mov r2, r3
800c1ba: 4bae ldr r3, [pc, #696] ; (800c474 <Display+0x647c>)
800c1bc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c1c0: 2303 movs r3, #3
800c1c2: 2178 movs r1, #120 ; 0x78
800c1c4: 20a1 movs r0, #161 ; 0xa1
800c1c6: f7f8 fe89 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c1ca: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c1ce: b2db uxtb r3, r3
800c1d0: 461a mov r2, r3
800c1d2: 4ba8 ldr r3, [pc, #672] ; (800c474 <Display+0x647c>)
800c1d4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c1d8: 2303 movs r3, #3
800c1da: 2178 movs r1, #120 ; 0x78
800c1dc: 20a8 movs r0, #168 ; 0xa8
800c1de: f7f8 fe7d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c1e2: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c1e6: b2db uxtb r3, r3
800c1e8: 461a mov r2, r3
800c1ea: 4ba2 ldr r3, [pc, #648] ; (800c474 <Display+0x647c>)
800c1ec: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c1f0: 2303 movs r3, #3
800c1f2: 2178 movs r1, #120 ; 0x78
800c1f4: 20af movs r0, #175 ; 0xaf
800c1f6: f7f8 fe71 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800c1fa: f001 bbaf b.w 800d95c <Display+0x7964>
if(ipt4 == 4)
800c1fe: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c202: b2db uxtb r3, r3
800c204: 2b04 cmp r3, #4
800c206: f041 83a9 bne.w 800d95c <Display+0x7964>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c20a: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c20e: b2db uxtb r3, r3
800c210: 461a mov r2, r3
800c212: 4b98 ldr r3, [pc, #608] ; (800c474 <Display+0x647c>)
800c214: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c218: 2303 movs r3, #3
800c21a: 2178 movs r1, #120 ; 0x78
800c21c: 208c movs r0, #140 ; 0x8c
800c21e: f7f8 fe5d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE);
800c222: 2303 movs r3, #3
800c224: 4a95 ldr r2, [pc, #596] ; (800c47c <Display+0x6484>)
800c226: 2178 movs r1, #120 ; 0x78
800c228: 2093 movs r0, #147 ; 0x93
800c22a: f7f8 fe57 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800c22e: 4b92 ldr r3, [pc, #584] ; (800c478 <Display+0x6480>)
800c230: 681b ldr r3, [r3, #0]
800c232: 2b00 cmp r3, #0
800c234: d00b beq.n 800c24e <Display+0x6256>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c236: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c23a: b2db uxtb r3, r3
800c23c: 461a mov r2, r3
800c23e: 4b8d ldr r3, [pc, #564] ; (800c474 <Display+0x647c>)
800c240: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c244: 2303 movs r3, #3
800c246: 2178 movs r1, #120 ; 0x78
800c248: 209a movs r0, #154 ; 0x9a
800c24a: f7f8 fe47 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c24e: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c252: b2db uxtb r3, r3
800c254: 461a mov r2, r3
800c256: 4b87 ldr r3, [pc, #540] ; (800c474 <Display+0x647c>)
800c258: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c25c: 2303 movs r3, #3
800c25e: 2178 movs r1, #120 ; 0x78
800c260: 20a1 movs r0, #161 ; 0xa1
800c262: f7f8 fe3b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c266: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c26a: b2db uxtb r3, r3
800c26c: 461a mov r2, r3
800c26e: 4b81 ldr r3, [pc, #516] ; (800c474 <Display+0x647c>)
800c270: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c274: 2303 movs r3, #3
800c276: 2178 movs r1, #120 ; 0x78
800c278: 20a8 movs r0, #168 ; 0xa8
800c27a: f7f8 fe2f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c27e: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c282: b2db uxtb r3, r3
800c284: 461a mov r2, r3
800c286: 4b7b ldr r3, [pc, #492] ; (800c474 <Display+0x647c>)
800c288: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c28c: 2303 movs r3, #3
800c28e: 2178 movs r1, #120 ; 0x78
800c290: 20af movs r0, #175 ; 0xaf
800c292: f7f8 fe23 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800c296: f001 bb61 b.w 800d95c <Display+0x7964>
if(menupos == Kiks_4)
800c29a: 4b79 ldr r3, [pc, #484] ; (800c480 <Display+0x6488>)
800c29c: 781b ldrb r3, [r3, #0]
800c29e: b2db uxtb r3, r3
800c2a0: 2b1c cmp r3, #28
800c2a2: f040 818a bne.w 800c5ba <Display+0x65c2>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800c2a6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800c2aa: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800c2ae: f7f8 fd4f bl 8004d50 <LCD_SetColors>
if(!ipt4)
800c2b2: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c2b6: b2db uxtb r3, r3
800c2b8: 2b00 cmp r3, #0
800c2ba: d141 bne.n 800c340 <Display+0x6348>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c2bc: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c2c0: b2db uxtb r3, r3
800c2c2: 461a mov r2, r3
800c2c4: 4b6b ldr r3, [pc, #428] ; (800c474 <Display+0x647c>)
800c2c6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c2ca: 2303 movs r3, #3
800c2cc: 2178 movs r1, #120 ; 0x78
800c2ce: 208c movs r0, #140 ; 0x8c
800c2d0: f7f8 fe04 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c2d4: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c2d8: b2db uxtb r3, r3
800c2da: 461a mov r2, r3
800c2dc: 4b65 ldr r3, [pc, #404] ; (800c474 <Display+0x647c>)
800c2de: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c2e2: 2303 movs r3, #3
800c2e4: 2178 movs r1, #120 ; 0x78
800c2e6: 2093 movs r0, #147 ; 0x93
800c2e8: f7f8 fdf8 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800c2ec: 4b62 ldr r3, [pc, #392] ; (800c478 <Display+0x6480>)
800c2ee: 681b ldr r3, [r3, #0]
800c2f0: 2b00 cmp r3, #0
800c2f2: d00b beq.n 800c30c <Display+0x6314>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c2f4: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c2f8: b2db uxtb r3, r3
800c2fa: 461a mov r2, r3
800c2fc: 4b5d ldr r3, [pc, #372] ; (800c474 <Display+0x647c>)
800c2fe: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c302: 2303 movs r3, #3
800c304: 2178 movs r1, #120 ; 0x78
800c306: 209a movs r0, #154 ; 0x9a
800c308: f7f8 fde8 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c30c: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c310: b2db uxtb r3, r3
800c312: 461a mov r2, r3
800c314: 4b57 ldr r3, [pc, #348] ; (800c474 <Display+0x647c>)
800c316: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c31a: 2303 movs r3, #3
800c31c: 2178 movs r1, #120 ; 0x78
800c31e: 20a1 movs r0, #161 ; 0xa1
800c320: f7f8 fddc bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c324: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c328: b2db uxtb r3, r3
800c32a: 461a mov r2, r3
800c32c: 4b51 ldr r3, [pc, #324] ; (800c474 <Display+0x647c>)
800c32e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c332: 2303 movs r3, #3
800c334: 2178 movs r1, #120 ; 0x78
800c336: 20a8 movs r0, #168 ; 0xa8
800c338: f7f8 fdd0 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800c33c: f001 bb0e b.w 800d95c <Display+0x7964>
if(ipt4 == 1)
800c340: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c344: b2db uxtb r3, r3
800c346: 2b01 cmp r3, #1
800c348: d147 bne.n 800c3da <Display+0x63e2>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c34a: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c34e: b2db uxtb r3, r3
800c350: 461a mov r2, r3
800c352: 4b48 ldr r3, [pc, #288] ; (800c474 <Display+0x647c>)
800c354: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c358: 2303 movs r3, #3
800c35a: 2178 movs r1, #120 ; 0x78
800c35c: 208c movs r0, #140 ; 0x8c
800c35e: f7f8 fdbd bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c362: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c366: b2db uxtb r3, r3
800c368: 461a mov r2, r3
800c36a: 4b42 ldr r3, [pc, #264] ; (800c474 <Display+0x647c>)
800c36c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c370: 2303 movs r3, #3
800c372: 2178 movs r1, #120 ; 0x78
800c374: 2093 movs r0, #147 ; 0x93
800c376: f7f8 fdb1 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800c37a: 4b3f ldr r3, [pc, #252] ; (800c478 <Display+0x6480>)
800c37c: 681b ldr r3, [r3, #0]
800c37e: 2b00 cmp r3, #0
800c380: d00b beq.n 800c39a <Display+0x63a2>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c382: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c386: b2db uxtb r3, r3
800c388: 461a mov r2, r3
800c38a: 4b3a ldr r3, [pc, #232] ; (800c474 <Display+0x647c>)
800c38c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c390: 2303 movs r3, #3
800c392: 2178 movs r1, #120 ; 0x78
800c394: 209a movs r0, #154 ; 0x9a
800c396: f7f8 fda1 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c39a: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c39e: b2db uxtb r3, r3
800c3a0: 461a mov r2, r3
800c3a2: 4b34 ldr r3, [pc, #208] ; (800c474 <Display+0x647c>)
800c3a4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c3a8: 2303 movs r3, #3
800c3aa: 2178 movs r1, #120 ; 0x78
800c3ac: 20a1 movs r0, #161 ; 0xa1
800c3ae: f7f8 fd95 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE);
800c3b2: 2303 movs r3, #3
800c3b4: 4a31 ldr r2, [pc, #196] ; (800c47c <Display+0x6484>)
800c3b6: 2178 movs r1, #120 ; 0x78
800c3b8: 20a8 movs r0, #168 ; 0xa8
800c3ba: f7f8 fd8f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c3be: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c3c2: b2db uxtb r3, r3
800c3c4: 461a mov r2, r3
800c3c6: 4b2b ldr r3, [pc, #172] ; (800c474 <Display+0x647c>)
800c3c8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c3cc: 2303 movs r3, #3
800c3ce: 2178 movs r1, #120 ; 0x78
800c3d0: 20af movs r0, #175 ; 0xaf
800c3d2: f7f8 fd83 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800c3d6: f001 bac1 b.w 800d95c <Display+0x7964>
if(ipt4 == 2)
800c3da: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c3de: b2db uxtb r3, r3
800c3e0: 2b02 cmp r3, #2
800c3e2: d14f bne.n 800c484 <Display+0x648c>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c3e4: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c3e8: b2db uxtb r3, r3
800c3ea: 461a mov r2, r3
800c3ec: 4b21 ldr r3, [pc, #132] ; (800c474 <Display+0x647c>)
800c3ee: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c3f2: 2303 movs r3, #3
800c3f4: 2178 movs r1, #120 ; 0x78
800c3f6: 208c movs r0, #140 ; 0x8c
800c3f8: f7f8 fd70 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c3fc: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c400: b2db uxtb r3, r3
800c402: 461a mov r2, r3
800c404: 4b1b ldr r3, [pc, #108] ; (800c474 <Display+0x647c>)
800c406: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c40a: 2303 movs r3, #3
800c40c: 2178 movs r1, #120 ; 0x78
800c40e: 2093 movs r0, #147 ; 0x93
800c410: f7f8 fd64 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800c414: 4b18 ldr r3, [pc, #96] ; (800c478 <Display+0x6480>)
800c416: 681b ldr r3, [r3, #0]
800c418: 2b00 cmp r3, #0
800c41a: d00b beq.n 800c434 <Display+0x643c>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c41c: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c420: b2db uxtb r3, r3
800c422: 461a mov r2, r3
800c424: 4b13 ldr r3, [pc, #76] ; (800c474 <Display+0x647c>)
800c426: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c42a: 2303 movs r3, #3
800c42c: 2178 movs r1, #120 ; 0x78
800c42e: 209a movs r0, #154 ; 0x9a
800c430: f7f8 fd54 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE);
800c434: 2303 movs r3, #3
800c436: 4a11 ldr r2, [pc, #68] ; (800c47c <Display+0x6484>)
800c438: 2178 movs r1, #120 ; 0x78
800c43a: 20a1 movs r0, #161 ; 0xa1
800c43c: f7f8 fd4e bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c440: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c444: b2db uxtb r3, r3
800c446: 461a mov r2, r3
800c448: 4b0a ldr r3, [pc, #40] ; (800c474 <Display+0x647c>)
800c44a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c44e: 2303 movs r3, #3
800c450: 2178 movs r1, #120 ; 0x78
800c452: 20a8 movs r0, #168 ; 0xa8
800c454: f7f8 fd42 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c458: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c45c: b2db uxtb r3, r3
800c45e: 461a mov r2, r3
800c460: 4b04 ldr r3, [pc, #16] ; (800c474 <Display+0x647c>)
800c462: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c466: 2303 movs r3, #3
800c468: 2178 movs r1, #120 ; 0x78
800c46a: 20af movs r0, #175 ; 0xaf
800c46c: f7f8 fd36 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800c470: f001 ba74 b.w 800d95c <Display+0x7964>
800c474: 2002096c .word 0x2002096c
800c478: 2006ba78 .word 0x2006ba78
800c47c: 08018150 .word 0x08018150
800c480: 20020010 .word 0x20020010
if(ipt4 == 3)
800c484: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c488: b2db uxtb r3, r3
800c48a: 2b03 cmp r3, #3
800c48c: d147 bne.n 800c51e <Display+0x6526>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c48e: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c492: b2db uxtb r3, r3
800c494: 461a mov r2, r3
800c496: 4bbf ldr r3, [pc, #764] ; (800c794 <Display+0x679c>)
800c498: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c49c: 2303 movs r3, #3
800c49e: 2178 movs r1, #120 ; 0x78
800c4a0: 208c movs r0, #140 ; 0x8c
800c4a2: f7f8 fd1b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c4a6: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c4aa: b2db uxtb r3, r3
800c4ac: 461a mov r2, r3
800c4ae: 4bb9 ldr r3, [pc, #740] ; (800c794 <Display+0x679c>)
800c4b0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c4b4: 2303 movs r3, #3
800c4b6: 2178 movs r1, #120 ; 0x78
800c4b8: 2093 movs r0, #147 ; 0x93
800c4ba: f7f8 fd0f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE);
800c4be: 2303 movs r3, #3
800c4c0: 4ab5 ldr r2, [pc, #724] ; (800c798 <Display+0x67a0>)
800c4c2: 2178 movs r1, #120 ; 0x78
800c4c4: 209a movs r0, #154 ; 0x9a
800c4c6: f7f8 fd09 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800c4ca: 4bb4 ldr r3, [pc, #720] ; (800c79c <Display+0x67a4>)
800c4cc: 681b ldr r3, [r3, #0]
800c4ce: 2b00 cmp r3, #0
800c4d0: d00b beq.n 800c4ea <Display+0x64f2>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c4d2: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c4d6: b2db uxtb r3, r3
800c4d8: 461a mov r2, r3
800c4da: 4bae ldr r3, [pc, #696] ; (800c794 <Display+0x679c>)
800c4dc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c4e0: 2303 movs r3, #3
800c4e2: 2178 movs r1, #120 ; 0x78
800c4e4: 20a1 movs r0, #161 ; 0xa1
800c4e6: f7f8 fcf9 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c4ea: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c4ee: b2db uxtb r3, r3
800c4f0: 461a mov r2, r3
800c4f2: 4ba8 ldr r3, [pc, #672] ; (800c794 <Display+0x679c>)
800c4f4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c4f8: 2303 movs r3, #3
800c4fa: 2178 movs r1, #120 ; 0x78
800c4fc: 20a8 movs r0, #168 ; 0xa8
800c4fe: f7f8 fced bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c502: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c506: b2db uxtb r3, r3
800c508: 461a mov r2, r3
800c50a: 4ba2 ldr r3, [pc, #648] ; (800c794 <Display+0x679c>)
800c50c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c510: 2303 movs r3, #3
800c512: 2178 movs r1, #120 ; 0x78
800c514: 20af movs r0, #175 ; 0xaf
800c516: f7f8 fce1 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800c51a: f001 ba1f b.w 800d95c <Display+0x7964>
if(ipt4 == 4)
800c51e: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c522: b2db uxtb r3, r3
800c524: 2b04 cmp r3, #4
800c526: f041 8219 bne.w 800d95c <Display+0x7964>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c52a: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c52e: b2db uxtb r3, r3
800c530: 461a mov r2, r3
800c532: 4b98 ldr r3, [pc, #608] ; (800c794 <Display+0x679c>)
800c534: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c538: 2303 movs r3, #3
800c53a: 2178 movs r1, #120 ; 0x78
800c53c: 208c movs r0, #140 ; 0x8c
800c53e: f7f8 fccd bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE);
800c542: 2303 movs r3, #3
800c544: 4a94 ldr r2, [pc, #592] ; (800c798 <Display+0x67a0>)
800c546: 2178 movs r1, #120 ; 0x78
800c548: 2093 movs r0, #147 ; 0x93
800c54a: f7f8 fcc7 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c54e: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c552: b2db uxtb r3, r3
800c554: 461a mov r2, r3
800c556: 4b8f ldr r3, [pc, #572] ; (800c794 <Display+0x679c>)
800c558: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c55c: 2303 movs r3, #3
800c55e: 2178 movs r1, #120 ; 0x78
800c560: 209a movs r0, #154 ; 0x9a
800c562: f7f8 fcbb bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800c566: 4b8d ldr r3, [pc, #564] ; (800c79c <Display+0x67a4>)
800c568: 681b ldr r3, [r3, #0]
800c56a: 2b00 cmp r3, #0
800c56c: d00b beq.n 800c586 <Display+0x658e>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c56e: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c572: b2db uxtb r3, r3
800c574: 461a mov r2, r3
800c576: 4b87 ldr r3, [pc, #540] ; (800c794 <Display+0x679c>)
800c578: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c57c: 2303 movs r3, #3
800c57e: 2178 movs r1, #120 ; 0x78
800c580: 20a1 movs r0, #161 ; 0xa1
800c582: f7f8 fcab bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c586: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c58a: b2db uxtb r3, r3
800c58c: 461a mov r2, r3
800c58e: 4b81 ldr r3, [pc, #516] ; (800c794 <Display+0x679c>)
800c590: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c594: 2303 movs r3, #3
800c596: 2178 movs r1, #120 ; 0x78
800c598: 20a8 movs r0, #168 ; 0xa8
800c59a: f7f8 fc9f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c59e: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c5a2: b2db uxtb r3, r3
800c5a4: 461a mov r2, r3
800c5a6: 4b7b ldr r3, [pc, #492] ; (800c794 <Display+0x679c>)
800c5a8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c5ac: 2303 movs r3, #3
800c5ae: 2178 movs r1, #120 ; 0x78
800c5b0: 20af movs r0, #175 ; 0xaf
800c5b2: f7f8 fc93 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800c5b6: f001 b9d1 b.w 800d95c <Display+0x7964>
if(menupos == Kikd_4)
800c5ba: 4b79 ldr r3, [pc, #484] ; (800c7a0 <Display+0x67a8>)
800c5bc: 781b ldrb r3, [r3, #0]
800c5be: b2db uxtb r3, r3
800c5c0: 2b1d cmp r3, #29
800c5c2: f040 818a bne.w 800c8da <Display+0x68e2>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800c5c6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800c5ca: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800c5ce: f7f8 fbbf bl 8004d50 <LCD_SetColors>
if(!ipt4)
800c5d2: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c5d6: b2db uxtb r3, r3
800c5d8: 2b00 cmp r3, #0
800c5da: d141 bne.n 800c660 <Display+0x6668>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c5dc: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c5e0: b2db uxtb r3, r3
800c5e2: 461a mov r2, r3
800c5e4: 4b6b ldr r3, [pc, #428] ; (800c794 <Display+0x679c>)
800c5e6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c5ea: 2303 movs r3, #3
800c5ec: 2178 movs r1, #120 ; 0x78
800c5ee: 208c movs r0, #140 ; 0x8c
800c5f0: f7f8 fc74 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c5f4: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c5f8: b2db uxtb r3, r3
800c5fa: 461a mov r2, r3
800c5fc: 4b65 ldr r3, [pc, #404] ; (800c794 <Display+0x679c>)
800c5fe: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c602: 2303 movs r3, #3
800c604: 2178 movs r1, #120 ; 0x78
800c606: 2093 movs r0, #147 ; 0x93
800c608: f7f8 fc68 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c60c: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c610: b2db uxtb r3, r3
800c612: 461a mov r2, r3
800c614: 4b5f ldr r3, [pc, #380] ; (800c794 <Display+0x679c>)
800c616: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c61a: 2303 movs r3, #3
800c61c: 2178 movs r1, #120 ; 0x78
800c61e: 209a movs r0, #154 ; 0x9a
800c620: f7f8 fc5c bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800c624: 4b5d ldr r3, [pc, #372] ; (800c79c <Display+0x67a4>)
800c626: 681b ldr r3, [r3, #0]
800c628: 2b00 cmp r3, #0
800c62a: d00b beq.n 800c644 <Display+0x664c>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c62c: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c630: b2db uxtb r3, r3
800c632: 461a mov r2, r3
800c634: 4b57 ldr r3, [pc, #348] ; (800c794 <Display+0x679c>)
800c636: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c63a: 2303 movs r3, #3
800c63c: 2178 movs r1, #120 ; 0x78
800c63e: 20a1 movs r0, #161 ; 0xa1
800c640: f7f8 fc4c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c644: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c648: b2db uxtb r3, r3
800c64a: 461a mov r2, r3
800c64c: 4b51 ldr r3, [pc, #324] ; (800c794 <Display+0x679c>)
800c64e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c652: 2303 movs r3, #3
800c654: 2178 movs r1, #120 ; 0x78
800c656: 20a8 movs r0, #168 ; 0xa8
800c658: f7f8 fc40 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800c65c: f001 b97e b.w 800d95c <Display+0x7964>
if(ipt4 == 1)
800c660: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c664: b2db uxtb r3, r3
800c666: 2b01 cmp r3, #1
800c668: d147 bne.n 800c6fa <Display+0x6702>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c66a: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c66e: b2db uxtb r3, r3
800c670: 461a mov r2, r3
800c672: 4b48 ldr r3, [pc, #288] ; (800c794 <Display+0x679c>)
800c674: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c678: 2303 movs r3, #3
800c67a: 2178 movs r1, #120 ; 0x78
800c67c: 208c movs r0, #140 ; 0x8c
800c67e: f7f8 fc2d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c682: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c686: b2db uxtb r3, r3
800c688: 461a mov r2, r3
800c68a: 4b42 ldr r3, [pc, #264] ; (800c794 <Display+0x679c>)
800c68c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c690: 2303 movs r3, #3
800c692: 2178 movs r1, #120 ; 0x78
800c694: 2093 movs r0, #147 ; 0x93
800c696: f7f8 fc21 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c69a: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c69e: b2db uxtb r3, r3
800c6a0: 461a mov r2, r3
800c6a2: 4b3c ldr r3, [pc, #240] ; (800c794 <Display+0x679c>)
800c6a4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c6a8: 2303 movs r3, #3
800c6aa: 2178 movs r1, #120 ; 0x78
800c6ac: 209a movs r0, #154 ; 0x9a
800c6ae: f7f8 fc15 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800c6b2: 4b3a ldr r3, [pc, #232] ; (800c79c <Display+0x67a4>)
800c6b4: 681b ldr r3, [r3, #0]
800c6b6: 2b00 cmp r3, #0
800c6b8: d00b beq.n 800c6d2 <Display+0x66da>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c6ba: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c6be: b2db uxtb r3, r3
800c6c0: 461a mov r2, r3
800c6c2: 4b34 ldr r3, [pc, #208] ; (800c794 <Display+0x679c>)
800c6c4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c6c8: 2303 movs r3, #3
800c6ca: 2178 movs r1, #120 ; 0x78
800c6cc: 20a1 movs r0, #161 ; 0xa1
800c6ce: f7f8 fc05 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE);
800c6d2: 2303 movs r3, #3
800c6d4: 4a30 ldr r2, [pc, #192] ; (800c798 <Display+0x67a0>)
800c6d6: 2178 movs r1, #120 ; 0x78
800c6d8: 20a8 movs r0, #168 ; 0xa8
800c6da: f7f8 fbff bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c6de: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c6e2: b2db uxtb r3, r3
800c6e4: 461a mov r2, r3
800c6e6: 4b2b ldr r3, [pc, #172] ; (800c794 <Display+0x679c>)
800c6e8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c6ec: 2303 movs r3, #3
800c6ee: 2178 movs r1, #120 ; 0x78
800c6f0: 20af movs r0, #175 ; 0xaf
800c6f2: f7f8 fbf3 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800c6f6: f001 b931 b.w 800d95c <Display+0x7964>
if(ipt4 == 2)
800c6fa: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c6fe: b2db uxtb r3, r3
800c700: 2b02 cmp r3, #2
800c702: d14f bne.n 800c7a4 <Display+0x67ac>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c704: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c708: b2db uxtb r3, r3
800c70a: 461a mov r2, r3
800c70c: 4b21 ldr r3, [pc, #132] ; (800c794 <Display+0x679c>)
800c70e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c712: 2303 movs r3, #3
800c714: 2178 movs r1, #120 ; 0x78
800c716: 208c movs r0, #140 ; 0x8c
800c718: f7f8 fbe0 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c71c: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c720: b2db uxtb r3, r3
800c722: 461a mov r2, r3
800c724: 4b1b ldr r3, [pc, #108] ; (800c794 <Display+0x679c>)
800c726: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c72a: 2303 movs r3, #3
800c72c: 2178 movs r1, #120 ; 0x78
800c72e: 2093 movs r0, #147 ; 0x93
800c730: f7f8 fbd4 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c734: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c738: b2db uxtb r3, r3
800c73a: 461a mov r2, r3
800c73c: 4b15 ldr r3, [pc, #84] ; (800c794 <Display+0x679c>)
800c73e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c742: 2303 movs r3, #3
800c744: 2178 movs r1, #120 ; 0x78
800c746: 209a movs r0, #154 ; 0x9a
800c748: f7f8 fbc8 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE);
800c74c: 2303 movs r3, #3
800c74e: 4a12 ldr r2, [pc, #72] ; (800c798 <Display+0x67a0>)
800c750: 2178 movs r1, #120 ; 0x78
800c752: 20a1 movs r0, #161 ; 0xa1
800c754: f7f8 fbc2 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800c758: 4b10 ldr r3, [pc, #64] ; (800c79c <Display+0x67a4>)
800c75a: 681b ldr r3, [r3, #0]
800c75c: 2b00 cmp r3, #0
800c75e: d00b beq.n 800c778 <Display+0x6780>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c760: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c764: b2db uxtb r3, r3
800c766: 461a mov r2, r3
800c768: 4b0a ldr r3, [pc, #40] ; (800c794 <Display+0x679c>)
800c76a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c76e: 2303 movs r3, #3
800c770: 2178 movs r1, #120 ; 0x78
800c772: 20a8 movs r0, #168 ; 0xa8
800c774: f7f8 fbb2 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c778: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c77c: b2db uxtb r3, r3
800c77e: 461a mov r2, r3
800c780: 4b04 ldr r3, [pc, #16] ; (800c794 <Display+0x679c>)
800c782: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c786: 2303 movs r3, #3
800c788: 2178 movs r1, #120 ; 0x78
800c78a: 20af movs r0, #175 ; 0xaf
800c78c: f7f8 fba6 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800c790: f001 b8e4 b.w 800d95c <Display+0x7964>
800c794: 2002096c .word 0x2002096c
800c798: 08018150 .word 0x08018150
800c79c: 2006ba78 .word 0x2006ba78
800c7a0: 20020010 .word 0x20020010
if(ipt4 == 3)
800c7a4: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c7a8: b2db uxtb r3, r3
800c7aa: 2b03 cmp r3, #3
800c7ac: d147 bne.n 800c83e <Display+0x6846>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c7ae: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c7b2: b2db uxtb r3, r3
800c7b4: 461a mov r2, r3
800c7b6: 4bc1 ldr r3, [pc, #772] ; (800cabc <Display+0x6ac4>)
800c7b8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c7bc: 2303 movs r3, #3
800c7be: 2178 movs r1, #120 ; 0x78
800c7c0: 208c movs r0, #140 ; 0x8c
800c7c2: f7f8 fb8b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c7c6: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c7ca: b2db uxtb r3, r3
800c7cc: 461a mov r2, r3
800c7ce: 4bbb ldr r3, [pc, #748] ; (800cabc <Display+0x6ac4>)
800c7d0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c7d4: 2303 movs r3, #3
800c7d6: 2178 movs r1, #120 ; 0x78
800c7d8: 2093 movs r0, #147 ; 0x93
800c7da: f7f8 fb7f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE);
800c7de: 2303 movs r3, #3
800c7e0: 4ab7 ldr r2, [pc, #732] ; (800cac0 <Display+0x6ac8>)
800c7e2: 2178 movs r1, #120 ; 0x78
800c7e4: 209a movs r0, #154 ; 0x9a
800c7e6: f7f8 fb79 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c7ea: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c7ee: b2db uxtb r3, r3
800c7f0: 461a mov r2, r3
800c7f2: 4bb2 ldr r3, [pc, #712] ; (800cabc <Display+0x6ac4>)
800c7f4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c7f8: 2303 movs r3, #3
800c7fa: 2178 movs r1, #120 ; 0x78
800c7fc: 20a1 movs r0, #161 ; 0xa1
800c7fe: f7f8 fb6d bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800c802: 4bb0 ldr r3, [pc, #704] ; (800cac4 <Display+0x6acc>)
800c804: 681b ldr r3, [r3, #0]
800c806: 2b00 cmp r3, #0
800c808: d00b beq.n 800c822 <Display+0x682a>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c80a: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c80e: b2db uxtb r3, r3
800c810: 461a mov r2, r3
800c812: 4baa ldr r3, [pc, #680] ; (800cabc <Display+0x6ac4>)
800c814: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c818: 2303 movs r3, #3
800c81a: 2178 movs r1, #120 ; 0x78
800c81c: 20a8 movs r0, #168 ; 0xa8
800c81e: f7f8 fb5d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c822: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c826: b2db uxtb r3, r3
800c828: 461a mov r2, r3
800c82a: 4ba4 ldr r3, [pc, #656] ; (800cabc <Display+0x6ac4>)
800c82c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c830: 2303 movs r3, #3
800c832: 2178 movs r1, #120 ; 0x78
800c834: 20af movs r0, #175 ; 0xaf
800c836: f7f8 fb51 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800c83a: f001 b88f b.w 800d95c <Display+0x7964>
if(ipt4 == 4)
800c83e: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c842: b2db uxtb r3, r3
800c844: 2b04 cmp r3, #4
800c846: f041 8089 bne.w 800d95c <Display+0x7964>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c84a: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c84e: b2db uxtb r3, r3
800c850: 461a mov r2, r3
800c852: 4b9a ldr r3, [pc, #616] ; (800cabc <Display+0x6ac4>)
800c854: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c858: 2303 movs r3, #3
800c85a: 2178 movs r1, #120 ; 0x78
800c85c: 208c movs r0, #140 ; 0x8c
800c85e: f7f8 fb3d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE);
800c862: 2303 movs r3, #3
800c864: 4a96 ldr r2, [pc, #600] ; (800cac0 <Display+0x6ac8>)
800c866: 2178 movs r1, #120 ; 0x78
800c868: 2093 movs r0, #147 ; 0x93
800c86a: f7f8 fb37 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c86e: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c872: b2db uxtb r3, r3
800c874: 461a mov r2, r3
800c876: 4b91 ldr r3, [pc, #580] ; (800cabc <Display+0x6ac4>)
800c878: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c87c: 2303 movs r3, #3
800c87e: 2178 movs r1, #120 ; 0x78
800c880: 209a movs r0, #154 ; 0x9a
800c882: f7f8 fb2b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c886: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c88a: b2db uxtb r3, r3
800c88c: 461a mov r2, r3
800c88e: 4b8b ldr r3, [pc, #556] ; (800cabc <Display+0x6ac4>)
800c890: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c894: 2303 movs r3, #3
800c896: 2178 movs r1, #120 ; 0x78
800c898: 20a1 movs r0, #161 ; 0xa1
800c89a: f7f8 fb1f bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800c89e: 4b89 ldr r3, [pc, #548] ; (800cac4 <Display+0x6acc>)
800c8a0: 681b ldr r3, [r3, #0]
800c8a2: 2b00 cmp r3, #0
800c8a4: d00b beq.n 800c8be <Display+0x68c6>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c8a6: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c8aa: b2db uxtb r3, r3
800c8ac: 461a mov r2, r3
800c8ae: 4b83 ldr r3, [pc, #524] ; (800cabc <Display+0x6ac4>)
800c8b0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c8b4: 2303 movs r3, #3
800c8b6: 2178 movs r1, #120 ; 0x78
800c8b8: 20a8 movs r0, #168 ; 0xa8
800c8ba: f7f8 fb0f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c8be: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c8c2: b2db uxtb r3, r3
800c8c4: 461a mov r2, r3
800c8c6: 4b7d ldr r3, [pc, #500] ; (800cabc <Display+0x6ac4>)
800c8c8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c8cc: 2303 movs r3, #3
800c8ce: 2178 movs r1, #120 ; 0x78
800c8d0: 20af movs r0, #175 ; 0xaf
800c8d2: f7f8 fb03 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800c8d6: f001 b841 b.w 800d95c <Display+0x7964>
if(menupos == Kike_4)
800c8da: 4b7b ldr r3, [pc, #492] ; (800cac8 <Display+0x6ad0>)
800c8dc: 781b ldrb r3, [r3, #0]
800c8de: b2db uxtb r3, r3
800c8e0: 2b1e cmp r3, #30
800c8e2: f040 8190 bne.w 800cc06 <Display+0x6c0e>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800c8e6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800c8ea: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800c8ee: f7f8 fa2f bl 8004d50 <LCD_SetColors>
if(!ipt4)
800c8f2: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c8f6: b2db uxtb r3, r3
800c8f8: 2b00 cmp r3, #0
800c8fa: d142 bne.n 800c982 <Display+0x698a>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c8fc: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c900: b2db uxtb r3, r3
800c902: 461a mov r2, r3
800c904: 4b6d ldr r3, [pc, #436] ; (800cabc <Display+0x6ac4>)
800c906: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c90a: 2303 movs r3, #3
800c90c: 2178 movs r1, #120 ; 0x78
800c90e: 208c movs r0, #140 ; 0x8c
800c910: f7f8 fae4 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c914: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c918: b2db uxtb r3, r3
800c91a: 461a mov r2, r3
800c91c: 4b67 ldr r3, [pc, #412] ; (800cabc <Display+0x6ac4>)
800c91e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c922: 2303 movs r3, #3
800c924: 2178 movs r1, #120 ; 0x78
800c926: 2093 movs r0, #147 ; 0x93
800c928: f7f8 fad8 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c92c: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c930: b2db uxtb r3, r3
800c932: 461a mov r2, r3
800c934: 4b61 ldr r3, [pc, #388] ; (800cabc <Display+0x6ac4>)
800c936: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c93a: 2303 movs r3, #3
800c93c: 2178 movs r1, #120 ; 0x78
800c93e: 209a movs r0, #154 ; 0x9a
800c940: f7f8 facc bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c944: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c948: b2db uxtb r3, r3
800c94a: 461a mov r2, r3
800c94c: 4b5b ldr r3, [pc, #364] ; (800cabc <Display+0x6ac4>)
800c94e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c952: 2303 movs r3, #3
800c954: 2178 movs r1, #120 ; 0x78
800c956: 20a1 movs r0, #161 ; 0xa1
800c958: f7f8 fac0 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800c95c: 4b59 ldr r3, [pc, #356] ; (800cac4 <Display+0x6acc>)
800c95e: 681b ldr r3, [r3, #0]
800c960: 2b00 cmp r3, #0
800c962: f000 87fb beq.w 800d95c <Display+0x7964>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c966: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c96a: b2db uxtb r3, r3
800c96c: 461a mov r2, r3
800c96e: 4b53 ldr r3, [pc, #332] ; (800cabc <Display+0x6ac4>)
800c970: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c974: 2303 movs r3, #3
800c976: 2178 movs r1, #120 ; 0x78
800c978: 20a8 movs r0, #168 ; 0xa8
800c97a: f7f8 faaf bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800c97e: f000 bfed b.w 800d95c <Display+0x7964>
if(ipt4 == 1)
800c982: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c986: b2db uxtb r3, r3
800c988: 2b01 cmp r3, #1
800c98a: d148 bne.n 800ca1e <Display+0x6a26>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c98c: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c990: b2db uxtb r3, r3
800c992: 461a mov r2, r3
800c994: 4b49 ldr r3, [pc, #292] ; (800cabc <Display+0x6ac4>)
800c996: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c99a: 2303 movs r3, #3
800c99c: 2178 movs r1, #120 ; 0x78
800c99e: 208c movs r0, #140 ; 0x8c
800c9a0: f7f8 fa9c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c9a4: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c9a8: b2db uxtb r3, r3
800c9aa: 461a mov r2, r3
800c9ac: 4b43 ldr r3, [pc, #268] ; (800cabc <Display+0x6ac4>)
800c9ae: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c9b2: 2303 movs r3, #3
800c9b4: 2178 movs r1, #120 ; 0x78
800c9b6: 2093 movs r0, #147 ; 0x93
800c9b8: f7f8 fa90 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c9bc: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c9c0: b2db uxtb r3, r3
800c9c2: 461a mov r2, r3
800c9c4: 4b3d ldr r3, [pc, #244] ; (800cabc <Display+0x6ac4>)
800c9c6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c9ca: 2303 movs r3, #3
800c9cc: 2178 movs r1, #120 ; 0x78
800c9ce: 209a movs r0, #154 ; 0x9a
800c9d0: f7f8 fa84 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c9d4: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c9d8: b2db uxtb r3, r3
800c9da: 461a mov r2, r3
800c9dc: 4b37 ldr r3, [pc, #220] ; (800cabc <Display+0x6ac4>)
800c9de: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c9e2: 2303 movs r3, #3
800c9e4: 2178 movs r1, #120 ; 0x78
800c9e6: 20a1 movs r0, #161 ; 0xa1
800c9e8: f7f8 fa78 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE);
800c9ec: 2303 movs r3, #3
800c9ee: 4a34 ldr r2, [pc, #208] ; (800cac0 <Display+0x6ac8>)
800c9f0: 2178 movs r1, #120 ; 0x78
800c9f2: 20a8 movs r0, #168 ; 0xa8
800c9f4: f7f8 fa72 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800c9f8: 4b32 ldr r3, [pc, #200] ; (800cac4 <Display+0x6acc>)
800c9fa: 681b ldr r3, [r3, #0]
800c9fc: 2b00 cmp r3, #0
800c9fe: f000 87ad beq.w 800d95c <Display+0x7964>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800ca02: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800ca06: b2db uxtb r3, r3
800ca08: 461a mov r2, r3
800ca0a: 4b2c ldr r3, [pc, #176] ; (800cabc <Display+0x6ac4>)
800ca0c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ca10: 2303 movs r3, #3
800ca12: 2178 movs r1, #120 ; 0x78
800ca14: 20af movs r0, #175 ; 0xaf
800ca16: f7f8 fa61 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800ca1a: f000 bf9f b.w 800d95c <Display+0x7964>
if(ipt4 == 2)
800ca1e: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800ca22: b2db uxtb r3, r3
800ca24: 2b02 cmp r3, #2
800ca26: d151 bne.n 800cacc <Display+0x6ad4>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800ca28: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800ca2c: b2db uxtb r3, r3
800ca2e: 461a mov r2, r3
800ca30: 4b22 ldr r3, [pc, #136] ; (800cabc <Display+0x6ac4>)
800ca32: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ca36: 2303 movs r3, #3
800ca38: 2178 movs r1, #120 ; 0x78
800ca3a: 208c movs r0, #140 ; 0x8c
800ca3c: f7f8 fa4e bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800ca40: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800ca44: b2db uxtb r3, r3
800ca46: 461a mov r2, r3
800ca48: 4b1c ldr r3, [pc, #112] ; (800cabc <Display+0x6ac4>)
800ca4a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ca4e: 2303 movs r3, #3
800ca50: 2178 movs r1, #120 ; 0x78
800ca52: 2093 movs r0, #147 ; 0x93
800ca54: f7f8 fa42 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800ca58: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800ca5c: b2db uxtb r3, r3
800ca5e: 461a mov r2, r3
800ca60: 4b16 ldr r3, [pc, #88] ; (800cabc <Display+0x6ac4>)
800ca62: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ca66: 2303 movs r3, #3
800ca68: 2178 movs r1, #120 ; 0x78
800ca6a: 209a movs r0, #154 ; 0x9a
800ca6c: f7f8 fa36 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE);
800ca70: 2303 movs r3, #3
800ca72: 4a13 ldr r2, [pc, #76] ; (800cac0 <Display+0x6ac8>)
800ca74: 2178 movs r1, #120 ; 0x78
800ca76: 20a1 movs r0, #161 ; 0xa1
800ca78: f7f8 fa30 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800ca7c: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800ca80: b2db uxtb r3, r3
800ca82: 461a mov r2, r3
800ca84: 4b0d ldr r3, [pc, #52] ; (800cabc <Display+0x6ac4>)
800ca86: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ca8a: 2303 movs r3, #3
800ca8c: 2178 movs r1, #120 ; 0x78
800ca8e: 20a8 movs r0, #168 ; 0xa8
800ca90: f7f8 fa24 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800ca94: 4b0b ldr r3, [pc, #44] ; (800cac4 <Display+0x6acc>)
800ca96: 681b ldr r3, [r3, #0]
800ca98: 2b00 cmp r3, #0
800ca9a: f000 875f beq.w 800d95c <Display+0x7964>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800ca9e: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800caa2: b2db uxtb r3, r3
800caa4: 461a mov r2, r3
800caa6: 4b05 ldr r3, [pc, #20] ; (800cabc <Display+0x6ac4>)
800caa8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800caac: 2303 movs r3, #3
800caae: 2178 movs r1, #120 ; 0x78
800cab0: 20af movs r0, #175 ; 0xaf
800cab2: f7f8 fa13 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800cab6: f000 bf51 b.w 800d95c <Display+0x7964>
800caba: bf00 nop
800cabc: 2002096c .word 0x2002096c
800cac0: 08018150 .word 0x08018150
800cac4: 2006ba78 .word 0x2006ba78
800cac8: 20020010 .word 0x20020010
if(ipt4 == 3)
800cacc: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800cad0: b2db uxtb r3, r3
800cad2: 2b03 cmp r3, #3
800cad4: d148 bne.n 800cb68 <Display+0x6b70>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800cad6: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800cada: b2db uxtb r3, r3
800cadc: 461a mov r2, r3
800cade: 4bc4 ldr r3, [pc, #784] ; (800cdf0 <Display+0x6df8>)
800cae0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cae4: 2303 movs r3, #3
800cae6: 2178 movs r1, #120 ; 0x78
800cae8: 208c movs r0, #140 ; 0x8c
800caea: f7f8 f9f7 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800caee: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800caf2: b2db uxtb r3, r3
800caf4: 461a mov r2, r3
800caf6: 4bbe ldr r3, [pc, #760] ; (800cdf0 <Display+0x6df8>)
800caf8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cafc: 2303 movs r3, #3
800cafe: 2178 movs r1, #120 ; 0x78
800cb00: 2093 movs r0, #147 ; 0x93
800cb02: f7f8 f9eb bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE);
800cb06: 2303 movs r3, #3
800cb08: 4aba ldr r2, [pc, #744] ; (800cdf4 <Display+0x6dfc>)
800cb0a: 2178 movs r1, #120 ; 0x78
800cb0c: 209a movs r0, #154 ; 0x9a
800cb0e: f7f8 f9e5 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800cb12: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800cb16: b2db uxtb r3, r3
800cb18: 461a mov r2, r3
800cb1a: 4bb5 ldr r3, [pc, #724] ; (800cdf0 <Display+0x6df8>)
800cb1c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cb20: 2303 movs r3, #3
800cb22: 2178 movs r1, #120 ; 0x78
800cb24: 20a1 movs r0, #161 ; 0xa1
800cb26: f7f8 f9d9 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800cb2a: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800cb2e: b2db uxtb r3, r3
800cb30: 461a mov r2, r3
800cb32: 4baf ldr r3, [pc, #700] ; (800cdf0 <Display+0x6df8>)
800cb34: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cb38: 2303 movs r3, #3
800cb3a: 2178 movs r1, #120 ; 0x78
800cb3c: 20a8 movs r0, #168 ; 0xa8
800cb3e: f7f8 f9cd bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800cb42: 4bad ldr r3, [pc, #692] ; (800cdf8 <Display+0x6e00>)
800cb44: 681b ldr r3, [r3, #0]
800cb46: 2b00 cmp r3, #0
800cb48: f000 8708 beq.w 800d95c <Display+0x7964>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800cb4c: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800cb50: b2db uxtb r3, r3
800cb52: 461a mov r2, r3
800cb54: 4ba6 ldr r3, [pc, #664] ; (800cdf0 <Display+0x6df8>)
800cb56: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cb5a: 2303 movs r3, #3
800cb5c: 2178 movs r1, #120 ; 0x78
800cb5e: 20af movs r0, #175 ; 0xaf
800cb60: f7f8 f9bc bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800cb64: f000 befa b.w 800d95c <Display+0x7964>
if(ipt4 == 4)
800cb68: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800cb6c: b2db uxtb r3, r3
800cb6e: 2b04 cmp r3, #4
800cb70: f040 86f4 bne.w 800d95c <Display+0x7964>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800cb74: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800cb78: b2db uxtb r3, r3
800cb7a: 461a mov r2, r3
800cb7c: 4b9c ldr r3, [pc, #624] ; (800cdf0 <Display+0x6df8>)
800cb7e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cb82: 2303 movs r3, #3
800cb84: 2178 movs r1, #120 ; 0x78
800cb86: 208c movs r0, #140 ; 0x8c
800cb88: f7f8 f9a8 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE);
800cb8c: 2303 movs r3, #3
800cb8e: 4a99 ldr r2, [pc, #612] ; (800cdf4 <Display+0x6dfc>)
800cb90: 2178 movs r1, #120 ; 0x78
800cb92: 2093 movs r0, #147 ; 0x93
800cb94: f7f8 f9a2 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE);
800cb98: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800cb9c: b2db uxtb r3, r3
800cb9e: 461a mov r2, r3
800cba0: 4b93 ldr r3, [pc, #588] ; (800cdf0 <Display+0x6df8>)
800cba2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cba6: 2303 movs r3, #3
800cba8: 2178 movs r1, #120 ; 0x78
800cbaa: 209a movs r0, #154 ; 0x9a
800cbac: f7f8 f996 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800cbb0: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800cbb4: b2db uxtb r3, r3
800cbb6: 461a mov r2, r3
800cbb8: 4b8d ldr r3, [pc, #564] ; (800cdf0 <Display+0x6df8>)
800cbba: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cbbe: 2303 movs r3, #3
800cbc0: 2178 movs r1, #120 ; 0x78
800cbc2: 20a1 movs r0, #161 ; 0xa1
800cbc4: f7f8 f98a bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800cbc8: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800cbcc: b2db uxtb r3, r3
800cbce: 461a mov r2, r3
800cbd0: 4b87 ldr r3, [pc, #540] ; (800cdf0 <Display+0x6df8>)
800cbd2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cbd6: 2303 movs r3, #3
800cbd8: 2178 movs r1, #120 ; 0x78
800cbda: 20a8 movs r0, #168 ; 0xa8
800cbdc: f7f8 f97e bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800cbe0: 4b85 ldr r3, [pc, #532] ; (800cdf8 <Display+0x6e00>)
800cbe2: 681b ldr r3, [r3, #0]
800cbe4: 2b00 cmp r3, #0
800cbe6: f000 86b9 beq.w 800d95c <Display+0x7964>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800cbea: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800cbee: b2db uxtb r3, r3
800cbf0: 461a mov r2, r3
800cbf2: 4b7f ldr r3, [pc, #508] ; (800cdf0 <Display+0x6df8>)
800cbf4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cbf8: 2303 movs r3, #3
800cbfa: 2178 movs r1, #120 ; 0x78
800cbfc: 20af movs r0, #175 ; 0xaf
800cbfe: f7f8 f96d bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800cc02: f000 beab b.w 800d95c <Display+0x7964>
if(menupos == Kpt_4)
800cc06: 4b7d ldr r3, [pc, #500] ; (800cdfc <Display+0x6e04>)
800cc08: 781b ldrb r3, [r3, #0]
800cc0a: b2db uxtb r3, r3
800cc0c: 2b1f cmp r3, #31
800cc0e: f040 86a5 bne.w 800d95c <Display+0x7964>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800cc12: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800cc16: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800cc1a: f7f8 f899 bl 8004d50 <LCD_SetColors>
if(!ipt4)
800cc1e: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800cc22: b2db uxtb r3, r3
800cc24: 2b00 cmp r3, #0
800cc26: d148 bne.n 800ccba <Display+0x6cc2>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800cc28: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800cc2c: b2db uxtb r3, r3
800cc2e: 461a mov r2, r3
800cc30: 4b6f ldr r3, [pc, #444] ; (800cdf0 <Display+0x6df8>)
800cc32: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cc36: 2303 movs r3, #3
800cc38: 2178 movs r1, #120 ; 0x78
800cc3a: 208c movs r0, #140 ; 0x8c
800cc3c: f7f8 f94e bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800cc40: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800cc44: b2db uxtb r3, r3
800cc46: 461a mov r2, r3
800cc48: 4b69 ldr r3, [pc, #420] ; (800cdf0 <Display+0x6df8>)
800cc4a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cc4e: 2303 movs r3, #3
800cc50: 2178 movs r1, #120 ; 0x78
800cc52: 2093 movs r0, #147 ; 0x93
800cc54: f7f8 f942 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800cc58: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800cc5c: b2db uxtb r3, r3
800cc5e: 461a mov r2, r3
800cc60: 4b63 ldr r3, [pc, #396] ; (800cdf0 <Display+0x6df8>)
800cc62: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cc66: 2303 movs r3, #3
800cc68: 2178 movs r1, #120 ; 0x78
800cc6a: 209a movs r0, #154 ; 0x9a
800cc6c: f7f8 f936 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800cc70: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800cc74: b2db uxtb r3, r3
800cc76: 461a mov r2, r3
800cc78: 4b5d ldr r3, [pc, #372] ; (800cdf0 <Display+0x6df8>)
800cc7a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cc7e: 2303 movs r3, #3
800cc80: 2178 movs r1, #120 ; 0x78
800cc82: 20a1 movs r0, #161 ; 0xa1
800cc84: f7f8 f92a bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE);
800cc88: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800cc8c: b2db uxtb r3, r3
800cc8e: 461a mov r2, r3
800cc90: 4b57 ldr r3, [pc, #348] ; (800cdf0 <Display+0x6df8>)
800cc92: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cc96: 2303 movs r3, #3
800cc98: 2178 movs r1, #120 ; 0x78
800cc9a: 20a8 movs r0, #168 ; 0xa8
800cc9c: f7f8 f91e bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800cca0: 4b55 ldr r3, [pc, #340] ; (800cdf8 <Display+0x6e00>)
800cca2: 681b ldr r3, [r3, #0]
800cca4: 2b00 cmp r3, #0
800cca6: f000 8659 beq.w 800d95c <Display+0x7964>
BSP_LCD_DisplayStringAt(140+35, 120, ".", LEFT_MODE);
800ccaa: 2303 movs r3, #3
800ccac: 4a51 ldr r2, [pc, #324] ; (800cdf4 <Display+0x6dfc>)
800ccae: 2178 movs r1, #120 ; 0x78
800ccb0: 20af movs r0, #175 ; 0xaf
800ccb2: f7f8 f913 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800ccb6: f000 be51 b.w 800d95c <Display+0x7964>
if(ipt4 == 1)
800ccba: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800ccbe: b2db uxtb r3, r3
800ccc0: 2b01 cmp r3, #1
800ccc2: d147 bne.n 800cd54 <Display+0x6d5c>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800ccc4: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800ccc8: b2db uxtb r3, r3
800ccca: 461a mov r2, r3
800cccc: 4b48 ldr r3, [pc, #288] ; (800cdf0 <Display+0x6df8>)
800ccce: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ccd2: 2303 movs r3, #3
800ccd4: 2178 movs r1, #120 ; 0x78
800ccd6: 208c movs r0, #140 ; 0x8c
800ccd8: f7f8 f900 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800ccdc: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800cce0: b2db uxtb r3, r3
800cce2: 461a mov r2, r3
800cce4: 4b42 ldr r3, [pc, #264] ; (800cdf0 <Display+0x6df8>)
800cce6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ccea: 2303 movs r3, #3
800ccec: 2178 movs r1, #120 ; 0x78
800ccee: 2093 movs r0, #147 ; 0x93
800ccf0: f7f8 f8f4 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800ccf4: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800ccf8: b2db uxtb r3, r3
800ccfa: 461a mov r2, r3
800ccfc: 4b3c ldr r3, [pc, #240] ; (800cdf0 <Display+0x6df8>)
800ccfe: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cd02: 2303 movs r3, #3
800cd04: 2178 movs r1, #120 ; 0x78
800cd06: 209a movs r0, #154 ; 0x9a
800cd08: f7f8 f8e8 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800cd0c: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800cd10: b2db uxtb r3, r3
800cd12: 461a mov r2, r3
800cd14: 4b36 ldr r3, [pc, #216] ; (800cdf0 <Display+0x6df8>)
800cd16: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cd1a: 2303 movs r3, #3
800cd1c: 2178 movs r1, #120 ; 0x78
800cd1e: 20a1 movs r0, #161 ; 0xa1
800cd20: f7f8 f8dc bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800cd24: 4b34 ldr r3, [pc, #208] ; (800cdf8 <Display+0x6e00>)
800cd26: 681b ldr r3, [r3, #0]
800cd28: 2b00 cmp r3, #0
800cd2a: d005 beq.n 800cd38 <Display+0x6d40>
BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE);
800cd2c: 2303 movs r3, #3
800cd2e: 4a31 ldr r2, [pc, #196] ; (800cdf4 <Display+0x6dfc>)
800cd30: 2178 movs r1, #120 ; 0x78
800cd32: 20a8 movs r0, #168 ; 0xa8
800cd34: f7f8 f8d2 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800cd38: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800cd3c: b2db uxtb r3, r3
800cd3e: 461a mov r2, r3
800cd40: 4b2b ldr r3, [pc, #172] ; (800cdf0 <Display+0x6df8>)
800cd42: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cd46: 2303 movs r3, #3
800cd48: 2178 movs r1, #120 ; 0x78
800cd4a: 20af movs r0, #175 ; 0xaf
800cd4c: f7f8 f8c6 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800cd50: f000 be04 b.w 800d95c <Display+0x7964>
if(ipt4 == 2)
800cd54: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800cd58: b2db uxtb r3, r3
800cd5a: 2b02 cmp r3, #2
800cd5c: d150 bne.n 800ce00 <Display+0x6e08>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800cd5e: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800cd62: b2db uxtb r3, r3
800cd64: 461a mov r2, r3
800cd66: 4b22 ldr r3, [pc, #136] ; (800cdf0 <Display+0x6df8>)
800cd68: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cd6c: 2303 movs r3, #3
800cd6e: 2178 movs r1, #120 ; 0x78
800cd70: 208c movs r0, #140 ; 0x8c
800cd72: f7f8 f8b3 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800cd76: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800cd7a: b2db uxtb r3, r3
800cd7c: 461a mov r2, r3
800cd7e: 4b1c ldr r3, [pc, #112] ; (800cdf0 <Display+0x6df8>)
800cd80: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cd84: 2303 movs r3, #3
800cd86: 2178 movs r1, #120 ; 0x78
800cd88: 2093 movs r0, #147 ; 0x93
800cd8a: f7f8 f8a7 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800cd8e: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800cd92: b2db uxtb r3, r3
800cd94: 461a mov r2, r3
800cd96: 4b16 ldr r3, [pc, #88] ; (800cdf0 <Display+0x6df8>)
800cd98: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cd9c: 2303 movs r3, #3
800cd9e: 2178 movs r1, #120 ; 0x78
800cda0: 209a movs r0, #154 ; 0x9a
800cda2: f7f8 f89b bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800cda6: 4b14 ldr r3, [pc, #80] ; (800cdf8 <Display+0x6e00>)
800cda8: 681b ldr r3, [r3, #0]
800cdaa: 2b00 cmp r3, #0
800cdac: d005 beq.n 800cdba <Display+0x6dc2>
BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE);
800cdae: 2303 movs r3, #3
800cdb0: 4a10 ldr r2, [pc, #64] ; (800cdf4 <Display+0x6dfc>)
800cdb2: 2178 movs r1, #120 ; 0x78
800cdb4: 20a1 movs r0, #161 ; 0xa1
800cdb6: f7f8 f891 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800cdba: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800cdbe: b2db uxtb r3, r3
800cdc0: 461a mov r2, r3
800cdc2: 4b0b ldr r3, [pc, #44] ; (800cdf0 <Display+0x6df8>)
800cdc4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cdc8: 2303 movs r3, #3
800cdca: 2178 movs r1, #120 ; 0x78
800cdcc: 20a8 movs r0, #168 ; 0xa8
800cdce: f7f8 f885 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800cdd2: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800cdd6: b2db uxtb r3, r3
800cdd8: 461a mov r2, r3
800cdda: 4b05 ldr r3, [pc, #20] ; (800cdf0 <Display+0x6df8>)
800cddc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cde0: 2303 movs r3, #3
800cde2: 2178 movs r1, #120 ; 0x78
800cde4: 20af movs r0, #175 ; 0xaf
800cde6: f7f8 f879 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800cdea: f000 bdb7 b.w 800d95c <Display+0x7964>
800cdee: bf00 nop
800cdf0: 2002096c .word 0x2002096c
800cdf4: 08018150 .word 0x08018150
800cdf8: 2006ba78 .word 0x2006ba78
800cdfc: 20020010 .word 0x20020010
if(ipt4 == 3)
800ce00: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800ce04: b2db uxtb r3, r3
800ce06: 2b03 cmp r3, #3
800ce08: d147 bne.n 800ce9a <Display+0x6ea2>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800ce0a: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800ce0e: b2db uxtb r3, r3
800ce10: 461a mov r2, r3
800ce12: 4bc9 ldr r3, [pc, #804] ; (800d138 <Display+0x7140>)
800ce14: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ce18: 2303 movs r3, #3
800ce1a: 2178 movs r1, #120 ; 0x78
800ce1c: 208c movs r0, #140 ; 0x8c
800ce1e: f7f8 f85d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800ce22: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800ce26: b2db uxtb r3, r3
800ce28: 461a mov r2, r3
800ce2a: 4bc3 ldr r3, [pc, #780] ; (800d138 <Display+0x7140>)
800ce2c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ce30: 2303 movs r3, #3
800ce32: 2178 movs r1, #120 ; 0x78
800ce34: 2093 movs r0, #147 ; 0x93
800ce36: f7f8 f851 bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800ce3a: 4bc0 ldr r3, [pc, #768] ; (800d13c <Display+0x7144>)
800ce3c: 681b ldr r3, [r3, #0]
800ce3e: 2b00 cmp r3, #0
800ce40: d005 beq.n 800ce4e <Display+0x6e56>
BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE);
800ce42: 2303 movs r3, #3
800ce44: 4abe ldr r2, [pc, #760] ; (800d140 <Display+0x7148>)
800ce46: 2178 movs r1, #120 ; 0x78
800ce48: 209a movs r0, #154 ; 0x9a
800ce4a: f7f8 f847 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800ce4e: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800ce52: b2db uxtb r3, r3
800ce54: 461a mov r2, r3
800ce56: 4bb8 ldr r3, [pc, #736] ; (800d138 <Display+0x7140>)
800ce58: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ce5c: 2303 movs r3, #3
800ce5e: 2178 movs r1, #120 ; 0x78
800ce60: 20a1 movs r0, #161 ; 0xa1
800ce62: f7f8 f83b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800ce66: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800ce6a: b2db uxtb r3, r3
800ce6c: 461a mov r2, r3
800ce6e: 4bb2 ldr r3, [pc, #712] ; (800d138 <Display+0x7140>)
800ce70: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ce74: 2303 movs r3, #3
800ce76: 2178 movs r1, #120 ; 0x78
800ce78: 20a8 movs r0, #168 ; 0xa8
800ce7a: f7f8 f82f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800ce7e: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800ce82: b2db uxtb r3, r3
800ce84: 461a mov r2, r3
800ce86: 4bac ldr r3, [pc, #688] ; (800d138 <Display+0x7140>)
800ce88: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ce8c: 2303 movs r3, #3
800ce8e: 2178 movs r1, #120 ; 0x78
800ce90: 20af movs r0, #175 ; 0xaf
800ce92: f7f8 f823 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800ce96: f000 bd61 b.w 800d95c <Display+0x7964>
if(ipt4 == 4)
800ce9a: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800ce9e: b2db uxtb r3, r3
800cea0: 2b04 cmp r3, #4
800cea2: f040 855b bne.w 800d95c <Display+0x7964>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800cea6: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800ceaa: b2db uxtb r3, r3
800ceac: 461a mov r2, r3
800ceae: 4ba2 ldr r3, [pc, #648] ; (800d138 <Display+0x7140>)
800ceb0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ceb4: 2303 movs r3, #3
800ceb6: 2178 movs r1, #120 ; 0x78
800ceb8: 208c movs r0, #140 ; 0x8c
800ceba: f7f8 f80f bl 8004edc <BSP_LCD_DisplayStringAt>
if(blk)
800cebe: 4b9f ldr r3, [pc, #636] ; (800d13c <Display+0x7144>)
800cec0: 681b ldr r3, [r3, #0]
800cec2: 2b00 cmp r3, #0
800cec4: d005 beq.n 800ced2 <Display+0x6eda>
BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE);
800cec6: 2303 movs r3, #3
800cec8: 4a9d ldr r2, [pc, #628] ; (800d140 <Display+0x7148>)
800ceca: 2178 movs r1, #120 ; 0x78
800cecc: 2093 movs r0, #147 ; 0x93
800cece: f7f8 f805 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE);
800ced2: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800ced6: b2db uxtb r3, r3
800ced8: 461a mov r2, r3
800ceda: 4b97 ldr r3, [pc, #604] ; (800d138 <Display+0x7140>)
800cedc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cee0: 2303 movs r3, #3
800cee2: 2178 movs r1, #120 ; 0x78
800cee4: 209a movs r0, #154 ; 0x9a
800cee6: f7f7 fff9 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800ceea: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800ceee: b2db uxtb r3, r3
800cef0: 461a mov r2, r3
800cef2: 4b91 ldr r3, [pc, #580] ; (800d138 <Display+0x7140>)
800cef4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cef8: 2303 movs r3, #3
800cefa: 2178 movs r1, #120 ; 0x78
800cefc: 20a1 movs r0, #161 ; 0xa1
800cefe: f7f7 ffed bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800cf02: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800cf06: b2db uxtb r3, r3
800cf08: 461a mov r2, r3
800cf0a: 4b8b ldr r3, [pc, #556] ; (800d138 <Display+0x7140>)
800cf0c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cf10: 2303 movs r3, #3
800cf12: 2178 movs r1, #120 ; 0x78
800cf14: 20a8 movs r0, #168 ; 0xa8
800cf16: f7f7 ffe1 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800cf1a: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800cf1e: b2db uxtb r3, r3
800cf20: 461a mov r2, r3
800cf22: 4b85 ldr r3, [pc, #532] ; (800d138 <Display+0x7140>)
800cf24: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cf28: 2303 movs r3, #3
800cf2a: 2178 movs r1, #120 ; 0x78
800cf2c: 20af movs r0, #175 ; 0xaf
800cf2e: f7f7 ffd5 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800cf32: f000 bd13 b.w 800d95c <Display+0x7964>
if(menupos == Kikdt_1)
800cf36: bf00 nop
800cf38: f000 bd10 b.w 800d95c <Display+0x7964>
if(menupos == Kikdt_2)
800cf3c: bf00 nop
800cf3e: f000 bd0d b.w 800d95c <Display+0x7964>
if(menupos == Kikdt_3)
800cf42: bf00 nop
break;
800cf44: f000 bd0a b.w 800d95c <Display+0x7964>
case MAIN:
BSP_LCD_SetFont(&Font12);
800cf48: 487e ldr r0, [pc, #504] ; (800d144 <Display+0x714c>)
800cf4a: f7f7 ff3d bl 8004dc8 <BSP_LCD_SetFont>
if(CNT_CHANNELS < 5)
800cf4e: 4b7e ldr r3, [pc, #504] ; (800d148 <Display+0x7150>)
800cf50: 681b ldr r3, [r3, #0]
800cf52: 2b04 cmp r3, #4
800cf54: f200 8504 bhi.w 800d960 <Display+0x7968>
{
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800cf58: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800cf5c: f04f 30ff mov.w r0, #4294967295
800cf60: f7f7 fef6 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillRect(0, 0, 158, 24);
800cf64: 2318 movs r3, #24
800cf66: 229e movs r2, #158 ; 0x9e
800cf68: 2100 movs r1, #0
800cf6a: 2000 movs r0, #0
800cf6c: f7f8 fab2 bl 80054d4 <BSP_LCD_FillRect>
BSP_LCD_FillRect(0, 120, 158, 24);
800cf70: 2318 movs r3, #24
800cf72: 229e movs r2, #158 ; 0x9e
800cf74: 2178 movs r1, #120 ; 0x78
800cf76: 2000 movs r0, #0
800cf78: f7f8 faac bl 80054d4 <BSP_LCD_FillRect>
BSP_LCD_FillRect(161, 0, 158, 24);
800cf7c: 2318 movs r3, #24
800cf7e: 229e movs r2, #158 ; 0x9e
800cf80: 2100 movs r1, #0
800cf82: 20a1 movs r0, #161 ; 0xa1
800cf84: f7f8 faa6 bl 80054d4 <BSP_LCD_FillRect>
BSP_LCD_FillRect(161, 120, 158, 24);
800cf88: 2318 movs r3, #24
800cf8a: 229e movs r2, #158 ; 0x9e
800cf8c: 2178 movs r1, #120 ; 0x78
800cf8e: 20a1 movs r0, #161 ; 0xa1
800cf90: f7f8 faa0 bl 80054d4 <BSP_LCD_FillRect>
BSP_LCD_DrawRect(0, 0, 318, 238);
800cf94: 23ee movs r3, #238 ; 0xee
800cf96: f44f 729f mov.w r2, #318 ; 0x13e
800cf9a: 2100 movs r1, #0
800cf9c: 2000 movs r0, #0
800cf9e: f7f8 f911 bl 80051c4 <BSP_LCD_DrawRect>
BSP_LCD_DrawVLine(159, 0, 239);
800cfa2: 22ef movs r2, #239 ; 0xef
800cfa4: 2100 movs r1, #0
800cfa6: 209f movs r0, #159 ; 0x9f
800cfa8: f7f8 f8aa bl 8005100 <BSP_LCD_DrawVLine>
// 1-2 //
if(pardata.LANG == RUS)
800cfac: 4b67 ldr r3, [pc, #412] ; (800d14c <Display+0x7154>)
800cfae: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800cfb2: b29b uxth r3, r3
800cfb4: 2b00 cmp r3, #0
800cfb6: f040 80bb bne.w 800d130 <Display+0x7138>
{
for(i = 0; i < 2; i++)
800cfba: 2300 movs r3, #0
800cfbc: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800cfc0: e045 b.n 800d04e <Display+0x7056>
{
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800cfc2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800cfc6: 4862 ldr r0, [pc, #392] ; (800d150 <Display+0x7158>)
800cfc8: f7f7 fec2 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(4, 27 + 120*i, "<22><><C2><D5>:", LEFT_MODE);
800cfcc: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800cfd0: b29b uxth r3, r3
800cfd2: 461a mov r2, r3
800cfd4: 0112 lsls r2, r2, #4
800cfd6: 1ad3 subs r3, r2, r3
800cfd8: 00db lsls r3, r3, #3
800cfda: b29b uxth r3, r3
800cfdc: 331b adds r3, #27
800cfde: b299 uxth r1, r3
800cfe0: 2303 movs r3, #3
800cfe2: 4a5c ldr r2, [pc, #368] ; (800d154 <Display+0x715c>)
800cfe4: 2004 movs r0, #4
800cfe6: f7f7 ff79 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(3, 46+6 + 120*i, "<22><><D4>:", LEFT_MODE);
800cfea: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800cfee: b29b uxth r3, r3
800cff0: 461a mov r2, r3
800cff2: 0112 lsls r2, r2, #4
800cff4: 1ad3 subs r3, r2, r3
800cff6: 00db lsls r3, r3, #3
800cff8: b29b uxth r3, r3
800cffa: 3334 adds r3, #52 ; 0x34
800cffc: b299 uxth r1, r3
800cffe: 2303 movs r3, #3
800d000: 4a55 ldr r2, [pc, #340] ; (800d158 <Display+0x7160>)
800d002: 2003 movs r0, #3
800d004: f7f7 ff6a bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(3, 65+6 + 120*i, "<22><><D4>:", LEFT_MODE);
800d008: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d00c: b29b uxth r3, r3
800d00e: 461a mov r2, r3
800d010: 0112 lsls r2, r2, #4
800d012: 1ad3 subs r3, r2, r3
800d014: 00db lsls r3, r3, #3
800d016: b29b uxth r3, r3
800d018: 3347 adds r3, #71 ; 0x47
800d01a: b299 uxth r1, r3
800d01c: 2303 movs r3, #3
800d01e: 4a4f ldr r2, [pc, #316] ; (800d15c <Display+0x7164>)
800d020: 2003 movs r0, #3
800d022: f7f7 ff5b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(4, 84+6 + 120*i, "<22><><C2><DB><D5>:", LEFT_MODE);
800d026: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d02a: b29b uxth r3, r3
800d02c: 461a mov r2, r3
800d02e: 0112 lsls r2, r2, #4
800d030: 1ad3 subs r3, r2, r3
800d032: 00db lsls r3, r3, #3
800d034: b29b uxth r3, r3
800d036: 335a adds r3, #90 ; 0x5a
800d038: b299 uxth r1, r3
800d03a: 2303 movs r3, #3
800d03c: 4a48 ldr r2, [pc, #288] ; (800d160 <Display+0x7168>)
800d03e: 2004 movs r0, #4
800d040: f7f7 ff4c bl 8004edc <BSP_LCD_DisplayStringAt>
for(i = 0; i < 2; i++)
800d044: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d048: 3301 adds r3, #1
800d04a: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d04e: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d052: 2b01 cmp r3, #1
800d054: d9b5 bls.n 800cfc2 <Display+0x6fca>
}
// 3-4 //
for(i = 0; i < 2; i++)
800d056: 2300 movs r3, #0
800d058: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d05c: e045 b.n 800d0ea <Display+0x70f2>
{
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800d05e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d062: 483b ldr r0, [pc, #236] ; (800d150 <Display+0x7158>)
800d064: f7f7 fe74 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(164, 27 + 120*i, "<22><><C2><D5>:", LEFT_MODE);
800d068: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d06c: b29b uxth r3, r3
800d06e: 461a mov r2, r3
800d070: 0112 lsls r2, r2, #4
800d072: 1ad3 subs r3, r2, r3
800d074: 00db lsls r3, r3, #3
800d076: b29b uxth r3, r3
800d078: 331b adds r3, #27
800d07a: b299 uxth r1, r3
800d07c: 2303 movs r3, #3
800d07e: 4a35 ldr r2, [pc, #212] ; (800d154 <Display+0x715c>)
800d080: 20a4 movs r0, #164 ; 0xa4
800d082: f7f7 ff2b bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(163, 46+6 + 120*i, "<22><><D4>:", LEFT_MODE);
800d086: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d08a: b29b uxth r3, r3
800d08c: 461a mov r2, r3
800d08e: 0112 lsls r2, r2, #4
800d090: 1ad3 subs r3, r2, r3
800d092: 00db lsls r3, r3, #3
800d094: b29b uxth r3, r3
800d096: 3334 adds r3, #52 ; 0x34
800d098: b299 uxth r1, r3
800d09a: 2303 movs r3, #3
800d09c: 4a2e ldr r2, [pc, #184] ; (800d158 <Display+0x7160>)
800d09e: 20a3 movs r0, #163 ; 0xa3
800d0a0: f7f7 ff1c bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(163, 65+6 + 120*i, "<22><><D4>:", LEFT_MODE);
800d0a4: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d0a8: b29b uxth r3, r3
800d0aa: 461a mov r2, r3
800d0ac: 0112 lsls r2, r2, #4
800d0ae: 1ad3 subs r3, r2, r3
800d0b0: 00db lsls r3, r3, #3
800d0b2: b29b uxth r3, r3
800d0b4: 3347 adds r3, #71 ; 0x47
800d0b6: b299 uxth r1, r3
800d0b8: 2303 movs r3, #3
800d0ba: 4a28 ldr r2, [pc, #160] ; (800d15c <Display+0x7164>)
800d0bc: 20a3 movs r0, #163 ; 0xa3
800d0be: f7f7 ff0d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(164, 84+6 + 120*i, "<22><><C2><DB><D5>:", LEFT_MODE);
800d0c2: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d0c6: b29b uxth r3, r3
800d0c8: 461a mov r2, r3
800d0ca: 0112 lsls r2, r2, #4
800d0cc: 1ad3 subs r3, r2, r3
800d0ce: 00db lsls r3, r3, #3
800d0d0: b29b uxth r3, r3
800d0d2: 335a adds r3, #90 ; 0x5a
800d0d4: b299 uxth r1, r3
800d0d6: 2303 movs r3, #3
800d0d8: 4a21 ldr r2, [pc, #132] ; (800d160 <Display+0x7168>)
800d0da: 20a4 movs r0, #164 ; 0xa4
800d0dc: f7f7 fefe bl 8004edc <BSP_LCD_DisplayStringAt>
for(i = 0; i < 2; i++)
800d0e0: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d0e4: 3301 adds r3, #1
800d0e6: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d0ea: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d0ee: 2b01 cmp r3, #1
800d0f0: d9b5 bls.n 800d05e <Display+0x7066>
}
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800d0f2: f04f 31ff mov.w r1, #4294967295
800d0f6: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800d0fa: f7f7 fe29 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(79, 8, "<22><><CA><C0><CD> 1", CENTER_MODE);
800d0fe: 2301 movs r3, #1
800d100: 4a18 ldr r2, [pc, #96] ; (800d164 <Display+0x716c>)
800d102: 2108 movs r1, #8
800d104: 204f movs r0, #79 ; 0x4f
800d106: f7f7 fee9 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(79, 128, "<22><><CA><C0><CD> 2", CENTER_MODE);
800d10a: 2301 movs r3, #1
800d10c: 4a16 ldr r2, [pc, #88] ; (800d168 <Display+0x7170>)
800d10e: 2180 movs r1, #128 ; 0x80
800d110: 204f movs r0, #79 ; 0x4f
800d112: f7f7 fee3 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(239, 8, "<22><><CA><C0><CD> 3", CENTER_MODE);
800d116: 2301 movs r3, #1
800d118: 4a14 ldr r2, [pc, #80] ; (800d16c <Display+0x7174>)
800d11a: 2108 movs r1, #8
800d11c: 20ef movs r0, #239 ; 0xef
800d11e: f7f7 fedd bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(239, 128, "<22><><CA><C0><CD> 4", CENTER_MODE);
800d122: 2301 movs r3, #1
800d124: 4a12 ldr r2, [pc, #72] ; (800d170 <Display+0x7178>)
800d126: 2180 movs r1, #128 ; 0x80
800d128: 20ef movs r0, #239 ; 0xef
800d12a: f7f7 fed7 bl 8004edc <BSP_LCD_DisplayStringAt>
800d12e: e0d7 b.n 800d2e0 <Display+0x72e8>
}
else
{
for(i = 0; i < 2; i++)
800d130: 2300 movs r3, #0
800d132: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d136: e063 b.n 800d200 <Display+0x7208>
800d138: 2002096c .word 0x2002096c
800d13c: 2006ba78 .word 0x2006ba78
800d140: 08018150 .word 0x08018150
800d144: 20020000 .word 0x20020000
800d148: 2006ba6c .word 0x2006ba6c
800d14c: 2006bca8 .word 0x2006bca8
800d150: ffd3d3d3 .word 0xffd3d3d3
800d154: 08018154 .word 0x08018154
800d158: 0801815c .word 0x0801815c
800d15c: 08018164 .word 0x08018164
800d160: 0801816c .word 0x0801816c
800d164: 08018174 .word 0x08018174
800d168: 0801817c .word 0x0801817c
800d16c: 08018184 .word 0x08018184
800d170: 0801818c .word 0x0801818c
{
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800d174: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d178: 48c6 ldr r0, [pc, #792] ; (800d494 <Display+0x749c>)
800d17a: f7f7 fde9 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(4, 27 + 120*i, "INPUT:", LEFT_MODE);
800d17e: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d182: b29b uxth r3, r3
800d184: 461a mov r2, r3
800d186: 0112 lsls r2, r2, #4
800d188: 1ad3 subs r3, r2, r3
800d18a: 00db lsls r3, r3, #3
800d18c: b29b uxth r3, r3
800d18e: 331b adds r3, #27
800d190: b299 uxth r1, r3
800d192: 2303 movs r3, #3
800d194: 4ac0 ldr r2, [pc, #768] ; (800d498 <Display+0x74a0>)
800d196: 2004 movs r0, #4
800d198: f7f7 fea0 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(3, 46+6 + 120*i, "HPF:", LEFT_MODE);
800d19c: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d1a0: b29b uxth r3, r3
800d1a2: 461a mov r2, r3
800d1a4: 0112 lsls r2, r2, #4
800d1a6: 1ad3 subs r3, r2, r3
800d1a8: 00db lsls r3, r3, #3
800d1aa: b29b uxth r3, r3
800d1ac: 3334 adds r3, #52 ; 0x34
800d1ae: b299 uxth r1, r3
800d1b0: 2303 movs r3, #3
800d1b2: 4aba ldr r2, [pc, #744] ; (800d49c <Display+0x74a4>)
800d1b4: 2003 movs r0, #3
800d1b6: f7f7 fe91 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(3, 65+6 + 120*i, "LPF:", LEFT_MODE);
800d1ba: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d1be: b29b uxth r3, r3
800d1c0: 461a mov r2, r3
800d1c2: 0112 lsls r2, r2, #4
800d1c4: 1ad3 subs r3, r2, r3
800d1c6: 00db lsls r3, r3, #3
800d1c8: b29b uxth r3, r3
800d1ca: 3347 adds r3, #71 ; 0x47
800d1cc: b299 uxth r1, r3
800d1ce: 2303 movs r3, #3
800d1d0: 4ab3 ldr r2, [pc, #716] ; (800d4a0 <Display+0x74a8>)
800d1d2: 2003 movs r0, #3
800d1d4: f7f7 fe82 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(4, 84+6 + 120*i, "OUT:", LEFT_MODE);
800d1d8: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d1dc: b29b uxth r3, r3
800d1de: 461a mov r2, r3
800d1e0: 0112 lsls r2, r2, #4
800d1e2: 1ad3 subs r3, r2, r3
800d1e4: 00db lsls r3, r3, #3
800d1e6: b29b uxth r3, r3
800d1e8: 335a adds r3, #90 ; 0x5a
800d1ea: b299 uxth r1, r3
800d1ec: 2303 movs r3, #3
800d1ee: 4aad ldr r2, [pc, #692] ; (800d4a4 <Display+0x74ac>)
800d1f0: 2004 movs r0, #4
800d1f2: f7f7 fe73 bl 8004edc <BSP_LCD_DisplayStringAt>
for(i = 0; i < 2; i++)
800d1f6: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d1fa: 3301 adds r3, #1
800d1fc: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d200: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d204: 2b01 cmp r3, #1
800d206: d9b5 bls.n 800d174 <Display+0x717c>
}
// 3-4 //
for(i = 0; i < 2; i++)
800d208: 2300 movs r3, #0
800d20a: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d20e: e045 b.n 800d29c <Display+0x72a4>
{
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800d210: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d214: 489f ldr r0, [pc, #636] ; (800d494 <Display+0x749c>)
800d216: f7f7 fd9b bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(164, 27 + 120*i, "INPUT:", LEFT_MODE);
800d21a: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d21e: b29b uxth r3, r3
800d220: 461a mov r2, r3
800d222: 0112 lsls r2, r2, #4
800d224: 1ad3 subs r3, r2, r3
800d226: 00db lsls r3, r3, #3
800d228: b29b uxth r3, r3
800d22a: 331b adds r3, #27
800d22c: b299 uxth r1, r3
800d22e: 2303 movs r3, #3
800d230: 4a99 ldr r2, [pc, #612] ; (800d498 <Display+0x74a0>)
800d232: 20a4 movs r0, #164 ; 0xa4
800d234: f7f7 fe52 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(163, 46+6 + 120*i, "HPF:", LEFT_MODE);
800d238: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d23c: b29b uxth r3, r3
800d23e: 461a mov r2, r3
800d240: 0112 lsls r2, r2, #4
800d242: 1ad3 subs r3, r2, r3
800d244: 00db lsls r3, r3, #3
800d246: b29b uxth r3, r3
800d248: 3334 adds r3, #52 ; 0x34
800d24a: b299 uxth r1, r3
800d24c: 2303 movs r3, #3
800d24e: 4a93 ldr r2, [pc, #588] ; (800d49c <Display+0x74a4>)
800d250: 20a3 movs r0, #163 ; 0xa3
800d252: f7f7 fe43 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(163, 65+6 + 120*i, "LPF:", LEFT_MODE);
800d256: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d25a: b29b uxth r3, r3
800d25c: 461a mov r2, r3
800d25e: 0112 lsls r2, r2, #4
800d260: 1ad3 subs r3, r2, r3
800d262: 00db lsls r3, r3, #3
800d264: b29b uxth r3, r3
800d266: 3347 adds r3, #71 ; 0x47
800d268: b299 uxth r1, r3
800d26a: 2303 movs r3, #3
800d26c: 4a8c ldr r2, [pc, #560] ; (800d4a0 <Display+0x74a8>)
800d26e: 20a3 movs r0, #163 ; 0xa3
800d270: f7f7 fe34 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(164, 84+6 + 120*i, "OUT::", LEFT_MODE);
800d274: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d278: b29b uxth r3, r3
800d27a: 461a mov r2, r3
800d27c: 0112 lsls r2, r2, #4
800d27e: 1ad3 subs r3, r2, r3
800d280: 00db lsls r3, r3, #3
800d282: b29b uxth r3, r3
800d284: 335a adds r3, #90 ; 0x5a
800d286: b299 uxth r1, r3
800d288: 2303 movs r3, #3
800d28a: 4a87 ldr r2, [pc, #540] ; (800d4a8 <Display+0x74b0>)
800d28c: 20a4 movs r0, #164 ; 0xa4
800d28e: f7f7 fe25 bl 8004edc <BSP_LCD_DisplayStringAt>
for(i = 0; i < 2; i++)
800d292: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d296: 3301 adds r3, #1
800d298: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d29c: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d2a0: 2b01 cmp r3, #1
800d2a2: d9b5 bls.n 800d210 <Display+0x7218>
}
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800d2a4: f04f 31ff mov.w r1, #4294967295
800d2a8: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800d2ac: f7f7 fd50 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(79, 8, "CHANNEL 1", CENTER_MODE);
800d2b0: 2301 movs r3, #1
800d2b2: 4a7e ldr r2, [pc, #504] ; (800d4ac <Display+0x74b4>)
800d2b4: 2108 movs r1, #8
800d2b6: 204f movs r0, #79 ; 0x4f
800d2b8: f7f7 fe10 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(79, 128, "CHANNEL 2", CENTER_MODE);
800d2bc: 2301 movs r3, #1
800d2be: 4a7c ldr r2, [pc, #496] ; (800d4b0 <Display+0x74b8>)
800d2c0: 2180 movs r1, #128 ; 0x80
800d2c2: 204f movs r0, #79 ; 0x4f
800d2c4: f7f7 fe0a bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(239, 8, "CHANNEL 3", CENTER_MODE);
800d2c8: 2301 movs r3, #1
800d2ca: 4a7a ldr r2, [pc, #488] ; (800d4b4 <Display+0x74bc>)
800d2cc: 2108 movs r1, #8
800d2ce: 20ef movs r0, #239 ; 0xef
800d2d0: f7f7 fe04 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(239, 128, "CHANNEL 4", CENTER_MODE);
800d2d4: 2301 movs r3, #1
800d2d6: 4a78 ldr r2, [pc, #480] ; (800d4b8 <Display+0x74c0>)
800d2d8: 2180 movs r1, #128 ; 0x80
800d2da: 20ef movs r0, #239 ; 0xef
800d2dc: f7f7 fdfe bl 8004edc <BSP_LCD_DisplayStringAt>
}
for(i = 0; i < 4; i++)
800d2e0: 2300 movs r3, #0
800d2e2: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d2e6: e018 b.n 800d31a <Display+0x7322>
{
if(MASK_CHANNELS & (1 << i)) {
800d2e8: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d2ec: 2201 movs r2, #1
800d2ee: fa02 f303 lsl.w r3, r2, r3
800d2f2: 461a mov r2, r3
800d2f4: 4b71 ldr r3, [pc, #452] ; (800d4bc <Display+0x74c4>)
800d2f6: 681b ldr r3, [r3, #0]
800d2f8: 4013 ands r3, r2
800d2fa: 2b00 cmp r3, #0
800d2fc: d008 beq.n 800d310 <Display+0x7318>
DrawChannel_4(i, blk);
800d2fe: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d302: b2da uxtb r2, r3
800d304: 4b6e ldr r3, [pc, #440] ; (800d4c0 <Display+0x74c8>)
800d306: 681b ldr r3, [r3, #0]
800d308: 4619 mov r1, r3
800d30a: 4610 mov r0, r2
800d30c: f000 fea4 bl 800e058 <DrawChannel_4>
for(i = 0; i < 4; i++)
800d310: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d314: 3301 adds r3, #1
800d316: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d31a: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d31e: 2b03 cmp r3, #3
800d320: d9e2 bls.n 800d2e8 <Display+0x72f0>
}
else
{
}
break;
800d322: e31d b.n 800d960 <Display+0x7968>
case CALIBR_00:
BSP_LCD_SetFont(&Font12);
800d324: 4867 ldr r0, [pc, #412] ; (800d4c4 <Display+0x74cc>)
800d326: f7f7 fd4f bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d32a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d32e: f06f 00ff mvn.w r0, #255 ; 0xff
800d332: f7f7 fd0d bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 24, "<22><><C2><FB><E1><E5><F0><E8> <20><><EA><E0><ED> <20><><E4> <20><><EA><E0><EB><E8><E1><F0><EE><E2>:", CENTER_MODE);
800d336: 2301 movs r3, #1
800d338: 4a63 ldr r2, [pc, #396] ; (800d4c8 <Display+0x74d0>)
800d33a: 2118 movs r1, #24
800d33c: 20a0 movs r0, #160 ; 0xa0
800d33e: f7f7 fdcd bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos != Ch1)
800d342: 4b62 ldr r3, [pc, #392] ; (800d4cc <Display+0x74d4>)
800d344: 781b ldrb r3, [r3, #0]
800d346: b2db uxtb r3, r3
800d348: 2b00 cmp r3, #0
800d34a: d006 beq.n 800d35a <Display+0x7362>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800d34c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d350: f04f 30ff mov.w r0, #4294967295
800d354: f7f7 fcfc bl 8004d50 <LCD_SetColors>
800d358: e005 b.n 800d366 <Display+0x736e>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800d35a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d35e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800d362: f7f7 fcf5 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 48+64, "<22><><CA><C0><CD> 1", CENTER_MODE);
800d366: 2301 movs r3, #1
800d368: 4a59 ldr r2, [pc, #356] ; (800d4d0 <Display+0x74d8>)
800d36a: 2170 movs r1, #112 ; 0x70
800d36c: 20a0 movs r0, #160 ; 0xa0
800d36e: f7f7 fdb5 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos != Ch2)
800d372: 4b56 ldr r3, [pc, #344] ; (800d4cc <Display+0x74d4>)
800d374: 781b ldrb r3, [r3, #0]
800d376: b2db uxtb r3, r3
800d378: 2b01 cmp r3, #1
800d37a: d006 beq.n 800d38a <Display+0x7392>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800d37c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d380: f04f 30ff mov.w r0, #4294967295
800d384: f7f7 fce4 bl 8004d50 <LCD_SetColors>
800d388: e005 b.n 800d396 <Display+0x739e>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800d38a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d38e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800d392: f7f7 fcdd bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 72+64, "<22><><CA><C0><CD> 2", CENTER_MODE);
800d396: 2301 movs r3, #1
800d398: 4a4e ldr r2, [pc, #312] ; (800d4d4 <Display+0x74dc>)
800d39a: 2188 movs r1, #136 ; 0x88
800d39c: 20a0 movs r0, #160 ; 0xa0
800d39e: f7f7 fd9d bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos != Ch3)
800d3a2: 4b4a ldr r3, [pc, #296] ; (800d4cc <Display+0x74d4>)
800d3a4: 781b ldrb r3, [r3, #0]
800d3a6: b2db uxtb r3, r3
800d3a8: 2b02 cmp r3, #2
800d3aa: d006 beq.n 800d3ba <Display+0x73c2>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800d3ac: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d3b0: f04f 30ff mov.w r0, #4294967295
800d3b4: f7f7 fccc bl 8004d50 <LCD_SetColors>
800d3b8: e005 b.n 800d3c6 <Display+0x73ce>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800d3ba: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d3be: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800d3c2: f7f7 fcc5 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 96+64, "<22><><CA><C0><CD> 3", CENTER_MODE);
800d3c6: 2301 movs r3, #1
800d3c8: 4a43 ldr r2, [pc, #268] ; (800d4d8 <Display+0x74e0>)
800d3ca: 21a0 movs r1, #160 ; 0xa0
800d3cc: 20a0 movs r0, #160 ; 0xa0
800d3ce: f7f7 fd85 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos != Ch4)
800d3d2: 4b3e ldr r3, [pc, #248] ; (800d4cc <Display+0x74d4>)
800d3d4: 781b ldrb r3, [r3, #0]
800d3d6: b2db uxtb r3, r3
800d3d8: 2b03 cmp r3, #3
800d3da: d006 beq.n 800d3ea <Display+0x73f2>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800d3dc: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d3e0: f04f 30ff mov.w r0, #4294967295
800d3e4: f7f7 fcb4 bl 8004d50 <LCD_SetColors>
800d3e8: e005 b.n 800d3f6 <Display+0x73fe>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800d3ea: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d3ee: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800d3f2: f7f7 fcad bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 120+64, "<22><><CA><C0><CD> 4", CENTER_MODE);
800d3f6: 2301 movs r3, #1
800d3f8: 4a38 ldr r2, [pc, #224] ; (800d4dc <Display+0x74e4>)
800d3fa: 21b8 movs r1, #184 ; 0xb8
800d3fc: 20a0 movs r0, #160 ; 0xa0
800d3fe: f7f7 fd6d bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos != Ch5)
800d402: 4b32 ldr r3, [pc, #200] ; (800d4cc <Display+0x74d4>)
800d404: 781b ldrb r3, [r3, #0]
800d406: b2db uxtb r3, r3
800d408: 2b04 cmp r3, #4
800d40a: d006 beq.n 800d41a <Display+0x7422>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800d40c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d410: f04f 30ff mov.w r0, #4294967295
800d414: f7f7 fc9c bl 8004d50 <LCD_SetColors>
800d418: e005 b.n 800d426 <Display+0x742e>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800d41a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d41e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800d422: f7f7 fc95 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 144+64, "<22><><C2><DB><D5>", CENTER_MODE);
800d426: 2301 movs r3, #1
800d428: 4a2d ldr r2, [pc, #180] ; (800d4e0 <Display+0x74e8>)
800d42a: 21d0 movs r1, #208 ; 0xd0
800d42c: 20a0 movs r0, #160 ; 0xa0
800d42e: f7f7 fd55 bl 8004edc <BSP_LCD_DisplayStringAt>
break;
800d432: e296 b.n 800d962 <Display+0x796a>
case CALIBR_0: // [CHARGE x1] + KU_1
BSP_LCD_SetFont(&Font12);
800d434: 4823 ldr r0, [pc, #140] ; (800d4c4 <Display+0x74cc>)
800d436: f7f7 fcc7 bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d43a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d43e: f06f 00ff mvn.w r0, #255 ; 0xff
800d442: f7f7 fc85 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x0.1]:", CENTER_MODE);
800d446: 2301 movs r3, #1
800d448: 4a26 ldr r2, [pc, #152] ; (800d4e4 <Display+0x74ec>)
800d44a: 210a movs r1, #10
800d44c: 20a0 movs r0, #160 ; 0xa0
800d44e: f7f7 fd45 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5000<30><30>", CENTER_MODE);
800d452: 2301 movs r3, #1
800d454: 4a24 ldr r2, [pc, #144] ; (800d4e8 <Display+0x74f0>)
800d456: 2118 movs r1, #24
800d458: 20a0 movs r0, #160 ; 0xa0
800d45a: f7f7 fd3f bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d45e: f001 fe8b bl 800f178 <DrawButtons>
break;
800d462: e27e b.n 800d962 <Display+0x796a>
case CALIBR_1: // CHARGE x1 + [KU_2]
BSP_LCD_SetFont(&Font12);
800d464: 4817 ldr r0, [pc, #92] ; (800d4c4 <Display+0x74cc>)
800d466: f7f7 fcaf bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d46a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d46e: f06f 00ff mvn.w r0, #255 ; 0xff
800d472: f7f7 fc6d bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x0.2]:", CENTER_MODE);
800d476: 2301 movs r3, #1
800d478: 4a1c ldr r2, [pc, #112] ; (800d4ec <Display+0x74f4>)
800d47a: 210a movs r1, #10
800d47c: 20a0 movs r0, #160 ; 0xa0
800d47e: f7f7 fd2d bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5000<30><30>", CENTER_MODE);
800d482: 2301 movs r3, #1
800d484: 4a18 ldr r2, [pc, #96] ; (800d4e8 <Display+0x74f0>)
800d486: 2118 movs r1, #24
800d488: 20a0 movs r0, #160 ; 0xa0
800d48a: f7f7 fd27 bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d48e: f001 fe73 bl 800f178 <DrawButtons>
break;
800d492: e266 b.n 800d962 <Display+0x796a>
800d494: ffd3d3d3 .word 0xffd3d3d3
800d498: 08018194 .word 0x08018194
800d49c: 0801819c .word 0x0801819c
800d4a0: 080181a4 .word 0x080181a4
800d4a4: 080181ac .word 0x080181ac
800d4a8: 080181b4 .word 0x080181b4
800d4ac: 080181bc .word 0x080181bc
800d4b0: 080181c8 .word 0x080181c8
800d4b4: 080181d4 .word 0x080181d4
800d4b8: 080181e0 .word 0x080181e0
800d4bc: 2002002c .word 0x2002002c
800d4c0: 2006ba78 .word 0x2006ba78
800d4c4: 20020000 .word 0x20020000
800d4c8: 080181ec .word 0x080181ec
800d4cc: 20020010 .word 0x20020010
800d4d0: 08018174 .word 0x08018174
800d4d4: 0801817c .word 0x0801817c
800d4d8: 08018184 .word 0x08018184
800d4dc: 0801818c .word 0x0801818c
800d4e0: 0801820c .word 0x0801820c
800d4e4: 08018214 .word 0x08018214
800d4e8: 0801822c .word 0x0801822c
800d4ec: 08018244 .word 0x08018244
case CALIBR_2: // CHARGE x1 + [KU_5]
BSP_LCD_SetFont(&Font12);
800d4f0: 48d7 ldr r0, [pc, #860] ; (800d850 <Display+0x7858>)
800d4f2: f7f7 fc69 bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d4f6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d4fa: f06f 00ff mvn.w r0, #255 ; 0xff
800d4fe: f7f7 fc27 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x0.5]:", CENTER_MODE);
800d502: 2301 movs r3, #1
800d504: 4ad3 ldr r2, [pc, #844] ; (800d854 <Display+0x785c>)
800d506: 210a movs r1, #10
800d508: 20a0 movs r0, #160 ; 0xa0
800d50a: f7f7 fce7 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5000<30><30>", CENTER_MODE);
800d50e: 2301 movs r3, #1
800d510: 4ad1 ldr r2, [pc, #836] ; (800d858 <Display+0x7860>)
800d512: 2118 movs r1, #24
800d514: 20a0 movs r0, #160 ; 0xa0
800d516: f7f7 fce1 bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d51a: f001 fe2d bl 800f178 <DrawButtons>
break;
800d51e: e220 b.n 800d962 <Display+0x796a>
case CALIBR_3: // CHARGE x1 + [KU_10]
BSP_LCD_SetFont(&Font12);
800d520: 48cb ldr r0, [pc, #812] ; (800d850 <Display+0x7858>)
800d522: f7f7 fc51 bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d526: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d52a: f06f 00ff mvn.w r0, #255 ; 0xff
800d52e: f7f7 fc0f bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x1]:", CENTER_MODE);
800d532: 2301 movs r3, #1
800d534: 4ac9 ldr r2, [pc, #804] ; (800d85c <Display+0x7864>)
800d536: 210a movs r1, #10
800d538: 20a0 movs r0, #160 ; 0xa0
800d53a: f7f7 fccf bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5000<30><30>", CENTER_MODE);
800d53e: 2301 movs r3, #1
800d540: 4ac5 ldr r2, [pc, #788] ; (800d858 <Display+0x7860>)
800d542: 2118 movs r1, #24
800d544: 20a0 movs r0, #160 ; 0xa0
800d546: f7f7 fcc9 bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d54a: f001 fe15 bl 800f178 <DrawButtons>
break;
800d54e: e208 b.n 800d962 <Display+0x796a>
case CALIBR_4: // CHARGE x1 + [KU_x10]
BSP_LCD_SetFont(&Font12);
800d550: 48bf ldr r0, [pc, #764] ; (800d850 <Display+0x7858>)
800d552: f7f7 fc39 bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d556: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d55a: f06f 00ff mvn.w r0, #255 ; 0xff
800d55e: f7f7 fbf7 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x2]:", CENTER_MODE);
800d562: 2301 movs r3, #1
800d564: 4abe ldr r2, [pc, #760] ; (800d860 <Display+0x7868>)
800d566: 210a movs r1, #10
800d568: 20a0 movs r0, #160 ; 0xa0
800d56a: f7f7 fcb7 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 2500<30><30>", CENTER_MODE);
800d56e: 2301 movs r3, #1
800d570: 4abc ldr r2, [pc, #752] ; (800d864 <Display+0x786c>)
800d572: 2118 movs r1, #24
800d574: 20a0 movs r0, #160 ; 0xa0
800d576: f7f7 fcb1 bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d57a: f001 fdfd bl 800f178 <DrawButtons>
break;
800d57e: e1f0 b.n 800d962 <Display+0x796a>
case CALIBR_5: // [CHARGE x10] + KU_1
BSP_LCD_SetFont(&Font12);
800d580: 48b3 ldr r0, [pc, #716] ; (800d850 <Display+0x7858>)
800d582: f7f7 fc21 bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d586: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d58a: f06f 00ff mvn.w r0, #255 ; 0xff
800d58e: f7f7 fbdf bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x5]:", CENTER_MODE);
800d592: 2301 movs r3, #1
800d594: 4ab4 ldr r2, [pc, #720] ; (800d868 <Display+0x7870>)
800d596: 210a movs r1, #10
800d598: 20a0 movs r0, #160 ; 0xa0
800d59a: f7f7 fc9f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 1000<30><30>", CENTER_MODE);
800d59e: 2301 movs r3, #1
800d5a0: 4ab2 ldr r2, [pc, #712] ; (800d86c <Display+0x7874>)
800d5a2: 2118 movs r1, #24
800d5a4: 20a0 movs r0, #160 ; 0xa0
800d5a6: f7f7 fc99 bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d5aa: f001 fde5 bl 800f178 <DrawButtons>
break;
800d5ae: e1d8 b.n 800d962 <Display+0x796a>
case CALIBR_6: // [CHARGE x0.1] + KU_1
BSP_LCD_SetFont(&Font12);
800d5b0: 48a7 ldr r0, [pc, #668] ; (800d850 <Display+0x7858>)
800d5b2: f7f7 fc09 bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d5b6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d5ba: f06f 00ff mvn.w r0, #255 ; 0xff
800d5be: f7f7 fbc7 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x10]:", CENTER_MODE);
800d5c2: 2301 movs r3, #1
800d5c4: 4aaa ldr r2, [pc, #680] ; (800d870 <Display+0x7878>)
800d5c6: 210a movs r1, #10
800d5c8: 20a0 movs r0, #160 ; 0xa0
800d5ca: f7f7 fc87 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 500<30><30>", CENTER_MODE);
800d5ce: 2301 movs r3, #1
800d5d0: 4aa8 ldr r2, [pc, #672] ; (800d874 <Display+0x787c>)
800d5d2: 2118 movs r1, #24
800d5d4: 20a0 movs r0, #160 ; 0xa0
800d5d6: f7f7 fc81 bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d5da: f001 fdcd bl 800f178 <DrawButtons>
break;
800d5de: e1c0 b.n 800d962 <Display+0x796a>
case CALIBR_7: // [ICP x1] + KU_1
BSP_LCD_SetFont(&Font12);
800d5e0: 489b ldr r0, [pc, #620] ; (800d850 <Display+0x7858>)
800d5e2: f7f7 fbf1 bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d5e6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d5ea: f06f 00ff mvn.w r0, #255 ; 0xff
800d5ee: f7f7 fbaf bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x20]:", CENTER_MODE);
800d5f2: 2301 movs r3, #1
800d5f4: 4aa0 ldr r2, [pc, #640] ; (800d878 <Display+0x7880>)
800d5f6: 210a movs r1, #10
800d5f8: 20a0 movs r0, #160 ; 0xa0
800d5fa: f7f7 fc6f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 250<35><30>", CENTER_MODE);
800d5fe: 2301 movs r3, #1
800d600: 4a9e ldr r2, [pc, #632] ; (800d87c <Display+0x7884>)
800d602: 2118 movs r1, #24
800d604: 20a0 movs r0, #160 ; 0xa0
800d606: f7f7 fc69 bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d60a: f001 fdb5 bl 800f178 <DrawButtons>
break;
800d60e: e1a8 b.n 800d962 <Display+0x796a>
case CALIBR_8: // [ICP x10] + KU_1
BSP_LCD_SetFont(&Font12);
800d610: 488f ldr r0, [pc, #572] ; (800d850 <Display+0x7858>)
800d612: f7f7 fbd9 bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d616: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d61a: f06f 00ff mvn.w r0, #255 ; 0xff
800d61e: f7f7 fb97 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x50]:", CENTER_MODE);
800d622: 2301 movs r3, #1
800d624: 4a96 ldr r2, [pc, #600] ; (800d880 <Display+0x7888>)
800d626: 210a movs r1, #10
800d628: 20a0 movs r0, #160 ; 0xa0
800d62a: f7f7 fc57 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 100<30><30>", CENTER_MODE);
800d62e: 2301 movs r3, #1
800d630: 4a94 ldr r2, [pc, #592] ; (800d884 <Display+0x788c>)
800d632: 2118 movs r1, #24
800d634: 20a0 movs r0, #160 ; 0xa0
800d636: f7f7 fc51 bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d63a: f001 fd9d bl 800f178 <DrawButtons>
break;
800d63e: e190 b.n 800d962 <Display+0x796a>
case CALIBR_9: // [CHARGE x10 + KU_2 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d640: 4883 ldr r0, [pc, #524] ; (800d850 <Display+0x7858>)
800d642: f7f7 fbc1 bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d646: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d64a: f06f 00ff mvn.w r0, #255 ; 0xff
800d64e: f7f7 fb7f bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x100]:", CENTER_MODE);
800d652: 2301 movs r3, #1
800d654: 4a8c ldr r2, [pc, #560] ; (800d888 <Display+0x7890>)
800d656: 210a movs r1, #10
800d658: 20a0 movs r0, #160 ; 0xa0
800d65a: f7f7 fc3f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 50<35><30>", CENTER_MODE);
800d65e: 2301 movs r3, #1
800d660: 4a8a ldr r2, [pc, #552] ; (800d88c <Display+0x7894>)
800d662: 2118 movs r1, #24
800d664: 20a0 movs r0, #160 ; 0xa0
800d666: f7f7 fc39 bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d66a: f001 fd85 bl 800f178 <DrawButtons>
break;
800d66e: e178 b.n 800d962 <Display+0x796a>
case CALIBR_10: // [CHARGE x10 + KU_5 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d670: 4877 ldr r0, [pc, #476] ; (800d850 <Display+0x7858>)
800d672: f7f7 fba9 bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d676: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d67a: f06f 00ff mvn.w r0, #255 ; 0xff
800d67e: f7f7 fb67 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x200]:", CENTER_MODE);
800d682: 2301 movs r3, #1
800d684: 4a82 ldr r2, [pc, #520] ; (800d890 <Display+0x7898>)
800d686: 210a movs r1, #10
800d688: 20a0 movs r0, #160 ; 0xa0
800d68a: f7f7 fc27 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 25<32><35>", CENTER_MODE);
800d68e: 2301 movs r3, #1
800d690: 4a80 ldr r2, [pc, #512] ; (800d894 <Display+0x789c>)
800d692: 2118 movs r1, #24
800d694: 20a0 movs r0, #160 ; 0xa0
800d696: f7f7 fc21 bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d69a: f001 fd6d bl 800f178 <DrawButtons>
break;
800d69e: e160 b.n 800d962 <Display+0x796a>
case CALIBR_11: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d6a0: 486b ldr r0, [pc, #428] ; (800d850 <Display+0x7858>)
800d6a2: f7f7 fb91 bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d6a6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d6aa: f06f 00ff mvn.w r0, #255 ; 0xff
800d6ae: f7f7 fb4f bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x500]:", CENTER_MODE);
800d6b2: 2301 movs r3, #1
800d6b4: 4a78 ldr r2, [pc, #480] ; (800d898 <Display+0x78a0>)
800d6b6: 210a movs r1, #10
800d6b8: 20a0 movs r0, #160 ; 0xa0
800d6ba: f7f7 fc0f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 10<31><30>", CENTER_MODE);
800d6be: 2301 movs r3, #1
800d6c0: 4a76 ldr r2, [pc, #472] ; (800d89c <Display+0x78a4>)
800d6c2: 2118 movs r1, #24
800d6c4: 20a0 movs r0, #160 ; 0xa0
800d6c6: f7f7 fc09 bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d6ca: f001 fd55 bl 800f178 <DrawButtons>
break;
800d6ce: e148 b.n 800d962 <Display+0x796a>
case CALIBR_12: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d6d0: 485f ldr r0, [pc, #380] ; (800d850 <Display+0x7858>)
800d6d2: f7f7 fb79 bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d6d6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d6da: f06f 00ff mvn.w r0, #255 ; 0xff
800d6de: f7f7 fb37 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x1000]:", CENTER_MODE);
800d6e2: 2301 movs r3, #1
800d6e4: 4a6e ldr r2, [pc, #440] ; (800d8a0 <Display+0x78a8>)
800d6e6: 210a movs r1, #10
800d6e8: 20a0 movs r0, #160 ; 0xa0
800d6ea: f7f7 fbf7 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5<><35>", CENTER_MODE);
800d6ee: 2301 movs r3, #1
800d6f0: 4a6c ldr r2, [pc, #432] ; (800d8a4 <Display+0x78ac>)
800d6f2: 2118 movs r1, #24
800d6f4: 20a0 movs r0, #160 ; 0xa0
800d6f6: f7f7 fbf1 bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d6fa: f001 fd3d bl 800f178 <DrawButtons>
break;
800d6fe: e130 b.n 800d962 <Display+0x796a>
case CALIBR_13: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d700: 4853 ldr r0, [pc, #332] ; (800d850 <Display+0x7858>)
800d702: f7f7 fb61 bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d706: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d70a: f06f 00ff mvn.w r0, #255 ; 0xff
800d70e: f7f7 fb1f bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx1]:", CENTER_MODE);
800d712: 2301 movs r3, #1
800d714: 4a64 ldr r2, [pc, #400] ; (800d8a8 <Display+0x78b0>)
800d716: 210a movs r1, #10
800d718: 20a0 movs r0, #160 ; 0xa0
800d71a: f7f7 fbdf bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5000<30><30>", CENTER_MODE);
800d71e: 2301 movs r3, #1
800d720: 4a4d ldr r2, [pc, #308] ; (800d858 <Display+0x7860>)
800d722: 2118 movs r1, #24
800d724: 20a0 movs r0, #160 ; 0xa0
800d726: f7f7 fbd9 bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d72a: f001 fd25 bl 800f178 <DrawButtons>
break;
800d72e: e118 b.n 800d962 <Display+0x796a>
case CALIBR_14: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d730: 4847 ldr r0, [pc, #284] ; (800d850 <Display+0x7858>)
800d732: f7f7 fb49 bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d736: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d73a: f06f 00ff mvn.w r0, #255 ; 0xff
800d73e: f7f7 fb07 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx2]:", CENTER_MODE);
800d742: 2301 movs r3, #1
800d744: 4a59 ldr r2, [pc, #356] ; (800d8ac <Display+0x78b4>)
800d746: 210a movs r1, #10
800d748: 20a0 movs r0, #160 ; 0xa0
800d74a: f7f7 fbc7 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 2500<30><30>", CENTER_MODE);
800d74e: 2301 movs r3, #1
800d750: 4a44 ldr r2, [pc, #272] ; (800d864 <Display+0x786c>)
800d752: 2118 movs r1, #24
800d754: 20a0 movs r0, #160 ; 0xa0
800d756: f7f7 fbc1 bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d75a: f001 fd0d bl 800f178 <DrawButtons>
break;
800d75e: e100 b.n 800d962 <Display+0x796a>
case CALIBR_15: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d760: 483b ldr r0, [pc, #236] ; (800d850 <Display+0x7858>)
800d762: f7f7 fb31 bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d766: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d76a: f06f 00ff mvn.w r0, #255 ; 0xff
800d76e: f7f7 faef bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx5]:", CENTER_MODE);
800d772: 2301 movs r3, #1
800d774: 4a4e ldr r2, [pc, #312] ; (800d8b0 <Display+0x78b8>)
800d776: 210a movs r1, #10
800d778: 20a0 movs r0, #160 ; 0xa0
800d77a: f7f7 fbaf bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 1000<30><30>", CENTER_MODE);
800d77e: 2301 movs r3, #1
800d780: 4a3a ldr r2, [pc, #232] ; (800d86c <Display+0x7874>)
800d782: 2118 movs r1, #24
800d784: 20a0 movs r0, #160 ; 0xa0
800d786: f7f7 fba9 bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d78a: f001 fcf5 bl 800f178 <DrawButtons>
break;
800d78e: e0e8 b.n 800d962 <Display+0x796a>
case CALIBR_16: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d790: 482f ldr r0, [pc, #188] ; (800d850 <Display+0x7858>)
800d792: f7f7 fb19 bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d796: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d79a: f06f 00ff mvn.w r0, #255 ; 0xff
800d79e: f7f7 fad7 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx10]:", CENTER_MODE);
800d7a2: 2301 movs r3, #1
800d7a4: 4a43 ldr r2, [pc, #268] ; (800d8b4 <Display+0x78bc>)
800d7a6: 210a movs r1, #10
800d7a8: 20a0 movs r0, #160 ; 0xa0
800d7aa: f7f7 fb97 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 500<30><30>", CENTER_MODE);
800d7ae: 2301 movs r3, #1
800d7b0: 4a30 ldr r2, [pc, #192] ; (800d874 <Display+0x787c>)
800d7b2: 2118 movs r1, #24
800d7b4: 20a0 movs r0, #160 ; 0xa0
800d7b6: f7f7 fb91 bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d7ba: f001 fcdd bl 800f178 <DrawButtons>
break;
800d7be: e0d0 b.n 800d962 <Display+0x796a>
case CALIBR_17: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d7c0: 4823 ldr r0, [pc, #140] ; (800d850 <Display+0x7858>)
800d7c2: f7f7 fb01 bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d7c6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d7ca: f06f 00ff mvn.w r0, #255 ; 0xff
800d7ce: f7f7 fabf bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx20]:", CENTER_MODE);
800d7d2: 2301 movs r3, #1
800d7d4: 4a38 ldr r2, [pc, #224] ; (800d8b8 <Display+0x78c0>)
800d7d6: 210a movs r1, #10
800d7d8: 20a0 movs r0, #160 ; 0xa0
800d7da: f7f7 fb7f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 250<35><30>", CENTER_MODE);
800d7de: 2301 movs r3, #1
800d7e0: 4a26 ldr r2, [pc, #152] ; (800d87c <Display+0x7884>)
800d7e2: 2118 movs r1, #24
800d7e4: 20a0 movs r0, #160 ; 0xa0
800d7e6: f7f7 fb79 bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d7ea: f001 fcc5 bl 800f178 <DrawButtons>
break;
800d7ee: e0b8 b.n 800d962 <Display+0x796a>
case CALIBR_18: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d7f0: 4817 ldr r0, [pc, #92] ; (800d850 <Display+0x7858>)
800d7f2: f7f7 fae9 bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d7f6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d7fa: f06f 00ff mvn.w r0, #255 ; 0xff
800d7fe: f7f7 faa7 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx50]:", CENTER_MODE);
800d802: 2301 movs r3, #1
800d804: 4a2d ldr r2, [pc, #180] ; (800d8bc <Display+0x78c4>)
800d806: 210a movs r1, #10
800d808: 20a0 movs r0, #160 ; 0xa0
800d80a: f7f7 fb67 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 100<30><30>", CENTER_MODE);
800d80e: 2301 movs r3, #1
800d810: 4a1c ldr r2, [pc, #112] ; (800d884 <Display+0x788c>)
800d812: 2118 movs r1, #24
800d814: 20a0 movs r0, #160 ; 0xa0
800d816: f7f7 fb61 bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d81a: f001 fcad bl 800f178 <DrawButtons>
break;
800d81e: e0a0 b.n 800d962 <Display+0x796a>
case CALIBR_19: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d820: 480b ldr r0, [pc, #44] ; (800d850 <Display+0x7858>)
800d822: f7f7 fad1 bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d826: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d82a: f06f 00ff mvn.w r0, #255 ; 0xff
800d82e: f7f7 fa8f bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx100]:", CENTER_MODE);
800d832: 2301 movs r3, #1
800d834: 4a22 ldr r2, [pc, #136] ; (800d8c0 <Display+0x78c8>)
800d836: 210a movs r1, #10
800d838: 20a0 movs r0, #160 ; 0xa0
800d83a: f7f7 fb4f bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 50<35><30>", CENTER_MODE);
800d83e: 2301 movs r3, #1
800d840: 4a12 ldr r2, [pc, #72] ; (800d88c <Display+0x7894>)
800d842: 2118 movs r1, #24
800d844: 20a0 movs r0, #160 ; 0xa0
800d846: f7f7 fb49 bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d84a: f001 fc95 bl 800f178 <DrawButtons>
break;
800d84e: e088 b.n 800d962 <Display+0x796a>
800d850: 20020000 .word 0x20020000
800d854: 0801825c .word 0x0801825c
800d858: 0801822c .word 0x0801822c
800d85c: 08018274 .word 0x08018274
800d860: 0801828c .word 0x0801828c
800d864: 080182a4 .word 0x080182a4
800d868: 080182bc .word 0x080182bc
800d86c: 080182d4 .word 0x080182d4
800d870: 080182ec .word 0x080182ec
800d874: 08018304 .word 0x08018304
800d878: 0801831c .word 0x0801831c
800d87c: 08018334 .word 0x08018334
800d880: 0801834c .word 0x0801834c
800d884: 08018364 .word 0x08018364
800d888: 0801837c .word 0x0801837c
800d88c: 08018394 .word 0x08018394
800d890: 080183ac .word 0x080183ac
800d894: 080183c4 .word 0x080183c4
800d898: 080183dc .word 0x080183dc
800d89c: 080183f4 .word 0x080183f4
800d8a0: 0801840c .word 0x0801840c
800d8a4: 08018424 .word 0x08018424
800d8a8: 0801843c .word 0x0801843c
800d8ac: 08018450 .word 0x08018450
800d8b0: 08018464 .word 0x08018464
800d8b4: 08018478 .word 0x08018478
800d8b8: 08018490 .word 0x08018490
800d8bc: 080184a8 .word 0x080184a8
800d8c0: 080184c0 .word 0x080184c0
case CALIBR_20: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d8c4: 482e ldr r0, [pc, #184] ; (800d980 <Display+0x7988>)
800d8c6: f7f7 fa7f bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d8ca: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d8ce: f06f 00ff mvn.w r0, #255 ; 0xff
800d8d2: f7f7 fa3d bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx200]:", CENTER_MODE);
800d8d6: 2301 movs r3, #1
800d8d8: 4a2a ldr r2, [pc, #168] ; (800d984 <Display+0x798c>)
800d8da: 210a movs r1, #10
800d8dc: 20a0 movs r0, #160 ; 0xa0
800d8de: f7f7 fafd bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 25<32><35>", CENTER_MODE);
800d8e2: 2301 movs r3, #1
800d8e4: 4a28 ldr r2, [pc, #160] ; (800d988 <Display+0x7990>)
800d8e6: 2118 movs r1, #24
800d8e8: 20a0 movs r0, #160 ; 0xa0
800d8ea: f7f7 faf7 bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d8ee: f001 fc43 bl 800f178 <DrawButtons>
break;
800d8f2: e036 b.n 800d962 <Display+0x796a>
case CALIBR_21: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d8f4: 4822 ldr r0, [pc, #136] ; (800d980 <Display+0x7988>)
800d8f6: f7f7 fa67 bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d8fa: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d8fe: f06f 00ff mvn.w r0, #255 ; 0xff
800d902: f7f7 fa25 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx500]:", CENTER_MODE);
800d906: 2301 movs r3, #1
800d908: 4a20 ldr r2, [pc, #128] ; (800d98c <Display+0x7994>)
800d90a: 210a movs r1, #10
800d90c: 20a0 movs r0, #160 ; 0xa0
800d90e: f7f7 fae5 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 10<31><30>", CENTER_MODE);
800d912: 2301 movs r3, #1
800d914: 4a1e ldr r2, [pc, #120] ; (800d990 <Display+0x7998>)
800d916: 2118 movs r1, #24
800d918: 20a0 movs r0, #160 ; 0xa0
800d91a: f7f7 fadf bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d91e: f001 fc2b bl 800f178 <DrawButtons>
break;
800d922: e01e b.n 800d962 <Display+0x796a>
case CALIBR_22: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d924: 4816 ldr r0, [pc, #88] ; (800d980 <Display+0x7988>)
800d926: f7f7 fa4f bl 8004dc8 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d92a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d92e: f06f 00ff mvn.w r0, #255 ; 0xff
800d932: f7f7 fa0d bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx1000]:", CENTER_MODE);
800d936: 2301 movs r3, #1
800d938: 4a16 ldr r2, [pc, #88] ; (800d994 <Display+0x799c>)
800d93a: 210a movs r1, #10
800d93c: 20a0 movs r0, #160 ; 0xa0
800d93e: f7f7 facd bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5<><35>", CENTER_MODE);
800d942: 2301 movs r3, #1
800d944: 4a14 ldr r2, [pc, #80] ; (800d998 <Display+0x79a0>)
800d946: 2118 movs r1, #24
800d948: 20a0 movs r0, #160 ; 0xa0
800d94a: f7f7 fac7 bl 8004edc <BSP_LCD_DisplayStringAt>
DrawButtons();
800d94e: f001 fc13 bl 800f178 <DrawButtons>
break;
800d952: e006 b.n 800d962 <Display+0x796a>
break;
800d954: bf00 nop
800d956: e004 b.n 800d962 <Display+0x796a>
break;
800d958: bf00 nop
800d95a: e002 b.n 800d962 <Display+0x796a>
break;
800d95c: bf00 nop
800d95e: e000 b.n 800d962 <Display+0x796a>
break;
800d960: bf00 nop
Redrawing = false;
800d962: 4b0e ldr r3, [pc, #56] ; (800d99c <Display+0x79a4>)
800d964: 2200 movs r2, #0
800d966: 701a strb r2, [r3, #0]
RefreshScreen = true;
800d968: 4b0d ldr r3, [pc, #52] ; (800d9a0 <Display+0x79a8>)
800d96a: 2201 movs r2, #1
800d96c: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0);
800d96e: 2100 movs r1, #0
800d970: 480c ldr r0, [pc, #48] ; (800d9a4 <Display+0x79ac>)
800d972: f005 fb27 bl 8012fc4 <HAL_LTDC_ProgramLineEvent>
//**************************************************************************************************************
//**************************************************************************************************************
}
800d976: bf00 nop
800d978: f507 7752 add.w r7, r7, #840 ; 0x348
800d97c: 46bd mov sp, r7
800d97e: bd80 pop {r7, pc}
800d980: 20020000 .word 0x20020000
800d984: 080184d8 .word 0x080184d8
800d988: 080183c4 .word 0x080183c4
800d98c: 080184f0 .word 0x080184f0
800d990: 080183f4 .word 0x080183f4
800d994: 08018508 .word 0x08018508
800d998: 08018424 .word 0x08018424
800d99c: 2006ba74 .word 0x2006ba74
800d9a0: 2006ba60 .word 0x2006ba60
800d9a4: 2006c174 .word 0x2006c174
0800d9a8 <DrawMySpinner>:
void DrawMySpinner(uint16_t x, uint16_t y) //
{
800d9a8: b580 push {r7, lr}
800d9aa: b082 sub sp, #8
800d9ac: af00 add r7, sp, #0
800d9ae: 4603 mov r3, r0
800d9b0: 460a mov r2, r1
800d9b2: 80fb strh r3, [r7, #6]
800d9b4: 4613 mov r3, r2
800d9b6: 80bb strh r3, [r7, #4]
static uint32_t rotate = 0;
switch(rotate)
800d9b8: 4b98 ldr r3, [pc, #608] ; (800dc1c <DrawMySpinner+0x274>)
800d9ba: 681b ldr r3, [r3, #0]
800d9bc: 2b07 cmp r3, #7
800d9be: f200 8311 bhi.w 800dfe4 <DrawMySpinner+0x63c>
800d9c2: a201 add r2, pc, #4 ; (adr r2, 800d9c8 <DrawMySpinner+0x20>)
800d9c4: f852 f023 ldr.w pc, [r2, r3, lsl #2]
800d9c8: 0800d9e9 .word 0x0800d9e9
800d9cc: 0800daa5 .word 0x0800daa5
800d9d0: 0800db61 .word 0x0800db61
800d9d4: 0800dc2d .word 0x0800dc2d
800d9d8: 0800dce9 .word 0x0800dce9
800d9dc: 0800dda5 .word 0x0800dda5
800d9e0: 0800de61 .word 0x0800de61
800d9e4: 0800df29 .word 0x0800df29
{
case 0:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800d9e8: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d9ec: f04f 30ff mov.w r0, #4294967295
800d9f0: f7f7 f9ae bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800d9f4: 88bb ldrh r3, [r7, #4]
800d9f6: 330a adds r3, #10
800d9f8: b299 uxth r1, r3
800d9fa: 88fb ldrh r3, [r7, #6]
800d9fc: 2203 movs r2, #3
800d9fe: 4618 mov r0, r3
800da00: f7f7 fde2 bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800da04: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800da08: 4885 ldr r0, [pc, #532] ; (800dc20 <DrawMySpinner+0x278>)
800da0a: f7f7 f9a1 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800da0e: 88fb ldrh r3, [r7, #6]
800da10: 3307 adds r3, #7
800da12: b298 uxth r0, r3
800da14: 88bb ldrh r3, [r7, #4]
800da16: 3307 adds r3, #7
800da18: b29b uxth r3, r3
800da1a: 2203 movs r2, #3
800da1c: 4619 mov r1, r3
800da1e: f7f7 fdd3 bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800da22: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800da26: 487f ldr r0, [pc, #508] ; (800dc24 <DrawMySpinner+0x27c>)
800da28: f7f7 f992 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800da2c: 88fb ldrh r3, [r7, #6]
800da2e: 330a adds r3, #10
800da30: b29b uxth r3, r3
800da32: 88b9 ldrh r1, [r7, #4]
800da34: 2203 movs r2, #3
800da36: 4618 mov r0, r3
800da38: f7f7 fdc6 bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800da3c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800da40: 4879 ldr r0, [pc, #484] ; (800dc28 <DrawMySpinner+0x280>)
800da42: f7f7 f985 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800da46: 88fb ldrh r3, [r7, #6]
800da48: 3b07 subs r3, #7
800da4a: b298 uxth r0, r3
800da4c: 88bb ldrh r3, [r7, #4]
800da4e: 3307 adds r3, #7
800da50: b29b uxth r3, r3
800da52: 2203 movs r2, #3
800da54: 4619 mov r1, r3
800da56: f7f7 fdb7 bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800da5a: 88fb ldrh r3, [r7, #6]
800da5c: 3b0a subs r3, #10
800da5e: b29b uxth r3, r3
800da60: 88b9 ldrh r1, [r7, #4]
800da62: 2203 movs r2, #3
800da64: 4618 mov r0, r3
800da66: f7f7 fdaf bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800da6a: 88fb ldrh r3, [r7, #6]
800da6c: 3b07 subs r3, #7
800da6e: b298 uxth r0, r3
800da70: 88bb ldrh r3, [r7, #4]
800da72: 3b07 subs r3, #7
800da74: b29b uxth r3, r3
800da76: 2203 movs r2, #3
800da78: 4619 mov r1, r3
800da7a: f7f7 fda5 bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800da7e: 88bb ldrh r3, [r7, #4]
800da80: 3b0a subs r3, #10
800da82: b299 uxth r1, r3
800da84: 88fb ldrh r3, [r7, #6]
800da86: 2203 movs r2, #3
800da88: 4618 mov r0, r3
800da8a: f7f7 fd9d bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800da8e: 88fb ldrh r3, [r7, #6]
800da90: 3307 adds r3, #7
800da92: b298 uxth r0, r3
800da94: 88bb ldrh r3, [r7, #4]
800da96: 3b07 subs r3, #7
800da98: b29b uxth r3, r3
800da9a: 2203 movs r2, #3
800da9c: 4619 mov r1, r3
800da9e: f7f7 fd93 bl 80055c8 <BSP_LCD_FillCircle>
break;
800daa2: e29f b.n 800dfe4 <DrawMySpinner+0x63c>
case 1:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800daa4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800daa8: f04f 30ff mov.w r0, #4294967295
800daac: f7f7 f950 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800dab0: 88fb ldrh r3, [r7, #6]
800dab2: 3b07 subs r3, #7
800dab4: b298 uxth r0, r3
800dab6: 88bb ldrh r3, [r7, #4]
800dab8: 3307 adds r3, #7
800daba: b29b uxth r3, r3
800dabc: 2203 movs r2, #3
800dabe: 4619 mov r1, r3
800dac0: f7f7 fd82 bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800dac4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dac8: 4855 ldr r0, [pc, #340] ; (800dc20 <DrawMySpinner+0x278>)
800daca: f7f7 f941 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800dace: 88bb ldrh r3, [r7, #4]
800dad0: 330a adds r3, #10
800dad2: b299 uxth r1, r3
800dad4: 88fb ldrh r3, [r7, #6]
800dad6: 2203 movs r2, #3
800dad8: 4618 mov r0, r3
800dada: f7f7 fd75 bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800dade: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dae2: 4850 ldr r0, [pc, #320] ; (800dc24 <DrawMySpinner+0x27c>)
800dae4: f7f7 f934 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800dae8: 88fb ldrh r3, [r7, #6]
800daea: 3307 adds r3, #7
800daec: b298 uxth r0, r3
800daee: 88bb ldrh r3, [r7, #4]
800daf0: 3307 adds r3, #7
800daf2: b29b uxth r3, r3
800daf4: 2203 movs r2, #3
800daf6: 4619 mov r1, r3
800daf8: f7f7 fd66 bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800dafc: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800db00: 4849 ldr r0, [pc, #292] ; (800dc28 <DrawMySpinner+0x280>)
800db02: f7f7 f925 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800db06: 88fb ldrh r3, [r7, #6]
800db08: 3b0a subs r3, #10
800db0a: b29b uxth r3, r3
800db0c: 88b9 ldrh r1, [r7, #4]
800db0e: 2203 movs r2, #3
800db10: 4618 mov r0, r3
800db12: f7f7 fd59 bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800db16: 88fb ldrh r3, [r7, #6]
800db18: 3b07 subs r3, #7
800db1a: b298 uxth r0, r3
800db1c: 88bb ldrh r3, [r7, #4]
800db1e: 3b07 subs r3, #7
800db20: b29b uxth r3, r3
800db22: 2203 movs r2, #3
800db24: 4619 mov r1, r3
800db26: f7f7 fd4f bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800db2a: 88bb ldrh r3, [r7, #4]
800db2c: 3b0a subs r3, #10
800db2e: b299 uxth r1, r3
800db30: 88fb ldrh r3, [r7, #6]
800db32: 2203 movs r2, #3
800db34: 4618 mov r0, r3
800db36: f7f7 fd47 bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800db3a: 88fb ldrh r3, [r7, #6]
800db3c: 3307 adds r3, #7
800db3e: b298 uxth r0, r3
800db40: 88bb ldrh r3, [r7, #4]
800db42: 3b07 subs r3, #7
800db44: b29b uxth r3, r3
800db46: 2203 movs r2, #3
800db48: 4619 mov r1, r3
800db4a: f7f7 fd3d bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800db4e: 88fb ldrh r3, [r7, #6]
800db50: 330a adds r3, #10
800db52: b29b uxth r3, r3
800db54: 88b9 ldrh r1, [r7, #4]
800db56: 2203 movs r2, #3
800db58: 4618 mov r0, r3
800db5a: f7f7 fd35 bl 80055c8 <BSP_LCD_FillCircle>
break;
800db5e: e241 b.n 800dfe4 <DrawMySpinner+0x63c>
case 2:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800db60: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800db64: f04f 30ff mov.w r0, #4294967295
800db68: f7f7 f8f2 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800db6c: 88fb ldrh r3, [r7, #6]
800db6e: 3b0a subs r3, #10
800db70: b29b uxth r3, r3
800db72: 88b9 ldrh r1, [r7, #4]
800db74: 2203 movs r2, #3
800db76: 4618 mov r0, r3
800db78: f7f7 fd26 bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800db7c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800db80: 4827 ldr r0, [pc, #156] ; (800dc20 <DrawMySpinner+0x278>)
800db82: f7f7 f8e5 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800db86: 88fb ldrh r3, [r7, #6]
800db88: 3b07 subs r3, #7
800db8a: b298 uxth r0, r3
800db8c: 88bb ldrh r3, [r7, #4]
800db8e: 3307 adds r3, #7
800db90: b29b uxth r3, r3
800db92: 2203 movs r2, #3
800db94: 4619 mov r1, r3
800db96: f7f7 fd17 bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800db9a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800db9e: 4821 ldr r0, [pc, #132] ; (800dc24 <DrawMySpinner+0x27c>)
800dba0: f7f7 f8d6 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800dba4: 88bb ldrh r3, [r7, #4]
800dba6: 330a adds r3, #10
800dba8: b299 uxth r1, r3
800dbaa: 88fb ldrh r3, [r7, #6]
800dbac: 2203 movs r2, #3
800dbae: 4618 mov r0, r3
800dbb0: f7f7 fd0a bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800dbb4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dbb8: 481b ldr r0, [pc, #108] ; (800dc28 <DrawMySpinner+0x280>)
800dbba: f7f7 f8c9 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800dbbe: 88fb ldrh r3, [r7, #6]
800dbc0: 3b07 subs r3, #7
800dbc2: b298 uxth r0, r3
800dbc4: 88bb ldrh r3, [r7, #4]
800dbc6: 3b07 subs r3, #7
800dbc8: b29b uxth r3, r3
800dbca: 2203 movs r2, #3
800dbcc: 4619 mov r1, r3
800dbce: f7f7 fcfb bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800dbd2: 88bb ldrh r3, [r7, #4]
800dbd4: 3b0a subs r3, #10
800dbd6: b299 uxth r1, r3
800dbd8: 88fb ldrh r3, [r7, #6]
800dbda: 2203 movs r2, #3
800dbdc: 4618 mov r0, r3
800dbde: f7f7 fcf3 bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800dbe2: 88fb ldrh r3, [r7, #6]
800dbe4: 3307 adds r3, #7
800dbe6: b298 uxth r0, r3
800dbe8: 88bb ldrh r3, [r7, #4]
800dbea: 3b07 subs r3, #7
800dbec: b29b uxth r3, r3
800dbee: 2203 movs r2, #3
800dbf0: 4619 mov r1, r3
800dbf2: f7f7 fce9 bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800dbf6: 88fb ldrh r3, [r7, #6]
800dbf8: 330a adds r3, #10
800dbfa: b29b uxth r3, r3
800dbfc: 88b9 ldrh r1, [r7, #4]
800dbfe: 2203 movs r2, #3
800dc00: 4618 mov r0, r3
800dc02: f7f7 fce1 bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800dc06: 88fb ldrh r3, [r7, #6]
800dc08: 3307 adds r3, #7
800dc0a: b298 uxth r0, r3
800dc0c: 88bb ldrh r3, [r7, #4]
800dc0e: 3307 adds r3, #7
800dc10: b29b uxth r3, r3
800dc12: 2203 movs r2, #3
800dc14: 4619 mov r1, r3
800dc16: f7f7 fcd7 bl 80055c8 <BSP_LCD_FillCircle>
break;
800dc1a: e1e3 b.n 800dfe4 <DrawMySpinner+0x63c>
800dc1c: 2006ba80 .word 0x2006ba80
800dc20: ffd3d3d3 .word 0xffd3d3d3
800dc24: ff808080 .word 0xff808080
800dc28: ff404040 .word 0xff404040
case 3:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800dc2c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dc30: f04f 30ff mov.w r0, #4294967295
800dc34: f7f7 f88c bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800dc38: 88fb ldrh r3, [r7, #6]
800dc3a: 3b07 subs r3, #7
800dc3c: b298 uxth r0, r3
800dc3e: 88bb ldrh r3, [r7, #4]
800dc40: 3b07 subs r3, #7
800dc42: b29b uxth r3, r3
800dc44: 2203 movs r2, #3
800dc46: 4619 mov r1, r3
800dc48: f7f7 fcbe bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800dc4c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dc50: 48b2 ldr r0, [pc, #712] ; (800df1c <DrawMySpinner+0x574>)
800dc52: f7f7 f87d bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800dc56: 88fb ldrh r3, [r7, #6]
800dc58: 3b0a subs r3, #10
800dc5a: b29b uxth r3, r3
800dc5c: 88b9 ldrh r1, [r7, #4]
800dc5e: 2203 movs r2, #3
800dc60: 4618 mov r0, r3
800dc62: f7f7 fcb1 bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800dc66: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dc6a: 48ad ldr r0, [pc, #692] ; (800df20 <DrawMySpinner+0x578>)
800dc6c: f7f7 f870 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800dc70: 88fb ldrh r3, [r7, #6]
800dc72: 3b07 subs r3, #7
800dc74: b298 uxth r0, r3
800dc76: 88bb ldrh r3, [r7, #4]
800dc78: 3307 adds r3, #7
800dc7a: b29b uxth r3, r3
800dc7c: 2203 movs r2, #3
800dc7e: 4619 mov r1, r3
800dc80: f7f7 fca2 bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800dc84: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dc88: 48a6 ldr r0, [pc, #664] ; (800df24 <DrawMySpinner+0x57c>)
800dc8a: f7f7 f861 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800dc8e: 88bb ldrh r3, [r7, #4]
800dc90: 3b0a subs r3, #10
800dc92: b299 uxth r1, r3
800dc94: 88fb ldrh r3, [r7, #6]
800dc96: 2203 movs r2, #3
800dc98: 4618 mov r0, r3
800dc9a: f7f7 fc95 bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800dc9e: 88fb ldrh r3, [r7, #6]
800dca0: 3307 adds r3, #7
800dca2: b298 uxth r0, r3
800dca4: 88bb ldrh r3, [r7, #4]
800dca6: 3b07 subs r3, #7
800dca8: b29b uxth r3, r3
800dcaa: 2203 movs r2, #3
800dcac: 4619 mov r1, r3
800dcae: f7f7 fc8b bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800dcb2: 88fb ldrh r3, [r7, #6]
800dcb4: 330a adds r3, #10
800dcb6: b29b uxth r3, r3
800dcb8: 88b9 ldrh r1, [r7, #4]
800dcba: 2203 movs r2, #3
800dcbc: 4618 mov r0, r3
800dcbe: f7f7 fc83 bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800dcc2: 88fb ldrh r3, [r7, #6]
800dcc4: 3307 adds r3, #7
800dcc6: b298 uxth r0, r3
800dcc8: 88bb ldrh r3, [r7, #4]
800dcca: 3307 adds r3, #7
800dccc: b29b uxth r3, r3
800dcce: 2203 movs r2, #3
800dcd0: 4619 mov r1, r3
800dcd2: f7f7 fc79 bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800dcd6: 88bb ldrh r3, [r7, #4]
800dcd8: 330a adds r3, #10
800dcda: b299 uxth r1, r3
800dcdc: 88fb ldrh r3, [r7, #6]
800dcde: 2203 movs r2, #3
800dce0: 4618 mov r0, r3
800dce2: f7f7 fc71 bl 80055c8 <BSP_LCD_FillCircle>
break;
800dce6: e17d b.n 800dfe4 <DrawMySpinner+0x63c>
case 4:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800dce8: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dcec: f04f 30ff mov.w r0, #4294967295
800dcf0: f7f7 f82e bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800dcf4: 88bb ldrh r3, [r7, #4]
800dcf6: 3b0a subs r3, #10
800dcf8: b299 uxth r1, r3
800dcfa: 88fb ldrh r3, [r7, #6]
800dcfc: 2203 movs r2, #3
800dcfe: 4618 mov r0, r3
800dd00: f7f7 fc62 bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800dd04: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dd08: 4884 ldr r0, [pc, #528] ; (800df1c <DrawMySpinner+0x574>)
800dd0a: f7f7 f821 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800dd0e: 88fb ldrh r3, [r7, #6]
800dd10: 3b07 subs r3, #7
800dd12: b298 uxth r0, r3
800dd14: 88bb ldrh r3, [r7, #4]
800dd16: 3b07 subs r3, #7
800dd18: b29b uxth r3, r3
800dd1a: 2203 movs r2, #3
800dd1c: 4619 mov r1, r3
800dd1e: f7f7 fc53 bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800dd22: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dd26: 487e ldr r0, [pc, #504] ; (800df20 <DrawMySpinner+0x578>)
800dd28: f7f7 f812 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800dd2c: 88fb ldrh r3, [r7, #6]
800dd2e: 3b0a subs r3, #10
800dd30: b29b uxth r3, r3
800dd32: 88b9 ldrh r1, [r7, #4]
800dd34: 2203 movs r2, #3
800dd36: 4618 mov r0, r3
800dd38: f7f7 fc46 bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800dd3c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dd40: 4878 ldr r0, [pc, #480] ; (800df24 <DrawMySpinner+0x57c>)
800dd42: f7f7 f805 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800dd46: 88fb ldrh r3, [r7, #6]
800dd48: 3307 adds r3, #7
800dd4a: b298 uxth r0, r3
800dd4c: 88bb ldrh r3, [r7, #4]
800dd4e: 3b07 subs r3, #7
800dd50: b29b uxth r3, r3
800dd52: 2203 movs r2, #3
800dd54: 4619 mov r1, r3
800dd56: f7f7 fc37 bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800dd5a: 88fb ldrh r3, [r7, #6]
800dd5c: 330a adds r3, #10
800dd5e: b29b uxth r3, r3
800dd60: 88b9 ldrh r1, [r7, #4]
800dd62: 2203 movs r2, #3
800dd64: 4618 mov r0, r3
800dd66: f7f7 fc2f bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800dd6a: 88fb ldrh r3, [r7, #6]
800dd6c: 3307 adds r3, #7
800dd6e: b298 uxth r0, r3
800dd70: 88bb ldrh r3, [r7, #4]
800dd72: 3307 adds r3, #7
800dd74: b29b uxth r3, r3
800dd76: 2203 movs r2, #3
800dd78: 4619 mov r1, r3
800dd7a: f7f7 fc25 bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800dd7e: 88bb ldrh r3, [r7, #4]
800dd80: 330a adds r3, #10
800dd82: b299 uxth r1, r3
800dd84: 88fb ldrh r3, [r7, #6]
800dd86: 2203 movs r2, #3
800dd88: 4618 mov r0, r3
800dd8a: f7f7 fc1d bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800dd8e: 88fb ldrh r3, [r7, #6]
800dd90: 3b07 subs r3, #7
800dd92: b298 uxth r0, r3
800dd94: 88bb ldrh r3, [r7, #4]
800dd96: 3307 adds r3, #7
800dd98: b29b uxth r3, r3
800dd9a: 2203 movs r2, #3
800dd9c: 4619 mov r1, r3
800dd9e: f7f7 fc13 bl 80055c8 <BSP_LCD_FillCircle>
break;
800dda2: e11f b.n 800dfe4 <DrawMySpinner+0x63c>
case 5:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800dda4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dda8: f04f 30ff mov.w r0, #4294967295
800ddac: f7f6 ffd0 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800ddb0: 88fb ldrh r3, [r7, #6]
800ddb2: 3307 adds r3, #7
800ddb4: b298 uxth r0, r3
800ddb6: 88bb ldrh r3, [r7, #4]
800ddb8: 3b07 subs r3, #7
800ddba: b29b uxth r3, r3
800ddbc: 2203 movs r2, #3
800ddbe: 4619 mov r1, r3
800ddc0: f7f7 fc02 bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800ddc4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800ddc8: 4854 ldr r0, [pc, #336] ; (800df1c <DrawMySpinner+0x574>)
800ddca: f7f6 ffc1 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800ddce: 88bb ldrh r3, [r7, #4]
800ddd0: 3b0a subs r3, #10
800ddd2: b299 uxth r1, r3
800ddd4: 88fb ldrh r3, [r7, #6]
800ddd6: 2203 movs r2, #3
800ddd8: 4618 mov r0, r3
800ddda: f7f7 fbf5 bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800ddde: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dde2: 484f ldr r0, [pc, #316] ; (800df20 <DrawMySpinner+0x578>)
800dde4: f7f6 ffb4 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800dde8: 88fb ldrh r3, [r7, #6]
800ddea: 3b07 subs r3, #7
800ddec: b298 uxth r0, r3
800ddee: 88bb ldrh r3, [r7, #4]
800ddf0: 3b07 subs r3, #7
800ddf2: b29b uxth r3, r3
800ddf4: 2203 movs r2, #3
800ddf6: 4619 mov r1, r3
800ddf8: f7f7 fbe6 bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800ddfc: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800de00: 4848 ldr r0, [pc, #288] ; (800df24 <DrawMySpinner+0x57c>)
800de02: f7f6 ffa5 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800de06: 88fb ldrh r3, [r7, #6]
800de08: 330a adds r3, #10
800de0a: b29b uxth r3, r3
800de0c: 88b9 ldrh r1, [r7, #4]
800de0e: 2203 movs r2, #3
800de10: 4618 mov r0, r3
800de12: f7f7 fbd9 bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800de16: 88fb ldrh r3, [r7, #6]
800de18: 3307 adds r3, #7
800de1a: b298 uxth r0, r3
800de1c: 88bb ldrh r3, [r7, #4]
800de1e: 3307 adds r3, #7
800de20: b29b uxth r3, r3
800de22: 2203 movs r2, #3
800de24: 4619 mov r1, r3
800de26: f7f7 fbcf bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800de2a: 88bb ldrh r3, [r7, #4]
800de2c: 330a adds r3, #10
800de2e: b299 uxth r1, r3
800de30: 88fb ldrh r3, [r7, #6]
800de32: 2203 movs r2, #3
800de34: 4618 mov r0, r3
800de36: f7f7 fbc7 bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800de3a: 88fb ldrh r3, [r7, #6]
800de3c: 3b07 subs r3, #7
800de3e: b298 uxth r0, r3
800de40: 88bb ldrh r3, [r7, #4]
800de42: 3307 adds r3, #7
800de44: b29b uxth r3, r3
800de46: 2203 movs r2, #3
800de48: 4619 mov r1, r3
800de4a: f7f7 fbbd bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800de4e: 88fb ldrh r3, [r7, #6]
800de50: 3b0a subs r3, #10
800de52: b29b uxth r3, r3
800de54: 88b9 ldrh r1, [r7, #4]
800de56: 2203 movs r2, #3
800de58: 4618 mov r0, r3
800de5a: f7f7 fbb5 bl 80055c8 <BSP_LCD_FillCircle>
break;
800de5e: e0c1 b.n 800dfe4 <DrawMySpinner+0x63c>
case 6:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800de60: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800de64: f04f 30ff mov.w r0, #4294967295
800de68: f7f6 ff72 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800de6c: 88fb ldrh r3, [r7, #6]
800de6e: 330a adds r3, #10
800de70: b29b uxth r3, r3
800de72: 88b9 ldrh r1, [r7, #4]
800de74: 2203 movs r2, #3
800de76: 4618 mov r0, r3
800de78: f7f7 fba6 bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800de7c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800de80: 4826 ldr r0, [pc, #152] ; (800df1c <DrawMySpinner+0x574>)
800de82: f7f6 ff65 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800de86: 88fb ldrh r3, [r7, #6]
800de88: 3307 adds r3, #7
800de8a: b298 uxth r0, r3
800de8c: 88bb ldrh r3, [r7, #4]
800de8e: 3b07 subs r3, #7
800de90: b29b uxth r3, r3
800de92: 2203 movs r2, #3
800de94: 4619 mov r1, r3
800de96: f7f7 fb97 bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800de9a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800de9e: 4820 ldr r0, [pc, #128] ; (800df20 <DrawMySpinner+0x578>)
800dea0: f7f6 ff56 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800dea4: 88bb ldrh r3, [r7, #4]
800dea6: 3b0a subs r3, #10
800dea8: b299 uxth r1, r3
800deaa: 88fb ldrh r3, [r7, #6]
800deac: 2203 movs r2, #3
800deae: 4618 mov r0, r3
800deb0: f7f7 fb8a bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800deb4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800deb8: 481a ldr r0, [pc, #104] ; (800df24 <DrawMySpinner+0x57c>)
800deba: f7f6 ff49 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800debe: 88fb ldrh r3, [r7, #6]
800dec0: 3307 adds r3, #7
800dec2: b298 uxth r0, r3
800dec4: 88bb ldrh r3, [r7, #4]
800dec6: 3307 adds r3, #7
800dec8: b29b uxth r3, r3
800deca: 2203 movs r2, #3
800decc: 4619 mov r1, r3
800dece: f7f7 fb7b bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800ded2: 88bb ldrh r3, [r7, #4]
800ded4: 330a adds r3, #10
800ded6: b299 uxth r1, r3
800ded8: 88fb ldrh r3, [r7, #6]
800deda: 2203 movs r2, #3
800dedc: 4618 mov r0, r3
800dede: f7f7 fb73 bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800dee2: 88fb ldrh r3, [r7, #6]
800dee4: 3b07 subs r3, #7
800dee6: b298 uxth r0, r3
800dee8: 88bb ldrh r3, [r7, #4]
800deea: 3307 adds r3, #7
800deec: b29b uxth r3, r3
800deee: 2203 movs r2, #3
800def0: 4619 mov r1, r3
800def2: f7f7 fb69 bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800def6: 88fb ldrh r3, [r7, #6]
800def8: 3b0a subs r3, #10
800defa: b29b uxth r3, r3
800defc: 88b9 ldrh r1, [r7, #4]
800defe: 2203 movs r2, #3
800df00: 4618 mov r0, r3
800df02: f7f7 fb61 bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800df06: 88fb ldrh r3, [r7, #6]
800df08: 3b07 subs r3, #7
800df0a: b298 uxth r0, r3
800df0c: 88bb ldrh r3, [r7, #4]
800df0e: 3b07 subs r3, #7
800df10: b29b uxth r3, r3
800df12: 2203 movs r2, #3
800df14: 4619 mov r1, r3
800df16: f7f7 fb57 bl 80055c8 <BSP_LCD_FillCircle>
break;
800df1a: e063 b.n 800dfe4 <DrawMySpinner+0x63c>
800df1c: ffd3d3d3 .word 0xffd3d3d3
800df20: ff808080 .word 0xff808080
800df24: ff404040 .word 0xff404040
case 7:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800df28: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800df2c: f04f 30ff mov.w r0, #4294967295
800df30: f7f6 ff0e bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800df34: 88fb ldrh r3, [r7, #6]
800df36: 3307 adds r3, #7
800df38: b298 uxth r0, r3
800df3a: 88bb ldrh r3, [r7, #4]
800df3c: 3307 adds r3, #7
800df3e: b29b uxth r3, r3
800df40: 2203 movs r2, #3
800df42: 4619 mov r1, r3
800df44: f7f7 fb40 bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800df48: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800df4c: 482d ldr r0, [pc, #180] ; (800e004 <DrawMySpinner+0x65c>)
800df4e: f7f6 feff bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800df52: 88fb ldrh r3, [r7, #6]
800df54: 330a adds r3, #10
800df56: b29b uxth r3, r3
800df58: 88b9 ldrh r1, [r7, #4]
800df5a: 2203 movs r2, #3
800df5c: 4618 mov r0, r3
800df5e: f7f7 fb33 bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800df62: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800df66: 4828 ldr r0, [pc, #160] ; (800e008 <DrawMySpinner+0x660>)
800df68: f7f6 fef2 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800df6c: 88fb ldrh r3, [r7, #6]
800df6e: 3307 adds r3, #7
800df70: b298 uxth r0, r3
800df72: 88bb ldrh r3, [r7, #4]
800df74: 3b07 subs r3, #7
800df76: b29b uxth r3, r3
800df78: 2203 movs r2, #3
800df7a: 4619 mov r1, r3
800df7c: f7f7 fb24 bl 80055c8 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800df80: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800df84: 4821 ldr r0, [pc, #132] ; (800e00c <DrawMySpinner+0x664>)
800df86: f7f6 fee3 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800df8a: 88bb ldrh r3, [r7, #4]
800df8c: 330a adds r3, #10
800df8e: b299 uxth r1, r3
800df90: 88fb ldrh r3, [r7, #6]
800df92: 2203 movs r2, #3
800df94: 4618 mov r0, r3
800df96: f7f7 fb17 bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800df9a: 88fb ldrh r3, [r7, #6]
800df9c: 3b07 subs r3, #7
800df9e: b298 uxth r0, r3
800dfa0: 88bb ldrh r3, [r7, #4]
800dfa2: 3307 adds r3, #7
800dfa4: b29b uxth r3, r3
800dfa6: 2203 movs r2, #3
800dfa8: 4619 mov r1, r3
800dfaa: f7f7 fb0d bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800dfae: 88fb ldrh r3, [r7, #6]
800dfb0: 3b0a subs r3, #10
800dfb2: b29b uxth r3, r3
800dfb4: 88b9 ldrh r1, [r7, #4]
800dfb6: 2203 movs r2, #3
800dfb8: 4618 mov r0, r3
800dfba: f7f7 fb05 bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800dfbe: 88fb ldrh r3, [r7, #6]
800dfc0: 3b07 subs r3, #7
800dfc2: b298 uxth r0, r3
800dfc4: 88bb ldrh r3, [r7, #4]
800dfc6: 3b07 subs r3, #7
800dfc8: b29b uxth r3, r3
800dfca: 2203 movs r2, #3
800dfcc: 4619 mov r1, r3
800dfce: f7f7 fafb bl 80055c8 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800dfd2: 88bb ldrh r3, [r7, #4]
800dfd4: 3b0a subs r3, #10
800dfd6: b299 uxth r1, r3
800dfd8: 88fb ldrh r3, [r7, #6]
800dfda: 2203 movs r2, #3
800dfdc: 4618 mov r0, r3
800dfde: f7f7 faf3 bl 80055c8 <BSP_LCD_FillCircle>
break;
800dfe2: bf00 nop
}
rotate++;
800dfe4: 4b0a ldr r3, [pc, #40] ; (800e010 <DrawMySpinner+0x668>)
800dfe6: 681b ldr r3, [r3, #0]
800dfe8: 3301 adds r3, #1
800dfea: 4a09 ldr r2, [pc, #36] ; (800e010 <DrawMySpinner+0x668>)
800dfec: 6013 str r3, [r2, #0]
if(rotate >= 8)
800dfee: 4b08 ldr r3, [pc, #32] ; (800e010 <DrawMySpinner+0x668>)
800dff0: 681b ldr r3, [r3, #0]
800dff2: 2b07 cmp r3, #7
800dff4: d902 bls.n 800dffc <DrawMySpinner+0x654>
rotate = 0;
800dff6: 4b06 ldr r3, [pc, #24] ; (800e010 <DrawMySpinner+0x668>)
800dff8: 2200 movs r2, #0
800dffa: 601a str r2, [r3, #0]
}
800dffc: bf00 nop
800dffe: 3708 adds r7, #8
800e000: 46bd mov sp, r7
800e002: bd80 pop {r7, pc}
800e004: ffd3d3d3 .word 0xffd3d3d3
800e008: ff808080 .word 0xff808080
800e00c: ff404040 .word 0xff404040
800e010: 2006ba80 .word 0x2006ba80
0800e014 <DrawSpinner>:
void DrawSpinner(uint16_t x, uint16_t y)
{
800e014: b580 push {r7, lr}
800e016: b082 sub sp, #8
800e018: af00 add r7, sp, #0
800e01a: 4603 mov r3, r0
800e01c: 460a mov r2, r1
800e01e: 80fb strh r3, [r7, #6]
800e020: 4613 mov r3, r2
800e022: 80bb strh r3, [r7, #4]
//if(!clbr)
//{
spinner++;
800e024: 4b0b ldr r3, [pc, #44] ; (800e054 <DrawSpinner+0x40>)
800e026: 781b ldrb r3, [r3, #0]
800e028: 3301 adds r3, #1
800e02a: b2da uxtb r2, r3
800e02c: 4b09 ldr r3, [pc, #36] ; (800e054 <DrawSpinner+0x40>)
800e02e: 701a strb r2, [r3, #0]
if(spinner >= 10)
800e030: 4b08 ldr r3, [pc, #32] ; (800e054 <DrawSpinner+0x40>)
800e032: 781b ldrb r3, [r3, #0]
800e034: 2b09 cmp r3, #9
800e036: d902 bls.n 800e03e <DrawSpinner+0x2a>
spinner = 0;
800e038: 4b06 ldr r3, [pc, #24] ; (800e054 <DrawSpinner+0x40>)
800e03a: 2200 movs r2, #0
800e03c: 701a strb r2, [r3, #0]
DrawMySpinner(x, y);
800e03e: 88ba ldrh r2, [r7, #4]
800e040: 88fb ldrh r3, [r7, #6]
800e042: 4611 mov r1, r2
800e044: 4618 mov r0, r3
800e046: f7ff fcaf bl 800d9a8 <DrawMySpinner>
//}
}
800e04a: bf00 nop
800e04c: 3708 adds r7, #8
800e04e: 46bd mov sp, r7
800e050: bd80 pop {r7, pc}
800e052: bf00 nop
800e054: 2006ba75 .word 0x2006ba75
0800e058 <DrawChannel_4>:
}
void DrawChannel_4(uint8_t ch, uint32_t blk)
{
800e058: b5b0 push {r4, r5, r7, lr}
800e05a: b08e sub sp, #56 ; 0x38
800e05c: af00 add r7, sp, #0
800e05e: 4603 mov r3, r0
800e060: 6039 str r1, [r7, #0]
800e062: 71fb strb r3, [r7, #7]
char *p8;
if(pardata.amplif[ch].SENS <= 0.0f) {
800e064: 79fb ldrb r3, [r7, #7]
800e066: 4ac1 ldr r2, [pc, #772] ; (800e36c <DrawChannel_4+0x314>)
800e068: 015b lsls r3, r3, #5
800e06a: 4413 add r3, r2
800e06c: 3318 adds r3, #24
800e06e: edd3 7a00 vldr s15, [r3]
800e072: eef5 7ac0 vcmpe.f32 s15, #0.0
800e076: eef1 fa10 vmrs APSR_nzcv, fpscr
800e07a: d80a bhi.n 800e092 <DrawChannel_4+0x3a>
pardata.amplif[ch].SENS = 1.0f;
800e07c: 79fb ldrb r3, [r7, #7]
800e07e: 4abb ldr r2, [pc, #748] ; (800e36c <DrawChannel_4+0x314>)
800e080: 015b lsls r3, r3, #5
800e082: 4413 add r3, r2
800e084: 3318 adds r3, #24
800e086: f04f 527e mov.w r2, #1065353216 ; 0x3f800000
800e08a: 601a str r2, [r3, #0]
s = 10000;
800e08c: f242 7310 movw r3, #10000 ; 0x2710
800e090: 637b str r3, [r7, #52] ; 0x34
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10.0f) {
800e092: 4bb7 ldr r3, [pc, #732] ; (800e370 <DrawChannel_4+0x318>)
800e094: 681b ldr r3, [r3, #0]
800e096: 4ab5 ldr r2, [pc, #724] ; (800e36c <DrawChannel_4+0x314>)
800e098: 015b lsls r3, r3, #5
800e09a: 4413 add r3, r2
800e09c: 3318 adds r3, #24
800e09e: edd3 7a00 vldr s15, [r3]
800e0a2: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800e0a6: eef4 7ac7 vcmpe.f32 s15, s14
800e0aa: eef1 fa10 vmrs APSR_nzcv, fpscr
800e0ae: d517 bpl.n 800e0e0 <DrawChannel_4+0x88>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10000.0f) + 0.5f);
800e0b0: 4baf ldr r3, [pc, #700] ; (800e370 <DrawChannel_4+0x318>)
800e0b2: 681b ldr r3, [r3, #0]
800e0b4: 4aad ldr r2, [pc, #692] ; (800e36c <DrawChannel_4+0x314>)
800e0b6: 015b lsls r3, r3, #5
800e0b8: 4413 add r3, r2
800e0ba: 3318 adds r3, #24
800e0bc: edd3 7a00 vldr s15, [r3]
800e0c0: ed9f 7aac vldr s14, [pc, #688] ; 800e374 <DrawChannel_4+0x31c>
800e0c4: ee67 7a87 vmul.f32 s15, s15, s14
800e0c8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800e0cc: ee77 7a87 vadd.f32 s15, s15, s14
800e0d0: eefc 7ae7 vcvt.u32.f32 s15, s15
800e0d4: ee17 3a90 vmov r3, s15
800e0d8: 637b str r3, [r7, #52] ; 0x34
ipt = 4;
800e0da: 2304 movs r3, #4
800e0dc: 62bb str r3, [r7, #40] ; 0x28
800e0de: e0b2 b.n 800e246 <DrawChannel_4+0x1ee>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100.0f) {
800e0e0: 4ba3 ldr r3, [pc, #652] ; (800e370 <DrawChannel_4+0x318>)
800e0e2: 681b ldr r3, [r3, #0]
800e0e4: 4aa1 ldr r2, [pc, #644] ; (800e36c <DrawChannel_4+0x314>)
800e0e6: 015b lsls r3, r3, #5
800e0e8: 4413 add r3, r2
800e0ea: 3318 adds r3, #24
800e0ec: edd3 7a00 vldr s15, [r3]
800e0f0: ed9f 7aa1 vldr s14, [pc, #644] ; 800e378 <DrawChannel_4+0x320>
800e0f4: eef4 7ac7 vcmpe.f32 s15, s14
800e0f8: eef1 fa10 vmrs APSR_nzcv, fpscr
800e0fc: d517 bpl.n 800e12e <DrawChannel_4+0xd6>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 1000.0f) + 0.5f);
800e0fe: 4b9c ldr r3, [pc, #624] ; (800e370 <DrawChannel_4+0x318>)
800e100: 681b ldr r3, [r3, #0]
800e102: 4a9a ldr r2, [pc, #616] ; (800e36c <DrawChannel_4+0x314>)
800e104: 015b lsls r3, r3, #5
800e106: 4413 add r3, r2
800e108: 3318 adds r3, #24
800e10a: edd3 7a00 vldr s15, [r3]
800e10e: ed9f 7a9b vldr s14, [pc, #620] ; 800e37c <DrawChannel_4+0x324>
800e112: ee67 7a87 vmul.f32 s15, s15, s14
800e116: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800e11a: ee77 7a87 vadd.f32 s15, s15, s14
800e11e: eefc 7ae7 vcvt.u32.f32 s15, s15
800e122: ee17 3a90 vmov r3, s15
800e126: 637b str r3, [r7, #52] ; 0x34
ipt = 3;
800e128: 2303 movs r3, #3
800e12a: 62bb str r3, [r7, #40] ; 0x28
800e12c: e08b b.n 800e246 <DrawChannel_4+0x1ee>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 1000.0f) {
800e12e: 4b90 ldr r3, [pc, #576] ; (800e370 <DrawChannel_4+0x318>)
800e130: 681b ldr r3, [r3, #0]
800e132: 4a8e ldr r2, [pc, #568] ; (800e36c <DrawChannel_4+0x314>)
800e134: 015b lsls r3, r3, #5
800e136: 4413 add r3, r2
800e138: 3318 adds r3, #24
800e13a: edd3 7a00 vldr s15, [r3]
800e13e: ed9f 7a8f vldr s14, [pc, #572] ; 800e37c <DrawChannel_4+0x324>
800e142: eef4 7ac7 vcmpe.f32 s15, s14
800e146: eef1 fa10 vmrs APSR_nzcv, fpscr
800e14a: d517 bpl.n 800e17c <DrawChannel_4+0x124>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 100.0f) + 0.5f);
800e14c: 4b88 ldr r3, [pc, #544] ; (800e370 <DrawChannel_4+0x318>)
800e14e: 681b ldr r3, [r3, #0]
800e150: 4a86 ldr r2, [pc, #536] ; (800e36c <DrawChannel_4+0x314>)
800e152: 015b lsls r3, r3, #5
800e154: 4413 add r3, r2
800e156: 3318 adds r3, #24
800e158: edd3 7a00 vldr s15, [r3]
800e15c: ed9f 7a86 vldr s14, [pc, #536] ; 800e378 <DrawChannel_4+0x320>
800e160: ee67 7a87 vmul.f32 s15, s15, s14
800e164: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800e168: ee77 7a87 vadd.f32 s15, s15, s14
800e16c: eefc 7ae7 vcvt.u32.f32 s15, s15
800e170: ee17 3a90 vmov r3, s15
800e174: 637b str r3, [r7, #52] ; 0x34
ipt = 2;
800e176: 2302 movs r3, #2
800e178: 62bb str r3, [r7, #40] ; 0x28
800e17a: e064 b.n 800e246 <DrawChannel_4+0x1ee>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10000.0f) {
800e17c: 4b7c ldr r3, [pc, #496] ; (800e370 <DrawChannel_4+0x318>)
800e17e: 681b ldr r3, [r3, #0]
800e180: 4a7a ldr r2, [pc, #488] ; (800e36c <DrawChannel_4+0x314>)
800e182: 015b lsls r3, r3, #5
800e184: 4413 add r3, r2
800e186: 3318 adds r3, #24
800e188: edd3 7a00 vldr s15, [r3]
800e18c: ed9f 7a79 vldr s14, [pc, #484] ; 800e374 <DrawChannel_4+0x31c>
800e190: eef4 7ac7 vcmpe.f32 s15, s14
800e194: eef1 fa10 vmrs APSR_nzcv, fpscr
800e198: d517 bpl.n 800e1ca <DrawChannel_4+0x172>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10.0f) + 0.5f);
800e19a: 4b75 ldr r3, [pc, #468] ; (800e370 <DrawChannel_4+0x318>)
800e19c: 681b ldr r3, [r3, #0]
800e19e: 4a73 ldr r2, [pc, #460] ; (800e36c <DrawChannel_4+0x314>)
800e1a0: 015b lsls r3, r3, #5
800e1a2: 4413 add r3, r2
800e1a4: 3318 adds r3, #24
800e1a6: edd3 7a00 vldr s15, [r3]
800e1aa: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800e1ae: ee67 7a87 vmul.f32 s15, s15, s14
800e1b2: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800e1b6: ee77 7a87 vadd.f32 s15, s15, s14
800e1ba: eefc 7ae7 vcvt.u32.f32 s15, s15
800e1be: ee17 3a90 vmov r3, s15
800e1c2: 637b str r3, [r7, #52] ; 0x34
ipt = 1;
800e1c4: 2301 movs r3, #1
800e1c6: 62bb str r3, [r7, #40] ; 0x28
800e1c8: e03d b.n 800e246 <DrawChannel_4+0x1ee>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) {
800e1ca: 4b69 ldr r3, [pc, #420] ; (800e370 <DrawChannel_4+0x318>)
800e1cc: 681b ldr r3, [r3, #0]
800e1ce: 4a67 ldr r2, [pc, #412] ; (800e36c <DrawChannel_4+0x314>)
800e1d0: 015b lsls r3, r3, #5
800e1d2: 4413 add r3, r2
800e1d4: 3318 adds r3, #24
800e1d6: edd3 7a00 vldr s15, [r3]
800e1da: ed9f 7a69 vldr s14, [pc, #420] ; 800e380 <DrawChannel_4+0x328>
800e1de: eef4 7ac7 vcmpe.f32 s15, s14
800e1e2: eef1 fa10 vmrs APSR_nzcv, fpscr
800e1e6: d513 bpl.n 800e210 <DrawChannel_4+0x1b8>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS) + 0.5f);
800e1e8: 4b61 ldr r3, [pc, #388] ; (800e370 <DrawChannel_4+0x318>)
800e1ea: 681b ldr r3, [r3, #0]
800e1ec: 4a5f ldr r2, [pc, #380] ; (800e36c <DrawChannel_4+0x314>)
800e1ee: 015b lsls r3, r3, #5
800e1f0: 4413 add r3, r2
800e1f2: 3318 adds r3, #24
800e1f4: edd3 7a00 vldr s15, [r3]
800e1f8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800e1fc: ee77 7a87 vadd.f32 s15, s15, s14
800e200: eefc 7ae7 vcvt.u32.f32 s15, s15
800e204: ee17 3a90 vmov r3, s15
800e208: 637b str r3, [r7, #52] ; 0x34
ipt = 0;
800e20a: 2300 movs r3, #0
800e20c: 62bb str r3, [r7, #40] ; 0x28
800e20e: e01a b.n 800e246 <DrawChannel_4+0x1ee>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
800e210: 4b57 ldr r3, [pc, #348] ; (800e370 <DrawChannel_4+0x318>)
800e212: 681b ldr r3, [r3, #0]
800e214: 4a55 ldr r2, [pc, #340] ; (800e36c <DrawChannel_4+0x314>)
800e216: 015b lsls r3, r3, #5
800e218: 4413 add r3, r2
800e21a: 3318 adds r3, #24
800e21c: edd3 7a00 vldr s15, [r3]
800e220: ed9f 7a57 vldr s14, [pc, #348] ; 800e380 <DrawChannel_4+0x328>
800e224: eef4 7ac7 vcmpe.f32 s15, s14
800e228: eef1 fa10 vmrs APSR_nzcv, fpscr
800e22c: db0b blt.n 800e246 <DrawChannel_4+0x1ee>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
800e22e: 4b50 ldr r3, [pc, #320] ; (800e370 <DrawChannel_4+0x318>)
800e230: 681b ldr r3, [r3, #0]
800e232: 4a4e ldr r2, [pc, #312] ; (800e36c <DrawChannel_4+0x314>)
800e234: 015b lsls r3, r3, #5
800e236: 4413 add r3, r2
800e238: 3318 adds r3, #24
800e23a: 4a52 ldr r2, [pc, #328] ; (800e384 <DrawChannel_4+0x32c>)
800e23c: 601a str r2, [r3, #0]
s = 99999;
800e23e: 4b52 ldr r3, [pc, #328] ; (800e388 <DrawChannel_4+0x330>)
800e240: 637b str r3, [r7, #52] ; 0x34
ipt = 0;
800e242: 2300 movs r3, #0
800e244: 62bb str r3, [r7, #40] ; 0x28
}
ikdt = (s / 10000);
800e246: 6b7b ldr r3, [r7, #52] ; 0x34
800e248: 4a50 ldr r2, [pc, #320] ; (800e38c <DrawChannel_4+0x334>)
800e24a: fba2 2303 umull r2, r3, r2, r3
800e24e: 0b5b lsrs r3, r3, #13
800e250: 627b str r3, [r7, #36] ; 0x24
ikt = (s % 10000 / 1000);
800e252: 6b7a ldr r2, [r7, #52] ; 0x34
800e254: 4b4d ldr r3, [pc, #308] ; (800e38c <DrawChannel_4+0x334>)
800e256: fba3 1302 umull r1, r3, r3, r2
800e25a: 0b5b lsrs r3, r3, #13
800e25c: f242 7110 movw r1, #10000 ; 0x2710
800e260: fb01 f303 mul.w r3, r1, r3
800e264: 1ad3 subs r3, r2, r3
800e266: 4a4a ldr r2, [pc, #296] ; (800e390 <DrawChannel_4+0x338>)
800e268: fba2 2303 umull r2, r3, r2, r3
800e26c: 099b lsrs r3, r3, #6
800e26e: 623b str r3, [r7, #32]
iks = (s % 10000 % 1000 / 100);
800e270: 6b7a ldr r2, [r7, #52] ; 0x34
800e272: 4b46 ldr r3, [pc, #280] ; (800e38c <DrawChannel_4+0x334>)
800e274: fba3 1302 umull r1, r3, r3, r2
800e278: 0b5b lsrs r3, r3, #13
800e27a: f242 7110 movw r1, #10000 ; 0x2710
800e27e: fb01 f303 mul.w r3, r1, r3
800e282: 1ad3 subs r3, r2, r3
800e284: 4a42 ldr r2, [pc, #264] ; (800e390 <DrawChannel_4+0x338>)
800e286: fba2 1203 umull r1, r2, r2, r3
800e28a: 0992 lsrs r2, r2, #6
800e28c: f44f 717a mov.w r1, #1000 ; 0x3e8
800e290: fb01 f202 mul.w r2, r1, r2
800e294: 1a9a subs r2, r3, r2
800e296: 4b3f ldr r3, [pc, #252] ; (800e394 <DrawChannel_4+0x33c>)
800e298: fba3 2302 umull r2, r3, r3, r2
800e29c: 095b lsrs r3, r3, #5
800e29e: 61fb str r3, [r7, #28]
ikd = (s % 10000 % 1000 % 100 / 10);
800e2a0: 6b7b ldr r3, [r7, #52] ; 0x34
800e2a2: 4a3a ldr r2, [pc, #232] ; (800e38c <DrawChannel_4+0x334>)
800e2a4: fba2 1203 umull r1, r2, r2, r3
800e2a8: 0b52 lsrs r2, r2, #13
800e2aa: f242 7110 movw r1, #10000 ; 0x2710
800e2ae: fb01 f202 mul.w r2, r1, r2
800e2b2: 1a9a subs r2, r3, r2
800e2b4: 4b36 ldr r3, [pc, #216] ; (800e390 <DrawChannel_4+0x338>)
800e2b6: fba3 1302 umull r1, r3, r3, r2
800e2ba: 099b lsrs r3, r3, #6
800e2bc: f44f 717a mov.w r1, #1000 ; 0x3e8
800e2c0: fb01 f303 mul.w r3, r1, r3
800e2c4: 1ad3 subs r3, r2, r3
800e2c6: 4a33 ldr r2, [pc, #204] ; (800e394 <DrawChannel_4+0x33c>)
800e2c8: fba2 1203 umull r1, r2, r2, r3
800e2cc: 0952 lsrs r2, r2, #5
800e2ce: 2164 movs r1, #100 ; 0x64
800e2d0: fb01 f202 mul.w r2, r1, r2
800e2d4: 1a9a subs r2, r3, r2
800e2d6: 4b30 ldr r3, [pc, #192] ; (800e398 <DrawChannel_4+0x340>)
800e2d8: fba3 2302 umull r2, r3, r3, r2
800e2dc: 08db lsrs r3, r3, #3
800e2de: 61bb str r3, [r7, #24]
ike = (s % 10000 % 1000 % 100 % 10);
800e2e0: 6b7b ldr r3, [r7, #52] ; 0x34
800e2e2: 4a2a ldr r2, [pc, #168] ; (800e38c <DrawChannel_4+0x334>)
800e2e4: fba2 1203 umull r1, r2, r2, r3
800e2e8: 0b52 lsrs r2, r2, #13
800e2ea: f242 7110 movw r1, #10000 ; 0x2710
800e2ee: fb01 f202 mul.w r2, r1, r2
800e2f2: 1a9a subs r2, r3, r2
800e2f4: 4b26 ldr r3, [pc, #152] ; (800e390 <DrawChannel_4+0x338>)
800e2f6: fba3 1302 umull r1, r3, r3, r2
800e2fa: 099b lsrs r3, r3, #6
800e2fc: f44f 717a mov.w r1, #1000 ; 0x3e8
800e300: fb01 f303 mul.w r3, r1, r3
800e304: 1ad3 subs r3, r2, r3
800e306: 4a23 ldr r2, [pc, #140] ; (800e394 <DrawChannel_4+0x33c>)
800e308: fba2 1203 umull r1, r2, r2, r3
800e30c: 0952 lsrs r2, r2, #5
800e30e: 2164 movs r1, #100 ; 0x64
800e310: fb01 f202 mul.w r2, r1, r2
800e314: 1a9a subs r2, r3, r2
800e316: 4b20 ldr r3, [pc, #128] ; (800e398 <DrawChannel_4+0x340>)
800e318: fba3 1302 umull r1, r3, r3, r2
800e31c: 08d9 lsrs r1, r3, #3
800e31e: 460b mov r3, r1
800e320: 009b lsls r3, r3, #2
800e322: 440b add r3, r1
800e324: 005b lsls r3, r3, #1
800e326: 1ad3 subs r3, r2, r3
800e328: 617b str r3, [r7, #20]
p8 = str;
800e32a: f107 0308 add.w r3, r7, #8
800e32e: 62fb str r3, [r7, #44] ; 0x2c
if(pardata.amplif[ch].SENS < 10.0f) {
800e330: 79fb ldrb r3, [r7, #7]
800e332: 4a0e ldr r2, [pc, #56] ; (800e36c <DrawChannel_4+0x314>)
800e334: 015b lsls r3, r3, #5
800e336: 4413 add r3, r2
800e338: 3318 adds r3, #24
800e33a: edd3 7a00 vldr s15, [r3]
800e33e: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800e342: eef4 7ac7 vcmpe.f32 s15, s14
800e346: eef1 fa10 vmrs APSR_nzcv, fpscr
800e34a: d527 bpl.n 800e39c <DrawChannel_4+0x344>
p8 = FloatToASCII(pardata.amplif[ch].SENS, -4);
800e34c: 79fb ldrb r3, [r7, #7]
800e34e: 4a07 ldr r2, [pc, #28] ; (800e36c <DrawChannel_4+0x314>)
800e350: 015b lsls r3, r3, #5
800e352: 4413 add r3, r2
800e354: 3318 adds r3, #24
800e356: edd3 7a00 vldr s15, [r3]
800e35a: f06f 0003 mvn.w r0, #3
800e35e: eeb0 0a67 vmov.f32 s0, s15
800e362: f001 f861 bl 800f428 <FloatToASCII>
800e366: 62f8 str r0, [r7, #44] ; 0x2c
800e368: e08a b.n 800e480 <DrawChannel_4+0x428>
800e36a: bf00 nop
800e36c: 2006bca8 .word 0x2006bca8
800e370: 2006ba68 .word 0x2006ba68
800e374: 461c4000 .word 0x461c4000
800e378: 42c80000 .word 0x42c80000
800e37c: 447a0000 .word 0x447a0000
800e380: 47c35000 .word 0x47c35000
800e384: 47c34f80 .word 0x47c34f80
800e388: 0001869f .word 0x0001869f
800e38c: d1b71759 .word 0xd1b71759
800e390: 10624dd3 .word 0x10624dd3
800e394: 51eb851f .word 0x51eb851f
800e398: cccccccd .word 0xcccccccd
}
else if(pardata.amplif[ch].SENS < 100.0f) {
800e39c: 79fb ldrb r3, [r7, #7]
800e39e: 4abf ldr r2, [pc, #764] ; (800e69c <DrawChannel_4+0x644>)
800e3a0: 015b lsls r3, r3, #5
800e3a2: 4413 add r3, r2
800e3a4: 3318 adds r3, #24
800e3a6: edd3 7a00 vldr s15, [r3]
800e3aa: ed9f 7abd vldr s14, [pc, #756] ; 800e6a0 <DrawChannel_4+0x648>
800e3ae: eef4 7ac7 vcmpe.f32 s15, s14
800e3b2: eef1 fa10 vmrs APSR_nzcv, fpscr
800e3b6: d50e bpl.n 800e3d6 <DrawChannel_4+0x37e>
p8 = FloatToASCII(pardata.amplif[ch].SENS, -3);
800e3b8: 79fb ldrb r3, [r7, #7]
800e3ba: 4ab8 ldr r2, [pc, #736] ; (800e69c <DrawChannel_4+0x644>)
800e3bc: 015b lsls r3, r3, #5
800e3be: 4413 add r3, r2
800e3c0: 3318 adds r3, #24
800e3c2: edd3 7a00 vldr s15, [r3]
800e3c6: f06f 0002 mvn.w r0, #2
800e3ca: eeb0 0a67 vmov.f32 s0, s15
800e3ce: f001 f82b bl 800f428 <FloatToASCII>
800e3d2: 62f8 str r0, [r7, #44] ; 0x2c
800e3d4: e054 b.n 800e480 <DrawChannel_4+0x428>
}
else if(pardata.amplif[ch].SENS < 1000.0f) {
800e3d6: 79fb ldrb r3, [r7, #7]
800e3d8: 4ab0 ldr r2, [pc, #704] ; (800e69c <DrawChannel_4+0x644>)
800e3da: 015b lsls r3, r3, #5
800e3dc: 4413 add r3, r2
800e3de: 3318 adds r3, #24
800e3e0: edd3 7a00 vldr s15, [r3]
800e3e4: ed9f 7aaf vldr s14, [pc, #700] ; 800e6a4 <DrawChannel_4+0x64c>
800e3e8: eef4 7ac7 vcmpe.f32 s15, s14
800e3ec: eef1 fa10 vmrs APSR_nzcv, fpscr
800e3f0: d50e bpl.n 800e410 <DrawChannel_4+0x3b8>
p8 = FloatToASCII(pardata.amplif[ch].SENS, -2);
800e3f2: 79fb ldrb r3, [r7, #7]
800e3f4: 4aa9 ldr r2, [pc, #676] ; (800e69c <DrawChannel_4+0x644>)
800e3f6: 015b lsls r3, r3, #5
800e3f8: 4413 add r3, r2
800e3fa: 3318 adds r3, #24
800e3fc: edd3 7a00 vldr s15, [r3]
800e400: f06f 0001 mvn.w r0, #1
800e404: eeb0 0a67 vmov.f32 s0, s15
800e408: f001 f80e bl 800f428 <FloatToASCII>
800e40c: 62f8 str r0, [r7, #44] ; 0x2c
800e40e: e037 b.n 800e480 <DrawChannel_4+0x428>
}
else if(pardata.amplif[ch].SENS < 10000.0f) {
800e410: 79fb ldrb r3, [r7, #7]
800e412: 4aa2 ldr r2, [pc, #648] ; (800e69c <DrawChannel_4+0x644>)
800e414: 015b lsls r3, r3, #5
800e416: 4413 add r3, r2
800e418: 3318 adds r3, #24
800e41a: edd3 7a00 vldr s15, [r3]
800e41e: ed9f 7aa2 vldr s14, [pc, #648] ; 800e6a8 <DrawChannel_4+0x650>
800e422: eef4 7ac7 vcmpe.f32 s15, s14
800e426: eef1 fa10 vmrs APSR_nzcv, fpscr
800e42a: d50e bpl.n 800e44a <DrawChannel_4+0x3f2>
p8 = FloatToASCII(pardata.amplif[ch].SENS, -1);
800e42c: 79fb ldrb r3, [r7, #7]
800e42e: 4a9b ldr r2, [pc, #620] ; (800e69c <DrawChannel_4+0x644>)
800e430: 015b lsls r3, r3, #5
800e432: 4413 add r3, r2
800e434: 3318 adds r3, #24
800e436: edd3 7a00 vldr s15, [r3]
800e43a: f04f 30ff mov.w r0, #4294967295
800e43e: eeb0 0a67 vmov.f32 s0, s15
800e442: f000 fff1 bl 800f428 <FloatToASCII>
800e446: 62f8 str r0, [r7, #44] ; 0x2c
800e448: e01a b.n 800e480 <DrawChannel_4+0x428>
}
else if(pardata.amplif[ch].SENS < 100000.0f) {
800e44a: 79fb ldrb r3, [r7, #7]
800e44c: 4a93 ldr r2, [pc, #588] ; (800e69c <DrawChannel_4+0x644>)
800e44e: 015b lsls r3, r3, #5
800e450: 4413 add r3, r2
800e452: 3318 adds r3, #24
800e454: edd3 7a00 vldr s15, [r3]
800e458: ed9f 7a94 vldr s14, [pc, #592] ; 800e6ac <DrawChannel_4+0x654>
800e45c: eef4 7ac7 vcmpe.f32 s15, s14
800e460: eef1 fa10 vmrs APSR_nzcv, fpscr
800e464: d50c bpl.n 800e480 <DrawChannel_4+0x428>
p8 = FloatToASCII(pardata.amplif[ch].SENS, 0);
800e466: 79fb ldrb r3, [r7, #7]
800e468: 4a8c ldr r2, [pc, #560] ; (800e69c <DrawChannel_4+0x644>)
800e46a: 015b lsls r3, r3, #5
800e46c: 4413 add r3, r2
800e46e: 3318 adds r3, #24
800e470: edd3 7a00 vldr s15, [r3]
800e474: 2000 movs r0, #0
800e476: eeb0 0a67 vmov.f32 s0, s15
800e47a: f000 ffd5 bl 800f428 <FloatToASCII>
800e47e: 62f8 str r0, [r7, #44] ; 0x2c
}
strcpy((void *) str, (void *) p8);
800e480: f107 0308 add.w r3, r7, #8
800e484: 6af9 ldr r1, [r7, #44] ; 0x2c
800e486: 4618 mov r0, r3
800e488: f007 fff3 bl 8016472 <strcpy>
//////////////////////////////////////////////////////////////////////////////////////
if((pardata.amplif[ch].SENS >= 0.0010f)&&(pardata.amplif[ch].SENS < 0.001f)) //0.001
800e48c: 79fb ldrb r3, [r7, #7]
800e48e: 4a83 ldr r2, [pc, #524] ; (800e69c <DrawChannel_4+0x644>)
800e490: 015b lsls r3, r3, #5
800e492: 4413 add r3, r2
800e494: 3318 adds r3, #24
800e496: edd3 7a00 vldr s15, [r3]
800e49a: ed9f 7a85 vldr s14, [pc, #532] ; 800e6b0 <DrawChannel_4+0x658>
800e49e: eef4 7ac7 vcmpe.f32 s15, s14
800e4a2: eef1 fa10 vmrs APSR_nzcv, fpscr
800e4a6: db16 blt.n 800e4d6 <DrawChannel_4+0x47e>
800e4a8: 79fb ldrb r3, [r7, #7]
800e4aa: 4a7c ldr r2, [pc, #496] ; (800e69c <DrawChannel_4+0x644>)
800e4ac: 015b lsls r3, r3, #5
800e4ae: 4413 add r3, r2
800e4b0: 3318 adds r3, #24
800e4b2: edd3 7a00 vldr s15, [r3]
800e4b6: ed9f 7a7e vldr s14, [pc, #504] ; 800e6b0 <DrawChannel_4+0x658>
800e4ba: eef4 7ac7 vcmpe.f32 s15, s14
800e4be: eef1 fa10 vmrs APSR_nzcv, fpscr
800e4c2: d508 bpl.n 800e4d6 <DrawChannel_4+0x47e>
{
out = pardata.amplif[ch].IKU;
800e4c4: 79fb ldrb r3, [r7, #7]
800e4c6: 4a75 ldr r2, [pc, #468] ; (800e69c <DrawChannel_4+0x644>)
800e4c8: 015b lsls r3, r3, #5
800e4ca: 4413 add r3, r2
800e4cc: 3306 adds r3, #6
800e4ce: 881b ldrh r3, [r3, #0]
800e4d0: b29b uxth r3, r3
800e4d2: 633b str r3, [r7, #48] ; 0x30
800e4d4: e13d b.n 800e752 <DrawChannel_4+0x6fa>
}
else
if((pardata.amplif[ch].SENS >= 0.0010f)&&(pardata.amplif[ch].SENS < 0.010f)) //0.001
800e4d6: 79fb ldrb r3, [r7, #7]
800e4d8: 4a70 ldr r2, [pc, #448] ; (800e69c <DrawChannel_4+0x644>)
800e4da: 015b lsls r3, r3, #5
800e4dc: 4413 add r3, r2
800e4de: 3318 adds r3, #24
800e4e0: edd3 7a00 vldr s15, [r3]
800e4e4: ed9f 7a72 vldr s14, [pc, #456] ; 800e6b0 <DrawChannel_4+0x658>
800e4e8: eef4 7ac7 vcmpe.f32 s15, s14
800e4ec: eef1 fa10 vmrs APSR_nzcv, fpscr
800e4f0: db16 blt.n 800e520 <DrawChannel_4+0x4c8>
800e4f2: 79fb ldrb r3, [r7, #7]
800e4f4: 4a69 ldr r2, [pc, #420] ; (800e69c <DrawChannel_4+0x644>)
800e4f6: 015b lsls r3, r3, #5
800e4f8: 4413 add r3, r2
800e4fa: 3318 adds r3, #24
800e4fc: edd3 7a00 vldr s15, [r3]
800e500: ed9f 7a6c vldr s14, [pc, #432] ; 800e6b4 <DrawChannel_4+0x65c>
800e504: eef4 7ac7 vcmpe.f32 s15, s14
800e508: eef1 fa10 vmrs APSR_nzcv, fpscr
800e50c: d508 bpl.n 800e520 <DrawChannel_4+0x4c8>
{
out = pardata.amplif[ch].IKU;
800e50e: 79fb ldrb r3, [r7, #7]
800e510: 4a62 ldr r2, [pc, #392] ; (800e69c <DrawChannel_4+0x644>)
800e512: 015b lsls r3, r3, #5
800e514: 4413 add r3, r2
800e516: 3306 adds r3, #6
800e518: 881b ldrh r3, [r3, #0]
800e51a: b29b uxth r3, r3
800e51c: 633b str r3, [r7, #48] ; 0x30
800e51e: e118 b.n 800e752 <DrawChannel_4+0x6fa>
}
else
if((pardata.amplif[ch].SENS>=0.01f)&&(pardata.amplif[ch].SENS<0.1f)) //0.002
800e520: 79fb ldrb r3, [r7, #7]
800e522: 4a5e ldr r2, [pc, #376] ; (800e69c <DrawChannel_4+0x644>)
800e524: 015b lsls r3, r3, #5
800e526: 4413 add r3, r2
800e528: 3318 adds r3, #24
800e52a: edd3 7a00 vldr s15, [r3]
800e52e: ed9f 7a61 vldr s14, [pc, #388] ; 800e6b4 <DrawChannel_4+0x65c>
800e532: eef4 7ac7 vcmpe.f32 s15, s14
800e536: eef1 fa10 vmrs APSR_nzcv, fpscr
800e53a: db17 blt.n 800e56c <DrawChannel_4+0x514>
800e53c: 79fb ldrb r3, [r7, #7]
800e53e: 4a57 ldr r2, [pc, #348] ; (800e69c <DrawChannel_4+0x644>)
800e540: 015b lsls r3, r3, #5
800e542: 4413 add r3, r2
800e544: 3318 adds r3, #24
800e546: edd3 7a00 vldr s15, [r3]
800e54a: ed9f 7a5b vldr s14, [pc, #364] ; 800e6b8 <DrawChannel_4+0x660>
800e54e: eef4 7ac7 vcmpe.f32 s15, s14
800e552: eef1 fa10 vmrs APSR_nzcv, fpscr
800e556: d509 bpl.n 800e56c <DrawChannel_4+0x514>
{
out = pardata.amplif[ch].IKU +3;
800e558: 79fb ldrb r3, [r7, #7]
800e55a: 4a50 ldr r2, [pc, #320] ; (800e69c <DrawChannel_4+0x644>)
800e55c: 015b lsls r3, r3, #5
800e55e: 4413 add r3, r2
800e560: 3306 adds r3, #6
800e562: 881b ldrh r3, [r3, #0]
800e564: b29b uxth r3, r3
800e566: 3303 adds r3, #3
800e568: 633b str r3, [r7, #48] ; 0x30
800e56a: e0f2 b.n 800e752 <DrawChannel_4+0x6fa>
}
else
if((pardata.amplif[ch].SENS>=0.1f)&&(pardata.amplif[ch].SENS<1.0f)) //0.005
800e56c: 79fb ldrb r3, [r7, #7]
800e56e: 4a4b ldr r2, [pc, #300] ; (800e69c <DrawChannel_4+0x644>)
800e570: 015b lsls r3, r3, #5
800e572: 4413 add r3, r2
800e574: 3318 adds r3, #24
800e576: edd3 7a00 vldr s15, [r3]
800e57a: ed9f 7a4f vldr s14, [pc, #316] ; 800e6b8 <DrawChannel_4+0x660>
800e57e: eef4 7ac7 vcmpe.f32 s15, s14
800e582: eef1 fa10 vmrs APSR_nzcv, fpscr
800e586: db17 blt.n 800e5b8 <DrawChannel_4+0x560>
800e588: 79fb ldrb r3, [r7, #7]
800e58a: 4a44 ldr r2, [pc, #272] ; (800e69c <DrawChannel_4+0x644>)
800e58c: 015b lsls r3, r3, #5
800e58e: 4413 add r3, r2
800e590: 3318 adds r3, #24
800e592: edd3 7a00 vldr s15, [r3]
800e596: eeb7 7a00 vmov.f32 s14, #112 ; 0x3f800000 1.0
800e59a: eef4 7ac7 vcmpe.f32 s15, s14
800e59e: eef1 fa10 vmrs APSR_nzcv, fpscr
800e5a2: d509 bpl.n 800e5b8 <DrawChannel_4+0x560>
{
out = pardata.amplif[ch].IKU + 6;
800e5a4: 79fb ldrb r3, [r7, #7]
800e5a6: 4a3d ldr r2, [pc, #244] ; (800e69c <DrawChannel_4+0x644>)
800e5a8: 015b lsls r3, r3, #5
800e5aa: 4413 add r3, r2
800e5ac: 3306 adds r3, #6
800e5ae: 881b ldrh r3, [r3, #0]
800e5b0: b29b uxth r3, r3
800e5b2: 3306 adds r3, #6
800e5b4: 633b str r3, [r7, #48] ; 0x30
800e5b6: e0cc b.n 800e752 <DrawChannel_4+0x6fa>
}
else
if((pardata.amplif[ch].SENS>=1.0f)&&(pardata.amplif[ch].SENS<10.0f)) //0.01
800e5b8: 79fb ldrb r3, [r7, #7]
800e5ba: 4a38 ldr r2, [pc, #224] ; (800e69c <DrawChannel_4+0x644>)
800e5bc: 015b lsls r3, r3, #5
800e5be: 4413 add r3, r2
800e5c0: 3318 adds r3, #24
800e5c2: edd3 7a00 vldr s15, [r3]
800e5c6: eeb7 7a00 vmov.f32 s14, #112 ; 0x3f800000 1.0
800e5ca: eef4 7ac7 vcmpe.f32 s15, s14
800e5ce: eef1 fa10 vmrs APSR_nzcv, fpscr
800e5d2: db17 blt.n 800e604 <DrawChannel_4+0x5ac>
800e5d4: 79fb ldrb r3, [r7, #7]
800e5d6: 4a31 ldr r2, [pc, #196] ; (800e69c <DrawChannel_4+0x644>)
800e5d8: 015b lsls r3, r3, #5
800e5da: 4413 add r3, r2
800e5dc: 3318 adds r3, #24
800e5de: edd3 7a00 vldr s15, [r3]
800e5e2: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800e5e6: eef4 7ac7 vcmpe.f32 s15, s14
800e5ea: eef1 fa10 vmrs APSR_nzcv, fpscr
800e5ee: d509 bpl.n 800e604 <DrawChannel_4+0x5ac>
{
out = pardata.amplif[ch].IKU + 9;
800e5f0: 79fb ldrb r3, [r7, #7]
800e5f2: 4a2a ldr r2, [pc, #168] ; (800e69c <DrawChannel_4+0x644>)
800e5f4: 015b lsls r3, r3, #5
800e5f6: 4413 add r3, r2
800e5f8: 3306 adds r3, #6
800e5fa: 881b ldrh r3, [r3, #0]
800e5fc: b29b uxth r3, r3
800e5fe: 3309 adds r3, #9
800e600: 633b str r3, [r7, #48] ; 0x30
800e602: e0a6 b.n 800e752 <DrawChannel_4+0x6fa>
}
else
if((pardata.amplif[ch].SENS>=10.0f)&&(pardata.amplif[ch].SENS<100.0f)) //0.02
800e604: 79fb ldrb r3, [r7, #7]
800e606: 4a25 ldr r2, [pc, #148] ; (800e69c <DrawChannel_4+0x644>)
800e608: 015b lsls r3, r3, #5
800e60a: 4413 add r3, r2
800e60c: 3318 adds r3, #24
800e60e: edd3 7a00 vldr s15, [r3]
800e612: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800e616: eef4 7ac7 vcmpe.f32 s15, s14
800e61a: eef1 fa10 vmrs APSR_nzcv, fpscr
800e61e: db17 blt.n 800e650 <DrawChannel_4+0x5f8>
800e620: 79fb ldrb r3, [r7, #7]
800e622: 4a1e ldr r2, [pc, #120] ; (800e69c <DrawChannel_4+0x644>)
800e624: 015b lsls r3, r3, #5
800e626: 4413 add r3, r2
800e628: 3318 adds r3, #24
800e62a: edd3 7a00 vldr s15, [r3]
800e62e: ed9f 7a1c vldr s14, [pc, #112] ; 800e6a0 <DrawChannel_4+0x648>
800e632: eef4 7ac7 vcmpe.f32 s15, s14
800e636: eef1 fa10 vmrs APSR_nzcv, fpscr
800e63a: d509 bpl.n 800e650 <DrawChannel_4+0x5f8>
{
out = pardata.amplif[ch].IKU + 12;
800e63c: 79fb ldrb r3, [r7, #7]
800e63e: 4a17 ldr r2, [pc, #92] ; (800e69c <DrawChannel_4+0x644>)
800e640: 015b lsls r3, r3, #5
800e642: 4413 add r3, r2
800e644: 3306 adds r3, #6
800e646: 881b ldrh r3, [r3, #0]
800e648: b29b uxth r3, r3
800e64a: 330c adds r3, #12
800e64c: 633b str r3, [r7, #48] ; 0x30
800e64e: e080 b.n 800e752 <DrawChannel_4+0x6fa>
}
else
if((pardata.amplif[ch].SENS>=100.0f)&&(pardata.amplif[ch].SENS<1000.0f)) //0.05
800e650: 79fb ldrb r3, [r7, #7]
800e652: 4a12 ldr r2, [pc, #72] ; (800e69c <DrawChannel_4+0x644>)
800e654: 015b lsls r3, r3, #5
800e656: 4413 add r3, r2
800e658: 3318 adds r3, #24
800e65a: edd3 7a00 vldr s15, [r3]
800e65e: ed9f 7a10 vldr s14, [pc, #64] ; 800e6a0 <DrawChannel_4+0x648>
800e662: eef4 7ac7 vcmpe.f32 s15, s14
800e666: eef1 fa10 vmrs APSR_nzcv, fpscr
800e66a: db27 blt.n 800e6bc <DrawChannel_4+0x664>
800e66c: 79fb ldrb r3, [r7, #7]
800e66e: 4a0b ldr r2, [pc, #44] ; (800e69c <DrawChannel_4+0x644>)
800e670: 015b lsls r3, r3, #5
800e672: 4413 add r3, r2
800e674: 3318 adds r3, #24
800e676: edd3 7a00 vldr s15, [r3]
800e67a: ed9f 7a0a vldr s14, [pc, #40] ; 800e6a4 <DrawChannel_4+0x64c>
800e67e: eef4 7ac7 vcmpe.f32 s15, s14
800e682: eef1 fa10 vmrs APSR_nzcv, fpscr
800e686: d519 bpl.n 800e6bc <DrawChannel_4+0x664>
{
out = pardata.amplif[ch].IKU + 15;
800e688: 79fb ldrb r3, [r7, #7]
800e68a: 4a04 ldr r2, [pc, #16] ; (800e69c <DrawChannel_4+0x644>)
800e68c: 015b lsls r3, r3, #5
800e68e: 4413 add r3, r2
800e690: 3306 adds r3, #6
800e692: 881b ldrh r3, [r3, #0]
800e694: b29b uxth r3, r3
800e696: 330f adds r3, #15
800e698: 633b str r3, [r7, #48] ; 0x30
800e69a: e05a b.n 800e752 <DrawChannel_4+0x6fa>
800e69c: 2006bca8 .word 0x2006bca8
800e6a0: 42c80000 .word 0x42c80000
800e6a4: 447a0000 .word 0x447a0000
800e6a8: 461c4000 .word 0x461c4000
800e6ac: 47c35000 .word 0x47c35000
800e6b0: 3a83126f .word 0x3a83126f
800e6b4: 3c23d70a .word 0x3c23d70a
800e6b8: 3dcccccd .word 0x3dcccccd
}
else
if((pardata.amplif[ch].SENS >= 1000.0f)&&(pardata.amplif[ch].SENS<10000.0f)) //0.1
800e6bc: 79fb ldrb r3, [r7, #7]
800e6be: 4ab8 ldr r2, [pc, #736] ; (800e9a0 <DrawChannel_4+0x948>)
800e6c0: 015b lsls r3, r3, #5
800e6c2: 4413 add r3, r2
800e6c4: 3318 adds r3, #24
800e6c6: edd3 7a00 vldr s15, [r3]
800e6ca: ed9f 7ab6 vldr s14, [pc, #728] ; 800e9a4 <DrawChannel_4+0x94c>
800e6ce: eef4 7ac7 vcmpe.f32 s15, s14
800e6d2: eef1 fa10 vmrs APSR_nzcv, fpscr
800e6d6: db17 blt.n 800e708 <DrawChannel_4+0x6b0>
800e6d8: 79fb ldrb r3, [r7, #7]
800e6da: 4ab1 ldr r2, [pc, #708] ; (800e9a0 <DrawChannel_4+0x948>)
800e6dc: 015b lsls r3, r3, #5
800e6de: 4413 add r3, r2
800e6e0: 3318 adds r3, #24
800e6e2: edd3 7a00 vldr s15, [r3]
800e6e6: ed9f 7ab0 vldr s14, [pc, #704] ; 800e9a8 <DrawChannel_4+0x950>
800e6ea: eef4 7ac7 vcmpe.f32 s15, s14
800e6ee: eef1 fa10 vmrs APSR_nzcv, fpscr
800e6f2: d509 bpl.n 800e708 <DrawChannel_4+0x6b0>
{
out = pardata.amplif[ch].IKU + 18;
800e6f4: 79fb ldrb r3, [r7, #7]
800e6f6: 4aaa ldr r2, [pc, #680] ; (800e9a0 <DrawChannel_4+0x948>)
800e6f8: 015b lsls r3, r3, #5
800e6fa: 4413 add r3, r2
800e6fc: 3306 adds r3, #6
800e6fe: 881b ldrh r3, [r3, #0]
800e700: b29b uxth r3, r3
800e702: 3312 adds r3, #18
800e704: 633b str r3, [r7, #48] ; 0x30
800e706: e024 b.n 800e752 <DrawChannel_4+0x6fa>
}
else
if((pardata.amplif[ch].SENS >= 10000.0f)&&(pardata.amplif[ch].SENS < 100000.0f)) //0.2
800e708: 79fb ldrb r3, [r7, #7]
800e70a: 4aa5 ldr r2, [pc, #660] ; (800e9a0 <DrawChannel_4+0x948>)
800e70c: 015b lsls r3, r3, #5
800e70e: 4413 add r3, r2
800e710: 3318 adds r3, #24
800e712: edd3 7a00 vldr s15, [r3]
800e716: ed9f 7aa4 vldr s14, [pc, #656] ; 800e9a8 <DrawChannel_4+0x950>
800e71a: eef4 7ac7 vcmpe.f32 s15, s14
800e71e: eef1 fa10 vmrs APSR_nzcv, fpscr
800e722: db16 blt.n 800e752 <DrawChannel_4+0x6fa>
800e724: 79fb ldrb r3, [r7, #7]
800e726: 4a9e ldr r2, [pc, #632] ; (800e9a0 <DrawChannel_4+0x948>)
800e728: 015b lsls r3, r3, #5
800e72a: 4413 add r3, r2
800e72c: 3318 adds r3, #24
800e72e: edd3 7a00 vldr s15, [r3]
800e732: ed9f 7a9e vldr s14, [pc, #632] ; 800e9ac <DrawChannel_4+0x954>
800e736: eef4 7ac7 vcmpe.f32 s15, s14
800e73a: eef1 fa10 vmrs APSR_nzcv, fpscr
800e73e: d508 bpl.n 800e752 <DrawChannel_4+0x6fa>
{
out = pardata.amplif[ch].IKU + 21;
800e740: 79fb ldrb r3, [r7, #7]
800e742: 4a97 ldr r2, [pc, #604] ; (800e9a0 <DrawChannel_4+0x948>)
800e744: 015b lsls r3, r3, #5
800e746: 4413 add r3, r2
800e748: 3306 adds r3, #6
800e74a: 881b ldrh r3, [r3, #0]
800e74c: b29b uxth r3, r3
800e74e: 3315 adds r3, #21
800e750: 633b str r3, [r7, #48] ; 0x30
}
LCD_SetColors(LCD_COLOR_ORANGE, LCD_COLOR_BLACK);
800e752: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e756: 4896 ldr r0, [pc, #600] ; (800e9b0 <DrawChannel_4+0x958>)
800e758: f7f6 fafa bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_INPUT_4[ch], str, LEFT_MODE);
800e75c: 79fb ldrb r3, [r7, #7]
800e75e: 4a95 ldr r2, [pc, #596] ; (800e9b4 <DrawChannel_4+0x95c>)
800e760: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800e764: 3305 adds r3, #5
800e766: b298 uxth r0, r3
800e768: 79fb ldrb r3, [r7, #7]
800e76a: 4a93 ldr r2, [pc, #588] ; (800e9b8 <DrawChannel_4+0x960>)
800e76c: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800e770: f107 0208 add.w r2, r7, #8
800e774: 2303 movs r3, #3
800e776: f7f6 fbb1 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 50, YPOS_INPUT_4[ch], (char *) pVAL[pardata.LANG][pardata.amplif[ch].VAL * 2 + pardata.amplif[ch].IIN], LEFT_MODE);
800e77a: 79fb ldrb r3, [r7, #7]
800e77c: 4a8d ldr r2, [pc, #564] ; (800e9b4 <DrawChannel_4+0x95c>)
800e77e: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800e782: 3332 adds r3, #50 ; 0x32
800e784: b298 uxth r0, r3
800e786: 79fb ldrb r3, [r7, #7]
800e788: 4a8b ldr r2, [pc, #556] ; (800e9b8 <DrawChannel_4+0x960>)
800e78a: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800e78e: 4b84 ldr r3, [pc, #528] ; (800e9a0 <DrawChannel_4+0x948>)
800e790: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800e794: b29b uxth r3, r3
800e796: 461d mov r5, r3
800e798: 79fb ldrb r3, [r7, #7]
800e79a: 4a81 ldr r2, [pc, #516] ; (800e9a0 <DrawChannel_4+0x948>)
800e79c: 015b lsls r3, r3, #5
800e79e: 4413 add r3, r2
800e7a0: 3312 adds r3, #18
800e7a2: 881b ldrh r3, [r3, #0]
800e7a4: b29b uxth r3, r3
800e7a6: 005b lsls r3, r3, #1
800e7a8: 79fa ldrb r2, [r7, #7]
800e7aa: 497d ldr r1, [pc, #500] ; (800e9a0 <DrawChannel_4+0x948>)
800e7ac: 0152 lsls r2, r2, #5
800e7ae: 440a add r2, r1
800e7b0: 8812 ldrh r2, [r2, #0]
800e7b2: b292 uxth r2, r2
800e7b4: 4413 add r3, r2
800e7b6: 4981 ldr r1, [pc, #516] ; (800e9bc <DrawChannel_4+0x964>)
800e7b8: 012a lsls r2, r5, #4
800e7ba: 4413 add r3, r2
800e7bc: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800e7c0: 2303 movs r3, #3
800e7c2: 4621 mov r1, r4
800e7c4: f7f6 fb8a bl 8004edc <BSP_LCD_DisplayStringAt>
//////////////////////////////////////////////////////////////////////////////////////////////
LCD_SetColors(LCD_COLOR_DARKCYAN, LCD_COLOR_BLACK);
800e7c8: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e7cc: 487c ldr r0, [pc, #496] ; (800e9c0 <DrawChannel_4+0x968>)
800e7ce: f7f6 fabf bl 8004d50 <LCD_SetColors>
if(ch < Ch3)
800e7d2: 79fb ldrb r3, [r7, #7]
800e7d4: 2b01 cmp r3, #1
800e7d6: d81f bhi.n 800e818 <DrawChannel_4+0x7c0>
{
if(pardata.amplif[ch].IIN == CHARGE)
800e7d8: 79fb ldrb r3, [r7, #7]
800e7da: 4a71 ldr r2, [pc, #452] ; (800e9a0 <DrawChannel_4+0x948>)
800e7dc: 015b lsls r3, r3, #5
800e7de: 4413 add r3, r2
800e7e0: 881b ldrh r3, [r3, #0]
800e7e2: b29b uxth r3, r3
800e7e4: 2b00 cmp r3, #0
800e7e6: d10b bne.n 800e800 <DrawChannel_4+0x7a8>
BSP_LCD_DisplayStringAt(155, YPOS_KN_4[ch] + 3, "PE", RIGHT_MODE);
800e7e8: 79fb ldrb r3, [r7, #7]
800e7ea: 4a76 ldr r2, [pc, #472] ; (800e9c4 <DrawChannel_4+0x96c>)
800e7ec: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800e7f0: 3303 adds r3, #3
800e7f2: b299 uxth r1, r3
800e7f4: 2302 movs r3, #2
800e7f6: 4a74 ldr r2, [pc, #464] ; (800e9c8 <DrawChannel_4+0x970>)
800e7f8: 209b movs r0, #155 ; 0x9b
800e7fa: f7f6 fb6f bl 8004edc <BSP_LCD_DisplayStringAt>
800e7fe: e02c b.n 800e85a <DrawChannel_4+0x802>
else BSP_LCD_DisplayStringAt(155, YPOS_KN_4[ch] + 3, "IEPE", RIGHT_MODE);
800e800: 79fb ldrb r3, [r7, #7]
800e802: 4a70 ldr r2, [pc, #448] ; (800e9c4 <DrawChannel_4+0x96c>)
800e804: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800e808: 3303 adds r3, #3
800e80a: b299 uxth r1, r3
800e80c: 2302 movs r3, #2
800e80e: 4a6f ldr r2, [pc, #444] ; (800e9cc <DrawChannel_4+0x974>)
800e810: 209b movs r0, #155 ; 0x9b
800e812: f7f6 fb63 bl 8004edc <BSP_LCD_DisplayStringAt>
800e816: e020 b.n 800e85a <DrawChannel_4+0x802>
}
else
{
if(pardata.amplif[ch].IIN == CHARGE)
800e818: 79fb ldrb r3, [r7, #7]
800e81a: 4a61 ldr r2, [pc, #388] ; (800e9a0 <DrawChannel_4+0x948>)
800e81c: 015b lsls r3, r3, #5
800e81e: 4413 add r3, r2
800e820: 881b ldrh r3, [r3, #0]
800e822: b29b uxth r3, r3
800e824: 2b00 cmp r3, #0
800e826: d10c bne.n 800e842 <DrawChannel_4+0x7ea>
BSP_LCD_DisplayStringAt(155 + 160, YPOS_KN_4[ch] + 3, "PE", RIGHT_MODE);
800e828: 79fb ldrb r3, [r7, #7]
800e82a: 4a66 ldr r2, [pc, #408] ; (800e9c4 <DrawChannel_4+0x96c>)
800e82c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800e830: 3303 adds r3, #3
800e832: b299 uxth r1, r3
800e834: 2302 movs r3, #2
800e836: 4a64 ldr r2, [pc, #400] ; (800e9c8 <DrawChannel_4+0x970>)
800e838: f240 103b movw r0, #315 ; 0x13b
800e83c: f7f6 fb4e bl 8004edc <BSP_LCD_DisplayStringAt>
800e840: e00b b.n 800e85a <DrawChannel_4+0x802>
else BSP_LCD_DisplayStringAt(155 + 160, YPOS_KN_4[ch] + 3, "IEPE", RIGHT_MODE);
800e842: 79fb ldrb r3, [r7, #7]
800e844: 4a5f ldr r2, [pc, #380] ; (800e9c4 <DrawChannel_4+0x96c>)
800e846: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800e84a: 3303 adds r3, #3
800e84c: b299 uxth r1, r3
800e84e: 2302 movs r3, #2
800e850: 4a5e ldr r2, [pc, #376] ; (800e9cc <DrawChannel_4+0x974>)
800e852: f240 103b movw r0, #315 ; 0x13b
800e856: f7f6 fb41 bl 8004edc <BSP_LCD_DisplayStringAt>
}
if(menupos == Hp)
800e85a: 4b5d ldr r3, [pc, #372] ; (800e9d0 <DrawChannel_4+0x978>)
800e85c: 781b ldrb r3, [r3, #0]
800e85e: b2db uxtb r3, r3
800e860: 2b00 cmp r3, #0
800e862: f040 8176 bne.w 800eb52 <DrawChannel_4+0xafa>
{
if(ACTIVE_CHANNEL == ch)
800e866: 79fa ldrb r2, [r7, #7]
800e868: 4b5a ldr r3, [pc, #360] ; (800e9d4 <DrawChannel_4+0x97c>)
800e86a: 681b ldr r3, [r3, #0]
800e86c: 429a cmp r2, r3
800e86e: f040 80e8 bne.w 800ea42 <DrawChannel_4+0x9ea>
{
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800e872: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e876: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800e87a: f7f6 fa69 bl 8004d50 <LCD_SetColors>
if(focused)
800e87e: 4b56 ldr r3, [pc, #344] ; (800e9d8 <DrawChannel_4+0x980>)
800e880: 781b ldrb r3, [r3, #0]
800e882: b2db uxtb r3, r3
800e884: 2b00 cmp r3, #0
800e886: d023 beq.n 800e8d0 <DrawChannel_4+0x878>
{
if(blk)
800e888: 683b ldr r3, [r7, #0]
800e88a: 2b00 cmp r3, #0
800e88c: d040 beq.n 800e910 <DrawChannel_4+0x8b8>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800e88e: 79fb ldrb r3, [r7, #7]
800e890: 4a52 ldr r2, [pc, #328] ; (800e9dc <DrawChannel_4+0x984>)
800e892: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800e896: 79fb ldrb r3, [r7, #7]
800e898: 4a51 ldr r2, [pc, #324] ; (800e9e0 <DrawChannel_4+0x988>)
800e89a: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800e89e: 4b40 ldr r3, [pc, #256] ; (800e9a0 <DrawChannel_4+0x948>)
800e8a0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800e8a4: b29b uxth r3, r3
800e8a6: 4619 mov r1, r3
800e8a8: 79fb ldrb r3, [r7, #7]
800e8aa: 4a3d ldr r2, [pc, #244] ; (800e9a0 <DrawChannel_4+0x948>)
800e8ac: 015b lsls r3, r3, #5
800e8ae: 4413 add r3, r2
800e8b0: 3302 adds r3, #2
800e8b2: 881b ldrh r3, [r3, #0]
800e8b4: b29b uxth r3, r3
800e8b6: 461d mov r5, r3
800e8b8: 4a4a ldr r2, [pc, #296] ; (800e9e4 <DrawChannel_4+0x98c>)
800e8ba: 460b mov r3, r1
800e8bc: 009b lsls r3, r3, #2
800e8be: 440b add r3, r1
800e8c0: 442b add r3, r5
800e8c2: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800e8c6: 2303 movs r3, #3
800e8c8: 4621 mov r1, r4
800e8ca: f7f6 fb07 bl 8004edc <BSP_LCD_DisplayStringAt>
800e8ce: e01f b.n 800e910 <DrawChannel_4+0x8b8>
}
else
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800e8d0: 79fb ldrb r3, [r7, #7]
800e8d2: 4a42 ldr r2, [pc, #264] ; (800e9dc <DrawChannel_4+0x984>)
800e8d4: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800e8d8: 79fb ldrb r3, [r7, #7]
800e8da: 4a41 ldr r2, [pc, #260] ; (800e9e0 <DrawChannel_4+0x988>)
800e8dc: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800e8e0: 4b2f ldr r3, [pc, #188] ; (800e9a0 <DrawChannel_4+0x948>)
800e8e2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800e8e6: b29b uxth r3, r3
800e8e8: 4619 mov r1, r3
800e8ea: 79fb ldrb r3, [r7, #7]
800e8ec: 4a2c ldr r2, [pc, #176] ; (800e9a0 <DrawChannel_4+0x948>)
800e8ee: 015b lsls r3, r3, #5
800e8f0: 4413 add r3, r2
800e8f2: 3302 adds r3, #2
800e8f4: 881b ldrh r3, [r3, #0]
800e8f6: b29b uxth r3, r3
800e8f8: 461d mov r5, r3
800e8fa: 4a3a ldr r2, [pc, #232] ; (800e9e4 <DrawChannel_4+0x98c>)
800e8fc: 460b mov r3, r1
800e8fe: 009b lsls r3, r3, #2
800e900: 440b add r3, r1
800e902: 442b add r3, r5
800e904: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800e908: 2303 movs r3, #3
800e90a: 4621 mov r1, r4
800e90c: f7f6 fae6 bl 8004edc <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800e910: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e914: 4834 ldr r0, [pc, #208] ; (800e9e8 <DrawChannel_4+0x990>)
800e916: f7f6 fa1b bl 8004d50 <LCD_SetColors>
//BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch], YPOS_INPUT_4[ch], (char *) pINPUT[pardata.LANG][pardata.amplif[ch].IIN], LEFT_MODE);
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800e91a: 79fb ldrb r3, [r7, #7]
800e91c: 4a33 ldr r2, [pc, #204] ; (800e9ec <DrawChannel_4+0x994>)
800e91e: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800e922: 79fb ldrb r3, [r7, #7]
800e924: 4a32 ldr r2, [pc, #200] ; (800e9f0 <DrawChannel_4+0x998>)
800e926: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800e92a: 4b1d ldr r3, [pc, #116] ; (800e9a0 <DrawChannel_4+0x948>)
800e92c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800e930: b29b uxth r3, r3
800e932: 461d mov r5, r3
800e934: 79fb ldrb r3, [r7, #7]
800e936: 4a1a ldr r2, [pc, #104] ; (800e9a0 <DrawChannel_4+0x948>)
800e938: 015b lsls r3, r3, #5
800e93a: 4413 add r3, r2
800e93c: 3304 adds r3, #4
800e93e: 881b ldrh r3, [r3, #0]
800e940: b29b uxth r3, r3
800e942: 461c mov r4, r3
800e944: 4a2b ldr r2, [pc, #172] ; (800e9f4 <DrawChannel_4+0x99c>)
800e946: 00eb lsls r3, r5, #3
800e948: 4423 add r3, r4
800e94a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800e94e: 2303 movs r3, #3
800e950: f7f6 fac4 bl 8004edc <BSP_LCD_DisplayStringAt>
if(pardata.LANG == RUS)
800e954: 4b12 ldr r3, [pc, #72] ; (800e9a0 <DrawChannel_4+0x948>)
800e956: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800e95a: b29b uxth r3, r3
800e95c: 2b00 cmp r3, #0
800e95e: d14f bne.n 800ea00 <DrawChannel_4+0x9a8>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800e960: 79fb ldrb r3, [r7, #7]
800e962: 4a14 ldr r2, [pc, #80] ; (800e9b4 <DrawChannel_4+0x95c>)
800e964: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800e968: 3305 adds r3, #5
800e96a: b298 uxth r0, r3
800e96c: 79fb ldrb r3, [r7, #7]
800e96e: 4a22 ldr r2, [pc, #136] ; (800e9f8 <DrawChannel_4+0x9a0>)
800e970: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800e974: 79fb ldrb r3, [r7, #7]
800e976: 4a0a ldr r2, [pc, #40] ; (800e9a0 <DrawChannel_4+0x948>)
800e978: 015b lsls r3, r3, #5
800e97a: 4413 add r3, r2
800e97c: 3312 adds r3, #18
800e97e: 881b ldrh r3, [r3, #0]
800e980: b29b uxth r3, r3
800e982: 461a mov r2, r3
800e984: 491d ldr r1, [pc, #116] ; (800e9fc <DrawChannel_4+0x9a4>)
800e986: 4613 mov r3, r2
800e988: 015b lsls r3, r3, #5
800e98a: 4413 add r3, r2
800e98c: 6b3a ldr r2, [r7, #48] ; 0x30
800e98e: 4413 add r3, r2
800e990: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800e994: 2303 movs r3, #3
800e996: 4621 mov r1, r4
800e998: f7f6 faa0 bl 8004edc <BSP_LCD_DisplayStringAt>
if(pardata.LANG == RUS)
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE);
}
}
}
800e99c: e3cf b.n 800f13e <DrawChannel_4+0x10e6>
800e99e: bf00 nop
800e9a0: 2006bca8 .word 0x2006bca8
800e9a4: 447a0000 .word 0x447a0000
800e9a8: 461c4000 .word 0x461c4000
800e9ac: 47c35000 .word 0x47c35000
800e9b0: ffffa500 .word 0xffffa500
800e9b4: 0801ad98 .word 0x0801ad98
800e9b8: 0801ada0 .word 0x0801ada0
800e9bc: 200200bc .word 0x200200bc
800e9c0: ff008080 .word 0xff008080
800e9c4: 0801add0 .word 0x0801add0
800e9c8: 080180e4 .word 0x080180e4
800e9cc: 080180e8 .word 0x080180e8
800e9d0: 20020010 .word 0x20020010
800e9d4: 2006ba68 .word 0x2006ba68
800e9d8: 200209e4 .word 0x200209e4
800e9dc: 0801ada8 .word 0x0801ada8
800e9e0: 0801adb0 .word 0x0801adb0
800e9e4: 20020054 .word 0x20020054
800e9e8: ffd8aa57 .word 0xffd8aa57
800e9ec: 0801adb8 .word 0x0801adb8
800e9f0: 0801adc0 .word 0x0801adc0
800e9f4: 2002007c .word 0x2002007c
800e9f8: 0801adc8 .word 0x0801adc8
800e9fc: 2002013c .word 0x2002013c
else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE);
800ea00: 79fb ldrb r3, [r7, #7]
800ea02: 4ab4 ldr r2, [pc, #720] ; (800ecd4 <DrawChannel_4+0xc7c>)
800ea04: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ea08: 3b09 subs r3, #9
800ea0a: b298 uxth r0, r3
800ea0c: 79fb ldrb r3, [r7, #7]
800ea0e: 4ab2 ldr r2, [pc, #712] ; (800ecd8 <DrawChannel_4+0xc80>)
800ea10: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ea14: 79fb ldrb r3, [r7, #7]
800ea16: 4ab1 ldr r2, [pc, #708] ; (800ecdc <DrawChannel_4+0xc84>)
800ea18: 015b lsls r3, r3, #5
800ea1a: 4413 add r3, r2
800ea1c: 3312 adds r3, #18
800ea1e: 881b ldrh r3, [r3, #0]
800ea20: b29b uxth r3, r3
800ea22: 461a mov r2, r3
800ea24: 49ae ldr r1, [pc, #696] ; (800ece0 <DrawChannel_4+0xc88>)
800ea26: 4613 mov r3, r2
800ea28: 009b lsls r3, r3, #2
800ea2a: 4413 add r3, r2
800ea2c: 009a lsls r2, r3, #2
800ea2e: 4413 add r3, r2
800ea30: 6b3a ldr r2, [r7, #48] ; 0x30
800ea32: 4413 add r3, r2
800ea34: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800ea38: 2303 movs r3, #3
800ea3a: 4621 mov r1, r4
800ea3c: f7f6 fa4e bl 8004edc <BSP_LCD_DisplayStringAt>
}
800ea40: e37d b.n 800f13e <DrawChannel_4+0x10e6>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800ea42: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800ea46: 48a7 ldr r0, [pc, #668] ; (800ece4 <DrawChannel_4+0xc8c>)
800ea48: f7f6 f982 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800ea4c: 79fb ldrb r3, [r7, #7]
800ea4e: 4aa6 ldr r2, [pc, #664] ; (800ece8 <DrawChannel_4+0xc90>)
800ea50: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800ea54: 79fb ldrb r3, [r7, #7]
800ea56: 4aa5 ldr r2, [pc, #660] ; (800ecec <DrawChannel_4+0xc94>)
800ea58: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ea5c: 4b9f ldr r3, [pc, #636] ; (800ecdc <DrawChannel_4+0xc84>)
800ea5e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ea62: b29b uxth r3, r3
800ea64: 4619 mov r1, r3
800ea66: 79fb ldrb r3, [r7, #7]
800ea68: 4a9c ldr r2, [pc, #624] ; (800ecdc <DrawChannel_4+0xc84>)
800ea6a: 015b lsls r3, r3, #5
800ea6c: 4413 add r3, r2
800ea6e: 3302 adds r3, #2
800ea70: 881b ldrh r3, [r3, #0]
800ea72: b29b uxth r3, r3
800ea74: 461d mov r5, r3
800ea76: 4a9e ldr r2, [pc, #632] ; (800ecf0 <DrawChannel_4+0xc98>)
800ea78: 460b mov r3, r1
800ea7a: 009b lsls r3, r3, #2
800ea7c: 440b add r3, r1
800ea7e: 442b add r3, r5
800ea80: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800ea84: 2303 movs r3, #3
800ea86: 4621 mov r1, r4
800ea88: f7f6 fa28 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800ea8c: 79fb ldrb r3, [r7, #7]
800ea8e: 4a99 ldr r2, [pc, #612] ; (800ecf4 <DrawChannel_4+0xc9c>)
800ea90: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800ea94: 79fb ldrb r3, [r7, #7]
800ea96: 4a98 ldr r2, [pc, #608] ; (800ecf8 <DrawChannel_4+0xca0>)
800ea98: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800ea9c: 4b8f ldr r3, [pc, #572] ; (800ecdc <DrawChannel_4+0xc84>)
800ea9e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800eaa2: b29b uxth r3, r3
800eaa4: 461d mov r5, r3
800eaa6: 79fb ldrb r3, [r7, #7]
800eaa8: 4a8c ldr r2, [pc, #560] ; (800ecdc <DrawChannel_4+0xc84>)
800eaaa: 015b lsls r3, r3, #5
800eaac: 4413 add r3, r2
800eaae: 3304 adds r3, #4
800eab0: 881b ldrh r3, [r3, #0]
800eab2: b29b uxth r3, r3
800eab4: 461c mov r4, r3
800eab6: 4a91 ldr r2, [pc, #580] ; (800ecfc <DrawChannel_4+0xca4>)
800eab8: 00eb lsls r3, r5, #3
800eaba: 4423 add r3, r4
800eabc: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800eac0: 2303 movs r3, #3
800eac2: f7f6 fa0b bl 8004edc <BSP_LCD_DisplayStringAt>
if(pardata.LANG == RUS)
800eac6: 4b85 ldr r3, [pc, #532] ; (800ecdc <DrawChannel_4+0xc84>)
800eac8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800eacc: b29b uxth r3, r3
800eace: 2b00 cmp r3, #0
800ead0: d11e bne.n 800eb10 <DrawChannel_4+0xab8>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800ead2: 79fb ldrb r3, [r7, #7]
800ead4: 4a7f ldr r2, [pc, #508] ; (800ecd4 <DrawChannel_4+0xc7c>)
800ead6: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800eada: 3305 adds r3, #5
800eadc: b298 uxth r0, r3
800eade: 79fb ldrb r3, [r7, #7]
800eae0: 4a7d ldr r2, [pc, #500] ; (800ecd8 <DrawChannel_4+0xc80>)
800eae2: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800eae6: 79fb ldrb r3, [r7, #7]
800eae8: 4a7c ldr r2, [pc, #496] ; (800ecdc <DrawChannel_4+0xc84>)
800eaea: 015b lsls r3, r3, #5
800eaec: 4413 add r3, r2
800eaee: 3312 adds r3, #18
800eaf0: 881b ldrh r3, [r3, #0]
800eaf2: b29b uxth r3, r3
800eaf4: 461a mov r2, r3
800eaf6: 4982 ldr r1, [pc, #520] ; (800ed00 <DrawChannel_4+0xca8>)
800eaf8: 4613 mov r3, r2
800eafa: 015b lsls r3, r3, #5
800eafc: 4413 add r3, r2
800eafe: 6b3a ldr r2, [r7, #48] ; 0x30
800eb00: 4413 add r3, r2
800eb02: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800eb06: 2303 movs r3, #3
800eb08: 4621 mov r1, r4
800eb0a: f7f6 f9e7 bl 8004edc <BSP_LCD_DisplayStringAt>
}
800eb0e: e316 b.n 800f13e <DrawChannel_4+0x10e6>
else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE);
800eb10: 79fb ldrb r3, [r7, #7]
800eb12: 4a70 ldr r2, [pc, #448] ; (800ecd4 <DrawChannel_4+0xc7c>)
800eb14: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800eb18: 3b09 subs r3, #9
800eb1a: b298 uxth r0, r3
800eb1c: 79fb ldrb r3, [r7, #7]
800eb1e: 4a6e ldr r2, [pc, #440] ; (800ecd8 <DrawChannel_4+0xc80>)
800eb20: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800eb24: 79fb ldrb r3, [r7, #7]
800eb26: 4a6d ldr r2, [pc, #436] ; (800ecdc <DrawChannel_4+0xc84>)
800eb28: 015b lsls r3, r3, #5
800eb2a: 4413 add r3, r2
800eb2c: 3312 adds r3, #18
800eb2e: 881b ldrh r3, [r3, #0]
800eb30: b29b uxth r3, r3
800eb32: 461a mov r2, r3
800eb34: 496a ldr r1, [pc, #424] ; (800ece0 <DrawChannel_4+0xc88>)
800eb36: 4613 mov r3, r2
800eb38: 009b lsls r3, r3, #2
800eb3a: 4413 add r3, r2
800eb3c: 009a lsls r2, r3, #2
800eb3e: 4413 add r3, r2
800eb40: 6b3a ldr r2, [r7, #48] ; 0x30
800eb42: 4413 add r3, r2
800eb44: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800eb48: 2303 movs r3, #3
800eb4a: 4621 mov r1, r4
800eb4c: f7f6 f9c6 bl 8004edc <BSP_LCD_DisplayStringAt>
}
800eb50: e2f5 b.n 800f13e <DrawChannel_4+0x10e6>
if(menupos == Lp)
800eb52: 4b6c ldr r3, [pc, #432] ; (800ed04 <DrawChannel_4+0xcac>)
800eb54: 781b ldrb r3, [r3, #0]
800eb56: b2db uxtb r3, r3
800eb58: 2b01 cmp r3, #1
800eb5a: f040 8161 bne.w 800ee20 <DrawChannel_4+0xdc8>
if(ACTIVE_CHANNEL == ch)
800eb5e: 79fa ldrb r2, [r7, #7]
800eb60: 4b69 ldr r3, [pc, #420] ; (800ed08 <DrawChannel_4+0xcb0>)
800eb62: 681b ldr r3, [r3, #0]
800eb64: 429a cmp r2, r3
800eb66: f040 80d3 bne.w 800ed10 <DrawChannel_4+0xcb8>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800eb6a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800eb6e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800eb72: f7f6 f8ed bl 8004d50 <LCD_SetColors>
if(focused)
800eb76: 4b65 ldr r3, [pc, #404] ; (800ed0c <DrawChannel_4+0xcb4>)
800eb78: 781b ldrb r3, [r3, #0]
800eb7a: b2db uxtb r3, r3
800eb7c: 2b00 cmp r3, #0
800eb7e: d020 beq.n 800ebc2 <DrawChannel_4+0xb6a>
if(blk)
800eb80: 683b ldr r3, [r7, #0]
800eb82: 2b00 cmp r3, #0
800eb84: d03a beq.n 800ebfc <DrawChannel_4+0xba4>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800eb86: 79fb ldrb r3, [r7, #7]
800eb88: 4a5a ldr r2, [pc, #360] ; (800ecf4 <DrawChannel_4+0xc9c>)
800eb8a: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800eb8e: 79fb ldrb r3, [r7, #7]
800eb90: 4a59 ldr r2, [pc, #356] ; (800ecf8 <DrawChannel_4+0xca0>)
800eb92: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800eb96: 4b51 ldr r3, [pc, #324] ; (800ecdc <DrawChannel_4+0xc84>)
800eb98: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800eb9c: b29b uxth r3, r3
800eb9e: 461d mov r5, r3
800eba0: 79fb ldrb r3, [r7, #7]
800eba2: 4a4e ldr r2, [pc, #312] ; (800ecdc <DrawChannel_4+0xc84>)
800eba4: 015b lsls r3, r3, #5
800eba6: 4413 add r3, r2
800eba8: 3304 adds r3, #4
800ebaa: 881b ldrh r3, [r3, #0]
800ebac: b29b uxth r3, r3
800ebae: 461c mov r4, r3
800ebb0: 4a52 ldr r2, [pc, #328] ; (800ecfc <DrawChannel_4+0xca4>)
800ebb2: 00eb lsls r3, r5, #3
800ebb4: 4423 add r3, r4
800ebb6: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800ebba: 2303 movs r3, #3
800ebbc: f7f6 f98e bl 8004edc <BSP_LCD_DisplayStringAt>
800ebc0: e01c b.n 800ebfc <DrawChannel_4+0xba4>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800ebc2: 79fb ldrb r3, [r7, #7]
800ebc4: 4a4b ldr r2, [pc, #300] ; (800ecf4 <DrawChannel_4+0xc9c>)
800ebc6: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800ebca: 79fb ldrb r3, [r7, #7]
800ebcc: 4a4a ldr r2, [pc, #296] ; (800ecf8 <DrawChannel_4+0xca0>)
800ebce: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800ebd2: 4b42 ldr r3, [pc, #264] ; (800ecdc <DrawChannel_4+0xc84>)
800ebd4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ebd8: b29b uxth r3, r3
800ebda: 461d mov r5, r3
800ebdc: 79fb ldrb r3, [r7, #7]
800ebde: 4a3f ldr r2, [pc, #252] ; (800ecdc <DrawChannel_4+0xc84>)
800ebe0: 015b lsls r3, r3, #5
800ebe2: 4413 add r3, r2
800ebe4: 3304 adds r3, #4
800ebe6: 881b ldrh r3, [r3, #0]
800ebe8: b29b uxth r3, r3
800ebea: 461c mov r4, r3
800ebec: 4a43 ldr r2, [pc, #268] ; (800ecfc <DrawChannel_4+0xca4>)
800ebee: 00eb lsls r3, r5, #3
800ebf0: 4423 add r3, r4
800ebf2: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800ebf6: 2303 movs r3, #3
800ebf8: f7f6 f970 bl 8004edc <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800ebfc: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800ec00: 4838 ldr r0, [pc, #224] ; (800ece4 <DrawChannel_4+0xc8c>)
800ec02: f7f6 f8a5 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800ec06: 79fb ldrb r3, [r7, #7]
800ec08: 4a37 ldr r2, [pc, #220] ; (800ece8 <DrawChannel_4+0xc90>)
800ec0a: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800ec0e: 79fb ldrb r3, [r7, #7]
800ec10: 4a36 ldr r2, [pc, #216] ; (800ecec <DrawChannel_4+0xc94>)
800ec12: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ec16: 4b31 ldr r3, [pc, #196] ; (800ecdc <DrawChannel_4+0xc84>)
800ec18: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ec1c: b29b uxth r3, r3
800ec1e: 4619 mov r1, r3
800ec20: 79fb ldrb r3, [r7, #7]
800ec22: 4a2e ldr r2, [pc, #184] ; (800ecdc <DrawChannel_4+0xc84>)
800ec24: 015b lsls r3, r3, #5
800ec26: 4413 add r3, r2
800ec28: 3302 adds r3, #2
800ec2a: 881b ldrh r3, [r3, #0]
800ec2c: b29b uxth r3, r3
800ec2e: 461d mov r5, r3
800ec30: 4a2f ldr r2, [pc, #188] ; (800ecf0 <DrawChannel_4+0xc98>)
800ec32: 460b mov r3, r1
800ec34: 009b lsls r3, r3, #2
800ec36: 440b add r3, r1
800ec38: 442b add r3, r5
800ec3a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800ec3e: 2303 movs r3, #3
800ec40: 4621 mov r1, r4
800ec42: f7f6 f94b bl 8004edc <BSP_LCD_DisplayStringAt>
if(pardata.LANG == RUS)
800ec46: 4b25 ldr r3, [pc, #148] ; (800ecdc <DrawChannel_4+0xc84>)
800ec48: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ec4c: b29b uxth r3, r3
800ec4e: 2b00 cmp r3, #0
800ec50: d11e bne.n 800ec90 <DrawChannel_4+0xc38>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800ec52: 79fb ldrb r3, [r7, #7]
800ec54: 4a1f ldr r2, [pc, #124] ; (800ecd4 <DrawChannel_4+0xc7c>)
800ec56: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ec5a: 3305 adds r3, #5
800ec5c: b298 uxth r0, r3
800ec5e: 79fb ldrb r3, [r7, #7]
800ec60: 4a1d ldr r2, [pc, #116] ; (800ecd8 <DrawChannel_4+0xc80>)
800ec62: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ec66: 79fb ldrb r3, [r7, #7]
800ec68: 4a1c ldr r2, [pc, #112] ; (800ecdc <DrawChannel_4+0xc84>)
800ec6a: 015b lsls r3, r3, #5
800ec6c: 4413 add r3, r2
800ec6e: 3312 adds r3, #18
800ec70: 881b ldrh r3, [r3, #0]
800ec72: b29b uxth r3, r3
800ec74: 461a mov r2, r3
800ec76: 4922 ldr r1, [pc, #136] ; (800ed00 <DrawChannel_4+0xca8>)
800ec78: 4613 mov r3, r2
800ec7a: 015b lsls r3, r3, #5
800ec7c: 4413 add r3, r2
800ec7e: 6b3a ldr r2, [r7, #48] ; 0x30
800ec80: 4413 add r3, r2
800ec82: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800ec86: 2303 movs r3, #3
800ec88: 4621 mov r1, r4
800ec8a: f7f6 f927 bl 8004edc <BSP_LCD_DisplayStringAt>
}
800ec8e: e256 b.n 800f13e <DrawChannel_4+0x10e6>
else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE);
800ec90: 79fb ldrb r3, [r7, #7]
800ec92: 4a10 ldr r2, [pc, #64] ; (800ecd4 <DrawChannel_4+0xc7c>)
800ec94: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ec98: 3b09 subs r3, #9
800ec9a: b298 uxth r0, r3
800ec9c: 79fb ldrb r3, [r7, #7]
800ec9e: 4a0e ldr r2, [pc, #56] ; (800ecd8 <DrawChannel_4+0xc80>)
800eca0: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800eca4: 79fb ldrb r3, [r7, #7]
800eca6: 4a0d ldr r2, [pc, #52] ; (800ecdc <DrawChannel_4+0xc84>)
800eca8: 015b lsls r3, r3, #5
800ecaa: 4413 add r3, r2
800ecac: 3312 adds r3, #18
800ecae: 881b ldrh r3, [r3, #0]
800ecb0: b29b uxth r3, r3
800ecb2: 461a mov r2, r3
800ecb4: 490a ldr r1, [pc, #40] ; (800ece0 <DrawChannel_4+0xc88>)
800ecb6: 4613 mov r3, r2
800ecb8: 009b lsls r3, r3, #2
800ecba: 4413 add r3, r2
800ecbc: 009a lsls r2, r3, #2
800ecbe: 4413 add r3, r2
800ecc0: 6b3a ldr r2, [r7, #48] ; 0x30
800ecc2: 4413 add r3, r2
800ecc4: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800ecc8: 2303 movs r3, #3
800ecca: 4621 mov r1, r4
800eccc: f7f6 f906 bl 8004edc <BSP_LCD_DisplayStringAt>
}
800ecd0: e235 b.n 800f13e <DrawChannel_4+0x10e6>
800ecd2: bf00 nop
800ecd4: 0801ad98 .word 0x0801ad98
800ecd8: 0801adc8 .word 0x0801adc8
800ecdc: 2006bca8 .word 0x2006bca8
800ece0: 200205e0 .word 0x200205e0
800ece4: ffd8aa57 .word 0xffd8aa57
800ece8: 0801ada8 .word 0x0801ada8
800ecec: 0801adb0 .word 0x0801adb0
800ecf0: 20020054 .word 0x20020054
800ecf4: 0801adb8 .word 0x0801adb8
800ecf8: 0801adc0 .word 0x0801adc0
800ecfc: 2002007c .word 0x2002007c
800ed00: 2002013c .word 0x2002013c
800ed04: 20020010 .word 0x20020010
800ed08: 2006ba68 .word 0x2006ba68
800ed0c: 200209e4 .word 0x200209e4
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800ed10: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800ed14: 48b7 ldr r0, [pc, #732] ; (800eff4 <DrawChannel_4+0xf9c>)
800ed16: f7f6 f81b bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800ed1a: 79fb ldrb r3, [r7, #7]
800ed1c: 4ab6 ldr r2, [pc, #728] ; (800eff8 <DrawChannel_4+0xfa0>)
800ed1e: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800ed22: 79fb ldrb r3, [r7, #7]
800ed24: 4ab5 ldr r2, [pc, #724] ; (800effc <DrawChannel_4+0xfa4>)
800ed26: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ed2a: 4bb5 ldr r3, [pc, #724] ; (800f000 <DrawChannel_4+0xfa8>)
800ed2c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ed30: b29b uxth r3, r3
800ed32: 4619 mov r1, r3
800ed34: 79fb ldrb r3, [r7, #7]
800ed36: 4ab2 ldr r2, [pc, #712] ; (800f000 <DrawChannel_4+0xfa8>)
800ed38: 015b lsls r3, r3, #5
800ed3a: 4413 add r3, r2
800ed3c: 3302 adds r3, #2
800ed3e: 881b ldrh r3, [r3, #0]
800ed40: b29b uxth r3, r3
800ed42: 461d mov r5, r3
800ed44: 4aaf ldr r2, [pc, #700] ; (800f004 <DrawChannel_4+0xfac>)
800ed46: 460b mov r3, r1
800ed48: 009b lsls r3, r3, #2
800ed4a: 440b add r3, r1
800ed4c: 442b add r3, r5
800ed4e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800ed52: 2303 movs r3, #3
800ed54: 4621 mov r1, r4
800ed56: f7f6 f8c1 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800ed5a: 79fb ldrb r3, [r7, #7]
800ed5c: 4aaa ldr r2, [pc, #680] ; (800f008 <DrawChannel_4+0xfb0>)
800ed5e: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800ed62: 79fb ldrb r3, [r7, #7]
800ed64: 4aa9 ldr r2, [pc, #676] ; (800f00c <DrawChannel_4+0xfb4>)
800ed66: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800ed6a: 4ba5 ldr r3, [pc, #660] ; (800f000 <DrawChannel_4+0xfa8>)
800ed6c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ed70: b29b uxth r3, r3
800ed72: 461d mov r5, r3
800ed74: 79fb ldrb r3, [r7, #7]
800ed76: 4aa2 ldr r2, [pc, #648] ; (800f000 <DrawChannel_4+0xfa8>)
800ed78: 015b lsls r3, r3, #5
800ed7a: 4413 add r3, r2
800ed7c: 3304 adds r3, #4
800ed7e: 881b ldrh r3, [r3, #0]
800ed80: b29b uxth r3, r3
800ed82: 461c mov r4, r3
800ed84: 4aa2 ldr r2, [pc, #648] ; (800f010 <DrawChannel_4+0xfb8>)
800ed86: 00eb lsls r3, r5, #3
800ed88: 4423 add r3, r4
800ed8a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800ed8e: 2303 movs r3, #3
800ed90: f7f6 f8a4 bl 8004edc <BSP_LCD_DisplayStringAt>
if(pardata.LANG == RUS)
800ed94: 4b9a ldr r3, [pc, #616] ; (800f000 <DrawChannel_4+0xfa8>)
800ed96: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ed9a: b29b uxth r3, r3
800ed9c: 2b00 cmp r3, #0
800ed9e: d11e bne.n 800edde <DrawChannel_4+0xd86>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800eda0: 79fb ldrb r3, [r7, #7]
800eda2: 4a9c ldr r2, [pc, #624] ; (800f014 <DrawChannel_4+0xfbc>)
800eda4: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800eda8: 3305 adds r3, #5
800edaa: b298 uxth r0, r3
800edac: 79fb ldrb r3, [r7, #7]
800edae: 4a9a ldr r2, [pc, #616] ; (800f018 <DrawChannel_4+0xfc0>)
800edb0: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800edb4: 79fb ldrb r3, [r7, #7]
800edb6: 4a92 ldr r2, [pc, #584] ; (800f000 <DrawChannel_4+0xfa8>)
800edb8: 015b lsls r3, r3, #5
800edba: 4413 add r3, r2
800edbc: 3312 adds r3, #18
800edbe: 881b ldrh r3, [r3, #0]
800edc0: b29b uxth r3, r3
800edc2: 461a mov r2, r3
800edc4: 4995 ldr r1, [pc, #596] ; (800f01c <DrawChannel_4+0xfc4>)
800edc6: 4613 mov r3, r2
800edc8: 015b lsls r3, r3, #5
800edca: 4413 add r3, r2
800edcc: 6b3a ldr r2, [r7, #48] ; 0x30
800edce: 4413 add r3, r2
800edd0: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800edd4: 2303 movs r3, #3
800edd6: 4621 mov r1, r4
800edd8: f7f6 f880 bl 8004edc <BSP_LCD_DisplayStringAt>
}
800eddc: e1af b.n 800f13e <DrawChannel_4+0x10e6>
else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE);
800edde: 79fb ldrb r3, [r7, #7]
800ede0: 4a8c ldr r2, [pc, #560] ; (800f014 <DrawChannel_4+0xfbc>)
800ede2: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ede6: 3b09 subs r3, #9
800ede8: b298 uxth r0, r3
800edea: 79fb ldrb r3, [r7, #7]
800edec: 4a8a ldr r2, [pc, #552] ; (800f018 <DrawChannel_4+0xfc0>)
800edee: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800edf2: 79fb ldrb r3, [r7, #7]
800edf4: 4a82 ldr r2, [pc, #520] ; (800f000 <DrawChannel_4+0xfa8>)
800edf6: 015b lsls r3, r3, #5
800edf8: 4413 add r3, r2
800edfa: 3312 adds r3, #18
800edfc: 881b ldrh r3, [r3, #0]
800edfe: b29b uxth r3, r3
800ee00: 461a mov r2, r3
800ee02: 4987 ldr r1, [pc, #540] ; (800f020 <DrawChannel_4+0xfc8>)
800ee04: 4613 mov r3, r2
800ee06: 009b lsls r3, r3, #2
800ee08: 4413 add r3, r2
800ee0a: 009a lsls r2, r3, #2
800ee0c: 4413 add r3, r2
800ee0e: 6b3a ldr r2, [r7, #48] ; 0x30
800ee10: 4413 add r3, r2
800ee12: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800ee16: 2303 movs r3, #3
800ee18: 4621 mov r1, r4
800ee1a: f7f6 f85f bl 8004edc <BSP_LCD_DisplayStringAt>
}
800ee1e: e18e b.n 800f13e <DrawChannel_4+0x10e6>
if(menupos == Out)
800ee20: 4b80 ldr r3, [pc, #512] ; (800f024 <DrawChannel_4+0xfcc>)
800ee22: 781b ldrb r3, [r3, #0]
800ee24: b2db uxtb r3, r3
800ee26: 2b02 cmp r3, #2
800ee28: f040 8189 bne.w 800f13e <DrawChannel_4+0x10e6>
if(ACTIVE_CHANNEL == ch)
800ee2c: 79fa ldrb r2, [r7, #7]
800ee2e: 4b7e ldr r3, [pc, #504] ; (800f028 <DrawChannel_4+0xfd0>)
800ee30: 681b ldr r3, [r3, #0]
800ee32: 429a cmp r2, r3
800ee34: f040 80fc bne.w 800f030 <DrawChannel_4+0xfd8>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800ee38: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800ee3c: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800ee40: f7f5 ff86 bl 8004d50 <LCD_SetColors>
if(focused)
800ee44: 4b79 ldr r3, [pc, #484] ; (800f02c <DrawChannel_4+0xfd4>)
800ee46: 781b ldrb r3, [r3, #0]
800ee48: b2db uxtb r3, r3
800ee4a: 2b00 cmp r3, #0
800ee4c: d049 beq.n 800eee2 <DrawChannel_4+0xe8a>
if(blk)
800ee4e: 683b ldr r3, [r7, #0]
800ee50: 2b00 cmp r3, #0
800ee52: f000 808b beq.w 800ef6c <DrawChannel_4+0xf14>
if(pardata.LANG == RUS)
800ee56: 4b6a ldr r3, [pc, #424] ; (800f000 <DrawChannel_4+0xfa8>)
800ee58: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ee5c: b29b uxth r3, r3
800ee5e: 2b00 cmp r3, #0
800ee60: d11e bne.n 800eea0 <DrawChannel_4+0xe48>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800ee62: 79fb ldrb r3, [r7, #7]
800ee64: 4a6b ldr r2, [pc, #428] ; (800f014 <DrawChannel_4+0xfbc>)
800ee66: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ee6a: 3305 adds r3, #5
800ee6c: b298 uxth r0, r3
800ee6e: 79fb ldrb r3, [r7, #7]
800ee70: 4a69 ldr r2, [pc, #420] ; (800f018 <DrawChannel_4+0xfc0>)
800ee72: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ee76: 79fb ldrb r3, [r7, #7]
800ee78: 4a61 ldr r2, [pc, #388] ; (800f000 <DrawChannel_4+0xfa8>)
800ee7a: 015b lsls r3, r3, #5
800ee7c: 4413 add r3, r2
800ee7e: 3312 adds r3, #18
800ee80: 881b ldrh r3, [r3, #0]
800ee82: b29b uxth r3, r3
800ee84: 461a mov r2, r3
800ee86: 4965 ldr r1, [pc, #404] ; (800f01c <DrawChannel_4+0xfc4>)
800ee88: 4613 mov r3, r2
800ee8a: 015b lsls r3, r3, #5
800ee8c: 4413 add r3, r2
800ee8e: 6b3a ldr r2, [r7, #48] ; 0x30
800ee90: 4413 add r3, r2
800ee92: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800ee96: 2303 movs r3, #3
800ee98: 4621 mov r1, r4
800ee9a: f7f6 f81f bl 8004edc <BSP_LCD_DisplayStringAt>
800ee9e: e065 b.n 800ef6c <DrawChannel_4+0xf14>
else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE);
800eea0: 79fb ldrb r3, [r7, #7]
800eea2: 4a5c ldr r2, [pc, #368] ; (800f014 <DrawChannel_4+0xfbc>)
800eea4: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800eea8: 3b09 subs r3, #9
800eeaa: b298 uxth r0, r3
800eeac: 79fb ldrb r3, [r7, #7]
800eeae: 4a5a ldr r2, [pc, #360] ; (800f018 <DrawChannel_4+0xfc0>)
800eeb0: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800eeb4: 79fb ldrb r3, [r7, #7]
800eeb6: 4a52 ldr r2, [pc, #328] ; (800f000 <DrawChannel_4+0xfa8>)
800eeb8: 015b lsls r3, r3, #5
800eeba: 4413 add r3, r2
800eebc: 3312 adds r3, #18
800eebe: 881b ldrh r3, [r3, #0]
800eec0: b29b uxth r3, r3
800eec2: 461a mov r2, r3
800eec4: 4956 ldr r1, [pc, #344] ; (800f020 <DrawChannel_4+0xfc8>)
800eec6: 4613 mov r3, r2
800eec8: 009b lsls r3, r3, #2
800eeca: 4413 add r3, r2
800eecc: 009a lsls r2, r3, #2
800eece: 4413 add r3, r2
800eed0: 6b3a ldr r2, [r7, #48] ; 0x30
800eed2: 4413 add r3, r2
800eed4: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800eed8: 2303 movs r3, #3
800eeda: 4621 mov r1, r4
800eedc: f7f5 fffe bl 8004edc <BSP_LCD_DisplayStringAt>
800eee0: e044 b.n 800ef6c <DrawChannel_4+0xf14>
if(pardata.LANG == RUS)
800eee2: 4b47 ldr r3, [pc, #284] ; (800f000 <DrawChannel_4+0xfa8>)
800eee4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800eee8: b29b uxth r3, r3
800eeea: 2b00 cmp r3, #0
800eeec: d11e bne.n 800ef2c <DrawChannel_4+0xed4>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800eeee: 79fb ldrb r3, [r7, #7]
800eef0: 4a48 ldr r2, [pc, #288] ; (800f014 <DrawChannel_4+0xfbc>)
800eef2: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800eef6: 3305 adds r3, #5
800eef8: b298 uxth r0, r3
800eefa: 79fb ldrb r3, [r7, #7]
800eefc: 4a46 ldr r2, [pc, #280] ; (800f018 <DrawChannel_4+0xfc0>)
800eefe: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ef02: 79fb ldrb r3, [r7, #7]
800ef04: 4a3e ldr r2, [pc, #248] ; (800f000 <DrawChannel_4+0xfa8>)
800ef06: 015b lsls r3, r3, #5
800ef08: 4413 add r3, r2
800ef0a: 3312 adds r3, #18
800ef0c: 881b ldrh r3, [r3, #0]
800ef0e: b29b uxth r3, r3
800ef10: 461a mov r2, r3
800ef12: 4942 ldr r1, [pc, #264] ; (800f01c <DrawChannel_4+0xfc4>)
800ef14: 4613 mov r3, r2
800ef16: 015b lsls r3, r3, #5
800ef18: 4413 add r3, r2
800ef1a: 6b3a ldr r2, [r7, #48] ; 0x30
800ef1c: 4413 add r3, r2
800ef1e: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800ef22: 2303 movs r3, #3
800ef24: 4621 mov r1, r4
800ef26: f7f5 ffd9 bl 8004edc <BSP_LCD_DisplayStringAt>
800ef2a: e01f b.n 800ef6c <DrawChannel_4+0xf14>
else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE);
800ef2c: 79fb ldrb r3, [r7, #7]
800ef2e: 4a39 ldr r2, [pc, #228] ; (800f014 <DrawChannel_4+0xfbc>)
800ef30: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ef34: 3b09 subs r3, #9
800ef36: b298 uxth r0, r3
800ef38: 79fb ldrb r3, [r7, #7]
800ef3a: 4a37 ldr r2, [pc, #220] ; (800f018 <DrawChannel_4+0xfc0>)
800ef3c: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ef40: 79fb ldrb r3, [r7, #7]
800ef42: 4a2f ldr r2, [pc, #188] ; (800f000 <DrawChannel_4+0xfa8>)
800ef44: 015b lsls r3, r3, #5
800ef46: 4413 add r3, r2
800ef48: 3312 adds r3, #18
800ef4a: 881b ldrh r3, [r3, #0]
800ef4c: b29b uxth r3, r3
800ef4e: 461a mov r2, r3
800ef50: 4933 ldr r1, [pc, #204] ; (800f020 <DrawChannel_4+0xfc8>)
800ef52: 4613 mov r3, r2
800ef54: 009b lsls r3, r3, #2
800ef56: 4413 add r3, r2
800ef58: 009a lsls r2, r3, #2
800ef5a: 4413 add r3, r2
800ef5c: 6b3a ldr r2, [r7, #48] ; 0x30
800ef5e: 4413 add r3, r2
800ef60: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800ef64: 2303 movs r3, #3
800ef66: 4621 mov r1, r4
800ef68: f7f5 ffb8 bl 8004edc <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800ef6c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800ef70: 4820 ldr r0, [pc, #128] ; (800eff4 <DrawChannel_4+0xf9c>)
800ef72: f7f5 feed bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800ef76: 79fb ldrb r3, [r7, #7]
800ef78: 4a1f ldr r2, [pc, #124] ; (800eff8 <DrawChannel_4+0xfa0>)
800ef7a: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800ef7e: 79fb ldrb r3, [r7, #7]
800ef80: 4a1e ldr r2, [pc, #120] ; (800effc <DrawChannel_4+0xfa4>)
800ef82: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ef86: 4b1e ldr r3, [pc, #120] ; (800f000 <DrawChannel_4+0xfa8>)
800ef88: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ef8c: b29b uxth r3, r3
800ef8e: 4619 mov r1, r3
800ef90: 79fb ldrb r3, [r7, #7]
800ef92: 4a1b ldr r2, [pc, #108] ; (800f000 <DrawChannel_4+0xfa8>)
800ef94: 015b lsls r3, r3, #5
800ef96: 4413 add r3, r2
800ef98: 3302 adds r3, #2
800ef9a: 881b ldrh r3, [r3, #0]
800ef9c: b29b uxth r3, r3
800ef9e: 461d mov r5, r3
800efa0: 4a18 ldr r2, [pc, #96] ; (800f004 <DrawChannel_4+0xfac>)
800efa2: 460b mov r3, r1
800efa4: 009b lsls r3, r3, #2
800efa6: 440b add r3, r1
800efa8: 442b add r3, r5
800efaa: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800efae: 2303 movs r3, #3
800efb0: 4621 mov r1, r4
800efb2: f7f5 ff93 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800efb6: 79fb ldrb r3, [r7, #7]
800efb8: 4a13 ldr r2, [pc, #76] ; (800f008 <DrawChannel_4+0xfb0>)
800efba: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800efbe: 79fb ldrb r3, [r7, #7]
800efc0: 4a12 ldr r2, [pc, #72] ; (800f00c <DrawChannel_4+0xfb4>)
800efc2: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800efc6: 4b0e ldr r3, [pc, #56] ; (800f000 <DrawChannel_4+0xfa8>)
800efc8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800efcc: b29b uxth r3, r3
800efce: 461d mov r5, r3
800efd0: 79fb ldrb r3, [r7, #7]
800efd2: 4a0b ldr r2, [pc, #44] ; (800f000 <DrawChannel_4+0xfa8>)
800efd4: 015b lsls r3, r3, #5
800efd6: 4413 add r3, r2
800efd8: 3304 adds r3, #4
800efda: 881b ldrh r3, [r3, #0]
800efdc: b29b uxth r3, r3
800efde: 461c mov r4, r3
800efe0: 4a0b ldr r2, [pc, #44] ; (800f010 <DrawChannel_4+0xfb8>)
800efe2: 00eb lsls r3, r5, #3
800efe4: 4423 add r3, r4
800efe6: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800efea: 2303 movs r3, #3
800efec: f7f5 ff76 bl 8004edc <BSP_LCD_DisplayStringAt>
}
800eff0: e0a5 b.n 800f13e <DrawChannel_4+0x10e6>
800eff2: bf00 nop
800eff4: ffd8aa57 .word 0xffd8aa57
800eff8: 0801ada8 .word 0x0801ada8
800effc: 0801adb0 .word 0x0801adb0
800f000: 2006bca8 .word 0x2006bca8
800f004: 20020054 .word 0x20020054
800f008: 0801adb8 .word 0x0801adb8
800f00c: 0801adc0 .word 0x0801adc0
800f010: 2002007c .word 0x2002007c
800f014: 0801ad98 .word 0x0801ad98
800f018: 0801adc8 .word 0x0801adc8
800f01c: 2002013c .word 0x2002013c
800f020: 200205e0 .word 0x200205e0
800f024: 20020010 .word 0x20020010
800f028: 2006ba68 .word 0x2006ba68
800f02c: 200209e4 .word 0x200209e4
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800f030: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f034: 4844 ldr r0, [pc, #272] ; (800f148 <DrawChannel_4+0x10f0>)
800f036: f7f5 fe8b bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800f03a: 79fb ldrb r3, [r7, #7]
800f03c: 4a43 ldr r2, [pc, #268] ; (800f14c <DrawChannel_4+0x10f4>)
800f03e: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800f042: 79fb ldrb r3, [r7, #7]
800f044: 4a42 ldr r2, [pc, #264] ; (800f150 <DrawChannel_4+0x10f8>)
800f046: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f04a: 4b42 ldr r3, [pc, #264] ; (800f154 <DrawChannel_4+0x10fc>)
800f04c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f050: b29b uxth r3, r3
800f052: 4619 mov r1, r3
800f054: 79fb ldrb r3, [r7, #7]
800f056: 4a3f ldr r2, [pc, #252] ; (800f154 <DrawChannel_4+0x10fc>)
800f058: 015b lsls r3, r3, #5
800f05a: 4413 add r3, r2
800f05c: 3302 adds r3, #2
800f05e: 881b ldrh r3, [r3, #0]
800f060: b29b uxth r3, r3
800f062: 461d mov r5, r3
800f064: 4a3c ldr r2, [pc, #240] ; (800f158 <DrawChannel_4+0x1100>)
800f066: 460b mov r3, r1
800f068: 009b lsls r3, r3, #2
800f06a: 440b add r3, r1
800f06c: 442b add r3, r5
800f06e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800f072: 2303 movs r3, #3
800f074: 4621 mov r1, r4
800f076: f7f5 ff31 bl 8004edc <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800f07a: 79fb ldrb r3, [r7, #7]
800f07c: 4a37 ldr r2, [pc, #220] ; (800f15c <DrawChannel_4+0x1104>)
800f07e: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800f082: 79fb ldrb r3, [r7, #7]
800f084: 4a36 ldr r2, [pc, #216] ; (800f160 <DrawChannel_4+0x1108>)
800f086: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800f08a: 4b32 ldr r3, [pc, #200] ; (800f154 <DrawChannel_4+0x10fc>)
800f08c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f090: b29b uxth r3, r3
800f092: 461d mov r5, r3
800f094: 79fb ldrb r3, [r7, #7]
800f096: 4a2f ldr r2, [pc, #188] ; (800f154 <DrawChannel_4+0x10fc>)
800f098: 015b lsls r3, r3, #5
800f09a: 4413 add r3, r2
800f09c: 3304 adds r3, #4
800f09e: 881b ldrh r3, [r3, #0]
800f0a0: b29b uxth r3, r3
800f0a2: 461c mov r4, r3
800f0a4: 4a2f ldr r2, [pc, #188] ; (800f164 <DrawChannel_4+0x110c>)
800f0a6: 00eb lsls r3, r5, #3
800f0a8: 4423 add r3, r4
800f0aa: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800f0ae: 2303 movs r3, #3
800f0b0: f7f5 ff14 bl 8004edc <BSP_LCD_DisplayStringAt>
if(pardata.LANG == RUS)
800f0b4: 4b27 ldr r3, [pc, #156] ; (800f154 <DrawChannel_4+0x10fc>)
800f0b6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f0ba: b29b uxth r3, r3
800f0bc: 2b00 cmp r3, #0
800f0be: d11e bne.n 800f0fe <DrawChannel_4+0x10a6>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800f0c0: 79fb ldrb r3, [r7, #7]
800f0c2: 4a29 ldr r2, [pc, #164] ; (800f168 <DrawChannel_4+0x1110>)
800f0c4: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800f0c8: 3305 adds r3, #5
800f0ca: b298 uxth r0, r3
800f0cc: 79fb ldrb r3, [r7, #7]
800f0ce: 4a27 ldr r2, [pc, #156] ; (800f16c <DrawChannel_4+0x1114>)
800f0d0: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f0d4: 79fb ldrb r3, [r7, #7]
800f0d6: 4a1f ldr r2, [pc, #124] ; (800f154 <DrawChannel_4+0x10fc>)
800f0d8: 015b lsls r3, r3, #5
800f0da: 4413 add r3, r2
800f0dc: 3312 adds r3, #18
800f0de: 881b ldrh r3, [r3, #0]
800f0e0: b29b uxth r3, r3
800f0e2: 461a mov r2, r3
800f0e4: 4922 ldr r1, [pc, #136] ; (800f170 <DrawChannel_4+0x1118>)
800f0e6: 4613 mov r3, r2
800f0e8: 015b lsls r3, r3, #5
800f0ea: 4413 add r3, r2
800f0ec: 6b3a ldr r2, [r7, #48] ; 0x30
800f0ee: 4413 add r3, r2
800f0f0: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800f0f4: 2303 movs r3, #3
800f0f6: 4621 mov r1, r4
800f0f8: f7f5 fef0 bl 8004edc <BSP_LCD_DisplayStringAt>
}
800f0fc: e01f b.n 800f13e <DrawChannel_4+0x10e6>
else BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5 - 14, YPOS_KM_4[ch], (char *) pOUT_ENG[pardata.amplif[ch].VAL][out], LEFT_MODE);
800f0fe: 79fb ldrb r3, [r7, #7]
800f100: 4a19 ldr r2, [pc, #100] ; (800f168 <DrawChannel_4+0x1110>)
800f102: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800f106: 3b09 subs r3, #9
800f108: b298 uxth r0, r3
800f10a: 79fb ldrb r3, [r7, #7]
800f10c: 4a17 ldr r2, [pc, #92] ; (800f16c <DrawChannel_4+0x1114>)
800f10e: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f112: 79fb ldrb r3, [r7, #7]
800f114: 4a0f ldr r2, [pc, #60] ; (800f154 <DrawChannel_4+0x10fc>)
800f116: 015b lsls r3, r3, #5
800f118: 4413 add r3, r2
800f11a: 3312 adds r3, #18
800f11c: 881b ldrh r3, [r3, #0]
800f11e: b29b uxth r3, r3
800f120: 461a mov r2, r3
800f122: 4914 ldr r1, [pc, #80] ; (800f174 <DrawChannel_4+0x111c>)
800f124: 4613 mov r3, r2
800f126: 009b lsls r3, r3, #2
800f128: 4413 add r3, r2
800f12a: 009a lsls r2, r3, #2
800f12c: 4413 add r3, r2
800f12e: 6b3a ldr r2, [r7, #48] ; 0x30
800f130: 4413 add r3, r2
800f132: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800f136: 2303 movs r3, #3
800f138: 4621 mov r1, r4
800f13a: f7f5 fecf bl 8004edc <BSP_LCD_DisplayStringAt>
}
800f13e: bf00 nop
800f140: 3738 adds r7, #56 ; 0x38
800f142: 46bd mov sp, r7
800f144: bdb0 pop {r4, r5, r7, pc}
800f146: bf00 nop
800f148: ffd8aa57 .word 0xffd8aa57
800f14c: 0801ada8 .word 0x0801ada8
800f150: 0801adb0 .word 0x0801adb0
800f154: 2006bca8 .word 0x2006bca8
800f158: 20020054 .word 0x20020054
800f15c: 0801adb8 .word 0x0801adb8
800f160: 0801adc0 .word 0x0801adc0
800f164: 2002007c .word 0x2002007c
800f168: 0801ad98 .word 0x0801ad98
800f16c: 0801adc8 .word 0x0801adc8
800f170: 2002013c .word 0x2002013c
800f174: 200205e0 .word 0x200205e0
0800f178 <DrawButtons>:
void DrawButtons(void)
{
800f178: b580 push {r7, lr}
800f17a: af00 add r7, sp, #0
if(menupos == Set100)
800f17c: 4ba1 ldr r3, [pc, #644] ; (800f404 <DrawButtons+0x28c>)
800f17e: 781b ldrb r3, [r3, #0]
800f180: b2db uxtb r3, r3
800f182: 2b00 cmp r3, #0
800f184: d106 bne.n 800f194 <DrawButtons+0x1c>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800f186: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f18a: f04f 30ff mov.w r0, #4294967295
800f18e: f7f5 fddf bl 8004d50 <LCD_SetColors>
800f192: e004 b.n 800f19e <DrawButtons+0x26>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800f194: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f198: 489b ldr r0, [pc, #620] ; (800f408 <DrawButtons+0x290>)
800f19a: f7f5 fdd9 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillRect(120, 40, 80, 20); //+100
800f19e: 2314 movs r3, #20
800f1a0: 2250 movs r2, #80 ; 0x50
800f1a2: 2128 movs r1, #40 ; 0x28
800f1a4: 2078 movs r0, #120 ; 0x78
800f1a6: f7f6 f995 bl 80054d4 <BSP_LCD_FillRect>
if(menupos == Set_100)
800f1aa: 4b96 ldr r3, [pc, #600] ; (800f404 <DrawButtons+0x28c>)
800f1ac: 781b ldrb r3, [r3, #0]
800f1ae: b2db uxtb r3, r3
800f1b0: 2b01 cmp r3, #1
800f1b2: d106 bne.n 800f1c2 <DrawButtons+0x4a>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800f1b4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f1b8: f04f 30ff mov.w r0, #4294967295
800f1bc: f7f5 fdc8 bl 8004d50 <LCD_SetColors>
800f1c0: e004 b.n 800f1cc <DrawButtons+0x54>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800f1c2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f1c6: 4890 ldr r0, [pc, #576] ; (800f408 <DrawButtons+0x290>)
800f1c8: f7f5 fdc2 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillRect(120, 65, 80, 20); //-100
800f1cc: 2314 movs r3, #20
800f1ce: 2250 movs r2, #80 ; 0x50
800f1d0: 2141 movs r1, #65 ; 0x41
800f1d2: 2078 movs r0, #120 ; 0x78
800f1d4: f7f6 f97e bl 80054d4 <BSP_LCD_FillRect>
if(menupos == Set10)
800f1d8: 4b8a ldr r3, [pc, #552] ; (800f404 <DrawButtons+0x28c>)
800f1da: 781b ldrb r3, [r3, #0]
800f1dc: b2db uxtb r3, r3
800f1de: 2b02 cmp r3, #2
800f1e0: d106 bne.n 800f1f0 <DrawButtons+0x78>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800f1e2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f1e6: f04f 30ff mov.w r0, #4294967295
800f1ea: f7f5 fdb1 bl 8004d50 <LCD_SetColors>
800f1ee: e004 b.n 800f1fa <DrawButtons+0x82>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800f1f0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f1f4: 4884 ldr r0, [pc, #528] ; (800f408 <DrawButtons+0x290>)
800f1f6: f7f5 fdab bl 8004d50 <LCD_SetColors>
BSP_LCD_FillRect(120, 90, 80, 20); //+10
800f1fa: 2314 movs r3, #20
800f1fc: 2250 movs r2, #80 ; 0x50
800f1fe: 215a movs r1, #90 ; 0x5a
800f200: 2078 movs r0, #120 ; 0x78
800f202: f7f6 f967 bl 80054d4 <BSP_LCD_FillRect>
if(menupos == Set_10)
800f206: 4b7f ldr r3, [pc, #508] ; (800f404 <DrawButtons+0x28c>)
800f208: 781b ldrb r3, [r3, #0]
800f20a: b2db uxtb r3, r3
800f20c: 2b03 cmp r3, #3
800f20e: d106 bne.n 800f21e <DrawButtons+0xa6>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800f210: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f214: f04f 30ff mov.w r0, #4294967295
800f218: f7f5 fd9a bl 8004d50 <LCD_SetColors>
800f21c: e004 b.n 800f228 <DrawButtons+0xb0>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800f21e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f222: 4879 ldr r0, [pc, #484] ; (800f408 <DrawButtons+0x290>)
800f224: f7f5 fd94 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillRect(120, 115, 80, 20); //-10
800f228: 2314 movs r3, #20
800f22a: 2250 movs r2, #80 ; 0x50
800f22c: 2173 movs r1, #115 ; 0x73
800f22e: 2078 movs r0, #120 ; 0x78
800f230: f7f6 f950 bl 80054d4 <BSP_LCD_FillRect>
if(menupos == Set1)
800f234: 4b73 ldr r3, [pc, #460] ; (800f404 <DrawButtons+0x28c>)
800f236: 781b ldrb r3, [r3, #0]
800f238: b2db uxtb r3, r3
800f23a: 2b04 cmp r3, #4
800f23c: d106 bne.n 800f24c <DrawButtons+0xd4>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800f23e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f242: f04f 30ff mov.w r0, #4294967295
800f246: f7f5 fd83 bl 8004d50 <LCD_SetColors>
800f24a: e004 b.n 800f256 <DrawButtons+0xde>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800f24c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f250: 486d ldr r0, [pc, #436] ; (800f408 <DrawButtons+0x290>)
800f252: f7f5 fd7d bl 8004d50 <LCD_SetColors>
BSP_LCD_FillRect(120, 140, 80, 20); //+1
800f256: 2314 movs r3, #20
800f258: 2250 movs r2, #80 ; 0x50
800f25a: 218c movs r1, #140 ; 0x8c
800f25c: 2078 movs r0, #120 ; 0x78
800f25e: f7f6 f939 bl 80054d4 <BSP_LCD_FillRect>
if(menupos == Set_1)
800f262: 4b68 ldr r3, [pc, #416] ; (800f404 <DrawButtons+0x28c>)
800f264: 781b ldrb r3, [r3, #0]
800f266: b2db uxtb r3, r3
800f268: 2b05 cmp r3, #5
800f26a: d106 bne.n 800f27a <DrawButtons+0x102>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800f26c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f270: f04f 30ff mov.w r0, #4294967295
800f274: f7f5 fd6c bl 8004d50 <LCD_SetColors>
800f278: e004 b.n 800f284 <DrawButtons+0x10c>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800f27a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f27e: 4862 ldr r0, [pc, #392] ; (800f408 <DrawButtons+0x290>)
800f280: f7f5 fd66 bl 8004d50 <LCD_SetColors>
BSP_LCD_FillRect(120, 165, 80, 20); //-1
800f284: 2314 movs r3, #20
800f286: 2250 movs r2, #80 ; 0x50
800f288: 21a5 movs r1, #165 ; 0xa5
800f28a: 2078 movs r0, #120 ; 0x78
800f28c: f7f6 f922 bl 80054d4 <BSP_LCD_FillRect>
if(menupos == Next)
800f290: 4b5c ldr r3, [pc, #368] ; (800f404 <DrawButtons+0x28c>)
800f292: 781b ldrb r3, [r3, #0]
800f294: b2db uxtb r3, r3
800f296: 2b06 cmp r3, #6
800f298: d106 bne.n 800f2a8 <DrawButtons+0x130>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800f29a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f29e: f04f 30ff mov.w r0, #4294967295
800f2a2: f7f5 fd55 bl 8004d50 <LCD_SetColors>
800f2a6: e004 b.n 800f2b2 <DrawButtons+0x13a>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800f2a8: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f2ac: 4856 ldr r0, [pc, #344] ; (800f408 <DrawButtons+0x290>)
800f2ae: f7f5 fd4f bl 8004d50 <LCD_SetColors>
BSP_LCD_FillRect(120, 190, 80, 20); //Next
800f2b2: 2314 movs r3, #20
800f2b4: 2250 movs r2, #80 ; 0x50
800f2b6: 21be movs r1, #190 ; 0xbe
800f2b8: 2078 movs r0, #120 ; 0x78
800f2ba: f7f6 f90b bl 80054d4 <BSP_LCD_FillRect>
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
if(menupos == Set100)
800f2be: 4b51 ldr r3, [pc, #324] ; (800f404 <DrawButtons+0x28c>)
800f2c0: 781b ldrb r3, [r3, #0]
800f2c2: b2db uxtb r3, r3
800f2c4: 2b00 cmp r3, #0
800f2c6: d106 bne.n 800f2d6 <DrawButtons+0x15e>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800f2c8: f04f 31ff mov.w r1, #4294967295
800f2cc: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f2d0: f7f5 fd3e bl 8004d50 <LCD_SetColors>
800f2d4: e004 b.n 800f2e0 <DrawButtons+0x168>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800f2d6: 494c ldr r1, [pc, #304] ; (800f408 <DrawButtons+0x290>)
800f2d8: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f2dc: f7f5 fd38 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 40+5, "+100", CENTER_MODE);
800f2e0: 2301 movs r3, #1
800f2e2: 4a4a ldr r2, [pc, #296] ; (800f40c <DrawButtons+0x294>)
800f2e4: 212d movs r1, #45 ; 0x2d
800f2e6: 20a0 movs r0, #160 ; 0xa0
800f2e8: f7f5 fdf8 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Set_100)
800f2ec: 4b45 ldr r3, [pc, #276] ; (800f404 <DrawButtons+0x28c>)
800f2ee: 781b ldrb r3, [r3, #0]
800f2f0: b2db uxtb r3, r3
800f2f2: 2b01 cmp r3, #1
800f2f4: d106 bne.n 800f304 <DrawButtons+0x18c>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800f2f6: f04f 31ff mov.w r1, #4294967295
800f2fa: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f2fe: f7f5 fd27 bl 8004d50 <LCD_SetColors>
800f302: e004 b.n 800f30e <DrawButtons+0x196>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800f304: 4940 ldr r1, [pc, #256] ; (800f408 <DrawButtons+0x290>)
800f306: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f30a: f7f5 fd21 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 65+5, "-100", CENTER_MODE);
800f30e: 2301 movs r3, #1
800f310: 4a3f ldr r2, [pc, #252] ; (800f410 <DrawButtons+0x298>)
800f312: 2146 movs r1, #70 ; 0x46
800f314: 20a0 movs r0, #160 ; 0xa0
800f316: f7f5 fde1 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Set10)
800f31a: 4b3a ldr r3, [pc, #232] ; (800f404 <DrawButtons+0x28c>)
800f31c: 781b ldrb r3, [r3, #0]
800f31e: b2db uxtb r3, r3
800f320: 2b02 cmp r3, #2
800f322: d106 bne.n 800f332 <DrawButtons+0x1ba>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800f324: f04f 31ff mov.w r1, #4294967295
800f328: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f32c: f7f5 fd10 bl 8004d50 <LCD_SetColors>
800f330: e004 b.n 800f33c <DrawButtons+0x1c4>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800f332: 4935 ldr r1, [pc, #212] ; (800f408 <DrawButtons+0x290>)
800f334: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f338: f7f5 fd0a bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 90+5, "+10", CENTER_MODE);
800f33c: 2301 movs r3, #1
800f33e: 4a35 ldr r2, [pc, #212] ; (800f414 <DrawButtons+0x29c>)
800f340: 215f movs r1, #95 ; 0x5f
800f342: 20a0 movs r0, #160 ; 0xa0
800f344: f7f5 fdca bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Set_10)
800f348: 4b2e ldr r3, [pc, #184] ; (800f404 <DrawButtons+0x28c>)
800f34a: 781b ldrb r3, [r3, #0]
800f34c: b2db uxtb r3, r3
800f34e: 2b03 cmp r3, #3
800f350: d106 bne.n 800f360 <DrawButtons+0x1e8>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800f352: f04f 31ff mov.w r1, #4294967295
800f356: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f35a: f7f5 fcf9 bl 8004d50 <LCD_SetColors>
800f35e: e004 b.n 800f36a <DrawButtons+0x1f2>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800f360: 4929 ldr r1, [pc, #164] ; (800f408 <DrawButtons+0x290>)
800f362: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f366: f7f5 fcf3 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 115+5, "-10", CENTER_MODE);
800f36a: 2301 movs r3, #1
800f36c: 4a2a ldr r2, [pc, #168] ; (800f418 <DrawButtons+0x2a0>)
800f36e: 2178 movs r1, #120 ; 0x78
800f370: 20a0 movs r0, #160 ; 0xa0
800f372: f7f5 fdb3 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Set1)
800f376: 4b23 ldr r3, [pc, #140] ; (800f404 <DrawButtons+0x28c>)
800f378: 781b ldrb r3, [r3, #0]
800f37a: b2db uxtb r3, r3
800f37c: 2b04 cmp r3, #4
800f37e: d106 bne.n 800f38e <DrawButtons+0x216>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800f380: f04f 31ff mov.w r1, #4294967295
800f384: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f388: f7f5 fce2 bl 8004d50 <LCD_SetColors>
800f38c: e004 b.n 800f398 <DrawButtons+0x220>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800f38e: 491e ldr r1, [pc, #120] ; (800f408 <DrawButtons+0x290>)
800f390: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f394: f7f5 fcdc bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 140+5, "+1", CENTER_MODE);
800f398: 2301 movs r3, #1
800f39a: 4a20 ldr r2, [pc, #128] ; (800f41c <DrawButtons+0x2a4>)
800f39c: 2191 movs r1, #145 ; 0x91
800f39e: 20a0 movs r0, #160 ; 0xa0
800f3a0: f7f5 fd9c bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Set_1)
800f3a4: 4b17 ldr r3, [pc, #92] ; (800f404 <DrawButtons+0x28c>)
800f3a6: 781b ldrb r3, [r3, #0]
800f3a8: b2db uxtb r3, r3
800f3aa: 2b05 cmp r3, #5
800f3ac: d106 bne.n 800f3bc <DrawButtons+0x244>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800f3ae: f04f 31ff mov.w r1, #4294967295
800f3b2: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f3b6: f7f5 fccb bl 8004d50 <LCD_SetColors>
800f3ba: e004 b.n 800f3c6 <DrawButtons+0x24e>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800f3bc: 4912 ldr r1, [pc, #72] ; (800f408 <DrawButtons+0x290>)
800f3be: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f3c2: f7f5 fcc5 bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 165+5, "-1", CENTER_MODE);
800f3c6: 2301 movs r3, #1
800f3c8: 4a15 ldr r2, [pc, #84] ; (800f420 <DrawButtons+0x2a8>)
800f3ca: 21aa movs r1, #170 ; 0xaa
800f3cc: 20a0 movs r0, #160 ; 0xa0
800f3ce: f7f5 fd85 bl 8004edc <BSP_LCD_DisplayStringAt>
if(menupos == Next)
800f3d2: 4b0c ldr r3, [pc, #48] ; (800f404 <DrawButtons+0x28c>)
800f3d4: 781b ldrb r3, [r3, #0]
800f3d6: b2db uxtb r3, r3
800f3d8: 2b06 cmp r3, #6
800f3da: d106 bne.n 800f3ea <DrawButtons+0x272>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800f3dc: f04f 31ff mov.w r1, #4294967295
800f3e0: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f3e4: f7f5 fcb4 bl 8004d50 <LCD_SetColors>
800f3e8: e004 b.n 800f3f4 <DrawButtons+0x27c>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800f3ea: 4907 ldr r1, [pc, #28] ; (800f408 <DrawButtons+0x290>)
800f3ec: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f3f0: f7f5 fcae bl 8004d50 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 190+5, "<22><><C4><E0><EB>", CENTER_MODE);
800f3f4: 2301 movs r3, #1
800f3f6: 4a0b ldr r2, [pc, #44] ; (800f424 <DrawButtons+0x2ac>)
800f3f8: 21c3 movs r1, #195 ; 0xc3
800f3fa: 20a0 movs r0, #160 ; 0xa0
800f3fc: f7f5 fd6e bl 8004edc <BSP_LCD_DisplayStringAt>
}
800f400: bf00 nop
800f402: bd80 pop {r7, pc}
800f404: 20020010 .word 0x20020010
800f408: ff808080 .word 0xff808080
800f40c: 08018520 .word 0x08018520
800f410: 08018528 .word 0x08018528
800f414: 08018530 .word 0x08018530
800f418: 08018534 .word 0x08018534
800f41c: 08018538 .word 0x08018538
800f420: 0801853c .word 0x0801853c
800f424: 08018540 .word 0x08018540
0800f428 <FloatToASCII>:
char * FloatToASCII(float32_t Val, int32_t RoundTo)
{
800f428: b580 push {r7, lr}
800f42a: b098 sub sp, #96 ; 0x60
800f42c: af00 add r7, sp, #0
800f42e: ed87 0a01 vstr s0, [r7, #4]
800f432: 6038 str r0, [r7, #0]
uint8_t idx = 0;
800f434: 2300 movs r3, #0
800f436: f887 305f strb.w r3, [r7, #95] ; 0x5f
int32_t i;
float32_t value, F, I;
uint32_t rnd = 0;
800f43a: 2300 movs r3, #0
800f43c: 653b str r3, [r7, #80] ; 0x50
uint32_t Tmp32 = 0;
800f43e: 2300 movs r3, #0
800f440: 63fb str r3, [r7, #60] ; 0x3c
uint32_t Int32 = 0;
800f442: 2300 movs r3, #0
800f444: 64fb str r3, [r7, #76] ; 0x4c
uint32_t Frac32 = 0;
800f446: 2300 movs r3, #0
800f448: 64bb str r3, [r7, #72] ; 0x48
uint32_t _I32 = 0;
800f44a: 2300 movs r3, #0
800f44c: 63bb str r3, [r7, #56] ; 0x38
uint32_t _F32 = 0;
800f44e: 2300 movs r3, #0
800f450: 637b str r3, [r7, #52] ; 0x34
uint32_t d = 0, dd = 0;
800f452: 2300 movs r3, #0
800f454: 647b str r3, [r7, #68] ; 0x44
800f456: 2300 movs r3, #0
800f458: 643b str r3, [r7, #64] ; 0x40
char tmparray[32];
volatile bool minus = false;
800f45a: 2300 movs r3, #0
800f45c: 72fb strb r3, [r7, #11]
memset(tmparray, 0, 32);
800f45e: f107 030c add.w r3, r7, #12
800f462: 2220 movs r2, #32
800f464: 2100 movs r1, #0
800f466: 4618 mov r0, r3
800f468: f006 fffb bl 8016462 <memset>
memset(pString, 0, 16);
800f46c: 2210 movs r2, #16
800f46e: 2100 movs r1, #0
800f470: 48b7 ldr r0, [pc, #732] ; (800f750 <FloatToASCII+0x328>)
800f472: f006 fff6 bl 8016462 <memset>
value = Val;
800f476: 687b ldr r3, [r7, #4]
800f478: 633b str r3, [r7, #48] ; 0x30
if(value < 0)
800f47a: edd7 7a0c vldr s15, [r7, #48] ; 0x30
800f47e: eef5 7ac0 vcmpe.f32 s15, #0.0
800f482: eef1 fa10 vmrs APSR_nzcv, fpscr
800f486: d501 bpl.n 800f48c <FloatToASCII+0x64>
minus = true;
800f488: 2301 movs r3, #1
800f48a: 72fb strb r3, [r7, #11]
if(Val > 99999.0)
800f48c: edd7 7a01 vldr s15, [r7, #4]
800f490: ed9f 7ab0 vldr s14, [pc, #704] ; 800f754 <FloatToASCII+0x32c>
800f494: eef4 7ac7 vcmpe.f32 s15, s14
800f498: eef1 fa10 vmrs APSR_nzcv, fpscr
800f49c: dd30 ble.n 800f500 <FloatToASCII+0xd8>
{
if(Val < 0)
800f49e: edd7 7a01 vldr s15, [r7, #4]
800f4a2: eef5 7ac0 vcmpe.f32 s15, #0.0
800f4a6: eef1 fa10 vmrs APSR_nzcv, fpscr
800f4aa: d515 bpl.n 800f4d8 <FloatToASCII+0xb0>
{
pString[0] = '1';
800f4ac: 4ba8 ldr r3, [pc, #672] ; (800f750 <FloatToASCII+0x328>)
800f4ae: 2231 movs r2, #49 ; 0x31
800f4b0: 701a strb r2, [r3, #0]
pString[1] = '.';
800f4b2: 4ba7 ldr r3, [pc, #668] ; (800f750 <FloatToASCII+0x328>)
800f4b4: 222e movs r2, #46 ; 0x2e
800f4b6: 705a strb r2, [r3, #1]
pString[2] = '0';
800f4b8: 4ba5 ldr r3, [pc, #660] ; (800f750 <FloatToASCII+0x328>)
800f4ba: 2230 movs r2, #48 ; 0x30
800f4bc: 709a strb r2, [r3, #2]
pString[3] = '0';
800f4be: 4ba4 ldr r3, [pc, #656] ; (800f750 <FloatToASCII+0x328>)
800f4c0: 2230 movs r2, #48 ; 0x30
800f4c2: 70da strb r2, [r3, #3]
pString[4] = '0';
800f4c4: 4ba2 ldr r3, [pc, #648] ; (800f750 <FloatToASCII+0x328>)
800f4c6: 2230 movs r2, #48 ; 0x30
800f4c8: 711a strb r2, [r3, #4]
pString[5] = '0';
800f4ca: 4ba1 ldr r3, [pc, #644] ; (800f750 <FloatToASCII+0x328>)
800f4cc: 2230 movs r2, #48 ; 0x30
800f4ce: 715a strb r2, [r3, #5]
pString[6] = '\0';
800f4d0: 4b9f ldr r3, [pc, #636] ; (800f750 <FloatToASCII+0x328>)
800f4d2: 2200 movs r2, #0
800f4d4: 719a strb r2, [r3, #6]
800f4d6: e011 b.n 800f4fc <FloatToASCII+0xd4>
}
else
{
pString[0] = '9';
800f4d8: 4b9d ldr r3, [pc, #628] ; (800f750 <FloatToASCII+0x328>)
800f4da: 2239 movs r2, #57 ; 0x39
800f4dc: 701a strb r2, [r3, #0]
pString[1] = '9';
800f4de: 4b9c ldr r3, [pc, #624] ; (800f750 <FloatToASCII+0x328>)
800f4e0: 2239 movs r2, #57 ; 0x39
800f4e2: 705a strb r2, [r3, #1]
pString[2] = '9';
800f4e4: 4b9a ldr r3, [pc, #616] ; (800f750 <FloatToASCII+0x328>)
800f4e6: 2239 movs r2, #57 ; 0x39
800f4e8: 709a strb r2, [r3, #2]
pString[3] = '9';
800f4ea: 4b99 ldr r3, [pc, #612] ; (800f750 <FloatToASCII+0x328>)
800f4ec: 2239 movs r2, #57 ; 0x39
800f4ee: 70da strb r2, [r3, #3]
pString[4] = '9';
800f4f0: 4b97 ldr r3, [pc, #604] ; (800f750 <FloatToASCII+0x328>)
800f4f2: 2239 movs r2, #57 ; 0x39
800f4f4: 711a strb r2, [r3, #4]
pString[5] = '\0';
800f4f6: 4b96 ldr r3, [pc, #600] ; (800f750 <FloatToASCII+0x328>)
800f4f8: 2200 movs r2, #0
800f4fa: 715a strb r2, [r3, #5]
}
return pString;
800f4fc: 4b94 ldr r3, [pc, #592] ; (800f750 <FloatToASCII+0x328>)
800f4fe: e168 b.n 800f7d2 <FloatToASCII+0x3aa>
}
value = ABS(Val);
800f500: edd7 7a01 vldr s15, [r7, #4]
800f504: eef5 7ac0 vcmpe.f32 s15, #0.0
800f508: eef1 fa10 vmrs APSR_nzcv, fpscr
800f50c: dd02 ble.n 800f514 <FloatToASCII+0xec>
800f50e: edd7 7a01 vldr s15, [r7, #4]
800f512: e003 b.n 800f51c <FloatToASCII+0xf4>
800f514: edd7 7a01 vldr s15, [r7, #4]
800f518: eef1 7a67 vneg.f32 s15, s15
800f51c: edc7 7a0c vstr s15, [r7, #48] ; 0x30
rnd = ABS(RoundTo);
800f520: 683b ldr r3, [r7, #0]
800f522: 2b00 cmp r3, #0
800f524: bfb8 it lt
800f526: 425b neglt r3, r3
800f528: 653b str r3, [r7, #80] ; 0x50
if(RoundTo < 0)
800f52a: 683b ldr r3, [r7, #0]
800f52c: 2b00 cmp r3, #0
800f52e: da47 bge.n 800f5c0 <FloatToASCII+0x198>
{
F = modff(value, &I);
800f530: f107 032c add.w r3, r7, #44 ; 0x2c
800f534: 4618 mov r0, r3
800f536: ed97 0a0c vldr s0, [r7, #48] ; 0x30
800f53a: f006 ff15 bl 8016368 <modff>
800f53e: ed87 0a15 vstr s0, [r7, #84] ; 0x54
while(rnd)
800f542: e00d b.n 800f560 <FloatToASCII+0x138>
{
F *= 10.0f;
800f544: edd7 7a15 vldr s15, [r7, #84] ; 0x54
800f548: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800f54c: ee67 7a87 vmul.f32 s15, s15, s14
800f550: edc7 7a15 vstr s15, [r7, #84] ; 0x54
rnd--;
800f554: 6d3b ldr r3, [r7, #80] ; 0x50
800f556: 3b01 subs r3, #1
800f558: 653b str r3, [r7, #80] ; 0x50
d++;
800f55a: 6c7b ldr r3, [r7, #68] ; 0x44
800f55c: 3301 adds r3, #1
800f55e: 647b str r3, [r7, #68] ; 0x44
while(rnd)
800f560: 6d3b ldr r3, [r7, #80] ; 0x50
800f562: 2b00 cmp r3, #0
800f564: d1ee bne.n 800f544 <FloatToASCII+0x11c>
}
F = roundf(F);
800f566: ed97 0a15 vldr s0, [r7, #84] ; 0x54
800f56a: f006 ff25 bl 80163b8 <roundf>
800f56e: ed87 0a15 vstr s0, [r7, #84] ; 0x54
dd = 1;
800f572: 2301 movs r3, #1
800f574: 643b str r3, [r7, #64] ; 0x40
for(i = 0; i < d; i++)
800f576: 2300 movs r3, #0
800f578: 65bb str r3, [r7, #88] ; 0x58
800f57a: e008 b.n 800f58e <FloatToASCII+0x166>
dd *= 10;
800f57c: 6c3a ldr r2, [r7, #64] ; 0x40
800f57e: 4613 mov r3, r2
800f580: 009b lsls r3, r3, #2
800f582: 4413 add r3, r2
800f584: 005b lsls r3, r3, #1
800f586: 643b str r3, [r7, #64] ; 0x40
for(i = 0; i < d; i++)
800f588: 6dbb ldr r3, [r7, #88] ; 0x58
800f58a: 3301 adds r3, #1
800f58c: 65bb str r3, [r7, #88] ; 0x58
800f58e: 6dba ldr r2, [r7, #88] ; 0x58
800f590: 6c7b ldr r3, [r7, #68] ; 0x44
800f592: 429a cmp r2, r3
800f594: d3f2 bcc.n 800f57c <FloatToASCII+0x154>
if((uint32_t) F == dd)
800f596: edd7 7a15 vldr s15, [r7, #84] ; 0x54
800f59a: eefc 7ae7 vcvt.u32.f32 s15, s15
800f59e: ee17 2a90 vmov r2, s15
800f5a2: 6c3b ldr r3, [r7, #64] ; 0x40
800f5a4: 429a cmp r2, r3
800f5a6: d116 bne.n 800f5d6 <FloatToASCII+0x1ae>
{
F = 0;
800f5a8: f04f 0300 mov.w r3, #0
800f5ac: 657b str r3, [r7, #84] ; 0x54
I += 1;
800f5ae: edd7 7a0b vldr s15, [r7, #44] ; 0x2c
800f5b2: eeb7 7a00 vmov.f32 s14, #112 ; 0x3f800000 1.0
800f5b6: ee77 7a87 vadd.f32 s15, s15, s14
800f5ba: edc7 7a0b vstr s15, [r7, #44] ; 0x2c
800f5be: e00a b.n 800f5d6 <FloatToASCII+0x1ae>
}
}
else
{
I = roundf(value);
800f5c0: ed97 0a0c vldr s0, [r7, #48] ; 0x30
800f5c4: f006 fef8 bl 80163b8 <roundf>
800f5c8: eef0 7a40 vmov.f32 s15, s0
800f5cc: edc7 7a0b vstr s15, [r7, #44] ; 0x2c
F = 0.0f;
800f5d0: f04f 0300 mov.w r3, #0
800f5d4: 657b str r3, [r7, #84] ; 0x54
}
Int32 = (uint32_t) I;
800f5d6: edd7 7a0b vldr s15, [r7, #44] ; 0x2c
800f5da: eefc 7ae7 vcvt.u32.f32 s15, s15
800f5de: ee17 3a90 vmov r3, s15
800f5e2: 64fb str r3, [r7, #76] ; 0x4c
Frac32 = (uint32_t) F;
800f5e4: edd7 7a15 vldr s15, [r7, #84] ; 0x54
800f5e8: eefc 7ae7 vcvt.u32.f32 s15, s15
800f5ec: ee17 3a90 vmov r3, s15
800f5f0: 64bb str r3, [r7, #72] ; 0x48
_I32 = Int32;
800f5f2: 6cfb ldr r3, [r7, #76] ; 0x4c
800f5f4: 63bb str r3, [r7, #56] ; 0x38
_F32 = Frac32;
800f5f6: 6cbb ldr r3, [r7, #72] ; 0x48
800f5f8: 637b str r3, [r7, #52] ; 0x34
idx = 0;
800f5fa: 2300 movs r3, #0
800f5fc: f887 305f strb.w r3, [r7, #95] ; 0x5f
tmparray[idx++] = '\0';
800f600: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800f604: 1c5a adds r2, r3, #1
800f606: f887 205f strb.w r2, [r7, #95] ; 0x5f
800f60a: f107 0260 add.w r2, r7, #96 ; 0x60
800f60e: 4413 add r3, r2
800f610: 2200 movs r2, #0
800f612: f803 2c54 strb.w r2, [r3, #-84]
if((Int32 == 0) && (Frac32 == 0))
800f616: 6cfb ldr r3, [r7, #76] ; 0x4c
800f618: 2b00 cmp r3, #0
800f61a: d135 bne.n 800f688 <FloatToASCII+0x260>
800f61c: 6cbb ldr r3, [r7, #72] ; 0x48
800f61e: 2b00 cmp r3, #0
800f620: d132 bne.n 800f688 <FloatToASCII+0x260>
{
if(RoundTo < 0)
800f622: 683b ldr r3, [r7, #0]
800f624: 2b00 cmp r3, #0
800f626: da23 bge.n 800f670 <FloatToASCII+0x248>
{
for(i = 0; i < ABS(RoundTo); i++)
800f628: 2300 movs r3, #0
800f62a: 65bb str r3, [r7, #88] ; 0x58
800f62c: e00d b.n 800f64a <FloatToASCII+0x222>
tmparray[idx++] = '0';
800f62e: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800f632: 1c5a adds r2, r3, #1
800f634: f887 205f strb.w r2, [r7, #95] ; 0x5f
800f638: f107 0260 add.w r2, r7, #96 ; 0x60
800f63c: 4413 add r3, r2
800f63e: 2230 movs r2, #48 ; 0x30
800f640: f803 2c54 strb.w r2, [r3, #-84]
for(i = 0; i < ABS(RoundTo); i++)
800f644: 6dbb ldr r3, [r7, #88] ; 0x58
800f646: 3301 adds r3, #1
800f648: 65bb str r3, [r7, #88] ; 0x58
800f64a: 683b ldr r3, [r7, #0]
800f64c: ea83 72e3 eor.w r2, r3, r3, asr #31
800f650: eba2 72e3 sub.w r2, r2, r3, asr #31
800f654: 6dbb ldr r3, [r7, #88] ; 0x58
800f656: 429a cmp r2, r3
800f658: dce9 bgt.n 800f62e <FloatToASCII+0x206>
tmparray[idx++] = '.';
800f65a: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800f65e: 1c5a adds r2, r3, #1
800f660: f887 205f strb.w r2, [r7, #95] ; 0x5f
800f664: f107 0260 add.w r2, r7, #96 ; 0x60
800f668: 4413 add r3, r2
800f66a: 222e movs r2, #46 ; 0x2e
800f66c: f803 2c54 strb.w r2, [r3, #-84]
}
tmparray[idx++] = '0';
800f670: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800f674: 1c5a adds r2, r3, #1
800f676: f887 205f strb.w r2, [r7, #95] ; 0x5f
800f67a: f107 0260 add.w r2, r7, #96 ; 0x60
800f67e: 4413 add r3, r2
800f680: 2230 movs r2, #48 ; 0x30
800f682: f803 2c54 strb.w r2, [r3, #-84]
800f686: e089 b.n 800f79c <FloatToASCII+0x374>
}
else
{
if(RoundTo < 0)
800f688: 683b ldr r3, [r7, #0]
800f68a: 2b00 cmp r3, #0
800f68c: da38 bge.n 800f700 <FloatToASCII+0x2d8>
{
for(i = 0; i < ABS(RoundTo); i++)
800f68e: 2300 movs r3, #0
800f690: 65bb str r3, [r7, #88] ; 0x58
800f692: e022 b.n 800f6da <FloatToASCII+0x2b2>
{
Tmp32 = Frac32;
800f694: 6cbb ldr r3, [r7, #72] ; 0x48
800f696: 63fb str r3, [r7, #60] ; 0x3c
Frac32 /= 10;
800f698: 6cbb ldr r3, [r7, #72] ; 0x48
800f69a: 4a2f ldr r2, [pc, #188] ; (800f758 <FloatToASCII+0x330>)
800f69c: fba2 2303 umull r2, r3, r2, r3
800f6a0: 08db lsrs r3, r3, #3
800f6a2: 64bb str r3, [r7, #72] ; 0x48
Tmp32 = Tmp32 - Frac32 * 10;
800f6a4: 6cba ldr r2, [r7, #72] ; 0x48
800f6a6: 4613 mov r3, r2
800f6a8: 009b lsls r3, r3, #2
800f6aa: 4413 add r3, r2
800f6ac: 005b lsls r3, r3, #1
800f6ae: 461a mov r2, r3
800f6b0: 6bfb ldr r3, [r7, #60] ; 0x3c
800f6b2: 1a9b subs r3, r3, r2
800f6b4: 63fb str r3, [r7, #60] ; 0x3c
tmparray[idx++] = '0' + Tmp32;
800f6b6: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800f6ba: 1c5a adds r2, r3, #1
800f6bc: f887 205f strb.w r2, [r7, #95] ; 0x5f
800f6c0: 4619 mov r1, r3
800f6c2: 6bfb ldr r3, [r7, #60] ; 0x3c
800f6c4: b2db uxtb r3, r3
800f6c6: 3330 adds r3, #48 ; 0x30
800f6c8: b2da uxtb r2, r3
800f6ca: f107 0360 add.w r3, r7, #96 ; 0x60
800f6ce: 440b add r3, r1
800f6d0: f803 2c54 strb.w r2, [r3, #-84]
for(i = 0; i < ABS(RoundTo); i++)
800f6d4: 6dbb ldr r3, [r7, #88] ; 0x58
800f6d6: 3301 adds r3, #1
800f6d8: 65bb str r3, [r7, #88] ; 0x58
800f6da: 683b ldr r3, [r7, #0]
800f6dc: ea83 72e3 eor.w r2, r3, r3, asr #31
800f6e0: eba2 72e3 sub.w r2, r2, r3, asr #31
800f6e4: 6dbb ldr r3, [r7, #88] ; 0x58
800f6e6: 429a cmp r2, r3
800f6e8: dcd4 bgt.n 800f694 <FloatToASCII+0x26c>
}
tmparray[idx++] = '.';
800f6ea: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800f6ee: 1c5a adds r2, r3, #1
800f6f0: f887 205f strb.w r2, [r7, #95] ; 0x5f
800f6f4: f107 0260 add.w r2, r7, #96 ; 0x60
800f6f8: 4413 add r3, r2
800f6fa: 222e movs r2, #46 ; 0x2e
800f6fc: f803 2c54 strb.w r2, [r3, #-84]
}
if(Int32 != 0)
800f700: 6cfb ldr r3, [r7, #76] ; 0x4c
800f702: 2b00 cmp r3, #0
800f704: d02a beq.n 800f75c <FloatToASCII+0x334>
{
while(Int32)
800f706: e01f b.n 800f748 <FloatToASCII+0x320>
{
Tmp32 = Int32;
800f708: 6cfb ldr r3, [r7, #76] ; 0x4c
800f70a: 63fb str r3, [r7, #60] ; 0x3c
Int32 /= 10;
800f70c: 6cfb ldr r3, [r7, #76] ; 0x4c
800f70e: 4a12 ldr r2, [pc, #72] ; (800f758 <FloatToASCII+0x330>)
800f710: fba2 2303 umull r2, r3, r2, r3
800f714: 08db lsrs r3, r3, #3
800f716: 64fb str r3, [r7, #76] ; 0x4c
Tmp32 = Tmp32 - Int32 * 10;
800f718: 6cfa ldr r2, [r7, #76] ; 0x4c
800f71a: 4613 mov r3, r2
800f71c: 009b lsls r3, r3, #2
800f71e: 4413 add r3, r2
800f720: 005b lsls r3, r3, #1
800f722: 461a mov r2, r3
800f724: 6bfb ldr r3, [r7, #60] ; 0x3c
800f726: 1a9b subs r3, r3, r2
800f728: 63fb str r3, [r7, #60] ; 0x3c
tmparray[idx++] = '0' + Tmp32;
800f72a: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800f72e: 1c5a adds r2, r3, #1
800f730: f887 205f strb.w r2, [r7, #95] ; 0x5f
800f734: 4619 mov r1, r3
800f736: 6bfb ldr r3, [r7, #60] ; 0x3c
800f738: b2db uxtb r3, r3
800f73a: 3330 adds r3, #48 ; 0x30
800f73c: b2da uxtb r2, r3
800f73e: f107 0360 add.w r3, r7, #96 ; 0x60
800f742: 440b add r3, r1
800f744: f803 2c54 strb.w r2, [r3, #-84]
while(Int32)
800f748: 6cfb ldr r3, [r7, #76] ; 0x4c
800f74a: 2b00 cmp r3, #0
800f74c: d1dc bne.n 800f708 <FloatToASCII+0x2e0>
800f74e: e010 b.n 800f772 <FloatToASCII+0x34a>
800f750: 2006c24c .word 0x2006c24c
800f754: 47c34f80 .word 0x47c34f80
800f758: cccccccd .word 0xcccccccd
}
}
else
tmparray[idx++] = '0';
800f75c: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800f760: 1c5a adds r2, r3, #1
800f762: f887 205f strb.w r2, [r7, #95] ; 0x5f
800f766: f107 0260 add.w r2, r7, #96 ; 0x60
800f76a: 4413 add r3, r2
800f76c: 2230 movs r2, #48 ; 0x30
800f76e: f803 2c54 strb.w r2, [r3, #-84]
if(minus)
800f772: 7afb ldrb r3, [r7, #11]
800f774: b2db uxtb r3, r3
800f776: 2b00 cmp r3, #0
800f778: d010 beq.n 800f79c <FloatToASCII+0x374>
{
if((_I32 != 0) || (_F32 != 0))
800f77a: 6bbb ldr r3, [r7, #56] ; 0x38
800f77c: 2b00 cmp r3, #0
800f77e: d102 bne.n 800f786 <FloatToASCII+0x35e>
800f780: 6b7b ldr r3, [r7, #52] ; 0x34
800f782: 2b00 cmp r3, #0
800f784: d00a beq.n 800f79c <FloatToASCII+0x374>
tmparray[idx++] = '-';
800f786: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800f78a: 1c5a adds r2, r3, #1
800f78c: f887 205f strb.w r2, [r7, #95] ; 0x5f
800f790: f107 0260 add.w r2, r7, #96 ; 0x60
800f794: 4413 add r3, r2
800f796: 222d movs r2, #45 ; 0x2d
800f798: f803 2c54 strb.w r2, [r3, #-84]
}
}
for(i = 0; i < idx; i++)
800f79c: 2300 movs r3, #0
800f79e: 65bb str r3, [r7, #88] ; 0x58
800f7a0: e011 b.n 800f7c6 <FloatToASCII+0x39e>
pString[i] = tmparray[idx - i - 1];
800f7a2: f897 205f ldrb.w r2, [r7, #95] ; 0x5f
800f7a6: 6dbb ldr r3, [r7, #88] ; 0x58
800f7a8: 1ad3 subs r3, r2, r3
800f7aa: 3b01 subs r3, #1
800f7ac: f107 0260 add.w r2, r7, #96 ; 0x60
800f7b0: 4413 add r3, r2
800f7b2: f813 1c54 ldrb.w r1, [r3, #-84]
800f7b6: 4a09 ldr r2, [pc, #36] ; (800f7dc <FloatToASCII+0x3b4>)
800f7b8: 6dbb ldr r3, [r7, #88] ; 0x58
800f7ba: 4413 add r3, r2
800f7bc: 460a mov r2, r1
800f7be: 701a strb r2, [r3, #0]
for(i = 0; i < idx; i++)
800f7c0: 6dbb ldr r3, [r7, #88] ; 0x58
800f7c2: 3301 adds r3, #1
800f7c4: 65bb str r3, [r7, #88] ; 0x58
800f7c6: f897 205f ldrb.w r2, [r7, #95] ; 0x5f
800f7ca: 6dbb ldr r3, [r7, #88] ; 0x58
800f7cc: 429a cmp r2, r3
800f7ce: dce8 bgt.n 800f7a2 <FloatToASCII+0x37a>
return pString;
800f7d0: 4b02 ldr r3, [pc, #8] ; (800f7dc <FloatToASCII+0x3b4>)
}
800f7d2: 4618 mov r0, r3
800f7d4: 3760 adds r7, #96 ; 0x60
800f7d6: 46bd mov sp, r7
800f7d8: bd80 pop {r7, pc}
800f7da: bf00 nop
800f7dc: 2006c24c .word 0x2006c24c
0800f7e0 <HAL_MspInit>:
/* USER CODE END 0 */
/**
* Initializes the Global MSP.
*/
void HAL_MspInit(void)
{
800f7e0: b480 push {r7}
800f7e2: b083 sub sp, #12
800f7e4: af00 add r7, sp, #0
/* USER CODE BEGIN MspInit 0 */
/* USER CODE END MspInit 0 */
__HAL_RCC_PWR_CLK_ENABLE();
800f7e6: 4a0f ldr r2, [pc, #60] ; (800f824 <HAL_MspInit+0x44>)
800f7e8: 4b0e ldr r3, [pc, #56] ; (800f824 <HAL_MspInit+0x44>)
800f7ea: 6c1b ldr r3, [r3, #64] ; 0x40
800f7ec: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
800f7f0: 6413 str r3, [r2, #64] ; 0x40
800f7f2: 4b0c ldr r3, [pc, #48] ; (800f824 <HAL_MspInit+0x44>)
800f7f4: 6c1b ldr r3, [r3, #64] ; 0x40
800f7f6: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
800f7fa: 607b str r3, [r7, #4]
800f7fc: 687b ldr r3, [r7, #4]
__HAL_RCC_SYSCFG_CLK_ENABLE();
800f7fe: 4a09 ldr r2, [pc, #36] ; (800f824 <HAL_MspInit+0x44>)
800f800: 4b08 ldr r3, [pc, #32] ; (800f824 <HAL_MspInit+0x44>)
800f802: 6c5b ldr r3, [r3, #68] ; 0x44
800f804: f443 4380 orr.w r3, r3, #16384 ; 0x4000
800f808: 6453 str r3, [r2, #68] ; 0x44
800f80a: 4b06 ldr r3, [pc, #24] ; (800f824 <HAL_MspInit+0x44>)
800f80c: 6c5b ldr r3, [r3, #68] ; 0x44
800f80e: f403 4380 and.w r3, r3, #16384 ; 0x4000
800f812: 603b str r3, [r7, #0]
800f814: 683b ldr r3, [r7, #0]
/* System interrupt init*/
/* USER CODE BEGIN MspInit 1 */
/* USER CODE END MspInit 1 */
}
800f816: bf00 nop
800f818: 370c adds r7, #12
800f81a: 46bd mov sp, r7
800f81c: f85d 7b04 ldr.w r7, [sp], #4
800f820: 4770 bx lr
800f822: bf00 nop
800f824: 40023800 .word 0x40023800
0800f828 <NMI_Handler>:
/******************************************************************************/
/**
* @brief This function handles Non maskable interrupt.
*/
void NMI_Handler(void)
{
800f828: b480 push {r7}
800f82a: af00 add r7, sp, #0
/* USER CODE BEGIN NonMaskableInt_IRQn 0 */
/* USER CODE END NonMaskableInt_IRQn 0 */
/* USER CODE BEGIN NonMaskableInt_IRQn 1 */
while (1)
800f82c: e7fe b.n 800f82c <NMI_Handler+0x4>
0800f82e <HardFault_Handler>:
/**
* @brief This function handles Hard fault interrupt.
*/
void HardFault_Handler(void)
{
800f82e: b480 push {r7}
800f830: af00 add r7, sp, #0
/* USER CODE BEGIN HardFault_IRQn 0 */
/* USER CODE END HardFault_IRQn 0 */
while (1)
800f832: e7fe b.n 800f832 <HardFault_Handler+0x4>
0800f834 <MemManage_Handler>:
/**
* @brief This function handles Memory management fault.
*/
void MemManage_Handler(void)
{
800f834: b480 push {r7}
800f836: af00 add r7, sp, #0
/* USER CODE BEGIN MemoryManagement_IRQn 0 */
/* USER CODE END MemoryManagement_IRQn 0 */
while (1)
800f838: e7fe b.n 800f838 <MemManage_Handler+0x4>
0800f83a <BusFault_Handler>:
/**
* @brief This function handles Pre-fetch fault, memory access fault.
*/
void BusFault_Handler(void)
{
800f83a: b480 push {r7}
800f83c: af00 add r7, sp, #0
/* USER CODE BEGIN BusFault_IRQn 0 */
/* USER CODE END BusFault_IRQn 0 */
while (1)
800f83e: e7fe b.n 800f83e <BusFault_Handler+0x4>
0800f840 <UsageFault_Handler>:
/**
* @brief This function handles Undefined instruction or illegal state.
*/
void UsageFault_Handler(void)
{
800f840: b480 push {r7}
800f842: af00 add r7, sp, #0
/* USER CODE BEGIN UsageFault_IRQn 0 */
/* USER CODE END UsageFault_IRQn 0 */
while (1)
800f844: e7fe b.n 800f844 <UsageFault_Handler+0x4>
0800f846 <SVC_Handler>:
/**
* @brief This function handles System service call via SWI instruction.
*/
void SVC_Handler(void)
{
800f846: b480 push {r7}
800f848: af00 add r7, sp, #0
/* USER CODE END SVCall_IRQn 0 */
/* USER CODE BEGIN SVCall_IRQn 1 */
/* USER CODE END SVCall_IRQn 1 */
}
800f84a: bf00 nop
800f84c: 46bd mov sp, r7
800f84e: f85d 7b04 ldr.w r7, [sp], #4
800f852: 4770 bx lr
0800f854 <DebugMon_Handler>:
/**
* @brief This function handles Debug monitor.
*/
void DebugMon_Handler(void)
{
800f854: b480 push {r7}
800f856: af00 add r7, sp, #0
/* USER CODE END DebugMonitor_IRQn 0 */
/* USER CODE BEGIN DebugMonitor_IRQn 1 */
/* USER CODE END DebugMonitor_IRQn 1 */
}
800f858: bf00 nop
800f85a: 46bd mov sp, r7
800f85c: f85d 7b04 ldr.w r7, [sp], #4
800f860: 4770 bx lr
0800f862 <PendSV_Handler>:
/**
* @brief This function handles Pendable request for system service.
*/
void PendSV_Handler(void)
{
800f862: b480 push {r7}
800f864: af00 add r7, sp, #0
/* USER CODE END PendSV_IRQn 0 */
/* USER CODE BEGIN PendSV_IRQn 1 */
/* USER CODE END PendSV_IRQn 1 */
}
800f866: bf00 nop
800f868: 46bd mov sp, r7
800f86a: f85d 7b04 ldr.w r7, [sp], #4
800f86e: 4770 bx lr
0800f870 <SysTick_Handler>:
/**
* @brief This function handles System tick timer.
*/
void SysTick_Handler(void)
{
800f870: b580 push {r7, lr}
800f872: af00 add r7, sp, #0
/* USER CODE BEGIN SysTick_IRQn 0 */
/* USER CODE END SysTick_IRQn 0 */
HAL_IncTick();
800f874: f001 fe62 bl 801153c <HAL_IncTick>
/* USER CODE BEGIN SysTick_IRQn 1 */
/* USER CODE END SysTick_IRQn 1 */
}
800f878: bf00 nop
800f87a: bd80 pop {r7, pc}
0800f87c <EXTI2_IRQHandler>:
/**
* @brief This function handles EXTI line2 interrupt.
*/
void EXTI2_IRQHandler(void)
{
800f87c: b580 push {r7, lr}
800f87e: af00 add r7, sp, #0
/* USER CODE BEGIN EXTI2_IRQn 0 */
/* USER CODE END EXTI2_IRQn 0 */
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2);
800f880: 2004 movs r0, #4
800f882: f003 f9c1 bl 8012c08 <HAL_GPIO_EXTI_IRQHandler>
/* USER CODE BEGIN EXTI2_IRQn 1 */
/* USER CODE END EXTI2_IRQn 1 */
}
800f886: bf00 nop
800f888: bd80 pop {r7, pc}
0800f88a <EXTI3_IRQHandler>:
/**
* @brief This function handles EXTI line3 interrupt.
*/
void EXTI3_IRQHandler(void)
{
800f88a: b580 push {r7, lr}
800f88c: af00 add r7, sp, #0
/* USER CODE BEGIN EXTI3_IRQn 0 */
/* USER CODE END EXTI3_IRQn 0 */
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_3);
800f88e: 2008 movs r0, #8
800f890: f003 f9ba bl 8012c08 <HAL_GPIO_EXTI_IRQHandler>
/* USER CODE BEGIN EXTI3_IRQn 1 */
/* USER CODE END EXTI3_IRQn 1 */
}
800f894: bf00 nop
800f896: bd80 pop {r7, pc}
0800f898 <TIM7_IRQHandler>:
/**
* @brief This function handles TIM7 global interrupt.
*/
void TIM7_IRQHandler(void)
{
800f898: b580 push {r7, lr}
800f89a: af00 add r7, sp, #0
/* USER CODE BEGIN TIM7_IRQn 0 */
/* USER CODE END TIM7_IRQn 0 */
HAL_TIM_IRQHandler(&htim7);
800f89c: 4802 ldr r0, [pc, #8] ; (800f8a8 <TIM7_IRQHandler+0x10>)
800f89e: f004 ff15 bl 80146cc <HAL_TIM_IRQHandler>
/* USER CODE BEGIN TIM7_IRQn 1 */
/* USER CODE END TIM7_IRQn 1 */
}
800f8a2: bf00 nop
800f8a4: bd80 pop {r7, pc}
800f8a6: bf00 nop
800f8a8: 2006c3e8 .word 0x2006c3e8
0800f8ac <DMA2_Stream1_IRQHandler>:
* @brief This function handles DMA2 stream3 global interrupt.
*/
void DMA2_Stream1_IRQHandler(void)
{
800f8ac: b580 push {r7, lr}
800f8ae: af00 add r7, sp, #0
/* USER CODE BEGIN DMA2_Stream3_IRQn 0 */
/* USER CODE END DMA2_Stream3_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_adc3);
800f8b0: 4802 ldr r0, [pc, #8] ; (800f8bc <DMA2_Stream1_IRQHandler+0x10>)
800f8b2: f002 f857 bl 8011964 <HAL_DMA_IRQHandler>
/* USER CODE BEGIN DMA2_Stream3_IRQn 1 */
/* USER CODE END DMA2_Stream3_IRQn 1 */
}
800f8b6: bf00 nop
800f8b8: bd80 pop {r7, pc}
800f8ba: bf00 nop
800f8bc: 2006bae0 .word 0x2006bae0
0800f8c0 <DMA2_Stream4_IRQHandler>:
/**
* @brief This function handles DMA2 stream4 global interrupt.
*/
void DMA2_Stream4_IRQHandler(void)
{
800f8c0: b580 push {r7, lr}
800f8c2: af00 add r7, sp, #0
/* USER CODE BEGIN DMA2_Stream4_IRQn 0 */
/* USER CODE END DMA2_Stream4_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_adc1);
800f8c4: 4802 ldr r0, [pc, #8] ; (800f8d0 <DMA2_Stream4_IRQHandler+0x10>)
800f8c6: f002 f84d bl 8011964 <HAL_DMA_IRQHandler>
/* USER CODE BEGIN DMA2_Stream4_IRQn 1 */
/* USER CODE END DMA2_Stream4_IRQn 1 */
}
800f8ca: bf00 nop
800f8cc: bd80 pop {r7, pc}
800f8ce: bf00 nop
800f8d0: 2006bbd0 .word 0x2006bbd0
0800f8d4 <LTDC_IRQHandler>:
/**
* @brief This function handles LTDC global interrupt.
*/
void LTDC_IRQHandler(void)
{
800f8d4: b580 push {r7, lr}
800f8d6: af00 add r7, sp, #0
/* USER CODE BEGIN LTDC_IRQn 0 */
/* USER CODE END LTDC_IRQn 0 */
HAL_LTDC_IRQHandler(&hLtdcHandler);
800f8d8: 4802 ldr r0, [pc, #8] ; (800f8e4 <LTDC_IRQHandler+0x10>)
800f8da: f003 fa7d bl 8012dd8 <HAL_LTDC_IRQHandler>
/* USER CODE BEGIN LTDC_IRQn 1 */
/* USER CODE END LTDC_IRQn 1 */
}
800f8de: bf00 nop
800f8e0: bd80 pop {r7, pc}
800f8e2: bf00 nop
800f8e4: 2006c174 .word 0x2006c174
0800f8e8 <LTDC_ER_IRQHandler>:
/**
* @brief This function handles LTDC global error interrupt.
*/
void LTDC_ER_IRQHandler(void)
{
800f8e8: b580 push {r7, lr}
800f8ea: af00 add r7, sp, #0
/* USER CODE BEGIN LTDC_ER_IRQn 0 */
/* USER CODE END LTDC_ER_IRQn 0 */
HAL_LTDC_IRQHandler(&hLtdcHandler);
800f8ec: 4802 ldr r0, [pc, #8] ; (800f8f8 <LTDC_ER_IRQHandler+0x10>)
800f8ee: f003 fa73 bl 8012dd8 <HAL_LTDC_IRQHandler>
/* USER CODE BEGIN LTDC_ER_IRQn 1 */
/* USER CODE END LTDC_ER_IRQn 1 */
}
800f8f2: bf00 nop
800f8f4: bd80 pop {r7, pc}
800f8f6: bf00 nop
800f8f8: 2006c174 .word 0x2006c174
0800f8fc <SystemInit>:
* SystemFrequency variable.
* @param None
* @retval None
*/
void SystemInit(void)
{
800f8fc: b480 push {r7}
800f8fe: af00 add r7, sp, #0
/* FPU settings ------------------------------------------------------------*/
#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */
800f900: 4a06 ldr r2, [pc, #24] ; (800f91c <SystemInit+0x20>)
800f902: 4b06 ldr r3, [pc, #24] ; (800f91c <SystemInit+0x20>)
800f904: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
800f908: f443 0370 orr.w r3, r3, #15728640 ; 0xf00000
800f90c: f8c2 3088 str.w r3, [r2, #136] ; 0x88
/* Configure the Vector Table location -------------------------------------*/
#if defined(USER_VECT_TAB_ADDRESS)
SCB->VTOR = VECT_TAB_BASE_ADDRESS | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */
#endif /* USER_VECT_TAB_ADDRESS */
}
800f910: bf00 nop
800f912: 46bd mov sp, r7
800f914: f85d 7b04 ldr.w r7, [sp], #4
800f918: 4770 bx lr
800f91a: bf00 nop
800f91c: e000ed00 .word 0xe000ed00
0800f920 <MX_TIM7_Init>:
}
/* TIM7 init function */
void MX_TIM7_Init(void)
{
800f920: b580 push {r7, lr}
800f922: b084 sub sp, #16
800f924: af00 add r7, sp, #0
TIM_MasterConfigTypeDef sMasterConfig;
htim7.Instance = TIM7;
800f926: 4b16 ldr r3, [pc, #88] ; (800f980 <MX_TIM7_Init+0x60>)
800f928: 4a16 ldr r2, [pc, #88] ; (800f984 <MX_TIM7_Init+0x64>)
800f92a: 601a str r2, [r3, #0]
htim7.Init.Prescaler = (10 - 1);
800f92c: 4b14 ldr r3, [pc, #80] ; (800f980 <MX_TIM7_Init+0x60>)
800f92e: 2209 movs r2, #9
800f930: 605a str r2, [r3, #4]
htim7.Init.CounterMode = TIM_COUNTERMODE_UP;
800f932: 4b13 ldr r3, [pc, #76] ; (800f980 <MX_TIM7_Init+0x60>)
800f934: 2200 movs r2, #0
800f936: 609a str r2, [r3, #8]
htim7.Init.Period = (54000 - 1);
800f938: 4b11 ldr r3, [pc, #68] ; (800f980 <MX_TIM7_Init+0x60>)
800f93a: f24d 22ef movw r2, #53999 ; 0xd2ef
800f93e: 60da str r2, [r3, #12]
htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
800f940: 4b0f ldr r3, [pc, #60] ; (800f980 <MX_TIM7_Init+0x60>)
800f942: 2200 movs r2, #0
800f944: 619a str r2, [r3, #24]
if(HAL_TIM_Base_Init(&htim7) != HAL_OK) {
800f946: 480e ldr r0, [pc, #56] ; (800f980 <MX_TIM7_Init+0x60>)
800f948: f004 fdf0 bl 801452c <HAL_TIM_Base_Init>
800f94c: 4603 mov r3, r0
800f94e: 2b00 cmp r3, #0
800f950: d001 beq.n 800f956 <MX_TIM7_Init+0x36>
Error_Handler();
800f952: f7f6 fa4b bl 8005dec <Error_Handler>
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
800f956: 2300 movs r3, #0
800f958: 607b str r3, [r7, #4]
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
800f95a: 2300 movs r3, #0
800f95c: 60fb str r3, [r7, #12]
if (HAL_TIMEx_MasterConfigSynchronization(&htim7, &sMasterConfig) != HAL_OK) {
800f95e: 1d3b adds r3, r7, #4
800f960: 4619 mov r1, r3
800f962: 4807 ldr r0, [pc, #28] ; (800f980 <MX_TIM7_Init+0x60>)
800f964: f005 f89a bl 8014a9c <HAL_TIMEx_MasterConfigSynchronization>
800f968: 4603 mov r3, r0
800f96a: 2b00 cmp r3, #0
800f96c: d001 beq.n 800f972 <MX_TIM7_Init+0x52>
Error_Handler();
800f96e: f7f6 fa3d bl 8005dec <Error_Handler>
}
HAL_TIM_Base_Start_IT(&htim7);
800f972: 4803 ldr r0, [pc, #12] ; (800f980 <MX_TIM7_Init+0x60>)
800f974: f004 fe32 bl 80145dc <HAL_TIM_Base_Start_IT>
}
800f978: bf00 nop
800f97a: 3710 adds r7, #16
800f97c: 46bd mov sp, r7
800f97e: bd80 pop {r7, pc}
800f980: 2006c3e8 .word 0x2006c3e8
800f984: 40001400 .word 0x40001400
0800f988 <HAL_TIM_Base_MspInit>:
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
{
800f988: b580 push {r7, lr}
800f98a: b086 sub sp, #24
800f98c: af00 add r7, sp, #0
800f98e: 6078 str r0, [r7, #4]
if(tim_baseHandle->Instance == TIM1)
800f990: 687b ldr r3, [r7, #4]
800f992: 681b ldr r3, [r3, #0]
800f994: 4a1f ldr r2, [pc, #124] ; (800fa14 <HAL_TIM_Base_MspInit+0x8c>)
800f996: 4293 cmp r3, r2
800f998: d10c bne.n 800f9b4 <HAL_TIM_Base_MspInit+0x2c>
{
__HAL_RCC_TIM1_CLK_ENABLE();
800f99a: 4a1f ldr r2, [pc, #124] ; (800fa18 <HAL_TIM_Base_MspInit+0x90>)
800f99c: 4b1e ldr r3, [pc, #120] ; (800fa18 <HAL_TIM_Base_MspInit+0x90>)
800f99e: 6c5b ldr r3, [r3, #68] ; 0x44
800f9a0: f043 0301 orr.w r3, r3, #1
800f9a4: 6453 str r3, [r2, #68] ; 0x44
800f9a6: 4b1c ldr r3, [pc, #112] ; (800fa18 <HAL_TIM_Base_MspInit+0x90>)
800f9a8: 6c5b ldr r3, [r3, #68] ; 0x44
800f9aa: f003 0301 and.w r3, r3, #1
800f9ae: 617b str r3, [r7, #20]
800f9b0: 697b ldr r3, [r7, #20]
{
__HAL_RCC_TIM7_CLK_ENABLE();
HAL_NVIC_SetPriority(TIM7_IRQn, 3, 0);
HAL_NVIC_EnableIRQ(TIM7_IRQn);
}
}
800f9b2: e02a b.n 800fa0a <HAL_TIM_Base_MspInit+0x82>
if(tim_baseHandle->Instance == TIM5)
800f9b4: 687b ldr r3, [r7, #4]
800f9b6: 681b ldr r3, [r3, #0]
800f9b8: 4a18 ldr r2, [pc, #96] ; (800fa1c <HAL_TIM_Base_MspInit+0x94>)
800f9ba: 4293 cmp r3, r2
800f9bc: d10c bne.n 800f9d8 <HAL_TIM_Base_MspInit+0x50>
__HAL_RCC_TIM5_CLK_ENABLE();
800f9be: 4a16 ldr r2, [pc, #88] ; (800fa18 <HAL_TIM_Base_MspInit+0x90>)
800f9c0: 4b15 ldr r3, [pc, #84] ; (800fa18 <HAL_TIM_Base_MspInit+0x90>)
800f9c2: 6c1b ldr r3, [r3, #64] ; 0x40
800f9c4: f043 0308 orr.w r3, r3, #8
800f9c8: 6413 str r3, [r2, #64] ; 0x40
800f9ca: 4b13 ldr r3, [pc, #76] ; (800fa18 <HAL_TIM_Base_MspInit+0x90>)
800f9cc: 6c1b ldr r3, [r3, #64] ; 0x40
800f9ce: f003 0308 and.w r3, r3, #8
800f9d2: 613b str r3, [r7, #16]
800f9d4: 693b ldr r3, [r7, #16]
}
800f9d6: e018 b.n 800fa0a <HAL_TIM_Base_MspInit+0x82>
if(tim_baseHandle->Instance == TIM7)
800f9d8: 687b ldr r3, [r7, #4]
800f9da: 681b ldr r3, [r3, #0]
800f9dc: 4a10 ldr r2, [pc, #64] ; (800fa20 <HAL_TIM_Base_MspInit+0x98>)
800f9de: 4293 cmp r3, r2
800f9e0: d113 bne.n 800fa0a <HAL_TIM_Base_MspInit+0x82>
__HAL_RCC_TIM7_CLK_ENABLE();
800f9e2: 4a0d ldr r2, [pc, #52] ; (800fa18 <HAL_TIM_Base_MspInit+0x90>)
800f9e4: 4b0c ldr r3, [pc, #48] ; (800fa18 <HAL_TIM_Base_MspInit+0x90>)
800f9e6: 6c1b ldr r3, [r3, #64] ; 0x40
800f9e8: f043 0320 orr.w r3, r3, #32
800f9ec: 6413 str r3, [r2, #64] ; 0x40
800f9ee: 4b0a ldr r3, [pc, #40] ; (800fa18 <HAL_TIM_Base_MspInit+0x90>)
800f9f0: 6c1b ldr r3, [r3, #64] ; 0x40
800f9f2: f003 0320 and.w r3, r3, #32
800f9f6: 60fb str r3, [r7, #12]
800f9f8: 68fb ldr r3, [r7, #12]
HAL_NVIC_SetPriority(TIM7_IRQn, 3, 0);
800f9fa: 2200 movs r2, #0
800f9fc: 2103 movs r1, #3
800f9fe: 2037 movs r0, #55 ; 0x37
800fa00: f001 fed9 bl 80117b6 <HAL_NVIC_SetPriority>
HAL_NVIC_EnableIRQ(TIM7_IRQn);
800fa04: 2037 movs r0, #55 ; 0x37
800fa06: f001 fef2 bl 80117ee <HAL_NVIC_EnableIRQ>
}
800fa0a: bf00 nop
800fa0c: 3718 adds r7, #24
800fa0e: 46bd mov sp, r7
800fa10: bd80 pop {r7, pc}
800fa12: bf00 nop
800fa14: 40010000 .word 0x40010000
800fa18: 40023800 .word 0x40023800
800fa1c: 40000c00 .word 0x40000c00
800fa20: 40001400 .word 0x40001400
0800fa24 <HAL_TIM_PeriodElapsedCallback>:
__IO uint32_t maxtime = 0;
/* USER CODE BEGIN 1 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
800fa24: b580 push {r7, lr}
800fa26: b084 sub sp, #16
800fa28: af00 add r7, sp, #0
800fa2a: 6078 str r0, [r7, #4]
__IO uint16_t Data32, i;
switch((uint32_t) htim->Instance)
800fa2c: 687b ldr r3, [r7, #4]
800fa2e: 681b ldr r3, [r3, #0]
800fa30: 461a mov r2, r3
800fa32: 4b3c ldr r3, [pc, #240] ; (800fb24 <HAL_TIM_PeriodElapsedCallback+0x100>)
800fa34: 429a cmp r2, r3
800fa36: d000 beq.n 800fa3a <HAL_TIM_PeriodElapsedCallback+0x16>
if(repeat)
repeat--;
break;
}
}
800fa38: e070 b.n 800fb1c <HAL_TIM_PeriodElapsedCallback+0xf8>
__HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE);
800fa3a: 687b ldr r3, [r7, #4]
800fa3c: 681b ldr r3, [r3, #0]
800fa3e: f06f 0201 mvn.w r2, #1
800fa42: 611a str r2, [r3, #16]
if((--timerAsk) == 0)
800fa44: 4b38 ldr r3, [pc, #224] ; (800fb28 <HAL_TIM_PeriodElapsedCallback+0x104>)
800fa46: 881b ldrh r3, [r3, #0]
800fa48: b29b uxth r3, r3
800fa4a: 3b01 subs r3, #1
800fa4c: b29b uxth r3, r3
800fa4e: 4a36 ldr r2, [pc, #216] ; (800fb28 <HAL_TIM_PeriodElapsedCallback+0x104>)
800fa50: 4619 mov r1, r3
800fa52: 8011 strh r1, [r2, #0]
800fa54: 2b00 cmp r3, #0
800fa56: d105 bne.n 800fa64 <HAL_TIM_PeriodElapsedCallback+0x40>
timerAsk = msec1900;
800fa58: 4b33 ldr r3, [pc, #204] ; (800fb28 <HAL_TIM_PeriodElapsedCallback+0x104>)
800fa5a: 22be movs r2, #190 ; 0xbe
800fa5c: 801a strh r2, [r3, #0]
FlagAsk = true;
800fa5e: 4b33 ldr r3, [pc, #204] ; (800fb2c <HAL_TIM_PeriodElapsedCallback+0x108>)
800fa60: 2201 movs r2, #1
800fa62: 701a strb r2, [r3, #0]
if(timerKeys)
800fa64: 4b32 ldr r3, [pc, #200] ; (800fb30 <HAL_TIM_PeriodElapsedCallback+0x10c>)
800fa66: 881b ldrh r3, [r3, #0]
800fa68: b29b uxth r3, r3
800fa6a: 2b00 cmp r3, #0
800fa6c: d007 beq.n 800fa7e <HAL_TIM_PeriodElapsedCallback+0x5a>
timerKeys--;
800fa6e: 4b30 ldr r3, [pc, #192] ; (800fb30 <HAL_TIM_PeriodElapsedCallback+0x10c>)
800fa70: 881b ldrh r3, [r3, #0]
800fa72: b29b uxth r3, r3
800fa74: 3b01 subs r3, #1
800fa76: b29a uxth r2, r3
800fa78: 4b2d ldr r3, [pc, #180] ; (800fb30 <HAL_TIM_PeriodElapsedCallback+0x10c>)
800fa7a: 801a strh r2, [r3, #0]
800fa7c: e00b b.n 800fa96 <HAL_TIM_PeriodElapsedCallback+0x72>
timerKeys = 2;
800fa7e: 4b2c ldr r3, [pc, #176] ; (800fb30 <HAL_TIM_PeriodElapsedCallback+0x10c>)
800fa80: 2202 movs r2, #2
800fa82: 801a strh r2, [r3, #0]
if(!KEY_STATE)
800fa84: 4b2b ldr r3, [pc, #172] ; (800fb34 <HAL_TIM_PeriodElapsedCallback+0x110>)
800fa86: 681b ldr r3, [r3, #0]
800fa88: 2b00 cmp r3, #0
800fa8a: d104 bne.n 800fa96 <HAL_TIM_PeriodElapsedCallback+0x72>
KEY_STATE = kbhit();
800fa8c: f7f1 f806 bl 8000a9c <kbhit>
800fa90: 4602 mov r2, r0
800fa92: 4b28 ldr r3, [pc, #160] ; (800fb34 <HAL_TIM_PeriodElapsedCallback+0x110>)
800fa94: 601a str r2, [r3, #0]
if(timerRefreshScreen)
800fa96: 4b28 ldr r3, [pc, #160] ; (800fb38 <HAL_TIM_PeriodElapsedCallback+0x114>)
800fa98: 881b ldrh r3, [r3, #0]
800fa9a: b29b uxth r3, r3
800fa9c: 2b00 cmp r3, #0
800fa9e: d007 beq.n 800fab0 <HAL_TIM_PeriodElapsedCallback+0x8c>
timerRefreshScreen--;
800faa0: 4b25 ldr r3, [pc, #148] ; (800fb38 <HAL_TIM_PeriodElapsedCallback+0x114>)
800faa2: 881b ldrh r3, [r3, #0]
800faa4: b29b uxth r3, r3
800faa6: 3b01 subs r3, #1
800faa8: b29a uxth r2, r3
800faaa: 4b23 ldr r3, [pc, #140] ; (800fb38 <HAL_TIM_PeriodElapsedCallback+0x114>)
800faac: 801a strh r2, [r3, #0]
800faae: e028 b.n 800fb02 <HAL_TIM_PeriodElapsedCallback+0xde>
timerRefreshScreen = MSEC_REFRESH[0];
800fab0: 220a movs r2, #10
800fab2: 4b21 ldr r3, [pc, #132] ; (800fb38 <HAL_TIM_PeriodElapsedCallback+0x114>)
800fab4: 801a strh r2, [r3, #0]
Cursorblink ^= 1;
800fab6: 4b21 ldr r3, [pc, #132] ; (800fb3c <HAL_TIM_PeriodElapsedCallback+0x118>)
800fab8: 781b ldrb r3, [r3, #0]
800faba: b2db uxtb r3, r3
800fabc: f083 0301 eor.w r3, r3, #1
800fac0: b2da uxtb r2, r3
800fac2: 4b1e ldr r3, [pc, #120] ; (800fb3c <HAL_TIM_PeriodElapsedCallback+0x118>)
800fac4: 701a strb r2, [r3, #0]
if(cntblink)
800fac6: 4b1e ldr r3, [pc, #120] ; (800fb40 <HAL_TIM_PeriodElapsedCallback+0x11c>)
800fac8: 881b ldrh r3, [r3, #0]
800faca: b29b uxth r3, r3
800facc: 2b00 cmp r3, #0
800face: d007 beq.n 800fae0 <HAL_TIM_PeriodElapsedCallback+0xbc>
cntblink--;
800fad0: 4b1b ldr r3, [pc, #108] ; (800fb40 <HAL_TIM_PeriodElapsedCallback+0x11c>)
800fad2: 881b ldrh r3, [r3, #0]
800fad4: b29b uxth r3, r3
800fad6: 3b01 subs r3, #1
800fad8: b29a uxth r2, r3
800fada: 4b19 ldr r3, [pc, #100] ; (800fb40 <HAL_TIM_PeriodElapsedCallback+0x11c>)
800fadc: 801a strh r2, [r3, #0]
800fade: e00d b.n 800fafc <HAL_TIM_PeriodElapsedCallback+0xd8>
cntblink = 2;
800fae0: 4b17 ldr r3, [pc, #92] ; (800fb40 <HAL_TIM_PeriodElapsedCallback+0x11c>)
800fae2: 2202 movs r2, #2
800fae4: 801a strh r2, [r3, #0]
blink ^= 1;
800fae6: 4b17 ldr r3, [pc, #92] ; (800fb44 <HAL_TIM_PeriodElapsedCallback+0x120>)
800fae8: 781b ldrb r3, [r3, #0]
800faea: b2db uxtb r3, r3
800faec: f083 0301 eor.w r3, r3, #1
800faf0: b2da uxtb r2, r3
800faf2: 4b14 ldr r3, [pc, #80] ; (800fb44 <HAL_TIM_PeriodElapsedCallback+0x120>)
800faf4: 701a strb r2, [r3, #0]
cntBat = 1;
800faf6: 4b14 ldr r3, [pc, #80] ; (800fb48 <HAL_TIM_PeriodElapsedCallback+0x124>)
800faf8: 2201 movs r2, #1
800fafa: 701a strb r2, [r3, #0]
screen = true;
800fafc: 4b13 ldr r3, [pc, #76] ; (800fb4c <HAL_TIM_PeriodElapsedCallback+0x128>)
800fafe: 2201 movs r2, #1
800fb00: 701a strb r2, [r3, #0]
if(repeat)
800fb02: 4b13 ldr r3, [pc, #76] ; (800fb50 <HAL_TIM_PeriodElapsedCallback+0x12c>)
800fb04: 881b ldrh r3, [r3, #0]
800fb06: b29b uxth r3, r3
800fb08: 2b00 cmp r3, #0
800fb0a: d006 beq.n 800fb1a <HAL_TIM_PeriodElapsedCallback+0xf6>
repeat--;
800fb0c: 4b10 ldr r3, [pc, #64] ; (800fb50 <HAL_TIM_PeriodElapsedCallback+0x12c>)
800fb0e: 881b ldrh r3, [r3, #0]
800fb10: b29b uxth r3, r3
800fb12: 3b01 subs r3, #1
800fb14: b29a uxth r2, r3
800fb16: 4b0e ldr r3, [pc, #56] ; (800fb50 <HAL_TIM_PeriodElapsedCallback+0x12c>)
800fb18: 801a strh r2, [r3, #0]
break;
800fb1a: bf00 nop
}
800fb1c: bf00 nop
800fb1e: 3710 adds r7, #16
800fb20: 46bd mov sp, r7
800fb22: bd80 pop {r7, pc}
800fb24: 40001400 .word 0x40001400
800fb28: 2002099e .word 0x2002099e
800fb2c: 2006ba87 .word 0x2006ba87
800fb30: 2002099a .word 0x2002099a
800fb34: 200209e0 .word 0x200209e0
800fb38: 2002099c .word 0x2002099c
800fb3c: 2006ba85 .word 0x2006ba85
800fb40: 20020998 .word 0x20020998
800fb44: 2006ba84 .word 0x2006ba84
800fb48: 2006ba86 .word 0x2006ba86
800fb4c: 20020030 .word 0x20020030
800fb50: 200209da .word 0x200209da
0800fb54 <MX_UART7_Init>:
void MX_UART7_Init(void)
{
800fb54: b580 push {r7, lr}
800fb56: af00 add r7, sp, #0
huart7.Instance = UART7;
800fb58: 4b47 ldr r3, [pc, #284] ; (800fc78 <MX_UART7_Init+0x124>)
800fb5a: 4a48 ldr r2, [pc, #288] ; (800fc7c <MX_UART7_Init+0x128>)
800fb5c: 601a str r2, [r3, #0]
huart7.Init.BaudRate = BAUDRATE[pardata.BAUD];
800fb5e: 4b48 ldr r3, [pc, #288] ; (800fc80 <MX_UART7_Init+0x12c>)
800fb60: f8b3 3202 ldrh.w r3, [r3, #514] ; 0x202
800fb64: b29b uxth r3, r3
800fb66: 461a mov r2, r3
800fb68: 4b46 ldr r3, [pc, #280] ; (800fc84 <MX_UART7_Init+0x130>)
800fb6a: f853 3022 ldr.w r3, [r3, r2, lsl #2]
800fb6e: 4a42 ldr r2, [pc, #264] ; (800fc78 <MX_UART7_Init+0x124>)
800fb70: 6053 str r3, [r2, #4]
switch(pardata.INFB)
800fb72: 4b43 ldr r3, [pc, #268] ; (800fc80 <MX_UART7_Init+0x12c>)
800fb74: f8b3 3204 ldrh.w r3, [r3, #516] ; 0x204
800fb78: b29b uxth r3, r3
800fb7a: 2b01 cmp r3, #1
800fb7c: d00a beq.n 800fb94 <MX_UART7_Init+0x40>
800fb7e: 2b02 cmp r3, #2
800fb80: d011 beq.n 800fba6 <MX_UART7_Init+0x52>
800fb82: 2b00 cmp r3, #0
800fb84: d118 bne.n 800fbb8 <MX_UART7_Init+0x64>
{
case 0: //NONE
huart7.Init.WordLength = UART_WORDLENGTH_8B;
800fb86: 4b3c ldr r3, [pc, #240] ; (800fc78 <MX_UART7_Init+0x124>)
800fb88: 2200 movs r2, #0
800fb8a: 609a str r2, [r3, #8]
huart7.Init.Parity = UART_PARITY_NONE;
800fb8c: 4b3a ldr r3, [pc, #232] ; (800fc78 <MX_UART7_Init+0x124>)
800fb8e: 2200 movs r2, #0
800fb90: 611a str r2, [r3, #16]
break;
800fb92: e011 b.n 800fbb8 <MX_UART7_Init+0x64>
case 1: //ODD
huart7.Init.WordLength = UART_WORDLENGTH_9B;
800fb94: 4b38 ldr r3, [pc, #224] ; (800fc78 <MX_UART7_Init+0x124>)
800fb96: f44f 5280 mov.w r2, #4096 ; 0x1000
800fb9a: 609a str r2, [r3, #8]
huart7.Init.Parity = UART_PARITY_ODD;
800fb9c: 4b36 ldr r3, [pc, #216] ; (800fc78 <MX_UART7_Init+0x124>)
800fb9e: f44f 62c0 mov.w r2, #1536 ; 0x600
800fba2: 611a str r2, [r3, #16]
break;
800fba4: e008 b.n 800fbb8 <MX_UART7_Init+0x64>
case 2: //EVEN
huart7.Init.WordLength = UART_WORDLENGTH_9B;
800fba6: 4b34 ldr r3, [pc, #208] ; (800fc78 <MX_UART7_Init+0x124>)
800fba8: f44f 5280 mov.w r2, #4096 ; 0x1000
800fbac: 609a str r2, [r3, #8]
huart7.Init.Parity = UART_PARITY_EVEN;
800fbae: 4b32 ldr r3, [pc, #200] ; (800fc78 <MX_UART7_Init+0x124>)
800fbb0: f44f 6280 mov.w r2, #1024 ; 0x400
800fbb4: 611a str r2, [r3, #16]
break;
800fbb6: bf00 nop
}
huart7.Init.StopBits = UART_STOPBITS_1;
800fbb8: 4b2f ldr r3, [pc, #188] ; (800fc78 <MX_UART7_Init+0x124>)
800fbba: 2200 movs r2, #0
800fbbc: 60da str r2, [r3, #12]
huart7.Init.Mode = UART_MODE_TX_RX;
800fbbe: 4b2e ldr r3, [pc, #184] ; (800fc78 <MX_UART7_Init+0x124>)
800fbc0: 220c movs r2, #12
800fbc2: 615a str r2, [r3, #20]
huart7.Init.HwFlowCtl = UART_HWCONTROL_NONE;
800fbc4: 4b2c ldr r3, [pc, #176] ; (800fc78 <MX_UART7_Init+0x124>)
800fbc6: 2200 movs r2, #0
800fbc8: 619a str r2, [r3, #24]
if(pardata.BAUD < 9)
800fbca: 4b2d ldr r3, [pc, #180] ; (800fc80 <MX_UART7_Init+0x12c>)
800fbcc: f8b3 3202 ldrh.w r3, [r3, #514] ; 0x202
800fbd0: b29b uxth r3, r3
800fbd2: 2b08 cmp r3, #8
800fbd4: d803 bhi.n 800fbde <MX_UART7_Init+0x8a>
huart7.Init.OverSampling = UART_OVERSAMPLING_16;
800fbd6: 4b28 ldr r3, [pc, #160] ; (800fc78 <MX_UART7_Init+0x124>)
800fbd8: 2200 movs r2, #0
800fbda: 61da str r2, [r3, #28]
800fbdc: e003 b.n 800fbe6 <MX_UART7_Init+0x92>
else huart7.Init.OverSampling = UART_OVERSAMPLING_8;
800fbde: 4b26 ldr r3, [pc, #152] ; (800fc78 <MX_UART7_Init+0x124>)
800fbe0: f44f 4200 mov.w r2, #32768 ; 0x8000
800fbe4: 61da str r2, [r3, #28]
huart7.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
800fbe6: 4b24 ldr r3, [pc, #144] ; (800fc78 <MX_UART7_Init+0x124>)
800fbe8: 2200 movs r2, #0
800fbea: 621a str r2, [r3, #32]
huart7.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_SWAP_INIT;
800fbec: 4b22 ldr r3, [pc, #136] ; (800fc78 <MX_UART7_Init+0x124>)
800fbee: 2208 movs r2, #8
800fbf0: 625a str r2, [r3, #36] ; 0x24
huart7.AdvancedInit.Swap = UART_ADVFEATURE_SWAP_ENABLE;
800fbf2: 4b21 ldr r3, [pc, #132] ; (800fc78 <MX_UART7_Init+0x124>)
800fbf4: f44f 4200 mov.w r2, #32768 ; 0x8000
800fbf8: 635a str r2, [r3, #52] ; 0x34
if(HAL_UART_Init(&huart7) != HAL_OK) {
800fbfa: 481f ldr r0, [pc, #124] ; (800fc78 <MX_UART7_Init+0x124>)
800fbfc: f004 fffa bl 8014bf4 <HAL_UART_Init>
800fc00: 4603 mov r3, r0
800fc02: 2b00 cmp r3, #0
800fc04: d001 beq.n 800fc0a <MX_UART7_Init+0xb6>
Error_Handler();
800fc06: f7f6 f8f1 bl 8005dec <Error_Handler>
}
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
800fc0a: 4b1b ldr r3, [pc, #108] ; (800fc78 <MX_UART7_Init+0x124>)
800fc0c: 681b ldr r3, [r3, #0]
800fc0e: 69db ldr r3, [r3, #28]
800fc10: f003 0308 and.w r3, r3, #8
800fc14: 2b08 cmp r3, #8
800fc16: d103 bne.n 800fc20 <MX_UART7_Init+0xcc>
__HAL_UART_CLEAR_OREFLAG(&huart7);
800fc18: 4b17 ldr r3, [pc, #92] ; (800fc78 <MX_UART7_Init+0x124>)
800fc1a: 681b ldr r3, [r3, #0]
800fc1c: 2208 movs r2, #8
800fc1e: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
800fc20: 4b15 ldr r3, [pc, #84] ; (800fc78 <MX_UART7_Init+0x124>)
800fc22: 681b ldr r3, [r3, #0]
800fc24: 69db ldr r3, [r3, #28]
800fc26: f003 0301 and.w r3, r3, #1
800fc2a: 2b01 cmp r3, #1
800fc2c: d103 bne.n 800fc36 <MX_UART7_Init+0xe2>
__HAL_UART_CLEAR_PEFLAG(&huart7);
800fc2e: 4b12 ldr r3, [pc, #72] ; (800fc78 <MX_UART7_Init+0x124>)
800fc30: 681b ldr r3, [r3, #0]
800fc32: 2201 movs r2, #1
800fc34: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
800fc36: 4b10 ldr r3, [pc, #64] ; (800fc78 <MX_UART7_Init+0x124>)
800fc38: 681b ldr r3, [r3, #0]
800fc3a: 69db ldr r3, [r3, #28]
800fc3c: f003 0302 and.w r3, r3, #2
800fc40: 2b02 cmp r3, #2
800fc42: d103 bne.n 800fc4c <MX_UART7_Init+0xf8>
__HAL_UART_CLEAR_FEFLAG(&huart7);
800fc44: 4b0c ldr r3, [pc, #48] ; (800fc78 <MX_UART7_Init+0x124>)
800fc46: 681b ldr r3, [r3, #0]
800fc48: 2202 movs r2, #2
800fc4a: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
800fc4c: 4b0a ldr r3, [pc, #40] ; (800fc78 <MX_UART7_Init+0x124>)
800fc4e: 681b ldr r3, [r3, #0]
800fc50: 69db ldr r3, [r3, #28]
800fc52: f003 0304 and.w r3, r3, #4
800fc56: 2b04 cmp r3, #4
800fc58: d103 bne.n 800fc62 <MX_UART7_Init+0x10e>
__HAL_UART_CLEAR_NEFLAG(&huart7);
800fc5a: 4b07 ldr r3, [pc, #28] ; (800fc78 <MX_UART7_Init+0x124>)
800fc5c: 681b ldr r3, [r3, #0]
800fc5e: 2204 movs r2, #4
800fc60: 621a str r2, [r3, #32]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800fc62: 2200 movs r2, #0
800fc64: f44f 7100 mov.w r1, #512 ; 0x200
800fc68: 4807 ldr r0, [pc, #28] ; (800fc88 <MX_UART7_Init+0x134>)
800fc6a: f002 ffb3 bl 8012bd4 <HAL_GPIO_WritePin>
HAL_Delay(1);
800fc6e: 2001 movs r0, #1
800fc70: f001 fc84 bl 801157c <HAL_Delay>
//SET_BIT(huart7.Instance->CR1, /*USART_CR1_RXNEIE |*/ USART_CR1_PEIE);
}
800fc74: bf00 nop
800fc76: bd80 pop {r7, pc}
800fc78: 2006c434 .word 0x2006c434
800fc7c: 40007800 .word 0x40007800
800fc80: 2006bca8 .word 0x2006bca8
800fc84: 0801aff0 .word 0x0801aff0
800fc88: 40021400 .word 0x40021400
0800fc8c <HAL_UART_MspInit>:
HAL_NVIC_DisableIRQ(UART7_IRQn);
}
void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
{
800fc8c: b580 push {r7, lr}
800fc8e: b08a sub sp, #40 ; 0x28
800fc90: af00 add r7, sp, #0
800fc92: 6078 str r0, [r7, #4]
GPIO_InitTypeDef GPIO_InitStruct = {0};
800fc94: f107 0314 add.w r3, r7, #20
800fc98: 2200 movs r2, #0
800fc9a: 601a str r2, [r3, #0]
800fc9c: 605a str r2, [r3, #4]
800fc9e: 609a str r2, [r3, #8]
800fca0: 60da str r2, [r3, #12]
800fca2: 611a str r2, [r3, #16]
if(uartHandle->Instance==UART7)
800fca4: 687b ldr r3, [r7, #4]
800fca6: 681b ldr r3, [r3, #0]
800fca8: 4a1b ldr r2, [pc, #108] ; (800fd18 <HAL_UART_MspInit+0x8c>)
800fcaa: 4293 cmp r3, r2
800fcac: d12f bne.n 800fd0e <HAL_UART_MspInit+0x82>
{
__HAL_RCC_UART7_CLK_ENABLE();
800fcae: 4a1b ldr r2, [pc, #108] ; (800fd1c <HAL_UART_MspInit+0x90>)
800fcb0: 4b1a ldr r3, [pc, #104] ; (800fd1c <HAL_UART_MspInit+0x90>)
800fcb2: 6c1b ldr r3, [r3, #64] ; 0x40
800fcb4: f043 4380 orr.w r3, r3, #1073741824 ; 0x40000000
800fcb8: 6413 str r3, [r2, #64] ; 0x40
800fcba: 4b18 ldr r3, [pc, #96] ; (800fd1c <HAL_UART_MspInit+0x90>)
800fcbc: 6c1b ldr r3, [r3, #64] ; 0x40
800fcbe: f003 4380 and.w r3, r3, #1073741824 ; 0x40000000
800fcc2: 613b str r3, [r7, #16]
800fcc4: 693b ldr r3, [r7, #16]
__HAL_RCC_GPIOF_CLK_ENABLE();
800fcc6: 4a15 ldr r2, [pc, #84] ; (800fd1c <HAL_UART_MspInit+0x90>)
800fcc8: 4b14 ldr r3, [pc, #80] ; (800fd1c <HAL_UART_MspInit+0x90>)
800fcca: 6b1b ldr r3, [r3, #48] ; 0x30
800fccc: f043 0320 orr.w r3, r3, #32
800fcd0: 6313 str r3, [r2, #48] ; 0x30
800fcd2: 4b12 ldr r3, [pc, #72] ; (800fd1c <HAL_UART_MspInit+0x90>)
800fcd4: 6b1b ldr r3, [r3, #48] ; 0x30
800fcd6: f003 0320 and.w r3, r3, #32
800fcda: 60fb str r3, [r7, #12]
800fcdc: 68fb ldr r3, [r7, #12]
/**UART7 GPIO Configuration
PF6 ------> UART7_RX
PF7 ------> UART7_TX
*/
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
800fcde: 23c0 movs r3, #192 ; 0xc0
800fce0: 617b str r3, [r7, #20]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
800fce2: 2302 movs r3, #2
800fce4: 61bb str r3, [r7, #24]
GPIO_InitStruct.Pull = GPIO_NOPULL;
800fce6: 2300 movs r3, #0
800fce8: 61fb str r3, [r7, #28]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
800fcea: 2303 movs r3, #3
800fcec: 623b str r3, [r7, #32]
GPIO_InitStruct.Alternate = GPIO_AF8_UART7;
800fcee: 2308 movs r3, #8
800fcf0: 627b str r3, [r7, #36] ; 0x24
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
800fcf2: f107 0314 add.w r3, r7, #20
800fcf6: 4619 mov r1, r3
800fcf8: 4809 ldr r0, [pc, #36] ; (800fd20 <HAL_UART_MspInit+0x94>)
800fcfa: f002 fda9 bl 8012850 <HAL_GPIO_Init>
/* UART7 interrupt Init */
HAL_NVIC_SetPriority(UART7_IRQn, 10, 0);
800fcfe: 2200 movs r2, #0
800fd00: 210a movs r1, #10
800fd02: 2052 movs r0, #82 ; 0x52
800fd04: f001 fd57 bl 80117b6 <HAL_NVIC_SetPriority>
HAL_NVIC_EnableIRQ(UART7_IRQn);
800fd08: 2052 movs r0, #82 ; 0x52
800fd0a: f001 fd70 bl 80117ee <HAL_NVIC_EnableIRQ>
}
}
800fd0e: bf00 nop
800fd10: 3728 adds r7, #40 ; 0x28
800fd12: 46bd mov sp, r7
800fd14: bd80 pop {r7, pc}
800fd16: bf00 nop
800fd18: 40007800 .word 0x40007800
800fd1c: 40023800 .word 0x40023800
800fd20: 40021400 .word 0x40021400
0800fd24 <UART7_IRQHandler>:
}
}
void UART7_IRQHandler(void)
{
800fd24: b580 push {r7, lr}
800fd26: af00 add r7, sp, #0
if((__HAL_UART_GET_IT_SOURCE(&huart7, UART_IT_RXNE)) && (__HAL_UART_GET_FLAG(&huart7, UART_FLAG_RXNE)))
800fd28: 4b26 ldr r3, [pc, #152] ; (800fdc4 <UART7_IRQHandler+0xa0>)
800fd2a: 681b ldr r3, [r3, #0]
800fd2c: 681b ldr r3, [r3, #0]
800fd2e: f003 0320 and.w r3, r3, #32
800fd32: 2b00 cmp r3, #0
800fd34: d00a beq.n 800fd4c <UART7_IRQHandler+0x28>
800fd36: 4b23 ldr r3, [pc, #140] ; (800fdc4 <UART7_IRQHandler+0xa0>)
800fd38: 681b ldr r3, [r3, #0]
800fd3a: 69db ldr r3, [r3, #28]
800fd3c: f003 0320 and.w r3, r3, #32
800fd40: 2b20 cmp r3, #32
800fd42: d103 bne.n 800fd4c <UART7_IRQHandler+0x28>
{
HAL_UART_RxCpltCallback(&huart7);
800fd44: 481f ldr r0, [pc, #124] ; (800fdc4 <UART7_IRQHandler+0xa0>)
800fd46: f000 f8ad bl 800fea4 <HAL_UART_RxCpltCallback>
800fd4a: e002 b.n 800fd52 <UART7_IRQHandler+0x2e>
}
else
{
HAL_UART_IRQHandler(&huart7);
800fd4c: 481d ldr r0, [pc, #116] ; (800fdc4 <UART7_IRQHandler+0xa0>)
800fd4e: f005 fa03 bl 8015158 <HAL_UART_IRQHandler>
}
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
800fd52: 4b1c ldr r3, [pc, #112] ; (800fdc4 <UART7_IRQHandler+0xa0>)
800fd54: 681b ldr r3, [r3, #0]
800fd56: 69db ldr r3, [r3, #28]
800fd58: f003 0308 and.w r3, r3, #8
800fd5c: 2b08 cmp r3, #8
800fd5e: d103 bne.n 800fd68 <UART7_IRQHandler+0x44>
__HAL_UART_CLEAR_OREFLAG(&huart7);
800fd60: 4b18 ldr r3, [pc, #96] ; (800fdc4 <UART7_IRQHandler+0xa0>)
800fd62: 681b ldr r3, [r3, #0]
800fd64: 2208 movs r2, #8
800fd66: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
800fd68: 4b16 ldr r3, [pc, #88] ; (800fdc4 <UART7_IRQHandler+0xa0>)
800fd6a: 681b ldr r3, [r3, #0]
800fd6c: 69db ldr r3, [r3, #28]
800fd6e: f003 0301 and.w r3, r3, #1
800fd72: 2b01 cmp r3, #1
800fd74: d103 bne.n 800fd7e <UART7_IRQHandler+0x5a>
__HAL_UART_CLEAR_PEFLAG(&huart7);
800fd76: 4b13 ldr r3, [pc, #76] ; (800fdc4 <UART7_IRQHandler+0xa0>)
800fd78: 681b ldr r3, [r3, #0]
800fd7a: 2201 movs r2, #1
800fd7c: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
800fd7e: 4b11 ldr r3, [pc, #68] ; (800fdc4 <UART7_IRQHandler+0xa0>)
800fd80: 681b ldr r3, [r3, #0]
800fd82: 69db ldr r3, [r3, #28]
800fd84: f003 0302 and.w r3, r3, #2
800fd88: 2b02 cmp r3, #2
800fd8a: d103 bne.n 800fd94 <UART7_IRQHandler+0x70>
__HAL_UART_CLEAR_FEFLAG(&huart7);
800fd8c: 4b0d ldr r3, [pc, #52] ; (800fdc4 <UART7_IRQHandler+0xa0>)
800fd8e: 681b ldr r3, [r3, #0]
800fd90: 2202 movs r2, #2
800fd92: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
800fd94: 4b0b ldr r3, [pc, #44] ; (800fdc4 <UART7_IRQHandler+0xa0>)
800fd96: 681b ldr r3, [r3, #0]
800fd98: 69db ldr r3, [r3, #28]
800fd9a: f003 0304 and.w r3, r3, #4
800fd9e: 2b04 cmp r3, #4
800fda0: d103 bne.n 800fdaa <UART7_IRQHandler+0x86>
__HAL_UART_CLEAR_NEFLAG(&huart7);
800fda2: 4b08 ldr r3, [pc, #32] ; (800fdc4 <UART7_IRQHandler+0xa0>)
800fda4: 681b ldr r3, [r3, #0]
800fda6: 2204 movs r2, #4
800fda8: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_IDLE))
800fdaa: 4b06 ldr r3, [pc, #24] ; (800fdc4 <UART7_IRQHandler+0xa0>)
800fdac: 681b ldr r3, [r3, #0]
800fdae: 69db ldr r3, [r3, #28]
800fdb0: f003 0310 and.w r3, r3, #16
800fdb4: 2b10 cmp r3, #16
800fdb6: d103 bne.n 800fdc0 <UART7_IRQHandler+0x9c>
__HAL_UART_CLEAR_IDLEFLAG(&huart7);
800fdb8: 4b02 ldr r3, [pc, #8] ; (800fdc4 <UART7_IRQHandler+0xa0>)
800fdba: 681b ldr r3, [r3, #0]
800fdbc: 2210 movs r2, #16
800fdbe: 621a str r2, [r3, #32]
}
800fdc0: bf00 nop
800fdc2: bd80 pop {r7, pc}
800fdc4: 2006c434 .word 0x2006c434
0800fdc8 <Crc16>:
uint16_t Crc16(uint16_t len)
{
800fdc8: b480 push {r7}
800fdca: b085 sub sp, #20
800fdcc: af00 add r7, sp, #0
800fdce: 4603 mov r3, r0
800fdd0: 80fb strh r3, [r7, #6]
uint16_t i;
uint16_t crc = 0xFFFF;
800fdd2: f64f 73ff movw r3, #65535 ; 0xffff
800fdd6: 81bb strh r3, [r7, #12]
for(i = 0; i < len; i++) {
800fdd8: 2300 movs r3, #0
800fdda: 81fb strh r3, [r7, #14]
800fddc: e010 b.n 800fe00 <Crc16+0x38>
crc = (crc >> 8) ^ Crc16Table[(crc & 0xFF) ^ iobuf[i]];
800fdde: 89bb ldrh r3, [r7, #12]
800fde0: 0a1b lsrs r3, r3, #8
800fde2: b29a uxth r2, r3
800fde4: 89bb ldrh r3, [r7, #12]
800fde6: b2db uxtb r3, r3
800fde8: 89f9 ldrh r1, [r7, #14]
800fdea: 480b ldr r0, [pc, #44] ; (800fe18 <Crc16+0x50>)
800fdec: 5c41 ldrb r1, [r0, r1]
800fdee: 404b eors r3, r1
800fdf0: 490a ldr r1, [pc, #40] ; (800fe1c <Crc16+0x54>)
800fdf2: f831 3013 ldrh.w r3, [r1, r3, lsl #1]
800fdf6: 4053 eors r3, r2
800fdf8: 81bb strh r3, [r7, #12]
for(i = 0; i < len; i++) {
800fdfa: 89fb ldrh r3, [r7, #14]
800fdfc: 3301 adds r3, #1
800fdfe: 81fb strh r3, [r7, #14]
800fe00: 89fa ldrh r2, [r7, #14]
800fe02: 88fb ldrh r3, [r7, #6]
800fe04: 429a cmp r2, r3
800fe06: d3ea bcc.n 800fdde <Crc16+0x16>
}
return crc;
800fe08: 89bb ldrh r3, [r7, #12]
}
800fe0a: 4618 mov r0, r3
800fe0c: 3714 adds r7, #20
800fe0e: 46bd mov sp, r7
800fe10: f85d 7b04 ldr.w r7, [sp], #4
800fe14: 4770 bx lr
800fe16: bf00 nop
800fe18: 2006c5c4 .word 0x2006c5c4
800fe1c: 0801adf0 .word 0x0801adf0
0800fe20 <Crc16_RX>:
uint16_t Crc16_RX(uint16_t len)
{
800fe20: b480 push {r7}
800fe22: b085 sub sp, #20
800fe24: af00 add r7, sp, #0
800fe26: 4603 mov r3, r0
800fe28: 80fb strh r3, [r7, #6]
uint16_t i;
uint16_t crc = 0xFFFF;
800fe2a: f64f 73ff movw r3, #65535 ; 0xffff
800fe2e: 81bb strh r3, [r7, #12]
for(i = 0; i < len; i++) {
800fe30: 2300 movs r3, #0
800fe32: 81fb strh r3, [r7, #14]
800fe34: e010 b.n 800fe58 <Crc16_RX+0x38>
crc = (crc >> 8) ^ Crc16Table[(crc & 0xFF) ^ rx[i]];
800fe36: 89bb ldrh r3, [r7, #12]
800fe38: 0a1b lsrs r3, r3, #8
800fe3a: b29a uxth r2, r3
800fe3c: 89bb ldrh r3, [r7, #12]
800fe3e: b2db uxtb r3, r3
800fe40: 89f9 ldrh r1, [r7, #14]
800fe42: 480b ldr r0, [pc, #44] ; (800fe70 <Crc16_RX+0x50>)
800fe44: 5c41 ldrb r1, [r0, r1]
800fe46: 404b eors r3, r1
800fe48: 490a ldr r1, [pc, #40] ; (800fe74 <Crc16_RX+0x54>)
800fe4a: f831 3013 ldrh.w r3, [r1, r3, lsl #1]
800fe4e: 4053 eors r3, r2
800fe50: 81bb strh r3, [r7, #12]
for(i = 0; i < len; i++) {
800fe52: 89fb ldrh r3, [r7, #14]
800fe54: 3301 adds r3, #1
800fe56: 81fb strh r3, [r7, #14]
800fe58: 89fa ldrh r2, [r7, #14]
800fe5a: 88fb ldrh r3, [r7, #6]
800fe5c: 429a cmp r2, r3
800fe5e: d3ea bcc.n 800fe36 <Crc16_RX+0x16>
}
return crc;
800fe60: 89bb ldrh r3, [r7, #12]
}
800fe62: 4618 mov r0, r3
800fe64: 3714 adds r7, #20
800fe66: 46bd mov sp, r7
800fe68: f85d 7b04 ldr.w r7, [sp], #4
800fe6c: 4770 bx lr
800fe6e: bf00 nop
800fe70: 2006c4bc .word 0x2006c4bc
800fe74: 0801adf0 .word 0x0801adf0
0800fe78 <HAL_UART_TxCpltCallback>:
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
{
800fe78: b580 push {r7, lr}
800fe7a: b082 sub sp, #8
800fe7c: af00 add r7, sp, #0
800fe7e: 6078 str r0, [r7, #4]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800fe80: 2200 movs r2, #0
800fe82: f44f 7100 mov.w r1, #512 ; 0x200
800fe86: 4805 ldr r0, [pc, #20] ; (800fe9c <HAL_UART_TxCpltCallback+0x24>)
800fe88: f002 fea4 bl 8012bd4 <HAL_GPIO_WritePin>
TX_OK = true;
800fe8c: 4b04 ldr r3, [pc, #16] ; (800fea0 <HAL_UART_TxCpltCallback+0x28>)
800fe8e: 2201 movs r2, #1
800fe90: 701a strb r2, [r3, #0]
}
800fe92: bf00 nop
800fe94: 3708 adds r7, #8
800fe96: 46bd mov sp, r7
800fe98: bd80 pop {r7, pc}
800fe9a: bf00 nop
800fe9c: 40021400 .word 0x40021400
800fea0: 2006ba92 .word 0x2006ba92
0800fea4 <HAL_UART_RxCpltCallback>:
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
800fea4: b480 push {r7}
800fea6: b083 sub sp, #12
800fea8: af00 add r7, sp, #0
800feaa: 6078 str r0, [r7, #4]
RX_OK = true;
800feac: 4b04 ldr r3, [pc, #16] ; (800fec0 <HAL_UART_RxCpltCallback+0x1c>)
800feae: 2201 movs r2, #1
800feb0: 701a strb r2, [r3, #0]
}
800feb2: bf00 nop
800feb4: 370c adds r7, #12
800feb6: 46bd mov sp, r7
800feb8: f85d 7b04 ldr.w r7, [sp], #4
800febc: 4770 bx lr
800febe: bf00 nop
800fec0: 2006ba93 .word 0x2006ba93
0800fec4 <HAL_UART_ErrorCallback>:
void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)
{
800fec4: b580 push {r7, lr}
800fec6: b082 sub sp, #8
800fec8: af00 add r7, sp, #0
800feca: 6078 str r0, [r7, #4]
RX_OK = TX_OK = false;
800fecc: 2100 movs r1, #0
800fece: 4b0b ldr r3, [pc, #44] ; (800fefc <HAL_UART_ErrorCallback+0x38>)
800fed0: 460a mov r2, r1
800fed2: 701a strb r2, [r3, #0]
800fed4: 4b0a ldr r3, [pc, #40] ; (800ff00 <HAL_UART_ErrorCallback+0x3c>)
800fed6: 460a mov r2, r1
800fed8: 701a strb r2, [r3, #0]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800feda: 2200 movs r2, #0
800fedc: f44f 7100 mov.w r1, #512 ; 0x200
800fee0: 4808 ldr r0, [pc, #32] ; (800ff04 <HAL_UART_ErrorCallback+0x40>)
800fee2: f002 fe77 bl 8012bd4 <HAL_GPIO_WritePin>
HAL_UART_Abort_IT(&huart7);
800fee6: 4808 ldr r0, [pc, #32] ; (800ff08 <HAL_UART_ErrorCallback+0x44>)
800fee8: f005 f810 bl 8014f0c <HAL_UART_Abort_IT>
UART_ERROR = true;
800feec: 4b07 ldr r3, [pc, #28] ; (800ff0c <HAL_UART_ErrorCallback+0x48>)
800feee: 2201 movs r2, #1
800fef0: 701a strb r2, [r3, #0]
}
800fef2: bf00 nop
800fef4: 3708 adds r7, #8
800fef6: 46bd mov sp, r7
800fef8: bd80 pop {r7, pc}
800fefa: bf00 nop
800fefc: 2006ba92 .word 0x2006ba92
800ff00: 2006ba93 .word 0x2006ba93
800ff04: 40021400 .word 0x40021400
800ff08: 2006c434 .word 0x2006c434
800ff0c: 2006ba91 .word 0x2006ba91
0800ff10 <ReadIP>:
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
int8_t ReadIP(void)
{
800ff10: b580 push {r7, lr}
800ff12: b084 sub sp, #16
800ff14: af00 add r7, sp, #0
int8_t res = -1;
800ff16: 23ff movs r3, #255 ; 0xff
800ff18: 73fb strb r3, [r7, #15]
uint16_t i, len = 0, cnt = 0;
800ff1a: 2300 movs r3, #0
800ff1c: 81bb strh r3, [r7, #12]
800ff1e: 2300 movs r3, #0
800ff20: 817b strh r3, [r7, #10]
uint16_t crc;
__IO uint32_t timeout;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
800ff22: 4b82 ldr r3, [pc, #520] ; (801012c <ReadIP+0x21c>)
800ff24: 681b ldr r3, [r3, #0]
800ff26: 69db ldr r3, [r3, #28]
800ff28: f003 0308 and.w r3, r3, #8
800ff2c: 2b08 cmp r3, #8
800ff2e: d103 bne.n 800ff38 <ReadIP+0x28>
__HAL_UART_CLEAR_OREFLAG(&huart7);
800ff30: 4b7e ldr r3, [pc, #504] ; (801012c <ReadIP+0x21c>)
800ff32: 681b ldr r3, [r3, #0]
800ff34: 2208 movs r2, #8
800ff36: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
800ff38: 4b7c ldr r3, [pc, #496] ; (801012c <ReadIP+0x21c>)
800ff3a: 681b ldr r3, [r3, #0]
800ff3c: 69db ldr r3, [r3, #28]
800ff3e: f003 0301 and.w r3, r3, #1
800ff42: 2b01 cmp r3, #1
800ff44: d103 bne.n 800ff4e <ReadIP+0x3e>
__HAL_UART_CLEAR_PEFLAG(&huart7);
800ff46: 4b79 ldr r3, [pc, #484] ; (801012c <ReadIP+0x21c>)
800ff48: 681b ldr r3, [r3, #0]
800ff4a: 2201 movs r2, #1
800ff4c: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
800ff4e: 4b77 ldr r3, [pc, #476] ; (801012c <ReadIP+0x21c>)
800ff50: 681b ldr r3, [r3, #0]
800ff52: 69db ldr r3, [r3, #28]
800ff54: f003 0302 and.w r3, r3, #2
800ff58: 2b02 cmp r3, #2
800ff5a: d103 bne.n 800ff64 <ReadIP+0x54>
__HAL_UART_CLEAR_FEFLAG(&huart7);
800ff5c: 4b73 ldr r3, [pc, #460] ; (801012c <ReadIP+0x21c>)
800ff5e: 681b ldr r3, [r3, #0]
800ff60: 2202 movs r2, #2
800ff62: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
800ff64: 4b71 ldr r3, [pc, #452] ; (801012c <ReadIP+0x21c>)
800ff66: 681b ldr r3, [r3, #0]
800ff68: 69db ldr r3, [r3, #28]
800ff6a: f003 0304 and.w r3, r3, #4
800ff6e: 2b04 cmp r3, #4
800ff70: d103 bne.n 800ff7a <ReadIP+0x6a>
__HAL_UART_CLEAR_NEFLAG(&huart7);
800ff72: 4b6e ldr r3, [pc, #440] ; (801012c <ReadIP+0x21c>)
800ff74: 681b ldr r3, [r3, #0]
800ff76: 2204 movs r2, #4
800ff78: 621a str r2, [r3, #32]
HAL_Delay(20);
800ff7a: 2014 movs r0, #20
800ff7c: f001 fafe bl 801157c <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
800ff80: 2200 movs r2, #0
800ff82: 4b6b ldr r3, [pc, #428] ; (8010130 <ReadIP+0x220>)
800ff84: 4611 mov r1, r2
800ff86: 7019 strb r1, [r3, #0]
800ff88: 4b6a ldr r3, [pc, #424] ; (8010134 <ReadIP+0x224>)
800ff8a: 4611 mov r1, r2
800ff8c: 7019 strb r1, [r3, #0]
800ff8e: 4b6a ldr r3, [pc, #424] ; (8010138 <ReadIP+0x228>)
800ff90: 701a strb r2, [r3, #0]
len = 0;
800ff92: 2300 movs r3, #0
800ff94: 81bb strh r3, [r7, #12]
memset((void *) &rx, 0, sizeof(rx));
800ff96: f44f 7280 mov.w r2, #256 ; 0x100
800ff9a: 2100 movs r1, #0
800ff9c: 4867 ldr r0, [pc, #412] ; (801013c <ReadIP+0x22c>)
800ff9e: f006 fa60 bl 8016462 <memset>
iobuf[len++] = 17;
800ffa2: 89bb ldrh r3, [r7, #12]
800ffa4: 1c5a adds r2, r3, #1
800ffa6: 81ba strh r2, [r7, #12]
800ffa8: 461a mov r2, r3
800ffaa: 4b65 ldr r3, [pc, #404] ; (8010140 <ReadIP+0x230>)
800ffac: 2111 movs r1, #17
800ffae: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x03;
800ffb0: 89bb ldrh r3, [r7, #12]
800ffb2: 1c5a adds r2, r3, #1
800ffb4: 81ba strh r2, [r7, #12]
800ffb6: 461a mov r2, r3
800ffb8: 4b61 ldr r3, [pc, #388] ; (8010140 <ReadIP+0x230>)
800ffba: 2103 movs r1, #3
800ffbc: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(4001);
800ffbe: 89bb ldrh r3, [r7, #12]
800ffc0: 1c5a adds r2, r3, #1
800ffc2: 81ba strh r2, [r7, #12]
800ffc4: 461a mov r2, r3
800ffc6: 4b5e ldr r3, [pc, #376] ; (8010140 <ReadIP+0x230>)
800ffc8: 210f movs r1, #15
800ffca: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(4001);
800ffcc: 89bb ldrh r3, [r7, #12]
800ffce: 1c5a adds r2, r3, #1
800ffd0: 81ba strh r2, [r7, #12]
800ffd2: 461a mov r2, r3
800ffd4: 4b5a ldr r3, [pc, #360] ; (8010140 <ReadIP+0x230>)
800ffd6: 21a1 movs r1, #161 ; 0xa1
800ffd8: 5499 strb r1, [r3, r2]
iobuf[len++] = 0; //
800ffda: 89bb ldrh r3, [r7, #12]
800ffdc: 1c5a adds r2, r3, #1
800ffde: 81ba strh r2, [r7, #12]
800ffe0: 461a mov r2, r3
800ffe2: 4b57 ldr r3, [pc, #348] ; (8010140 <ReadIP+0x230>)
800ffe4: 2100 movs r1, #0
800ffe6: 5499 strb r1, [r3, r2]
iobuf[len++] = 2; //
800ffe8: 89bb ldrh r3, [r7, #12]
800ffea: 1c5a adds r2, r3, #1
800ffec: 81ba strh r2, [r7, #12]
800ffee: 461a mov r2, r3
800fff0: 4b53 ldr r3, [pc, #332] ; (8010140 <ReadIP+0x230>)
800fff2: 2102 movs r1, #2
800fff4: 5499 strb r1, [r3, r2]
crc = Crc16(len);
800fff6: 89bb ldrh r3, [r7, #12]
800fff8: 4618 mov r0, r3
800fffa: f7ff fee5 bl 800fdc8 <Crc16>
800fffe: 4603 mov r3, r0
8010000: 813b strh r3, [r7, #8]
iobuf[len++] = LO(crc);
8010002: 89bb ldrh r3, [r7, #12]
8010004: 1c5a adds r2, r3, #1
8010006: 81ba strh r2, [r7, #12]
8010008: 461a mov r2, r3
801000a: 893b ldrh r3, [r7, #8]
801000c: b2d9 uxtb r1, r3
801000e: 4b4c ldr r3, [pc, #304] ; (8010140 <ReadIP+0x230>)
8010010: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
8010012: 89bb ldrh r3, [r7, #12]
8010014: 1c5a adds r2, r3, #1
8010016: 81ba strh r2, [r7, #12]
8010018: 461a mov r2, r3
801001a: 893b ldrh r3, [r7, #8]
801001c: 0a1b lsrs r3, r3, #8
801001e: b29b uxth r3, r3
8010020: b2d9 uxtb r1, r3
8010022: 4b47 ldr r3, [pc, #284] ; (8010140 <ReadIP+0x230>)
8010024: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
8010026: f001 fa9d bl 8011564 <HAL_GetTick>
801002a: 4603 mov r3, r0
801002c: 607b str r3, [r7, #4]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
801002e: 2201 movs r2, #1
8010030: f44f 7100 mov.w r1, #512 ; 0x200
8010034: 4843 ldr r0, [pc, #268] ; (8010144 <ReadIP+0x234>)
8010036: f002 fdcd bl 8012bd4 <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
801003a: 89bb ldrh r3, [r7, #12]
801003c: 461a mov r2, r3
801003e: 4940 ldr r1, [pc, #256] ; (8010140 <ReadIP+0x230>)
8010040: 483a ldr r0, [pc, #232] ; (801012c <ReadIP+0x21c>)
8010042: f004 fef5 bl 8014e30 <HAL_UART_Transmit_IT>
8010046: 4603 mov r3, r0
8010048: 2b00 cmp r3, #0
801004a: d168 bne.n 801011e <ReadIP+0x20e>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 50));
801004c: bf00 nop
801004e: 4b3a ldr r3, [pc, #232] ; (8010138 <ReadIP+0x228>)
8010050: 781b ldrb r3, [r3, #0]
8010052: b2db uxtb r3, r3
8010054: f083 0301 eor.w r3, r3, #1
8010058: b2db uxtb r3, r3
801005a: 2b00 cmp r3, #0
801005c: d006 beq.n 801006c <ReadIP+0x15c>
801005e: f001 fa81 bl 8011564 <HAL_GetTick>
8010062: 4602 mov r2, r0
8010064: 687b ldr r3, [r7, #4]
8010066: 1ad3 subs r3, r2, r3
8010068: 2b31 cmp r3, #49 ; 0x31
801006a: d9f0 bls.n 801004e <ReadIP+0x13e>
if(!TX_OK)
801006c: 4b32 ldr r3, [pc, #200] ; (8010138 <ReadIP+0x228>)
801006e: 781b ldrb r3, [r3, #0]
8010070: b2db uxtb r3, r3
8010072: f083 0301 eor.w r3, r3, #1
8010076: b2db uxtb r3, r3
8010078: 2b00 cmp r3, #0
801007a: d00b beq.n 8010094 <ReadIP+0x184>
{
HAL_UART_Abort_IT(&huart7);
801007c: 482b ldr r0, [pc, #172] ; (801012c <ReadIP+0x21c>)
801007e: f004 ff45 bl 8014f0c <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010082: 2200 movs r2, #0
8010084: f44f 7100 mov.w r1, #512 ; 0x200
8010088: 482e ldr r0, [pc, #184] ; (8010144 <ReadIP+0x234>)
801008a: f002 fda3 bl 8012bd4 <HAL_GPIO_WritePin>
return (-1);
801008e: f04f 33ff mov.w r3, #4294967295
8010092: e046 b.n 8010122 <ReadIP+0x212>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010094: 2200 movs r2, #0
8010096: f44f 7100 mov.w r1, #512 ; 0x200
801009a: 482a ldr r0, [pc, #168] ; (8010144 <ReadIP+0x234>)
801009c: f002 fd9a bl 8012bd4 <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
80100a0: 2364 movs r3, #100 ; 0x64
80100a2: 2201 movs r2, #1
80100a4: 4925 ldr r1, [pc, #148] ; (801013c <ReadIP+0x22c>)
80100a6: 4821 ldr r0, [pc, #132] ; (801012c <ReadIP+0x21c>)
80100a8: f004 fdf2 bl 8014c90 <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 9, 100) == HAL_OK)
80100ac: 2364 movs r3, #100 ; 0x64
80100ae: 2209 movs r2, #9
80100b0: 4922 ldr r1, [pc, #136] ; (801013c <ReadIP+0x22c>)
80100b2: 481e ldr r0, [pc, #120] ; (801012c <ReadIP+0x21c>)
80100b4: f004 fdec bl 8014c90 <HAL_UART_Receive>
80100b8: 4603 mov r3, r0
80100ba: 2b00 cmp r3, #0
80100bc: d126 bne.n 801010c <ReadIP+0x1fc>
{
crc = (uint16_t) ((rx[8]) << 8 | rx[7]);
80100be: 4b1f ldr r3, [pc, #124] ; (801013c <ReadIP+0x22c>)
80100c0: 7a1b ldrb r3, [r3, #8]
80100c2: 021b lsls r3, r3, #8
80100c4: b21a sxth r2, r3
80100c6: 4b1d ldr r3, [pc, #116] ; (801013c <ReadIP+0x22c>)
80100c8: 79db ldrb r3, [r3, #7]
80100ca: b21b sxth r3, r3
80100cc: 4313 orrs r3, r2
80100ce: b21b sxth r3, r3
80100d0: 813b strh r3, [r7, #8]
if(crc == Crc16_RX(7))
80100d2: 2007 movs r0, #7
80100d4: f7ff fea4 bl 800fe20 <Crc16_RX>
80100d8: 4603 mov r3, r0
80100da: 461a mov r2, r3
80100dc: 893b ldrh r3, [r7, #8]
80100de: 4293 cmp r3, r2
80100e0: d111 bne.n 8010106 <ReadIP+0x1f6>
{
ip[0] = rx[3];
80100e2: 4b16 ldr r3, [pc, #88] ; (801013c <ReadIP+0x22c>)
80100e4: 78da ldrb r2, [r3, #3]
80100e6: 4b18 ldr r3, [pc, #96] ; (8010148 <ReadIP+0x238>)
80100e8: 701a strb r2, [r3, #0]
ip[1] = rx[4];
80100ea: 4b14 ldr r3, [pc, #80] ; (801013c <ReadIP+0x22c>)
80100ec: 791a ldrb r2, [r3, #4]
80100ee: 4b16 ldr r3, [pc, #88] ; (8010148 <ReadIP+0x238>)
80100f0: 705a strb r2, [r3, #1]
ip[2] = rx[5];
80100f2: 4b12 ldr r3, [pc, #72] ; (801013c <ReadIP+0x22c>)
80100f4: 795a ldrb r2, [r3, #5]
80100f6: 4b14 ldr r3, [pc, #80] ; (8010148 <ReadIP+0x238>)
80100f8: 709a strb r2, [r3, #2]
ip[3] = rx[6];
80100fa: 4b10 ldr r3, [pc, #64] ; (801013c <ReadIP+0x22c>)
80100fc: 799a ldrb r2, [r3, #6]
80100fe: 4b12 ldr r3, [pc, #72] ; (8010148 <ReadIP+0x238>)
8010100: 70da strb r2, [r3, #3]
return 0;
8010102: 2300 movs r3, #0
8010104: e00d b.n 8010122 <ReadIP+0x212>
}
else
{
return (-1);
8010106: f04f 33ff mov.w r3, #4294967295
801010a: e00a b.n 8010122 <ReadIP+0x212>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
801010c: 2200 movs r2, #0
801010e: f44f 7100 mov.w r1, #512 ; 0x200
8010112: 480c ldr r0, [pc, #48] ; (8010144 <ReadIP+0x234>)
8010114: f002 fd5e bl 8012bd4 <HAL_GPIO_WritePin>
return (-1);
8010118: f04f 33ff mov.w r3, #4294967295
801011c: e001 b.n 8010122 <ReadIP+0x212>
}
}
return res;
801011e: f997 300f ldrsb.w r3, [r7, #15]
}
8010122: 4618 mov r0, r3
8010124: 3710 adds r7, #16
8010126: 46bd mov sp, r7
8010128: bd80 pop {r7, pc}
801012a: bf00 nop
801012c: 2006c434 .word 0x2006c434
8010130: 2006ba91 .word 0x2006ba91
8010134: 2006ba93 .word 0x2006ba93
8010138: 2006ba92 .word 0x2006ba92
801013c: 2006c4bc .word 0x2006c4bc
8010140: 2006c5c4 .word 0x2006c5c4
8010144: 40021400 .word 0x40021400
8010148: 2006ba8c .word 0x2006ba8c
0801014c <ReadChannel>:
int8_t ReadChannel(uint8_t ch)
{
801014c: b580 push {r7, lr}
801014e: b086 sub sp, #24
8010150: af00 add r7, sp, #0
8010152: 4603 mov r3, r0
8010154: 71fb strb r3, [r7, #7]
int8_t res = -1;
8010156: 23ff movs r3, #255 ; 0xff
8010158: 75fb strb r3, [r7, #23]
uint16_t i, len = 0, cnt = 0;
801015a: 2300 movs r3, #0
801015c: 82bb strh r3, [r7, #20]
801015e: 2300 movs r3, #0
8010160: 827b strh r3, [r7, #18]
uint16_t crc;
__IO uint32_t timeout;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
8010162: 4b5e ldr r3, [pc, #376] ; (80102dc <ReadChannel+0x190>)
8010164: 681b ldr r3, [r3, #0]
8010166: 69db ldr r3, [r3, #28]
8010168: f003 0308 and.w r3, r3, #8
801016c: 2b08 cmp r3, #8
801016e: d103 bne.n 8010178 <ReadChannel+0x2c>
__HAL_UART_CLEAR_OREFLAG(&huart7);
8010170: 4b5a ldr r3, [pc, #360] ; (80102dc <ReadChannel+0x190>)
8010172: 681b ldr r3, [r3, #0]
8010174: 2208 movs r2, #8
8010176: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
8010178: 4b58 ldr r3, [pc, #352] ; (80102dc <ReadChannel+0x190>)
801017a: 681b ldr r3, [r3, #0]
801017c: 69db ldr r3, [r3, #28]
801017e: f003 0301 and.w r3, r3, #1
8010182: 2b01 cmp r3, #1
8010184: d103 bne.n 801018e <ReadChannel+0x42>
__HAL_UART_CLEAR_PEFLAG(&huart7);
8010186: 4b55 ldr r3, [pc, #340] ; (80102dc <ReadChannel+0x190>)
8010188: 681b ldr r3, [r3, #0]
801018a: 2201 movs r2, #1
801018c: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
801018e: 4b53 ldr r3, [pc, #332] ; (80102dc <ReadChannel+0x190>)
8010190: 681b ldr r3, [r3, #0]
8010192: 69db ldr r3, [r3, #28]
8010194: f003 0302 and.w r3, r3, #2
8010198: 2b02 cmp r3, #2
801019a: d103 bne.n 80101a4 <ReadChannel+0x58>
__HAL_UART_CLEAR_FEFLAG(&huart7);
801019c: 4b4f ldr r3, [pc, #316] ; (80102dc <ReadChannel+0x190>)
801019e: 681b ldr r3, [r3, #0]
80101a0: 2202 movs r2, #2
80101a2: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
80101a4: 4b4d ldr r3, [pc, #308] ; (80102dc <ReadChannel+0x190>)
80101a6: 681b ldr r3, [r3, #0]
80101a8: 69db ldr r3, [r3, #28]
80101aa: f003 0304 and.w r3, r3, #4
80101ae: 2b04 cmp r3, #4
80101b0: d103 bne.n 80101ba <ReadChannel+0x6e>
__HAL_UART_CLEAR_NEFLAG(&huart7);
80101b2: 4b4a ldr r3, [pc, #296] ; (80102dc <ReadChannel+0x190>)
80101b4: 681b ldr r3, [r3, #0]
80101b6: 2204 movs r2, #4
80101b8: 621a str r2, [r3, #32]
HAL_Delay(20);
80101ba: 2014 movs r0, #20
80101bc: f001 f9de bl 801157c <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
80101c0: 2200 movs r2, #0
80101c2: 4b47 ldr r3, [pc, #284] ; (80102e0 <ReadChannel+0x194>)
80101c4: 4611 mov r1, r2
80101c6: 7019 strb r1, [r3, #0]
80101c8: 4b46 ldr r3, [pc, #280] ; (80102e4 <ReadChannel+0x198>)
80101ca: 4611 mov r1, r2
80101cc: 7019 strb r1, [r3, #0]
80101ce: 4b46 ldr r3, [pc, #280] ; (80102e8 <ReadChannel+0x19c>)
80101d0: 701a strb r2, [r3, #0]
len = 0;
80101d2: 2300 movs r3, #0
80101d4: 82bb strh r3, [r7, #20]
memset((void *) &rx, 0, sizeof(rx));
80101d6: f44f 7280 mov.w r2, #256 ; 0x100
80101da: 2100 movs r1, #0
80101dc: 4843 ldr r0, [pc, #268] ; (80102ec <ReadChannel+0x1a0>)
80101de: f006 f940 bl 8016462 <memset>
iobuf[len++] = ch + 1;
80101e2: 8abb ldrh r3, [r7, #20]
80101e4: 1c5a adds r2, r3, #1
80101e6: 82ba strh r2, [r7, #20]
80101e8: 461a mov r2, r3
80101ea: 79fb ldrb r3, [r7, #7]
80101ec: 3301 adds r3, #1
80101ee: b2d9 uxtb r1, r3
80101f0: 4b3f ldr r3, [pc, #252] ; (80102f0 <ReadChannel+0x1a4>)
80101f2: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x03;
80101f4: 8abb ldrh r3, [r7, #20]
80101f6: 1c5a adds r2, r3, #1
80101f8: 82ba strh r2, [r7, #20]
80101fa: 461a mov r2, r3
80101fc: 4b3c ldr r3, [pc, #240] ; (80102f0 <ReadChannel+0x1a4>)
80101fe: 2103 movs r1, #3
8010200: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(5001);
8010202: 8abb ldrh r3, [r7, #20]
8010204: 1c5a adds r2, r3, #1
8010206: 82ba strh r2, [r7, #20]
8010208: 461a mov r2, r3
801020a: 4b39 ldr r3, [pc, #228] ; (80102f0 <ReadChannel+0x1a4>)
801020c: 2113 movs r1, #19
801020e: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(5001);
8010210: 8abb ldrh r3, [r7, #20]
8010212: 1c5a adds r2, r3, #1
8010214: 82ba strh r2, [r7, #20]
8010216: 461a mov r2, r3
8010218: 4b35 ldr r3, [pc, #212] ; (80102f0 <ReadChannel+0x1a4>)
801021a: 2189 movs r1, #137 ; 0x89
801021c: 5499 strb r1, [r3, r2]
iobuf[len++] = 0; //
801021e: 8abb ldrh r3, [r7, #20]
8010220: 1c5a adds r2, r3, #1
8010222: 82ba strh r2, [r7, #20]
8010224: 461a mov r2, r3
8010226: 4b32 ldr r3, [pc, #200] ; (80102f0 <ReadChannel+0x1a4>)
8010228: 2100 movs r1, #0
801022a: 5499 strb r1, [r3, r2]
iobuf[len++] = 10; // IIN,IFV,IFN,IKU,IKE,IKD,IKS
801022c: 8abb ldrh r3, [r7, #20]
801022e: 1c5a adds r2, r3, #1
8010230: 82ba strh r2, [r7, #20]
8010232: 461a mov r2, r3
8010234: 4b2e ldr r3, [pc, #184] ; (80102f0 <ReadChannel+0x1a4>)
8010236: 210a movs r1, #10
8010238: 5499 strb r1, [r3, r2]
crc = Crc16(len);
801023a: 8abb ldrh r3, [r7, #20]
801023c: 4618 mov r0, r3
801023e: f7ff fdc3 bl 800fdc8 <Crc16>
8010242: 4603 mov r3, r0
8010244: 823b strh r3, [r7, #16]
iobuf[len++] = LO(crc);
8010246: 8abb ldrh r3, [r7, #20]
8010248: 1c5a adds r2, r3, #1
801024a: 82ba strh r2, [r7, #20]
801024c: 461a mov r2, r3
801024e: 8a3b ldrh r3, [r7, #16]
8010250: b2d9 uxtb r1, r3
8010252: 4b27 ldr r3, [pc, #156] ; (80102f0 <ReadChannel+0x1a4>)
8010254: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
8010256: 8abb ldrh r3, [r7, #20]
8010258: 1c5a adds r2, r3, #1
801025a: 82ba strh r2, [r7, #20]
801025c: 461a mov r2, r3
801025e: 8a3b ldrh r3, [r7, #16]
8010260: 0a1b lsrs r3, r3, #8
8010262: b29b uxth r3, r3
8010264: b2d9 uxtb r1, r3
8010266: 4b22 ldr r3, [pc, #136] ; (80102f0 <ReadChannel+0x1a4>)
8010268: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
801026a: f001 f97b bl 8011564 <HAL_GetTick>
801026e: 4603 mov r3, r0
8010270: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
8010272: 2201 movs r2, #1
8010274: f44f 7100 mov.w r1, #512 ; 0x200
8010278: 481e ldr r0, [pc, #120] ; (80102f4 <ReadChannel+0x1a8>)
801027a: f002 fcab bl 8012bd4 <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
801027e: 8abb ldrh r3, [r7, #20]
8010280: 461a mov r2, r3
8010282: 491b ldr r1, [pc, #108] ; (80102f0 <ReadChannel+0x1a4>)
8010284: 4815 ldr r0, [pc, #84] ; (80102dc <ReadChannel+0x190>)
8010286: f004 fdd3 bl 8014e30 <HAL_UART_Transmit_IT>
801028a: 4603 mov r3, r0
801028c: 2b00 cmp r3, #0
801028e: f040 8113 bne.w 80104b8 <ReadChannel+0x36c>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 50));
8010292: bf00 nop
8010294: 4b14 ldr r3, [pc, #80] ; (80102e8 <ReadChannel+0x19c>)
8010296: 781b ldrb r3, [r3, #0]
8010298: b2db uxtb r3, r3
801029a: f083 0301 eor.w r3, r3, #1
801029e: b2db uxtb r3, r3
80102a0: 2b00 cmp r3, #0
80102a2: d006 beq.n 80102b2 <ReadChannel+0x166>
80102a4: f001 f95e bl 8011564 <HAL_GetTick>
80102a8: 4602 mov r2, r0
80102aa: 68fb ldr r3, [r7, #12]
80102ac: 1ad3 subs r3, r2, r3
80102ae: 2b31 cmp r3, #49 ; 0x31
80102b0: d9f0 bls.n 8010294 <ReadChannel+0x148>
if(!TX_OK)
80102b2: 4b0d ldr r3, [pc, #52] ; (80102e8 <ReadChannel+0x19c>)
80102b4: 781b ldrb r3, [r3, #0]
80102b6: b2db uxtb r3, r3
80102b8: f083 0301 eor.w r3, r3, #1
80102bc: b2db uxtb r3, r3
80102be: 2b00 cmp r3, #0
80102c0: d01a beq.n 80102f8 <ReadChannel+0x1ac>
{
HAL_UART_Abort_IT(&huart7);
80102c2: 4806 ldr r0, [pc, #24] ; (80102dc <ReadChannel+0x190>)
80102c4: f004 fe22 bl 8014f0c <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
80102c8: 2200 movs r2, #0
80102ca: f44f 7100 mov.w r1, #512 ; 0x200
80102ce: 4809 ldr r0, [pc, #36] ; (80102f4 <ReadChannel+0x1a8>)
80102d0: f002 fc80 bl 8012bd4 <HAL_GPIO_WritePin>
return (-1);
80102d4: f04f 33ff mov.w r3, #4294967295
80102d8: e0f0 b.n 80104bc <ReadChannel+0x370>
80102da: bf00 nop
80102dc: 2006c434 .word 0x2006c434
80102e0: 2006ba91 .word 0x2006ba91
80102e4: 2006ba93 .word 0x2006ba93
80102e8: 2006ba92 .word 0x2006ba92
80102ec: 2006c4bc .word 0x2006c4bc
80102f0: 2006c5c4 .word 0x2006c5c4
80102f4: 40021400 .word 0x40021400
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
80102f8: 2200 movs r2, #0
80102fa: f44f 7100 mov.w r1, #512 ; 0x200
80102fe: 4871 ldr r0, [pc, #452] ; (80104c4 <ReadChannel+0x378>)
8010300: f002 fc68 bl 8012bd4 <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
8010304: 2364 movs r3, #100 ; 0x64
8010306: 2201 movs r2, #1
8010308: 496f ldr r1, [pc, #444] ; (80104c8 <ReadChannel+0x37c>)
801030a: 4870 ldr r0, [pc, #448] ; (80104cc <ReadChannel+0x380>)
801030c: f004 fcc0 bl 8014c90 <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 25, 100) == HAL_OK)
8010310: 2364 movs r3, #100 ; 0x64
8010312: 2219 movs r2, #25
8010314: 496c ldr r1, [pc, #432] ; (80104c8 <ReadChannel+0x37c>)
8010316: 486d ldr r0, [pc, #436] ; (80104cc <ReadChannel+0x380>)
8010318: f004 fcba bl 8014c90 <HAL_UART_Receive>
801031c: 4603 mov r3, r0
801031e: 2b00 cmp r3, #0
8010320: f040 80c1 bne.w 80104a6 <ReadChannel+0x35a>
{
crc = (uint16_t) ((rx[24]) << 8 | rx[23]);
8010324: 4b68 ldr r3, [pc, #416] ; (80104c8 <ReadChannel+0x37c>)
8010326: 7e1b ldrb r3, [r3, #24]
8010328: 021b lsls r3, r3, #8
801032a: b21a sxth r2, r3
801032c: 4b66 ldr r3, [pc, #408] ; (80104c8 <ReadChannel+0x37c>)
801032e: 7ddb ldrb r3, [r3, #23]
8010330: b21b sxth r3, r3
8010332: 4313 orrs r3, r2
8010334: b21b sxth r3, r3
8010336: 823b strh r3, [r7, #16]
if(crc == Crc16_RX(23))
8010338: 2017 movs r0, #23
801033a: f7ff fd71 bl 800fe20 <Crc16_RX>
801033e: 4603 mov r3, r0
8010340: 461a mov r2, r3
8010342: 8a3b ldrh r3, [r7, #16]
8010344: 4293 cmp r3, r2
8010346: f040 80ab bne.w 80104a0 <ReadChannel+0x354>
{
pardata.amplif[ch].IIN = (uint16_t) ((rx[3]) << 8 | rx[4]);
801034a: 79fb ldrb r3, [r7, #7]
801034c: 4a5e ldr r2, [pc, #376] ; (80104c8 <ReadChannel+0x37c>)
801034e: 78d2 ldrb r2, [r2, #3]
8010350: 0212 lsls r2, r2, #8
8010352: b211 sxth r1, r2
8010354: 4a5c ldr r2, [pc, #368] ; (80104c8 <ReadChannel+0x37c>)
8010356: 7912 ldrb r2, [r2, #4]
8010358: b212 sxth r2, r2
801035a: 430a orrs r2, r1
801035c: b212 sxth r2, r2
801035e: b291 uxth r1, r2
8010360: 4a5b ldr r2, [pc, #364] ; (80104d0 <ReadChannel+0x384>)
8010362: 015b lsls r3, r3, #5
8010364: 4413 add r3, r2
8010366: 460a mov r2, r1
8010368: 801a strh r2, [r3, #0]
pardata.amplif[ch].IFV = (uint16_t) ((rx[5]) << 8 | rx[6]);
801036a: 79fb ldrb r3, [r7, #7]
801036c: 4a56 ldr r2, [pc, #344] ; (80104c8 <ReadChannel+0x37c>)
801036e: 7952 ldrb r2, [r2, #5]
8010370: 0212 lsls r2, r2, #8
8010372: b211 sxth r1, r2
8010374: 4a54 ldr r2, [pc, #336] ; (80104c8 <ReadChannel+0x37c>)
8010376: 7992 ldrb r2, [r2, #6]
8010378: b212 sxth r2, r2
801037a: 430a orrs r2, r1
801037c: b212 sxth r2, r2
801037e: b291 uxth r1, r2
8010380: 4a53 ldr r2, [pc, #332] ; (80104d0 <ReadChannel+0x384>)
8010382: 015b lsls r3, r3, #5
8010384: 4413 add r3, r2
8010386: 3302 adds r3, #2
8010388: 460a mov r2, r1
801038a: 801a strh r2, [r3, #0]
pardata.amplif[ch].IFN = (uint16_t) ((rx[7]) << 8 | rx[8]);
801038c: 79fb ldrb r3, [r7, #7]
801038e: 4a4e ldr r2, [pc, #312] ; (80104c8 <ReadChannel+0x37c>)
8010390: 79d2 ldrb r2, [r2, #7]
8010392: 0212 lsls r2, r2, #8
8010394: b211 sxth r1, r2
8010396: 4a4c ldr r2, [pc, #304] ; (80104c8 <ReadChannel+0x37c>)
8010398: 7a12 ldrb r2, [r2, #8]
801039a: b212 sxth r2, r2
801039c: 430a orrs r2, r1
801039e: b212 sxth r2, r2
80103a0: b291 uxth r1, r2
80103a2: 4a4b ldr r2, [pc, #300] ; (80104d0 <ReadChannel+0x384>)
80103a4: 015b lsls r3, r3, #5
80103a6: 4413 add r3, r2
80103a8: 3304 adds r3, #4
80103aa: 460a mov r2, r1
80103ac: 801a strh r2, [r3, #0]
pardata.amplif[ch].IKU = (uint16_t) ((rx[9]) << 8 | rx[10]);
80103ae: 79fb ldrb r3, [r7, #7]
80103b0: 4a45 ldr r2, [pc, #276] ; (80104c8 <ReadChannel+0x37c>)
80103b2: 7a52 ldrb r2, [r2, #9]
80103b4: 0212 lsls r2, r2, #8
80103b6: b211 sxth r1, r2
80103b8: 4a43 ldr r2, [pc, #268] ; (80104c8 <ReadChannel+0x37c>)
80103ba: 7a92 ldrb r2, [r2, #10]
80103bc: b212 sxth r2, r2
80103be: 430a orrs r2, r1
80103c0: b212 sxth r2, r2
80103c2: b291 uxth r1, r2
80103c4: 4a42 ldr r2, [pc, #264] ; (80104d0 <ReadChannel+0x384>)
80103c6: 015b lsls r3, r3, #5
80103c8: 4413 add r3, r2
80103ca: 3306 adds r3, #6
80103cc: 460a mov r2, r1
80103ce: 801a strh r2, [r3, #0]
pardata.amplif[ch].IKE = (uint16_t) ((rx[11]) << 8 | rx[12]);
80103d0: 79fb ldrb r3, [r7, #7]
80103d2: 4a3d ldr r2, [pc, #244] ; (80104c8 <ReadChannel+0x37c>)
80103d4: 7ad2 ldrb r2, [r2, #11]
80103d6: 0212 lsls r2, r2, #8
80103d8: b211 sxth r1, r2
80103da: 4a3b ldr r2, [pc, #236] ; (80104c8 <ReadChannel+0x37c>)
80103dc: 7b12 ldrb r2, [r2, #12]
80103de: b212 sxth r2, r2
80103e0: 430a orrs r2, r1
80103e2: b212 sxth r2, r2
80103e4: b291 uxth r1, r2
80103e6: 4a3a ldr r2, [pc, #232] ; (80104d0 <ReadChannel+0x384>)
80103e8: 015b lsls r3, r3, #5
80103ea: 4413 add r3, r2
80103ec: 3308 adds r3, #8
80103ee: 460a mov r2, r1
80103f0: 801a strh r2, [r3, #0]
pardata.amplif[ch].IKD = (uint16_t) ((rx[13]) << 8 | rx[14]);
80103f2: 79fb ldrb r3, [r7, #7]
80103f4: 4a34 ldr r2, [pc, #208] ; (80104c8 <ReadChannel+0x37c>)
80103f6: 7b52 ldrb r2, [r2, #13]
80103f8: 0212 lsls r2, r2, #8
80103fa: b211 sxth r1, r2
80103fc: 4a32 ldr r2, [pc, #200] ; (80104c8 <ReadChannel+0x37c>)
80103fe: 7b92 ldrb r2, [r2, #14]
8010400: b212 sxth r2, r2
8010402: 430a orrs r2, r1
8010404: b212 sxth r2, r2
8010406: b291 uxth r1, r2
8010408: 4a31 ldr r2, [pc, #196] ; (80104d0 <ReadChannel+0x384>)
801040a: 015b lsls r3, r3, #5
801040c: 4413 add r3, r2
801040e: 330a adds r3, #10
8010410: 460a mov r2, r1
8010412: 801a strh r2, [r3, #0]
pardata.amplif[ch].IKS = (uint16_t) ((rx[15]) << 8 | rx[16]);
8010414: 79fb ldrb r3, [r7, #7]
8010416: 4a2c ldr r2, [pc, #176] ; (80104c8 <ReadChannel+0x37c>)
8010418: 7bd2 ldrb r2, [r2, #15]
801041a: 0212 lsls r2, r2, #8
801041c: b211 sxth r1, r2
801041e: 4a2a ldr r2, [pc, #168] ; (80104c8 <ReadChannel+0x37c>)
8010420: 7c12 ldrb r2, [r2, #16]
8010422: b212 sxth r2, r2
8010424: 430a orrs r2, r1
8010426: b212 sxth r2, r2
8010428: b291 uxth r1, r2
801042a: 4a29 ldr r2, [pc, #164] ; (80104d0 <ReadChannel+0x384>)
801042c: 015b lsls r3, r3, #5
801042e: 4413 add r3, r2
8010430: 330c adds r3, #12
8010432: 460a mov r2, r1
8010434: 801a strh r2, [r3, #0]
pardata.amplif[ch].IPZ = (uint16_t) ((rx[17]) << 8 | rx[18]);
8010436: 79fb ldrb r3, [r7, #7]
8010438: 4a23 ldr r2, [pc, #140] ; (80104c8 <ReadChannel+0x37c>)
801043a: 7c52 ldrb r2, [r2, #17]
801043c: 0212 lsls r2, r2, #8
801043e: b211 sxth r1, r2
8010440: 4a21 ldr r2, [pc, #132] ; (80104c8 <ReadChannel+0x37c>)
8010442: 7c92 ldrb r2, [r2, #18]
8010444: b212 sxth r2, r2
8010446: 430a orrs r2, r1
8010448: b212 sxth r2, r2
801044a: b291 uxth r1, r2
801044c: 4a20 ldr r2, [pc, #128] ; (80104d0 <ReadChannel+0x384>)
801044e: 015b lsls r3, r3, #5
8010450: 4413 add r3, r2
8010452: 330e adds r3, #14
8010454: 460a mov r2, r1
8010456: 801a strh r2, [r3, #0]
pardata.amplif[ch].OPZ = (uint16_t) ((rx[19]) << 8 | rx[20]);
8010458: 79fb ldrb r3, [r7, #7]
801045a: 4a1b ldr r2, [pc, #108] ; (80104c8 <ReadChannel+0x37c>)
801045c: 7cd2 ldrb r2, [r2, #19]
801045e: 0212 lsls r2, r2, #8
8010460: b211 sxth r1, r2
8010462: 4a19 ldr r2, [pc, #100] ; (80104c8 <ReadChannel+0x37c>)
8010464: 7d12 ldrb r2, [r2, #20]
8010466: b212 sxth r2, r2
8010468: 430a orrs r2, r1
801046a: b212 sxth r2, r2
801046c: b291 uxth r1, r2
801046e: 4a18 ldr r2, [pc, #96] ; (80104d0 <ReadChannel+0x384>)
8010470: 015b lsls r3, r3, #5
8010472: 4413 add r3, r2
8010474: 3310 adds r3, #16
8010476: 460a mov r2, r1
8010478: 801a strh r2, [r3, #0]
pardata.amplif[ch].VAL = (uint16_t) ((rx[21]) << 8 | rx[22]);
801047a: 79fb ldrb r3, [r7, #7]
801047c: 4a12 ldr r2, [pc, #72] ; (80104c8 <ReadChannel+0x37c>)
801047e: 7d52 ldrb r2, [r2, #21]
8010480: 0212 lsls r2, r2, #8
8010482: b211 sxth r1, r2
8010484: 4a10 ldr r2, [pc, #64] ; (80104c8 <ReadChannel+0x37c>)
8010486: 7d92 ldrb r2, [r2, #22]
8010488: b212 sxth r2, r2
801048a: 430a orrs r2, r1
801048c: b212 sxth r2, r2
801048e: b291 uxth r1, r2
8010490: 4a0f ldr r2, [pc, #60] ; (80104d0 <ReadChannel+0x384>)
8010492: 015b lsls r3, r3, #5
8010494: 4413 add r3, r2
8010496: 3312 adds r3, #18
8010498: 460a mov r2, r1
801049a: 801a strh r2, [r3, #0]
return 0;
801049c: 2300 movs r3, #0
801049e: e00d b.n 80104bc <ReadChannel+0x370>
}
else
{
return (-1);
80104a0: f04f 33ff mov.w r3, #4294967295
80104a4: e00a b.n 80104bc <ReadChannel+0x370>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
80104a6: 2200 movs r2, #0
80104a8: f44f 7100 mov.w r1, #512 ; 0x200
80104ac: 4805 ldr r0, [pc, #20] ; (80104c4 <ReadChannel+0x378>)
80104ae: f002 fb91 bl 8012bd4 <HAL_GPIO_WritePin>
return (-1);
80104b2: f04f 33ff mov.w r3, #4294967295
80104b6: e001 b.n 80104bc <ReadChannel+0x370>
}
}
return res;
80104b8: f997 3017 ldrsb.w r3, [r7, #23]
}
80104bc: 4618 mov r0, r3
80104be: 3718 adds r7, #24
80104c0: 46bd mov sp, r7
80104c2: bd80 pop {r7, pc}
80104c4: 40021400 .word 0x40021400
80104c8: 2006c4bc .word 0x2006c4bc
80104cc: 2006c434 .word 0x2006c434
80104d0: 2006bca8 .word 0x2006bca8
080104d4 <WriteChannel>:
int8_t WriteChannel(uint8_t ch)
{
80104d4: b580 push {r7, lr}
80104d6: b086 sub sp, #24
80104d8: af00 add r7, sp, #0
80104da: 4603 mov r3, r0
80104dc: 71fb strb r3, [r7, #7]
int8_t res = -1;
80104de: 23ff movs r3, #255 ; 0xff
80104e0: 75fb strb r3, [r7, #23]
uint16_t i, len = 0;
80104e2: 2300 movs r3, #0
80104e4: 82bb strh r3, [r7, #20]
uint16_t crc;
__IO uint32_t timeout;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
80104e6: 4ba8 ldr r3, [pc, #672] ; (8010788 <WriteChannel+0x2b4>)
80104e8: 681b ldr r3, [r3, #0]
80104ea: 69db ldr r3, [r3, #28]
80104ec: f003 0308 and.w r3, r3, #8
80104f0: 2b08 cmp r3, #8
80104f2: d103 bne.n 80104fc <WriteChannel+0x28>
__HAL_UART_CLEAR_OREFLAG(&huart7);
80104f4: 4ba4 ldr r3, [pc, #656] ; (8010788 <WriteChannel+0x2b4>)
80104f6: 681b ldr r3, [r3, #0]
80104f8: 2208 movs r2, #8
80104fa: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
80104fc: 4ba2 ldr r3, [pc, #648] ; (8010788 <WriteChannel+0x2b4>)
80104fe: 681b ldr r3, [r3, #0]
8010500: 69db ldr r3, [r3, #28]
8010502: f003 0301 and.w r3, r3, #1
8010506: 2b01 cmp r3, #1
8010508: d103 bne.n 8010512 <WriteChannel+0x3e>
__HAL_UART_CLEAR_PEFLAG(&huart7);
801050a: 4b9f ldr r3, [pc, #636] ; (8010788 <WriteChannel+0x2b4>)
801050c: 681b ldr r3, [r3, #0]
801050e: 2201 movs r2, #1
8010510: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
8010512: 4b9d ldr r3, [pc, #628] ; (8010788 <WriteChannel+0x2b4>)
8010514: 681b ldr r3, [r3, #0]
8010516: 69db ldr r3, [r3, #28]
8010518: f003 0302 and.w r3, r3, #2
801051c: 2b02 cmp r3, #2
801051e: d103 bne.n 8010528 <WriteChannel+0x54>
__HAL_UART_CLEAR_FEFLAG(&huart7);
8010520: 4b99 ldr r3, [pc, #612] ; (8010788 <WriteChannel+0x2b4>)
8010522: 681b ldr r3, [r3, #0]
8010524: 2202 movs r2, #2
8010526: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
8010528: 4b97 ldr r3, [pc, #604] ; (8010788 <WriteChannel+0x2b4>)
801052a: 681b ldr r3, [r3, #0]
801052c: 69db ldr r3, [r3, #28]
801052e: f003 0304 and.w r3, r3, #4
8010532: 2b04 cmp r3, #4
8010534: d103 bne.n 801053e <WriteChannel+0x6a>
__HAL_UART_CLEAR_NEFLAG(&huart7);
8010536: 4b94 ldr r3, [pc, #592] ; (8010788 <WriteChannel+0x2b4>)
8010538: 681b ldr r3, [r3, #0]
801053a: 2204 movs r2, #4
801053c: 621a str r2, [r3, #32]
HAL_Delay(20);
801053e: 2014 movs r0, #20
8010540: f001 f81c bl 801157c <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
8010544: 2200 movs r2, #0
8010546: 4b91 ldr r3, [pc, #580] ; (801078c <WriteChannel+0x2b8>)
8010548: 4611 mov r1, r2
801054a: 7019 strb r1, [r3, #0]
801054c: 4b90 ldr r3, [pc, #576] ; (8010790 <WriteChannel+0x2bc>)
801054e: 4611 mov r1, r2
8010550: 7019 strb r1, [r3, #0]
8010552: 4b90 ldr r3, [pc, #576] ; (8010794 <WriteChannel+0x2c0>)
8010554: 701a strb r2, [r3, #0]
len = 0;
8010556: 2300 movs r3, #0
8010558: 82bb strh r3, [r7, #20]
memset((void *) &rx, 0, sizeof(rx));
801055a: f44f 7280 mov.w r2, #256 ; 0x100
801055e: 2100 movs r1, #0
8010560: 488d ldr r0, [pc, #564] ; (8010798 <WriteChannel+0x2c4>)
8010562: f005 ff7e bl 8016462 <memset>
iobuf[len++] = ch + 1;
8010566: 8abb ldrh r3, [r7, #20]
8010568: 1c5a adds r2, r3, #1
801056a: 82ba strh r2, [r7, #20]
801056c: 461a mov r2, r3
801056e: 79fb ldrb r3, [r7, #7]
8010570: 3301 adds r3, #1
8010572: b2d9 uxtb r1, r3
8010574: 4b89 ldr r3, [pc, #548] ; (801079c <WriteChannel+0x2c8>)
8010576: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x10;
8010578: 8abb ldrh r3, [r7, #20]
801057a: 1c5a adds r2, r3, #1
801057c: 82ba strh r2, [r7, #20]
801057e: 461a mov r2, r3
8010580: 4b86 ldr r3, [pc, #536] ; (801079c <WriteChannel+0x2c8>)
8010582: 2110 movs r1, #16
8010584: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(5001);
8010586: 8abb ldrh r3, [r7, #20]
8010588: 1c5a adds r2, r3, #1
801058a: 82ba strh r2, [r7, #20]
801058c: 461a mov r2, r3
801058e: 4b83 ldr r3, [pc, #524] ; (801079c <WriteChannel+0x2c8>)
8010590: 2113 movs r1, #19
8010592: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(5001);
8010594: 8abb ldrh r3, [r7, #20]
8010596: 1c5a adds r2, r3, #1
8010598: 82ba strh r2, [r7, #20]
801059a: 461a mov r2, r3
801059c: 4b7f ldr r3, [pc, #508] ; (801079c <WriteChannel+0x2c8>)
801059e: 2189 movs r1, #137 ; 0x89
80105a0: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
80105a2: 8abb ldrh r3, [r7, #20]
80105a4: 1c5a adds r2, r3, #1
80105a6: 82ba strh r2, [r7, #20]
80105a8: 461a mov r2, r3
80105aa: 4b7c ldr r3, [pc, #496] ; (801079c <WriteChannel+0x2c8>)
80105ac: 2100 movs r1, #0
80105ae: 5499 strb r1, [r3, r2]
iobuf[len++] = 10;
80105b0: 8abb ldrh r3, [r7, #20]
80105b2: 1c5a adds r2, r3, #1
80105b4: 82ba strh r2, [r7, #20]
80105b6: 461a mov r2, r3
80105b8: 4b78 ldr r3, [pc, #480] ; (801079c <WriteChannel+0x2c8>)
80105ba: 210a movs r1, #10
80105bc: 5499 strb r1, [r3, r2]
iobuf[len++] = 20;
80105be: 8abb ldrh r3, [r7, #20]
80105c0: 1c5a adds r2, r3, #1
80105c2: 82ba strh r2, [r7, #20]
80105c4: 461a mov r2, r3
80105c6: 4b75 ldr r3, [pc, #468] ; (801079c <WriteChannel+0x2c8>)
80105c8: 2114 movs r1, #20
80105ca: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
80105cc: 8abb ldrh r3, [r7, #20]
80105ce: 1c5a adds r2, r3, #1
80105d0: 82ba strh r2, [r7, #20]
80105d2: 461a mov r2, r3
80105d4: 4b71 ldr r3, [pc, #452] ; (801079c <WriteChannel+0x2c8>)
80105d6: 2100 movs r1, #0
80105d8: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IIN;
80105da: 8abb ldrh r3, [r7, #20]
80105dc: 1c5a adds r2, r3, #1
80105de: 82ba strh r2, [r7, #20]
80105e0: 4619 mov r1, r3
80105e2: 79fb ldrb r3, [r7, #7]
80105e4: 4a6e ldr r2, [pc, #440] ; (80107a0 <WriteChannel+0x2cc>)
80105e6: 015b lsls r3, r3, #5
80105e8: 4413 add r3, r2
80105ea: 881b ldrh r3, [r3, #0]
80105ec: b29b uxth r3, r3
80105ee: b2da uxtb r2, r3
80105f0: 4b6a ldr r3, [pc, #424] ; (801079c <WriteChannel+0x2c8>)
80105f2: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
80105f4: 8abb ldrh r3, [r7, #20]
80105f6: 1c5a adds r2, r3, #1
80105f8: 82ba strh r2, [r7, #20]
80105fa: 461a mov r2, r3
80105fc: 4b67 ldr r3, [pc, #412] ; (801079c <WriteChannel+0x2c8>)
80105fe: 2100 movs r1, #0
8010600: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IFV;
8010602: 8abb ldrh r3, [r7, #20]
8010604: 1c5a adds r2, r3, #1
8010606: 82ba strh r2, [r7, #20]
8010608: 4619 mov r1, r3
801060a: 79fb ldrb r3, [r7, #7]
801060c: 4a64 ldr r2, [pc, #400] ; (80107a0 <WriteChannel+0x2cc>)
801060e: 015b lsls r3, r3, #5
8010610: 4413 add r3, r2
8010612: 3302 adds r3, #2
8010614: 881b ldrh r3, [r3, #0]
8010616: b29b uxth r3, r3
8010618: b2da uxtb r2, r3
801061a: 4b60 ldr r3, [pc, #384] ; (801079c <WriteChannel+0x2c8>)
801061c: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
801061e: 8abb ldrh r3, [r7, #20]
8010620: 1c5a adds r2, r3, #1
8010622: 82ba strh r2, [r7, #20]
8010624: 461a mov r2, r3
8010626: 4b5d ldr r3, [pc, #372] ; (801079c <WriteChannel+0x2c8>)
8010628: 2100 movs r1, #0
801062a: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IFN;
801062c: 8abb ldrh r3, [r7, #20]
801062e: 1c5a adds r2, r3, #1
8010630: 82ba strh r2, [r7, #20]
8010632: 4619 mov r1, r3
8010634: 79fb ldrb r3, [r7, #7]
8010636: 4a5a ldr r2, [pc, #360] ; (80107a0 <WriteChannel+0x2cc>)
8010638: 015b lsls r3, r3, #5
801063a: 4413 add r3, r2
801063c: 3304 adds r3, #4
801063e: 881b ldrh r3, [r3, #0]
8010640: b29b uxth r3, r3
8010642: b2da uxtb r2, r3
8010644: 4b55 ldr r3, [pc, #340] ; (801079c <WriteChannel+0x2c8>)
8010646: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
8010648: 8abb ldrh r3, [r7, #20]
801064a: 1c5a adds r2, r3, #1
801064c: 82ba strh r2, [r7, #20]
801064e: 461a mov r2, r3
8010650: 4b52 ldr r3, [pc, #328] ; (801079c <WriteChannel+0x2c8>)
8010652: 2100 movs r1, #0
8010654: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IKU;
8010656: 8abb ldrh r3, [r7, #20]
8010658: 1c5a adds r2, r3, #1
801065a: 82ba strh r2, [r7, #20]
801065c: 4619 mov r1, r3
801065e: 79fb ldrb r3, [r7, #7]
8010660: 4a4f ldr r2, [pc, #316] ; (80107a0 <WriteChannel+0x2cc>)
8010662: 015b lsls r3, r3, #5
8010664: 4413 add r3, r2
8010666: 3306 adds r3, #6
8010668: 881b ldrh r3, [r3, #0]
801066a: b29b uxth r3, r3
801066c: b2da uxtb r2, r3
801066e: 4b4b ldr r3, [pc, #300] ; (801079c <WriteChannel+0x2c8>)
8010670: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
8010672: 8abb ldrh r3, [r7, #20]
8010674: 1c5a adds r2, r3, #1
8010676: 82ba strh r2, [r7, #20]
8010678: 461a mov r2, r3
801067a: 4b48 ldr r3, [pc, #288] ; (801079c <WriteChannel+0x2c8>)
801067c: 2100 movs r1, #0
801067e: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IKE;
8010680: 8abb ldrh r3, [r7, #20]
8010682: 1c5a adds r2, r3, #1
8010684: 82ba strh r2, [r7, #20]
8010686: 4619 mov r1, r3
8010688: 79fb ldrb r3, [r7, #7]
801068a: 4a45 ldr r2, [pc, #276] ; (80107a0 <WriteChannel+0x2cc>)
801068c: 015b lsls r3, r3, #5
801068e: 4413 add r3, r2
8010690: 3308 adds r3, #8
8010692: 881b ldrh r3, [r3, #0]
8010694: b29b uxth r3, r3
8010696: b2da uxtb r2, r3
8010698: 4b40 ldr r3, [pc, #256] ; (801079c <WriteChannel+0x2c8>)
801069a: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
801069c: 8abb ldrh r3, [r7, #20]
801069e: 1c5a adds r2, r3, #1
80106a0: 82ba strh r2, [r7, #20]
80106a2: 461a mov r2, r3
80106a4: 4b3d ldr r3, [pc, #244] ; (801079c <WriteChannel+0x2c8>)
80106a6: 2100 movs r1, #0
80106a8: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IKD;
80106aa: 8abb ldrh r3, [r7, #20]
80106ac: 1c5a adds r2, r3, #1
80106ae: 82ba strh r2, [r7, #20]
80106b0: 4619 mov r1, r3
80106b2: 79fb ldrb r3, [r7, #7]
80106b4: 4a3a ldr r2, [pc, #232] ; (80107a0 <WriteChannel+0x2cc>)
80106b6: 015b lsls r3, r3, #5
80106b8: 4413 add r3, r2
80106ba: 330a adds r3, #10
80106bc: 881b ldrh r3, [r3, #0]
80106be: b29b uxth r3, r3
80106c0: b2da uxtb r2, r3
80106c2: 4b36 ldr r3, [pc, #216] ; (801079c <WriteChannel+0x2c8>)
80106c4: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
80106c6: 8abb ldrh r3, [r7, #20]
80106c8: 1c5a adds r2, r3, #1
80106ca: 82ba strh r2, [r7, #20]
80106cc: 461a mov r2, r3
80106ce: 4b33 ldr r3, [pc, #204] ; (801079c <WriteChannel+0x2c8>)
80106d0: 2100 movs r1, #0
80106d2: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IKS;
80106d4: 8abb ldrh r3, [r7, #20]
80106d6: 1c5a adds r2, r3, #1
80106d8: 82ba strh r2, [r7, #20]
80106da: 4619 mov r1, r3
80106dc: 79fb ldrb r3, [r7, #7]
80106de: 4a30 ldr r2, [pc, #192] ; (80107a0 <WriteChannel+0x2cc>)
80106e0: 015b lsls r3, r3, #5
80106e2: 4413 add r3, r2
80106e4: 330c adds r3, #12
80106e6: 881b ldrh r3, [r3, #0]
80106e8: b29b uxth r3, r3
80106ea: b2da uxtb r2, r3
80106ec: 4b2b ldr r3, [pc, #172] ; (801079c <WriteChannel+0x2c8>)
80106ee: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
80106f0: 8abb ldrh r3, [r7, #20]
80106f2: 1c5a adds r2, r3, #1
80106f4: 82ba strh r2, [r7, #20]
80106f6: 461a mov r2, r3
80106f8: 4b28 ldr r3, [pc, #160] ; (801079c <WriteChannel+0x2c8>)
80106fa: 2100 movs r1, #0
80106fc: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IPZ;
80106fe: 8abb ldrh r3, [r7, #20]
8010700: 1c5a adds r2, r3, #1
8010702: 82ba strh r2, [r7, #20]
8010704: 4619 mov r1, r3
8010706: 79fb ldrb r3, [r7, #7]
8010708: 4a25 ldr r2, [pc, #148] ; (80107a0 <WriteChannel+0x2cc>)
801070a: 015b lsls r3, r3, #5
801070c: 4413 add r3, r2
801070e: 330e adds r3, #14
8010710: 881b ldrh r3, [r3, #0]
8010712: b29b uxth r3, r3
8010714: b2da uxtb r2, r3
8010716: 4b21 ldr r3, [pc, #132] ; (801079c <WriteChannel+0x2c8>)
8010718: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
801071a: 8abb ldrh r3, [r7, #20]
801071c: 1c5a adds r2, r3, #1
801071e: 82ba strh r2, [r7, #20]
8010720: 461a mov r2, r3
8010722: 4b1e ldr r3, [pc, #120] ; (801079c <WriteChannel+0x2c8>)
8010724: 2100 movs r1, #0
8010726: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].OPZ;
8010728: 8abb ldrh r3, [r7, #20]
801072a: 1c5a adds r2, r3, #1
801072c: 82ba strh r2, [r7, #20]
801072e: 4619 mov r1, r3
8010730: 79fb ldrb r3, [r7, #7]
8010732: 4a1b ldr r2, [pc, #108] ; (80107a0 <WriteChannel+0x2cc>)
8010734: 015b lsls r3, r3, #5
8010736: 4413 add r3, r2
8010738: 3310 adds r3, #16
801073a: 881b ldrh r3, [r3, #0]
801073c: b29b uxth r3, r3
801073e: b2da uxtb r2, r3
8010740: 4b16 ldr r3, [pc, #88] ; (801079c <WriteChannel+0x2c8>)
8010742: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
8010744: 8abb ldrh r3, [r7, #20]
8010746: 1c5a adds r2, r3, #1
8010748: 82ba strh r2, [r7, #20]
801074a: 461a mov r2, r3
801074c: 4b13 ldr r3, [pc, #76] ; (801079c <WriteChannel+0x2c8>)
801074e: 2100 movs r1, #0
8010750: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].VAL;
8010752: 8abb ldrh r3, [r7, #20]
8010754: 1c5a adds r2, r3, #1
8010756: 82ba strh r2, [r7, #20]
8010758: 4619 mov r1, r3
801075a: 79fb ldrb r3, [r7, #7]
801075c: 4a10 ldr r2, [pc, #64] ; (80107a0 <WriteChannel+0x2cc>)
801075e: 015b lsls r3, r3, #5
8010760: 4413 add r3, r2
8010762: 3312 adds r3, #18
8010764: 881b ldrh r3, [r3, #0]
8010766: b29b uxth r3, r3
8010768: b2da uxtb r2, r3
801076a: 4b0c ldr r3, [pc, #48] ; (801079c <WriteChannel+0x2c8>)
801076c: 545a strb r2, [r3, r1]
crc = Crc16(len);
801076e: 8abb ldrh r3, [r7, #20]
8010770: 4618 mov r0, r3
8010772: f7ff fb29 bl 800fdc8 <Crc16>
8010776: 4603 mov r3, r0
8010778: 827b strh r3, [r7, #18]
iobuf[len++] = LO(crc);
801077a: 8abb ldrh r3, [r7, #20]
801077c: 1c5a adds r2, r3, #1
801077e: 82ba strh r2, [r7, #20]
8010780: 461a mov r2, r3
8010782: 8a7b ldrh r3, [r7, #18]
8010784: b2d9 uxtb r1, r3
8010786: e00d b.n 80107a4 <WriteChannel+0x2d0>
8010788: 2006c434 .word 0x2006c434
801078c: 2006ba91 .word 0x2006ba91
8010790: 2006ba93 .word 0x2006ba93
8010794: 2006ba92 .word 0x2006ba92
8010798: 2006c4bc .word 0x2006c4bc
801079c: 2006c5c4 .word 0x2006c5c4
80107a0: 2006bca8 .word 0x2006bca8
80107a4: 4b44 ldr r3, [pc, #272] ; (80108b8 <WriteChannel+0x3e4>)
80107a6: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
80107a8: 8abb ldrh r3, [r7, #20]
80107aa: 1c5a adds r2, r3, #1
80107ac: 82ba strh r2, [r7, #20]
80107ae: 461a mov r2, r3
80107b0: 8a7b ldrh r3, [r7, #18]
80107b2: 0a1b lsrs r3, r3, #8
80107b4: b29b uxth r3, r3
80107b6: b2d9 uxtb r1, r3
80107b8: 4b3f ldr r3, [pc, #252] ; (80108b8 <WriteChannel+0x3e4>)
80107ba: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
80107bc: f000 fed2 bl 8011564 <HAL_GetTick>
80107c0: 4603 mov r3, r0
80107c2: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
80107c4: 2201 movs r2, #1
80107c6: f44f 7100 mov.w r1, #512 ; 0x200
80107ca: 483c ldr r0, [pc, #240] ; (80108bc <WriteChannel+0x3e8>)
80107cc: f002 fa02 bl 8012bd4 <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
80107d0: 8abb ldrh r3, [r7, #20]
80107d2: 461a mov r2, r3
80107d4: 4938 ldr r1, [pc, #224] ; (80108b8 <WriteChannel+0x3e4>)
80107d6: 483a ldr r0, [pc, #232] ; (80108c0 <WriteChannel+0x3ec>)
80107d8: f004 fb2a bl 8014e30 <HAL_UART_Transmit_IT>
80107dc: 4603 mov r3, r0
80107de: 2b00 cmp r3, #0
80107e0: d163 bne.n 80108aa <WriteChannel+0x3d6>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 200));
80107e2: bf00 nop
80107e4: 4b37 ldr r3, [pc, #220] ; (80108c4 <WriteChannel+0x3f0>)
80107e6: 781b ldrb r3, [r3, #0]
80107e8: b2db uxtb r3, r3
80107ea: f083 0301 eor.w r3, r3, #1
80107ee: b2db uxtb r3, r3
80107f0: 2b00 cmp r3, #0
80107f2: d006 beq.n 8010802 <WriteChannel+0x32e>
80107f4: f000 feb6 bl 8011564 <HAL_GetTick>
80107f8: 4602 mov r2, r0
80107fa: 68fb ldr r3, [r7, #12]
80107fc: 1ad3 subs r3, r2, r3
80107fe: 2bc7 cmp r3, #199 ; 0xc7
8010800: d9f0 bls.n 80107e4 <WriteChannel+0x310>
if(!TX_OK)
8010802: 4b30 ldr r3, [pc, #192] ; (80108c4 <WriteChannel+0x3f0>)
8010804: 781b ldrb r3, [r3, #0]
8010806: b2db uxtb r3, r3
8010808: f083 0301 eor.w r3, r3, #1
801080c: b2db uxtb r3, r3
801080e: 2b00 cmp r3, #0
8010810: d00b beq.n 801082a <WriteChannel+0x356>
{
HAL_UART_Abort_IT(&huart7);
8010812: 482b ldr r0, [pc, #172] ; (80108c0 <WriteChannel+0x3ec>)
8010814: f004 fb7a bl 8014f0c <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010818: 2200 movs r2, #0
801081a: f44f 7100 mov.w r1, #512 ; 0x200
801081e: 4827 ldr r0, [pc, #156] ; (80108bc <WriteChannel+0x3e8>)
8010820: f002 f9d8 bl 8012bd4 <HAL_GPIO_WritePin>
return (-1);
8010824: f04f 33ff mov.w r3, #4294967295
8010828: e041 b.n 80108ae <WriteChannel+0x3da>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
801082a: 2200 movs r2, #0
801082c: f44f 7100 mov.w r1, #512 ; 0x200
8010830: 4822 ldr r0, [pc, #136] ; (80108bc <WriteChannel+0x3e8>)
8010832: f002 f9cf bl 8012bd4 <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
8010836: 2364 movs r3, #100 ; 0x64
8010838: 2201 movs r2, #1
801083a: 4923 ldr r1, [pc, #140] ; (80108c8 <WriteChannel+0x3f4>)
801083c: 4820 ldr r0, [pc, #128] ; (80108c0 <WriteChannel+0x3ec>)
801083e: f004 fa27 bl 8014c90 <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK)
8010842: f44f 73fa mov.w r3, #500 ; 0x1f4
8010846: 2208 movs r2, #8
8010848: 491f ldr r1, [pc, #124] ; (80108c8 <WriteChannel+0x3f4>)
801084a: 481d ldr r0, [pc, #116] ; (80108c0 <WriteChannel+0x3ec>)
801084c: f004 fa20 bl 8014c90 <HAL_UART_Receive>
8010850: 4603 mov r3, r0
8010852: 2b00 cmp r3, #0
8010854: d120 bne.n 8010898 <WriteChannel+0x3c4>
{
crc = (uint16_t) ((rx[7]) << 8 | rx[6]);
8010856: 4b1c ldr r3, [pc, #112] ; (80108c8 <WriteChannel+0x3f4>)
8010858: 79db ldrb r3, [r3, #7]
801085a: 021b lsls r3, r3, #8
801085c: b21a sxth r2, r3
801085e: 4b1a ldr r3, [pc, #104] ; (80108c8 <WriteChannel+0x3f4>)
8010860: 799b ldrb r3, [r3, #6]
8010862: b21b sxth r3, r3
8010864: 4313 orrs r3, r2
8010866: b21b sxth r3, r3
8010868: 827b strh r3, [r7, #18]
if(crc == Crc16_RX(6))
801086a: 2006 movs r0, #6
801086c: f7ff fad8 bl 800fe20 <Crc16_RX>
8010870: 4603 mov r3, r0
8010872: 461a mov r2, r3
8010874: 8a7b ldrh r3, [r7, #18]
8010876: 4293 cmp r3, r2
8010878: d10b bne.n 8010892 <WriteChannel+0x3be>
{
if(rx[0] == (ch + 1))
801087a: 4b13 ldr r3, [pc, #76] ; (80108c8 <WriteChannel+0x3f4>)
801087c: 781b ldrb r3, [r3, #0]
801087e: 461a mov r2, r3
8010880: 79fb ldrb r3, [r7, #7]
8010882: 3301 adds r3, #1
8010884: 429a cmp r2, r3
8010886: d101 bne.n 801088c <WriteChannel+0x3b8>
return 0;
8010888: 2300 movs r3, #0
801088a: e010 b.n 80108ae <WriteChannel+0x3da>
else return (-1);
801088c: f04f 33ff mov.w r3, #4294967295
8010890: e00d b.n 80108ae <WriteChannel+0x3da>
}
else
{
return (-1);
8010892: f04f 33ff mov.w r3, #4294967295
8010896: e00a b.n 80108ae <WriteChannel+0x3da>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010898: 2200 movs r2, #0
801089a: f44f 7100 mov.w r1, #512 ; 0x200
801089e: 4807 ldr r0, [pc, #28] ; (80108bc <WriteChannel+0x3e8>)
80108a0: f002 f998 bl 8012bd4 <HAL_GPIO_WritePin>
return (-1);
80108a4: f04f 33ff mov.w r3, #4294967295
80108a8: e001 b.n 80108ae <WriteChannel+0x3da>
}
}
return res;
80108aa: f997 3017 ldrsb.w r3, [r7, #23]
}
80108ae: 4618 mov r0, r3
80108b0: 3718 adds r7, #24
80108b2: 46bd mov sp, r7
80108b4: bd80 pop {r7, pc}
80108b6: bf00 nop
80108b8: 2006c5c4 .word 0x2006c5c4
80108bc: 40021400 .word 0x40021400
80108c0: 2006c434 .word 0x2006c434
80108c4: 2006ba92 .word 0x2006ba92
80108c8: 2006c4bc .word 0x2006c4bc
080108cc <ReadChannelSens>:
int8_t ReadChannelSens(uint8_t ch)
{
80108cc: b580 push {r7, lr}
80108ce: b086 sub sp, #24
80108d0: af00 add r7, sp, #0
80108d2: 4603 mov r3, r0
80108d4: 71fb strb r3, [r7, #7]
int8_t res = -1;
80108d6: 23ff movs r3, #255 ; 0xff
80108d8: 75fb strb r3, [r7, #23]
uint16_t i, len = 0, cnt = 0;
80108da: 2300 movs r3, #0
80108dc: 82bb strh r3, [r7, #20]
80108de: 2300 movs r3, #0
80108e0: 827b strh r3, [r7, #18]
uint16_t crc;
__IO uint32_t timeout;
sfloat f;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
80108e2: 4b8a ldr r3, [pc, #552] ; (8010b0c <ReadChannelSens+0x240>)
80108e4: 681b ldr r3, [r3, #0]
80108e6: 69db ldr r3, [r3, #28]
80108e8: f003 0308 and.w r3, r3, #8
80108ec: 2b08 cmp r3, #8
80108ee: d103 bne.n 80108f8 <ReadChannelSens+0x2c>
__HAL_UART_CLEAR_OREFLAG(&huart7);
80108f0: 4b86 ldr r3, [pc, #536] ; (8010b0c <ReadChannelSens+0x240>)
80108f2: 681b ldr r3, [r3, #0]
80108f4: 2208 movs r2, #8
80108f6: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
80108f8: 4b84 ldr r3, [pc, #528] ; (8010b0c <ReadChannelSens+0x240>)
80108fa: 681b ldr r3, [r3, #0]
80108fc: 69db ldr r3, [r3, #28]
80108fe: f003 0301 and.w r3, r3, #1
8010902: 2b01 cmp r3, #1
8010904: d103 bne.n 801090e <ReadChannelSens+0x42>
__HAL_UART_CLEAR_PEFLAG(&huart7);
8010906: 4b81 ldr r3, [pc, #516] ; (8010b0c <ReadChannelSens+0x240>)
8010908: 681b ldr r3, [r3, #0]
801090a: 2201 movs r2, #1
801090c: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
801090e: 4b7f ldr r3, [pc, #508] ; (8010b0c <ReadChannelSens+0x240>)
8010910: 681b ldr r3, [r3, #0]
8010912: 69db ldr r3, [r3, #28]
8010914: f003 0302 and.w r3, r3, #2
8010918: 2b02 cmp r3, #2
801091a: d103 bne.n 8010924 <ReadChannelSens+0x58>
__HAL_UART_CLEAR_FEFLAG(&huart7);
801091c: 4b7b ldr r3, [pc, #492] ; (8010b0c <ReadChannelSens+0x240>)
801091e: 681b ldr r3, [r3, #0]
8010920: 2202 movs r2, #2
8010922: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
8010924: 4b79 ldr r3, [pc, #484] ; (8010b0c <ReadChannelSens+0x240>)
8010926: 681b ldr r3, [r3, #0]
8010928: 69db ldr r3, [r3, #28]
801092a: f003 0304 and.w r3, r3, #4
801092e: 2b04 cmp r3, #4
8010930: d103 bne.n 801093a <ReadChannelSens+0x6e>
__HAL_UART_CLEAR_NEFLAG(&huart7);
8010932: 4b76 ldr r3, [pc, #472] ; (8010b0c <ReadChannelSens+0x240>)
8010934: 681b ldr r3, [r3, #0]
8010936: 2204 movs r2, #4
8010938: 621a str r2, [r3, #32]
HAL_Delay(20);
801093a: 2014 movs r0, #20
801093c: f000 fe1e bl 801157c <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
8010940: 2200 movs r2, #0
8010942: 4b73 ldr r3, [pc, #460] ; (8010b10 <ReadChannelSens+0x244>)
8010944: 4611 mov r1, r2
8010946: 7019 strb r1, [r3, #0]
8010948: 4b72 ldr r3, [pc, #456] ; (8010b14 <ReadChannelSens+0x248>)
801094a: 4611 mov r1, r2
801094c: 7019 strb r1, [r3, #0]
801094e: 4b72 ldr r3, [pc, #456] ; (8010b18 <ReadChannelSens+0x24c>)
8010950: 701a strb r2, [r3, #0]
len = 0;
8010952: 2300 movs r3, #0
8010954: 82bb strh r3, [r7, #20]
memset((void *) &rx, 0, sizeof(rx));
8010956: f44f 7280 mov.w r2, #256 ; 0x100
801095a: 2100 movs r1, #0
801095c: 486f ldr r0, [pc, #444] ; (8010b1c <ReadChannelSens+0x250>)
801095e: f005 fd80 bl 8016462 <memset>
iobuf[len++] = ch + 1;
8010962: 8abb ldrh r3, [r7, #20]
8010964: 1c5a adds r2, r3, #1
8010966: 82ba strh r2, [r7, #20]
8010968: 461a mov r2, r3
801096a: 79fb ldrb r3, [r7, #7]
801096c: 3301 adds r3, #1
801096e: b2d9 uxtb r1, r3
8010970: 4b6b ldr r3, [pc, #428] ; (8010b20 <ReadChannelSens+0x254>)
8010972: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x03;
8010974: 8abb ldrh r3, [r7, #20]
8010976: 1c5a adds r2, r3, #1
8010978: 82ba strh r2, [r7, #20]
801097a: 461a mov r2, r3
801097c: 4b68 ldr r3, [pc, #416] ; (8010b20 <ReadChannelSens+0x254>)
801097e: 2103 movs r1, #3
8010980: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(7502);
8010982: 8abb ldrh r3, [r7, #20]
8010984: 1c5a adds r2, r3, #1
8010986: 82ba strh r2, [r7, #20]
8010988: 461a mov r2, r3
801098a: 4b65 ldr r3, [pc, #404] ; (8010b20 <ReadChannelSens+0x254>)
801098c: 211d movs r1, #29
801098e: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(7502);
8010990: 8abb ldrh r3, [r7, #20]
8010992: 1c5a adds r2, r3, #1
8010994: 82ba strh r2, [r7, #20]
8010996: 461a mov r2, r3
8010998: 4b61 ldr r3, [pc, #388] ; (8010b20 <ReadChannelSens+0x254>)
801099a: 214e movs r1, #78 ; 0x4e
801099c: 5499 strb r1, [r3, r2]
iobuf[len++] = 0; //
801099e: 8abb ldrh r3, [r7, #20]
80109a0: 1c5a adds r2, r3, #1
80109a2: 82ba strh r2, [r7, #20]
80109a4: 461a mov r2, r3
80109a6: 4b5e ldr r3, [pc, #376] ; (8010b20 <ReadChannelSens+0x254>)
80109a8: 2100 movs r1, #0
80109aa: 5499 strb r1, [r3, r2]
iobuf[len++] = 1; // SENS
80109ac: 8abb ldrh r3, [r7, #20]
80109ae: 1c5a adds r2, r3, #1
80109b0: 82ba strh r2, [r7, #20]
80109b2: 461a mov r2, r3
80109b4: 4b5a ldr r3, [pc, #360] ; (8010b20 <ReadChannelSens+0x254>)
80109b6: 2101 movs r1, #1
80109b8: 5499 strb r1, [r3, r2]
crc = Crc16(len);
80109ba: 8abb ldrh r3, [r7, #20]
80109bc: 4618 mov r0, r3
80109be: f7ff fa03 bl 800fdc8 <Crc16>
80109c2: 4603 mov r3, r0
80109c4: 823b strh r3, [r7, #16]
iobuf[len++] = LO(crc);
80109c6: 8abb ldrh r3, [r7, #20]
80109c8: 1c5a adds r2, r3, #1
80109ca: 82ba strh r2, [r7, #20]
80109cc: 461a mov r2, r3
80109ce: 8a3b ldrh r3, [r7, #16]
80109d0: b2d9 uxtb r1, r3
80109d2: 4b53 ldr r3, [pc, #332] ; (8010b20 <ReadChannelSens+0x254>)
80109d4: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
80109d6: 8abb ldrh r3, [r7, #20]
80109d8: 1c5a adds r2, r3, #1
80109da: 82ba strh r2, [r7, #20]
80109dc: 461a mov r2, r3
80109de: 8a3b ldrh r3, [r7, #16]
80109e0: 0a1b lsrs r3, r3, #8
80109e2: b29b uxth r3, r3
80109e4: b2d9 uxtb r1, r3
80109e6: 4b4e ldr r3, [pc, #312] ; (8010b20 <ReadChannelSens+0x254>)
80109e8: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
80109ea: f000 fdbb bl 8011564 <HAL_GetTick>
80109ee: 4603 mov r3, r0
80109f0: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
80109f2: 2201 movs r2, #1
80109f4: f44f 7100 mov.w r1, #512 ; 0x200
80109f8: 484a ldr r0, [pc, #296] ; (8010b24 <ReadChannelSens+0x258>)
80109fa: f002 f8eb bl 8012bd4 <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
80109fe: 8abb ldrh r3, [r7, #20]
8010a00: 461a mov r2, r3
8010a02: 4947 ldr r1, [pc, #284] ; (8010b20 <ReadChannelSens+0x254>)
8010a04: 4841 ldr r0, [pc, #260] ; (8010b0c <ReadChannelSens+0x240>)
8010a06: f004 fa13 bl 8014e30 <HAL_UART_Transmit_IT>
8010a0a: 4603 mov r3, r0
8010a0c: 2b00 cmp r3, #0
8010a0e: d177 bne.n 8010b00 <ReadChannelSens+0x234>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 50));
8010a10: bf00 nop
8010a12: 4b41 ldr r3, [pc, #260] ; (8010b18 <ReadChannelSens+0x24c>)
8010a14: 781b ldrb r3, [r3, #0]
8010a16: b2db uxtb r3, r3
8010a18: f083 0301 eor.w r3, r3, #1
8010a1c: b2db uxtb r3, r3
8010a1e: 2b00 cmp r3, #0
8010a20: d006 beq.n 8010a30 <ReadChannelSens+0x164>
8010a22: f000 fd9f bl 8011564 <HAL_GetTick>
8010a26: 4602 mov r2, r0
8010a28: 68fb ldr r3, [r7, #12]
8010a2a: 1ad3 subs r3, r2, r3
8010a2c: 2b31 cmp r3, #49 ; 0x31
8010a2e: d9f0 bls.n 8010a12 <ReadChannelSens+0x146>
if(!TX_OK)
8010a30: 4b39 ldr r3, [pc, #228] ; (8010b18 <ReadChannelSens+0x24c>)
8010a32: 781b ldrb r3, [r3, #0]
8010a34: b2db uxtb r3, r3
8010a36: f083 0301 eor.w r3, r3, #1
8010a3a: b2db uxtb r3, r3
8010a3c: 2b00 cmp r3, #0
8010a3e: d00b beq.n 8010a58 <ReadChannelSens+0x18c>
{
HAL_UART_Abort_IT(&huart7);
8010a40: 4832 ldr r0, [pc, #200] ; (8010b0c <ReadChannelSens+0x240>)
8010a42: f004 fa63 bl 8014f0c <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010a46: 2200 movs r2, #0
8010a48: f44f 7100 mov.w r1, #512 ; 0x200
8010a4c: 4835 ldr r0, [pc, #212] ; (8010b24 <ReadChannelSens+0x258>)
8010a4e: f002 f8c1 bl 8012bd4 <HAL_GPIO_WritePin>
return (-1);
8010a52: f04f 33ff mov.w r3, #4294967295
8010a56: e055 b.n 8010b04 <ReadChannelSens+0x238>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010a58: 2200 movs r2, #0
8010a5a: f44f 7100 mov.w r1, #512 ; 0x200
8010a5e: 4831 ldr r0, [pc, #196] ; (8010b24 <ReadChannelSens+0x258>)
8010a60: f002 f8b8 bl 8012bd4 <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
8010a64: 2364 movs r3, #100 ; 0x64
8010a66: 2201 movs r2, #1
8010a68: 492c ldr r1, [pc, #176] ; (8010b1c <ReadChannelSens+0x250>)
8010a6a: 4828 ldr r0, [pc, #160] ; (8010b0c <ReadChannelSens+0x240>)
8010a6c: f004 f910 bl 8014c90 <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 9, 100) == HAL_OK)
8010a70: 2364 movs r3, #100 ; 0x64
8010a72: 2209 movs r2, #9
8010a74: 4929 ldr r1, [pc, #164] ; (8010b1c <ReadChannelSens+0x250>)
8010a76: 4825 ldr r0, [pc, #148] ; (8010b0c <ReadChannelSens+0x240>)
8010a78: f004 f90a bl 8014c90 <HAL_UART_Receive>
8010a7c: 4603 mov r3, r0
8010a7e: 2b00 cmp r3, #0
8010a80: d135 bne.n 8010aee <ReadChannelSens+0x222>
{
crc = (uint16_t) ((rx[8]) << 8 | rx[7]);
8010a82: 4b26 ldr r3, [pc, #152] ; (8010b1c <ReadChannelSens+0x250>)
8010a84: 7a1b ldrb r3, [r3, #8]
8010a86: 021b lsls r3, r3, #8
8010a88: b21a sxth r2, r3
8010a8a: 4b24 ldr r3, [pc, #144] ; (8010b1c <ReadChannelSens+0x250>)
8010a8c: 79db ldrb r3, [r3, #7]
8010a8e: b21b sxth r3, r3
8010a90: 4313 orrs r3, r2
8010a92: b21b sxth r3, r3
8010a94: 823b strh r3, [r7, #16]
if(crc == Crc16_RX(7))
8010a96: 2007 movs r0, #7
8010a98: f7ff f9c2 bl 800fe20 <Crc16_RX>
8010a9c: 4603 mov r3, r0
8010a9e: 461a mov r2, r3
8010aa0: 8a3b ldrh r3, [r7, #16]
8010aa2: 4293 cmp r3, r2
8010aa4: d120 bne.n 8010ae8 <ReadChannelSens+0x21c>
{
f.ch[3] = rx[3];
8010aa6: 4b1d ldr r3, [pc, #116] ; (8010b1c <ReadChannelSens+0x250>)
8010aa8: 78db ldrb r3, [r3, #3]
8010aaa: 72fb strb r3, [r7, #11]
f.ch[2] = rx[4];
8010aac: 4b1b ldr r3, [pc, #108] ; (8010b1c <ReadChannelSens+0x250>)
8010aae: 791b ldrb r3, [r3, #4]
8010ab0: 72bb strb r3, [r7, #10]
f.ch[1] = rx[5];
8010ab2: 4b1a ldr r3, [pc, #104] ; (8010b1c <ReadChannelSens+0x250>)
8010ab4: 795b ldrb r3, [r3, #5]
8010ab6: 727b strb r3, [r7, #9]
f.ch[0] = rx[6];
8010ab8: 4b18 ldr r3, [pc, #96] ; (8010b1c <ReadChannelSens+0x250>)
8010aba: 799b ldrb r3, [r3, #6]
8010abc: 723b strb r3, [r7, #8]
if(f.fl < 0.0001f) {
8010abe: edd7 7a02 vldr s15, [r7, #8]
8010ac2: ed9f 7a19 vldr s14, [pc, #100] ; 8010b28 <ReadChannelSens+0x25c>
8010ac6: eef4 7ac7 vcmpe.f32 s15, s14
8010aca: eef1 fa10 vmrs APSR_nzcv, fpscr
8010ace: d502 bpl.n 8010ad6 <ReadChannelSens+0x20a>
return (-1);
8010ad0: f04f 33ff mov.w r3, #4294967295
8010ad4: e016 b.n 8010b04 <ReadChannelSens+0x238>
}
else
{
pardata.amplif[ch].SENS = f.fl;
8010ad6: 79fb ldrb r3, [r7, #7]
8010ad8: 68ba ldr r2, [r7, #8]
8010ada: 4914 ldr r1, [pc, #80] ; (8010b2c <ReadChannelSens+0x260>)
8010adc: 015b lsls r3, r3, #5
8010ade: 440b add r3, r1
8010ae0: 3318 adds r3, #24
8010ae2: 601a str r2, [r3, #0]
}
return 0;
8010ae4: 2300 movs r3, #0
8010ae6: e00d b.n 8010b04 <ReadChannelSens+0x238>
}
else
{
return (-1);
8010ae8: f04f 33ff mov.w r3, #4294967295
8010aec: e00a b.n 8010b04 <ReadChannelSens+0x238>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010aee: 2200 movs r2, #0
8010af0: f44f 7100 mov.w r1, #512 ; 0x200
8010af4: 480b ldr r0, [pc, #44] ; (8010b24 <ReadChannelSens+0x258>)
8010af6: f002 f86d bl 8012bd4 <HAL_GPIO_WritePin>
return (-1);
8010afa: f04f 33ff mov.w r3, #4294967295
8010afe: e001 b.n 8010b04 <ReadChannelSens+0x238>
}
}
return res;
8010b00: f997 3017 ldrsb.w r3, [r7, #23]
}
8010b04: 4618 mov r0, r3
8010b06: 3718 adds r7, #24
8010b08: 46bd mov sp, r7
8010b0a: bd80 pop {r7, pc}
8010b0c: 2006c434 .word 0x2006c434
8010b10: 2006ba91 .word 0x2006ba91
8010b14: 2006ba93 .word 0x2006ba93
8010b18: 2006ba92 .word 0x2006ba92
8010b1c: 2006c4bc .word 0x2006c4bc
8010b20: 2006c5c4 .word 0x2006c5c4
8010b24: 40021400 .word 0x40021400
8010b28: 38d1b717 .word 0x38d1b717
8010b2c: 2006bca8 .word 0x2006bca8
08010b30 <WriteChannelSens>:
int8_t WriteChannelSens(uint8_t ch)
{
8010b30: b580 push {r7, lr}
8010b32: b086 sub sp, #24
8010b34: af00 add r7, sp, #0
8010b36: 4603 mov r3, r0
8010b38: 71fb strb r3, [r7, #7]
int8_t res = -1;
8010b3a: 23ff movs r3, #255 ; 0xff
8010b3c: 75fb strb r3, [r7, #23]
uint16_t i, len = 0;
8010b3e: 2300 movs r3, #0
8010b40: 82bb strh r3, [r7, #20]
uint16_t crc;
__IO uint32_t timeout;
sfloat f;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
8010b42: 4b95 ldr r3, [pc, #596] ; (8010d98 <WriteChannelSens+0x268>)
8010b44: 681b ldr r3, [r3, #0]
8010b46: 69db ldr r3, [r3, #28]
8010b48: f003 0308 and.w r3, r3, #8
8010b4c: 2b08 cmp r3, #8
8010b4e: d103 bne.n 8010b58 <WriteChannelSens+0x28>
__HAL_UART_CLEAR_OREFLAG(&huart7);
8010b50: 4b91 ldr r3, [pc, #580] ; (8010d98 <WriteChannelSens+0x268>)
8010b52: 681b ldr r3, [r3, #0]
8010b54: 2208 movs r2, #8
8010b56: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
8010b58: 4b8f ldr r3, [pc, #572] ; (8010d98 <WriteChannelSens+0x268>)
8010b5a: 681b ldr r3, [r3, #0]
8010b5c: 69db ldr r3, [r3, #28]
8010b5e: f003 0301 and.w r3, r3, #1
8010b62: 2b01 cmp r3, #1
8010b64: d103 bne.n 8010b6e <WriteChannelSens+0x3e>
__HAL_UART_CLEAR_PEFLAG(&huart7);
8010b66: 4b8c ldr r3, [pc, #560] ; (8010d98 <WriteChannelSens+0x268>)
8010b68: 681b ldr r3, [r3, #0]
8010b6a: 2201 movs r2, #1
8010b6c: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
8010b6e: 4b8a ldr r3, [pc, #552] ; (8010d98 <WriteChannelSens+0x268>)
8010b70: 681b ldr r3, [r3, #0]
8010b72: 69db ldr r3, [r3, #28]
8010b74: f003 0302 and.w r3, r3, #2
8010b78: 2b02 cmp r3, #2
8010b7a: d103 bne.n 8010b84 <WriteChannelSens+0x54>
__HAL_UART_CLEAR_FEFLAG(&huart7);
8010b7c: 4b86 ldr r3, [pc, #536] ; (8010d98 <WriteChannelSens+0x268>)
8010b7e: 681b ldr r3, [r3, #0]
8010b80: 2202 movs r2, #2
8010b82: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
8010b84: 4b84 ldr r3, [pc, #528] ; (8010d98 <WriteChannelSens+0x268>)
8010b86: 681b ldr r3, [r3, #0]
8010b88: 69db ldr r3, [r3, #28]
8010b8a: f003 0304 and.w r3, r3, #4
8010b8e: 2b04 cmp r3, #4
8010b90: d103 bne.n 8010b9a <WriteChannelSens+0x6a>
__HAL_UART_CLEAR_NEFLAG(&huart7);
8010b92: 4b81 ldr r3, [pc, #516] ; (8010d98 <WriteChannelSens+0x268>)
8010b94: 681b ldr r3, [r3, #0]
8010b96: 2204 movs r2, #4
8010b98: 621a str r2, [r3, #32]
HAL_Delay(20);
8010b9a: 2014 movs r0, #20
8010b9c: f000 fcee bl 801157c <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
8010ba0: 2200 movs r2, #0
8010ba2: 4b7e ldr r3, [pc, #504] ; (8010d9c <WriteChannelSens+0x26c>)
8010ba4: 4611 mov r1, r2
8010ba6: 7019 strb r1, [r3, #0]
8010ba8: 4b7d ldr r3, [pc, #500] ; (8010da0 <WriteChannelSens+0x270>)
8010baa: 4611 mov r1, r2
8010bac: 7019 strb r1, [r3, #0]
8010bae: 4b7d ldr r3, [pc, #500] ; (8010da4 <WriteChannelSens+0x274>)
8010bb0: 701a strb r2, [r3, #0]
len = 0;
8010bb2: 2300 movs r3, #0
8010bb4: 82bb strh r3, [r7, #20]
memset((void *) &rx, 0, sizeof(rx));
8010bb6: f44f 7280 mov.w r2, #256 ; 0x100
8010bba: 2100 movs r1, #0
8010bbc: 487a ldr r0, [pc, #488] ; (8010da8 <WriteChannelSens+0x278>)
8010bbe: f005 fc50 bl 8016462 <memset>
iobuf[len++] = ch + 1;
8010bc2: 8abb ldrh r3, [r7, #20]
8010bc4: 1c5a adds r2, r3, #1
8010bc6: 82ba strh r2, [r7, #20]
8010bc8: 461a mov r2, r3
8010bca: 79fb ldrb r3, [r7, #7]
8010bcc: 3301 adds r3, #1
8010bce: b2d9 uxtb r1, r3
8010bd0: 4b76 ldr r3, [pc, #472] ; (8010dac <WriteChannelSens+0x27c>)
8010bd2: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x10;
8010bd4: 8abb ldrh r3, [r7, #20]
8010bd6: 1c5a adds r2, r3, #1
8010bd8: 82ba strh r2, [r7, #20]
8010bda: 461a mov r2, r3
8010bdc: 4b73 ldr r3, [pc, #460] ; (8010dac <WriteChannelSens+0x27c>)
8010bde: 2110 movs r1, #16
8010be0: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(7502);
8010be2: 8abb ldrh r3, [r7, #20]
8010be4: 1c5a adds r2, r3, #1
8010be6: 82ba strh r2, [r7, #20]
8010be8: 461a mov r2, r3
8010bea: 4b70 ldr r3, [pc, #448] ; (8010dac <WriteChannelSens+0x27c>)
8010bec: 211d movs r1, #29
8010bee: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(7502);
8010bf0: 8abb ldrh r3, [r7, #20]
8010bf2: 1c5a adds r2, r3, #1
8010bf4: 82ba strh r2, [r7, #20]
8010bf6: 461a mov r2, r3
8010bf8: 4b6c ldr r3, [pc, #432] ; (8010dac <WriteChannelSens+0x27c>)
8010bfa: 214e movs r1, #78 ; 0x4e
8010bfc: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
8010bfe: 8abb ldrh r3, [r7, #20]
8010c00: 1c5a adds r2, r3, #1
8010c02: 82ba strh r2, [r7, #20]
8010c04: 461a mov r2, r3
8010c06: 4b69 ldr r3, [pc, #420] ; (8010dac <WriteChannelSens+0x27c>)
8010c08: 2100 movs r1, #0
8010c0a: 5499 strb r1, [r3, r2]
iobuf[len++] = 1;
8010c0c: 8abb ldrh r3, [r7, #20]
8010c0e: 1c5a adds r2, r3, #1
8010c10: 82ba strh r2, [r7, #20]
8010c12: 461a mov r2, r3
8010c14: 4b65 ldr r3, [pc, #404] ; (8010dac <WriteChannelSens+0x27c>)
8010c16: 2101 movs r1, #1
8010c18: 5499 strb r1, [r3, r2]
iobuf[len++] = 4;
8010c1a: 8abb ldrh r3, [r7, #20]
8010c1c: 1c5a adds r2, r3, #1
8010c1e: 82ba strh r2, [r7, #20]
8010c20: 461a mov r2, r3
8010c22: 4b62 ldr r3, [pc, #392] ; (8010dac <WriteChannelSens+0x27c>)
8010c24: 2104 movs r1, #4
8010c26: 5499 strb r1, [r3, r2]
f.fl = pardata.amplif[ch].SENS;
8010c28: 79fb ldrb r3, [r7, #7]
8010c2a: 4a61 ldr r2, [pc, #388] ; (8010db0 <WriteChannelSens+0x280>)
8010c2c: 015b lsls r3, r3, #5
8010c2e: 4413 add r3, r2
8010c30: 3318 adds r3, #24
8010c32: 681b ldr r3, [r3, #0]
8010c34: 60bb str r3, [r7, #8]
iobuf[len++] = f.ch[3];
8010c36: 8abb ldrh r3, [r7, #20]
8010c38: 1c5a adds r2, r3, #1
8010c3a: 82ba strh r2, [r7, #20]
8010c3c: 461a mov r2, r3
8010c3e: 7af9 ldrb r1, [r7, #11]
8010c40: 4b5a ldr r3, [pc, #360] ; (8010dac <WriteChannelSens+0x27c>)
8010c42: 5499 strb r1, [r3, r2]
iobuf[len++] = f.ch[2];
8010c44: 8abb ldrh r3, [r7, #20]
8010c46: 1c5a adds r2, r3, #1
8010c48: 82ba strh r2, [r7, #20]
8010c4a: 461a mov r2, r3
8010c4c: 7ab9 ldrb r1, [r7, #10]
8010c4e: 4b57 ldr r3, [pc, #348] ; (8010dac <WriteChannelSens+0x27c>)
8010c50: 5499 strb r1, [r3, r2]
iobuf[len++] = f.ch[1];
8010c52: 8abb ldrh r3, [r7, #20]
8010c54: 1c5a adds r2, r3, #1
8010c56: 82ba strh r2, [r7, #20]
8010c58: 461a mov r2, r3
8010c5a: 7a79 ldrb r1, [r7, #9]
8010c5c: 4b53 ldr r3, [pc, #332] ; (8010dac <WriteChannelSens+0x27c>)
8010c5e: 5499 strb r1, [r3, r2]
iobuf[len++] = f.ch[0];
8010c60: 8abb ldrh r3, [r7, #20]
8010c62: 1c5a adds r2, r3, #1
8010c64: 82ba strh r2, [r7, #20]
8010c66: 461a mov r2, r3
8010c68: 7a39 ldrb r1, [r7, #8]
8010c6a: 4b50 ldr r3, [pc, #320] ; (8010dac <WriteChannelSens+0x27c>)
8010c6c: 5499 strb r1, [r3, r2]
crc = Crc16(len);
8010c6e: 8abb ldrh r3, [r7, #20]
8010c70: 4618 mov r0, r3
8010c72: f7ff f8a9 bl 800fdc8 <Crc16>
8010c76: 4603 mov r3, r0
8010c78: 827b strh r3, [r7, #18]
iobuf[len++] = LO(crc);
8010c7a: 8abb ldrh r3, [r7, #20]
8010c7c: 1c5a adds r2, r3, #1
8010c7e: 82ba strh r2, [r7, #20]
8010c80: 461a mov r2, r3
8010c82: 8a7b ldrh r3, [r7, #18]
8010c84: b2d9 uxtb r1, r3
8010c86: 4b49 ldr r3, [pc, #292] ; (8010dac <WriteChannelSens+0x27c>)
8010c88: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
8010c8a: 8abb ldrh r3, [r7, #20]
8010c8c: 1c5a adds r2, r3, #1
8010c8e: 82ba strh r2, [r7, #20]
8010c90: 461a mov r2, r3
8010c92: 8a7b ldrh r3, [r7, #18]
8010c94: 0a1b lsrs r3, r3, #8
8010c96: b29b uxth r3, r3
8010c98: b2d9 uxtb r1, r3
8010c9a: 4b44 ldr r3, [pc, #272] ; (8010dac <WriteChannelSens+0x27c>)
8010c9c: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
8010c9e: f000 fc61 bl 8011564 <HAL_GetTick>
8010ca2: 4603 mov r3, r0
8010ca4: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
8010ca6: 2201 movs r2, #1
8010ca8: f44f 7100 mov.w r1, #512 ; 0x200
8010cac: 4841 ldr r0, [pc, #260] ; (8010db4 <WriteChannelSens+0x284>)
8010cae: f001 ff91 bl 8012bd4 <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
8010cb2: 8abb ldrh r3, [r7, #20]
8010cb4: 461a mov r2, r3
8010cb6: 493d ldr r1, [pc, #244] ; (8010dac <WriteChannelSens+0x27c>)
8010cb8: 4837 ldr r0, [pc, #220] ; (8010d98 <WriteChannelSens+0x268>)
8010cba: f004 f8b9 bl 8014e30 <HAL_UART_Transmit_IT>
8010cbe: 4603 mov r3, r0
8010cc0: 2b00 cmp r3, #0
8010cc2: d163 bne.n 8010d8c <WriteChannelSens+0x25c>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 200));
8010cc4: bf00 nop
8010cc6: 4b37 ldr r3, [pc, #220] ; (8010da4 <WriteChannelSens+0x274>)
8010cc8: 781b ldrb r3, [r3, #0]
8010cca: b2db uxtb r3, r3
8010ccc: f083 0301 eor.w r3, r3, #1
8010cd0: b2db uxtb r3, r3
8010cd2: 2b00 cmp r3, #0
8010cd4: d006 beq.n 8010ce4 <WriteChannelSens+0x1b4>
8010cd6: f000 fc45 bl 8011564 <HAL_GetTick>
8010cda: 4602 mov r2, r0
8010cdc: 68fb ldr r3, [r7, #12]
8010cde: 1ad3 subs r3, r2, r3
8010ce0: 2bc7 cmp r3, #199 ; 0xc7
8010ce2: d9f0 bls.n 8010cc6 <WriteChannelSens+0x196>
if(!TX_OK)
8010ce4: 4b2f ldr r3, [pc, #188] ; (8010da4 <WriteChannelSens+0x274>)
8010ce6: 781b ldrb r3, [r3, #0]
8010ce8: b2db uxtb r3, r3
8010cea: f083 0301 eor.w r3, r3, #1
8010cee: b2db uxtb r3, r3
8010cf0: 2b00 cmp r3, #0
8010cf2: d00b beq.n 8010d0c <WriteChannelSens+0x1dc>
{
HAL_UART_Abort_IT(&huart7);
8010cf4: 4828 ldr r0, [pc, #160] ; (8010d98 <WriteChannelSens+0x268>)
8010cf6: f004 f909 bl 8014f0c <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010cfa: 2200 movs r2, #0
8010cfc: f44f 7100 mov.w r1, #512 ; 0x200
8010d00: 482c ldr r0, [pc, #176] ; (8010db4 <WriteChannelSens+0x284>)
8010d02: f001 ff67 bl 8012bd4 <HAL_GPIO_WritePin>
return (-1);
8010d06: f04f 33ff mov.w r3, #4294967295
8010d0a: e041 b.n 8010d90 <WriteChannelSens+0x260>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010d0c: 2200 movs r2, #0
8010d0e: f44f 7100 mov.w r1, #512 ; 0x200
8010d12: 4828 ldr r0, [pc, #160] ; (8010db4 <WriteChannelSens+0x284>)
8010d14: f001 ff5e bl 8012bd4 <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
8010d18: 2364 movs r3, #100 ; 0x64
8010d1a: 2201 movs r2, #1
8010d1c: 4922 ldr r1, [pc, #136] ; (8010da8 <WriteChannelSens+0x278>)
8010d1e: 481e ldr r0, [pc, #120] ; (8010d98 <WriteChannelSens+0x268>)
8010d20: f003 ffb6 bl 8014c90 <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK)
8010d24: f44f 73fa mov.w r3, #500 ; 0x1f4
8010d28: 2208 movs r2, #8
8010d2a: 491f ldr r1, [pc, #124] ; (8010da8 <WriteChannelSens+0x278>)
8010d2c: 481a ldr r0, [pc, #104] ; (8010d98 <WriteChannelSens+0x268>)
8010d2e: f003 ffaf bl 8014c90 <HAL_UART_Receive>
8010d32: 4603 mov r3, r0
8010d34: 2b00 cmp r3, #0
8010d36: d120 bne.n 8010d7a <WriteChannelSens+0x24a>
{
crc = (uint16_t) ((rx[7]) << 8 | rx[6]);
8010d38: 4b1b ldr r3, [pc, #108] ; (8010da8 <WriteChannelSens+0x278>)
8010d3a: 79db ldrb r3, [r3, #7]
8010d3c: 021b lsls r3, r3, #8
8010d3e: b21a sxth r2, r3
8010d40: 4b19 ldr r3, [pc, #100] ; (8010da8 <WriteChannelSens+0x278>)
8010d42: 799b ldrb r3, [r3, #6]
8010d44: b21b sxth r3, r3
8010d46: 4313 orrs r3, r2
8010d48: b21b sxth r3, r3
8010d4a: 827b strh r3, [r7, #18]
if(crc == Crc16_RX(6))
8010d4c: 2006 movs r0, #6
8010d4e: f7ff f867 bl 800fe20 <Crc16_RX>
8010d52: 4603 mov r3, r0
8010d54: 461a mov r2, r3
8010d56: 8a7b ldrh r3, [r7, #18]
8010d58: 4293 cmp r3, r2
8010d5a: d10b bne.n 8010d74 <WriteChannelSens+0x244>
{
if(rx[0] == (ch + 1))
8010d5c: 4b12 ldr r3, [pc, #72] ; (8010da8 <WriteChannelSens+0x278>)
8010d5e: 781b ldrb r3, [r3, #0]
8010d60: 461a mov r2, r3
8010d62: 79fb ldrb r3, [r7, #7]
8010d64: 3301 adds r3, #1
8010d66: 429a cmp r2, r3
8010d68: d101 bne.n 8010d6e <WriteChannelSens+0x23e>
return 0;
8010d6a: 2300 movs r3, #0
8010d6c: e010 b.n 8010d90 <WriteChannelSens+0x260>
else return (-1);
8010d6e: f04f 33ff mov.w r3, #4294967295
8010d72: e00d b.n 8010d90 <WriteChannelSens+0x260>
}
else
{
return (-1);
8010d74: f04f 33ff mov.w r3, #4294967295
8010d78: e00a b.n 8010d90 <WriteChannelSens+0x260>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010d7a: 2200 movs r2, #0
8010d7c: f44f 7100 mov.w r1, #512 ; 0x200
8010d80: 480c ldr r0, [pc, #48] ; (8010db4 <WriteChannelSens+0x284>)
8010d82: f001 ff27 bl 8012bd4 <HAL_GPIO_WritePin>
return (-1);
8010d86: f04f 33ff mov.w r3, #4294967295
8010d8a: e001 b.n 8010d90 <WriteChannelSens+0x260>
}
}
return res;
8010d8c: f997 3017 ldrsb.w r3, [r7, #23]
}
8010d90: 4618 mov r0, r3
8010d92: 3718 adds r7, #24
8010d94: 46bd mov sp, r7
8010d96: bd80 pop {r7, pc}
8010d98: 2006c434 .word 0x2006c434
8010d9c: 2006ba91 .word 0x2006ba91
8010da0: 2006ba93 .word 0x2006ba93
8010da4: 2006ba92 .word 0x2006ba92
8010da8: 2006c4bc .word 0x2006c4bc
8010dac: 2006c5c4 .word 0x2006c5c4
8010db0: 2006bca8 .word 0x2006bca8
8010db4: 40021400 .word 0x40021400
08010db8 <Calibr>:
int8_t Calibr(uint8_t ch, uint8_t on)
{
8010db8: b580 push {r7, lr}
8010dba: b086 sub sp, #24
8010dbc: af00 add r7, sp, #0
8010dbe: 4603 mov r3, r0
8010dc0: 460a mov r2, r1
8010dc2: 71fb strb r3, [r7, #7]
8010dc4: 4613 mov r3, r2
8010dc6: 71bb strb r3, [r7, #6]
int8_t res = -1;
8010dc8: 23ff movs r3, #255 ; 0xff
8010dca: 757b strb r3, [r7, #21]
uint16_t i, len = 0;
8010dcc: 2300 movs r3, #0
8010dce: 82fb strh r3, [r7, #22]
uint16_t crc;
uint16_t reg;
__IO uint32_t timeout;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
8010dd0: 4b92 ldr r3, [pc, #584] ; (801101c <Calibr+0x264>)
8010dd2: 681b ldr r3, [r3, #0]
8010dd4: 69db ldr r3, [r3, #28]
8010dd6: f003 0308 and.w r3, r3, #8
8010dda: 2b08 cmp r3, #8
8010ddc: d103 bne.n 8010de6 <Calibr+0x2e>
__HAL_UART_CLEAR_OREFLAG(&huart7);
8010dde: 4b8f ldr r3, [pc, #572] ; (801101c <Calibr+0x264>)
8010de0: 681b ldr r3, [r3, #0]
8010de2: 2208 movs r2, #8
8010de4: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
8010de6: 4b8d ldr r3, [pc, #564] ; (801101c <Calibr+0x264>)
8010de8: 681b ldr r3, [r3, #0]
8010dea: 69db ldr r3, [r3, #28]
8010dec: f003 0301 and.w r3, r3, #1
8010df0: 2b01 cmp r3, #1
8010df2: d103 bne.n 8010dfc <Calibr+0x44>
__HAL_UART_CLEAR_PEFLAG(&huart7);
8010df4: 4b89 ldr r3, [pc, #548] ; (801101c <Calibr+0x264>)
8010df6: 681b ldr r3, [r3, #0]
8010df8: 2201 movs r2, #1
8010dfa: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
8010dfc: 4b87 ldr r3, [pc, #540] ; (801101c <Calibr+0x264>)
8010dfe: 681b ldr r3, [r3, #0]
8010e00: 69db ldr r3, [r3, #28]
8010e02: f003 0302 and.w r3, r3, #2
8010e06: 2b02 cmp r3, #2
8010e08: d103 bne.n 8010e12 <Calibr+0x5a>
__HAL_UART_CLEAR_FEFLAG(&huart7);
8010e0a: 4b84 ldr r3, [pc, #528] ; (801101c <Calibr+0x264>)
8010e0c: 681b ldr r3, [r3, #0]
8010e0e: 2202 movs r2, #2
8010e10: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
8010e12: 4b82 ldr r3, [pc, #520] ; (801101c <Calibr+0x264>)
8010e14: 681b ldr r3, [r3, #0]
8010e16: 69db ldr r3, [r3, #28]
8010e18: f003 0304 and.w r3, r3, #4
8010e1c: 2b04 cmp r3, #4
8010e1e: d103 bne.n 8010e28 <Calibr+0x70>
__HAL_UART_CLEAR_NEFLAG(&huart7);
8010e20: 4b7e ldr r3, [pc, #504] ; (801101c <Calibr+0x264>)
8010e22: 681b ldr r3, [r3, #0]
8010e24: 2204 movs r2, #4
8010e26: 621a str r2, [r3, #32]
HAL_Delay(20);
8010e28: 2014 movs r0, #20
8010e2a: f000 fba7 bl 801157c <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
8010e2e: 2200 movs r2, #0
8010e30: 4b7b ldr r3, [pc, #492] ; (8011020 <Calibr+0x268>)
8010e32: 4611 mov r1, r2
8010e34: 7019 strb r1, [r3, #0]
8010e36: 4b7b ldr r3, [pc, #492] ; (8011024 <Calibr+0x26c>)
8010e38: 4611 mov r1, r2
8010e3a: 7019 strb r1, [r3, #0]
8010e3c: 4b7a ldr r3, [pc, #488] ; (8011028 <Calibr+0x270>)
8010e3e: 701a strb r2, [r3, #0]
len = 0;
8010e40: 2300 movs r3, #0
8010e42: 82fb strh r3, [r7, #22]
memset((void *) &rx, 0, sizeof(rx));
8010e44: f44f 7280 mov.w r2, #256 ; 0x100
8010e48: 2100 movs r1, #0
8010e4a: 4878 ldr r0, [pc, #480] ; (801102c <Calibr+0x274>)
8010e4c: f005 fb09 bl 8016462 <memset>
iobuf[len++] = ch + 1;
8010e50: 8afb ldrh r3, [r7, #22]
8010e52: 1c5a adds r2, r3, #1
8010e54: 82fa strh r2, [r7, #22]
8010e56: 461a mov r2, r3
8010e58: 79fb ldrb r3, [r7, #7]
8010e5a: 3301 adds r3, #1
8010e5c: b2d9 uxtb r1, r3
8010e5e: 4b74 ldr r3, [pc, #464] ; (8011030 <Calibr+0x278>)
8010e60: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x10;
8010e62: 8afb ldrh r3, [r7, #22]
8010e64: 1c5a adds r2, r3, #1
8010e66: 82fa strh r2, [r7, #22]
8010e68: 461a mov r2, r3
8010e6a: 4b71 ldr r3, [pc, #452] ; (8011030 <Calibr+0x278>)
8010e6c: 2110 movs r1, #16
8010e6e: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(3000);
8010e70: 8afb ldrh r3, [r7, #22]
8010e72: 1c5a adds r2, r3, #1
8010e74: 82fa strh r2, [r7, #22]
8010e76: 461a mov r2, r3
8010e78: 4b6d ldr r3, [pc, #436] ; (8011030 <Calibr+0x278>)
8010e7a: 210b movs r1, #11
8010e7c: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(3000);
8010e7e: 8afb ldrh r3, [r7, #22]
8010e80: 1c5a adds r2, r3, #1
8010e82: 82fa strh r2, [r7, #22]
8010e84: 461a mov r2, r3
8010e86: 4b6a ldr r3, [pc, #424] ; (8011030 <Calibr+0x278>)
8010e88: 21b8 movs r1, #184 ; 0xb8
8010e8a: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
8010e8c: 8afb ldrh r3, [r7, #22]
8010e8e: 1c5a adds r2, r3, #1
8010e90: 82fa strh r2, [r7, #22]
8010e92: 461a mov r2, r3
8010e94: 4b66 ldr r3, [pc, #408] ; (8011030 <Calibr+0x278>)
8010e96: 2100 movs r1, #0
8010e98: 5499 strb r1, [r3, r2]
iobuf[len++] = 1;
8010e9a: 8afb ldrh r3, [r7, #22]
8010e9c: 1c5a adds r2, r3, #1
8010e9e: 82fa strh r2, [r7, #22]
8010ea0: 461a mov r2, r3
8010ea2: 4b63 ldr r3, [pc, #396] ; (8011030 <Calibr+0x278>)
8010ea4: 2101 movs r1, #1
8010ea6: 5499 strb r1, [r3, r2]
iobuf[len++] = 2;
8010ea8: 8afb ldrh r3, [r7, #22]
8010eaa: 1c5a adds r2, r3, #1
8010eac: 82fa strh r2, [r7, #22]
8010eae: 461a mov r2, r3
8010eb0: 4b5f ldr r3, [pc, #380] ; (8011030 <Calibr+0x278>)
8010eb2: 2102 movs r1, #2
8010eb4: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
8010eb6: 8afb ldrh r3, [r7, #22]
8010eb8: 1c5a adds r2, r3, #1
8010eba: 82fa strh r2, [r7, #22]
8010ebc: 461a mov r2, r3
8010ebe: 4b5c ldr r3, [pc, #368] ; (8011030 <Calibr+0x278>)
8010ec0: 2100 movs r1, #0
8010ec2: 5499 strb r1, [r3, r2]
if(on)
8010ec4: 79bb ldrb r3, [r7, #6]
8010ec6: 2b00 cmp r3, #0
8010ec8: d00b beq.n 8010ee2 <Calibr+0x12a>
iobuf[len++] = menu - 1;
8010eca: 8afb ldrh r3, [r7, #22]
8010ecc: 1c5a adds r2, r3, #1
8010ece: 82fa strh r2, [r7, #22]
8010ed0: 461a mov r2, r3
8010ed2: 4b58 ldr r3, [pc, #352] ; (8011034 <Calibr+0x27c>)
8010ed4: 781b ldrb r3, [r3, #0]
8010ed6: b2db uxtb r3, r3
8010ed8: 3b01 subs r3, #1
8010eda: b2d9 uxtb r1, r3
8010edc: 4b54 ldr r3, [pc, #336] ; (8011030 <Calibr+0x278>)
8010ede: 5499 strb r1, [r3, r2]
8010ee0: e006 b.n 8010ef0 <Calibr+0x138>
else iobuf[len++] = 0;
8010ee2: 8afb ldrh r3, [r7, #22]
8010ee4: 1c5a adds r2, r3, #1
8010ee6: 82fa strh r2, [r7, #22]
8010ee8: 461a mov r2, r3
8010eea: 4b51 ldr r3, [pc, #324] ; (8011030 <Calibr+0x278>)
8010eec: 2100 movs r1, #0
8010eee: 5499 strb r1, [r3, r2]
crc = Crc16(len);
8010ef0: 8afb ldrh r3, [r7, #22]
8010ef2: 4618 mov r0, r3
8010ef4: f7fe ff68 bl 800fdc8 <Crc16>
8010ef8: 4603 mov r3, r0
8010efa: 827b strh r3, [r7, #18]
iobuf[len++] = LO(crc);
8010efc: 8afb ldrh r3, [r7, #22]
8010efe: 1c5a adds r2, r3, #1
8010f00: 82fa strh r2, [r7, #22]
8010f02: 461a mov r2, r3
8010f04: 8a7b ldrh r3, [r7, #18]
8010f06: b2d9 uxtb r1, r3
8010f08: 4b49 ldr r3, [pc, #292] ; (8011030 <Calibr+0x278>)
8010f0a: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
8010f0c: 8afb ldrh r3, [r7, #22]
8010f0e: 1c5a adds r2, r3, #1
8010f10: 82fa strh r2, [r7, #22]
8010f12: 461a mov r2, r3
8010f14: 8a7b ldrh r3, [r7, #18]
8010f16: 0a1b lsrs r3, r3, #8
8010f18: b29b uxth r3, r3
8010f1a: b2d9 uxtb r1, r3
8010f1c: 4b44 ldr r3, [pc, #272] ; (8011030 <Calibr+0x278>)
8010f1e: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
8010f20: f000 fb20 bl 8011564 <HAL_GetTick>
8010f24: 4603 mov r3, r0
8010f26: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
8010f28: 2201 movs r2, #1
8010f2a: f44f 7100 mov.w r1, #512 ; 0x200
8010f2e: 4842 ldr r0, [pc, #264] ; (8011038 <Calibr+0x280>)
8010f30: f001 fe50 bl 8012bd4 <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
8010f34: 8afb ldrh r3, [r7, #22]
8010f36: 461a mov r2, r3
8010f38: 493d ldr r1, [pc, #244] ; (8011030 <Calibr+0x278>)
8010f3a: 4838 ldr r0, [pc, #224] ; (801101c <Calibr+0x264>)
8010f3c: f003 ff78 bl 8014e30 <HAL_UART_Transmit_IT>
8010f40: 4603 mov r3, r0
8010f42: 2b00 cmp r3, #0
8010f44: d163 bne.n 801100e <Calibr+0x256>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 200));
8010f46: bf00 nop
8010f48: 4b37 ldr r3, [pc, #220] ; (8011028 <Calibr+0x270>)
8010f4a: 781b ldrb r3, [r3, #0]
8010f4c: b2db uxtb r3, r3
8010f4e: f083 0301 eor.w r3, r3, #1
8010f52: b2db uxtb r3, r3
8010f54: 2b00 cmp r3, #0
8010f56: d006 beq.n 8010f66 <Calibr+0x1ae>
8010f58: f000 fb04 bl 8011564 <HAL_GetTick>
8010f5c: 4602 mov r2, r0
8010f5e: 68fb ldr r3, [r7, #12]
8010f60: 1ad3 subs r3, r2, r3
8010f62: 2bc7 cmp r3, #199 ; 0xc7
8010f64: d9f0 bls.n 8010f48 <Calibr+0x190>
if(!TX_OK)
8010f66: 4b30 ldr r3, [pc, #192] ; (8011028 <Calibr+0x270>)
8010f68: 781b ldrb r3, [r3, #0]
8010f6a: b2db uxtb r3, r3
8010f6c: f083 0301 eor.w r3, r3, #1
8010f70: b2db uxtb r3, r3
8010f72: 2b00 cmp r3, #0
8010f74: d00b beq.n 8010f8e <Calibr+0x1d6>
{
HAL_UART_Abort_IT(&huart7);
8010f76: 4829 ldr r0, [pc, #164] ; (801101c <Calibr+0x264>)
8010f78: f003 ffc8 bl 8014f0c <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010f7c: 2200 movs r2, #0
8010f7e: f44f 7100 mov.w r1, #512 ; 0x200
8010f82: 482d ldr r0, [pc, #180] ; (8011038 <Calibr+0x280>)
8010f84: f001 fe26 bl 8012bd4 <HAL_GPIO_WritePin>
return (-1);
8010f88: f04f 33ff mov.w r3, #4294967295
8010f8c: e041 b.n 8011012 <Calibr+0x25a>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010f8e: 2200 movs r2, #0
8010f90: f44f 7100 mov.w r1, #512 ; 0x200
8010f94: 4828 ldr r0, [pc, #160] ; (8011038 <Calibr+0x280>)
8010f96: f001 fe1d bl 8012bd4 <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
8010f9a: 2364 movs r3, #100 ; 0x64
8010f9c: 2201 movs r2, #1
8010f9e: 4923 ldr r1, [pc, #140] ; (801102c <Calibr+0x274>)
8010fa0: 481e ldr r0, [pc, #120] ; (801101c <Calibr+0x264>)
8010fa2: f003 fe75 bl 8014c90 <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK)
8010fa6: f44f 73fa mov.w r3, #500 ; 0x1f4
8010faa: 2208 movs r2, #8
8010fac: 491f ldr r1, [pc, #124] ; (801102c <Calibr+0x274>)
8010fae: 481b ldr r0, [pc, #108] ; (801101c <Calibr+0x264>)
8010fb0: f003 fe6e bl 8014c90 <HAL_UART_Receive>
8010fb4: 4603 mov r3, r0
8010fb6: 2b00 cmp r3, #0
8010fb8: d120 bne.n 8010ffc <Calibr+0x244>
{
crc = (uint16_t) ((rx[7]) << 8 | rx[6]);
8010fba: 4b1c ldr r3, [pc, #112] ; (801102c <Calibr+0x274>)
8010fbc: 79db ldrb r3, [r3, #7]
8010fbe: 021b lsls r3, r3, #8
8010fc0: b21a sxth r2, r3
8010fc2: 4b1a ldr r3, [pc, #104] ; (801102c <Calibr+0x274>)
8010fc4: 799b ldrb r3, [r3, #6]
8010fc6: b21b sxth r3, r3
8010fc8: 4313 orrs r3, r2
8010fca: b21b sxth r3, r3
8010fcc: 827b strh r3, [r7, #18]
if(crc == Crc16_RX(6))
8010fce: 2006 movs r0, #6
8010fd0: f7fe ff26 bl 800fe20 <Crc16_RX>
8010fd4: 4603 mov r3, r0
8010fd6: 461a mov r2, r3
8010fd8: 8a7b ldrh r3, [r7, #18]
8010fda: 4293 cmp r3, r2
8010fdc: d10b bne.n 8010ff6 <Calibr+0x23e>
{
if(rx[0] == (ch + 1))
8010fde: 4b13 ldr r3, [pc, #76] ; (801102c <Calibr+0x274>)
8010fe0: 781b ldrb r3, [r3, #0]
8010fe2: 461a mov r2, r3
8010fe4: 79fb ldrb r3, [r7, #7]
8010fe6: 3301 adds r3, #1
8010fe8: 429a cmp r2, r3
8010fea: d101 bne.n 8010ff0 <Calibr+0x238>
return 0;
8010fec: 2300 movs r3, #0
8010fee: e010 b.n 8011012 <Calibr+0x25a>
else return (-1);
8010ff0: f04f 33ff mov.w r3, #4294967295
8010ff4: e00d b.n 8011012 <Calibr+0x25a>
}
else
{
return (-1);
8010ff6: f04f 33ff mov.w r3, #4294967295
8010ffa: e00a b.n 8011012 <Calibr+0x25a>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010ffc: 2200 movs r2, #0
8010ffe: f44f 7100 mov.w r1, #512 ; 0x200
8011002: 480d ldr r0, [pc, #52] ; (8011038 <Calibr+0x280>)
8011004: f001 fde6 bl 8012bd4 <HAL_GPIO_WritePin>
return (-1);
8011008: f04f 33ff mov.w r3, #4294967295
801100c: e001 b.n 8011012 <Calibr+0x25a>
}
}
return res;
801100e: f997 3015 ldrsb.w r3, [r7, #21]
}
8011012: 4618 mov r0, r3
8011014: 3718 adds r7, #24
8011016: 46bd mov sp, r7
8011018: bd80 pop {r7, pc}
801101a: bf00 nop
801101c: 2006c434 .word 0x2006c434
8011020: 2006ba91 .word 0x2006ba91
8011024: 2006ba93 .word 0x2006ba93
8011028: 2006ba92 .word 0x2006ba92
801102c: 2006c4bc .word 0x2006c4bc
8011030: 2006c5c4 .word 0x2006c5c4
8011034: 200209d9 .word 0x200209d9
8011038: 40021400 .word 0x40021400
0801103c <WriteCorr>:
int8_t WriteCorr(uint8_t ch, uint8_t fasecor, uint8_t up)
{
801103c: b580 push {r7, lr}
801103e: b086 sub sp, #24
8011040: af00 add r7, sp, #0
8011042: 4603 mov r3, r0
8011044: 71fb strb r3, [r7, #7]
8011046: 460b mov r3, r1
8011048: 71bb strb r3, [r7, #6]
801104a: 4613 mov r3, r2
801104c: 717b strb r3, [r7, #5]
int8_t res = -1;
801104e: 23ff movs r3, #255 ; 0xff
8011050: 75fb strb r3, [r7, #23]
uint16_t i, len = 0;
8011052: 2300 movs r3, #0
8011054: 82bb strh r3, [r7, #20]
uint16_t crc;
uint16_t reg;
__IO uint32_t timeout;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
8011056: 4b8e ldr r3, [pc, #568] ; (8011290 <WriteCorr+0x254>)
8011058: 681b ldr r3, [r3, #0]
801105a: 69db ldr r3, [r3, #28]
801105c: f003 0308 and.w r3, r3, #8
8011060: 2b08 cmp r3, #8
8011062: d103 bne.n 801106c <WriteCorr+0x30>
__HAL_UART_CLEAR_OREFLAG(&huart7);
8011064: 4b8a ldr r3, [pc, #552] ; (8011290 <WriteCorr+0x254>)
8011066: 681b ldr r3, [r3, #0]
8011068: 2208 movs r2, #8
801106a: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
801106c: 4b88 ldr r3, [pc, #544] ; (8011290 <WriteCorr+0x254>)
801106e: 681b ldr r3, [r3, #0]
8011070: 69db ldr r3, [r3, #28]
8011072: f003 0301 and.w r3, r3, #1
8011076: 2b01 cmp r3, #1
8011078: d103 bne.n 8011082 <WriteCorr+0x46>
__HAL_UART_CLEAR_PEFLAG(&huart7);
801107a: 4b85 ldr r3, [pc, #532] ; (8011290 <WriteCorr+0x254>)
801107c: 681b ldr r3, [r3, #0]
801107e: 2201 movs r2, #1
8011080: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
8011082: 4b83 ldr r3, [pc, #524] ; (8011290 <WriteCorr+0x254>)
8011084: 681b ldr r3, [r3, #0]
8011086: 69db ldr r3, [r3, #28]
8011088: f003 0302 and.w r3, r3, #2
801108c: 2b02 cmp r3, #2
801108e: d103 bne.n 8011098 <WriteCorr+0x5c>
__HAL_UART_CLEAR_FEFLAG(&huart7);
8011090: 4b7f ldr r3, [pc, #508] ; (8011290 <WriteCorr+0x254>)
8011092: 681b ldr r3, [r3, #0]
8011094: 2202 movs r2, #2
8011096: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
8011098: 4b7d ldr r3, [pc, #500] ; (8011290 <WriteCorr+0x254>)
801109a: 681b ldr r3, [r3, #0]
801109c: 69db ldr r3, [r3, #28]
801109e: f003 0304 and.w r3, r3, #4
80110a2: 2b04 cmp r3, #4
80110a4: d103 bne.n 80110ae <WriteCorr+0x72>
__HAL_UART_CLEAR_NEFLAG(&huart7);
80110a6: 4b7a ldr r3, [pc, #488] ; (8011290 <WriteCorr+0x254>)
80110a8: 681b ldr r3, [r3, #0]
80110aa: 2204 movs r2, #4
80110ac: 621a str r2, [r3, #32]
HAL_Delay(20);
80110ae: 2014 movs r0, #20
80110b0: f000 fa64 bl 801157c <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
80110b4: 2200 movs r2, #0
80110b6: 4b77 ldr r3, [pc, #476] ; (8011294 <WriteCorr+0x258>)
80110b8: 4611 mov r1, r2
80110ba: 7019 strb r1, [r3, #0]
80110bc: 4b76 ldr r3, [pc, #472] ; (8011298 <WriteCorr+0x25c>)
80110be: 4611 mov r1, r2
80110c0: 7019 strb r1, [r3, #0]
80110c2: 4b76 ldr r3, [pc, #472] ; (801129c <WriteCorr+0x260>)
80110c4: 701a strb r2, [r3, #0]
len = 0;
80110c6: 2300 movs r3, #0
80110c8: 82bb strh r3, [r7, #20]
memset((void *) &rx, 0, sizeof(rx));
80110ca: f44f 7280 mov.w r2, #256 ; 0x100
80110ce: 2100 movs r1, #0
80110d0: 4873 ldr r0, [pc, #460] ; (80112a0 <WriteCorr+0x264>)
80110d2: f005 f9c6 bl 8016462 <memset>
/*if(fasecor == CALIBR_00) {
return (-1);
}*/
iobuf[len++] = ch + 1;
80110d6: 8abb ldrh r3, [r7, #20]
80110d8: 1c5a adds r2, r3, #1
80110da: 82ba strh r2, [r7, #20]
80110dc: 461a mov r2, r3
80110de: 79fb ldrb r3, [r7, #7]
80110e0: 3301 adds r3, #1
80110e2: b2d9 uxtb r1, r3
80110e4: 4b6f ldr r3, [pc, #444] ; (80112a4 <WriteCorr+0x268>)
80110e6: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x10;
80110e8: 8abb ldrh r3, [r7, #20]
80110ea: 1c5a adds r2, r3, #1
80110ec: 82ba strh r2, [r7, #20]
80110ee: 461a mov r2, r3
80110f0: 4b6c ldr r3, [pc, #432] ; (80112a4 <WriteCorr+0x268>)
80110f2: 2110 movs r1, #16
80110f4: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(fasecor + 3001);
80110f6: 8abb ldrh r3, [r7, #20]
80110f8: 1c5a adds r2, r3, #1
80110fa: 82ba strh r2, [r7, #20]
80110fc: 461a mov r2, r3
80110fe: 79bb ldrb r3, [r7, #6]
8011100: f603 33b9 addw r3, r3, #3001 ; 0xbb9
8011104: 121b asrs r3, r3, #8
8011106: b2d9 uxtb r1, r3
8011108: 4b66 ldr r3, [pc, #408] ; (80112a4 <WriteCorr+0x268>)
801110a: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(fasecor + 3001);
801110c: 8abb ldrh r3, [r7, #20]
801110e: 1c5a adds r2, r3, #1
8011110: 82ba strh r2, [r7, #20]
8011112: 461a mov r2, r3
8011114: 79bb ldrb r3, [r7, #6]
8011116: 3b47 subs r3, #71 ; 0x47
8011118: b2d9 uxtb r1, r3
801111a: 4b62 ldr r3, [pc, #392] ; (80112a4 <WriteCorr+0x268>)
801111c: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
801111e: 8abb ldrh r3, [r7, #20]
8011120: 1c5a adds r2, r3, #1
8011122: 82ba strh r2, [r7, #20]
8011124: 461a mov r2, r3
8011126: 4b5f ldr r3, [pc, #380] ; (80112a4 <WriteCorr+0x268>)
8011128: 2100 movs r1, #0
801112a: 5499 strb r1, [r3, r2]
iobuf[len++] = 1;
801112c: 8abb ldrh r3, [r7, #20]
801112e: 1c5a adds r2, r3, #1
8011130: 82ba strh r2, [r7, #20]
8011132: 461a mov r2, r3
8011134: 4b5b ldr r3, [pc, #364] ; (80112a4 <WriteCorr+0x268>)
8011136: 2101 movs r1, #1
8011138: 5499 strb r1, [r3, r2]
iobuf[len++] = 2;
801113a: 8abb ldrh r3, [r7, #20]
801113c: 1c5a adds r2, r3, #1
801113e: 82ba strh r2, [r7, #20]
8011140: 461a mov r2, r3
8011142: 4b58 ldr r3, [pc, #352] ; (80112a4 <WriteCorr+0x268>)
8011144: 2102 movs r1, #2
8011146: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
8011148: 8abb ldrh r3, [r7, #20]
801114a: 1c5a adds r2, r3, #1
801114c: 82ba strh r2, [r7, #20]
801114e: 461a mov r2, r3
8011150: 4b54 ldr r3, [pc, #336] ; (80112a4 <WriteCorr+0x268>)
8011152: 2100 movs r1, #0
8011154: 5499 strb r1, [r3, r2]
iobuf[len++] = up;
8011156: 8abb ldrh r3, [r7, #20]
8011158: 1c5a adds r2, r3, #1
801115a: 82ba strh r2, [r7, #20]
801115c: 4619 mov r1, r3
801115e: 4a51 ldr r2, [pc, #324] ; (80112a4 <WriteCorr+0x268>)
8011160: 797b ldrb r3, [r7, #5]
8011162: 5453 strb r3, [r2, r1]
crc = Crc16(len);
8011164: 8abb ldrh r3, [r7, #20]
8011166: 4618 mov r0, r3
8011168: f7fe fe2e bl 800fdc8 <Crc16>
801116c: 4603 mov r3, r0
801116e: 827b strh r3, [r7, #18]
iobuf[len++] = LO(crc);
8011170: 8abb ldrh r3, [r7, #20]
8011172: 1c5a adds r2, r3, #1
8011174: 82ba strh r2, [r7, #20]
8011176: 461a mov r2, r3
8011178: 8a7b ldrh r3, [r7, #18]
801117a: b2d9 uxtb r1, r3
801117c: 4b49 ldr r3, [pc, #292] ; (80112a4 <WriteCorr+0x268>)
801117e: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
8011180: 8abb ldrh r3, [r7, #20]
8011182: 1c5a adds r2, r3, #1
8011184: 82ba strh r2, [r7, #20]
8011186: 461a mov r2, r3
8011188: 8a7b ldrh r3, [r7, #18]
801118a: 0a1b lsrs r3, r3, #8
801118c: b29b uxth r3, r3
801118e: b2d9 uxtb r1, r3
8011190: 4b44 ldr r3, [pc, #272] ; (80112a4 <WriteCorr+0x268>)
8011192: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
8011194: f000 f9e6 bl 8011564 <HAL_GetTick>
8011198: 4603 mov r3, r0
801119a: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
801119c: 2201 movs r2, #1
801119e: f44f 7100 mov.w r1, #512 ; 0x200
80111a2: 4841 ldr r0, [pc, #260] ; (80112a8 <WriteCorr+0x26c>)
80111a4: f001 fd16 bl 8012bd4 <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
80111a8: 8abb ldrh r3, [r7, #20]
80111aa: 461a mov r2, r3
80111ac: 493d ldr r1, [pc, #244] ; (80112a4 <WriteCorr+0x268>)
80111ae: 4838 ldr r0, [pc, #224] ; (8011290 <WriteCorr+0x254>)
80111b0: f003 fe3e bl 8014e30 <HAL_UART_Transmit_IT>
80111b4: 4603 mov r3, r0
80111b6: 2b00 cmp r3, #0
80111b8: d163 bne.n 8011282 <WriteCorr+0x246>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 200));
80111ba: bf00 nop
80111bc: 4b37 ldr r3, [pc, #220] ; (801129c <WriteCorr+0x260>)
80111be: 781b ldrb r3, [r3, #0]
80111c0: b2db uxtb r3, r3
80111c2: f083 0301 eor.w r3, r3, #1
80111c6: b2db uxtb r3, r3
80111c8: 2b00 cmp r3, #0
80111ca: d006 beq.n 80111da <WriteCorr+0x19e>
80111cc: f000 f9ca bl 8011564 <HAL_GetTick>
80111d0: 4602 mov r2, r0
80111d2: 68fb ldr r3, [r7, #12]
80111d4: 1ad3 subs r3, r2, r3
80111d6: 2bc7 cmp r3, #199 ; 0xc7
80111d8: d9f0 bls.n 80111bc <WriteCorr+0x180>
if(!TX_OK)
80111da: 4b30 ldr r3, [pc, #192] ; (801129c <WriteCorr+0x260>)
80111dc: 781b ldrb r3, [r3, #0]
80111de: b2db uxtb r3, r3
80111e0: f083 0301 eor.w r3, r3, #1
80111e4: b2db uxtb r3, r3
80111e6: 2b00 cmp r3, #0
80111e8: d00b beq.n 8011202 <WriteCorr+0x1c6>
{
HAL_UART_Abort_IT(&huart7);
80111ea: 4829 ldr r0, [pc, #164] ; (8011290 <WriteCorr+0x254>)
80111ec: f003 fe8e bl 8014f0c <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
80111f0: 2200 movs r2, #0
80111f2: f44f 7100 mov.w r1, #512 ; 0x200
80111f6: 482c ldr r0, [pc, #176] ; (80112a8 <WriteCorr+0x26c>)
80111f8: f001 fcec bl 8012bd4 <HAL_GPIO_WritePin>
return (-1);
80111fc: f04f 33ff mov.w r3, #4294967295
8011200: e041 b.n 8011286 <WriteCorr+0x24a>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8011202: 2200 movs r2, #0
8011204: f44f 7100 mov.w r1, #512 ; 0x200
8011208: 4827 ldr r0, [pc, #156] ; (80112a8 <WriteCorr+0x26c>)
801120a: f001 fce3 bl 8012bd4 <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
801120e: 2364 movs r3, #100 ; 0x64
8011210: 2201 movs r2, #1
8011212: 4923 ldr r1, [pc, #140] ; (80112a0 <WriteCorr+0x264>)
8011214: 481e ldr r0, [pc, #120] ; (8011290 <WriteCorr+0x254>)
8011216: f003 fd3b bl 8014c90 <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK)
801121a: f44f 73fa mov.w r3, #500 ; 0x1f4
801121e: 2208 movs r2, #8
8011220: 491f ldr r1, [pc, #124] ; (80112a0 <WriteCorr+0x264>)
8011222: 481b ldr r0, [pc, #108] ; (8011290 <WriteCorr+0x254>)
8011224: f003 fd34 bl 8014c90 <HAL_UART_Receive>
8011228: 4603 mov r3, r0
801122a: 2b00 cmp r3, #0
801122c: d120 bne.n 8011270 <WriteCorr+0x234>
{
crc = (uint16_t) ((rx[7]) << 8 | rx[6]);
801122e: 4b1c ldr r3, [pc, #112] ; (80112a0 <WriteCorr+0x264>)
8011230: 79db ldrb r3, [r3, #7]
8011232: 021b lsls r3, r3, #8
8011234: b21a sxth r2, r3
8011236: 4b1a ldr r3, [pc, #104] ; (80112a0 <WriteCorr+0x264>)
8011238: 799b ldrb r3, [r3, #6]
801123a: b21b sxth r3, r3
801123c: 4313 orrs r3, r2
801123e: b21b sxth r3, r3
8011240: 827b strh r3, [r7, #18]
if(crc == Crc16_RX(6))
8011242: 2006 movs r0, #6
8011244: f7fe fdec bl 800fe20 <Crc16_RX>
8011248: 4603 mov r3, r0
801124a: 461a mov r2, r3
801124c: 8a7b ldrh r3, [r7, #18]
801124e: 4293 cmp r3, r2
8011250: d10b bne.n 801126a <WriteCorr+0x22e>
{
if(rx[0] == (ch + 1))
8011252: 4b13 ldr r3, [pc, #76] ; (80112a0 <WriteCorr+0x264>)
8011254: 781b ldrb r3, [r3, #0]
8011256: 461a mov r2, r3
8011258: 79fb ldrb r3, [r7, #7]
801125a: 3301 adds r3, #1
801125c: 429a cmp r2, r3
801125e: d101 bne.n 8011264 <WriteCorr+0x228>
return 0;
8011260: 2300 movs r3, #0
8011262: e010 b.n 8011286 <WriteCorr+0x24a>
else return (-1);
8011264: f04f 33ff mov.w r3, #4294967295
8011268: e00d b.n 8011286 <WriteCorr+0x24a>
}
else
{
return (-1);
801126a: f04f 33ff mov.w r3, #4294967295
801126e: e00a b.n 8011286 <WriteCorr+0x24a>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8011270: 2200 movs r2, #0
8011272: f44f 7100 mov.w r1, #512 ; 0x200
8011276: 480c ldr r0, [pc, #48] ; (80112a8 <WriteCorr+0x26c>)
8011278: f001 fcac bl 8012bd4 <HAL_GPIO_WritePin>
return (-1);
801127c: f04f 33ff mov.w r3, #4294967295
8011280: e001 b.n 8011286 <WriteCorr+0x24a>
}
}
return res;
8011282: f997 3017 ldrsb.w r3, [r7, #23]
}
8011286: 4618 mov r0, r3
8011288: 3718 adds r7, #24
801128a: 46bd mov sp, r7
801128c: bd80 pop {r7, pc}
801128e: bf00 nop
8011290: 2006c434 .word 0x2006c434
8011294: 2006ba91 .word 0x2006ba91
8011298: 2006ba93 .word 0x2006ba93
801129c: 2006ba92 .word 0x2006ba92
80112a0: 2006c4bc .word 0x2006c4bc
80112a4: 2006c5c4 .word 0x2006c5c4
80112a8: 40021400 .word 0x40021400
080112ac <CalibrOFF>:
}
}
void CalibrOFF(void)
{
80112ac: b580 push {r7, lr}
80112ae: b084 sub sp, #16
80112b0: af00 add r7, sp, #0
uint8_t i, ch;
uint32_t MASK_CHANNELS = 0;
80112b2: 2300 movs r3, #0
80112b4: 60bb str r3, [r7, #8]
uint32_t CNT_CHANNELS = 0;
80112b6: 2300 movs r3, #0
80112b8: 607b str r3, [r7, #4]
for(ch = 0; ch < 4; ch++)
80112ba: 2300 movs r3, #0
80112bc: 73bb strb r3, [r7, #14]
80112be: e01f b.n 8011300 <CalibrOFF+0x54>
{
for(i = 0; i < 3; i++)
80112c0: 2300 movs r3, #0
80112c2: 73fb strb r3, [r7, #15]
80112c4: e016 b.n 80112f4 <CalibrOFF+0x48>
{
if(Calibr(ch, 0) == 0)
80112c6: 7bbb ldrb r3, [r7, #14]
80112c8: 2100 movs r1, #0
80112ca: 4618 mov r0, r3
80112cc: f7ff fd74 bl 8010db8 <Calibr>
80112d0: 4603 mov r3, r0
80112d2: 2b00 cmp r3, #0
80112d4: d10b bne.n 80112ee <CalibrOFF+0x42>
{
MASK_CHANNELS |= (1 << ch);
80112d6: 7bbb ldrb r3, [r7, #14]
80112d8: 2201 movs r2, #1
80112da: fa02 f303 lsl.w r3, r2, r3
80112de: 461a mov r2, r3
80112e0: 68bb ldr r3, [r7, #8]
80112e2: 4313 orrs r3, r2
80112e4: 60bb str r3, [r7, #8]
CNT_CHANNELS++;
80112e6: 687b ldr r3, [r7, #4]
80112e8: 3301 adds r3, #1
80112ea: 607b str r3, [r7, #4]
break;
80112ec: e005 b.n 80112fa <CalibrOFF+0x4e>
for(i = 0; i < 3; i++)
80112ee: 7bfb ldrb r3, [r7, #15]
80112f0: 3301 adds r3, #1
80112f2: 73fb strb r3, [r7, #15]
80112f4: 7bfb ldrb r3, [r7, #15]
80112f6: 2b02 cmp r3, #2
80112f8: d9e5 bls.n 80112c6 <CalibrOFF+0x1a>
for(ch = 0; ch < 4; ch++)
80112fa: 7bbb ldrb r3, [r7, #14]
80112fc: 3301 adds r3, #1
80112fe: 73bb strb r3, [r7, #14]
8011300: 7bbb ldrb r3, [r7, #14]
8011302: 2b03 cmp r3, #3
8011304: d9dc bls.n 80112c0 <CalibrOFF+0x14>
}
}
}
}
8011306: bf00 nop
8011308: 3710 adds r7, #16
801130a: 46bd mov sp, r7
801130c: bd80 pop {r7, pc}
...
08011310 <AskChannels>:
void AskChannels(void)
{
8011310: b580 push {r7, lr}
8011312: b082 sub sp, #8
8011314: af00 add r7, sp, #0
uint8_t i, ch;
ASK_COMPLETE = false;
8011316: 4b46 ldr r3, [pc, #280] ; (8011430 <AskChannels+0x120>)
8011318: 2200 movs r2, #0
801131a: 701a strb r2, [r3, #0]
for(i = 0; i < 100; i++)
801131c: 2300 movs r3, #0
801131e: 71fb strb r3, [r7, #7]
8011320: e007 b.n 8011332 <AskChannels+0x22>
{
RedrawScreen();
8011322: f7f4 fdbb bl 8005e9c <RedrawScreen>
HAL_Delay(10);
8011326: 200a movs r0, #10
8011328: f000 f928 bl 801157c <HAL_Delay>
for(i = 0; i < 100; i++)
801132c: 79fb ldrb r3, [r7, #7]
801132e: 3301 adds r3, #1
8011330: 71fb strb r3, [r7, #7]
8011332: 79fb ldrb r3, [r7, #7]
8011334: 2b63 cmp r3, #99 ; 0x63
8011336: d9f4 bls.n 8011322 <AskChannels+0x12>
}
ip_assigned = false;
8011338: 4b3e ldr r3, [pc, #248] ; (8011434 <AskChannels+0x124>)
801133a: 2200 movs r2, #0
801133c: 701a strb r2, [r3, #0]
for(i = 0; i < 2; i++)
801133e: 2300 movs r3, #0
8011340: 71fb strb r3, [r7, #7]
8011342: e00e b.n 8011362 <AskChannels+0x52>
{
if(ReadIP() == 0) {
8011344: f7fe fde4 bl 800ff10 <ReadIP>
8011348: 4603 mov r3, r0
801134a: 2b00 cmp r3, #0
801134c: d103 bne.n 8011356 <AskChannels+0x46>
ip_assigned = true;
801134e: 4b39 ldr r3, [pc, #228] ; (8011434 <AskChannels+0x124>)
8011350: 2201 movs r2, #1
8011352: 701a strb r2, [r3, #0]
break;
8011354: e008 b.n 8011368 <AskChannels+0x58>
}
HAL_Delay(50);
8011356: 2032 movs r0, #50 ; 0x32
8011358: f000 f910 bl 801157c <HAL_Delay>
for(i = 0; i < 2; i++)
801135c: 79fb ldrb r3, [r7, #7]
801135e: 3301 adds r3, #1
8011360: 71fb strb r3, [r7, #7]
8011362: 79fb ldrb r3, [r7, #7]
8011364: 2b01 cmp r3, #1
8011366: d9ed bls.n 8011344 <AskChannels+0x34>
}
memset((void *) &pardata.amplif[0], 0, sizeof(AmplifData_TypeDef) * 16u);
8011368: f44f 7200 mov.w r2, #512 ; 0x200
801136c: 2100 movs r1, #0
801136e: 4832 ldr r0, [pc, #200] ; (8011438 <AskChannels+0x128>)
8011370: f005 f877 bl 8016462 <memset>
MASK_CHANNELS = CNT_CHANNELS = ACTIVE_CHANNEL = 0;
8011374: 2300 movs r3, #0
8011376: 4a31 ldr r2, [pc, #196] ; (801143c <AskChannels+0x12c>)
8011378: 6013 str r3, [r2, #0]
801137a: 4a31 ldr r2, [pc, #196] ; (8011440 <AskChannels+0x130>)
801137c: 6013 str r3, [r2, #0]
801137e: 4a31 ldr r2, [pc, #196] ; (8011444 <AskChannels+0x134>)
8011380: 6013 str r3, [r2, #0]
for(ch = 0; ch < 8; ch++)
8011382: 2300 movs r3, #0
8011384: 71bb strb r3, [r7, #6]
8011386: e02a b.n 80113de <AskChannels+0xce>
{
for(i = 0; i < 2; i++)
8011388: 2300 movs r3, #0
801138a: 71fb strb r3, [r7, #7]
801138c: e021 b.n 80113d2 <AskChannels+0xc2>
{
if(ReadChannel(ch) == 0)
801138e: 79bb ldrb r3, [r7, #6]
8011390: 4618 mov r0, r3
8011392: f7fe fedb bl 801014c <ReadChannel>
8011396: 4603 mov r3, r0
8011398: 2b00 cmp r3, #0
801139a: d115 bne.n 80113c8 <AskChannels+0xb8>
{
RedrawScreen();
801139c: f7f4 fd7e bl 8005e9c <RedrawScreen>
MASK_CHANNELS |= (1 << ch);
80113a0: 79bb ldrb r3, [r7, #6]
80113a2: 2201 movs r2, #1
80113a4: fa02 f303 lsl.w r3, r2, r3
80113a8: 461a mov r2, r3
80113aa: 4b26 ldr r3, [pc, #152] ; (8011444 <AskChannels+0x134>)
80113ac: 681b ldr r3, [r3, #0]
80113ae: 4313 orrs r3, r2
80113b0: 4a24 ldr r2, [pc, #144] ; (8011444 <AskChannels+0x134>)
80113b2: 6013 str r3, [r2, #0]
CNT_CHANNELS++;
80113b4: 4b22 ldr r3, [pc, #136] ; (8011440 <AskChannels+0x130>)
80113b6: 681b ldr r3, [r3, #0]
80113b8: 3301 adds r3, #1
80113ba: 4a21 ldr r2, [pc, #132] ; (8011440 <AskChannels+0x130>)
80113bc: 6013 str r3, [r2, #0]
ReadChannelSens(ch);
80113be: 79bb ldrb r3, [r7, #6]
80113c0: 4618 mov r0, r3
80113c2: f7ff fa83 bl 80108cc <ReadChannelSens>
break;
80113c6: e007 b.n 80113d8 <AskChannels+0xc8>
}
else
RedrawScreen();
80113c8: f7f4 fd68 bl 8005e9c <RedrawScreen>
for(i = 0; i < 2; i++)
80113cc: 79fb ldrb r3, [r7, #7]
80113ce: 3301 adds r3, #1
80113d0: 71fb strb r3, [r7, #7]
80113d2: 79fb ldrb r3, [r7, #7]
80113d4: 2b01 cmp r3, #1
80113d6: d9da bls.n 801138e <AskChannels+0x7e>
for(ch = 0; ch < 8; ch++)
80113d8: 79bb ldrb r3, [r7, #6]
80113da: 3301 adds r3, #1
80113dc: 71bb strb r3, [r7, #6]
80113de: 79bb ldrb r3, [r7, #6]
80113e0: 2b07 cmp r3, #7
80113e2: d9d1 bls.n 8011388 <AskChannels+0x78>
}
}
if(CNT_CHANNELS != 0)
80113e4: 4b16 ldr r3, [pc, #88] ; (8011440 <AskChannels+0x130>)
80113e6: 681b ldr r3, [r3, #0]
80113e8: 2b00 cmp r3, #0
80113ea: d019 beq.n 8011420 <AskChannels+0x110>
{
for(i = 0; i < 8; i++)
80113ec: 2300 movs r3, #0
80113ee: 71fb strb r3, [r7, #7]
80113f0: e010 b.n 8011414 <AskChannels+0x104>
{
if(MASK_CHANNELS & (1 << i))
80113f2: 79fb ldrb r3, [r7, #7]
80113f4: 2201 movs r2, #1
80113f6: fa02 f303 lsl.w r3, r2, r3
80113fa: 461a mov r2, r3
80113fc: 4b11 ldr r3, [pc, #68] ; (8011444 <AskChannels+0x134>)
80113fe: 681b ldr r3, [r3, #0]
8011400: 4013 ands r3, r2
8011402: 2b00 cmp r3, #0
8011404: d003 beq.n 801140e <AskChannels+0xfe>
{
ACTIVE_CHANNEL = i;
8011406: 79fb ldrb r3, [r7, #7]
8011408: 4a0c ldr r2, [pc, #48] ; (801143c <AskChannels+0x12c>)
801140a: 6013 str r3, [r2, #0]
break;
801140c: e005 b.n 801141a <AskChannels+0x10a>
for(i = 0; i < 8; i++)
801140e: 79fb ldrb r3, [r7, #7]
8011410: 3301 adds r3, #1
8011412: 71fb strb r3, [r7, #7]
8011414: 79fb ldrb r3, [r7, #7]
8011416: 2b07 cmp r3, #7
8011418: d9eb bls.n 80113f2 <AskChannels+0xe2>
}
}
ASK_COMPLETE = true;
801141a: 4b05 ldr r3, [pc, #20] ; (8011430 <AskChannels+0x120>)
801141c: 2201 movs r2, #1
801141e: 701a strb r2, [r3, #0]
{
//Off();
}
HAL_Delay(2000);
8011420: f44f 60fa mov.w r0, #2000 ; 0x7d0
8011424: f000 f8aa bl 801157c <HAL_Delay>
//MASK_CHANNELS = 0xf; //TODO Удалить
//CNT_CHANNELS = 4; //TODO Удалить
}
8011428: bf00 nop
801142a: 3708 adds r7, #8
801142c: 46bd mov sp, r7
801142e: bd80 pop {r7, pc}
8011430: 2006ba90 .word 0x2006ba90
8011434: 2006ba94 .word 0x2006ba94
8011438: 2006bca8 .word 0x2006bca8
801143c: 2006ba68 .word 0x2006ba68
8011440: 2006ba6c .word 0x2006ba6c
8011444: 2002002c .word 0x2002002c
08011448 <AskPeriodic>:
void AskPeriodic(void)
{
8011448: b580 push {r7, lr}
801144a: b082 sub sp, #8
801144c: af00 add r7, sp, #0
uint8_t ch;
for(ch = 0; ch < 8; ch++)
801144e: 2300 movs r3, #0
8011450: 71fb strb r3, [r7, #7]
8011452: e01c b.n 801148e <AskPeriodic+0x46>
{
if(MASK_CHANNELS & (1 << ch))
8011454: 79fb ldrb r3, [r7, #7]
8011456: 2201 movs r2, #1
8011458: fa02 f303 lsl.w r3, r2, r3
801145c: 461a mov r2, r3
801145e: 4b0f ldr r3, [pc, #60] ; (801149c <AskPeriodic+0x54>)
8011460: 681b ldr r3, [r3, #0]
8011462: 4013 ands r3, r2
8011464: 2b00 cmp r3, #0
8011466: d00f beq.n 8011488 <AskPeriodic+0x40>
{
if(!focused)
8011468: 4b0d ldr r3, [pc, #52] ; (80114a0 <AskPeriodic+0x58>)
801146a: 781b ldrb r3, [r3, #0]
801146c: b2db uxtb r3, r3
801146e: f083 0301 eor.w r3, r3, #1
8011472: b2db uxtb r3, r3
8011474: 2b00 cmp r3, #0
8011476: d007 beq.n 8011488 <AskPeriodic+0x40>
{
ReadChannel(ch);
8011478: 79fb ldrb r3, [r7, #7]
801147a: 4618 mov r0, r3
801147c: f7fe fe66 bl 801014c <ReadChannel>
ReadChannelSens(ch);
8011480: 79fb ldrb r3, [r7, #7]
8011482: 4618 mov r0, r3
8011484: f7ff fa22 bl 80108cc <ReadChannelSens>
for(ch = 0; ch < 8; ch++)
8011488: 79fb ldrb r3, [r7, #7]
801148a: 3301 adds r3, #1
801148c: 71fb strb r3, [r7, #7]
801148e: 79fb ldrb r3, [r7, #7]
8011490: 2b07 cmp r3, #7
8011492: d9df bls.n 8011454 <AskPeriodic+0xc>
}
}
}
}
8011494: bf00 nop
8011496: 3708 adds r7, #8
8011498: 46bd mov sp, r7
801149a: bd80 pop {r7, pc}
801149c: 2002002c .word 0x2002002c
80114a0: 200209e4 .word 0x200209e4
080114a4 <HAL_Init>:
* need to ensure that the SysTick time base is always set to 1 millisecond
* to have correct HAL operation.
* @retval HAL status
*/
HAL_StatusTypeDef HAL_Init(void)
{
80114a4: b580 push {r7, lr}
80114a6: af00 add r7, sp, #0
/* Configure Instruction cache through ART accelerator */
#if (ART_ACCLERATOR_ENABLE != 0)
__HAL_FLASH_ART_ENABLE();
80114a8: 4a0b ldr r2, [pc, #44] ; (80114d8 <HAL_Init+0x34>)
80114aa: 4b0b ldr r3, [pc, #44] ; (80114d8 <HAL_Init+0x34>)
80114ac: 681b ldr r3, [r3, #0]
80114ae: f443 7300 orr.w r3, r3, #512 ; 0x200
80114b2: 6013 str r3, [r2, #0]
#endif /* ART_ACCLERATOR_ENABLE */
/* Configure Flash prefetch */
#if (PREFETCH_ENABLE != 0U)
__HAL_FLASH_PREFETCH_BUFFER_ENABLE();
80114b4: 4a08 ldr r2, [pc, #32] ; (80114d8 <HAL_Init+0x34>)
80114b6: 4b08 ldr r3, [pc, #32] ; (80114d8 <HAL_Init+0x34>)
80114b8: 681b ldr r3, [r3, #0]
80114ba: f443 7380 orr.w r3, r3, #256 ; 0x100
80114be: 6013 str r3, [r2, #0]
#endif /* PREFETCH_ENABLE */
/* Set Interrupt Group Priority */
HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
80114c0: 2003 movs r0, #3
80114c2: f000 f96d bl 80117a0 <HAL_NVIC_SetPriorityGrouping>
/* Use systick as time base source and configure 1ms tick (default clock after Reset is HSI) */
HAL_InitTick(TICK_INT_PRIORITY);
80114c6: 2000 movs r0, #0
80114c8: f000 f808 bl 80114dc <HAL_InitTick>
/* Init the low level hardware */
HAL_MspInit();
80114cc: f7fe f988 bl 800f7e0 <HAL_MspInit>
/* Return function status */
return HAL_OK;
80114d0: 2300 movs r3, #0
}
80114d2: 4618 mov r0, r3
80114d4: bd80 pop {r7, pc}
80114d6: bf00 nop
80114d8: 40023c00 .word 0x40023c00
080114dc <HAL_InitTick>:
* implementation in user file.
* @param TickPriority Tick interrupt priority.
* @retval HAL status
*/
__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
{
80114dc: b580 push {r7, lr}
80114de: b082 sub sp, #8
80114e0: af00 add r7, sp, #0
80114e2: 6078 str r0, [r7, #4]
/* Configure the SysTick to have interrupt in 1ms time basis*/
if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U)
80114e4: 4b12 ldr r3, [pc, #72] ; (8011530 <HAL_InitTick+0x54>)
80114e6: 681a ldr r2, [r3, #0]
80114e8: 4b12 ldr r3, [pc, #72] ; (8011534 <HAL_InitTick+0x58>)
80114ea: 781b ldrb r3, [r3, #0]
80114ec: 4619 mov r1, r3
80114ee: f44f 737a mov.w r3, #1000 ; 0x3e8
80114f2: fbb3 f3f1 udiv r3, r3, r1
80114f6: fbb2 f3f3 udiv r3, r2, r3
80114fa: 4618 mov r0, r3
80114fc: f000 f993 bl 8011826 <HAL_SYSTICK_Config>
8011500: 4603 mov r3, r0
8011502: 2b00 cmp r3, #0
8011504: d001 beq.n 801150a <HAL_InitTick+0x2e>
{
return HAL_ERROR;
8011506: 2301 movs r3, #1
8011508: e00e b.n 8011528 <HAL_InitTick+0x4c>
}
/* Configure the SysTick IRQ priority */
if (TickPriority < (1UL << __NVIC_PRIO_BITS))
801150a: 687b ldr r3, [r7, #4]
801150c: 2b0f cmp r3, #15
801150e: d80a bhi.n 8011526 <HAL_InitTick+0x4a>
{
HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U);
8011510: 2200 movs r2, #0
8011512: 6879 ldr r1, [r7, #4]
8011514: f04f 30ff mov.w r0, #4294967295
8011518: f000 f94d bl 80117b6 <HAL_NVIC_SetPriority>
uwTickPrio = TickPriority;
801151c: 4a06 ldr r2, [pc, #24] ; (8011538 <HAL_InitTick+0x5c>)
801151e: 687b ldr r3, [r7, #4]
8011520: 6013 str r3, [r2, #0]
{
return HAL_ERROR;
}
/* Return function status */
return HAL_OK;
8011522: 2300 movs r3, #0
8011524: e000 b.n 8011528 <HAL_InitTick+0x4c>
return HAL_ERROR;
8011526: 2301 movs r3, #1
}
8011528: 4618 mov r0, r3
801152a: 3708 adds r7, #8
801152c: 46bd mov sp, r7
801152e: bd80 pop {r7, pc}
8011530: 20020994 .word 0x20020994
8011534: 200209a4 .word 0x200209a4
8011538: 200209a0 .word 0x200209a0
0801153c <HAL_IncTick>:
* @note This function is declared as __weak to be overwritten in case of other
* implementations in user file.
* @retval None
*/
__weak void HAL_IncTick(void)
{
801153c: b480 push {r7}
801153e: af00 add r7, sp, #0
uwTick += uwTickFreq;
8011540: 4b06 ldr r3, [pc, #24] ; (801155c <HAL_IncTick+0x20>)
8011542: 781b ldrb r3, [r3, #0]
8011544: 461a mov r2, r3
8011546: 4b06 ldr r3, [pc, #24] ; (8011560 <HAL_IncTick+0x24>)
8011548: 681b ldr r3, [r3, #0]
801154a: 4413 add r3, r2
801154c: 4a04 ldr r2, [pc, #16] ; (8011560 <HAL_IncTick+0x24>)
801154e: 6013 str r3, [r2, #0]
}
8011550: bf00 nop
8011552: 46bd mov sp, r7
8011554: f85d 7b04 ldr.w r7, [sp], #4
8011558: 4770 bx lr
801155a: bf00 nop
801155c: 200209a4 .word 0x200209a4
8011560: 2006c6c4 .word 0x2006c6c4
08011564 <HAL_GetTick>:
* @note This function is declared as __weak to be overwritten in case of other
* implementations in user file.
* @retval tick value
*/
__weak uint32_t HAL_GetTick(void)
{
8011564: b480 push {r7}
8011566: af00 add r7, sp, #0
return uwTick;
8011568: 4b03 ldr r3, [pc, #12] ; (8011578 <HAL_GetTick+0x14>)
801156a: 681b ldr r3, [r3, #0]
}
801156c: 4618 mov r0, r3
801156e: 46bd mov sp, r7
8011570: f85d 7b04 ldr.w r7, [sp], #4
8011574: 4770 bx lr
8011576: bf00 nop
8011578: 2006c6c4 .word 0x2006c6c4
0801157c <HAL_Delay>:
* implementations in user file.
* @param Delay specifies the delay time length, in milliseconds.
* @retval None
*/
__weak void HAL_Delay(uint32_t Delay)
{
801157c: b580 push {r7, lr}
801157e: b084 sub sp, #16
8011580: af00 add r7, sp, #0
8011582: 6078 str r0, [r7, #4]
uint32_t tickstart = HAL_GetTick();
8011584: f7ff ffee bl 8011564 <HAL_GetTick>
8011588: 60b8 str r0, [r7, #8]
uint32_t wait = Delay;
801158a: 687b ldr r3, [r7, #4]
801158c: 60fb str r3, [r7, #12]
/* Add a freq to guarantee minimum wait */
if (wait < HAL_MAX_DELAY)
801158e: 68fb ldr r3, [r7, #12]
8011590: f1b3 3fff cmp.w r3, #4294967295
8011594: d005 beq.n 80115a2 <HAL_Delay+0x26>
{
wait += (uint32_t)(uwTickFreq);
8011596: 4b09 ldr r3, [pc, #36] ; (80115bc <HAL_Delay+0x40>)
8011598: 781b ldrb r3, [r3, #0]
801159a: 461a mov r2, r3
801159c: 68fb ldr r3, [r7, #12]
801159e: 4413 add r3, r2
80115a0: 60fb str r3, [r7, #12]
}
while ((HAL_GetTick() - tickstart) < wait)
80115a2: bf00 nop
80115a4: f7ff ffde bl 8011564 <HAL_GetTick>
80115a8: 4602 mov r2, r0
80115aa: 68bb ldr r3, [r7, #8]
80115ac: 1ad2 subs r2, r2, r3
80115ae: 68fb ldr r3, [r7, #12]
80115b0: 429a cmp r2, r3
80115b2: d3f7 bcc.n 80115a4 <HAL_Delay+0x28>
{
}
}
80115b4: bf00 nop
80115b6: 3710 adds r7, #16
80115b8: 46bd mov sp, r7
80115ba: bd80 pop {r7, pc}
80115bc: 200209a4 .word 0x200209a4
080115c0 <__NVIC_SetPriorityGrouping>:
In case of a conflict between priority grouping and available
priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set.
\param [in] PriorityGroup Priority grouping field.
*/
__STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
{
80115c0: b480 push {r7}
80115c2: b085 sub sp, #20
80115c4: af00 add r7, sp, #0
80115c6: 6078 str r0, [r7, #4]
uint32_t reg_value;
uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
80115c8: 687b ldr r3, [r7, #4]
80115ca: f003 0307 and.w r3, r3, #7
80115ce: 60fb str r3, [r7, #12]
reg_value = SCB->AIRCR; /* read old register configuration */
80115d0: 4b0b ldr r3, [pc, #44] ; (8011600 <__NVIC_SetPriorityGrouping+0x40>)
80115d2: 68db ldr r3, [r3, #12]
80115d4: 60bb str r3, [r7, #8]
reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */
80115d6: 68ba ldr r2, [r7, #8]
80115d8: f64f 03ff movw r3, #63743 ; 0xf8ff
80115dc: 4013 ands r3, r2
80115de: 60bb str r3, [r7, #8]
reg_value = (reg_value |
((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
(PriorityGroupTmp << SCB_AIRCR_PRIGROUP_Pos) ); /* Insert write key and priority group */
80115e0: 68fb ldr r3, [r7, #12]
80115e2: 021a lsls r2, r3, #8
((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
80115e4: 68bb ldr r3, [r7, #8]
80115e6: 431a orrs r2, r3
reg_value = (reg_value |
80115e8: 4b06 ldr r3, [pc, #24] ; (8011604 <__NVIC_SetPriorityGrouping+0x44>)
80115ea: 4313 orrs r3, r2
80115ec: 60bb str r3, [r7, #8]
SCB->AIRCR = reg_value;
80115ee: 4a04 ldr r2, [pc, #16] ; (8011600 <__NVIC_SetPriorityGrouping+0x40>)
80115f0: 68bb ldr r3, [r7, #8]
80115f2: 60d3 str r3, [r2, #12]
}
80115f4: bf00 nop
80115f6: 3714 adds r7, #20
80115f8: 46bd mov sp, r7
80115fa: f85d 7b04 ldr.w r7, [sp], #4
80115fe: 4770 bx lr
8011600: e000ed00 .word 0xe000ed00
8011604: 05fa0000 .word 0x05fa0000
08011608 <__NVIC_GetPriorityGrouping>:
\brief Get Priority Grouping
\details Reads the priority grouping field from the NVIC Interrupt Controller.
\return Priority grouping field (SCB->AIRCR [10:8] PRIGROUP field).
*/
__STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void)
{
8011608: b480 push {r7}
801160a: af00 add r7, sp, #0
return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos));
801160c: 4b04 ldr r3, [pc, #16] ; (8011620 <__NVIC_GetPriorityGrouping+0x18>)
801160e: 68db ldr r3, [r3, #12]
8011610: 0a1b lsrs r3, r3, #8
8011612: f003 0307 and.w r3, r3, #7
}
8011616: 4618 mov r0, r3
8011618: 46bd mov sp, r7
801161a: f85d 7b04 ldr.w r7, [sp], #4
801161e: 4770 bx lr
8011620: e000ed00 .word 0xe000ed00
08011624 <__NVIC_EnableIRQ>:
\details Enables a device specific interrupt in the NVIC interrupt controller.
\param [in] IRQn Device specific interrupt number.
\note IRQn must not be negative.
*/
__STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn)
{
8011624: b480 push {r7}
8011626: b083 sub sp, #12
8011628: af00 add r7, sp, #0
801162a: 4603 mov r3, r0
801162c: 71fb strb r3, [r7, #7]
if ((int32_t)(IRQn) >= 0)
801162e: f997 3007 ldrsb.w r3, [r7, #7]
8011632: 2b00 cmp r3, #0
8011634: db0b blt.n 801164e <__NVIC_EnableIRQ+0x2a>
{
NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
8011636: 4909 ldr r1, [pc, #36] ; (801165c <__NVIC_EnableIRQ+0x38>)
8011638: f997 3007 ldrsb.w r3, [r7, #7]
801163c: 095b lsrs r3, r3, #5
801163e: 79fa ldrb r2, [r7, #7]
8011640: f002 021f and.w r2, r2, #31
8011644: 2001 movs r0, #1
8011646: fa00 f202 lsl.w r2, r0, r2
801164a: f841 2023 str.w r2, [r1, r3, lsl #2]
}
}
801164e: bf00 nop
8011650: 370c adds r7, #12
8011652: 46bd mov sp, r7
8011654: f85d 7b04 ldr.w r7, [sp], #4
8011658: 4770 bx lr
801165a: bf00 nop
801165c: e000e100 .word 0xe000e100
08011660 <__NVIC_DisableIRQ>:
\details Disables a device specific interrupt in the NVIC interrupt controller.
\param [in] IRQn Device specific interrupt number.
\note IRQn must not be negative.
*/
__STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn)
{
8011660: b480 push {r7}
8011662: b083 sub sp, #12
8011664: af00 add r7, sp, #0
8011666: 4603 mov r3, r0
8011668: 71fb strb r3, [r7, #7]
if ((int32_t)(IRQn) >= 0)
801166a: f997 3007 ldrsb.w r3, [r7, #7]
801166e: 2b00 cmp r3, #0
8011670: db10 blt.n 8011694 <__NVIC_DisableIRQ+0x34>
{
NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
8011672: 490b ldr r1, [pc, #44] ; (80116a0 <__NVIC_DisableIRQ+0x40>)
8011674: f997 3007 ldrsb.w r3, [r7, #7]
8011678: 095b lsrs r3, r3, #5
801167a: 79fa ldrb r2, [r7, #7]
801167c: f002 021f and.w r2, r2, #31
8011680: 2001 movs r0, #1
8011682: fa00 f202 lsl.w r2, r0, r2
8011686: 3320 adds r3, #32
8011688: f841 2023 str.w r2, [r1, r3, lsl #2]
\details Acts as a special kind of Data Memory Barrier.
It completes when all explicit memory accesses before this instruction complete.
*/
__STATIC_FORCEINLINE void __DSB(void)
{
__ASM volatile ("dsb 0xF":::"memory");
801168c: f3bf 8f4f dsb sy
__ASM volatile ("isb 0xF":::"memory");
8011690: f3bf 8f6f isb sy
__DSB();
__ISB();
}
}
8011694: bf00 nop
8011696: 370c adds r7, #12
8011698: 46bd mov sp, r7
801169a: f85d 7b04 ldr.w r7, [sp], #4
801169e: 4770 bx lr
80116a0: e000e100 .word 0xe000e100
080116a4 <__NVIC_SetPriority>:
\param [in] IRQn Interrupt number.
\param [in] priority Priority to set.
\note The priority cannot be set for every processor exception.
*/
__STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
{
80116a4: b480 push {r7}
80116a6: b083 sub sp, #12
80116a8: af00 add r7, sp, #0
80116aa: 4603 mov r3, r0
80116ac: 6039 str r1, [r7, #0]
80116ae: 71fb strb r3, [r7, #7]
if ((int32_t)(IRQn) >= 0)
80116b0: f997 3007 ldrsb.w r3, [r7, #7]
80116b4: 2b00 cmp r3, #0
80116b6: db0a blt.n 80116ce <__NVIC_SetPriority+0x2a>
{
NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
80116b8: 490d ldr r1, [pc, #52] ; (80116f0 <__NVIC_SetPriority+0x4c>)
80116ba: f997 3007 ldrsb.w r3, [r7, #7]
80116be: 683a ldr r2, [r7, #0]
80116c0: b2d2 uxtb r2, r2
80116c2: 0112 lsls r2, r2, #4
80116c4: b2d2 uxtb r2, r2
80116c6: 440b add r3, r1
80116c8: f883 2300 strb.w r2, [r3, #768] ; 0x300
}
else
{
SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
}
}
80116cc: e00a b.n 80116e4 <__NVIC_SetPriority+0x40>
SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
80116ce: 4909 ldr r1, [pc, #36] ; (80116f4 <__NVIC_SetPriority+0x50>)
80116d0: 79fb ldrb r3, [r7, #7]
80116d2: f003 030f and.w r3, r3, #15
80116d6: 3b04 subs r3, #4
80116d8: 683a ldr r2, [r7, #0]
80116da: b2d2 uxtb r2, r2
80116dc: 0112 lsls r2, r2, #4
80116de: b2d2 uxtb r2, r2
80116e0: 440b add r3, r1
80116e2: 761a strb r2, [r3, #24]
}
80116e4: bf00 nop
80116e6: 370c adds r7, #12
80116e8: 46bd mov sp, r7
80116ea: f85d 7b04 ldr.w r7, [sp], #4
80116ee: 4770 bx lr
80116f0: e000e100 .word 0xe000e100
80116f4: e000ed00 .word 0xe000ed00
080116f8 <NVIC_EncodePriority>:
\param [in] PreemptPriority Preemptive priority value (starting from 0).
\param [in] SubPriority Subpriority value (starting from 0).
\return Encoded priority. Value can be used in the function \ref NVIC_SetPriority().
*/
__STATIC_INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)
{
80116f8: b480 push {r7}
80116fa: b089 sub sp, #36 ; 0x24
80116fc: af00 add r7, sp, #0
80116fe: 60f8 str r0, [r7, #12]
8011700: 60b9 str r1, [r7, #8]
8011702: 607a str r2, [r7, #4]
uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
8011704: 68fb ldr r3, [r7, #12]
8011706: f003 0307 and.w r3, r3, #7
801170a: 61fb str r3, [r7, #28]
uint32_t PreemptPriorityBits;
uint32_t SubPriorityBits;
PreemptPriorityBits = ((7UL - PriorityGroupTmp) > (uint32_t)(__NVIC_PRIO_BITS)) ? (uint32_t)(__NVIC_PRIO_BITS) : (uint32_t)(7UL - PriorityGroupTmp);
801170c: 69fb ldr r3, [r7, #28]
801170e: f1c3 0307 rsb r3, r3, #7
8011712: 2b04 cmp r3, #4
8011714: bf28 it cs
8011716: 2304 movcs r3, #4
8011718: 61bb str r3, [r7, #24]
SubPriorityBits = ((PriorityGroupTmp + (uint32_t)(__NVIC_PRIO_BITS)) < (uint32_t)7UL) ? (uint32_t)0UL : (uint32_t)((PriorityGroupTmp - 7UL) + (uint32_t)(__NVIC_PRIO_BITS));
801171a: 69fb ldr r3, [r7, #28]
801171c: 3304 adds r3, #4
801171e: 2b06 cmp r3, #6
8011720: d902 bls.n 8011728 <NVIC_EncodePriority+0x30>
8011722: 69fb ldr r3, [r7, #28]
8011724: 3b03 subs r3, #3
8011726: e000 b.n 801172a <NVIC_EncodePriority+0x32>
8011728: 2300 movs r3, #0
801172a: 617b str r3, [r7, #20]
return (
((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
801172c: 2201 movs r2, #1
801172e: 69bb ldr r3, [r7, #24]
8011730: fa02 f303 lsl.w r3, r2, r3
8011734: 1e5a subs r2, r3, #1
8011736: 68bb ldr r3, [r7, #8]
8011738: 401a ands r2, r3
801173a: 697b ldr r3, [r7, #20]
801173c: 409a lsls r2, r3
((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL)))
801173e: 2101 movs r1, #1
8011740: 697b ldr r3, [r7, #20]
8011742: fa01 f303 lsl.w r3, r1, r3
8011746: 1e59 subs r1, r3, #1
8011748: 687b ldr r3, [r7, #4]
801174a: 400b ands r3, r1
((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
801174c: 4313 orrs r3, r2
);
}
801174e: 4618 mov r0, r3
8011750: 3724 adds r7, #36 ; 0x24
8011752: 46bd mov sp, r7
8011754: f85d 7b04 ldr.w r7, [sp], #4
8011758: 4770 bx lr
...
0801175c <SysTick_Config>:
\note When the variable <b>__Vendor_SysTickConfig</b> is set to 1, then the
function <b>SysTick_Config</b> is not included. In this case, the file <b><i>device</i>.h</b>
must contain a vendor-specific implementation of this function.
*/
__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
{
801175c: b580 push {r7, lr}
801175e: b082 sub sp, #8
8011760: af00 add r7, sp, #0
8011762: 6078 str r0, [r7, #4]
if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk)
8011764: 687b ldr r3, [r7, #4]
8011766: 3b01 subs r3, #1
8011768: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000
801176c: d301 bcc.n 8011772 <SysTick_Config+0x16>
{
return (1UL); /* Reload value impossible */
801176e: 2301 movs r3, #1
8011770: e00f b.n 8011792 <SysTick_Config+0x36>
}
SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */
8011772: 4a0a ldr r2, [pc, #40] ; (801179c <SysTick_Config+0x40>)
8011774: 687b ldr r3, [r7, #4]
8011776: 3b01 subs r3, #1
8011778: 6053 str r3, [r2, #4]
NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */
801177a: 210f movs r1, #15
801177c: f04f 30ff mov.w r0, #4294967295
8011780: f7ff ff90 bl 80116a4 <__NVIC_SetPriority>
SysTick->VAL = 0UL; /* Load the SysTick Counter Value */
8011784: 4b05 ldr r3, [pc, #20] ; (801179c <SysTick_Config+0x40>)
8011786: 2200 movs r2, #0
8011788: 609a str r2, [r3, #8]
SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
801178a: 4b04 ldr r3, [pc, #16] ; (801179c <SysTick_Config+0x40>)
801178c: 2207 movs r2, #7
801178e: 601a str r2, [r3, #0]
SysTick_CTRL_TICKINT_Msk |
SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */
return (0UL); /* Function successful */
8011790: 2300 movs r3, #0
}
8011792: 4618 mov r0, r3
8011794: 3708 adds r7, #8
8011796: 46bd mov sp, r7
8011798: bd80 pop {r7, pc}
801179a: bf00 nop
801179c: e000e010 .word 0xe000e010
080117a0 <HAL_NVIC_SetPriorityGrouping>:
* @note When the NVIC_PriorityGroup_0 is selected, IRQ preemption is no more possible.
* The pending IRQ priority will be managed only by the subpriority.
* @retval None
*/
void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
{
80117a0: b580 push {r7, lr}
80117a2: b082 sub sp, #8
80117a4: af00 add r7, sp, #0
80117a6: 6078 str r0, [r7, #4]
/* Check the parameters */
assert_param(IS_NVIC_PRIORITY_GROUP(PriorityGroup));
/* Set the PRIGROUP[10:8] bits according to the PriorityGroup parameter value */
NVIC_SetPriorityGrouping(PriorityGroup);
80117a8: 6878 ldr r0, [r7, #4]
80117aa: f7ff ff09 bl 80115c0 <__NVIC_SetPriorityGrouping>
}
80117ae: bf00 nop
80117b0: 3708 adds r7, #8
80117b2: 46bd mov sp, r7
80117b4: bd80 pop {r7, pc}
080117b6 <HAL_NVIC_SetPriority>:
* This parameter can be a value between 0 and 15
* A lower priority value indicates a higher priority.
* @retval None
*/
void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
{
80117b6: b580 push {r7, lr}
80117b8: b086 sub sp, #24
80117ba: af00 add r7, sp, #0
80117bc: 4603 mov r3, r0
80117be: 60b9 str r1, [r7, #8]
80117c0: 607a str r2, [r7, #4]
80117c2: 73fb strb r3, [r7, #15]
uint32_t prioritygroup = 0x00;
80117c4: 2300 movs r3, #0
80117c6: 617b str r3, [r7, #20]
/* Check the parameters */
assert_param(IS_NVIC_SUB_PRIORITY(SubPriority));
assert_param(IS_NVIC_PREEMPTION_PRIORITY(PreemptPriority));
prioritygroup = NVIC_GetPriorityGrouping();
80117c8: f7ff ff1e bl 8011608 <__NVIC_GetPriorityGrouping>
80117cc: 6178 str r0, [r7, #20]
NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority));
80117ce: 687a ldr r2, [r7, #4]
80117d0: 68b9 ldr r1, [r7, #8]
80117d2: 6978 ldr r0, [r7, #20]
80117d4: f7ff ff90 bl 80116f8 <NVIC_EncodePriority>
80117d8: 4602 mov r2, r0
80117da: f997 300f ldrsb.w r3, [r7, #15]
80117de: 4611 mov r1, r2
80117e0: 4618 mov r0, r3
80117e2: f7ff ff5f bl 80116a4 <__NVIC_SetPriority>
}
80117e6: bf00 nop
80117e8: 3718 adds r7, #24
80117ea: 46bd mov sp, r7
80117ec: bd80 pop {r7, pc}
080117ee <HAL_NVIC_EnableIRQ>:
* This parameter can be an enumerator of IRQn_Type enumeration
* (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32f7xxxx.h))
* @retval None
*/
void HAL_NVIC_EnableIRQ(IRQn_Type IRQn)
{
80117ee: b580 push {r7, lr}
80117f0: b082 sub sp, #8
80117f2: af00 add r7, sp, #0
80117f4: 4603 mov r3, r0
80117f6: 71fb strb r3, [r7, #7]
/* Check the parameters */
assert_param(IS_NVIC_DEVICE_IRQ(IRQn));
/* Enable interrupt */
NVIC_EnableIRQ(IRQn);
80117f8: f997 3007 ldrsb.w r3, [r7, #7]
80117fc: 4618 mov r0, r3
80117fe: f7ff ff11 bl 8011624 <__NVIC_EnableIRQ>
}
8011802: bf00 nop
8011804: 3708 adds r7, #8
8011806: 46bd mov sp, r7
8011808: bd80 pop {r7, pc}
0801180a <HAL_NVIC_DisableIRQ>:
* This parameter can be an enumerator of IRQn_Type enumeration
* (For the complete STM32 Devices IRQ Channels list, please refer to the appropriate CMSIS device file (stm32f7xxxx.h))
* @retval None
*/
void HAL_NVIC_DisableIRQ(IRQn_Type IRQn)
{
801180a: b580 push {r7, lr}
801180c: b082 sub sp, #8
801180e: af00 add r7, sp, #0
8011810: 4603 mov r3, r0
8011812: 71fb strb r3, [r7, #7]
/* Check the parameters */
assert_param(IS_NVIC_DEVICE_IRQ(IRQn));
/* Disable interrupt */
NVIC_DisableIRQ(IRQn);
8011814: f997 3007 ldrsb.w r3, [r7, #7]
8011818: 4618 mov r0, r3
801181a: f7ff ff21 bl 8011660 <__NVIC_DisableIRQ>
}
801181e: bf00 nop
8011820: 3708 adds r7, #8
8011822: 46bd mov sp, r7
8011824: bd80 pop {r7, pc}
08011826 <HAL_SYSTICK_Config>:
* @param TicksNumb Specifies the ticks Number of ticks between two interrupts.
* @retval status: - 0 Function succeeded.
* - 1 Function failed.
*/
uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb)
{
8011826: b580 push {r7, lr}
8011828: b082 sub sp, #8
801182a: af00 add r7, sp, #0
801182c: 6078 str r0, [r7, #4]
return SysTick_Config(TicksNumb);
801182e: 6878 ldr r0, [r7, #4]
8011830: f7ff ff94 bl 801175c <SysTick_Config>
8011834: 4603 mov r3, r0
}
8011836: 4618 mov r0, r3
8011838: 3708 adds r7, #8
801183a: 46bd mov sp, r7
801183c: bd80 pop {r7, pc}
0801183e <HAL_DMA_Abort>:
* and the Stream will be effectively disabled only after the transfer of
* this single data is finished.
* @retval HAL status
*/
HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma)
{
801183e: b580 push {r7, lr}
8011840: b084 sub sp, #16
8011842: af00 add r7, sp, #0
8011844: 6078 str r0, [r7, #4]
/* calculate DMA base and stream number */
DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress;
8011846: 687b ldr r3, [r7, #4]
8011848: 6d9b ldr r3, [r3, #88] ; 0x58
801184a: 60fb str r3, [r7, #12]
uint32_t tickstart = HAL_GetTick();
801184c: f7ff fe8a bl 8011564 <HAL_GetTick>
8011850: 60b8 str r0, [r7, #8]
if(hdma->State != HAL_DMA_STATE_BUSY)
8011852: 687b ldr r3, [r7, #4]
8011854: f893 3035 ldrb.w r3, [r3, #53] ; 0x35
8011858: b2db uxtb r3, r3
801185a: 2b02 cmp r3, #2
801185c: d008 beq.n 8011870 <HAL_DMA_Abort+0x32>
{
hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER;
801185e: 687b ldr r3, [r7, #4]
8011860: 2280 movs r2, #128 ; 0x80
8011862: 655a str r2, [r3, #84] ; 0x54
/* Process Unlocked */
__HAL_UNLOCK(hdma);
8011864: 687b ldr r3, [r7, #4]
8011866: 2200 movs r2, #0
8011868: f883 2034 strb.w r2, [r3, #52] ; 0x34
return HAL_ERROR;
801186c: 2301 movs r3, #1
801186e: e052 b.n 8011916 <HAL_DMA_Abort+0xd8>
}
else
{
/* Disable all the transfer interrupts */
hdma->Instance->CR &= ~(DMA_IT_TC | DMA_IT_TE | DMA_IT_DME);
8011870: 687b ldr r3, [r7, #4]
8011872: 681b ldr r3, [r3, #0]
8011874: 687a ldr r2, [r7, #4]
8011876: 6812 ldr r2, [r2, #0]
8011878: 6812 ldr r2, [r2, #0]
801187a: f022 0216 bic.w r2, r2, #22
801187e: 601a str r2, [r3, #0]
hdma->Instance->FCR &= ~(DMA_IT_FE);
8011880: 687b ldr r3, [r7, #4]
8011882: 681b ldr r3, [r3, #0]
8011884: 687a ldr r2, [r7, #4]
8011886: 6812 ldr r2, [r2, #0]
8011888: 6952 ldr r2, [r2, #20]
801188a: f022 0280 bic.w r2, r2, #128 ; 0x80
801188e: 615a str r2, [r3, #20]
if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL))
8011890: 687b ldr r3, [r7, #4]
8011892: 6c1b ldr r3, [r3, #64] ; 0x40
8011894: 2b00 cmp r3, #0
8011896: d103 bne.n 80118a0 <HAL_DMA_Abort+0x62>
8011898: 687b ldr r3, [r7, #4]
801189a: 6c9b ldr r3, [r3, #72] ; 0x48
801189c: 2b00 cmp r3, #0
801189e: d007 beq.n 80118b0 <HAL_DMA_Abort+0x72>
{
hdma->Instance->CR &= ~(DMA_IT_HT);
80118a0: 687b ldr r3, [r7, #4]
80118a2: 681b ldr r3, [r3, #0]
80118a4: 687a ldr r2, [r7, #4]
80118a6: 6812 ldr r2, [r2, #0]
80118a8: 6812 ldr r2, [r2, #0]
80118aa: f022 0208 bic.w r2, r2, #8
80118ae: 601a str r2, [r3, #0]
}
/* Disable the stream */
__HAL_DMA_DISABLE(hdma);
80118b0: 687b ldr r3, [r7, #4]
80118b2: 681b ldr r3, [r3, #0]
80118b4: 687a ldr r2, [r7, #4]
80118b6: 6812 ldr r2, [r2, #0]
80118b8: 6812 ldr r2, [r2, #0]
80118ba: f022 0201 bic.w r2, r2, #1
80118be: 601a str r2, [r3, #0]
/* Check if the DMA Stream is effectively disabled */
while((hdma->Instance->CR & DMA_SxCR_EN) != RESET)
80118c0: e013 b.n 80118ea <HAL_DMA_Abort+0xac>
{
/* Check for the Timeout */
if((HAL_GetTick() - tickstart ) > HAL_TIMEOUT_DMA_ABORT)
80118c2: f7ff fe4f bl 8011564 <HAL_GetTick>
80118c6: 4602 mov r2, r0
80118c8: 68bb ldr r3, [r7, #8]
80118ca: 1ad3 subs r3, r2, r3
80118cc: 2b05 cmp r3, #5
80118ce: d90c bls.n 80118ea <HAL_DMA_Abort+0xac>
{
/* Update error code */
hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT;
80118d0: 687b ldr r3, [r7, #4]
80118d2: 2220 movs r2, #32
80118d4: 655a str r2, [r3, #84] ; 0x54
/* Change the DMA state */
hdma->State = HAL_DMA_STATE_TIMEOUT;
80118d6: 687b ldr r3, [r7, #4]
80118d8: 2203 movs r2, #3
80118da: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Process Unlocked */
__HAL_UNLOCK(hdma);
80118de: 687b ldr r3, [r7, #4]
80118e0: 2200 movs r2, #0
80118e2: f883 2034 strb.w r2, [r3, #52] ; 0x34
return HAL_TIMEOUT;
80118e6: 2303 movs r3, #3
80118e8: e015 b.n 8011916 <HAL_DMA_Abort+0xd8>
while((hdma->Instance->CR & DMA_SxCR_EN) != RESET)
80118ea: 687b ldr r3, [r7, #4]
80118ec: 681b ldr r3, [r3, #0]
80118ee: 681b ldr r3, [r3, #0]
80118f0: f003 0301 and.w r3, r3, #1
80118f4: 2b00 cmp r3, #0
80118f6: d1e4 bne.n 80118c2 <HAL_DMA_Abort+0x84>
}
}
/* Clear all interrupt flags at correct offset within the register */
regs->IFCR = 0x3FU << hdma->StreamIndex;
80118f8: 687b ldr r3, [r7, #4]
80118fa: 6ddb ldr r3, [r3, #92] ; 0x5c
80118fc: 223f movs r2, #63 ; 0x3f
80118fe: 409a lsls r2, r3
8011900: 68fb ldr r3, [r7, #12]
8011902: 609a str r2, [r3, #8]
/* Change the DMA state*/
hdma->State = HAL_DMA_STATE_READY;
8011904: 687b ldr r3, [r7, #4]
8011906: 2201 movs r2, #1
8011908: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Process Unlocked */
__HAL_UNLOCK(hdma);
801190c: 687b ldr r3, [r7, #4]
801190e: 2200 movs r2, #0
8011910: f883 2034 strb.w r2, [r3, #52] ; 0x34
}
return HAL_OK;
8011914: 2300 movs r3, #0
}
8011916: 4618 mov r0, r3
8011918: 3710 adds r7, #16
801191a: 46bd mov sp, r7
801191c: bd80 pop {r7, pc}
0801191e <HAL_DMA_Abort_IT>:
* @param hdma pointer to a DMA_HandleTypeDef structure that contains
* the configuration information for the specified DMA Stream.
* @retval HAL status
*/
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
{
801191e: b480 push {r7}
8011920: b083 sub sp, #12
8011922: af00 add r7, sp, #0
8011924: 6078 str r0, [r7, #4]
if(hdma->State != HAL_DMA_STATE_BUSY)
8011926: 687b ldr r3, [r7, #4]
8011928: f893 3035 ldrb.w r3, [r3, #53] ; 0x35
801192c: b2db uxtb r3, r3
801192e: 2b02 cmp r3, #2
8011930: d004 beq.n 801193c <HAL_DMA_Abort_IT+0x1e>
{
hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER;
8011932: 687b ldr r3, [r7, #4]
8011934: 2280 movs r2, #128 ; 0x80
8011936: 655a str r2, [r3, #84] ; 0x54
return HAL_ERROR;
8011938: 2301 movs r3, #1
801193a: e00c b.n 8011956 <HAL_DMA_Abort_IT+0x38>
}
else
{
/* Set Abort State */
hdma->State = HAL_DMA_STATE_ABORT;
801193c: 687b ldr r3, [r7, #4]
801193e: 2205 movs r2, #5
8011940: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Disable the stream */
__HAL_DMA_DISABLE(hdma);
8011944: 687b ldr r3, [r7, #4]
8011946: 681b ldr r3, [r3, #0]
8011948: 687a ldr r2, [r7, #4]
801194a: 6812 ldr r2, [r2, #0]
801194c: 6812 ldr r2, [r2, #0]
801194e: f022 0201 bic.w r2, r2, #1
8011952: 601a str r2, [r3, #0]
}
return HAL_OK;
8011954: 2300 movs r3, #0
}
8011956: 4618 mov r0, r3
8011958: 370c adds r7, #12
801195a: 46bd mov sp, r7
801195c: f85d 7b04 ldr.w r7, [sp], #4
8011960: 4770 bx lr
...
08011964 <HAL_DMA_IRQHandler>:
* @param hdma pointer to a DMA_HandleTypeDef structure that contains
* the configuration information for the specified DMA Stream.
* @retval None
*/
void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma)
{
8011964: b580 push {r7, lr}
8011966: b086 sub sp, #24
8011968: af00 add r7, sp, #0
801196a: 6078 str r0, [r7, #4]
uint32_t tmpisr;
__IO uint32_t count = 0;
801196c: 2300 movs r3, #0
801196e: 60bb str r3, [r7, #8]
uint32_t timeout = SystemCoreClock / 9600;
8011970: 4b92 ldr r3, [pc, #584] ; (8011bbc <HAL_DMA_IRQHandler+0x258>)
8011972: 681b ldr r3, [r3, #0]
8011974: 4a92 ldr r2, [pc, #584] ; (8011bc0 <HAL_DMA_IRQHandler+0x25c>)
8011976: fba2 2303 umull r2, r3, r2, r3
801197a: 0a9b lsrs r3, r3, #10
801197c: 617b str r3, [r7, #20]
/* calculate DMA base and stream number */
DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress;
801197e: 687b ldr r3, [r7, #4]
8011980: 6d9b ldr r3, [r3, #88] ; 0x58
8011982: 613b str r3, [r7, #16]
tmpisr = regs->ISR;
8011984: 693b ldr r3, [r7, #16]
8011986: 681b ldr r3, [r3, #0]
8011988: 60fb str r3, [r7, #12]
/* Transfer Error Interrupt management ***************************************/
if ((tmpisr & (DMA_FLAG_TEIF0_4 << hdma->StreamIndex)) != RESET)
801198a: 687b ldr r3, [r7, #4]
801198c: 6ddb ldr r3, [r3, #92] ; 0x5c
801198e: 2208 movs r2, #8
8011990: 409a lsls r2, r3
8011992: 68fb ldr r3, [r7, #12]
8011994: 4013 ands r3, r2
8011996: 2b00 cmp r3, #0
8011998: d01a beq.n 80119d0 <HAL_DMA_IRQHandler+0x6c>
{
if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TE) != RESET)
801199a: 687b ldr r3, [r7, #4]
801199c: 681b ldr r3, [r3, #0]
801199e: 681b ldr r3, [r3, #0]
80119a0: f003 0304 and.w r3, r3, #4
80119a4: 2b00 cmp r3, #0
80119a6: d013 beq.n 80119d0 <HAL_DMA_IRQHandler+0x6c>
{
/* Disable the transfer error interrupt */
hdma->Instance->CR &= ~(DMA_IT_TE);
80119a8: 687b ldr r3, [r7, #4]
80119aa: 681b ldr r3, [r3, #0]
80119ac: 687a ldr r2, [r7, #4]
80119ae: 6812 ldr r2, [r2, #0]
80119b0: 6812 ldr r2, [r2, #0]
80119b2: f022 0204 bic.w r2, r2, #4
80119b6: 601a str r2, [r3, #0]
/* Clear the transfer error flag */
regs->IFCR = DMA_FLAG_TEIF0_4 << hdma->StreamIndex;
80119b8: 687b ldr r3, [r7, #4]
80119ba: 6ddb ldr r3, [r3, #92] ; 0x5c
80119bc: 2208 movs r2, #8
80119be: 409a lsls r2, r3
80119c0: 693b ldr r3, [r7, #16]
80119c2: 609a str r2, [r3, #8]
/* Update error code */
hdma->ErrorCode |= HAL_DMA_ERROR_TE;
80119c4: 687b ldr r3, [r7, #4]
80119c6: 6d5b ldr r3, [r3, #84] ; 0x54
80119c8: f043 0201 orr.w r2, r3, #1
80119cc: 687b ldr r3, [r7, #4]
80119ce: 655a str r2, [r3, #84] ; 0x54
}
}
/* FIFO Error Interrupt management ******************************************/
if ((tmpisr & (DMA_FLAG_FEIF0_4 << hdma->StreamIndex)) != RESET)
80119d0: 687b ldr r3, [r7, #4]
80119d2: 6ddb ldr r3, [r3, #92] ; 0x5c
80119d4: 2201 movs r2, #1
80119d6: 409a lsls r2, r3
80119d8: 68fb ldr r3, [r7, #12]
80119da: 4013 ands r3, r2
80119dc: 2b00 cmp r3, #0
80119de: d012 beq.n 8011a06 <HAL_DMA_IRQHandler+0xa2>
{
if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_FE) != RESET)
80119e0: 687b ldr r3, [r7, #4]
80119e2: 681b ldr r3, [r3, #0]
80119e4: 695b ldr r3, [r3, #20]
80119e6: f003 0380 and.w r3, r3, #128 ; 0x80
80119ea: 2b00 cmp r3, #0
80119ec: d00b beq.n 8011a06 <HAL_DMA_IRQHandler+0xa2>
{
/* Clear the FIFO error flag */
regs->IFCR = DMA_FLAG_FEIF0_4 << hdma->StreamIndex;
80119ee: 687b ldr r3, [r7, #4]
80119f0: 6ddb ldr r3, [r3, #92] ; 0x5c
80119f2: 2201 movs r2, #1
80119f4: 409a lsls r2, r3
80119f6: 693b ldr r3, [r7, #16]
80119f8: 609a str r2, [r3, #8]
/* Update error code */
hdma->ErrorCode |= HAL_DMA_ERROR_FE;
80119fa: 687b ldr r3, [r7, #4]
80119fc: 6d5b ldr r3, [r3, #84] ; 0x54
80119fe: f043 0202 orr.w r2, r3, #2
8011a02: 687b ldr r3, [r7, #4]
8011a04: 655a str r2, [r3, #84] ; 0x54
}
}
/* Direct Mode Error Interrupt management ***********************************/
if ((tmpisr & (DMA_FLAG_DMEIF0_4 << hdma->StreamIndex)) != RESET)
8011a06: 687b ldr r3, [r7, #4]
8011a08: 6ddb ldr r3, [r3, #92] ; 0x5c
8011a0a: 2204 movs r2, #4
8011a0c: 409a lsls r2, r3
8011a0e: 68fb ldr r3, [r7, #12]
8011a10: 4013 ands r3, r2
8011a12: 2b00 cmp r3, #0
8011a14: d012 beq.n 8011a3c <HAL_DMA_IRQHandler+0xd8>
{
if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_DME) != RESET)
8011a16: 687b ldr r3, [r7, #4]
8011a18: 681b ldr r3, [r3, #0]
8011a1a: 681b ldr r3, [r3, #0]
8011a1c: f003 0302 and.w r3, r3, #2
8011a20: 2b00 cmp r3, #0
8011a22: d00b beq.n 8011a3c <HAL_DMA_IRQHandler+0xd8>
{
/* Clear the direct mode error flag */
regs->IFCR = DMA_FLAG_DMEIF0_4 << hdma->StreamIndex;
8011a24: 687b ldr r3, [r7, #4]
8011a26: 6ddb ldr r3, [r3, #92] ; 0x5c
8011a28: 2204 movs r2, #4
8011a2a: 409a lsls r2, r3
8011a2c: 693b ldr r3, [r7, #16]
8011a2e: 609a str r2, [r3, #8]
/* Update error code */
hdma->ErrorCode |= HAL_DMA_ERROR_DME;
8011a30: 687b ldr r3, [r7, #4]
8011a32: 6d5b ldr r3, [r3, #84] ; 0x54
8011a34: f043 0204 orr.w r2, r3, #4
8011a38: 687b ldr r3, [r7, #4]
8011a3a: 655a str r2, [r3, #84] ; 0x54
}
}
/* Half Transfer Complete Interrupt management ******************************/
if ((tmpisr & (DMA_FLAG_HTIF0_4 << hdma->StreamIndex)) != RESET)
8011a3c: 687b ldr r3, [r7, #4]
8011a3e: 6ddb ldr r3, [r3, #92] ; 0x5c
8011a40: 2210 movs r2, #16
8011a42: 409a lsls r2, r3
8011a44: 68fb ldr r3, [r7, #12]
8011a46: 4013 ands r3, r2
8011a48: 2b00 cmp r3, #0
8011a4a: d043 beq.n 8011ad4 <HAL_DMA_IRQHandler+0x170>
{
if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_HT) != RESET)
8011a4c: 687b ldr r3, [r7, #4]
8011a4e: 681b ldr r3, [r3, #0]
8011a50: 681b ldr r3, [r3, #0]
8011a52: f003 0308 and.w r3, r3, #8
8011a56: 2b00 cmp r3, #0
8011a58: d03c beq.n 8011ad4 <HAL_DMA_IRQHandler+0x170>
{
/* Clear the half transfer complete flag */
regs->IFCR = DMA_FLAG_HTIF0_4 << hdma->StreamIndex;
8011a5a: 687b ldr r3, [r7, #4]
8011a5c: 6ddb ldr r3, [r3, #92] ; 0x5c
8011a5e: 2210 movs r2, #16
8011a60: 409a lsls r2, r3
8011a62: 693b ldr r3, [r7, #16]
8011a64: 609a str r2, [r3, #8]
/* Multi_Buffering mode enabled */
if(((hdma->Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET)
8011a66: 687b ldr r3, [r7, #4]
8011a68: 681b ldr r3, [r3, #0]
8011a6a: 681b ldr r3, [r3, #0]
8011a6c: f403 2380 and.w r3, r3, #262144 ; 0x40000
8011a70: 2b00 cmp r3, #0
8011a72: d018 beq.n 8011aa6 <HAL_DMA_IRQHandler+0x142>
{
/* Current memory buffer used is Memory 0 */
if((hdma->Instance->CR & DMA_SxCR_CT) == RESET)
8011a74: 687b ldr r3, [r7, #4]
8011a76: 681b ldr r3, [r3, #0]
8011a78: 681b ldr r3, [r3, #0]
8011a7a: f403 2300 and.w r3, r3, #524288 ; 0x80000
8011a7e: 2b00 cmp r3, #0
8011a80: d108 bne.n 8011a94 <HAL_DMA_IRQHandler+0x130>
{
if(hdma->XferHalfCpltCallback != NULL)
8011a82: 687b ldr r3, [r7, #4]
8011a84: 6c1b ldr r3, [r3, #64] ; 0x40
8011a86: 2b00 cmp r3, #0
8011a88: d024 beq.n 8011ad4 <HAL_DMA_IRQHandler+0x170>
{
/* Half transfer callback */
hdma->XferHalfCpltCallback(hdma);
8011a8a: 687b ldr r3, [r7, #4]
8011a8c: 6c1b ldr r3, [r3, #64] ; 0x40
8011a8e: 6878 ldr r0, [r7, #4]
8011a90: 4798 blx r3
8011a92: e01f b.n 8011ad4 <HAL_DMA_IRQHandler+0x170>
}
}
/* Current memory buffer used is Memory 1 */
else
{
if(hdma->XferM1HalfCpltCallback != NULL)
8011a94: 687b ldr r3, [r7, #4]
8011a96: 6c9b ldr r3, [r3, #72] ; 0x48
8011a98: 2b00 cmp r3, #0
8011a9a: d01b beq.n 8011ad4 <HAL_DMA_IRQHandler+0x170>
{
/* Half transfer callback */
hdma->XferM1HalfCpltCallback(hdma);
8011a9c: 687b ldr r3, [r7, #4]
8011a9e: 6c9b ldr r3, [r3, #72] ; 0x48
8011aa0: 6878 ldr r0, [r7, #4]
8011aa2: 4798 blx r3
8011aa4: e016 b.n 8011ad4 <HAL_DMA_IRQHandler+0x170>
}
}
else
{
/* Disable the half transfer interrupt if the DMA mode is not CIRCULAR */
if((hdma->Instance->CR & DMA_SxCR_CIRC) == RESET)
8011aa6: 687b ldr r3, [r7, #4]
8011aa8: 681b ldr r3, [r3, #0]
8011aaa: 681b ldr r3, [r3, #0]
8011aac: f403 7380 and.w r3, r3, #256 ; 0x100
8011ab0: 2b00 cmp r3, #0
8011ab2: d107 bne.n 8011ac4 <HAL_DMA_IRQHandler+0x160>
{
/* Disable the half transfer interrupt */
hdma->Instance->CR &= ~(DMA_IT_HT);
8011ab4: 687b ldr r3, [r7, #4]
8011ab6: 681b ldr r3, [r3, #0]
8011ab8: 687a ldr r2, [r7, #4]
8011aba: 6812 ldr r2, [r2, #0]
8011abc: 6812 ldr r2, [r2, #0]
8011abe: f022 0208 bic.w r2, r2, #8
8011ac2: 601a str r2, [r3, #0]
}
if(hdma->XferHalfCpltCallback != NULL)
8011ac4: 687b ldr r3, [r7, #4]
8011ac6: 6c1b ldr r3, [r3, #64] ; 0x40
8011ac8: 2b00 cmp r3, #0
8011aca: d003 beq.n 8011ad4 <HAL_DMA_IRQHandler+0x170>
{
/* Half transfer callback */
hdma->XferHalfCpltCallback(hdma);
8011acc: 687b ldr r3, [r7, #4]
8011ace: 6c1b ldr r3, [r3, #64] ; 0x40
8011ad0: 6878 ldr r0, [r7, #4]
8011ad2: 4798 blx r3
}
}
}
}
/* Transfer Complete Interrupt management ***********************************/
if ((tmpisr & (DMA_FLAG_TCIF0_4 << hdma->StreamIndex)) != RESET)
8011ad4: 687b ldr r3, [r7, #4]
8011ad6: 6ddb ldr r3, [r3, #92] ; 0x5c
8011ad8: 2220 movs r2, #32
8011ada: 409a lsls r2, r3
8011adc: 68fb ldr r3, [r7, #12]
8011ade: 4013 ands r3, r2
8011ae0: 2b00 cmp r3, #0
8011ae2: f000 808e beq.w 8011c02 <HAL_DMA_IRQHandler+0x29e>
{
if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TC) != RESET)
8011ae6: 687b ldr r3, [r7, #4]
8011ae8: 681b ldr r3, [r3, #0]
8011aea: 681b ldr r3, [r3, #0]
8011aec: f003 0310 and.w r3, r3, #16
8011af0: 2b00 cmp r3, #0
8011af2: f000 8086 beq.w 8011c02 <HAL_DMA_IRQHandler+0x29e>
{
/* Clear the transfer complete flag */
regs->IFCR = DMA_FLAG_TCIF0_4 << hdma->StreamIndex;
8011af6: 687b ldr r3, [r7, #4]
8011af8: 6ddb ldr r3, [r3, #92] ; 0x5c
8011afa: 2220 movs r2, #32
8011afc: 409a lsls r2, r3
8011afe: 693b ldr r3, [r7, #16]
8011b00: 609a str r2, [r3, #8]
if(HAL_DMA_STATE_ABORT == hdma->State)
8011b02: 687b ldr r3, [r7, #4]
8011b04: f893 3035 ldrb.w r3, [r3, #53] ; 0x35
8011b08: b2db uxtb r3, r3
8011b0a: 2b05 cmp r3, #5
8011b0c: d136 bne.n 8011b7c <HAL_DMA_IRQHandler+0x218>
{
/* Disable all the transfer interrupts */
hdma->Instance->CR &= ~(DMA_IT_TC | DMA_IT_TE | DMA_IT_DME);
8011b0e: 687b ldr r3, [r7, #4]
8011b10: 681b ldr r3, [r3, #0]
8011b12: 687a ldr r2, [r7, #4]
8011b14: 6812 ldr r2, [r2, #0]
8011b16: 6812 ldr r2, [r2, #0]
8011b18: f022 0216 bic.w r2, r2, #22
8011b1c: 601a str r2, [r3, #0]
hdma->Instance->FCR &= ~(DMA_IT_FE);
8011b1e: 687b ldr r3, [r7, #4]
8011b20: 681b ldr r3, [r3, #0]
8011b22: 687a ldr r2, [r7, #4]
8011b24: 6812 ldr r2, [r2, #0]
8011b26: 6952 ldr r2, [r2, #20]
8011b28: f022 0280 bic.w r2, r2, #128 ; 0x80
8011b2c: 615a str r2, [r3, #20]
if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL))
8011b2e: 687b ldr r3, [r7, #4]
8011b30: 6c1b ldr r3, [r3, #64] ; 0x40
8011b32: 2b00 cmp r3, #0
8011b34: d103 bne.n 8011b3e <HAL_DMA_IRQHandler+0x1da>
8011b36: 687b ldr r3, [r7, #4]
8011b38: 6c9b ldr r3, [r3, #72] ; 0x48
8011b3a: 2b00 cmp r3, #0
8011b3c: d007 beq.n 8011b4e <HAL_DMA_IRQHandler+0x1ea>
{
hdma->Instance->CR &= ~(DMA_IT_HT);
8011b3e: 687b ldr r3, [r7, #4]
8011b40: 681b ldr r3, [r3, #0]
8011b42: 687a ldr r2, [r7, #4]
8011b44: 6812 ldr r2, [r2, #0]
8011b46: 6812 ldr r2, [r2, #0]
8011b48: f022 0208 bic.w r2, r2, #8
8011b4c: 601a str r2, [r3, #0]
}
/* Clear all interrupt flags at correct offset within the register */
regs->IFCR = 0x3FU << hdma->StreamIndex;
8011b4e: 687b ldr r3, [r7, #4]
8011b50: 6ddb ldr r3, [r3, #92] ; 0x5c
8011b52: 223f movs r2, #63 ; 0x3f
8011b54: 409a lsls r2, r3
8011b56: 693b ldr r3, [r7, #16]
8011b58: 609a str r2, [r3, #8]
/* Change the DMA state */
hdma->State = HAL_DMA_STATE_READY;
8011b5a: 687b ldr r3, [r7, #4]
8011b5c: 2201 movs r2, #1
8011b5e: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Process Unlocked */
__HAL_UNLOCK(hdma);
8011b62: 687b ldr r3, [r7, #4]
8011b64: 2200 movs r2, #0
8011b66: f883 2034 strb.w r2, [r3, #52] ; 0x34
if(hdma->XferAbortCallback != NULL)
8011b6a: 687b ldr r3, [r7, #4]
8011b6c: 6d1b ldr r3, [r3, #80] ; 0x50
8011b6e: 2b00 cmp r3, #0
8011b70: d07d beq.n 8011c6e <HAL_DMA_IRQHandler+0x30a>
{
hdma->XferAbortCallback(hdma);
8011b72: 687b ldr r3, [r7, #4]
8011b74: 6d1b ldr r3, [r3, #80] ; 0x50
8011b76: 6878 ldr r0, [r7, #4]
8011b78: 4798 blx r3
}
return;
8011b7a: e078 b.n 8011c6e <HAL_DMA_IRQHandler+0x30a>
}
if(((hdma->Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET)
8011b7c: 687b ldr r3, [r7, #4]
8011b7e: 681b ldr r3, [r3, #0]
8011b80: 681b ldr r3, [r3, #0]
8011b82: f403 2380 and.w r3, r3, #262144 ; 0x40000
8011b86: 2b00 cmp r3, #0
8011b88: d01c beq.n 8011bc4 <HAL_DMA_IRQHandler+0x260>
{
/* Current memory buffer used is Memory 0 */
if((hdma->Instance->CR & DMA_SxCR_CT) == RESET)
8011b8a: 687b ldr r3, [r7, #4]
8011b8c: 681b ldr r3, [r3, #0]
8011b8e: 681b ldr r3, [r3, #0]
8011b90: f403 2300 and.w r3, r3, #524288 ; 0x80000
8011b94: 2b00 cmp r3, #0
8011b96: d108 bne.n 8011baa <HAL_DMA_IRQHandler+0x246>
{
if(hdma->XferM1CpltCallback != NULL)
8011b98: 687b ldr r3, [r7, #4]
8011b9a: 6c5b ldr r3, [r3, #68] ; 0x44
8011b9c: 2b00 cmp r3, #0
8011b9e: d030 beq.n 8011c02 <HAL_DMA_IRQHandler+0x29e>
{
/* Transfer complete Callback for memory1 */
hdma->XferM1CpltCallback(hdma);
8011ba0: 687b ldr r3, [r7, #4]
8011ba2: 6c5b ldr r3, [r3, #68] ; 0x44
8011ba4: 6878 ldr r0, [r7, #4]
8011ba6: 4798 blx r3
8011ba8: e02b b.n 8011c02 <HAL_DMA_IRQHandler+0x29e>
}
}
/* Current memory buffer used is Memory 1 */
else
{
if(hdma->XferCpltCallback != NULL)
8011baa: 687b ldr r3, [r7, #4]
8011bac: 6bdb ldr r3, [r3, #60] ; 0x3c
8011bae: 2b00 cmp r3, #0
8011bb0: d027 beq.n 8011c02 <HAL_DMA_IRQHandler+0x29e>
{
/* Transfer complete Callback for memory0 */
hdma->XferCpltCallback(hdma);
8011bb2: 687b ldr r3, [r7, #4]
8011bb4: 6bdb ldr r3, [r3, #60] ; 0x3c
8011bb6: 6878 ldr r0, [r7, #4]
8011bb8: 4798 blx r3
8011bba: e022 b.n 8011c02 <HAL_DMA_IRQHandler+0x29e>
8011bbc: 20020994 .word 0x20020994
8011bc0: 1b4e81b5 .word 0x1b4e81b5
}
}
/* Disable the transfer complete interrupt if the DMA mode is not CIRCULAR */
else
{
if((hdma->Instance->CR & DMA_SxCR_CIRC) == RESET)
8011bc4: 687b ldr r3, [r7, #4]
8011bc6: 681b ldr r3, [r3, #0]
8011bc8: 681b ldr r3, [r3, #0]
8011bca: f403 7380 and.w r3, r3, #256 ; 0x100
8011bce: 2b00 cmp r3, #0
8011bd0: d10f bne.n 8011bf2 <HAL_DMA_IRQHandler+0x28e>
{
/* Disable the transfer complete interrupt */
hdma->Instance->CR &= ~(DMA_IT_TC);
8011bd2: 687b ldr r3, [r7, #4]
8011bd4: 681b ldr r3, [r3, #0]
8011bd6: 687a ldr r2, [r7, #4]
8011bd8: 6812 ldr r2, [r2, #0]
8011bda: 6812 ldr r2, [r2, #0]
8011bdc: f022 0210 bic.w r2, r2, #16
8011be0: 601a str r2, [r3, #0]
/* Change the DMA state */
hdma->State = HAL_DMA_STATE_READY;
8011be2: 687b ldr r3, [r7, #4]
8011be4: 2201 movs r2, #1
8011be6: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Process Unlocked */
__HAL_UNLOCK(hdma);
8011bea: 687b ldr r3, [r7, #4]
8011bec: 2200 movs r2, #0
8011bee: f883 2034 strb.w r2, [r3, #52] ; 0x34
}
if(hdma->XferCpltCallback != NULL)
8011bf2: 687b ldr r3, [r7, #4]
8011bf4: 6bdb ldr r3, [r3, #60] ; 0x3c
8011bf6: 2b00 cmp r3, #0
8011bf8: d003 beq.n 8011c02 <HAL_DMA_IRQHandler+0x29e>
{
/* Transfer complete callback */
hdma->XferCpltCallback(hdma);
8011bfa: 687b ldr r3, [r7, #4]
8011bfc: 6bdb ldr r3, [r3, #60] ; 0x3c
8011bfe: 6878 ldr r0, [r7, #4]
8011c00: 4798 blx r3
}
}
}
/* manage error case */
if(hdma->ErrorCode != HAL_DMA_ERROR_NONE)
8011c02: 687b ldr r3, [r7, #4]
8011c04: 6d5b ldr r3, [r3, #84] ; 0x54
8011c06: 2b00 cmp r3, #0
8011c08: d032 beq.n 8011c70 <HAL_DMA_IRQHandler+0x30c>
{
if((hdma->ErrorCode & HAL_DMA_ERROR_TE) != RESET)
8011c0a: 687b ldr r3, [r7, #4]
8011c0c: 6d5b ldr r3, [r3, #84] ; 0x54
8011c0e: f003 0301 and.w r3, r3, #1
8011c12: 2b00 cmp r3, #0
8011c14: d022 beq.n 8011c5c <HAL_DMA_IRQHandler+0x2f8>
{
hdma->State = HAL_DMA_STATE_ABORT;
8011c16: 687b ldr r3, [r7, #4]
8011c18: 2205 movs r2, #5
8011c1a: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Disable the stream */
__HAL_DMA_DISABLE(hdma);
8011c1e: 687b ldr r3, [r7, #4]
8011c20: 681b ldr r3, [r3, #0]
8011c22: 687a ldr r2, [r7, #4]
8011c24: 6812 ldr r2, [r2, #0]
8011c26: 6812 ldr r2, [r2, #0]
8011c28: f022 0201 bic.w r2, r2, #1
8011c2c: 601a str r2, [r3, #0]
do
{
if (++count > timeout)
8011c2e: 68bb ldr r3, [r7, #8]
8011c30: 3301 adds r3, #1
8011c32: 60bb str r3, [r7, #8]
8011c34: 697a ldr r2, [r7, #20]
8011c36: 4293 cmp r3, r2
8011c38: d807 bhi.n 8011c4a <HAL_DMA_IRQHandler+0x2e6>
{
break;
}
}
while((hdma->Instance->CR & DMA_SxCR_EN) != RESET);
8011c3a: 687b ldr r3, [r7, #4]
8011c3c: 681b ldr r3, [r3, #0]
8011c3e: 681b ldr r3, [r3, #0]
8011c40: f003 0301 and.w r3, r3, #1
8011c44: 2b00 cmp r3, #0
8011c46: d1f2 bne.n 8011c2e <HAL_DMA_IRQHandler+0x2ca>
8011c48: e000 b.n 8011c4c <HAL_DMA_IRQHandler+0x2e8>
break;
8011c4a: bf00 nop
/* Change the DMA state */
hdma->State = HAL_DMA_STATE_READY;
8011c4c: 687b ldr r3, [r7, #4]
8011c4e: 2201 movs r2, #1
8011c50: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Process Unlocked */
__HAL_UNLOCK(hdma);
8011c54: 687b ldr r3, [r7, #4]
8011c56: 2200 movs r2, #0
8011c58: f883 2034 strb.w r2, [r3, #52] ; 0x34
}
if(hdma->XferErrorCallback != NULL)
8011c5c: 687b ldr r3, [r7, #4]
8011c5e: 6cdb ldr r3, [r3, #76] ; 0x4c
8011c60: 2b00 cmp r3, #0
8011c62: d005 beq.n 8011c70 <HAL_DMA_IRQHandler+0x30c>
{
/* Transfer error callback */
hdma->XferErrorCallback(hdma);
8011c64: 687b ldr r3, [r7, #4]
8011c66: 6cdb ldr r3, [r3, #76] ; 0x4c
8011c68: 6878 ldr r0, [r7, #4]
8011c6a: 4798 blx r3
8011c6c: e000 b.n 8011c70 <HAL_DMA_IRQHandler+0x30c>
return;
8011c6e: bf00 nop
}
}
}
8011c70: 3718 adds r7, #24
8011c72: 46bd mov sp, r7
8011c74: bd80 pop {r7, pc}
8011c76: bf00 nop
08011c78 <HAL_DMA2D_Init>:
* @param hdma2d pointer to a DMA2D_HandleTypeDef structure that contains
* the configuration information for the DMA2D.
* @retval HAL status
*/
HAL_StatusTypeDef HAL_DMA2D_Init(DMA2D_HandleTypeDef *hdma2d)
{
8011c78: b580 push {r7, lr}
8011c7a: b082 sub sp, #8
8011c7c: af00 add r7, sp, #0
8011c7e: 6078 str r0, [r7, #4]
/* Check the DMA2D peripheral state */
if (hdma2d == NULL)
8011c80: 687b ldr r3, [r7, #4]
8011c82: 2b00 cmp r3, #0
8011c84: d101 bne.n 8011c8a <HAL_DMA2D_Init+0x12>
{
return HAL_ERROR;
8011c86: 2301 movs r3, #1
8011c88: e049 b.n 8011d1e <HAL_DMA2D_Init+0xa6>
/* Init the low level hardware */
hdma2d->MspInitCallback(hdma2d);
}
#else
if (hdma2d->State == HAL_DMA2D_STATE_RESET)
8011c8a: 687b ldr r3, [r7, #4]
8011c8c: f893 3051 ldrb.w r3, [r3, #81] ; 0x51
8011c90: b2db uxtb r3, r3
8011c92: 2b00 cmp r3, #0
8011c94: d106 bne.n 8011ca4 <HAL_DMA2D_Init+0x2c>
{
/* Allocate lock resource and initialize it */
hdma2d->Lock = HAL_UNLOCKED;
8011c96: 687b ldr r3, [r7, #4]
8011c98: 2200 movs r2, #0
8011c9a: f883 2050 strb.w r2, [r3, #80] ; 0x50
/* Init the low level hardware */
HAL_DMA2D_MspInit(hdma2d);
8011c9e: 6878 ldr r0, [r7, #4]
8011ca0: f7ee fcc0 bl 8000624 <HAL_DMA2D_MspInit>
}
#endif /* (USE_HAL_DMA2D_REGISTER_CALLBACKS) */
/* Change DMA2D peripheral state */
hdma2d->State = HAL_DMA2D_STATE_BUSY;
8011ca4: 687b ldr r3, [r7, #4]
8011ca6: 2202 movs r2, #2
8011ca8: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* DMA2D CR register configuration -------------------------------------------*/
MODIFY_REG(hdma2d->Instance->CR, DMA2D_CR_MODE, hdma2d->Init.Mode);
8011cac: 687b ldr r3, [r7, #4]
8011cae: 681b ldr r3, [r3, #0]
8011cb0: 687a ldr r2, [r7, #4]
8011cb2: 6812 ldr r2, [r2, #0]
8011cb4: 6812 ldr r2, [r2, #0]
8011cb6: f422 3140 bic.w r1, r2, #196608 ; 0x30000
8011cba: 687a ldr r2, [r7, #4]
8011cbc: 6852 ldr r2, [r2, #4]
8011cbe: 430a orrs r2, r1
8011cc0: 601a str r2, [r3, #0]
/* DMA2D OPFCCR register configuration ---------------------------------------*/
MODIFY_REG(hdma2d->Instance->OPFCCR, DMA2D_OPFCCR_CM, hdma2d->Init.ColorMode);
8011cc2: 687b ldr r3, [r7, #4]
8011cc4: 681b ldr r3, [r3, #0]
8011cc6: 687a ldr r2, [r7, #4]
8011cc8: 6812 ldr r2, [r2, #0]
8011cca: 6b52 ldr r2, [r2, #52] ; 0x34
8011ccc: f022 0107 bic.w r1, r2, #7
8011cd0: 687a ldr r2, [r7, #4]
8011cd2: 6892 ldr r2, [r2, #8]
8011cd4: 430a orrs r2, r1
8011cd6: 635a str r2, [r3, #52] ; 0x34
/* DMA2D OOR register configuration ------------------------------------------*/
MODIFY_REG(hdma2d->Instance->OOR, DMA2D_OOR_LO, hdma2d->Init.OutputOffset);
8011cd8: 687b ldr r3, [r7, #4]
8011cda: 681a ldr r2, [r3, #0]
8011cdc: 687b ldr r3, [r7, #4]
8011cde: 681b ldr r3, [r3, #0]
8011ce0: 6c19 ldr r1, [r3, #64] ; 0x40
8011ce2: 4b11 ldr r3, [pc, #68] ; (8011d28 <HAL_DMA2D_Init+0xb0>)
8011ce4: 400b ands r3, r1
8011ce6: 6879 ldr r1, [r7, #4]
8011ce8: 68c9 ldr r1, [r1, #12]
8011cea: 430b orrs r3, r1
8011cec: 6413 str r3, [r2, #64] ; 0x40
#if defined (DMA2D_ALPHA_INV_RB_SWAP_SUPPORT)
/* DMA2D OPFCCR AI and RBS fields setting (Output Alpha Inversion)*/
MODIFY_REG(hdma2d->Instance->OPFCCR, (DMA2D_OPFCCR_AI | DMA2D_OPFCCR_RBS),
8011cee: 687b ldr r3, [r7, #4]
8011cf0: 681b ldr r3, [r3, #0]
8011cf2: 687a ldr r2, [r7, #4]
8011cf4: 6812 ldr r2, [r2, #0]
8011cf6: 6b52 ldr r2, [r2, #52] ; 0x34
8011cf8: f422 1140 bic.w r1, r2, #3145728 ; 0x300000
8011cfc: 687a ldr r2, [r7, #4]
8011cfe: 6912 ldr r2, [r2, #16]
8011d00: 0510 lsls r0, r2, #20
8011d02: 687a ldr r2, [r7, #4]
8011d04: 6952 ldr r2, [r2, #20]
8011d06: 0552 lsls r2, r2, #21
8011d08: 4302 orrs r2, r0
8011d0a: 430a orrs r2, r1
8011d0c: 635a str r2, [r3, #52] ; 0x34
(hdma2d->Init.RedBlueSwap << DMA2D_OPFCCR_RBS_Pos)));
#endif /* DMA2D_ALPHA_INV_RB_SWAP_SUPPORT */
/* Update error code */
hdma2d->ErrorCode = HAL_DMA2D_ERROR_NONE;
8011d0e: 687b ldr r3, [r7, #4]
8011d10: 2200 movs r2, #0
8011d12: 655a str r2, [r3, #84] ; 0x54
/* Initialize the DMA2D state*/
hdma2d->State = HAL_DMA2D_STATE_READY;
8011d14: 687b ldr r3, [r7, #4]
8011d16: 2201 movs r2, #1
8011d18: f883 2051 strb.w r2, [r3, #81] ; 0x51
return HAL_OK;
8011d1c: 2300 movs r3, #0
}
8011d1e: 4618 mov r0, r3
8011d20: 3708 adds r7, #8
8011d22: 46bd mov sp, r7
8011d24: bd80 pop {r7, pc}
8011d26: bf00 nop
8011d28: ffffc000 .word 0xffffc000
08011d2c <HAL_DMA2D_Start>:
* @param Height The height of data to be transferred from source to destination (expressed in number of lines).
* @retval HAL status
*/
HAL_StatusTypeDef HAL_DMA2D_Start(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width,
uint32_t Height)
{
8011d2c: b580 push {r7, lr}
8011d2e: b086 sub sp, #24
8011d30: af02 add r7, sp, #8
8011d32: 60f8 str r0, [r7, #12]
8011d34: 60b9 str r1, [r7, #8]
8011d36: 607a str r2, [r7, #4]
8011d38: 603b str r3, [r7, #0]
/* Check the parameters */
assert_param(IS_DMA2D_LINE(Height));
assert_param(IS_DMA2D_PIXEL(Width));
/* Process locked */
__HAL_LOCK(hdma2d);
8011d3a: 68fb ldr r3, [r7, #12]
8011d3c: f893 3050 ldrb.w r3, [r3, #80] ; 0x50
8011d40: 2b01 cmp r3, #1
8011d42: d101 bne.n 8011d48 <HAL_DMA2D_Start+0x1c>
8011d44: 2302 movs r3, #2
8011d46: e018 b.n 8011d7a <HAL_DMA2D_Start+0x4e>
8011d48: 68fb ldr r3, [r7, #12]
8011d4a: 2201 movs r2, #1
8011d4c: f883 2050 strb.w r2, [r3, #80] ; 0x50
/* Change DMA2D peripheral state */
hdma2d->State = HAL_DMA2D_STATE_BUSY;
8011d50: 68fb ldr r3, [r7, #12]
8011d52: 2202 movs r2, #2
8011d54: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Configure the source, destination address and the data size */
DMA2D_SetConfig(hdma2d, pdata, DstAddress, Width, Height);
8011d58: 69bb ldr r3, [r7, #24]
8011d5a: 9300 str r3, [sp, #0]
8011d5c: 683b ldr r3, [r7, #0]
8011d5e: 687a ldr r2, [r7, #4]
8011d60: 68b9 ldr r1, [r7, #8]
8011d62: 68f8 ldr r0, [r7, #12]
8011d64: f000 f992 bl 801208c <DMA2D_SetConfig>
/* Enable the Peripheral */
__HAL_DMA2D_ENABLE(hdma2d);
8011d68: 68fb ldr r3, [r7, #12]
8011d6a: 681b ldr r3, [r3, #0]
8011d6c: 68fa ldr r2, [r7, #12]
8011d6e: 6812 ldr r2, [r2, #0]
8011d70: 6812 ldr r2, [r2, #0]
8011d72: f042 0201 orr.w r2, r2, #1
8011d76: 601a str r2, [r3, #0]
return HAL_OK;
8011d78: 2300 movs r3, #0
}
8011d7a: 4618 mov r0, r3
8011d7c: 3710 adds r7, #16
8011d7e: 46bd mov sp, r7
8011d80: bd80 pop {r7, pc}
08011d82 <HAL_DMA2D_PollForTransfer>:
* the configuration information for the DMA2D.
* @param Timeout Timeout duration
* @retval HAL status
*/
HAL_StatusTypeDef HAL_DMA2D_PollForTransfer(DMA2D_HandleTypeDef *hdma2d, uint32_t Timeout)
{
8011d82: b580 push {r7, lr}
8011d84: b086 sub sp, #24
8011d86: af00 add r7, sp, #0
8011d88: 6078 str r0, [r7, #4]
8011d8a: 6039 str r1, [r7, #0]
uint32_t tickstart;
uint32_t layer_start;
__IO uint32_t isrflags = 0x0U;
8011d8c: 2300 movs r3, #0
8011d8e: 60fb str r3, [r7, #12]
/* Polling for DMA2D transfer */
if ((hdma2d->Instance->CR & DMA2D_CR_START) != 0U)
8011d90: 687b ldr r3, [r7, #4]
8011d92: 681b ldr r3, [r3, #0]
8011d94: 681b ldr r3, [r3, #0]
8011d96: f003 0301 and.w r3, r3, #1
8011d9a: 2b00 cmp r3, #0
8011d9c: d056 beq.n 8011e4c <HAL_DMA2D_PollForTransfer+0xca>
{
/* Get tick */
tickstart = HAL_GetTick();
8011d9e: f7ff fbe1 bl 8011564 <HAL_GetTick>
8011da2: 6178 str r0, [r7, #20]
while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_TC) == 0U)
8011da4: e04b b.n 8011e3e <HAL_DMA2D_PollForTransfer+0xbc>
{
isrflags = READ_REG(hdma2d->Instance->ISR);
8011da6: 687b ldr r3, [r7, #4]
8011da8: 681b ldr r3, [r3, #0]
8011daa: 685b ldr r3, [r3, #4]
8011dac: 60fb str r3, [r7, #12]
if ((isrflags & (DMA2D_FLAG_CE | DMA2D_FLAG_TE)) != 0U)
8011dae: 68fb ldr r3, [r7, #12]
8011db0: f003 0321 and.w r3, r3, #33 ; 0x21
8011db4: 2b00 cmp r3, #0
8011db6: d023 beq.n 8011e00 <HAL_DMA2D_PollForTransfer+0x7e>
{
if ((isrflags & DMA2D_FLAG_CE) != 0U)
8011db8: 68fb ldr r3, [r7, #12]
8011dba: f003 0320 and.w r3, r3, #32
8011dbe: 2b00 cmp r3, #0
8011dc0: d005 beq.n 8011dce <HAL_DMA2D_PollForTransfer+0x4c>
{
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_CE;
8011dc2: 687b ldr r3, [r7, #4]
8011dc4: 6d5b ldr r3, [r3, #84] ; 0x54
8011dc6: f043 0202 orr.w r2, r3, #2
8011dca: 687b ldr r3, [r7, #4]
8011dcc: 655a str r2, [r3, #84] ; 0x54
}
if ((isrflags & DMA2D_FLAG_TE) != 0U)
8011dce: 68fb ldr r3, [r7, #12]
8011dd0: f003 0301 and.w r3, r3, #1
8011dd4: 2b00 cmp r3, #0
8011dd6: d005 beq.n 8011de4 <HAL_DMA2D_PollForTransfer+0x62>
{
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TE;
8011dd8: 687b ldr r3, [r7, #4]
8011dda: 6d5b ldr r3, [r3, #84] ; 0x54
8011ddc: f043 0201 orr.w r2, r3, #1
8011de0: 687b ldr r3, [r7, #4]
8011de2: 655a str r2, [r3, #84] ; 0x54
}
/* Clear the transfer and configuration error flags */
__HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_CE | DMA2D_FLAG_TE);
8011de4: 687b ldr r3, [r7, #4]
8011de6: 681b ldr r3, [r3, #0]
8011de8: 2221 movs r2, #33 ; 0x21
8011dea: 609a str r2, [r3, #8]
/* Change DMA2D state */
hdma2d->State = HAL_DMA2D_STATE_ERROR;
8011dec: 687b ldr r3, [r7, #4]
8011dee: 2204 movs r2, #4
8011df0: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
8011df4: 687b ldr r3, [r7, #4]
8011df6: 2200 movs r2, #0
8011df8: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_ERROR;
8011dfc: 2301 movs r3, #1
8011dfe: e0a5 b.n 8011f4c <HAL_DMA2D_PollForTransfer+0x1ca>
}
/* Check for the Timeout */
if (Timeout != HAL_MAX_DELAY)
8011e00: 683b ldr r3, [r7, #0]
8011e02: f1b3 3fff cmp.w r3, #4294967295
8011e06: d01a beq.n 8011e3e <HAL_DMA2D_PollForTransfer+0xbc>
{
if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
8011e08: f7ff fbac bl 8011564 <HAL_GetTick>
8011e0c: 4602 mov r2, r0
8011e0e: 697b ldr r3, [r7, #20]
8011e10: 1ad2 subs r2, r2, r3
8011e12: 683b ldr r3, [r7, #0]
8011e14: 429a cmp r2, r3
8011e16: d802 bhi.n 8011e1e <HAL_DMA2D_PollForTransfer+0x9c>
8011e18: 683b ldr r3, [r7, #0]
8011e1a: 2b00 cmp r3, #0
8011e1c: d10f bne.n 8011e3e <HAL_DMA2D_PollForTransfer+0xbc>
{
/* Update error code */
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TIMEOUT;
8011e1e: 687b ldr r3, [r7, #4]
8011e20: 6d5b ldr r3, [r3, #84] ; 0x54
8011e22: f043 0220 orr.w r2, r3, #32
8011e26: 687b ldr r3, [r7, #4]
8011e28: 655a str r2, [r3, #84] ; 0x54
/* Change the DMA2D state */
hdma2d->State = HAL_DMA2D_STATE_TIMEOUT;
8011e2a: 687b ldr r3, [r7, #4]
8011e2c: 2203 movs r2, #3
8011e2e: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
8011e32: 687b ldr r3, [r7, #4]
8011e34: 2200 movs r2, #0
8011e36: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_TIMEOUT;
8011e3a: 2303 movs r3, #3
8011e3c: e086 b.n 8011f4c <HAL_DMA2D_PollForTransfer+0x1ca>
while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_TC) == 0U)
8011e3e: 687b ldr r3, [r7, #4]
8011e40: 681b ldr r3, [r3, #0]
8011e42: 685b ldr r3, [r3, #4]
8011e44: f003 0302 and.w r3, r3, #2
8011e48: 2b00 cmp r3, #0
8011e4a: d0ac beq.n 8011da6 <HAL_DMA2D_PollForTransfer+0x24>
}
}
}
}
/* Polling for CLUT loading (foreground or background) */
layer_start = hdma2d->Instance->FGPFCCR & DMA2D_FGPFCCR_START;
8011e4c: 687b ldr r3, [r7, #4]
8011e4e: 681b ldr r3, [r3, #0]
8011e50: 69db ldr r3, [r3, #28]
8011e52: f003 0320 and.w r3, r3, #32
8011e56: 613b str r3, [r7, #16]
layer_start |= hdma2d->Instance->BGPFCCR & DMA2D_BGPFCCR_START;
8011e58: 687b ldr r3, [r7, #4]
8011e5a: 681b ldr r3, [r3, #0]
8011e5c: 6a5b ldr r3, [r3, #36] ; 0x24
8011e5e: f003 0320 and.w r3, r3, #32
8011e62: 693a ldr r2, [r7, #16]
8011e64: 4313 orrs r3, r2
8011e66: 613b str r3, [r7, #16]
if (layer_start != 0U)
8011e68: 693b ldr r3, [r7, #16]
8011e6a: 2b00 cmp r3, #0
8011e6c: d061 beq.n 8011f32 <HAL_DMA2D_PollForTransfer+0x1b0>
{
/* Get tick */
tickstart = HAL_GetTick();
8011e6e: f7ff fb79 bl 8011564 <HAL_GetTick>
8011e72: 6178 str r0, [r7, #20]
while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_CTC) == 0U)
8011e74: e056 b.n 8011f24 <HAL_DMA2D_PollForTransfer+0x1a2>
{
isrflags = READ_REG(hdma2d->Instance->ISR);
8011e76: 687b ldr r3, [r7, #4]
8011e78: 681b ldr r3, [r3, #0]
8011e7a: 685b ldr r3, [r3, #4]
8011e7c: 60fb str r3, [r7, #12]
if ((isrflags & (DMA2D_FLAG_CAE | DMA2D_FLAG_CE | DMA2D_FLAG_TE)) != 0U)
8011e7e: 68fb ldr r3, [r7, #12]
8011e80: f003 0329 and.w r3, r3, #41 ; 0x29
8011e84: 2b00 cmp r3, #0
8011e86: d02e beq.n 8011ee6 <HAL_DMA2D_PollForTransfer+0x164>
{
if ((isrflags & DMA2D_FLAG_CAE) != 0U)
8011e88: 68fb ldr r3, [r7, #12]
8011e8a: f003 0308 and.w r3, r3, #8
8011e8e: 2b00 cmp r3, #0
8011e90: d005 beq.n 8011e9e <HAL_DMA2D_PollForTransfer+0x11c>
{
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_CAE;
8011e92: 687b ldr r3, [r7, #4]
8011e94: 6d5b ldr r3, [r3, #84] ; 0x54
8011e96: f043 0204 orr.w r2, r3, #4
8011e9a: 687b ldr r3, [r7, #4]
8011e9c: 655a str r2, [r3, #84] ; 0x54
}
if ((isrflags & DMA2D_FLAG_CE) != 0U)
8011e9e: 68fb ldr r3, [r7, #12]
8011ea0: f003 0320 and.w r3, r3, #32
8011ea4: 2b00 cmp r3, #0
8011ea6: d005 beq.n 8011eb4 <HAL_DMA2D_PollForTransfer+0x132>
{
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_CE;
8011ea8: 687b ldr r3, [r7, #4]
8011eaa: 6d5b ldr r3, [r3, #84] ; 0x54
8011eac: f043 0202 orr.w r2, r3, #2
8011eb0: 687b ldr r3, [r7, #4]
8011eb2: 655a str r2, [r3, #84] ; 0x54
}
if ((isrflags & DMA2D_FLAG_TE) != 0U)
8011eb4: 68fb ldr r3, [r7, #12]
8011eb6: f003 0301 and.w r3, r3, #1
8011eba: 2b00 cmp r3, #0
8011ebc: d005 beq.n 8011eca <HAL_DMA2D_PollForTransfer+0x148>
{
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TE;
8011ebe: 687b ldr r3, [r7, #4]
8011ec0: 6d5b ldr r3, [r3, #84] ; 0x54
8011ec2: f043 0201 orr.w r2, r3, #1
8011ec6: 687b ldr r3, [r7, #4]
8011ec8: 655a str r2, [r3, #84] ; 0x54
}
/* Clear the CLUT Access Error, Configuration Error and Transfer Error flags */
__HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_CAE | DMA2D_FLAG_CE | DMA2D_FLAG_TE);
8011eca: 687b ldr r3, [r7, #4]
8011ecc: 681b ldr r3, [r3, #0]
8011ece: 2229 movs r2, #41 ; 0x29
8011ed0: 609a str r2, [r3, #8]
/* Change DMA2D state */
hdma2d->State = HAL_DMA2D_STATE_ERROR;
8011ed2: 687b ldr r3, [r7, #4]
8011ed4: 2204 movs r2, #4
8011ed6: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
8011eda: 687b ldr r3, [r7, #4]
8011edc: 2200 movs r2, #0
8011ede: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_ERROR;
8011ee2: 2301 movs r3, #1
8011ee4: e032 b.n 8011f4c <HAL_DMA2D_PollForTransfer+0x1ca>
}
/* Check for the Timeout */
if (Timeout != HAL_MAX_DELAY)
8011ee6: 683b ldr r3, [r7, #0]
8011ee8: f1b3 3fff cmp.w r3, #4294967295
8011eec: d01a beq.n 8011f24 <HAL_DMA2D_PollForTransfer+0x1a2>
{
if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
8011eee: f7ff fb39 bl 8011564 <HAL_GetTick>
8011ef2: 4602 mov r2, r0
8011ef4: 697b ldr r3, [r7, #20]
8011ef6: 1ad2 subs r2, r2, r3
8011ef8: 683b ldr r3, [r7, #0]
8011efa: 429a cmp r2, r3
8011efc: d802 bhi.n 8011f04 <HAL_DMA2D_PollForTransfer+0x182>
8011efe: 683b ldr r3, [r7, #0]
8011f00: 2b00 cmp r3, #0
8011f02: d10f bne.n 8011f24 <HAL_DMA2D_PollForTransfer+0x1a2>
{
/* Update error code */
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TIMEOUT;
8011f04: 687b ldr r3, [r7, #4]
8011f06: 6d5b ldr r3, [r3, #84] ; 0x54
8011f08: f043 0220 orr.w r2, r3, #32
8011f0c: 687b ldr r3, [r7, #4]
8011f0e: 655a str r2, [r3, #84] ; 0x54
/* Change the DMA2D state */
hdma2d->State = HAL_DMA2D_STATE_TIMEOUT;
8011f10: 687b ldr r3, [r7, #4]
8011f12: 2203 movs r2, #3
8011f14: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
8011f18: 687b ldr r3, [r7, #4]
8011f1a: 2200 movs r2, #0
8011f1c: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_TIMEOUT;
8011f20: 2303 movs r3, #3
8011f22: e013 b.n 8011f4c <HAL_DMA2D_PollForTransfer+0x1ca>
while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_CTC) == 0U)
8011f24: 687b ldr r3, [r7, #4]
8011f26: 681b ldr r3, [r3, #0]
8011f28: 685b ldr r3, [r3, #4]
8011f2a: f003 0310 and.w r3, r3, #16
8011f2e: 2b00 cmp r3, #0
8011f30: d0a1 beq.n 8011e76 <HAL_DMA2D_PollForTransfer+0xf4>
}
}
}
/* Clear the transfer complete and CLUT loading flags */
__HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_TC | DMA2D_FLAG_CTC);
8011f32: 687b ldr r3, [r7, #4]
8011f34: 681b ldr r3, [r3, #0]
8011f36: 2212 movs r2, #18
8011f38: 609a str r2, [r3, #8]
/* Change DMA2D state */
hdma2d->State = HAL_DMA2D_STATE_READY;
8011f3a: 687b ldr r3, [r7, #4]
8011f3c: 2201 movs r2, #1
8011f3e: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
8011f42: 687b ldr r3, [r7, #4]
8011f44: 2200 movs r2, #0
8011f46: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_OK;
8011f4a: 2300 movs r3, #0
}
8011f4c: 4618 mov r0, r3
8011f4e: 3718 adds r7, #24
8011f50: 46bd mov sp, r7
8011f52: bd80 pop {r7, pc}
08011f54 <HAL_DMA2D_ConfigLayer>:
* This parameter can be one of the following values:
* DMA2D_BACKGROUND_LAYER(0) / DMA2D_FOREGROUND_LAYER(1)
* @retval HAL status
*/
HAL_StatusTypeDef HAL_DMA2D_ConfigLayer(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
{
8011f54: b480 push {r7}
8011f56: b087 sub sp, #28
8011f58: af00 add r7, sp, #0
8011f5a: 6078 str r0, [r7, #4]
8011f5c: 6039 str r1, [r7, #0]
uint32_t regValue;
/* Check the parameters */
assert_param(IS_DMA2D_LAYER(LayerIdx));
assert_param(IS_DMA2D_OFFSET(hdma2d->LayerCfg[LayerIdx].InputOffset));
if (hdma2d->Init.Mode != DMA2D_R2M)
8011f5e: 687b ldr r3, [r7, #4]
8011f60: 685b ldr r3, [r3, #4]
8011f62: f5b3 3f40 cmp.w r3, #196608 ; 0x30000
assert_param(IS_DMA2D_ALPHA_INVERTED(hdma2d->LayerCfg[LayerIdx].AlphaInverted));
assert_param(IS_DMA2D_RB_SWAP(hdma2d->LayerCfg[LayerIdx].RedBlueSwap));
#endif /* DMA2D_ALPHA_INV_RB_SWAP_SUPPORT */
/* Process locked */
__HAL_LOCK(hdma2d);
8011f66: 687b ldr r3, [r7, #4]
8011f68: f893 3050 ldrb.w r3, [r3, #80] ; 0x50
8011f6c: 2b01 cmp r3, #1
8011f6e: d101 bne.n 8011f74 <HAL_DMA2D_ConfigLayer+0x20>
8011f70: 2302 movs r3, #2
8011f72: e082 b.n 801207a <HAL_DMA2D_ConfigLayer+0x126>
8011f74: 687b ldr r3, [r7, #4]
8011f76: 2201 movs r2, #1
8011f78: f883 2050 strb.w r2, [r3, #80] ; 0x50
/* Change DMA2D peripheral state */
hdma2d->State = HAL_DMA2D_STATE_BUSY;
8011f7c: 687b ldr r3, [r7, #4]
8011f7e: 2202 movs r2, #2
8011f80: f883 2051 strb.w r2, [r3, #81] ; 0x51
pLayerCfg = &hdma2d->LayerCfg[LayerIdx];
8011f84: 683a ldr r2, [r7, #0]
8011f86: 4613 mov r3, r2
8011f88: 005b lsls r3, r3, #1
8011f8a: 4413 add r3, r2
8011f8c: 00db lsls r3, r3, #3
8011f8e: 3320 adds r3, #32
8011f90: 687a ldr r2, [r7, #4]
8011f92: 4413 add r3, r2
8011f94: 613b str r3, [r7, #16]
/* Prepare the value to be written to the BGPFCCR or FGPFCCR register */
#if defined (DMA2D_ALPHA_INV_RB_SWAP_SUPPORT)
regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos) | \
8011f96: 693b ldr r3, [r7, #16]
8011f98: 685a ldr r2, [r3, #4]
8011f9a: 693b ldr r3, [r7, #16]
8011f9c: 689b ldr r3, [r3, #8]
8011f9e: 041b lsls r3, r3, #16
8011fa0: 431a orrs r2, r3
(pLayerCfg->AlphaInverted << DMA2D_BGPFCCR_AI_Pos) | (pLayerCfg->RedBlueSwap << DMA2D_BGPFCCR_RBS_Pos);
8011fa2: 693b ldr r3, [r7, #16]
8011fa4: 691b ldr r3, [r3, #16]
8011fa6: 051b lsls r3, r3, #20
regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos) | \
8011fa8: 431a orrs r2, r3
(pLayerCfg->AlphaInverted << DMA2D_BGPFCCR_AI_Pos) | (pLayerCfg->RedBlueSwap << DMA2D_BGPFCCR_RBS_Pos);
8011faa: 693b ldr r3, [r7, #16]
8011fac: 695b ldr r3, [r3, #20]
8011fae: 055b lsls r3, r3, #21
regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos) | \
8011fb0: 4313 orrs r3, r2
8011fb2: 617b str r3, [r7, #20]
regMask = (DMA2D_BGPFCCR_CM | DMA2D_BGPFCCR_AM | DMA2D_BGPFCCR_ALPHA | DMA2D_BGPFCCR_AI | DMA2D_BGPFCCR_RBS);
8011fb4: 4b34 ldr r3, [pc, #208] ; (8012088 <HAL_DMA2D_ConfigLayer+0x134>)
8011fb6: 60fb str r3, [r7, #12]
regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos);
regMask = DMA2D_BGPFCCR_CM | DMA2D_BGPFCCR_AM | DMA2D_BGPFCCR_ALPHA;
#endif /* DMA2D_ALPHA_INV_RB_SWAP_SUPPORT */
if ((pLayerCfg->InputColorMode == DMA2D_INPUT_A4) || (pLayerCfg->InputColorMode == DMA2D_INPUT_A8))
8011fb8: 693b ldr r3, [r7, #16]
8011fba: 685b ldr r3, [r3, #4]
8011fbc: 2b0a cmp r3, #10
8011fbe: d003 beq.n 8011fc8 <HAL_DMA2D_ConfigLayer+0x74>
8011fc0: 693b ldr r3, [r7, #16]
8011fc2: 685b ldr r3, [r3, #4]
8011fc4: 2b09 cmp r3, #9
8011fc6: d107 bne.n 8011fd8 <HAL_DMA2D_ConfigLayer+0x84>
{
regValue |= (pLayerCfg->InputAlpha & DMA2D_BGPFCCR_ALPHA);
8011fc8: 693b ldr r3, [r7, #16]
8011fca: 68db ldr r3, [r3, #12]
8011fcc: f003 437f and.w r3, r3, #4278190080 ; 0xff000000
8011fd0: 697a ldr r2, [r7, #20]
8011fd2: 4313 orrs r3, r2
8011fd4: 617b str r3, [r7, #20]
8011fd6: e005 b.n 8011fe4 <HAL_DMA2D_ConfigLayer+0x90>
}
else
{
regValue |= (pLayerCfg->InputAlpha << DMA2D_BGPFCCR_ALPHA_Pos);
8011fd8: 693b ldr r3, [r7, #16]
8011fda: 68db ldr r3, [r3, #12]
8011fdc: 061b lsls r3, r3, #24
8011fde: 697a ldr r2, [r7, #20]
8011fe0: 4313 orrs r3, r2
8011fe2: 617b str r3, [r7, #20]
}
/* Configure the background DMA2D layer */
if (LayerIdx == DMA2D_BACKGROUND_LAYER)
8011fe4: 683b ldr r3, [r7, #0]
8011fe6: 2b00 cmp r3, #0
8011fe8: d11f bne.n 801202a <HAL_DMA2D_ConfigLayer+0xd6>
{
/* Write DMA2D BGPFCCR register */
MODIFY_REG(hdma2d->Instance->BGPFCCR, regMask, regValue);
8011fea: 687b ldr r3, [r7, #4]
8011fec: 681b ldr r3, [r3, #0]
8011fee: 687a ldr r2, [r7, #4]
8011ff0: 6812 ldr r2, [r2, #0]
8011ff2: 6a51 ldr r1, [r2, #36] ; 0x24
8011ff4: 68fa ldr r2, [r7, #12]
8011ff6: 43d2 mvns r2, r2
8011ff8: 4011 ands r1, r2
8011ffa: 697a ldr r2, [r7, #20]
8011ffc: 430a orrs r2, r1
8011ffe: 625a str r2, [r3, #36] ; 0x24
/* DMA2D BGOR register configuration -------------------------------------*/
WRITE_REG(hdma2d->Instance->BGOR, pLayerCfg->InputOffset);
8012000: 687b ldr r3, [r7, #4]
8012002: 681b ldr r3, [r3, #0]
8012004: 693a ldr r2, [r7, #16]
8012006: 6812 ldr r2, [r2, #0]
8012008: 619a str r2, [r3, #24]
/* DMA2D BGCOLR register configuration -------------------------------------*/
if ((pLayerCfg->InputColorMode == DMA2D_INPUT_A4) || (pLayerCfg->InputColorMode == DMA2D_INPUT_A8))
801200a: 693b ldr r3, [r7, #16]
801200c: 685b ldr r3, [r3, #4]
801200e: 2b0a cmp r3, #10
8012010: d003 beq.n 801201a <HAL_DMA2D_ConfigLayer+0xc6>
8012012: 693b ldr r3, [r7, #16]
8012014: 685b ldr r3, [r3, #4]
8012016: 2b09 cmp r3, #9
8012018: d126 bne.n 8012068 <HAL_DMA2D_ConfigLayer+0x114>
{
WRITE_REG(hdma2d->Instance->BGCOLR, pLayerCfg->InputAlpha & (DMA2D_BGCOLR_BLUE | DMA2D_BGCOLR_GREEN | \
801201a: 687b ldr r3, [r7, #4]
801201c: 681b ldr r3, [r3, #0]
801201e: 693a ldr r2, [r7, #16]
8012020: 68d2 ldr r2, [r2, #12]
8012022: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000
8012026: 629a str r2, [r3, #40] ; 0x28
8012028: e01e b.n 8012068 <HAL_DMA2D_ConfigLayer+0x114>
else
{
/* Write DMA2D FGPFCCR register */
MODIFY_REG(hdma2d->Instance->FGPFCCR, regMask, regValue);
801202a: 687b ldr r3, [r7, #4]
801202c: 681b ldr r3, [r3, #0]
801202e: 687a ldr r2, [r7, #4]
8012030: 6812 ldr r2, [r2, #0]
8012032: 69d1 ldr r1, [r2, #28]
8012034: 68fa ldr r2, [r7, #12]
8012036: 43d2 mvns r2, r2
8012038: 4011 ands r1, r2
801203a: 697a ldr r2, [r7, #20]
801203c: 430a orrs r2, r1
801203e: 61da str r2, [r3, #28]
/* DMA2D FGOR register configuration -------------------------------------*/
WRITE_REG(hdma2d->Instance->FGOR, pLayerCfg->InputOffset);
8012040: 687b ldr r3, [r7, #4]
8012042: 681b ldr r3, [r3, #0]
8012044: 693a ldr r2, [r7, #16]
8012046: 6812 ldr r2, [r2, #0]
8012048: 611a str r2, [r3, #16]
/* DMA2D FGCOLR register configuration -------------------------------------*/
if ((pLayerCfg->InputColorMode == DMA2D_INPUT_A4) || (pLayerCfg->InputColorMode == DMA2D_INPUT_A8))
801204a: 693b ldr r3, [r7, #16]
801204c: 685b ldr r3, [r3, #4]
801204e: 2b0a cmp r3, #10
8012050: d003 beq.n 801205a <HAL_DMA2D_ConfigLayer+0x106>
8012052: 693b ldr r3, [r7, #16]
8012054: 685b ldr r3, [r3, #4]
8012056: 2b09 cmp r3, #9
8012058: d106 bne.n 8012068 <HAL_DMA2D_ConfigLayer+0x114>
{
WRITE_REG(hdma2d->Instance->FGCOLR, pLayerCfg->InputAlpha & (DMA2D_FGCOLR_BLUE | DMA2D_FGCOLR_GREEN | \
801205a: 687b ldr r3, [r7, #4]
801205c: 681b ldr r3, [r3, #0]
801205e: 693a ldr r2, [r7, #16]
8012060: 68d2 ldr r2, [r2, #12]
8012062: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000
8012066: 621a str r2, [r3, #32]
DMA2D_FGCOLR_RED));
}
}
/* Initialize the DMA2D state*/
hdma2d->State = HAL_DMA2D_STATE_READY;
8012068: 687b ldr r3, [r7, #4]
801206a: 2201 movs r2, #1
801206c: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
8012070: 687b ldr r3, [r7, #4]
8012072: 2200 movs r2, #0
8012074: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_OK;
8012078: 2300 movs r3, #0
}
801207a: 4618 mov r0, r3
801207c: 371c adds r7, #28
801207e: 46bd mov sp, r7
8012080: f85d 7b04 ldr.w r7, [sp], #4
8012084: 4770 bx lr
8012086: bf00 nop
8012088: ff33000f .word 0xff33000f
0801208c <DMA2D_SetConfig>:
* @param Height The height of data to be transferred from source to destination.
* @retval HAL status
*/
static void DMA2D_SetConfig(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width,
uint32_t Height)
{
801208c: b480 push {r7}
801208e: b08b sub sp, #44 ; 0x2c
8012090: af00 add r7, sp, #0
8012092: 60f8 str r0, [r7, #12]
8012094: 60b9 str r1, [r7, #8]
8012096: 607a str r2, [r7, #4]
8012098: 603b str r3, [r7, #0]
uint32_t tmp2;
uint32_t tmp3;
uint32_t tmp4;
/* Configure DMA2D data size */
MODIFY_REG(hdma2d->Instance->NLR, (DMA2D_NLR_NL | DMA2D_NLR_PL), (Height | (Width << DMA2D_NLR_PL_Pos)));
801209a: 68fb ldr r3, [r7, #12]
801209c: 681b ldr r3, [r3, #0]
801209e: 68fa ldr r2, [r7, #12]
80120a0: 6812 ldr r2, [r2, #0]
80120a2: 6c52 ldr r2, [r2, #68] ; 0x44
80120a4: f002 4140 and.w r1, r2, #3221225472 ; 0xc0000000
80120a8: 683a ldr r2, [r7, #0]
80120aa: 0410 lsls r0, r2, #16
80120ac: 6b3a ldr r2, [r7, #48] ; 0x30
80120ae: 4302 orrs r2, r0
80120b0: 430a orrs r2, r1
80120b2: 645a str r2, [r3, #68] ; 0x44
/* Configure DMA2D destination address */
WRITE_REG(hdma2d->Instance->OMAR, DstAddress);
80120b4: 68fb ldr r3, [r7, #12]
80120b6: 681b ldr r3, [r3, #0]
80120b8: 687a ldr r2, [r7, #4]
80120ba: 63da str r2, [r3, #60] ; 0x3c
/* Register to memory DMA2D mode selected */
if (hdma2d->Init.Mode == DMA2D_R2M)
80120bc: 68fb ldr r3, [r7, #12]
80120be: 685b ldr r3, [r3, #4]
80120c0: f5b3 3f40 cmp.w r3, #196608 ; 0x30000
80120c4: d174 bne.n 80121b0 <DMA2D_SetConfig+0x124>
{
tmp1 = pdata & DMA2D_OCOLR_ALPHA_1;
80120c6: 68bb ldr r3, [r7, #8]
80120c8: f003 437f and.w r3, r3, #4278190080 ; 0xff000000
80120cc: 623b str r3, [r7, #32]
tmp2 = pdata & DMA2D_OCOLR_RED_1;
80120ce: 68bb ldr r3, [r7, #8]
80120d0: f403 037f and.w r3, r3, #16711680 ; 0xff0000
80120d4: 61fb str r3, [r7, #28]
tmp3 = pdata & DMA2D_OCOLR_GREEN_1;
80120d6: 68bb ldr r3, [r7, #8]
80120d8: f403 437f and.w r3, r3, #65280 ; 0xff00
80120dc: 61bb str r3, [r7, #24]
tmp4 = pdata & DMA2D_OCOLR_BLUE_1;
80120de: 68bb ldr r3, [r7, #8]
80120e0: b2db uxtb r3, r3
80120e2: 617b str r3, [r7, #20]
/* Prepare the value to be written to the OCOLR register according to the color mode */
if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_ARGB8888)
80120e4: 68fb ldr r3, [r7, #12]
80120e6: 689b ldr r3, [r3, #8]
80120e8: 2b00 cmp r3, #0
80120ea: d108 bne.n 80120fe <DMA2D_SetConfig+0x72>
{
tmp = (tmp3 | tmp2 | tmp1 | tmp4);
80120ec: 69ba ldr r2, [r7, #24]
80120ee: 69fb ldr r3, [r7, #28]
80120f0: 431a orrs r2, r3
80120f2: 6a3b ldr r3, [r7, #32]
80120f4: 431a orrs r2, r3
80120f6: 697b ldr r3, [r7, #20]
80120f8: 4313 orrs r3, r2
80120fa: 627b str r3, [r7, #36] ; 0x24
80120fc: e053 b.n 80121a6 <DMA2D_SetConfig+0x11a>
}
else if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_RGB888)
80120fe: 68fb ldr r3, [r7, #12]
8012100: 689b ldr r3, [r3, #8]
8012102: 2b01 cmp r3, #1
8012104: d106 bne.n 8012114 <DMA2D_SetConfig+0x88>
{
tmp = (tmp3 | tmp2 | tmp4);
8012106: 69ba ldr r2, [r7, #24]
8012108: 69fb ldr r3, [r7, #28]
801210a: 431a orrs r2, r3
801210c: 697b ldr r3, [r7, #20]
801210e: 4313 orrs r3, r2
8012110: 627b str r3, [r7, #36] ; 0x24
8012112: e048 b.n 80121a6 <DMA2D_SetConfig+0x11a>
}
else if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_RGB565)
8012114: 68fb ldr r3, [r7, #12]
8012116: 689b ldr r3, [r3, #8]
8012118: 2b02 cmp r3, #2
801211a: d111 bne.n 8012140 <DMA2D_SetConfig+0xb4>
{
tmp2 = (tmp2 >> 19U);
801211c: 69fb ldr r3, [r7, #28]
801211e: 0cdb lsrs r3, r3, #19
8012120: 61fb str r3, [r7, #28]
tmp3 = (tmp3 >> 10U);
8012122: 69bb ldr r3, [r7, #24]
8012124: 0a9b lsrs r3, r3, #10
8012126: 61bb str r3, [r7, #24]
tmp4 = (tmp4 >> 3U);
8012128: 697b ldr r3, [r7, #20]
801212a: 08db lsrs r3, r3, #3
801212c: 617b str r3, [r7, #20]
tmp = ((tmp3 << 5U) | (tmp2 << 11U) | tmp4);
801212e: 69bb ldr r3, [r7, #24]
8012130: 015a lsls r2, r3, #5
8012132: 69fb ldr r3, [r7, #28]
8012134: 02db lsls r3, r3, #11
8012136: 431a orrs r2, r3
8012138: 697b ldr r3, [r7, #20]
801213a: 4313 orrs r3, r2
801213c: 627b str r3, [r7, #36] ; 0x24
801213e: e032 b.n 80121a6 <DMA2D_SetConfig+0x11a>
}
else if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_ARGB1555)
8012140: 68fb ldr r3, [r7, #12]
8012142: 689b ldr r3, [r3, #8]
8012144: 2b03 cmp r3, #3
8012146: d117 bne.n 8012178 <DMA2D_SetConfig+0xec>
{
tmp1 = (tmp1 >> 31U);
8012148: 6a3b ldr r3, [r7, #32]
801214a: 0fdb lsrs r3, r3, #31
801214c: 623b str r3, [r7, #32]
tmp2 = (tmp2 >> 19U);
801214e: 69fb ldr r3, [r7, #28]
8012150: 0cdb lsrs r3, r3, #19
8012152: 61fb str r3, [r7, #28]
tmp3 = (tmp3 >> 11U);
8012154: 69bb ldr r3, [r7, #24]
8012156: 0adb lsrs r3, r3, #11
8012158: 61bb str r3, [r7, #24]
tmp4 = (tmp4 >> 3U);
801215a: 697b ldr r3, [r7, #20]
801215c: 08db lsrs r3, r3, #3
801215e: 617b str r3, [r7, #20]
tmp = ((tmp3 << 5U) | (tmp2 << 10U) | (tmp1 << 15U) | tmp4);
8012160: 69bb ldr r3, [r7, #24]
8012162: 015a lsls r2, r3, #5
8012164: 69fb ldr r3, [r7, #28]
8012166: 029b lsls r3, r3, #10
8012168: 431a orrs r2, r3
801216a: 6a3b ldr r3, [r7, #32]
801216c: 03db lsls r3, r3, #15
801216e: 431a orrs r2, r3
8012170: 697b ldr r3, [r7, #20]
8012172: 4313 orrs r3, r2
8012174: 627b str r3, [r7, #36] ; 0x24
8012176: e016 b.n 80121a6 <DMA2D_SetConfig+0x11a>
}
else /* Dhdma2d->Init.ColorMode = DMA2D_OUTPUT_ARGB4444 */
{
tmp1 = (tmp1 >> 28U);
8012178: 6a3b ldr r3, [r7, #32]
801217a: 0f1b lsrs r3, r3, #28
801217c: 623b str r3, [r7, #32]
tmp2 = (tmp2 >> 20U);
801217e: 69fb ldr r3, [r7, #28]
8012180: 0d1b lsrs r3, r3, #20
8012182: 61fb str r3, [r7, #28]
tmp3 = (tmp3 >> 12U);
8012184: 69bb ldr r3, [r7, #24]
8012186: 0b1b lsrs r3, r3, #12
8012188: 61bb str r3, [r7, #24]
tmp4 = (tmp4 >> 4U);
801218a: 697b ldr r3, [r7, #20]
801218c: 091b lsrs r3, r3, #4
801218e: 617b str r3, [r7, #20]
tmp = ((tmp3 << 4U) | (tmp2 << 8U) | (tmp1 << 12U) | tmp4);
8012190: 69bb ldr r3, [r7, #24]
8012192: 011a lsls r2, r3, #4
8012194: 69fb ldr r3, [r7, #28]
8012196: 021b lsls r3, r3, #8
8012198: 431a orrs r2, r3
801219a: 6a3b ldr r3, [r7, #32]
801219c: 031b lsls r3, r3, #12
801219e: 431a orrs r2, r3
80121a0: 697b ldr r3, [r7, #20]
80121a2: 4313 orrs r3, r2
80121a4: 627b str r3, [r7, #36] ; 0x24
}
/* Write to DMA2D OCOLR register */
WRITE_REG(hdma2d->Instance->OCOLR, tmp);
80121a6: 68fb ldr r3, [r7, #12]
80121a8: 681b ldr r3, [r3, #0]
80121aa: 6a7a ldr r2, [r7, #36] ; 0x24
80121ac: 639a str r2, [r3, #56] ; 0x38
else /* M2M, M2M_PFC or M2M_Blending DMA2D Mode */
{
/* Configure DMA2D source address */
WRITE_REG(hdma2d->Instance->FGMAR, pdata);
}
}
80121ae: e003 b.n 80121b8 <DMA2D_SetConfig+0x12c>
WRITE_REG(hdma2d->Instance->FGMAR, pdata);
80121b0: 68fb ldr r3, [r7, #12]
80121b2: 681b ldr r3, [r3, #0]
80121b4: 68ba ldr r2, [r7, #8]
80121b6: 60da str r2, [r3, #12]
}
80121b8: bf00 nop
80121ba: 372c adds r7, #44 ; 0x2c
80121bc: 46bd mov sp, r7
80121be: f85d 7b04 ldr.w r7, [sp], #4
80121c2: 4770 bx lr
080121c4 <HAL_FLASH_Program>:
* @param Data specifies the data to be programmed
*
* @retval HAL_StatusTypeDef HAL Status
*/
HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data)
{
80121c4: b580 push {r7, lr}
80121c6: b086 sub sp, #24
80121c8: af00 add r7, sp, #0
80121ca: 60f8 str r0, [r7, #12]
80121cc: 60b9 str r1, [r7, #8]
80121ce: e9c7 2300 strd r2, r3, [r7]
HAL_StatusTypeDef status = HAL_ERROR;
80121d2: 2301 movs r3, #1
80121d4: 75fb strb r3, [r7, #23]
/* Process Locked */
__HAL_LOCK(&pFlash);
80121d6: 4b27 ldr r3, [pc, #156] ; (8012274 <HAL_FLASH_Program+0xb0>)
80121d8: 7d1b ldrb r3, [r3, #20]
80121da: 2b01 cmp r3, #1
80121dc: d101 bne.n 80121e2 <HAL_FLASH_Program+0x1e>
80121de: 2302 movs r3, #2
80121e0: e043 b.n 801226a <HAL_FLASH_Program+0xa6>
80121e2: 4b24 ldr r3, [pc, #144] ; (8012274 <HAL_FLASH_Program+0xb0>)
80121e4: 2201 movs r2, #1
80121e6: 751a strb r2, [r3, #20]
/* Check the parameters */
assert_param(IS_FLASH_TYPEPROGRAM(TypeProgram));
/* Wait for last operation to be completed */
status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
80121e8: f24c 3050 movw r0, #50000 ; 0xc350
80121ec: f000 f878 bl 80122e0 <FLASH_WaitForLastOperation>
80121f0: 4603 mov r3, r0
80121f2: 75fb strb r3, [r7, #23]
if(status == HAL_OK)
80121f4: 7dfb ldrb r3, [r7, #23]
80121f6: 2b00 cmp r3, #0
80121f8: d133 bne.n 8012262 <HAL_FLASH_Program+0x9e>
{
switch(TypeProgram)
80121fa: 68fb ldr r3, [r7, #12]
80121fc: 2b03 cmp r3, #3
80121fe: d823 bhi.n 8012248 <HAL_FLASH_Program+0x84>
8012200: a201 add r2, pc, #4 ; (adr r2, 8012208 <HAL_FLASH_Program+0x44>)
8012202: f852 f023 ldr.w pc, [r2, r3, lsl #2]
8012206: bf00 nop
8012208: 08012219 .word 0x08012219
801220c: 08012225 .word 0x08012225
8012210: 08012231 .word 0x08012231
8012214: 0801223d .word 0x0801223d
{
case FLASH_TYPEPROGRAM_BYTE :
{
/*Program byte (8-bit) at a specified address.*/
FLASH_Program_Byte(Address, (uint8_t) Data);
8012218: 783b ldrb r3, [r7, #0]
801221a: 4619 mov r1, r3
801221c: 68b8 ldr r0, [r7, #8]
801221e: f000 f919 bl 8012454 <FLASH_Program_Byte>
break;
8012222: e012 b.n 801224a <HAL_FLASH_Program+0x86>
}
case FLASH_TYPEPROGRAM_HALFWORD :
{
/*Program halfword (16-bit) at a specified address.*/
FLASH_Program_HalfWord(Address, (uint16_t) Data);
8012224: 883b ldrh r3, [r7, #0]
8012226: 4619 mov r1, r3
8012228: 68b8 ldr r0, [r7, #8]
801222a: f000 f8ed bl 8012408 <FLASH_Program_HalfWord>
break;
801222e: e00c b.n 801224a <HAL_FLASH_Program+0x86>
}
case FLASH_TYPEPROGRAM_WORD :
{
/*Program word (32-bit) at a specified address.*/
FLASH_Program_Word(Address, (uint32_t) Data);
8012230: 683b ldr r3, [r7, #0]
8012232: 4619 mov r1, r3
8012234: 68b8 ldr r0, [r7, #8]
8012236: f000 f8c3 bl 80123c0 <FLASH_Program_Word>
break;
801223a: e006 b.n 801224a <HAL_FLASH_Program+0x86>
}
case FLASH_TYPEPROGRAM_DOUBLEWORD :
{
/*Program double word (64-bit) at a specified address.*/
FLASH_Program_DoubleWord(Address, Data);
801223c: e9d7 2300 ldrd r2, r3, [r7]
8012240: 68b8 ldr r0, [r7, #8]
8012242: f000 f88d bl 8012360 <FLASH_Program_DoubleWord>
break;
8012246: e000 b.n 801224a <HAL_FLASH_Program+0x86>
}
default :
break;
8012248: bf00 nop
}
/* Wait for last operation to be completed */
status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
801224a: f24c 3050 movw r0, #50000 ; 0xc350
801224e: f000 f847 bl 80122e0 <FLASH_WaitForLastOperation>
8012252: 4603 mov r3, r0
8012254: 75fb strb r3, [r7, #23]
/* If the program operation is completed, disable the PG Bit */
FLASH->CR &= (~FLASH_CR_PG);
8012256: 4a08 ldr r2, [pc, #32] ; (8012278 <HAL_FLASH_Program+0xb4>)
8012258: 4b07 ldr r3, [pc, #28] ; (8012278 <HAL_FLASH_Program+0xb4>)
801225a: 691b ldr r3, [r3, #16]
801225c: f023 0301 bic.w r3, r3, #1
8012260: 6113 str r3, [r2, #16]
}
/* Process Unlocked */
__HAL_UNLOCK(&pFlash);
8012262: 4b04 ldr r3, [pc, #16] ; (8012274 <HAL_FLASH_Program+0xb0>)
8012264: 2200 movs r2, #0
8012266: 751a strb r2, [r3, #20]
return status;
8012268: 7dfb ldrb r3, [r7, #23]
}
801226a: 4618 mov r0, r3
801226c: 3718 adds r7, #24
801226e: 46bd mov sp, r7
8012270: bd80 pop {r7, pc}
8012272: bf00 nop
8012274: 2006c6c8 .word 0x2006c6c8
8012278: 40023c00 .word 0x40023c00
0801227c <HAL_FLASH_Unlock>:
/**
* @brief Unlock the FLASH control register access
* @retval HAL Status
*/
HAL_StatusTypeDef HAL_FLASH_Unlock(void)
{
801227c: b480 push {r7}
801227e: b083 sub sp, #12
8012280: af00 add r7, sp, #0
HAL_StatusTypeDef status = HAL_OK;
8012282: 2300 movs r3, #0
8012284: 71fb strb r3, [r7, #7]
if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
8012286: 4b0b ldr r3, [pc, #44] ; (80122b4 <HAL_FLASH_Unlock+0x38>)
8012288: 691b ldr r3, [r3, #16]
801228a: 2b00 cmp r3, #0
801228c: da0b bge.n 80122a6 <HAL_FLASH_Unlock+0x2a>
{
/* Authorize the FLASH Registers access */
WRITE_REG(FLASH->KEYR, FLASH_KEY1);
801228e: 4b09 ldr r3, [pc, #36] ; (80122b4 <HAL_FLASH_Unlock+0x38>)
8012290: 4a09 ldr r2, [pc, #36] ; (80122b8 <HAL_FLASH_Unlock+0x3c>)
8012292: 605a str r2, [r3, #4]
WRITE_REG(FLASH->KEYR, FLASH_KEY2);
8012294: 4b07 ldr r3, [pc, #28] ; (80122b4 <HAL_FLASH_Unlock+0x38>)
8012296: 4a09 ldr r2, [pc, #36] ; (80122bc <HAL_FLASH_Unlock+0x40>)
8012298: 605a str r2, [r3, #4]
/* Verify Flash is unlocked */
if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
801229a: 4b06 ldr r3, [pc, #24] ; (80122b4 <HAL_FLASH_Unlock+0x38>)
801229c: 691b ldr r3, [r3, #16]
801229e: 2b00 cmp r3, #0
80122a0: da01 bge.n 80122a6 <HAL_FLASH_Unlock+0x2a>
{
status = HAL_ERROR;
80122a2: 2301 movs r3, #1
80122a4: 71fb strb r3, [r7, #7]
}
}
return status;
80122a6: 79fb ldrb r3, [r7, #7]
}
80122a8: 4618 mov r0, r3
80122aa: 370c adds r7, #12
80122ac: 46bd mov sp, r7
80122ae: f85d 7b04 ldr.w r7, [sp], #4
80122b2: 4770 bx lr
80122b4: 40023c00 .word 0x40023c00
80122b8: 45670123 .word 0x45670123
80122bc: cdef89ab .word 0xcdef89ab
080122c0 <HAL_FLASH_Lock>:
/**
* @brief Locks the FLASH control register access
* @retval HAL Status
*/
HAL_StatusTypeDef HAL_FLASH_Lock(void)
{
80122c0: b480 push {r7}
80122c2: af00 add r7, sp, #0
/* Set the LOCK Bit to lock the FLASH Registers access */
FLASH->CR |= FLASH_CR_LOCK;
80122c4: 4a05 ldr r2, [pc, #20] ; (80122dc <HAL_FLASH_Lock+0x1c>)
80122c6: 4b05 ldr r3, [pc, #20] ; (80122dc <HAL_FLASH_Lock+0x1c>)
80122c8: 691b ldr r3, [r3, #16]
80122ca: f043 4300 orr.w r3, r3, #2147483648 ; 0x80000000
80122ce: 6113 str r3, [r2, #16]
return HAL_OK;
80122d0: 2300 movs r3, #0
}
80122d2: 4618 mov r0, r3
80122d4: 46bd mov sp, r7
80122d6: f85d 7b04 ldr.w r7, [sp], #4
80122da: 4770 bx lr
80122dc: 40023c00 .word 0x40023c00
080122e0 <FLASH_WaitForLastOperation>:
* @brief Wait for a FLASH operation to complete.
* @param Timeout maximum flash operationtimeout
* @retval HAL Status
*/
HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout)
{
80122e0: b580 push {r7, lr}
80122e2: b084 sub sp, #16
80122e4: af00 add r7, sp, #0
80122e6: 6078 str r0, [r7, #4]
uint32_t tickstart = 0;
80122e8: 2300 movs r3, #0
80122ea: 60fb str r3, [r7, #12]
/* Clear Error Code */
pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
80122ec: 4b1a ldr r3, [pc, #104] ; (8012358 <FLASH_WaitForLastOperation+0x78>)
80122ee: 2200 movs r2, #0
80122f0: 619a str r2, [r3, #24]
/* Wait for the FLASH operation to complete by polling on BUSY flag to be reset.
Even if the FLASH operation fails, the BUSY flag will be reset and an error
flag will be set */
/* Get tick */
tickstart = HAL_GetTick();
80122f2: f7ff f937 bl 8011564 <HAL_GetTick>
80122f6: 60f8 str r0, [r7, #12]
while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY) != RESET)
80122f8: e010 b.n 801231c <FLASH_WaitForLastOperation+0x3c>
{
if(Timeout != HAL_MAX_DELAY)
80122fa: 687b ldr r3, [r7, #4]
80122fc: f1b3 3fff cmp.w r3, #4294967295
8012300: d00c beq.n 801231c <FLASH_WaitForLastOperation+0x3c>
{
if((Timeout == 0)||((HAL_GetTick() - tickstart ) > Timeout))
8012302: 687b ldr r3, [r7, #4]
8012304: 2b00 cmp r3, #0
8012306: d007 beq.n 8012318 <FLASH_WaitForLastOperation+0x38>
8012308: f7ff f92c bl 8011564 <HAL_GetTick>
801230c: 4602 mov r2, r0
801230e: 68fb ldr r3, [r7, #12]
8012310: 1ad2 subs r2, r2, r3
8012312: 687b ldr r3, [r7, #4]
8012314: 429a cmp r2, r3
8012316: d901 bls.n 801231c <FLASH_WaitForLastOperation+0x3c>
{
return HAL_TIMEOUT;
8012318: 2303 movs r3, #3
801231a: e019 b.n 8012350 <FLASH_WaitForLastOperation+0x70>
while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY) != RESET)
801231c: 4b0f ldr r3, [pc, #60] ; (801235c <FLASH_WaitForLastOperation+0x7c>)
801231e: 68db ldr r3, [r3, #12]
8012320: f403 3380 and.w r3, r3, #65536 ; 0x10000
8012324: 2b00 cmp r3, #0
8012326: d1e8 bne.n 80122fa <FLASH_WaitForLastOperation+0x1a>
}
}
}
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_ALL_ERRORS) != RESET)
8012328: 4b0c ldr r3, [pc, #48] ; (801235c <FLASH_WaitForLastOperation+0x7c>)
801232a: 68db ldr r3, [r3, #12]
801232c: f003 03f2 and.w r3, r3, #242 ; 0xf2
8012330: 2b00 cmp r3, #0
8012332: d003 beq.n 801233c <FLASH_WaitForLastOperation+0x5c>
{
/*Save the error code*/
FLASH_SetErrorCode();
8012334: f000 f8b2 bl 801249c <FLASH_SetErrorCode>
return HAL_ERROR;
8012338: 2301 movs r3, #1
801233a: e009 b.n 8012350 <FLASH_WaitForLastOperation+0x70>
}
/* Check FLASH End of Operation flag */
if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP) != RESET)
801233c: 4b07 ldr r3, [pc, #28] ; (801235c <FLASH_WaitForLastOperation+0x7c>)
801233e: 68db ldr r3, [r3, #12]
8012340: f003 0301 and.w r3, r3, #1
8012344: 2b00 cmp r3, #0
8012346: d002 beq.n 801234e <FLASH_WaitForLastOperation+0x6e>
{
/* Clear FLASH End of Operation pending bit */
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
8012348: 4b04 ldr r3, [pc, #16] ; (801235c <FLASH_WaitForLastOperation+0x7c>)
801234a: 2201 movs r2, #1
801234c: 60da str r2, [r3, #12]
}
/* If there is an error flag set */
return HAL_OK;
801234e: 2300 movs r3, #0
}
8012350: 4618 mov r0, r3
8012352: 3710 adds r7, #16
8012354: 46bd mov sp, r7
8012356: bd80 pop {r7, pc}
8012358: 2006c6c8 .word 0x2006c6c8
801235c: 40023c00 .word 0x40023c00
08012360 <FLASH_Program_DoubleWord>:
* @param Address specifies the address to be programmed.
* @param Data specifies the data to be programmed.
* @retval None
*/
static void FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data)
{
8012360: b4f0 push {r4, r5, r6, r7}
8012362: b084 sub sp, #16
8012364: af00 add r7, sp, #0
8012366: 60f8 str r0, [r7, #12]
8012368: e9c7 2300 strd r2, r3, [r7]
/* Check the parameters */
assert_param(IS_FLASH_ADDRESS(Address));
/* If the previous operation is completed, proceed to program the new data */
FLASH->CR &= CR_PSIZE_MASK;
801236c: 4a13 ldr r2, [pc, #76] ; (80123bc <FLASH_Program_DoubleWord+0x5c>)
801236e: 4b13 ldr r3, [pc, #76] ; (80123bc <FLASH_Program_DoubleWord+0x5c>)
8012370: 691b ldr r3, [r3, #16]
8012372: f423 7340 bic.w r3, r3, #768 ; 0x300
8012376: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_PSIZE_DOUBLE_WORD;
8012378: 4a10 ldr r2, [pc, #64] ; (80123bc <FLASH_Program_DoubleWord+0x5c>)
801237a: 4b10 ldr r3, [pc, #64] ; (80123bc <FLASH_Program_DoubleWord+0x5c>)
801237c: 691b ldr r3, [r3, #16]
801237e: f443 7340 orr.w r3, r3, #768 ; 0x300
8012382: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_CR_PG;
8012384: 4a0d ldr r2, [pc, #52] ; (80123bc <FLASH_Program_DoubleWord+0x5c>)
8012386: 4b0d ldr r3, [pc, #52] ; (80123bc <FLASH_Program_DoubleWord+0x5c>)
8012388: 691b ldr r3, [r3, #16]
801238a: f043 0301 orr.w r3, r3, #1
801238e: 6113 str r3, [r2, #16]
/* Program first word */
*(__IO uint32_t*)Address = (uint32_t)Data;
8012390: 68fb ldr r3, [r7, #12]
8012392: 683a ldr r2, [r7, #0]
8012394: 601a str r2, [r3, #0]
8012396: f3bf 8f6f isb sy
/* Barrier to ensure programming is performed in 2 steps, in right order
(independently of compiler optimization behavior) */
__ISB();
/* Program second word */
*(__IO uint32_t*)(Address+4) = (uint32_t)(Data >> 32);
801239a: 68fb ldr r3, [r7, #12]
801239c: 3304 adds r3, #4
801239e: 461a mov r2, r3
80123a0: e897 0018 ldmia.w r7, {r3, r4}
80123a4: 0025 movs r5, r4
80123a6: 2600 movs r6, #0
80123a8: 462b mov r3, r5
80123aa: 6013 str r3, [r2, #0]
__ASM volatile ("dsb 0xF":::"memory");
80123ac: f3bf 8f4f dsb sy
/* Data synchronous Barrier (DSB) Just after the write operation
This will force the CPU to respect the sequence of instruction (no optimization).*/
__DSB();
}
80123b0: bf00 nop
80123b2: 3710 adds r7, #16
80123b4: 46bd mov sp, r7
80123b6: bcf0 pop {r4, r5, r6, r7}
80123b8: 4770 bx lr
80123ba: bf00 nop
80123bc: 40023c00 .word 0x40023c00
080123c0 <FLASH_Program_Word>:
* @param Address specifies the address to be programmed.
* @param Data specifies the data to be programmed.
* @retval None
*/
static void FLASH_Program_Word(uint32_t Address, uint32_t Data)
{
80123c0: b480 push {r7}
80123c2: b083 sub sp, #12
80123c4: af00 add r7, sp, #0
80123c6: 6078 str r0, [r7, #4]
80123c8: 6039 str r1, [r7, #0]
/* Check the parameters */
assert_param(IS_FLASH_ADDRESS(Address));
/* If the previous operation is completed, proceed to program the new data */
FLASH->CR &= CR_PSIZE_MASK;
80123ca: 4a0e ldr r2, [pc, #56] ; (8012404 <FLASH_Program_Word+0x44>)
80123cc: 4b0d ldr r3, [pc, #52] ; (8012404 <FLASH_Program_Word+0x44>)
80123ce: 691b ldr r3, [r3, #16]
80123d0: f423 7340 bic.w r3, r3, #768 ; 0x300
80123d4: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_PSIZE_WORD;
80123d6: 4a0b ldr r2, [pc, #44] ; (8012404 <FLASH_Program_Word+0x44>)
80123d8: 4b0a ldr r3, [pc, #40] ; (8012404 <FLASH_Program_Word+0x44>)
80123da: 691b ldr r3, [r3, #16]
80123dc: f443 7300 orr.w r3, r3, #512 ; 0x200
80123e0: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_CR_PG;
80123e2: 4a08 ldr r2, [pc, #32] ; (8012404 <FLASH_Program_Word+0x44>)
80123e4: 4b07 ldr r3, [pc, #28] ; (8012404 <FLASH_Program_Word+0x44>)
80123e6: 691b ldr r3, [r3, #16]
80123e8: f043 0301 orr.w r3, r3, #1
80123ec: 6113 str r3, [r2, #16]
*(__IO uint32_t*)Address = Data;
80123ee: 687b ldr r3, [r7, #4]
80123f0: 683a ldr r2, [r7, #0]
80123f2: 601a str r2, [r3, #0]
80123f4: f3bf 8f4f dsb sy
/* Data synchronous Barrier (DSB) Just after the write operation
This will force the CPU to respect the sequence of instruction (no optimization).*/
__DSB();
}
80123f8: bf00 nop
80123fa: 370c adds r7, #12
80123fc: 46bd mov sp, r7
80123fe: f85d 7b04 ldr.w r7, [sp], #4
8012402: 4770 bx lr
8012404: 40023c00 .word 0x40023c00
08012408 <FLASH_Program_HalfWord>:
* @param Address specifies the address to be programmed.
* @param Data specifies the data to be programmed.
* @retval None
*/
static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data)
{
8012408: b480 push {r7}
801240a: b083 sub sp, #12
801240c: af00 add r7, sp, #0
801240e: 6078 str r0, [r7, #4]
8012410: 460b mov r3, r1
8012412: 807b strh r3, [r7, #2]
/* Check the parameters */
assert_param(IS_FLASH_ADDRESS(Address));
/* If the previous operation is completed, proceed to program the new data */
FLASH->CR &= CR_PSIZE_MASK;
8012414: 4a0e ldr r2, [pc, #56] ; (8012450 <FLASH_Program_HalfWord+0x48>)
8012416: 4b0e ldr r3, [pc, #56] ; (8012450 <FLASH_Program_HalfWord+0x48>)
8012418: 691b ldr r3, [r3, #16]
801241a: f423 7340 bic.w r3, r3, #768 ; 0x300
801241e: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_PSIZE_HALF_WORD;
8012420: 4a0b ldr r2, [pc, #44] ; (8012450 <FLASH_Program_HalfWord+0x48>)
8012422: 4b0b ldr r3, [pc, #44] ; (8012450 <FLASH_Program_HalfWord+0x48>)
8012424: 691b ldr r3, [r3, #16]
8012426: f443 7380 orr.w r3, r3, #256 ; 0x100
801242a: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_CR_PG;
801242c: 4a08 ldr r2, [pc, #32] ; (8012450 <FLASH_Program_HalfWord+0x48>)
801242e: 4b08 ldr r3, [pc, #32] ; (8012450 <FLASH_Program_HalfWord+0x48>)
8012430: 691b ldr r3, [r3, #16]
8012432: f043 0301 orr.w r3, r3, #1
8012436: 6113 str r3, [r2, #16]
*(__IO uint16_t*)Address = Data;
8012438: 687b ldr r3, [r7, #4]
801243a: 887a ldrh r2, [r7, #2]
801243c: 801a strh r2, [r3, #0]
801243e: f3bf 8f4f dsb sy
/* Data synchronous Barrier (DSB) Just after the write operation
This will force the CPU to respect the sequence of instruction (no optimization).*/
__DSB();
}
8012442: bf00 nop
8012444: 370c adds r7, #12
8012446: 46bd mov sp, r7
8012448: f85d 7b04 ldr.w r7, [sp], #4
801244c: 4770 bx lr
801244e: bf00 nop
8012450: 40023c00 .word 0x40023c00
08012454 <FLASH_Program_Byte>:
* @param Address specifies the address to be programmed.
* @param Data specifies the data to be programmed.
* @retval None
*/
static void FLASH_Program_Byte(uint32_t Address, uint8_t Data)
{
8012454: b480 push {r7}
8012456: b083 sub sp, #12
8012458: af00 add r7, sp, #0
801245a: 6078 str r0, [r7, #4]
801245c: 460b mov r3, r1
801245e: 70fb strb r3, [r7, #3]
/* Check the parameters */
assert_param(IS_FLASH_ADDRESS(Address));
/* If the previous operation is completed, proceed to program the new data */
FLASH->CR &= CR_PSIZE_MASK;
8012460: 4a0d ldr r2, [pc, #52] ; (8012498 <FLASH_Program_Byte+0x44>)
8012462: 4b0d ldr r3, [pc, #52] ; (8012498 <FLASH_Program_Byte+0x44>)
8012464: 691b ldr r3, [r3, #16]
8012466: f423 7340 bic.w r3, r3, #768 ; 0x300
801246a: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_PSIZE_BYTE;
801246c: 4a0a ldr r2, [pc, #40] ; (8012498 <FLASH_Program_Byte+0x44>)
801246e: 4b0a ldr r3, [pc, #40] ; (8012498 <FLASH_Program_Byte+0x44>)
8012470: 691b ldr r3, [r3, #16]
8012472: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_CR_PG;
8012474: 4a08 ldr r2, [pc, #32] ; (8012498 <FLASH_Program_Byte+0x44>)
8012476: 4b08 ldr r3, [pc, #32] ; (8012498 <FLASH_Program_Byte+0x44>)
8012478: 691b ldr r3, [r3, #16]
801247a: f043 0301 orr.w r3, r3, #1
801247e: 6113 str r3, [r2, #16]
*(__IO uint8_t*)Address = Data;
8012480: 687b ldr r3, [r7, #4]
8012482: 78fa ldrb r2, [r7, #3]
8012484: 701a strb r2, [r3, #0]
8012486: f3bf 8f4f dsb sy
/* Data synchronous Barrier (DSB) Just after the write operation
This will force the CPU to respect the sequence of instruction (no optimization).*/
__DSB();
}
801248a: bf00 nop
801248c: 370c adds r7, #12
801248e: 46bd mov sp, r7
8012490: f85d 7b04 ldr.w r7, [sp], #4
8012494: 4770 bx lr
8012496: bf00 nop
8012498: 40023c00 .word 0x40023c00
0801249c <FLASH_SetErrorCode>:
/**
* @brief Set the specific FLASH error flag.
* @retval None
*/
static void FLASH_SetErrorCode(void)
{
801249c: b480 push {r7}
801249e: af00 add r7, sp, #0
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_OPERR) != RESET)
80124a0: 4b21 ldr r3, [pc, #132] ; (8012528 <FLASH_SetErrorCode+0x8c>)
80124a2: 68db ldr r3, [r3, #12]
80124a4: f003 0302 and.w r3, r3, #2
80124a8: 2b00 cmp r3, #0
80124aa: d005 beq.n 80124b8 <FLASH_SetErrorCode+0x1c>
{
pFlash.ErrorCode |= HAL_FLASH_ERROR_OPERATION;
80124ac: 4b1f ldr r3, [pc, #124] ; (801252c <FLASH_SetErrorCode+0x90>)
80124ae: 699b ldr r3, [r3, #24]
80124b0: f043 0320 orr.w r3, r3, #32
80124b4: 4a1d ldr r2, [pc, #116] ; (801252c <FLASH_SetErrorCode+0x90>)
80124b6: 6193 str r3, [r2, #24]
}
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) != RESET)
80124b8: 4b1b ldr r3, [pc, #108] ; (8012528 <FLASH_SetErrorCode+0x8c>)
80124ba: 68db ldr r3, [r3, #12]
80124bc: f003 0310 and.w r3, r3, #16
80124c0: 2b00 cmp r3, #0
80124c2: d005 beq.n 80124d0 <FLASH_SetErrorCode+0x34>
{
pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP;
80124c4: 4b19 ldr r3, [pc, #100] ; (801252c <FLASH_SetErrorCode+0x90>)
80124c6: 699b ldr r3, [r3, #24]
80124c8: f043 0310 orr.w r3, r3, #16
80124cc: 4a17 ldr r2, [pc, #92] ; (801252c <FLASH_SetErrorCode+0x90>)
80124ce: 6193 str r3, [r2, #24]
}
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGAERR) != RESET)
80124d0: 4b15 ldr r3, [pc, #84] ; (8012528 <FLASH_SetErrorCode+0x8c>)
80124d2: 68db ldr r3, [r3, #12]
80124d4: f003 0320 and.w r3, r3, #32
80124d8: 2b00 cmp r3, #0
80124da: d005 beq.n 80124e8 <FLASH_SetErrorCode+0x4c>
{
pFlash.ErrorCode |= HAL_FLASH_ERROR_PGA;
80124dc: 4b13 ldr r3, [pc, #76] ; (801252c <FLASH_SetErrorCode+0x90>)
80124de: 699b ldr r3, [r3, #24]
80124e0: f043 0308 orr.w r3, r3, #8
80124e4: 4a11 ldr r2, [pc, #68] ; (801252c <FLASH_SetErrorCode+0x90>)
80124e6: 6193 str r3, [r2, #24]
}
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGPERR) != RESET)
80124e8: 4b0f ldr r3, [pc, #60] ; (8012528 <FLASH_SetErrorCode+0x8c>)
80124ea: 68db ldr r3, [r3, #12]
80124ec: f003 0340 and.w r3, r3, #64 ; 0x40
80124f0: 2b00 cmp r3, #0
80124f2: d005 beq.n 8012500 <FLASH_SetErrorCode+0x64>
{
pFlash.ErrorCode |= HAL_FLASH_ERROR_PGP;
80124f4: 4b0d ldr r3, [pc, #52] ; (801252c <FLASH_SetErrorCode+0x90>)
80124f6: 699b ldr r3, [r3, #24]
80124f8: f043 0304 orr.w r3, r3, #4
80124fc: 4a0b ldr r2, [pc, #44] ; (801252c <FLASH_SetErrorCode+0x90>)
80124fe: 6193 str r3, [r2, #24]
}
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_ERSERR) != RESET)
8012500: 4b09 ldr r3, [pc, #36] ; (8012528 <FLASH_SetErrorCode+0x8c>)
8012502: 68db ldr r3, [r3, #12]
8012504: f003 0380 and.w r3, r3, #128 ; 0x80
8012508: 2b00 cmp r3, #0
801250a: d005 beq.n 8012518 <FLASH_SetErrorCode+0x7c>
{
pFlash.ErrorCode |= HAL_FLASH_ERROR_ERS;
801250c: 4b07 ldr r3, [pc, #28] ; (801252c <FLASH_SetErrorCode+0x90>)
801250e: 699b ldr r3, [r3, #24]
8012510: f043 0302 orr.w r3, r3, #2
8012514: 4a05 ldr r2, [pc, #20] ; (801252c <FLASH_SetErrorCode+0x90>)
8012516: 6193 str r3, [r2, #24]
pFlash.ErrorCode |= HAL_FLASH_ERROR_RD;
}
#endif /* FLASH_OPTCR2_PCROP */
/* Clear error programming flags */
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_ALL_ERRORS);
8012518: 4b03 ldr r3, [pc, #12] ; (8012528 <FLASH_SetErrorCode+0x8c>)
801251a: 22f2 movs r2, #242 ; 0xf2
801251c: 60da str r2, [r3, #12]
}
801251e: bf00 nop
8012520: 46bd mov sp, r7
8012522: f85d 7b04 ldr.w r7, [sp], #4
8012526: 4770 bx lr
8012528: 40023c00 .word 0x40023c00
801252c: 2006c6c8 .word 0x2006c6c8
08012530 <HAL_FLASHEx_Erase>:
* (0xFFFFFFFF means that all the sectors have been correctly erased)
*
* @retval HAL Status
*/
HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, uint32_t *SectorError)
{
8012530: b580 push {r7, lr}
8012532: b084 sub sp, #16
8012534: af00 add r7, sp, #0
8012536: 6078 str r0, [r7, #4]
8012538: 6039 str r1, [r7, #0]
HAL_StatusTypeDef status = HAL_ERROR;
801253a: 2301 movs r3, #1
801253c: 73fb strb r3, [r7, #15]
uint32_t index = 0;
801253e: 2300 movs r3, #0
8012540: 60bb str r3, [r7, #8]
/* Process Locked */
__HAL_LOCK(&pFlash);
8012542: 4b30 ldr r3, [pc, #192] ; (8012604 <HAL_FLASHEx_Erase+0xd4>)
8012544: 7d1b ldrb r3, [r3, #20]
8012546: 2b01 cmp r3, #1
8012548: d101 bne.n 801254e <HAL_FLASHEx_Erase+0x1e>
801254a: 2302 movs r3, #2
801254c: e056 b.n 80125fc <HAL_FLASHEx_Erase+0xcc>
801254e: 4b2d ldr r3, [pc, #180] ; (8012604 <HAL_FLASHEx_Erase+0xd4>)
8012550: 2201 movs r2, #1
8012552: 751a strb r2, [r3, #20]
/* Check the parameters */
assert_param(IS_FLASH_TYPEERASE(pEraseInit->TypeErase));
/* Wait for last operation to be completed */
status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
8012554: f24c 3050 movw r0, #50000 ; 0xc350
8012558: f7ff fec2 bl 80122e0 <FLASH_WaitForLastOperation>
801255c: 4603 mov r3, r0
801255e: 73fb strb r3, [r7, #15]
if(status == HAL_OK)
8012560: 7bfb ldrb r3, [r7, #15]
8012562: 2b00 cmp r3, #0
8012564: d146 bne.n 80125f4 <HAL_FLASHEx_Erase+0xc4>
{
/*Initialization of SectorError variable*/
*SectorError = 0xFFFFFFFFU;
8012566: 683b ldr r3, [r7, #0]
8012568: f04f 32ff mov.w r2, #4294967295
801256c: 601a str r2, [r3, #0]
if(pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE)
801256e: 687b ldr r3, [r7, #4]
8012570: 681b ldr r3, [r3, #0]
8012572: 2b01 cmp r3, #1
8012574: d115 bne.n 80125a2 <HAL_FLASHEx_Erase+0x72>
{
/*Mass erase to be done*/
#if defined (FLASH_OPTCR_nDBANK)
FLASH_MassErase((uint8_t) pEraseInit->VoltageRange, pEraseInit->Banks);
8012576: 687b ldr r3, [r7, #4]
8012578: 691b ldr r3, [r3, #16]
801257a: b2da uxtb r2, r3
801257c: 687b ldr r3, [r7, #4]
801257e: 685b ldr r3, [r3, #4]
8012580: 4619 mov r1, r3
8012582: 4610 mov r0, r2
8012584: f000 f870 bl 8012668 <FLASH_MassErase>
#else
FLASH_MassErase((uint8_t) pEraseInit->VoltageRange);
#endif /* FLASH_OPTCR_nDBANK */
/* Wait for last operation to be completed */
status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
8012588: f24c 3050 movw r0, #50000 ; 0xc350
801258c: f7ff fea8 bl 80122e0 <FLASH_WaitForLastOperation>
8012590: 4603 mov r3, r0
8012592: 73fb strb r3, [r7, #15]
/* if the erase operation is completed, disable the MER Bit */
FLASH->CR &= (~FLASH_MER_BIT);
8012594: 491c ldr r1, [pc, #112] ; (8012608 <HAL_FLASHEx_Erase+0xd8>)
8012596: 4b1c ldr r3, [pc, #112] ; (8012608 <HAL_FLASHEx_Erase+0xd8>)
8012598: 691a ldr r2, [r3, #16]
801259a: 4b1c ldr r3, [pc, #112] ; (801260c <HAL_FLASHEx_Erase+0xdc>)
801259c: 4013 ands r3, r2
801259e: 610b str r3, [r1, #16]
80125a0: e028 b.n 80125f4 <HAL_FLASHEx_Erase+0xc4>
{
/* Check the parameters */
assert_param(IS_FLASH_NBSECTORS(pEraseInit->NbSectors + pEraseInit->Sector));
/* Erase by sector by sector to be done*/
for(index = pEraseInit->Sector; index < (pEraseInit->NbSectors + pEraseInit->Sector); index++)
80125a2: 687b ldr r3, [r7, #4]
80125a4: 689b ldr r3, [r3, #8]
80125a6: 60bb str r3, [r7, #8]
80125a8: e01c b.n 80125e4 <HAL_FLASHEx_Erase+0xb4>
{
FLASH_Erase_Sector(index, (uint8_t) pEraseInit->VoltageRange);
80125aa: 687b ldr r3, [r7, #4]
80125ac: 691b ldr r3, [r3, #16]
80125ae: b2db uxtb r3, r3
80125b0: 4619 mov r1, r3
80125b2: 68b8 ldr r0, [r7, #8]
80125b4: f000 f892 bl 80126dc <FLASH_Erase_Sector>
/* Wait for last operation to be completed */
status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
80125b8: f24c 3050 movw r0, #50000 ; 0xc350
80125bc: f7ff fe90 bl 80122e0 <FLASH_WaitForLastOperation>
80125c0: 4603 mov r3, r0
80125c2: 73fb strb r3, [r7, #15]
/* If the erase operation is completed, disable the SER Bit and SNB Bits */
CLEAR_BIT(FLASH->CR, (FLASH_CR_SER | FLASH_CR_SNB));
80125c4: 4a10 ldr r2, [pc, #64] ; (8012608 <HAL_FLASHEx_Erase+0xd8>)
80125c6: 4b10 ldr r3, [pc, #64] ; (8012608 <HAL_FLASHEx_Erase+0xd8>)
80125c8: 691b ldr r3, [r3, #16]
80125ca: f023 03fa bic.w r3, r3, #250 ; 0xfa
80125ce: 6113 str r3, [r2, #16]
if(status != HAL_OK)
80125d0: 7bfb ldrb r3, [r7, #15]
80125d2: 2b00 cmp r3, #0
80125d4: d003 beq.n 80125de <HAL_FLASHEx_Erase+0xae>
{
/* In case of error, stop erase procedure and return the faulty sector*/
*SectorError = index;
80125d6: 683b ldr r3, [r7, #0]
80125d8: 68ba ldr r2, [r7, #8]
80125da: 601a str r2, [r3, #0]
break;
80125dc: e00a b.n 80125f4 <HAL_FLASHEx_Erase+0xc4>
for(index = pEraseInit->Sector; index < (pEraseInit->NbSectors + pEraseInit->Sector); index++)
80125de: 68bb ldr r3, [r7, #8]
80125e0: 3301 adds r3, #1
80125e2: 60bb str r3, [r7, #8]
80125e4: 687b ldr r3, [r7, #4]
80125e6: 68da ldr r2, [r3, #12]
80125e8: 687b ldr r3, [r7, #4]
80125ea: 689b ldr r3, [r3, #8]
80125ec: 441a add r2, r3
80125ee: 68bb ldr r3, [r7, #8]
80125f0: 429a cmp r2, r3
80125f2: d8da bhi.n 80125aa <HAL_FLASHEx_Erase+0x7a>
}
}
}
/* Process Unlocked */
__HAL_UNLOCK(&pFlash);
80125f4: 4b03 ldr r3, [pc, #12] ; (8012604 <HAL_FLASHEx_Erase+0xd4>)
80125f6: 2200 movs r2, #0
80125f8: 751a strb r2, [r3, #20]
return status;
80125fa: 7bfb ldrb r3, [r7, #15]
}
80125fc: 4618 mov r0, r3
80125fe: 3710 adds r7, #16
8012600: 46bd mov sp, r7
8012602: bd80 pop {r7, pc}
8012604: 2006c6c8 .word 0x2006c6c8
8012608: 40023c00 .word 0x40023c00
801260c: ffff7ffb .word 0xffff7ffb
08012610 <HAL_FLASHEx_OBGetConfig>:
* contains the configuration information for the programming.
*
* @retval None
*/
void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit)
{
8012610: b580 push {r7, lr}
8012612: b082 sub sp, #8
8012614: af00 add r7, sp, #0
8012616: 6078 str r0, [r7, #4]
pOBInit->OptionType = OPTIONBYTE_WRP | OPTIONBYTE_RDP | OPTIONBYTE_USER |\
8012618: 687b ldr r3, [r7, #4]
801261a: 223f movs r2, #63 ; 0x3f
801261c: 601a str r2, [r3, #0]
OPTIONBYTE_BOR | OPTIONBYTE_BOOTADDR_0 | OPTIONBYTE_BOOTADDR_1;
/*Get WRP*/
pOBInit->WRPSector = FLASH_OB_GetWRP();
801261e: f000 f8ad bl 801277c <FLASH_OB_GetWRP>
8012622: 4602 mov r2, r0
8012624: 687b ldr r3, [r7, #4]
8012626: 609a str r2, [r3, #8]
/*Get RDP Level*/
pOBInit->RDPLevel = FLASH_OB_GetRDP();
8012628: f000 f8c8 bl 80127bc <FLASH_OB_GetRDP>
801262c: 4603 mov r3, r0
801262e: 461a mov r2, r3
8012630: 687b ldr r3, [r7, #4]
8012632: 60da str r2, [r3, #12]
/*Get USER*/
pOBInit->USERConfig = FLASH_OB_GetUser();
8012634: f000 f8b2 bl 801279c <FLASH_OB_GetUser>
8012638: 4602 mov r2, r0
801263a: 687b ldr r3, [r7, #4]
801263c: 615a str r2, [r3, #20]
/*Get BOR Level*/
pOBInit->BORLevel = FLASH_OB_GetBOR();
801263e: f000 f8dd bl 80127fc <FLASH_OB_GetBOR>
8012642: 4602 mov r2, r0
8012644: 687b ldr r3, [r7, #4]
8012646: 611a str r2, [r3, #16]
/*Get Boot Address when Boot pin = 0 */
pOBInit->BootAddr0 = FLASH_OB_GetBootAddress(OPTIONBYTE_BOOTADDR_0);
8012648: 2010 movs r0, #16
801264a: f000 f8e5 bl 8012818 <FLASH_OB_GetBootAddress>
801264e: 4602 mov r2, r0
8012650: 687b ldr r3, [r7, #4]
8012652: 619a str r2, [r3, #24]
/*Get Boot Address when Boot pin = 1 */
pOBInit->BootAddr1 = FLASH_OB_GetBootAddress(OPTIONBYTE_BOOTADDR_1);
8012654: 2020 movs r0, #32
8012656: f000 f8df bl 8012818 <FLASH_OB_GetBootAddress>
801265a: 4602 mov r2, r0
801265c: 687b ldr r3, [r7, #4]
801265e: 61da str r2, [r3, #28]
pOBInit->PCROPSector = FLASH_OB_GetPCROP();
/*Get PCROP_RDP Value */
pOBInit->PCROPRdp = FLASH_OB_GetPCROPRDP();
#endif /* FLASH_OPTCR2_PCROP */
}
8012660: bf00 nop
8012662: 3708 adds r7, #8
8012664: 46bd mov sp, r7
8012666: bd80 pop {r7, pc}
08012668 <FLASH_MassErase>:
* @arg FLASH_BANK_BOTH: Bank1 and Bank2 to be erased
*
* @retval HAL Status
*/
static void FLASH_MassErase(uint8_t VoltageRange, uint32_t Banks)
{
8012668: b480 push {r7}
801266a: b083 sub sp, #12
801266c: af00 add r7, sp, #0
801266e: 4603 mov r3, r0
8012670: 6039 str r1, [r7, #0]
8012672: 71fb strb r3, [r7, #7]
/* Check the parameters */
assert_param(IS_VOLTAGERANGE(VoltageRange));
assert_param(IS_FLASH_BANK(Banks));
/* if the previous operation is completed, proceed to erase all sectors */
FLASH->CR &= CR_PSIZE_MASK;
8012674: 4a18 ldr r2, [pc, #96] ; (80126d8 <FLASH_MassErase+0x70>)
8012676: 4b18 ldr r3, [pc, #96] ; (80126d8 <FLASH_MassErase+0x70>)
8012678: 691b ldr r3, [r3, #16]
801267a: f423 7340 bic.w r3, r3, #768 ; 0x300
801267e: 6113 str r3, [r2, #16]
if(Banks == FLASH_BANK_BOTH)
8012680: 683b ldr r3, [r7, #0]
8012682: 2b03 cmp r3, #3
8012684: d107 bne.n 8012696 <FLASH_MassErase+0x2e>
{
/* bank1 & bank2 will be erased*/
FLASH->CR |= FLASH_MER_BIT;
8012686: 4914 ldr r1, [pc, #80] ; (80126d8 <FLASH_MassErase+0x70>)
8012688: 4b13 ldr r3, [pc, #76] ; (80126d8 <FLASH_MassErase+0x70>)
801268a: 691a ldr r2, [r3, #16]
801268c: f248 0304 movw r3, #32772 ; 0x8004
8012690: 4313 orrs r3, r2
8012692: 610b str r3, [r1, #16]
8012694: e00f b.n 80126b6 <FLASH_MassErase+0x4e>
}
else if(Banks == FLASH_BANK_2)
8012696: 683b ldr r3, [r7, #0]
8012698: 2b02 cmp r3, #2
801269a: d106 bne.n 80126aa <FLASH_MassErase+0x42>
{
/*Only bank2 will be erased*/
FLASH->CR |= FLASH_CR_MER2;
801269c: 4a0e ldr r2, [pc, #56] ; (80126d8 <FLASH_MassErase+0x70>)
801269e: 4b0e ldr r3, [pc, #56] ; (80126d8 <FLASH_MassErase+0x70>)
80126a0: 691b ldr r3, [r3, #16]
80126a2: f443 4300 orr.w r3, r3, #32768 ; 0x8000
80126a6: 6113 str r3, [r2, #16]
80126a8: e005 b.n 80126b6 <FLASH_MassErase+0x4e>
}
else
{
/*Only bank1 will be erased*/
FLASH->CR |= FLASH_CR_MER1;
80126aa: 4a0b ldr r2, [pc, #44] ; (80126d8 <FLASH_MassErase+0x70>)
80126ac: 4b0a ldr r3, [pc, #40] ; (80126d8 <FLASH_MassErase+0x70>)
80126ae: 691b ldr r3, [r3, #16]
80126b0: f043 0304 orr.w r3, r3, #4
80126b4: 6113 str r3, [r2, #16]
}
FLASH->CR |= FLASH_CR_STRT | ((uint32_t)VoltageRange <<8);
80126b6: 4908 ldr r1, [pc, #32] ; (80126d8 <FLASH_MassErase+0x70>)
80126b8: 4b07 ldr r3, [pc, #28] ; (80126d8 <FLASH_MassErase+0x70>)
80126ba: 691a ldr r2, [r3, #16]
80126bc: 79fb ldrb r3, [r7, #7]
80126be: 021b lsls r3, r3, #8
80126c0: 4313 orrs r3, r2
80126c2: f443 3380 orr.w r3, r3, #65536 ; 0x10000
80126c6: 610b str r3, [r1, #16]
80126c8: f3bf 8f4f dsb sy
/* Data synchronous Barrier (DSB) Just after the write operation
This will force the CPU to respect the sequence of instruction (no optimization).*/
__DSB();
}
80126cc: bf00 nop
80126ce: 370c adds r7, #12
80126d0: 46bd mov sp, r7
80126d2: f85d 7b04 ldr.w r7, [sp], #4
80126d6: 4770 bx lr
80126d8: 40023c00 .word 0x40023c00
080126dc <FLASH_Erase_Sector>:
* the operation will be done by double word (64-bit)
*
* @retval None
*/
void FLASH_Erase_Sector(uint32_t Sector, uint8_t VoltageRange)
{
80126dc: b480 push {r7}
80126de: b085 sub sp, #20
80126e0: af00 add r7, sp, #0
80126e2: 6078 str r0, [r7, #4]
80126e4: 460b mov r3, r1
80126e6: 70fb strb r3, [r7, #3]
uint32_t tmp_psize = 0;
80126e8: 2300 movs r3, #0
80126ea: 60fb str r3, [r7, #12]
/* Check the parameters */
assert_param(IS_FLASH_SECTOR(Sector));
assert_param(IS_VOLTAGERANGE(VoltageRange));
if(VoltageRange == FLASH_VOLTAGE_RANGE_1)
80126ec: 78fb ldrb r3, [r7, #3]
80126ee: 2b00 cmp r3, #0
80126f0: d102 bne.n 80126f8 <FLASH_Erase_Sector+0x1c>
{
tmp_psize = FLASH_PSIZE_BYTE;
80126f2: 2300 movs r3, #0
80126f4: 60fb str r3, [r7, #12]
80126f6: e010 b.n 801271a <FLASH_Erase_Sector+0x3e>
}
else if(VoltageRange == FLASH_VOLTAGE_RANGE_2)
80126f8: 78fb ldrb r3, [r7, #3]
80126fa: 2b01 cmp r3, #1
80126fc: d103 bne.n 8012706 <FLASH_Erase_Sector+0x2a>
{
tmp_psize = FLASH_PSIZE_HALF_WORD;
80126fe: f44f 7380 mov.w r3, #256 ; 0x100
8012702: 60fb str r3, [r7, #12]
8012704: e009 b.n 801271a <FLASH_Erase_Sector+0x3e>
}
else if(VoltageRange == FLASH_VOLTAGE_RANGE_3)
8012706: 78fb ldrb r3, [r7, #3]
8012708: 2b02 cmp r3, #2
801270a: d103 bne.n 8012714 <FLASH_Erase_Sector+0x38>
{
tmp_psize = FLASH_PSIZE_WORD;
801270c: f44f 7300 mov.w r3, #512 ; 0x200
8012710: 60fb str r3, [r7, #12]
8012712: e002 b.n 801271a <FLASH_Erase_Sector+0x3e>
}
else
{
tmp_psize = FLASH_PSIZE_DOUBLE_WORD;
8012714: f44f 7340 mov.w r3, #768 ; 0x300
8012718: 60fb str r3, [r7, #12]
}
/* Need to add offset of 4 when sector higher than FLASH_SECTOR_11 */
if(Sector > FLASH_SECTOR_11)
801271a: 687b ldr r3, [r7, #4]
801271c: 2b0b cmp r3, #11
801271e: d902 bls.n 8012726 <FLASH_Erase_Sector+0x4a>
{
Sector += 4;
8012720: 687b ldr r3, [r7, #4]
8012722: 3304 adds r3, #4
8012724: 607b str r3, [r7, #4]
}
/* If the previous operation is completed, proceed to erase the sector */
FLASH->CR &= CR_PSIZE_MASK;
8012726: 4a14 ldr r2, [pc, #80] ; (8012778 <FLASH_Erase_Sector+0x9c>)
8012728: 4b13 ldr r3, [pc, #76] ; (8012778 <FLASH_Erase_Sector+0x9c>)
801272a: 691b ldr r3, [r3, #16]
801272c: f423 7340 bic.w r3, r3, #768 ; 0x300
8012730: 6113 str r3, [r2, #16]
FLASH->CR |= tmp_psize;
8012732: 4911 ldr r1, [pc, #68] ; (8012778 <FLASH_Erase_Sector+0x9c>)
8012734: 4b10 ldr r3, [pc, #64] ; (8012778 <FLASH_Erase_Sector+0x9c>)
8012736: 691a ldr r2, [r3, #16]
8012738: 68fb ldr r3, [r7, #12]
801273a: 4313 orrs r3, r2
801273c: 610b str r3, [r1, #16]
CLEAR_BIT(FLASH->CR, FLASH_CR_SNB);
801273e: 4a0e ldr r2, [pc, #56] ; (8012778 <FLASH_Erase_Sector+0x9c>)
8012740: 4b0d ldr r3, [pc, #52] ; (8012778 <FLASH_Erase_Sector+0x9c>)
8012742: 691b ldr r3, [r3, #16]
8012744: f023 03f8 bic.w r3, r3, #248 ; 0xf8
8012748: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_CR_SER | (Sector << FLASH_CR_SNB_Pos);
801274a: 490b ldr r1, [pc, #44] ; (8012778 <FLASH_Erase_Sector+0x9c>)
801274c: 4b0a ldr r3, [pc, #40] ; (8012778 <FLASH_Erase_Sector+0x9c>)
801274e: 691a ldr r2, [r3, #16]
8012750: 687b ldr r3, [r7, #4]
8012752: 00db lsls r3, r3, #3
8012754: 4313 orrs r3, r2
8012756: f043 0302 orr.w r3, r3, #2
801275a: 610b str r3, [r1, #16]
FLASH->CR |= FLASH_CR_STRT;
801275c: 4a06 ldr r2, [pc, #24] ; (8012778 <FLASH_Erase_Sector+0x9c>)
801275e: 4b06 ldr r3, [pc, #24] ; (8012778 <FLASH_Erase_Sector+0x9c>)
8012760: 691b ldr r3, [r3, #16]
8012762: f443 3380 orr.w r3, r3, #65536 ; 0x10000
8012766: 6113 str r3, [r2, #16]
8012768: f3bf 8f4f dsb sy
/* Data synchronous Barrier (DSB) Just after the write operation
This will force the CPU to respect the sequence of instruction (no optimization).*/
__DSB();
}
801276c: bf00 nop
801276e: 3714 adds r7, #20
8012770: 46bd mov sp, r7
8012772: f85d 7b04 ldr.w r7, [sp], #4
8012776: 4770 bx lr
8012778: 40023c00 .word 0x40023c00
0801277c <FLASH_OB_GetWRP>:
/**
* @brief Return the FLASH Write Protection Option Bytes value.
* @retval uint32_t FLASH Write Protection Option Bytes value
*/
static uint32_t FLASH_OB_GetWRP(void)
{
801277c: b480 push {r7}
801277e: af00 add r7, sp, #0
/* Return the FLASH write protection Register value */
return ((uint32_t)(FLASH->OPTCR & 0x0FFF0000));
8012780: 4b04 ldr r3, [pc, #16] ; (8012794 <FLASH_OB_GetWRP+0x18>)
8012782: 695a ldr r2, [r3, #20]
8012784: 4b04 ldr r3, [pc, #16] ; (8012798 <FLASH_OB_GetWRP+0x1c>)
8012786: 4013 ands r3, r2
}
8012788: 4618 mov r0, r3
801278a: 46bd mov sp, r7
801278c: f85d 7b04 ldr.w r7, [sp], #4
8012790: 4770 bx lr
8012792: bf00 nop
8012794: 40023c00 .word 0x40023c00
8012798: 0fff0000 .word 0x0fff0000
0801279c <FLASH_OB_GetUser>:
* @brief Return the FLASH User Option Byte value.
* @retval uint32_t FLASH User Option Bytes values: WWDG_SW(Bit4), IWDG_SW(Bit5), nRST_STOP(Bit6),
* nRST_STDBY(Bit7), nDBOOT(Bit28), nDBANK(Bit29), IWDG_STDBY(Bit30) and IWDG_STOP(Bit31).
*/
static uint32_t FLASH_OB_GetUser(void)
{
801279c: b480 push {r7}
801279e: af00 add r7, sp, #0
/* Return the User Option Byte */
return ((uint32_t)(FLASH->OPTCR & 0xF00000F0U));
80127a0: 4b04 ldr r3, [pc, #16] ; (80127b4 <FLASH_OB_GetUser+0x18>)
80127a2: 695a ldr r2, [r3, #20]
80127a4: 4b04 ldr r3, [pc, #16] ; (80127b8 <FLASH_OB_GetUser+0x1c>)
80127a6: 4013 ands r3, r2
}
80127a8: 4618 mov r0, r3
80127aa: 46bd mov sp, r7
80127ac: f85d 7b04 ldr.w r7, [sp], #4
80127b0: 4770 bx lr
80127b2: bf00 nop
80127b4: 40023c00 .word 0x40023c00
80127b8: f00000f0 .word 0xf00000f0
080127bc <FLASH_OB_GetRDP>:
* @arg OB_RDP_LEVEL_0: No protection
* @arg OB_RDP_LEVEL_1: Read protection of the memory
* @arg OB_RDP_LEVEL_2: Full chip protection
*/
static uint8_t FLASH_OB_GetRDP(void)
{
80127bc: b480 push {r7}
80127be: b083 sub sp, #12
80127c0: af00 add r7, sp, #0
uint8_t readstatus = OB_RDP_LEVEL_0;
80127c2: 23aa movs r3, #170 ; 0xaa
80127c4: 71fb strb r3, [r7, #7]
if ((*(__IO uint8_t*)(OPTCR_BYTE1_ADDRESS)) == OB_RDP_LEVEL_0)
80127c6: 4b0c ldr r3, [pc, #48] ; (80127f8 <FLASH_OB_GetRDP+0x3c>)
80127c8: 781b ldrb r3, [r3, #0]
80127ca: b2db uxtb r3, r3
80127cc: 2baa cmp r3, #170 ; 0xaa
80127ce: d102 bne.n 80127d6 <FLASH_OB_GetRDP+0x1a>
{
readstatus = OB_RDP_LEVEL_0;
80127d0: 23aa movs r3, #170 ; 0xaa
80127d2: 71fb strb r3, [r7, #7]
80127d4: e009 b.n 80127ea <FLASH_OB_GetRDP+0x2e>
}
else if ((*(__IO uint8_t*)(OPTCR_BYTE1_ADDRESS)) == OB_RDP_LEVEL_2)
80127d6: 4b08 ldr r3, [pc, #32] ; (80127f8 <FLASH_OB_GetRDP+0x3c>)
80127d8: 781b ldrb r3, [r3, #0]
80127da: b2db uxtb r3, r3
80127dc: 2bcc cmp r3, #204 ; 0xcc
80127de: d102 bne.n 80127e6 <FLASH_OB_GetRDP+0x2a>
{
readstatus = OB_RDP_LEVEL_2;
80127e0: 23cc movs r3, #204 ; 0xcc
80127e2: 71fb strb r3, [r7, #7]
80127e4: e001 b.n 80127ea <FLASH_OB_GetRDP+0x2e>
}
else
{
readstatus = OB_RDP_LEVEL_1;
80127e6: 2355 movs r3, #85 ; 0x55
80127e8: 71fb strb r3, [r7, #7]
}
return readstatus;
80127ea: 79fb ldrb r3, [r7, #7]
}
80127ec: 4618 mov r0, r3
80127ee: 370c adds r7, #12
80127f0: 46bd mov sp, r7
80127f2: f85d 7b04 ldr.w r7, [sp], #4
80127f6: 4770 bx lr
80127f8: 40023c15 .word 0x40023c15
080127fc <FLASH_OB_GetBOR>:
* - OB_BOR_LEVEL2: Supply voltage ranges from 2.4 to 2.7 V
* - OB_BOR_LEVEL1: Supply voltage ranges from 2.1 to 2.4 V
* - OB_BOR_OFF : Supply voltage ranges from 1.62 to 2.1 V
*/
static uint32_t FLASH_OB_GetBOR(void)
{
80127fc: b480 push {r7}
80127fe: af00 add r7, sp, #0
/* Return the FLASH BOR level */
return ((uint32_t)(FLASH->OPTCR & 0x0C));
8012800: 4b04 ldr r3, [pc, #16] ; (8012814 <FLASH_OB_GetBOR+0x18>)
8012802: 695b ldr r3, [r3, #20]
8012804: f003 030c and.w r3, r3, #12
}
8012808: 4618 mov r0, r3
801280a: 46bd mov sp, r7
801280c: f85d 7b04 ldr.w r7, [sp], #4
8012810: 4770 bx lr
8012812: bf00 nop
8012814: 40023c00 .word 0x40023c00
08012818 <FLASH_OB_GetBootAddress>:
* - OB_BOOTADDR_DTCM_RAM : Boot from DTCM RAM (0x20000000)
* - OB_BOOTADDR_SRAM1 : Boot from SRAM1 (0x20010000)
* - OB_BOOTADDR_SRAM2 : Boot from SRAM2 (0x2004C000)
*/
static uint32_t FLASH_OB_GetBootAddress(uint32_t BootOption)
{
8012818: b480 push {r7}
801281a: b085 sub sp, #20
801281c: af00 add r7, sp, #0
801281e: 6078 str r0, [r7, #4]
uint32_t Address = 0;
8012820: 2300 movs r3, #0
8012822: 60fb str r3, [r7, #12]
/* Return the Boot base Address */
if(BootOption == OPTIONBYTE_BOOTADDR_0)
8012824: 687b ldr r3, [r7, #4]
8012826: 2b10 cmp r3, #16
8012828: d104 bne.n 8012834 <FLASH_OB_GetBootAddress+0x1c>
{
Address = FLASH->OPTCR1 & FLASH_OPTCR1_BOOT_ADD0;
801282a: 4b08 ldr r3, [pc, #32] ; (801284c <FLASH_OB_GetBootAddress+0x34>)
801282c: 699b ldr r3, [r3, #24]
801282e: b29b uxth r3, r3
8012830: 60fb str r3, [r7, #12]
8012832: e004 b.n 801283e <FLASH_OB_GetBootAddress+0x26>
}
else
{
Address = ((FLASH->OPTCR1 & FLASH_OPTCR1_BOOT_ADD1) >> 16);
8012834: 4b05 ldr r3, [pc, #20] ; (801284c <FLASH_OB_GetBootAddress+0x34>)
8012836: 699b ldr r3, [r3, #24]
8012838: 0c1b lsrs r3, r3, #16
801283a: b29b uxth r3, r3
801283c: 60fb str r3, [r7, #12]
}
return Address;
801283e: 68fb ldr r3, [r7, #12]
}
8012840: 4618 mov r0, r3
8012842: 3714 adds r7, #20
8012844: 46bd mov sp, r7
8012846: f85d 7b04 ldr.w r7, [sp], #4
801284a: 4770 bx lr
801284c: 40023c00 .word 0x40023c00
08012850 <HAL_GPIO_Init>:
* @param GPIO_Init pointer to a GPIO_InitTypeDef structure that contains
* the configuration information for the specified GPIO peripheral.
* @retval None
*/
void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)
{
8012850: b480 push {r7}
8012852: b089 sub sp, #36 ; 0x24
8012854: af00 add r7, sp, #0
8012856: 6078 str r0, [r7, #4]
8012858: 6039 str r1, [r7, #0]
uint32_t position = 0x00;
801285a: 2300 movs r3, #0
801285c: 61fb str r3, [r7, #28]
uint32_t ioposition = 0x00;
801285e: 2300 movs r3, #0
8012860: 617b str r3, [r7, #20]
uint32_t iocurrent = 0x00;
8012862: 2300 movs r3, #0
8012864: 613b str r3, [r7, #16]
uint32_t temp = 0x00;
8012866: 2300 movs r3, #0
8012868: 61bb str r3, [r7, #24]
assert_param(IS_GPIO_ALL_INSTANCE(GPIOx));
assert_param(IS_GPIO_PIN(GPIO_Init->Pin));
assert_param(IS_GPIO_MODE(GPIO_Init->Mode));
/* Configure the port pins */
for(position = 0; position < GPIO_NUMBER; position++)
801286a: 2300 movs r3, #0
801286c: 61fb str r3, [r7, #28]
801286e: e175 b.n 8012b5c <HAL_GPIO_Init+0x30c>
{
/* Get the IO position */
ioposition = ((uint32_t)0x01) << position;
8012870: 2201 movs r2, #1
8012872: 69fb ldr r3, [r7, #28]
8012874: fa02 f303 lsl.w r3, r2, r3
8012878: 617b str r3, [r7, #20]
/* Get the current IO position */
iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition;
801287a: 683b ldr r3, [r7, #0]
801287c: 681a ldr r2, [r3, #0]
801287e: 697b ldr r3, [r7, #20]
8012880: 4013 ands r3, r2
8012882: 613b str r3, [r7, #16]
if(iocurrent == ioposition)
8012884: 693a ldr r2, [r7, #16]
8012886: 697b ldr r3, [r7, #20]
8012888: 429a cmp r2, r3
801288a: f040 8164 bne.w 8012b56 <HAL_GPIO_Init+0x306>
{
/*--------------------- GPIO Mode Configuration ------------------------*/
/* In case of Output or Alternate function mode selection */
if(((GPIO_Init->Mode & GPIO_MODE) == MODE_OUTPUT) || ((GPIO_Init->Mode & GPIO_MODE) == MODE_AF))
801288e: 683b ldr r3, [r7, #0]
8012890: 685b ldr r3, [r3, #4]
8012892: f003 0303 and.w r3, r3, #3
8012896: 2b01 cmp r3, #1
8012898: d005 beq.n 80128a6 <HAL_GPIO_Init+0x56>
801289a: 683b ldr r3, [r7, #0]
801289c: 685b ldr r3, [r3, #4]
801289e: f003 0303 and.w r3, r3, #3
80128a2: 2b02 cmp r3, #2
80128a4: d130 bne.n 8012908 <HAL_GPIO_Init+0xb8>
{
/* Check the Speed parameter */
assert_param(IS_GPIO_SPEED(GPIO_Init->Speed));
/* Configure the IO Speed */
temp = GPIOx->OSPEEDR;
80128a6: 687b ldr r3, [r7, #4]
80128a8: 689b ldr r3, [r3, #8]
80128aa: 61bb str r3, [r7, #24]
temp &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2));
80128ac: 69fb ldr r3, [r7, #28]
80128ae: 005b lsls r3, r3, #1
80128b0: 2203 movs r2, #3
80128b2: fa02 f303 lsl.w r3, r2, r3
80128b6: 43db mvns r3, r3
80128b8: 69ba ldr r2, [r7, #24]
80128ba: 4013 ands r3, r2
80128bc: 61bb str r3, [r7, #24]
temp |= (GPIO_Init->Speed << (position * 2));
80128be: 683b ldr r3, [r7, #0]
80128c0: 68da ldr r2, [r3, #12]
80128c2: 69fb ldr r3, [r7, #28]
80128c4: 005b lsls r3, r3, #1
80128c6: fa02 f303 lsl.w r3, r2, r3
80128ca: 69ba ldr r2, [r7, #24]
80128cc: 4313 orrs r3, r2
80128ce: 61bb str r3, [r7, #24]
GPIOx->OSPEEDR = temp;
80128d0: 687b ldr r3, [r7, #4]
80128d2: 69ba ldr r2, [r7, #24]
80128d4: 609a str r2, [r3, #8]
/* Configure the IO Output Type */
temp = GPIOx->OTYPER;
80128d6: 687b ldr r3, [r7, #4]
80128d8: 685b ldr r3, [r3, #4]
80128da: 61bb str r3, [r7, #24]
temp &= ~(GPIO_OTYPER_OT_0 << position) ;
80128dc: 2201 movs r2, #1
80128de: 69fb ldr r3, [r7, #28]
80128e0: fa02 f303 lsl.w r3, r2, r3
80128e4: 43db mvns r3, r3
80128e6: 69ba ldr r2, [r7, #24]
80128e8: 4013 ands r3, r2
80128ea: 61bb str r3, [r7, #24]
temp |= (((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position);
80128ec: 683b ldr r3, [r7, #0]
80128ee: 685b ldr r3, [r3, #4]
80128f0: 091b lsrs r3, r3, #4
80128f2: f003 0201 and.w r2, r3, #1
80128f6: 69fb ldr r3, [r7, #28]
80128f8: fa02 f303 lsl.w r3, r2, r3
80128fc: 69ba ldr r2, [r7, #24]
80128fe: 4313 orrs r3, r2
8012900: 61bb str r3, [r7, #24]
GPIOx->OTYPER = temp;
8012902: 687b ldr r3, [r7, #4]
8012904: 69ba ldr r2, [r7, #24]
8012906: 605a str r2, [r3, #4]
}
if((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG)
8012908: 683b ldr r3, [r7, #0]
801290a: 685b ldr r3, [r3, #4]
801290c: f003 0303 and.w r3, r3, #3
8012910: 2b03 cmp r3, #3
8012912: d017 beq.n 8012944 <HAL_GPIO_Init+0xf4>
{
/* Check the Pull parameter */
assert_param(IS_GPIO_PULL(GPIO_Init->Pull));
/* Activate the Pull-up or Pull down resistor for the current IO */
temp = GPIOx->PUPDR;
8012914: 687b ldr r3, [r7, #4]
8012916: 68db ldr r3, [r3, #12]
8012918: 61bb str r3, [r7, #24]
temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2));
801291a: 69fb ldr r3, [r7, #28]
801291c: 005b lsls r3, r3, #1
801291e: 2203 movs r2, #3
8012920: fa02 f303 lsl.w r3, r2, r3
8012924: 43db mvns r3, r3
8012926: 69ba ldr r2, [r7, #24]
8012928: 4013 ands r3, r2
801292a: 61bb str r3, [r7, #24]
temp |= ((GPIO_Init->Pull) << (position * 2));
801292c: 683b ldr r3, [r7, #0]
801292e: 689a ldr r2, [r3, #8]
8012930: 69fb ldr r3, [r7, #28]
8012932: 005b lsls r3, r3, #1
8012934: fa02 f303 lsl.w r3, r2, r3
8012938: 69ba ldr r2, [r7, #24]
801293a: 4313 orrs r3, r2
801293c: 61bb str r3, [r7, #24]
GPIOx->PUPDR = temp;
801293e: 687b ldr r3, [r7, #4]
8012940: 69ba ldr r2, [r7, #24]
8012942: 60da str r2, [r3, #12]
}
/* In case of Alternate function mode selection */
if((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)
8012944: 683b ldr r3, [r7, #0]
8012946: 685b ldr r3, [r3, #4]
8012948: f003 0303 and.w r3, r3, #3
801294c: 2b02 cmp r3, #2
801294e: d123 bne.n 8012998 <HAL_GPIO_Init+0x148>
{
/* Check the Alternate function parameter */
assert_param(IS_GPIO_AF(GPIO_Init->Alternate));
/* Configure Alternate function mapped with the current IO */
temp = GPIOx->AFR[position >> 3];
8012950: 69fb ldr r3, [r7, #28]
8012952: 08da lsrs r2, r3, #3
8012954: 687b ldr r3, [r7, #4]
8012956: 3208 adds r2, #8
8012958: f853 3022 ldr.w r3, [r3, r2, lsl #2]
801295c: 61bb str r3, [r7, #24]
temp &= ~((uint32_t)0xF << ((uint32_t)(position & (uint32_t)0x07) * 4)) ;
801295e: 69fb ldr r3, [r7, #28]
8012960: f003 0307 and.w r3, r3, #7
8012964: 009b lsls r3, r3, #2
8012966: 220f movs r2, #15
8012968: fa02 f303 lsl.w r3, r2, r3
801296c: 43db mvns r3, r3
801296e: 69ba ldr r2, [r7, #24]
8012970: 4013 ands r3, r2
8012972: 61bb str r3, [r7, #24]
temp |= ((uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & (uint32_t)0x07) * 4));
8012974: 683b ldr r3, [r7, #0]
8012976: 691a ldr r2, [r3, #16]
8012978: 69fb ldr r3, [r7, #28]
801297a: f003 0307 and.w r3, r3, #7
801297e: 009b lsls r3, r3, #2
8012980: fa02 f303 lsl.w r3, r2, r3
8012984: 69ba ldr r2, [r7, #24]
8012986: 4313 orrs r3, r2
8012988: 61bb str r3, [r7, #24]
GPIOx->AFR[position >> 3] = temp;
801298a: 69fb ldr r3, [r7, #28]
801298c: 08da lsrs r2, r3, #3
801298e: 687b ldr r3, [r7, #4]
8012990: 3208 adds r2, #8
8012992: 69b9 ldr r1, [r7, #24]
8012994: f843 1022 str.w r1, [r3, r2, lsl #2]
}
/* Configure IO Direction mode (Input, Output, Alternate or Analog) */
temp = GPIOx->MODER;
8012998: 687b ldr r3, [r7, #4]
801299a: 681b ldr r3, [r3, #0]
801299c: 61bb str r3, [r7, #24]
temp &= ~(GPIO_MODER_MODER0 << (position * 2));
801299e: 69fb ldr r3, [r7, #28]
80129a0: 005b lsls r3, r3, #1
80129a2: 2203 movs r2, #3
80129a4: fa02 f303 lsl.w r3, r2, r3
80129a8: 43db mvns r3, r3
80129aa: 69ba ldr r2, [r7, #24]
80129ac: 4013 ands r3, r2
80129ae: 61bb str r3, [r7, #24]
temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2));
80129b0: 683b ldr r3, [r7, #0]
80129b2: 685b ldr r3, [r3, #4]
80129b4: f003 0203 and.w r2, r3, #3
80129b8: 69fb ldr r3, [r7, #28]
80129ba: 005b lsls r3, r3, #1
80129bc: fa02 f303 lsl.w r3, r2, r3
80129c0: 69ba ldr r2, [r7, #24]
80129c2: 4313 orrs r3, r2
80129c4: 61bb str r3, [r7, #24]
GPIOx->MODER = temp;
80129c6: 687b ldr r3, [r7, #4]
80129c8: 69ba ldr r2, [r7, #24]
80129ca: 601a str r2, [r3, #0]
/*--------------------- EXTI Mode Configuration ------------------------*/
/* Configure the External Interrupt or event for the current IO */
if((GPIO_Init->Mode & EXTI_MODE) != 0x00u)
80129cc: 683b ldr r3, [r7, #0]
80129ce: 685b ldr r3, [r3, #4]
80129d0: f403 3340 and.w r3, r3, #196608 ; 0x30000
80129d4: 2b00 cmp r3, #0
80129d6: f000 80be beq.w 8012b56 <HAL_GPIO_Init+0x306>
{
/* Enable SYSCFG Clock */
__HAL_RCC_SYSCFG_CLK_ENABLE();
80129da: 4a65 ldr r2, [pc, #404] ; (8012b70 <HAL_GPIO_Init+0x320>)
80129dc: 4b64 ldr r3, [pc, #400] ; (8012b70 <HAL_GPIO_Init+0x320>)
80129de: 6c5b ldr r3, [r3, #68] ; 0x44
80129e0: f443 4380 orr.w r3, r3, #16384 ; 0x4000
80129e4: 6453 str r3, [r2, #68] ; 0x44
80129e6: 4b62 ldr r3, [pc, #392] ; (8012b70 <HAL_GPIO_Init+0x320>)
80129e8: 6c5b ldr r3, [r3, #68] ; 0x44
80129ea: f403 4380 and.w r3, r3, #16384 ; 0x4000
80129ee: 60fb str r3, [r7, #12]
80129f0: 68fb ldr r3, [r7, #12]
temp = SYSCFG->EXTICR[position >> 2];
80129f2: 4a60 ldr r2, [pc, #384] ; (8012b74 <HAL_GPIO_Init+0x324>)
80129f4: 69fb ldr r3, [r7, #28]
80129f6: 089b lsrs r3, r3, #2
80129f8: 3302 adds r3, #2
80129fa: f852 3023 ldr.w r3, [r2, r3, lsl #2]
80129fe: 61bb str r3, [r7, #24]
temp &= ~(((uint32_t)0x0F) << (4 * (position & 0x03)));
8012a00: 69fb ldr r3, [r7, #28]
8012a02: f003 0303 and.w r3, r3, #3
8012a06: 009b lsls r3, r3, #2
8012a08: 220f movs r2, #15
8012a0a: fa02 f303 lsl.w r3, r2, r3
8012a0e: 43db mvns r3, r3
8012a10: 69ba ldr r2, [r7, #24]
8012a12: 4013 ands r3, r2
8012a14: 61bb str r3, [r7, #24]
temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4 * (position & 0x03)));
8012a16: 687b ldr r3, [r7, #4]
8012a18: 4a57 ldr r2, [pc, #348] ; (8012b78 <HAL_GPIO_Init+0x328>)
8012a1a: 4293 cmp r3, r2
8012a1c: d037 beq.n 8012a8e <HAL_GPIO_Init+0x23e>
8012a1e: 687b ldr r3, [r7, #4]
8012a20: 4a56 ldr r2, [pc, #344] ; (8012b7c <HAL_GPIO_Init+0x32c>)
8012a22: 4293 cmp r3, r2
8012a24: d031 beq.n 8012a8a <HAL_GPIO_Init+0x23a>
8012a26: 687b ldr r3, [r7, #4]
8012a28: 4a55 ldr r2, [pc, #340] ; (8012b80 <HAL_GPIO_Init+0x330>)
8012a2a: 4293 cmp r3, r2
8012a2c: d02b beq.n 8012a86 <HAL_GPIO_Init+0x236>
8012a2e: 687b ldr r3, [r7, #4]
8012a30: 4a54 ldr r2, [pc, #336] ; (8012b84 <HAL_GPIO_Init+0x334>)
8012a32: 4293 cmp r3, r2
8012a34: d025 beq.n 8012a82 <HAL_GPIO_Init+0x232>
8012a36: 687b ldr r3, [r7, #4]
8012a38: 4a53 ldr r2, [pc, #332] ; (8012b88 <HAL_GPIO_Init+0x338>)
8012a3a: 4293 cmp r3, r2
8012a3c: d01f beq.n 8012a7e <HAL_GPIO_Init+0x22e>
8012a3e: 687b ldr r3, [r7, #4]
8012a40: 4a52 ldr r2, [pc, #328] ; (8012b8c <HAL_GPIO_Init+0x33c>)
8012a42: 4293 cmp r3, r2
8012a44: d019 beq.n 8012a7a <HAL_GPIO_Init+0x22a>
8012a46: 687b ldr r3, [r7, #4]
8012a48: 4a51 ldr r2, [pc, #324] ; (8012b90 <HAL_GPIO_Init+0x340>)
8012a4a: 4293 cmp r3, r2
8012a4c: d013 beq.n 8012a76 <HAL_GPIO_Init+0x226>
8012a4e: 687b ldr r3, [r7, #4]
8012a50: 4a50 ldr r2, [pc, #320] ; (8012b94 <HAL_GPIO_Init+0x344>)
8012a52: 4293 cmp r3, r2
8012a54: d00d beq.n 8012a72 <HAL_GPIO_Init+0x222>
8012a56: 687b ldr r3, [r7, #4]
8012a58: 4a4f ldr r2, [pc, #316] ; (8012b98 <HAL_GPIO_Init+0x348>)
8012a5a: 4293 cmp r3, r2
8012a5c: d007 beq.n 8012a6e <HAL_GPIO_Init+0x21e>
8012a5e: 687b ldr r3, [r7, #4]
8012a60: 4a4e ldr r2, [pc, #312] ; (8012b9c <HAL_GPIO_Init+0x34c>)
8012a62: 4293 cmp r3, r2
8012a64: d101 bne.n 8012a6a <HAL_GPIO_Init+0x21a>
8012a66: 2309 movs r3, #9
8012a68: e012 b.n 8012a90 <HAL_GPIO_Init+0x240>
8012a6a: 230a movs r3, #10
8012a6c: e010 b.n 8012a90 <HAL_GPIO_Init+0x240>
8012a6e: 2308 movs r3, #8
8012a70: e00e b.n 8012a90 <HAL_GPIO_Init+0x240>
8012a72: 2307 movs r3, #7
8012a74: e00c b.n 8012a90 <HAL_GPIO_Init+0x240>
8012a76: 2306 movs r3, #6
8012a78: e00a b.n 8012a90 <HAL_GPIO_Init+0x240>
8012a7a: 2305 movs r3, #5
8012a7c: e008 b.n 8012a90 <HAL_GPIO_Init+0x240>
8012a7e: 2304 movs r3, #4
8012a80: e006 b.n 8012a90 <HAL_GPIO_Init+0x240>
8012a82: 2303 movs r3, #3
8012a84: e004 b.n 8012a90 <HAL_GPIO_Init+0x240>
8012a86: 2302 movs r3, #2
8012a88: e002 b.n 8012a90 <HAL_GPIO_Init+0x240>
8012a8a: 2301 movs r3, #1
8012a8c: e000 b.n 8012a90 <HAL_GPIO_Init+0x240>
8012a8e: 2300 movs r3, #0
8012a90: 69fa ldr r2, [r7, #28]
8012a92: f002 0203 and.w r2, r2, #3
8012a96: 0092 lsls r2, r2, #2
8012a98: 4093 lsls r3, r2
8012a9a: 69ba ldr r2, [r7, #24]
8012a9c: 4313 orrs r3, r2
8012a9e: 61bb str r3, [r7, #24]
SYSCFG->EXTICR[position >> 2] = temp;
8012aa0: 4934 ldr r1, [pc, #208] ; (8012b74 <HAL_GPIO_Init+0x324>)
8012aa2: 69fb ldr r3, [r7, #28]
8012aa4: 089b lsrs r3, r3, #2
8012aa6: 3302 adds r3, #2
8012aa8: 69ba ldr r2, [r7, #24]
8012aaa: f841 2023 str.w r2, [r1, r3, lsl #2]
/* Clear Rising Falling edge configuration */
temp = EXTI->RTSR;
8012aae: 4b3c ldr r3, [pc, #240] ; (8012ba0 <HAL_GPIO_Init+0x350>)
8012ab0: 689b ldr r3, [r3, #8]
8012ab2: 61bb str r3, [r7, #24]
temp &= ~((uint32_t)iocurrent);
8012ab4: 693b ldr r3, [r7, #16]
8012ab6: 43db mvns r3, r3
8012ab8: 69ba ldr r2, [r7, #24]
8012aba: 4013 ands r3, r2
8012abc: 61bb str r3, [r7, #24]
if((GPIO_Init->Mode & TRIGGER_RISING) != 0x00u)
8012abe: 683b ldr r3, [r7, #0]
8012ac0: 685b ldr r3, [r3, #4]
8012ac2: f403 1380 and.w r3, r3, #1048576 ; 0x100000
8012ac6: 2b00 cmp r3, #0
8012ac8: d003 beq.n 8012ad2 <HAL_GPIO_Init+0x282>
{
temp |= iocurrent;
8012aca: 69ba ldr r2, [r7, #24]
8012acc: 693b ldr r3, [r7, #16]
8012ace: 4313 orrs r3, r2
8012ad0: 61bb str r3, [r7, #24]
}
EXTI->RTSR = temp;
8012ad2: 4a33 ldr r2, [pc, #204] ; (8012ba0 <HAL_GPIO_Init+0x350>)
8012ad4: 69bb ldr r3, [r7, #24]
8012ad6: 6093 str r3, [r2, #8]
temp = EXTI->FTSR;
8012ad8: 4b31 ldr r3, [pc, #196] ; (8012ba0 <HAL_GPIO_Init+0x350>)
8012ada: 68db ldr r3, [r3, #12]
8012adc: 61bb str r3, [r7, #24]
temp &= ~((uint32_t)iocurrent);
8012ade: 693b ldr r3, [r7, #16]
8012ae0: 43db mvns r3, r3
8012ae2: 69ba ldr r2, [r7, #24]
8012ae4: 4013 ands r3, r2
8012ae6: 61bb str r3, [r7, #24]
if((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00u)
8012ae8: 683b ldr r3, [r7, #0]
8012aea: 685b ldr r3, [r3, #4]
8012aec: f403 1300 and.w r3, r3, #2097152 ; 0x200000
8012af0: 2b00 cmp r3, #0
8012af2: d003 beq.n 8012afc <HAL_GPIO_Init+0x2ac>
{
temp |= iocurrent;
8012af4: 69ba ldr r2, [r7, #24]
8012af6: 693b ldr r3, [r7, #16]
8012af8: 4313 orrs r3, r2
8012afa: 61bb str r3, [r7, #24]
}
EXTI->FTSR = temp;
8012afc: 4a28 ldr r2, [pc, #160] ; (8012ba0 <HAL_GPIO_Init+0x350>)
8012afe: 69bb ldr r3, [r7, #24]
8012b00: 60d3 str r3, [r2, #12]
temp = EXTI->EMR;
8012b02: 4b27 ldr r3, [pc, #156] ; (8012ba0 <HAL_GPIO_Init+0x350>)
8012b04: 685b ldr r3, [r3, #4]
8012b06: 61bb str r3, [r7, #24]
temp &= ~((uint32_t)iocurrent);
8012b08: 693b ldr r3, [r7, #16]
8012b0a: 43db mvns r3, r3
8012b0c: 69ba ldr r2, [r7, #24]
8012b0e: 4013 ands r3, r2
8012b10: 61bb str r3, [r7, #24]
if((GPIO_Init->Mode & EXTI_EVT) != 0x00u)
8012b12: 683b ldr r3, [r7, #0]
8012b14: 685b ldr r3, [r3, #4]
8012b16: f403 3300 and.w r3, r3, #131072 ; 0x20000
8012b1a: 2b00 cmp r3, #0
8012b1c: d003 beq.n 8012b26 <HAL_GPIO_Init+0x2d6>
{
temp |= iocurrent;
8012b1e: 69ba ldr r2, [r7, #24]
8012b20: 693b ldr r3, [r7, #16]
8012b22: 4313 orrs r3, r2
8012b24: 61bb str r3, [r7, #24]
}
EXTI->EMR = temp;
8012b26: 4a1e ldr r2, [pc, #120] ; (8012ba0 <HAL_GPIO_Init+0x350>)
8012b28: 69bb ldr r3, [r7, #24]
8012b2a: 6053 str r3, [r2, #4]
/* Clear EXTI line configuration */
temp = EXTI->IMR;
8012b2c: 4b1c ldr r3, [pc, #112] ; (8012ba0 <HAL_GPIO_Init+0x350>)
8012b2e: 681b ldr r3, [r3, #0]
8012b30: 61bb str r3, [r7, #24]
temp &= ~((uint32_t)iocurrent);
8012b32: 693b ldr r3, [r7, #16]
8012b34: 43db mvns r3, r3
8012b36: 69ba ldr r2, [r7, #24]
8012b38: 4013 ands r3, r2
8012b3a: 61bb str r3, [r7, #24]
if((GPIO_Init->Mode & EXTI_IT) != 0x00u)
8012b3c: 683b ldr r3, [r7, #0]
8012b3e: 685b ldr r3, [r3, #4]
8012b40: f403 3380 and.w r3, r3, #65536 ; 0x10000
8012b44: 2b00 cmp r3, #0
8012b46: d003 beq.n 8012b50 <HAL_GPIO_Init+0x300>
{
temp |= iocurrent;
8012b48: 69ba ldr r2, [r7, #24]
8012b4a: 693b ldr r3, [r7, #16]
8012b4c: 4313 orrs r3, r2
8012b4e: 61bb str r3, [r7, #24]
}
EXTI->IMR = temp;
8012b50: 4a13 ldr r2, [pc, #76] ; (8012ba0 <HAL_GPIO_Init+0x350>)
8012b52: 69bb ldr r3, [r7, #24]
8012b54: 6013 str r3, [r2, #0]
for(position = 0; position < GPIO_NUMBER; position++)
8012b56: 69fb ldr r3, [r7, #28]
8012b58: 3301 adds r3, #1
8012b5a: 61fb str r3, [r7, #28]
8012b5c: 69fb ldr r3, [r7, #28]
8012b5e: 2b0f cmp r3, #15
8012b60: f67f ae86 bls.w 8012870 <HAL_GPIO_Init+0x20>
}
}
}
}
8012b64: bf00 nop
8012b66: 3724 adds r7, #36 ; 0x24
8012b68: 46bd mov sp, r7
8012b6a: f85d 7b04 ldr.w r7, [sp], #4
8012b6e: 4770 bx lr
8012b70: 40023800 .word 0x40023800
8012b74: 40013800 .word 0x40013800
8012b78: 40020000 .word 0x40020000
8012b7c: 40020400 .word 0x40020400
8012b80: 40020800 .word 0x40020800
8012b84: 40020c00 .word 0x40020c00
8012b88: 40021000 .word 0x40021000
8012b8c: 40021400 .word 0x40021400
8012b90: 40021800 .word 0x40021800
8012b94: 40021c00 .word 0x40021c00
8012b98: 40022000 .word 0x40022000
8012b9c: 40022400 .word 0x40022400
8012ba0: 40013c00 .word 0x40013c00
08012ba4 <HAL_GPIO_ReadPin>:
* @param GPIO_Pin specifies the port bit to read.
* This parameter can be GPIO_PIN_x where x can be (0..15).
* @retval The input port pin value.
*/
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{
8012ba4: b480 push {r7}
8012ba6: b085 sub sp, #20
8012ba8: af00 add r7, sp, #0
8012baa: 6078 str r0, [r7, #4]
8012bac: 460b mov r3, r1
8012bae: 807b strh r3, [r7, #2]
GPIO_PinState bitstatus;
/* Check the parameters */
assert_param(IS_GPIO_PIN(GPIO_Pin));
if((GPIOx->IDR & GPIO_Pin) != (uint32_t)GPIO_PIN_RESET)
8012bb0: 687b ldr r3, [r7, #4]
8012bb2: 691a ldr r2, [r3, #16]
8012bb4: 887b ldrh r3, [r7, #2]
8012bb6: 4013 ands r3, r2
8012bb8: 2b00 cmp r3, #0
8012bba: d002 beq.n 8012bc2 <HAL_GPIO_ReadPin+0x1e>
{
bitstatus = GPIO_PIN_SET;
8012bbc: 2301 movs r3, #1
8012bbe: 73fb strb r3, [r7, #15]
8012bc0: e001 b.n 8012bc6 <HAL_GPIO_ReadPin+0x22>
}
else
{
bitstatus = GPIO_PIN_RESET;
8012bc2: 2300 movs r3, #0
8012bc4: 73fb strb r3, [r7, #15]
}
return bitstatus;
8012bc6: 7bfb ldrb r3, [r7, #15]
}
8012bc8: 4618 mov r0, r3
8012bca: 3714 adds r7, #20
8012bcc: 46bd mov sp, r7
8012bce: f85d 7b04 ldr.w r7, [sp], #4
8012bd2: 4770 bx lr
08012bd4 <HAL_GPIO_WritePin>:
* @arg GPIO_PIN_RESET: to clear the port pin
* @arg GPIO_PIN_SET: to set the port pin
* @retval None
*/
void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
{
8012bd4: b480 push {r7}
8012bd6: b083 sub sp, #12
8012bd8: af00 add r7, sp, #0
8012bda: 6078 str r0, [r7, #4]
8012bdc: 460b mov r3, r1
8012bde: 807b strh r3, [r7, #2]
8012be0: 4613 mov r3, r2
8012be2: 707b strb r3, [r7, #1]
/* Check the parameters */
assert_param(IS_GPIO_PIN(GPIO_Pin));
assert_param(IS_GPIO_PIN_ACTION(PinState));
if(PinState != GPIO_PIN_RESET)
8012be4: 787b ldrb r3, [r7, #1]
8012be6: 2b00 cmp r3, #0
8012be8: d003 beq.n 8012bf2 <HAL_GPIO_WritePin+0x1e>
{
GPIOx->BSRR = GPIO_Pin;
8012bea: 887a ldrh r2, [r7, #2]
8012bec: 687b ldr r3, [r7, #4]
8012bee: 619a str r2, [r3, #24]
}
else
{
GPIOx->BSRR = (uint32_t)GPIO_Pin << 16;
}
}
8012bf0: e003 b.n 8012bfa <HAL_GPIO_WritePin+0x26>
GPIOx->BSRR = (uint32_t)GPIO_Pin << 16;
8012bf2: 887b ldrh r3, [r7, #2]
8012bf4: 041a lsls r2, r3, #16
8012bf6: 687b ldr r3, [r7, #4]
8012bf8: 619a str r2, [r3, #24]
}
8012bfa: bf00 nop
8012bfc: 370c adds r7, #12
8012bfe: 46bd mov sp, r7
8012c00: f85d 7b04 ldr.w r7, [sp], #4
8012c04: 4770 bx lr
...
08012c08 <HAL_GPIO_EXTI_IRQHandler>:
* @brief This function handles EXTI interrupt request.
* @param GPIO_Pin Specifies the pins connected EXTI line
* @retval None
*/
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
{
8012c08: b580 push {r7, lr}
8012c0a: b082 sub sp, #8
8012c0c: af00 add r7, sp, #0
8012c0e: 4603 mov r3, r0
8012c10: 80fb strh r3, [r7, #6]
/* EXTI line interrupt detected */
if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET)
8012c12: 4b08 ldr r3, [pc, #32] ; (8012c34 <HAL_GPIO_EXTI_IRQHandler+0x2c>)
8012c14: 695a ldr r2, [r3, #20]
8012c16: 88fb ldrh r3, [r7, #6]
8012c18: 4013 ands r3, r2
8012c1a: 2b00 cmp r3, #0
8012c1c: d006 beq.n 8012c2c <HAL_GPIO_EXTI_IRQHandler+0x24>
{
__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
8012c1e: 4a05 ldr r2, [pc, #20] ; (8012c34 <HAL_GPIO_EXTI_IRQHandler+0x2c>)
8012c20: 88fb ldrh r3, [r7, #6]
8012c22: 6153 str r3, [r2, #20]
HAL_GPIO_EXTI_Callback(GPIO_Pin);
8012c24: 88fb ldrh r3, [r7, #6]
8012c26: 4618 mov r0, r3
8012c28: f7f3 f910 bl 8005e4c <HAL_GPIO_EXTI_Callback>
}
}
8012c2c: bf00 nop
8012c2e: 3708 adds r7, #8
8012c30: 46bd mov sp, r7
8012c32: bd80 pop {r7, pc}
8012c34: 40013c00 .word 0x40013c00
08012c38 <HAL_LTDC_Init>:
* @param hltdc pointer to a LTDC_HandleTypeDef structure that contains
* the configuration information for the LTDC.
* @retval HAL status
*/
HAL_StatusTypeDef HAL_LTDC_Init(LTDC_HandleTypeDef *hltdc)
{
8012c38: b580 push {r7, lr}
8012c3a: b084 sub sp, #16
8012c3c: af00 add r7, sp, #0
8012c3e: 6078 str r0, [r7, #4]
uint32_t tmp, tmp1;
/* Check the LTDC peripheral state */
if (hltdc == NULL)
8012c40: 687b ldr r3, [r7, #4]
8012c42: 2b00 cmp r3, #0
8012c44: d101 bne.n 8012c4a <HAL_LTDC_Init+0x12>
{
return HAL_ERROR;
8012c46: 2301 movs r3, #1
8012c48: e0bf b.n 8012dca <HAL_LTDC_Init+0x192>
}
/* Init the low level hardware */
hltdc->MspInitCallback(hltdc);
}
#else
if (hltdc->State == HAL_LTDC_STATE_RESET)
8012c4a: 687b ldr r3, [r7, #4]
8012c4c: f893 30a1 ldrb.w r3, [r3, #161] ; 0xa1
8012c50: b2db uxtb r3, r3
8012c52: 2b00 cmp r3, #0
8012c54: d106 bne.n 8012c64 <HAL_LTDC_Init+0x2c>
{
/* Allocate lock resource and initialize it */
hltdc->Lock = HAL_UNLOCKED;
8012c56: 687b ldr r3, [r7, #4]
8012c58: 2200 movs r2, #0
8012c5a: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
/* Init the low level hardware */
HAL_LTDC_MspInit(hltdc);
8012c5e: 6878 ldr r0, [r7, #4]
8012c60: f7f1 ff10 bl 8004a84 <HAL_LTDC_MspInit>
}
#endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
/* Change LTDC peripheral state */
hltdc->State = HAL_LTDC_STATE_BUSY;
8012c64: 687b ldr r3, [r7, #4]
8012c66: 2202 movs r2, #2
8012c68: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Configure the HS, VS, DE and PC polarity */
hltdc->Instance->GCR &= ~(LTDC_GCR_HSPOL | LTDC_GCR_VSPOL | LTDC_GCR_DEPOL | LTDC_GCR_PCPOL);
8012c6c: 687b ldr r3, [r7, #4]
8012c6e: 681b ldr r3, [r3, #0]
8012c70: 687a ldr r2, [r7, #4]
8012c72: 6812 ldr r2, [r2, #0]
8012c74: 6992 ldr r2, [r2, #24]
8012c76: f022 4270 bic.w r2, r2, #4026531840 ; 0xf0000000
8012c7a: 619a str r2, [r3, #24]
hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \
8012c7c: 687b ldr r3, [r7, #4]
8012c7e: 681b ldr r3, [r3, #0]
8012c80: 687a ldr r2, [r7, #4]
8012c82: 6812 ldr r2, [r2, #0]
8012c84: 6991 ldr r1, [r2, #24]
8012c86: 687a ldr r2, [r7, #4]
8012c88: 6850 ldr r0, [r2, #4]
8012c8a: 687a ldr r2, [r7, #4]
8012c8c: 6892 ldr r2, [r2, #8]
8012c8e: 4310 orrs r0, r2
hltdc->Init.DEPolarity | hltdc->Init.PCPolarity);
8012c90: 687a ldr r2, [r7, #4]
8012c92: 68d2 ldr r2, [r2, #12]
hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \
8012c94: 4310 orrs r0, r2
hltdc->Init.DEPolarity | hltdc->Init.PCPolarity);
8012c96: 687a ldr r2, [r7, #4]
8012c98: 6912 ldr r2, [r2, #16]
8012c9a: 4302 orrs r2, r0
hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \
8012c9c: 430a orrs r2, r1
8012c9e: 619a str r2, [r3, #24]
/* Set Synchronization size */
hltdc->Instance->SSCR &= ~(LTDC_SSCR_VSH | LTDC_SSCR_HSW);
8012ca0: 687b ldr r3, [r7, #4]
8012ca2: 681a ldr r2, [r3, #0]
8012ca4: 687b ldr r3, [r7, #4]
8012ca6: 681b ldr r3, [r3, #0]
8012ca8: 6899 ldr r1, [r3, #8]
8012caa: 4b4a ldr r3, [pc, #296] ; (8012dd4 <HAL_LTDC_Init+0x19c>)
8012cac: 400b ands r3, r1
8012cae: 6093 str r3, [r2, #8]
tmp = (hltdc->Init.HorizontalSync << 16U);
8012cb0: 687b ldr r3, [r7, #4]
8012cb2: 695b ldr r3, [r3, #20]
8012cb4: 041b lsls r3, r3, #16
8012cb6: 60fb str r3, [r7, #12]
hltdc->Instance->SSCR |= (tmp | hltdc->Init.VerticalSync);
8012cb8: 687b ldr r3, [r7, #4]
8012cba: 681b ldr r3, [r3, #0]
8012cbc: 687a ldr r2, [r7, #4]
8012cbe: 6812 ldr r2, [r2, #0]
8012cc0: 6891 ldr r1, [r2, #8]
8012cc2: 687a ldr r2, [r7, #4]
8012cc4: 6990 ldr r0, [r2, #24]
8012cc6: 68fa ldr r2, [r7, #12]
8012cc8: 4302 orrs r2, r0
8012cca: 430a orrs r2, r1
8012ccc: 609a str r2, [r3, #8]
/* Set Accumulated Back porch */
hltdc->Instance->BPCR &= ~(LTDC_BPCR_AVBP | LTDC_BPCR_AHBP);
8012cce: 687b ldr r3, [r7, #4]
8012cd0: 681a ldr r2, [r3, #0]
8012cd2: 687b ldr r3, [r7, #4]
8012cd4: 681b ldr r3, [r3, #0]
8012cd6: 68d9 ldr r1, [r3, #12]
8012cd8: 4b3e ldr r3, [pc, #248] ; (8012dd4 <HAL_LTDC_Init+0x19c>)
8012cda: 400b ands r3, r1
8012cdc: 60d3 str r3, [r2, #12]
tmp = (hltdc->Init.AccumulatedHBP << 16U);
8012cde: 687b ldr r3, [r7, #4]
8012ce0: 69db ldr r3, [r3, #28]
8012ce2: 041b lsls r3, r3, #16
8012ce4: 60fb str r3, [r7, #12]
hltdc->Instance->BPCR |= (tmp | hltdc->Init.AccumulatedVBP);
8012ce6: 687b ldr r3, [r7, #4]
8012ce8: 681b ldr r3, [r3, #0]
8012cea: 687a ldr r2, [r7, #4]
8012cec: 6812 ldr r2, [r2, #0]
8012cee: 68d1 ldr r1, [r2, #12]
8012cf0: 687a ldr r2, [r7, #4]
8012cf2: 6a10 ldr r0, [r2, #32]
8012cf4: 68fa ldr r2, [r7, #12]
8012cf6: 4302 orrs r2, r0
8012cf8: 430a orrs r2, r1
8012cfa: 60da str r2, [r3, #12]
/* Set Accumulated Active Width */
hltdc->Instance->AWCR &= ~(LTDC_AWCR_AAH | LTDC_AWCR_AAW);
8012cfc: 687b ldr r3, [r7, #4]
8012cfe: 681a ldr r2, [r3, #0]
8012d00: 687b ldr r3, [r7, #4]
8012d02: 681b ldr r3, [r3, #0]
8012d04: 6919 ldr r1, [r3, #16]
8012d06: 4b33 ldr r3, [pc, #204] ; (8012dd4 <HAL_LTDC_Init+0x19c>)
8012d08: 400b ands r3, r1
8012d0a: 6113 str r3, [r2, #16]
tmp = (hltdc->Init.AccumulatedActiveW << 16U);
8012d0c: 687b ldr r3, [r7, #4]
8012d0e: 6a5b ldr r3, [r3, #36] ; 0x24
8012d10: 041b lsls r3, r3, #16
8012d12: 60fb str r3, [r7, #12]
hltdc->Instance->AWCR |= (tmp | hltdc->Init.AccumulatedActiveH);
8012d14: 687b ldr r3, [r7, #4]
8012d16: 681b ldr r3, [r3, #0]
8012d18: 687a ldr r2, [r7, #4]
8012d1a: 6812 ldr r2, [r2, #0]
8012d1c: 6911 ldr r1, [r2, #16]
8012d1e: 687a ldr r2, [r7, #4]
8012d20: 6a90 ldr r0, [r2, #40] ; 0x28
8012d22: 68fa ldr r2, [r7, #12]
8012d24: 4302 orrs r2, r0
8012d26: 430a orrs r2, r1
8012d28: 611a str r2, [r3, #16]
/* Set Total Width */
hltdc->Instance->TWCR &= ~(LTDC_TWCR_TOTALH | LTDC_TWCR_TOTALW);
8012d2a: 687b ldr r3, [r7, #4]
8012d2c: 681a ldr r2, [r3, #0]
8012d2e: 687b ldr r3, [r7, #4]
8012d30: 681b ldr r3, [r3, #0]
8012d32: 6959 ldr r1, [r3, #20]
8012d34: 4b27 ldr r3, [pc, #156] ; (8012dd4 <HAL_LTDC_Init+0x19c>)
8012d36: 400b ands r3, r1
8012d38: 6153 str r3, [r2, #20]
tmp = (hltdc->Init.TotalWidth << 16U);
8012d3a: 687b ldr r3, [r7, #4]
8012d3c: 6adb ldr r3, [r3, #44] ; 0x2c
8012d3e: 041b lsls r3, r3, #16
8012d40: 60fb str r3, [r7, #12]
hltdc->Instance->TWCR |= (tmp | hltdc->Init.TotalHeigh);
8012d42: 687b ldr r3, [r7, #4]
8012d44: 681b ldr r3, [r3, #0]
8012d46: 687a ldr r2, [r7, #4]
8012d48: 6812 ldr r2, [r2, #0]
8012d4a: 6951 ldr r1, [r2, #20]
8012d4c: 687a ldr r2, [r7, #4]
8012d4e: 6b10 ldr r0, [r2, #48] ; 0x30
8012d50: 68fa ldr r2, [r7, #12]
8012d52: 4302 orrs r2, r0
8012d54: 430a orrs r2, r1
8012d56: 615a str r2, [r3, #20]
/* Set the background color value */
tmp = ((uint32_t)(hltdc->Init.Backcolor.Green) << 8U);
8012d58: 687b ldr r3, [r7, #4]
8012d5a: f893 3035 ldrb.w r3, [r3, #53] ; 0x35
8012d5e: 021b lsls r3, r3, #8
8012d60: 60fb str r3, [r7, #12]
tmp1 = ((uint32_t)(hltdc->Init.Backcolor.Red) << 16U);
8012d62: 687b ldr r3, [r7, #4]
8012d64: f893 3036 ldrb.w r3, [r3, #54] ; 0x36
8012d68: 041b lsls r3, r3, #16
8012d6a: 60bb str r3, [r7, #8]
hltdc->Instance->BCCR &= ~(LTDC_BCCR_BCBLUE | LTDC_BCCR_BCGREEN | LTDC_BCCR_BCRED);
8012d6c: 687b ldr r3, [r7, #4]
8012d6e: 681b ldr r3, [r3, #0]
8012d70: 687a ldr r2, [r7, #4]
8012d72: 6812 ldr r2, [r2, #0]
8012d74: 6ad2 ldr r2, [r2, #44] ; 0x2c
8012d76: f002 427f and.w r2, r2, #4278190080 ; 0xff000000
8012d7a: 62da str r2, [r3, #44] ; 0x2c
hltdc->Instance->BCCR |= (tmp1 | tmp | hltdc->Init.Backcolor.Blue);
8012d7c: 687b ldr r3, [r7, #4]
8012d7e: 681b ldr r3, [r3, #0]
8012d80: 687a ldr r2, [r7, #4]
8012d82: 6812 ldr r2, [r2, #0]
8012d84: 6ad1 ldr r1, [r2, #44] ; 0x2c
8012d86: 68b8 ldr r0, [r7, #8]
8012d88: 68fa ldr r2, [r7, #12]
8012d8a: 4302 orrs r2, r0
8012d8c: 6878 ldr r0, [r7, #4]
8012d8e: f890 0034 ldrb.w r0, [r0, #52] ; 0x34
8012d92: 4302 orrs r2, r0
8012d94: 430a orrs r2, r1
8012d96: 62da str r2, [r3, #44] ; 0x2c
/* Enable the Transfer Error and FIFO underrun interrupts */
__HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_TE | LTDC_IT_FU);
8012d98: 687b ldr r3, [r7, #4]
8012d9a: 681b ldr r3, [r3, #0]
8012d9c: 687a ldr r2, [r7, #4]
8012d9e: 6812 ldr r2, [r2, #0]
8012da0: 6b52 ldr r2, [r2, #52] ; 0x34
8012da2: f042 0206 orr.w r2, r2, #6
8012da6: 635a str r2, [r3, #52] ; 0x34
/* Enable LTDC by setting LTDCEN bit */
__HAL_LTDC_ENABLE(hltdc);
8012da8: 687b ldr r3, [r7, #4]
8012daa: 681b ldr r3, [r3, #0]
8012dac: 687a ldr r2, [r7, #4]
8012dae: 6812 ldr r2, [r2, #0]
8012db0: 6992 ldr r2, [r2, #24]
8012db2: f042 0201 orr.w r2, r2, #1
8012db6: 619a str r2, [r3, #24]
/* Initialize the error code */
hltdc->ErrorCode = HAL_LTDC_ERROR_NONE;
8012db8: 687b ldr r3, [r7, #4]
8012dba: 2200 movs r2, #0
8012dbc: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4
/* Initialize the LTDC state*/
hltdc->State = HAL_LTDC_STATE_READY;
8012dc0: 687b ldr r3, [r7, #4]
8012dc2: 2201 movs r2, #1
8012dc4: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
return HAL_OK;
8012dc8: 2300 movs r3, #0
}
8012dca: 4618 mov r0, r3
8012dcc: 3710 adds r7, #16
8012dce: 46bd mov sp, r7
8012dd0: bd80 pop {r7, pc}
8012dd2: bf00 nop
8012dd4: f000f800 .word 0xf000f800
08012dd8 <HAL_LTDC_IRQHandler>:
* @param hltdc pointer to a LTDC_HandleTypeDef structure that contains
* the configuration information for the LTDC.
* @retval HAL status
*/
void HAL_LTDC_IRQHandler(LTDC_HandleTypeDef *hltdc)
{
8012dd8: b580 push {r7, lr}
8012dda: b084 sub sp, #16
8012ddc: af00 add r7, sp, #0
8012dde: 6078 str r0, [r7, #4]
uint32_t isrflags = READ_REG(hltdc->Instance->ISR);
8012de0: 687b ldr r3, [r7, #4]
8012de2: 681b ldr r3, [r3, #0]
8012de4: 6b9b ldr r3, [r3, #56] ; 0x38
8012de6: 60fb str r3, [r7, #12]
uint32_t itsources = READ_REG(hltdc->Instance->IER);
8012de8: 687b ldr r3, [r7, #4]
8012dea: 681b ldr r3, [r3, #0]
8012dec: 6b5b ldr r3, [r3, #52] ; 0x34
8012dee: 60bb str r3, [r7, #8]
/* Transfer Error Interrupt management ***************************************/
if (((isrflags & LTDC_ISR_TERRIF) != 0U) && ((itsources & LTDC_IER_TERRIE) != 0U))
8012df0: 68fb ldr r3, [r7, #12]
8012df2: f003 0304 and.w r3, r3, #4
8012df6: 2b00 cmp r3, #0
8012df8: d023 beq.n 8012e42 <HAL_LTDC_IRQHandler+0x6a>
8012dfa: 68bb ldr r3, [r7, #8]
8012dfc: f003 0304 and.w r3, r3, #4
8012e00: 2b00 cmp r3, #0
8012e02: d01e beq.n 8012e42 <HAL_LTDC_IRQHandler+0x6a>
{
/* Disable the transfer Error interrupt */
__HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_TE);
8012e04: 687b ldr r3, [r7, #4]
8012e06: 681b ldr r3, [r3, #0]
8012e08: 687a ldr r2, [r7, #4]
8012e0a: 6812 ldr r2, [r2, #0]
8012e0c: 6b52 ldr r2, [r2, #52] ; 0x34
8012e0e: f022 0204 bic.w r2, r2, #4
8012e12: 635a str r2, [r3, #52] ; 0x34
/* Clear the transfer error flag */
__HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_TE);
8012e14: 687b ldr r3, [r7, #4]
8012e16: 681b ldr r3, [r3, #0]
8012e18: 2204 movs r2, #4
8012e1a: 63da str r2, [r3, #60] ; 0x3c
/* Update error code */
hltdc->ErrorCode |= HAL_LTDC_ERROR_TE;
8012e1c: 687b ldr r3, [r7, #4]
8012e1e: f8d3 30a4 ldr.w r3, [r3, #164] ; 0xa4
8012e22: f043 0201 orr.w r2, r3, #1
8012e26: 687b ldr r3, [r7, #4]
8012e28: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4
/* Change LTDC state */
hltdc->State = HAL_LTDC_STATE_ERROR;
8012e2c: 687b ldr r3, [r7, #4]
8012e2e: 2204 movs r2, #4
8012e30: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
8012e34: 687b ldr r3, [r7, #4]
8012e36: 2200 movs r2, #0
8012e38: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
#if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1)
/*Call registered error callback*/
hltdc->ErrorCallback(hltdc);
#else
/* Call legacy error callback*/
HAL_LTDC_ErrorCallback(hltdc);
8012e3c: 6878 ldr r0, [r7, #4]
8012e3e: f000 f86f bl 8012f20 <HAL_LTDC_ErrorCallback>
#endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
}
/* FIFO underrun Interrupt management ***************************************/
if (((isrflags & LTDC_ISR_FUIF) != 0U) && ((itsources & LTDC_IER_FUIE) != 0U))
8012e42: 68fb ldr r3, [r7, #12]
8012e44: f003 0302 and.w r3, r3, #2
8012e48: 2b00 cmp r3, #0
8012e4a: d023 beq.n 8012e94 <HAL_LTDC_IRQHandler+0xbc>
8012e4c: 68bb ldr r3, [r7, #8]
8012e4e: f003 0302 and.w r3, r3, #2
8012e52: 2b00 cmp r3, #0
8012e54: d01e beq.n 8012e94 <HAL_LTDC_IRQHandler+0xbc>
{
/* Disable the FIFO underrun interrupt */
__HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_FU);
8012e56: 687b ldr r3, [r7, #4]
8012e58: 681b ldr r3, [r3, #0]
8012e5a: 687a ldr r2, [r7, #4]
8012e5c: 6812 ldr r2, [r2, #0]
8012e5e: 6b52 ldr r2, [r2, #52] ; 0x34
8012e60: f022 0202 bic.w r2, r2, #2
8012e64: 635a str r2, [r3, #52] ; 0x34
/* Clear the FIFO underrun flag */
__HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_FU);
8012e66: 687b ldr r3, [r7, #4]
8012e68: 681b ldr r3, [r3, #0]
8012e6a: 2202 movs r2, #2
8012e6c: 63da str r2, [r3, #60] ; 0x3c
/* Update error code */
hltdc->ErrorCode |= HAL_LTDC_ERROR_FU;
8012e6e: 687b ldr r3, [r7, #4]
8012e70: f8d3 30a4 ldr.w r3, [r3, #164] ; 0xa4
8012e74: f043 0202 orr.w r2, r3, #2
8012e78: 687b ldr r3, [r7, #4]
8012e7a: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4
/* Change LTDC state */
hltdc->State = HAL_LTDC_STATE_ERROR;
8012e7e: 687b ldr r3, [r7, #4]
8012e80: 2204 movs r2, #4
8012e82: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
8012e86: 687b ldr r3, [r7, #4]
8012e88: 2200 movs r2, #0
8012e8a: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
#if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1)
/*Call registered error callback*/
hltdc->ErrorCallback(hltdc);
#else
/* Call legacy error callback*/
HAL_LTDC_ErrorCallback(hltdc);
8012e8e: 6878 ldr r0, [r7, #4]
8012e90: f000 f846 bl 8012f20 <HAL_LTDC_ErrorCallback>
#endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
}
/* Line Interrupt management ************************************************/
if (((isrflags & LTDC_ISR_LIF) != 0U) && ((itsources & LTDC_IER_LIE) != 0U))
8012e94: 68fb ldr r3, [r7, #12]
8012e96: f003 0301 and.w r3, r3, #1
8012e9a: 2b00 cmp r3, #0
8012e9c: d01b beq.n 8012ed6 <HAL_LTDC_IRQHandler+0xfe>
8012e9e: 68bb ldr r3, [r7, #8]
8012ea0: f003 0301 and.w r3, r3, #1
8012ea4: 2b00 cmp r3, #0
8012ea6: d016 beq.n 8012ed6 <HAL_LTDC_IRQHandler+0xfe>
{
/* Disable the Line interrupt */
__HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_LI);
8012ea8: 687b ldr r3, [r7, #4]
8012eaa: 681b ldr r3, [r3, #0]
8012eac: 687a ldr r2, [r7, #4]
8012eae: 6812 ldr r2, [r2, #0]
8012eb0: 6b52 ldr r2, [r2, #52] ; 0x34
8012eb2: f022 0201 bic.w r2, r2, #1
8012eb6: 635a str r2, [r3, #52] ; 0x34
/* Clear the Line interrupt flag */
__HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_LI);
8012eb8: 687b ldr r3, [r7, #4]
8012eba: 681b ldr r3, [r3, #0]
8012ebc: 2201 movs r2, #1
8012ebe: 63da str r2, [r3, #60] ; 0x3c
/* Change LTDC state */
hltdc->State = HAL_LTDC_STATE_READY;
8012ec0: 687b ldr r3, [r7, #4]
8012ec2: 2201 movs r2, #1
8012ec4: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
8012ec8: 687b ldr r3, [r7, #4]
8012eca: 2200 movs r2, #0
8012ecc: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
#if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1)
/*Call registered Line Event callback */
hltdc->LineEventCallback(hltdc);
#else
/*Call Legacy Line Event callback */
HAL_LTDC_LineEventCallback(hltdc);
8012ed0: 6878 ldr r0, [r7, #4]
8012ed2: f7f2 fdf1 bl 8005ab8 <HAL_LTDC_LineEventCallback>
#endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
}
/* Register reload Interrupt management ***************************************/
if (((isrflags & LTDC_ISR_RRIF) != 0U) && ((itsources & LTDC_IER_RRIE) != 0U))
8012ed6: 68fb ldr r3, [r7, #12]
8012ed8: f003 0308 and.w r3, r3, #8
8012edc: 2b00 cmp r3, #0
8012ede: d01b beq.n 8012f18 <HAL_LTDC_IRQHandler+0x140>
8012ee0: 68bb ldr r3, [r7, #8]
8012ee2: f003 0308 and.w r3, r3, #8
8012ee6: 2b00 cmp r3, #0
8012ee8: d016 beq.n 8012f18 <HAL_LTDC_IRQHandler+0x140>
{
/* Disable the register reload interrupt */
__HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_RR);
8012eea: 687b ldr r3, [r7, #4]
8012eec: 681b ldr r3, [r3, #0]
8012eee: 687a ldr r2, [r7, #4]
8012ef0: 6812 ldr r2, [r2, #0]
8012ef2: 6b52 ldr r2, [r2, #52] ; 0x34
8012ef4: f022 0208 bic.w r2, r2, #8
8012ef8: 635a str r2, [r3, #52] ; 0x34
/* Clear the register reload flag */
__HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_RR);
8012efa: 687b ldr r3, [r7, #4]
8012efc: 681b ldr r3, [r3, #0]
8012efe: 2208 movs r2, #8
8012f00: 63da str r2, [r3, #60] ; 0x3c
/* Change LTDC state */
hltdc->State = HAL_LTDC_STATE_READY;
8012f02: 687b ldr r3, [r7, #4]
8012f04: 2201 movs r2, #1
8012f06: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
8012f0a: 687b ldr r3, [r7, #4]
8012f0c: 2200 movs r2, #0
8012f0e: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
#if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1)
/*Call registered reload Event callback */
hltdc->ReloadEventCallback(hltdc);
#else
/*Call Legacy Reload Event callback */
HAL_LTDC_ReloadEventCallback(hltdc);
8012f12: 6878 ldr r0, [r7, #4]
8012f14: f000 f80e bl 8012f34 <HAL_LTDC_ReloadEventCallback>
#endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
}
}
8012f18: bf00 nop
8012f1a: 3710 adds r7, #16
8012f1c: 46bd mov sp, r7
8012f1e: bd80 pop {r7, pc}
08012f20 <HAL_LTDC_ErrorCallback>:
* @param hltdc pointer to a LTDC_HandleTypeDef structure that contains
* the configuration information for the LTDC.
* @retval None
*/
__weak void HAL_LTDC_ErrorCallback(LTDC_HandleTypeDef *hltdc)
{
8012f20: b480 push {r7}
8012f22: b083 sub sp, #12
8012f24: af00 add r7, sp, #0
8012f26: 6078 str r0, [r7, #4]
UNUSED(hltdc);
/* NOTE : This function should not be modified, when the callback is needed,
the HAL_LTDC_ErrorCallback could be implemented in the user file
*/
}
8012f28: bf00 nop
8012f2a: 370c adds r7, #12
8012f2c: 46bd mov sp, r7
8012f2e: f85d 7b04 ldr.w r7, [sp], #4
8012f32: 4770 bx lr
08012f34 <HAL_LTDC_ReloadEventCallback>:
* @param hltdc pointer to a LTDC_HandleTypeDef structure that contains
* the configuration information for the LTDC.
* @retval None
*/
__weak void HAL_LTDC_ReloadEventCallback(LTDC_HandleTypeDef *hltdc)
{
8012f34: b480 push {r7}
8012f36: b083 sub sp, #12
8012f38: af00 add r7, sp, #0
8012f3a: 6078 str r0, [r7, #4]
UNUSED(hltdc);
/* NOTE : This function should not be modified, when the callback is needed,
the HAL_LTDC_ReloadEvenCallback could be implemented in the user file
*/
}
8012f3c: bf00 nop
8012f3e: 370c adds r7, #12
8012f40: 46bd mov sp, r7
8012f42: f85d 7b04 ldr.w r7, [sp], #4
8012f46: 4770 bx lr
08012f48 <HAL_LTDC_ConfigLayer>:
* This parameter can be one of the following values:
* LTDC_LAYER_1 (0) or LTDC_LAYER_2 (1)
* @retval HAL status
*/
HAL_StatusTypeDef HAL_LTDC_ConfigLayer(LTDC_HandleTypeDef *hltdc, LTDC_LayerCfgTypeDef *pLayerCfg, uint32_t LayerIdx)
{
8012f48: b5b0 push {r4, r5, r7, lr}
8012f4a: b084 sub sp, #16
8012f4c: af00 add r7, sp, #0
8012f4e: 60f8 str r0, [r7, #12]
8012f50: 60b9 str r1, [r7, #8]
8012f52: 607a str r2, [r7, #4]
assert_param(IS_LTDC_BLENDING_FACTOR2(pLayerCfg->BlendingFactor2));
assert_param(IS_LTDC_CFBLL(pLayerCfg->ImageWidth));
assert_param(IS_LTDC_CFBLNBR(pLayerCfg->ImageHeight));
/* Process locked */
__HAL_LOCK(hltdc);
8012f54: 68fb ldr r3, [r7, #12]
8012f56: f893 30a0 ldrb.w r3, [r3, #160] ; 0xa0
8012f5a: 2b01 cmp r3, #1
8012f5c: d101 bne.n 8012f62 <HAL_LTDC_ConfigLayer+0x1a>
8012f5e: 2302 movs r3, #2
8012f60: e02c b.n 8012fbc <HAL_LTDC_ConfigLayer+0x74>
8012f62: 68fb ldr r3, [r7, #12]
8012f64: 2201 movs r2, #1
8012f66: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
/* Change LTDC peripheral state */
hltdc->State = HAL_LTDC_STATE_BUSY;
8012f6a: 68fb ldr r3, [r7, #12]
8012f6c: 2202 movs r2, #2
8012f6e: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Copy new layer configuration into handle structure */
hltdc->LayerCfg[LayerIdx] = *pLayerCfg;
8012f72: 68fa ldr r2, [r7, #12]
8012f74: 687b ldr r3, [r7, #4]
8012f76: 2134 movs r1, #52 ; 0x34
8012f78: fb01 f303 mul.w r3, r1, r3
8012f7c: 4413 add r3, r2
8012f7e: f103 0238 add.w r2, r3, #56 ; 0x38
8012f82: 68bb ldr r3, [r7, #8]
8012f84: 4614 mov r4, r2
8012f86: 461d mov r5, r3
8012f88: cd0f ldmia r5!, {r0, r1, r2, r3}
8012f8a: c40f stmia r4!, {r0, r1, r2, r3}
8012f8c: cd0f ldmia r5!, {r0, r1, r2, r3}
8012f8e: c40f stmia r4!, {r0, r1, r2, r3}
8012f90: cd0f ldmia r5!, {r0, r1, r2, r3}
8012f92: c40f stmia r4!, {r0, r1, r2, r3}
8012f94: 682b ldr r3, [r5, #0]
8012f96: 6023 str r3, [r4, #0]
/* Configure the LTDC Layer */
LTDC_SetConfig(hltdc, pLayerCfg, LayerIdx);
8012f98: 687a ldr r2, [r7, #4]
8012f9a: 68b9 ldr r1, [r7, #8]
8012f9c: 68f8 ldr r0, [r7, #12]
8012f9e: f000 f879 bl 8013094 <LTDC_SetConfig>
/* Set the Immediate Reload type */
hltdc->Instance->SRCR = LTDC_SRCR_IMR;
8012fa2: 68fb ldr r3, [r7, #12]
8012fa4: 681b ldr r3, [r3, #0]
8012fa6: 2201 movs r2, #1
8012fa8: 625a str r2, [r3, #36] ; 0x24
/* Initialize the LTDC state*/
hltdc->State = HAL_LTDC_STATE_READY;
8012faa: 68fb ldr r3, [r7, #12]
8012fac: 2201 movs r2, #1
8012fae: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
8012fb2: 68fb ldr r3, [r7, #12]
8012fb4: 2200 movs r2, #0
8012fb6: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
return HAL_OK;
8012fba: 2300 movs r3, #0
}
8012fbc: 4618 mov r0, r3
8012fbe: 3710 adds r7, #16
8012fc0: 46bd mov sp, r7
8012fc2: bdb0 pop {r4, r5, r7, pc}
08012fc4 <HAL_LTDC_ProgramLineEvent>:
* @param Line Line Interrupt Position.
* @note User application may resort to HAL_LTDC_LineEventCallback() at line interrupt generation.
* @retval HAL status
*/
HAL_StatusTypeDef HAL_LTDC_ProgramLineEvent(LTDC_HandleTypeDef *hltdc, uint32_t Line)
{
8012fc4: b480 push {r7}
8012fc6: b083 sub sp, #12
8012fc8: af00 add r7, sp, #0
8012fca: 6078 str r0, [r7, #4]
8012fcc: 6039 str r1, [r7, #0]
/* Check the parameters */
assert_param(IS_LTDC_LIPOS(Line));
/* Process locked */
__HAL_LOCK(hltdc);
8012fce: 687b ldr r3, [r7, #4]
8012fd0: f893 30a0 ldrb.w r3, [r3, #160] ; 0xa0
8012fd4: 2b01 cmp r3, #1
8012fd6: d101 bne.n 8012fdc <HAL_LTDC_ProgramLineEvent+0x18>
8012fd8: 2302 movs r3, #2
8012fda: e023 b.n 8013024 <HAL_LTDC_ProgramLineEvent+0x60>
8012fdc: 687b ldr r3, [r7, #4]
8012fde: 2201 movs r2, #1
8012fe0: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
/* Change LTDC peripheral state */
hltdc->State = HAL_LTDC_STATE_BUSY;
8012fe4: 687b ldr r3, [r7, #4]
8012fe6: 2202 movs r2, #2
8012fe8: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Disable the Line interrupt */
__HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_LI);
8012fec: 687b ldr r3, [r7, #4]
8012fee: 681b ldr r3, [r3, #0]
8012ff0: 687a ldr r2, [r7, #4]
8012ff2: 6812 ldr r2, [r2, #0]
8012ff4: 6b52 ldr r2, [r2, #52] ; 0x34
8012ff6: f022 0201 bic.w r2, r2, #1
8012ffa: 635a str r2, [r3, #52] ; 0x34
/* Set the Line Interrupt position */
LTDC->LIPCR = (uint32_t)Line;
8012ffc: 4a0c ldr r2, [pc, #48] ; (8013030 <HAL_LTDC_ProgramLineEvent+0x6c>)
8012ffe: 683b ldr r3, [r7, #0]
8013000: 6413 str r3, [r2, #64] ; 0x40
/* Enable the Line interrupt */
__HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_LI);
8013002: 687b ldr r3, [r7, #4]
8013004: 681b ldr r3, [r3, #0]
8013006: 687a ldr r2, [r7, #4]
8013008: 6812 ldr r2, [r2, #0]
801300a: 6b52 ldr r2, [r2, #52] ; 0x34
801300c: f042 0201 orr.w r2, r2, #1
8013010: 635a str r2, [r3, #52] ; 0x34
/* Change the LTDC state*/
hltdc->State = HAL_LTDC_STATE_READY;
8013012: 687b ldr r3, [r7, #4]
8013014: 2201 movs r2, #1
8013016: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
801301a: 687b ldr r3, [r7, #4]
801301c: 2200 movs r2, #0
801301e: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
return HAL_OK;
8013022: 2300 movs r3, #0
}
8013024: 4618 mov r0, r3
8013026: 370c adds r7, #12
8013028: 46bd mov sp, r7
801302a: f85d 7b04 ldr.w r7, [sp], #4
801302e: 4770 bx lr
8013030: 40016800 .word 0x40016800
08013034 <HAL_LTDC_Reload>:
* LTDC_RELOAD_VERTICAL_BLANKING : Reload in the next Vertical Blanking
* @note User application may resort to HAL_LTDC_ReloadEventCallback() at reload interrupt generation.
* @retval HAL status
*/
HAL_StatusTypeDef HAL_LTDC_Reload(LTDC_HandleTypeDef *hltdc, uint32_t ReloadType)
{
8013034: b480 push {r7}
8013036: b083 sub sp, #12
8013038: af00 add r7, sp, #0
801303a: 6078 str r0, [r7, #4]
801303c: 6039 str r1, [r7, #0]
/* Check the parameters */
assert_param(IS_LTDC_RELOAD(ReloadType));
/* Process locked */
__HAL_LOCK(hltdc);
801303e: 687b ldr r3, [r7, #4]
8013040: f893 30a0 ldrb.w r3, [r3, #160] ; 0xa0
8013044: 2b01 cmp r3, #1
8013046: d101 bne.n 801304c <HAL_LTDC_Reload+0x18>
8013048: 2302 movs r3, #2
801304a: e01c b.n 8013086 <HAL_LTDC_Reload+0x52>
801304c: 687b ldr r3, [r7, #4]
801304e: 2201 movs r2, #1
8013050: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
/* Change LTDC peripheral state */
hltdc->State = HAL_LTDC_STATE_BUSY;
8013054: 687b ldr r3, [r7, #4]
8013056: 2202 movs r2, #2
8013058: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Enable the Reload interrupt */
__HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_RR);
801305c: 687b ldr r3, [r7, #4]
801305e: 681b ldr r3, [r3, #0]
8013060: 687a ldr r2, [r7, #4]
8013062: 6812 ldr r2, [r2, #0]
8013064: 6b52 ldr r2, [r2, #52] ; 0x34
8013066: f042 0208 orr.w r2, r2, #8
801306a: 635a str r2, [r3, #52] ; 0x34
/* Apply Reload type */
hltdc->Instance->SRCR = ReloadType;
801306c: 687b ldr r3, [r7, #4]
801306e: 681b ldr r3, [r3, #0]
8013070: 683a ldr r2, [r7, #0]
8013072: 625a str r2, [r3, #36] ; 0x24
/* Change the LTDC state*/
hltdc->State = HAL_LTDC_STATE_READY;
8013074: 687b ldr r3, [r7, #4]
8013076: 2201 movs r2, #1
8013078: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
801307c: 687b ldr r3, [r7, #4]
801307e: 2200 movs r2, #0
8013080: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
return HAL_OK;
8013084: 2300 movs r3, #0
}
8013086: 4618 mov r0, r3
8013088: 370c adds r7, #12
801308a: 46bd mov sp, r7
801308c: f85d 7b04 ldr.w r7, [sp], #4
8013090: 4770 bx lr
...
08013094 <LTDC_SetConfig>:
* @param LayerIdx LTDC Layer index.
* This parameter can be one of the following values: LTDC_LAYER_1 (0) or LTDC_LAYER_2 (1)
* @retval None
*/
static void LTDC_SetConfig(LTDC_HandleTypeDef *hltdc, LTDC_LayerCfgTypeDef *pLayerCfg, uint32_t LayerIdx)
{
8013094: b480 push {r7}
8013096: b089 sub sp, #36 ; 0x24
8013098: af00 add r7, sp, #0
801309a: 60f8 str r0, [r7, #12]
801309c: 60b9 str r1, [r7, #8]
801309e: 607a str r2, [r7, #4]
uint32_t tmp;
uint32_t tmp1;
uint32_t tmp2;
/* Configure the horizontal start and stop position */
tmp = ((pLayerCfg->WindowX1 + ((hltdc->Instance->BPCR & LTDC_BPCR_AHBP) >> 16U)) << 16U);
80130a0: 68bb ldr r3, [r7, #8]
80130a2: 685a ldr r2, [r3, #4]
80130a4: 68fb ldr r3, [r7, #12]
80130a6: 681b ldr r3, [r3, #0]
80130a8: 68db ldr r3, [r3, #12]
80130aa: 0c1b lsrs r3, r3, #16
80130ac: f3c3 030b ubfx r3, r3, #0, #12
80130b0: 4413 add r3, r2
80130b2: 041b lsls r3, r3, #16
80130b4: 61fb str r3, [r7, #28]
LTDC_LAYER(hltdc, LayerIdx)->WHPCR &= ~(LTDC_LxWHPCR_WHSTPOS | LTDC_LxWHPCR_WHSPPOS);
80130b6: 68fb ldr r3, [r7, #12]
80130b8: 681b ldr r3, [r3, #0]
80130ba: 461a mov r2, r3
80130bc: 687b ldr r3, [r7, #4]
80130be: 01db lsls r3, r3, #7
80130c0: 4413 add r3, r2
80130c2: 3384 adds r3, #132 ; 0x84
80130c4: 461a mov r2, r3
80130c6: 68fb ldr r3, [r7, #12]
80130c8: 681b ldr r3, [r3, #0]
80130ca: 4619 mov r1, r3
80130cc: 687b ldr r3, [r7, #4]
80130ce: 01db lsls r3, r3, #7
80130d0: 440b add r3, r1
80130d2: 3384 adds r3, #132 ; 0x84
80130d4: 685b ldr r3, [r3, #4]
80130d6: f403 4370 and.w r3, r3, #61440 ; 0xf000
80130da: 6053 str r3, [r2, #4]
LTDC_LAYER(hltdc, LayerIdx)->WHPCR = ((pLayerCfg->WindowX0 + ((hltdc->Instance->BPCR & LTDC_BPCR_AHBP) >> 16U) + 1U) | tmp);
80130dc: 68fb ldr r3, [r7, #12]
80130de: 681b ldr r3, [r3, #0]
80130e0: 461a mov r2, r3
80130e2: 687b ldr r3, [r7, #4]
80130e4: 01db lsls r3, r3, #7
80130e6: 4413 add r3, r2
80130e8: 3384 adds r3, #132 ; 0x84
80130ea: 4619 mov r1, r3
80130ec: 68bb ldr r3, [r7, #8]
80130ee: 681a ldr r2, [r3, #0]
80130f0: 68fb ldr r3, [r7, #12]
80130f2: 681b ldr r3, [r3, #0]
80130f4: 68db ldr r3, [r3, #12]
80130f6: 0c1b lsrs r3, r3, #16
80130f8: f3c3 030b ubfx r3, r3, #0, #12
80130fc: 4413 add r3, r2
80130fe: 1c5a adds r2, r3, #1
8013100: 69fb ldr r3, [r7, #28]
8013102: 4313 orrs r3, r2
8013104: 604b str r3, [r1, #4]
/* Configure the vertical start and stop position */
tmp = ((pLayerCfg->WindowY1 + (hltdc->Instance->BPCR & LTDC_BPCR_AVBP)) << 16U);
8013106: 68bb ldr r3, [r7, #8]
8013108: 68da ldr r2, [r3, #12]
801310a: 68fb ldr r3, [r7, #12]
801310c: 681b ldr r3, [r3, #0]
801310e: 68db ldr r3, [r3, #12]
8013110: f3c3 030a ubfx r3, r3, #0, #11
8013114: 4413 add r3, r2
8013116: 041b lsls r3, r3, #16
8013118: 61fb str r3, [r7, #28]
LTDC_LAYER(hltdc, LayerIdx)->WVPCR &= ~(LTDC_LxWVPCR_WVSTPOS | LTDC_LxWVPCR_WVSPPOS);
801311a: 68fb ldr r3, [r7, #12]
801311c: 681b ldr r3, [r3, #0]
801311e: 461a mov r2, r3
8013120: 687b ldr r3, [r7, #4]
8013122: 01db lsls r3, r3, #7
8013124: 4413 add r3, r2
8013126: 3384 adds r3, #132 ; 0x84
8013128: 461a mov r2, r3
801312a: 68fb ldr r3, [r7, #12]
801312c: 681b ldr r3, [r3, #0]
801312e: 4619 mov r1, r3
8013130: 687b ldr r3, [r7, #4]
8013132: 01db lsls r3, r3, #7
8013134: 440b add r3, r1
8013136: 3384 adds r3, #132 ; 0x84
8013138: 689b ldr r3, [r3, #8]
801313a: f403 4370 and.w r3, r3, #61440 ; 0xf000
801313e: 6093 str r3, [r2, #8]
LTDC_LAYER(hltdc, LayerIdx)->WVPCR = ((pLayerCfg->WindowY0 + (hltdc->Instance->BPCR & LTDC_BPCR_AVBP) + 1U) | tmp);
8013140: 68fb ldr r3, [r7, #12]
8013142: 681b ldr r3, [r3, #0]
8013144: 461a mov r2, r3
8013146: 687b ldr r3, [r7, #4]
8013148: 01db lsls r3, r3, #7
801314a: 4413 add r3, r2
801314c: 3384 adds r3, #132 ; 0x84
801314e: 4619 mov r1, r3
8013150: 68bb ldr r3, [r7, #8]
8013152: 689a ldr r2, [r3, #8]
8013154: 68fb ldr r3, [r7, #12]
8013156: 681b ldr r3, [r3, #0]
8013158: 68db ldr r3, [r3, #12]
801315a: f3c3 030a ubfx r3, r3, #0, #11
801315e: 4413 add r3, r2
8013160: 1c5a adds r2, r3, #1
8013162: 69fb ldr r3, [r7, #28]
8013164: 4313 orrs r3, r2
8013166: 608b str r3, [r1, #8]
/* Specifies the pixel format */
LTDC_LAYER(hltdc, LayerIdx)->PFCR &= ~(LTDC_LxPFCR_PF);
8013168: 68fb ldr r3, [r7, #12]
801316a: 681b ldr r3, [r3, #0]
801316c: 461a mov r2, r3
801316e: 687b ldr r3, [r7, #4]
8013170: 01db lsls r3, r3, #7
8013172: 4413 add r3, r2
8013174: 3384 adds r3, #132 ; 0x84
8013176: 461a mov r2, r3
8013178: 68fb ldr r3, [r7, #12]
801317a: 681b ldr r3, [r3, #0]
801317c: 4619 mov r1, r3
801317e: 687b ldr r3, [r7, #4]
8013180: 01db lsls r3, r3, #7
8013182: 440b add r3, r1
8013184: 3384 adds r3, #132 ; 0x84
8013186: 691b ldr r3, [r3, #16]
8013188: f023 0307 bic.w r3, r3, #7
801318c: 6113 str r3, [r2, #16]
LTDC_LAYER(hltdc, LayerIdx)->PFCR = (pLayerCfg->PixelFormat);
801318e: 68fb ldr r3, [r7, #12]
8013190: 681b ldr r3, [r3, #0]
8013192: 461a mov r2, r3
8013194: 687b ldr r3, [r7, #4]
8013196: 01db lsls r3, r3, #7
8013198: 4413 add r3, r2
801319a: 3384 adds r3, #132 ; 0x84
801319c: 461a mov r2, r3
801319e: 68bb ldr r3, [r7, #8]
80131a0: 691b ldr r3, [r3, #16]
80131a2: 6113 str r3, [r2, #16]
/* Configure the default color values */
tmp = ((uint32_t)(pLayerCfg->Backcolor.Green) << 8U);
80131a4: 68bb ldr r3, [r7, #8]
80131a6: f893 3031 ldrb.w r3, [r3, #49] ; 0x31
80131aa: 021b lsls r3, r3, #8
80131ac: 61fb str r3, [r7, #28]
tmp1 = ((uint32_t)(pLayerCfg->Backcolor.Red) << 16U);
80131ae: 68bb ldr r3, [r7, #8]
80131b0: f893 3032 ldrb.w r3, [r3, #50] ; 0x32
80131b4: 041b lsls r3, r3, #16
80131b6: 61bb str r3, [r7, #24]
tmp2 = (pLayerCfg->Alpha0 << 24U);
80131b8: 68bb ldr r3, [r7, #8]
80131ba: 699b ldr r3, [r3, #24]
80131bc: 061b lsls r3, r3, #24
80131be: 617b str r3, [r7, #20]
LTDC_LAYER(hltdc, LayerIdx)->DCCR &= ~(LTDC_LxDCCR_DCBLUE | LTDC_LxDCCR_DCGREEN | LTDC_LxDCCR_DCRED | LTDC_LxDCCR_DCALPHA);
80131c0: 68fb ldr r3, [r7, #12]
80131c2: 681b ldr r3, [r3, #0]
80131c4: 461a mov r2, r3
80131c6: 687b ldr r3, [r7, #4]
80131c8: 01db lsls r3, r3, #7
80131ca: 4413 add r3, r2
80131cc: 3384 adds r3, #132 ; 0x84
80131ce: 699b ldr r3, [r3, #24]
80131d0: 68fb ldr r3, [r7, #12]
80131d2: 681b ldr r3, [r3, #0]
80131d4: 461a mov r2, r3
80131d6: 687b ldr r3, [r7, #4]
80131d8: 01db lsls r3, r3, #7
80131da: 4413 add r3, r2
80131dc: 3384 adds r3, #132 ; 0x84
80131de: 461a mov r2, r3
80131e0: 2300 movs r3, #0
80131e2: 6193 str r3, [r2, #24]
LTDC_LAYER(hltdc, LayerIdx)->DCCR = (pLayerCfg->Backcolor.Blue | tmp | tmp1 | tmp2);
80131e4: 68fb ldr r3, [r7, #12]
80131e6: 681b ldr r3, [r3, #0]
80131e8: 461a mov r2, r3
80131ea: 687b ldr r3, [r7, #4]
80131ec: 01db lsls r3, r3, #7
80131ee: 4413 add r3, r2
80131f0: 3384 adds r3, #132 ; 0x84
80131f2: 4619 mov r1, r3
80131f4: 68bb ldr r3, [r7, #8]
80131f6: f893 3030 ldrb.w r3, [r3, #48] ; 0x30
80131fa: 461a mov r2, r3
80131fc: 69fb ldr r3, [r7, #28]
80131fe: 431a orrs r2, r3
8013200: 69bb ldr r3, [r7, #24]
8013202: 431a orrs r2, r3
8013204: 697b ldr r3, [r7, #20]
8013206: 4313 orrs r3, r2
8013208: 618b str r3, [r1, #24]
/* Specifies the constant alpha value */
LTDC_LAYER(hltdc, LayerIdx)->CACR &= ~(LTDC_LxCACR_CONSTA);
801320a: 68fb ldr r3, [r7, #12]
801320c: 681b ldr r3, [r3, #0]
801320e: 461a mov r2, r3
8013210: 687b ldr r3, [r7, #4]
8013212: 01db lsls r3, r3, #7
8013214: 4413 add r3, r2
8013216: 3384 adds r3, #132 ; 0x84
8013218: 461a mov r2, r3
801321a: 68fb ldr r3, [r7, #12]
801321c: 681b ldr r3, [r3, #0]
801321e: 4619 mov r1, r3
8013220: 687b ldr r3, [r7, #4]
8013222: 01db lsls r3, r3, #7
8013224: 440b add r3, r1
8013226: 3384 adds r3, #132 ; 0x84
8013228: 695b ldr r3, [r3, #20]
801322a: f023 03ff bic.w r3, r3, #255 ; 0xff
801322e: 6153 str r3, [r2, #20]
LTDC_LAYER(hltdc, LayerIdx)->CACR = (pLayerCfg->Alpha);
8013230: 68fb ldr r3, [r7, #12]
8013232: 681b ldr r3, [r3, #0]
8013234: 461a mov r2, r3
8013236: 687b ldr r3, [r7, #4]
8013238: 01db lsls r3, r3, #7
801323a: 4413 add r3, r2
801323c: 3384 adds r3, #132 ; 0x84
801323e: 461a mov r2, r3
8013240: 68bb ldr r3, [r7, #8]
8013242: 695b ldr r3, [r3, #20]
8013244: 6153 str r3, [r2, #20]
/* Specifies the blending factors */
LTDC_LAYER(hltdc, LayerIdx)->BFCR &= ~(LTDC_LxBFCR_BF2 | LTDC_LxBFCR_BF1);
8013246: 68fb ldr r3, [r7, #12]
8013248: 681b ldr r3, [r3, #0]
801324a: 461a mov r2, r3
801324c: 687b ldr r3, [r7, #4]
801324e: 01db lsls r3, r3, #7
8013250: 4413 add r3, r2
8013252: 3384 adds r3, #132 ; 0x84
8013254: 4619 mov r1, r3
8013256: 68fb ldr r3, [r7, #12]
8013258: 681b ldr r3, [r3, #0]
801325a: 461a mov r2, r3
801325c: 687b ldr r3, [r7, #4]
801325e: 01db lsls r3, r3, #7
8013260: 4413 add r3, r2
8013262: 3384 adds r3, #132 ; 0x84
8013264: 69da ldr r2, [r3, #28]
8013266: 4b5a ldr r3, [pc, #360] ; (80133d0 <LTDC_SetConfig+0x33c>)
8013268: 4013 ands r3, r2
801326a: 61cb str r3, [r1, #28]
LTDC_LAYER(hltdc, LayerIdx)->BFCR = (pLayerCfg->BlendingFactor1 | pLayerCfg->BlendingFactor2);
801326c: 68fb ldr r3, [r7, #12]
801326e: 681b ldr r3, [r3, #0]
8013270: 461a mov r2, r3
8013272: 687b ldr r3, [r7, #4]
8013274: 01db lsls r3, r3, #7
8013276: 4413 add r3, r2
8013278: 3384 adds r3, #132 ; 0x84
801327a: 4619 mov r1, r3
801327c: 68bb ldr r3, [r7, #8]
801327e: 69da ldr r2, [r3, #28]
8013280: 68bb ldr r3, [r7, #8]
8013282: 6a1b ldr r3, [r3, #32]
8013284: 4313 orrs r3, r2
8013286: 61cb str r3, [r1, #28]
/* Configure the color frame buffer start address */
LTDC_LAYER(hltdc, LayerIdx)->CFBAR &= ~(LTDC_LxCFBAR_CFBADD);
8013288: 68fb ldr r3, [r7, #12]
801328a: 681b ldr r3, [r3, #0]
801328c: 461a mov r2, r3
801328e: 687b ldr r3, [r7, #4]
8013290: 01db lsls r3, r3, #7
8013292: 4413 add r3, r2
8013294: 3384 adds r3, #132 ; 0x84
8013296: 6a9b ldr r3, [r3, #40] ; 0x28
8013298: 68fb ldr r3, [r7, #12]
801329a: 681b ldr r3, [r3, #0]
801329c: 461a mov r2, r3
801329e: 687b ldr r3, [r7, #4]
80132a0: 01db lsls r3, r3, #7
80132a2: 4413 add r3, r2
80132a4: 3384 adds r3, #132 ; 0x84
80132a6: 461a mov r2, r3
80132a8: 2300 movs r3, #0
80132aa: 6293 str r3, [r2, #40] ; 0x28
LTDC_LAYER(hltdc, LayerIdx)->CFBAR = (pLayerCfg->FBStartAdress);
80132ac: 68fb ldr r3, [r7, #12]
80132ae: 681b ldr r3, [r3, #0]
80132b0: 461a mov r2, r3
80132b2: 687b ldr r3, [r7, #4]
80132b4: 01db lsls r3, r3, #7
80132b6: 4413 add r3, r2
80132b8: 3384 adds r3, #132 ; 0x84
80132ba: 461a mov r2, r3
80132bc: 68bb ldr r3, [r7, #8]
80132be: 6a5b ldr r3, [r3, #36] ; 0x24
80132c0: 6293 str r3, [r2, #40] ; 0x28
if (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB8888)
80132c2: 68bb ldr r3, [r7, #8]
80132c4: 691b ldr r3, [r3, #16]
80132c6: 2b00 cmp r3, #0
80132c8: d102 bne.n 80132d0 <LTDC_SetConfig+0x23c>
{
tmp = 4U;
80132ca: 2304 movs r3, #4
80132cc: 61fb str r3, [r7, #28]
80132ce: e01b b.n 8013308 <LTDC_SetConfig+0x274>
}
else if (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_RGB888)
80132d0: 68bb ldr r3, [r7, #8]
80132d2: 691b ldr r3, [r3, #16]
80132d4: 2b01 cmp r3, #1
80132d6: d102 bne.n 80132de <LTDC_SetConfig+0x24a>
{
tmp = 3U;
80132d8: 2303 movs r3, #3
80132da: 61fb str r3, [r7, #28]
80132dc: e014 b.n 8013308 <LTDC_SetConfig+0x274>
}
else if ((pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB4444) || \
80132de: 68bb ldr r3, [r7, #8]
80132e0: 691b ldr r3, [r3, #16]
80132e2: 2b04 cmp r3, #4
80132e4: d00b beq.n 80132fe <LTDC_SetConfig+0x26a>
(pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_RGB565) || \
80132e6: 68bb ldr r3, [r7, #8]
80132e8: 691b ldr r3, [r3, #16]
else if ((pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB4444) || \
80132ea: 2b02 cmp r3, #2
80132ec: d007 beq.n 80132fe <LTDC_SetConfig+0x26a>
(pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB1555) || \
80132ee: 68bb ldr r3, [r7, #8]
80132f0: 691b ldr r3, [r3, #16]
(pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_RGB565) || \
80132f2: 2b03 cmp r3, #3
80132f4: d003 beq.n 80132fe <LTDC_SetConfig+0x26a>
(pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_AL88))
80132f6: 68bb ldr r3, [r7, #8]
80132f8: 691b ldr r3, [r3, #16]
(pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB1555) || \
80132fa: 2b07 cmp r3, #7
80132fc: d102 bne.n 8013304 <LTDC_SetConfig+0x270>
{
tmp = 2U;
80132fe: 2302 movs r3, #2
8013300: 61fb str r3, [r7, #28]
8013302: e001 b.n 8013308 <LTDC_SetConfig+0x274>
}
else
{
tmp = 1U;
8013304: 2301 movs r3, #1
8013306: 61fb str r3, [r7, #28]
}
/* Configure the color frame buffer pitch in byte */
LTDC_LAYER(hltdc, LayerIdx)->CFBLR &= ~(LTDC_LxCFBLR_CFBLL | LTDC_LxCFBLR_CFBP);
8013308: 68fb ldr r3, [r7, #12]
801330a: 681b ldr r3, [r3, #0]
801330c: 461a mov r2, r3
801330e: 687b ldr r3, [r7, #4]
8013310: 01db lsls r3, r3, #7
8013312: 4413 add r3, r2
8013314: 3384 adds r3, #132 ; 0x84
8013316: 461a mov r2, r3
8013318: 68fb ldr r3, [r7, #12]
801331a: 681b ldr r3, [r3, #0]
801331c: 4619 mov r1, r3
801331e: 687b ldr r3, [r7, #4]
8013320: 01db lsls r3, r3, #7
8013322: 440b add r3, r1
8013324: 3384 adds r3, #132 ; 0x84
8013326: 6adb ldr r3, [r3, #44] ; 0x2c
8013328: f003 23e0 and.w r3, r3, #3758153728 ; 0xe000e000
801332c: 62d3 str r3, [r2, #44] ; 0x2c
LTDC_LAYER(hltdc, LayerIdx)->CFBLR = (((pLayerCfg->ImageWidth * tmp) << 16U) | (((pLayerCfg->WindowX1 - pLayerCfg->WindowX0) * tmp) + 3U));
801332e: 68fb ldr r3, [r7, #12]
8013330: 681b ldr r3, [r3, #0]
8013332: 461a mov r2, r3
8013334: 687b ldr r3, [r7, #4]
8013336: 01db lsls r3, r3, #7
8013338: 4413 add r3, r2
801333a: 3384 adds r3, #132 ; 0x84
801333c: 4618 mov r0, r3
801333e: 68bb ldr r3, [r7, #8]
8013340: 6a9b ldr r3, [r3, #40] ; 0x28
8013342: 69fa ldr r2, [r7, #28]
8013344: fb02 f303 mul.w r3, r2, r3
8013348: 041a lsls r2, r3, #16
801334a: 68bb ldr r3, [r7, #8]
801334c: 6859 ldr r1, [r3, #4]
801334e: 68bb ldr r3, [r7, #8]
8013350: 681b ldr r3, [r3, #0]
8013352: 1acb subs r3, r1, r3
8013354: 69f9 ldr r1, [r7, #28]
8013356: fb01 f303 mul.w r3, r1, r3
801335a: 3303 adds r3, #3
801335c: 4313 orrs r3, r2
801335e: 62c3 str r3, [r0, #44] ; 0x2c
/* Configure the frame buffer line number */
LTDC_LAYER(hltdc, LayerIdx)->CFBLNR &= ~(LTDC_LxCFBLNR_CFBLNBR);
8013360: 68fb ldr r3, [r7, #12]
8013362: 681b ldr r3, [r3, #0]
8013364: 461a mov r2, r3
8013366: 687b ldr r3, [r7, #4]
8013368: 01db lsls r3, r3, #7
801336a: 4413 add r3, r2
801336c: 3384 adds r3, #132 ; 0x84
801336e: 4619 mov r1, r3
8013370: 68fb ldr r3, [r7, #12]
8013372: 681b ldr r3, [r3, #0]
8013374: 461a mov r2, r3
8013376: 687b ldr r3, [r7, #4]
8013378: 01db lsls r3, r3, #7
801337a: 4413 add r3, r2
801337c: 3384 adds r3, #132 ; 0x84
801337e: 6b1a ldr r2, [r3, #48] ; 0x30
8013380: 4b14 ldr r3, [pc, #80] ; (80133d4 <LTDC_SetConfig+0x340>)
8013382: 4013 ands r3, r2
8013384: 630b str r3, [r1, #48] ; 0x30
LTDC_LAYER(hltdc, LayerIdx)->CFBLNR = (pLayerCfg->ImageHeight);
8013386: 68fb ldr r3, [r7, #12]
8013388: 681b ldr r3, [r3, #0]
801338a: 461a mov r2, r3
801338c: 687b ldr r3, [r7, #4]
801338e: 01db lsls r3, r3, #7
8013390: 4413 add r3, r2
8013392: 3384 adds r3, #132 ; 0x84
8013394: 461a mov r2, r3
8013396: 68bb ldr r3, [r7, #8]
8013398: 6adb ldr r3, [r3, #44] ; 0x2c
801339a: 6313 str r3, [r2, #48] ; 0x30
/* Enable LTDC_Layer by setting LEN bit */
LTDC_LAYER(hltdc, LayerIdx)->CR |= (uint32_t)LTDC_LxCR_LEN;
801339c: 68fb ldr r3, [r7, #12]
801339e: 681b ldr r3, [r3, #0]
80133a0: 461a mov r2, r3
80133a2: 687b ldr r3, [r7, #4]
80133a4: 01db lsls r3, r3, #7
80133a6: 4413 add r3, r2
80133a8: 3384 adds r3, #132 ; 0x84
80133aa: 461a mov r2, r3
80133ac: 68fb ldr r3, [r7, #12]
80133ae: 681b ldr r3, [r3, #0]
80133b0: 4619 mov r1, r3
80133b2: 687b ldr r3, [r7, #4]
80133b4: 01db lsls r3, r3, #7
80133b6: 440b add r3, r1
80133b8: 3384 adds r3, #132 ; 0x84
80133ba: 681b ldr r3, [r3, #0]
80133bc: f043 0301 orr.w r3, r3, #1
80133c0: 6013 str r3, [r2, #0]
}
80133c2: bf00 nop
80133c4: 3724 adds r7, #36 ; 0x24
80133c6: 46bd mov sp, r7
80133c8: f85d 7b04 ldr.w r7, [sp], #4
80133cc: 4770 bx lr
80133ce: bf00 nop
80133d0: fffff8f8 .word 0xfffff8f8
80133d4: fffff800 .word 0xfffff800
080133d8 <HAL_RCC_OscConfig>:
* supported by this function. User should request a transition to HSE Off
* first and then HSE On or HSE Bypass.
* @retval HAL status
*/
HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct)
{
80133d8: b580 push {r7, lr}
80133da: b086 sub sp, #24
80133dc: af00 add r7, sp, #0
80133de: 6078 str r0, [r7, #4]
uint32_t tickstart;
uint32_t pll_config;
FlagStatus pwrclkchanged = RESET;
80133e0: 2300 movs r3, #0
80133e2: 75fb strb r3, [r7, #23]
/* Check Null pointer */
if (RCC_OscInitStruct == NULL)
80133e4: 687b ldr r3, [r7, #4]
80133e6: 2b00 cmp r3, #0
80133e8: d101 bne.n 80133ee <HAL_RCC_OscConfig+0x16>
{
return HAL_ERROR;
80133ea: 2301 movs r3, #1
80133ec: e29b b.n 8013926 <HAL_RCC_OscConfig+0x54e>
/* Check the parameters */
assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->OscillatorType));
/*------------------------------- HSE Configuration ------------------------*/
if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE)
80133ee: 687b ldr r3, [r7, #4]
80133f0: 681b ldr r3, [r3, #0]
80133f2: f003 0301 and.w r3, r3, #1
80133f6: 2b00 cmp r3, #0
80133f8: f000 8087 beq.w 801350a <HAL_RCC_OscConfig+0x132>
{
/* Check the parameters */
assert_param(IS_RCC_HSE(RCC_OscInitStruct->HSEState));
/* When the HSE is used as system clock or clock source for PLL, It can not be disabled */
if ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSE)
80133fc: 4b96 ldr r3, [pc, #600] ; (8013658 <HAL_RCC_OscConfig+0x280>)
80133fe: 689b ldr r3, [r3, #8]
8013400: f003 030c and.w r3, r3, #12
8013404: 2b04 cmp r3, #4
8013406: d00c beq.n 8013422 <HAL_RCC_OscConfig+0x4a>
|| ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSE)))
8013408: 4b93 ldr r3, [pc, #588] ; (8013658 <HAL_RCC_OscConfig+0x280>)
801340a: 689b ldr r3, [r3, #8]
801340c: f003 030c and.w r3, r3, #12
8013410: 2b08 cmp r3, #8
8013412: d112 bne.n 801343a <HAL_RCC_OscConfig+0x62>
8013414: 4b90 ldr r3, [pc, #576] ; (8013658 <HAL_RCC_OscConfig+0x280>)
8013416: 685b ldr r3, [r3, #4]
8013418: f403 0380 and.w r3, r3, #4194304 ; 0x400000
801341c: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000
8013420: d10b bne.n 801343a <HAL_RCC_OscConfig+0x62>
{
if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF))
8013422: 4b8d ldr r3, [pc, #564] ; (8013658 <HAL_RCC_OscConfig+0x280>)
8013424: 681b ldr r3, [r3, #0]
8013426: f403 3300 and.w r3, r3, #131072 ; 0x20000
801342a: 2b00 cmp r3, #0
801342c: d06c beq.n 8013508 <HAL_RCC_OscConfig+0x130>
801342e: 687b ldr r3, [r7, #4]
8013430: 685b ldr r3, [r3, #4]
8013432: 2b00 cmp r3, #0
8013434: d168 bne.n 8013508 <HAL_RCC_OscConfig+0x130>
{
return HAL_ERROR;
8013436: 2301 movs r3, #1
8013438: e275 b.n 8013926 <HAL_RCC_OscConfig+0x54e>
}
}
else
{
/* Set the new HSE configuration ---------------------------------------*/
__HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState);
801343a: 687b ldr r3, [r7, #4]
801343c: 685b ldr r3, [r3, #4]
801343e: f5b3 3f80 cmp.w r3, #65536 ; 0x10000
8013442: d106 bne.n 8013452 <HAL_RCC_OscConfig+0x7a>
8013444: 4a84 ldr r2, [pc, #528] ; (8013658 <HAL_RCC_OscConfig+0x280>)
8013446: 4b84 ldr r3, [pc, #528] ; (8013658 <HAL_RCC_OscConfig+0x280>)
8013448: 681b ldr r3, [r3, #0]
801344a: f443 3380 orr.w r3, r3, #65536 ; 0x10000
801344e: 6013 str r3, [r2, #0]
8013450: e02e b.n 80134b0 <HAL_RCC_OscConfig+0xd8>
8013452: 687b ldr r3, [r7, #4]
8013454: 685b ldr r3, [r3, #4]
8013456: 2b00 cmp r3, #0
8013458: d10c bne.n 8013474 <HAL_RCC_OscConfig+0x9c>
801345a: 4a7f ldr r2, [pc, #508] ; (8013658 <HAL_RCC_OscConfig+0x280>)
801345c: 4b7e ldr r3, [pc, #504] ; (8013658 <HAL_RCC_OscConfig+0x280>)
801345e: 681b ldr r3, [r3, #0]
8013460: f423 3380 bic.w r3, r3, #65536 ; 0x10000
8013464: 6013 str r3, [r2, #0]
8013466: 4a7c ldr r2, [pc, #496] ; (8013658 <HAL_RCC_OscConfig+0x280>)
8013468: 4b7b ldr r3, [pc, #492] ; (8013658 <HAL_RCC_OscConfig+0x280>)
801346a: 681b ldr r3, [r3, #0]
801346c: f423 2380 bic.w r3, r3, #262144 ; 0x40000
8013470: 6013 str r3, [r2, #0]
8013472: e01d b.n 80134b0 <HAL_RCC_OscConfig+0xd8>
8013474: 687b ldr r3, [r7, #4]
8013476: 685b ldr r3, [r3, #4]
8013478: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000
801347c: d10c bne.n 8013498 <HAL_RCC_OscConfig+0xc0>
801347e: 4a76 ldr r2, [pc, #472] ; (8013658 <HAL_RCC_OscConfig+0x280>)
8013480: 4b75 ldr r3, [pc, #468] ; (8013658 <HAL_RCC_OscConfig+0x280>)
8013482: 681b ldr r3, [r3, #0]
8013484: f443 2380 orr.w r3, r3, #262144 ; 0x40000
8013488: 6013 str r3, [r2, #0]
801348a: 4a73 ldr r2, [pc, #460] ; (8013658 <HAL_RCC_OscConfig+0x280>)
801348c: 4b72 ldr r3, [pc, #456] ; (8013658 <HAL_RCC_OscConfig+0x280>)
801348e: 681b ldr r3, [r3, #0]
8013490: f443 3380 orr.w r3, r3, #65536 ; 0x10000
8013494: 6013 str r3, [r2, #0]
8013496: e00b b.n 80134b0 <HAL_RCC_OscConfig+0xd8>
8013498: 4a6f ldr r2, [pc, #444] ; (8013658 <HAL_RCC_OscConfig+0x280>)
801349a: 4b6f ldr r3, [pc, #444] ; (8013658 <HAL_RCC_OscConfig+0x280>)
801349c: 681b ldr r3, [r3, #0]
801349e: f423 3380 bic.w r3, r3, #65536 ; 0x10000
80134a2: 6013 str r3, [r2, #0]
80134a4: 4a6c ldr r2, [pc, #432] ; (8013658 <HAL_RCC_OscConfig+0x280>)
80134a6: 4b6c ldr r3, [pc, #432] ; (8013658 <HAL_RCC_OscConfig+0x280>)
80134a8: 681b ldr r3, [r3, #0]
80134aa: f423 2380 bic.w r3, r3, #262144 ; 0x40000
80134ae: 6013 str r3, [r2, #0]
/* Check the HSE State */
if (RCC_OscInitStruct->HSEState != RCC_HSE_OFF)
80134b0: 687b ldr r3, [r7, #4]
80134b2: 685b ldr r3, [r3, #4]
80134b4: 2b00 cmp r3, #0
80134b6: d013 beq.n 80134e0 <HAL_RCC_OscConfig+0x108>
{
/* Get Start Tick*/
tickstart = HAL_GetTick();
80134b8: f7fe f854 bl 8011564 <HAL_GetTick>
80134bc: 6138 str r0, [r7, #16]
/* Wait till HSE is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET)
80134be: e008 b.n 80134d2 <HAL_RCC_OscConfig+0xfa>
{
if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE)
80134c0: f7fe f850 bl 8011564 <HAL_GetTick>
80134c4: 4602 mov r2, r0
80134c6: 693b ldr r3, [r7, #16]
80134c8: 1ad3 subs r3, r2, r3
80134ca: 2b64 cmp r3, #100 ; 0x64
80134cc: d901 bls.n 80134d2 <HAL_RCC_OscConfig+0xfa>
{
return HAL_TIMEOUT;
80134ce: 2303 movs r3, #3
80134d0: e229 b.n 8013926 <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET)
80134d2: 4b61 ldr r3, [pc, #388] ; (8013658 <HAL_RCC_OscConfig+0x280>)
80134d4: 681b ldr r3, [r3, #0]
80134d6: f403 3300 and.w r3, r3, #131072 ; 0x20000
80134da: 2b00 cmp r3, #0
80134dc: d0f0 beq.n 80134c0 <HAL_RCC_OscConfig+0xe8>
80134de: e014 b.n 801350a <HAL_RCC_OscConfig+0x132>
}
}
else
{
/* Get Start Tick*/
tickstart = HAL_GetTick();
80134e0: f7fe f840 bl 8011564 <HAL_GetTick>
80134e4: 6138 str r0, [r7, #16]
/* Wait till HSE is bypassed or disabled */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET)
80134e6: e008 b.n 80134fa <HAL_RCC_OscConfig+0x122>
{
if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE)
80134e8: f7fe f83c bl 8011564 <HAL_GetTick>
80134ec: 4602 mov r2, r0
80134ee: 693b ldr r3, [r7, #16]
80134f0: 1ad3 subs r3, r2, r3
80134f2: 2b64 cmp r3, #100 ; 0x64
80134f4: d901 bls.n 80134fa <HAL_RCC_OscConfig+0x122>
{
return HAL_TIMEOUT;
80134f6: 2303 movs r3, #3
80134f8: e215 b.n 8013926 <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET)
80134fa: 4b57 ldr r3, [pc, #348] ; (8013658 <HAL_RCC_OscConfig+0x280>)
80134fc: 681b ldr r3, [r3, #0]
80134fe: f403 3300 and.w r3, r3, #131072 ; 0x20000
8013502: 2b00 cmp r3, #0
8013504: d1f0 bne.n 80134e8 <HAL_RCC_OscConfig+0x110>
8013506: e000 b.n 801350a <HAL_RCC_OscConfig+0x132>
if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF))
8013508: bf00 nop
}
}
}
}
/*----------------------------- HSI Configuration --------------------------*/
if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI)
801350a: 687b ldr r3, [r7, #4]
801350c: 681b ldr r3, [r3, #0]
801350e: f003 0302 and.w r3, r3, #2
8013512: 2b00 cmp r3, #0
8013514: d069 beq.n 80135ea <HAL_RCC_OscConfig+0x212>
/* Check the parameters */
assert_param(IS_RCC_HSI(RCC_OscInitStruct->HSIState));
assert_param(IS_RCC_CALIBRATION_VALUE(RCC_OscInitStruct->HSICalibrationValue));
/* Check if HSI is used as system clock or as PLL source when PLL is selected as system clock */
if ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_HSI)
8013516: 4b50 ldr r3, [pc, #320] ; (8013658 <HAL_RCC_OscConfig+0x280>)
8013518: 689b ldr r3, [r3, #8]
801351a: f003 030c and.w r3, r3, #12
801351e: 2b00 cmp r3, #0
8013520: d00b beq.n 801353a <HAL_RCC_OscConfig+0x162>
|| ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSI)))
8013522: 4b4d ldr r3, [pc, #308] ; (8013658 <HAL_RCC_OscConfig+0x280>)
8013524: 689b ldr r3, [r3, #8]
8013526: f003 030c and.w r3, r3, #12
801352a: 2b08 cmp r3, #8
801352c: d11c bne.n 8013568 <HAL_RCC_OscConfig+0x190>
801352e: 4b4a ldr r3, [pc, #296] ; (8013658 <HAL_RCC_OscConfig+0x280>)
8013530: 685b ldr r3, [r3, #4]
8013532: f403 0380 and.w r3, r3, #4194304 ; 0x400000
8013536: 2b00 cmp r3, #0
8013538: d116 bne.n 8013568 <HAL_RCC_OscConfig+0x190>
{
/* When HSI is used as system clock it will not disabled */
if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON))
801353a: 4b47 ldr r3, [pc, #284] ; (8013658 <HAL_RCC_OscConfig+0x280>)
801353c: 681b ldr r3, [r3, #0]
801353e: f003 0302 and.w r3, r3, #2
8013542: 2b00 cmp r3, #0
8013544: d005 beq.n 8013552 <HAL_RCC_OscConfig+0x17a>
8013546: 687b ldr r3, [r7, #4]
8013548: 68db ldr r3, [r3, #12]
801354a: 2b01 cmp r3, #1
801354c: d001 beq.n 8013552 <HAL_RCC_OscConfig+0x17a>
{
return HAL_ERROR;
801354e: 2301 movs r3, #1
8013550: e1e9 b.n 8013926 <HAL_RCC_OscConfig+0x54e>
}
/* Otherwise, just the calibration is allowed */
else
{
/* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/
__HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue);
8013552: 4941 ldr r1, [pc, #260] ; (8013658 <HAL_RCC_OscConfig+0x280>)
8013554: 4b40 ldr r3, [pc, #256] ; (8013658 <HAL_RCC_OscConfig+0x280>)
8013556: 681b ldr r3, [r3, #0]
8013558: f023 02f8 bic.w r2, r3, #248 ; 0xf8
801355c: 687b ldr r3, [r7, #4]
801355e: 691b ldr r3, [r3, #16]
8013560: 00db lsls r3, r3, #3
8013562: 4313 orrs r3, r2
8013564: 600b str r3, [r1, #0]
if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON))
8013566: e040 b.n 80135ea <HAL_RCC_OscConfig+0x212>
}
}
else
{
/* Check the HSI State */
if ((RCC_OscInitStruct->HSIState) != RCC_HSI_OFF)
8013568: 687b ldr r3, [r7, #4]
801356a: 68db ldr r3, [r3, #12]
801356c: 2b00 cmp r3, #0
801356e: d023 beq.n 80135b8 <HAL_RCC_OscConfig+0x1e0>
{
/* Enable the Internal High Speed oscillator (HSI). */
__HAL_RCC_HSI_ENABLE();
8013570: 4a39 ldr r2, [pc, #228] ; (8013658 <HAL_RCC_OscConfig+0x280>)
8013572: 4b39 ldr r3, [pc, #228] ; (8013658 <HAL_RCC_OscConfig+0x280>)
8013574: 681b ldr r3, [r3, #0]
8013576: f043 0301 orr.w r3, r3, #1
801357a: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
801357c: f7fd fff2 bl 8011564 <HAL_GetTick>
8013580: 6138 str r0, [r7, #16]
/* Wait till HSI is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET)
8013582: e008 b.n 8013596 <HAL_RCC_OscConfig+0x1be>
{
if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE)
8013584: f7fd ffee bl 8011564 <HAL_GetTick>
8013588: 4602 mov r2, r0
801358a: 693b ldr r3, [r7, #16]
801358c: 1ad3 subs r3, r2, r3
801358e: 2b02 cmp r3, #2
8013590: d901 bls.n 8013596 <HAL_RCC_OscConfig+0x1be>
{
return HAL_TIMEOUT;
8013592: 2303 movs r3, #3
8013594: e1c7 b.n 8013926 <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET)
8013596: 4b30 ldr r3, [pc, #192] ; (8013658 <HAL_RCC_OscConfig+0x280>)
8013598: 681b ldr r3, [r3, #0]
801359a: f003 0302 and.w r3, r3, #2
801359e: 2b00 cmp r3, #0
80135a0: d0f0 beq.n 8013584 <HAL_RCC_OscConfig+0x1ac>
}
}
/* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/
__HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue);
80135a2: 492d ldr r1, [pc, #180] ; (8013658 <HAL_RCC_OscConfig+0x280>)
80135a4: 4b2c ldr r3, [pc, #176] ; (8013658 <HAL_RCC_OscConfig+0x280>)
80135a6: 681b ldr r3, [r3, #0]
80135a8: f023 02f8 bic.w r2, r3, #248 ; 0xf8
80135ac: 687b ldr r3, [r7, #4]
80135ae: 691b ldr r3, [r3, #16]
80135b0: 00db lsls r3, r3, #3
80135b2: 4313 orrs r3, r2
80135b4: 600b str r3, [r1, #0]
80135b6: e018 b.n 80135ea <HAL_RCC_OscConfig+0x212>
}
else
{
/* Disable the Internal High Speed oscillator (HSI). */
__HAL_RCC_HSI_DISABLE();
80135b8: 4a27 ldr r2, [pc, #156] ; (8013658 <HAL_RCC_OscConfig+0x280>)
80135ba: 4b27 ldr r3, [pc, #156] ; (8013658 <HAL_RCC_OscConfig+0x280>)
80135bc: 681b ldr r3, [r3, #0]
80135be: f023 0301 bic.w r3, r3, #1
80135c2: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
80135c4: f7fd ffce bl 8011564 <HAL_GetTick>
80135c8: 6138 str r0, [r7, #16]
/* Wait till HSI is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET)
80135ca: e008 b.n 80135de <HAL_RCC_OscConfig+0x206>
{
if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE)
80135cc: f7fd ffca bl 8011564 <HAL_GetTick>
80135d0: 4602 mov r2, r0
80135d2: 693b ldr r3, [r7, #16]
80135d4: 1ad3 subs r3, r2, r3
80135d6: 2b02 cmp r3, #2
80135d8: d901 bls.n 80135de <HAL_RCC_OscConfig+0x206>
{
return HAL_TIMEOUT;
80135da: 2303 movs r3, #3
80135dc: e1a3 b.n 8013926 <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET)
80135de: 4b1e ldr r3, [pc, #120] ; (8013658 <HAL_RCC_OscConfig+0x280>)
80135e0: 681b ldr r3, [r3, #0]
80135e2: f003 0302 and.w r3, r3, #2
80135e6: 2b00 cmp r3, #0
80135e8: d1f0 bne.n 80135cc <HAL_RCC_OscConfig+0x1f4>
}
}
}
}
/*------------------------------ LSI Configuration -------------------------*/
if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI)
80135ea: 687b ldr r3, [r7, #4]
80135ec: 681b ldr r3, [r3, #0]
80135ee: f003 0308 and.w r3, r3, #8
80135f2: 2b00 cmp r3, #0
80135f4: d038 beq.n 8013668 <HAL_RCC_OscConfig+0x290>
{
/* Check the parameters */
assert_param(IS_RCC_LSI(RCC_OscInitStruct->LSIState));
/* Check the LSI State */
if ((RCC_OscInitStruct->LSIState) != RCC_LSI_OFF)
80135f6: 687b ldr r3, [r7, #4]
80135f8: 695b ldr r3, [r3, #20]
80135fa: 2b00 cmp r3, #0
80135fc: d019 beq.n 8013632 <HAL_RCC_OscConfig+0x25a>
{
/* Enable the Internal Low Speed oscillator (LSI). */
__HAL_RCC_LSI_ENABLE();
80135fe: 4a16 ldr r2, [pc, #88] ; (8013658 <HAL_RCC_OscConfig+0x280>)
8013600: 4b15 ldr r3, [pc, #84] ; (8013658 <HAL_RCC_OscConfig+0x280>)
8013602: 6f5b ldr r3, [r3, #116] ; 0x74
8013604: f043 0301 orr.w r3, r3, #1
8013608: 6753 str r3, [r2, #116] ; 0x74
/* Get Start Tick*/
tickstart = HAL_GetTick();
801360a: f7fd ffab bl 8011564 <HAL_GetTick>
801360e: 6138 str r0, [r7, #16]
/* Wait till LSI is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET)
8013610: e008 b.n 8013624 <HAL_RCC_OscConfig+0x24c>
{
if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE)
8013612: f7fd ffa7 bl 8011564 <HAL_GetTick>
8013616: 4602 mov r2, r0
8013618: 693b ldr r3, [r7, #16]
801361a: 1ad3 subs r3, r2, r3
801361c: 2b02 cmp r3, #2
801361e: d901 bls.n 8013624 <HAL_RCC_OscConfig+0x24c>
{
return HAL_TIMEOUT;
8013620: 2303 movs r3, #3
8013622: e180 b.n 8013926 <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET)
8013624: 4b0c ldr r3, [pc, #48] ; (8013658 <HAL_RCC_OscConfig+0x280>)
8013626: 6f5b ldr r3, [r3, #116] ; 0x74
8013628: f003 0302 and.w r3, r3, #2
801362c: 2b00 cmp r3, #0
801362e: d0f0 beq.n 8013612 <HAL_RCC_OscConfig+0x23a>
8013630: e01a b.n 8013668 <HAL_RCC_OscConfig+0x290>
}
}
else
{
/* Disable the Internal Low Speed oscillator (LSI). */
__HAL_RCC_LSI_DISABLE();
8013632: 4a09 ldr r2, [pc, #36] ; (8013658 <HAL_RCC_OscConfig+0x280>)
8013634: 4b08 ldr r3, [pc, #32] ; (8013658 <HAL_RCC_OscConfig+0x280>)
8013636: 6f5b ldr r3, [r3, #116] ; 0x74
8013638: f023 0301 bic.w r3, r3, #1
801363c: 6753 str r3, [r2, #116] ; 0x74
/* Get Start Tick*/
tickstart = HAL_GetTick();
801363e: f7fd ff91 bl 8011564 <HAL_GetTick>
8013642: 6138 str r0, [r7, #16]
/* Wait till LSI is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET)
8013644: e00a b.n 801365c <HAL_RCC_OscConfig+0x284>
{
if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE)
8013646: f7fd ff8d bl 8011564 <HAL_GetTick>
801364a: 4602 mov r2, r0
801364c: 693b ldr r3, [r7, #16]
801364e: 1ad3 subs r3, r2, r3
8013650: 2b02 cmp r3, #2
8013652: d903 bls.n 801365c <HAL_RCC_OscConfig+0x284>
{
return HAL_TIMEOUT;
8013654: 2303 movs r3, #3
8013656: e166 b.n 8013926 <HAL_RCC_OscConfig+0x54e>
8013658: 40023800 .word 0x40023800
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET)
801365c: 4b92 ldr r3, [pc, #584] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
801365e: 6f5b ldr r3, [r3, #116] ; 0x74
8013660: f003 0302 and.w r3, r3, #2
8013664: 2b00 cmp r3, #0
8013666: d1ee bne.n 8013646 <HAL_RCC_OscConfig+0x26e>
}
}
}
}
/*------------------------------ LSE Configuration -------------------------*/
if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE)
8013668: 687b ldr r3, [r7, #4]
801366a: 681b ldr r3, [r3, #0]
801366c: f003 0304 and.w r3, r3, #4
8013670: 2b00 cmp r3, #0
8013672: f000 80a4 beq.w 80137be <HAL_RCC_OscConfig+0x3e6>
/* Check the parameters */
assert_param(IS_RCC_LSE(RCC_OscInitStruct->LSEState));
/* Update LSE configuration in Backup Domain control register */
/* Requires to enable write access to Backup Domain of necessary */
if (__HAL_RCC_PWR_IS_CLK_DISABLED())
8013676: 4b8c ldr r3, [pc, #560] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
8013678: 6c1b ldr r3, [r3, #64] ; 0x40
801367a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
801367e: 2b00 cmp r3, #0
8013680: d10d bne.n 801369e <HAL_RCC_OscConfig+0x2c6>
{
/* Enable Power Clock*/
__HAL_RCC_PWR_CLK_ENABLE();
8013682: 4a89 ldr r2, [pc, #548] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
8013684: 4b88 ldr r3, [pc, #544] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
8013686: 6c1b ldr r3, [r3, #64] ; 0x40
8013688: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
801368c: 6413 str r3, [r2, #64] ; 0x40
801368e: 4b86 ldr r3, [pc, #536] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
8013690: 6c1b ldr r3, [r3, #64] ; 0x40
8013692: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
8013696: 60bb str r3, [r7, #8]
8013698: 68bb ldr r3, [r7, #8]
pwrclkchanged = SET;
801369a: 2301 movs r3, #1
801369c: 75fb strb r3, [r7, #23]
}
if (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP))
801369e: 4b83 ldr r3, [pc, #524] ; (80138ac <HAL_RCC_OscConfig+0x4d4>)
80136a0: 681b ldr r3, [r3, #0]
80136a2: f403 7380 and.w r3, r3, #256 ; 0x100
80136a6: 2b00 cmp r3, #0
80136a8: d118 bne.n 80136dc <HAL_RCC_OscConfig+0x304>
{
/* Enable write access to Backup domain */
PWR->CR1 |= PWR_CR1_DBP;
80136aa: 4a80 ldr r2, [pc, #512] ; (80138ac <HAL_RCC_OscConfig+0x4d4>)
80136ac: 4b7f ldr r3, [pc, #508] ; (80138ac <HAL_RCC_OscConfig+0x4d4>)
80136ae: 681b ldr r3, [r3, #0]
80136b0: f443 7380 orr.w r3, r3, #256 ; 0x100
80136b4: 6013 str r3, [r2, #0]
/* Wait for Backup domain Write protection disable */
tickstart = HAL_GetTick();
80136b6: f7fd ff55 bl 8011564 <HAL_GetTick>
80136ba: 6138 str r0, [r7, #16]
while (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP))
80136bc: e008 b.n 80136d0 <HAL_RCC_OscConfig+0x2f8>
{
if ((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE)
80136be: f7fd ff51 bl 8011564 <HAL_GetTick>
80136c2: 4602 mov r2, r0
80136c4: 693b ldr r3, [r7, #16]
80136c6: 1ad3 subs r3, r2, r3
80136c8: 2b64 cmp r3, #100 ; 0x64
80136ca: d901 bls.n 80136d0 <HAL_RCC_OscConfig+0x2f8>
{
return HAL_TIMEOUT;
80136cc: 2303 movs r3, #3
80136ce: e12a b.n 8013926 <HAL_RCC_OscConfig+0x54e>
while (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP))
80136d0: 4b76 ldr r3, [pc, #472] ; (80138ac <HAL_RCC_OscConfig+0x4d4>)
80136d2: 681b ldr r3, [r3, #0]
80136d4: f403 7380 and.w r3, r3, #256 ; 0x100
80136d8: 2b00 cmp r3, #0
80136da: d0f0 beq.n 80136be <HAL_RCC_OscConfig+0x2e6>
}
}
}
/* Set the new LSE configuration -----------------------------------------*/
__HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState);
80136dc: 687b ldr r3, [r7, #4]
80136de: 689b ldr r3, [r3, #8]
80136e0: 2b01 cmp r3, #1
80136e2: d106 bne.n 80136f2 <HAL_RCC_OscConfig+0x31a>
80136e4: 4a70 ldr r2, [pc, #448] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
80136e6: 4b70 ldr r3, [pc, #448] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
80136e8: 6f1b ldr r3, [r3, #112] ; 0x70
80136ea: f043 0301 orr.w r3, r3, #1
80136ee: 6713 str r3, [r2, #112] ; 0x70
80136f0: e02d b.n 801374e <HAL_RCC_OscConfig+0x376>
80136f2: 687b ldr r3, [r7, #4]
80136f4: 689b ldr r3, [r3, #8]
80136f6: 2b00 cmp r3, #0
80136f8: d10c bne.n 8013714 <HAL_RCC_OscConfig+0x33c>
80136fa: 4a6b ldr r2, [pc, #428] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
80136fc: 4b6a ldr r3, [pc, #424] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
80136fe: 6f1b ldr r3, [r3, #112] ; 0x70
8013700: f023 0301 bic.w r3, r3, #1
8013704: 6713 str r3, [r2, #112] ; 0x70
8013706: 4a68 ldr r2, [pc, #416] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
8013708: 4b67 ldr r3, [pc, #412] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
801370a: 6f1b ldr r3, [r3, #112] ; 0x70
801370c: f023 0304 bic.w r3, r3, #4
8013710: 6713 str r3, [r2, #112] ; 0x70
8013712: e01c b.n 801374e <HAL_RCC_OscConfig+0x376>
8013714: 687b ldr r3, [r7, #4]
8013716: 689b ldr r3, [r3, #8]
8013718: 2b05 cmp r3, #5
801371a: d10c bne.n 8013736 <HAL_RCC_OscConfig+0x35e>
801371c: 4a62 ldr r2, [pc, #392] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
801371e: 4b62 ldr r3, [pc, #392] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
8013720: 6f1b ldr r3, [r3, #112] ; 0x70
8013722: f043 0304 orr.w r3, r3, #4
8013726: 6713 str r3, [r2, #112] ; 0x70
8013728: 4a5f ldr r2, [pc, #380] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
801372a: 4b5f ldr r3, [pc, #380] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
801372c: 6f1b ldr r3, [r3, #112] ; 0x70
801372e: f043 0301 orr.w r3, r3, #1
8013732: 6713 str r3, [r2, #112] ; 0x70
8013734: e00b b.n 801374e <HAL_RCC_OscConfig+0x376>
8013736: 4a5c ldr r2, [pc, #368] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
8013738: 4b5b ldr r3, [pc, #364] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
801373a: 6f1b ldr r3, [r3, #112] ; 0x70
801373c: f023 0301 bic.w r3, r3, #1
8013740: 6713 str r3, [r2, #112] ; 0x70
8013742: 4a59 ldr r2, [pc, #356] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
8013744: 4b58 ldr r3, [pc, #352] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
8013746: 6f1b ldr r3, [r3, #112] ; 0x70
8013748: f023 0304 bic.w r3, r3, #4
801374c: 6713 str r3, [r2, #112] ; 0x70
/* Check the LSE State */
if ((RCC_OscInitStruct->LSEState) != RCC_LSE_OFF)
801374e: 687b ldr r3, [r7, #4]
8013750: 689b ldr r3, [r3, #8]
8013752: 2b00 cmp r3, #0
8013754: d015 beq.n 8013782 <HAL_RCC_OscConfig+0x3aa>
{
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013756: f7fd ff05 bl 8011564 <HAL_GetTick>
801375a: 6138 str r0, [r7, #16]
/* Wait till LSE is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET)
801375c: e00a b.n 8013774 <HAL_RCC_OscConfig+0x39c>
{
if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE)
801375e: f7fd ff01 bl 8011564 <HAL_GetTick>
8013762: 4602 mov r2, r0
8013764: 693b ldr r3, [r7, #16]
8013766: 1ad3 subs r3, r2, r3
8013768: f241 3288 movw r2, #5000 ; 0x1388
801376c: 4293 cmp r3, r2
801376e: d901 bls.n 8013774 <HAL_RCC_OscConfig+0x39c>
{
return HAL_TIMEOUT;
8013770: 2303 movs r3, #3
8013772: e0d8 b.n 8013926 <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET)
8013774: 4b4c ldr r3, [pc, #304] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
8013776: 6f1b ldr r3, [r3, #112] ; 0x70
8013778: f003 0302 and.w r3, r3, #2
801377c: 2b00 cmp r3, #0
801377e: d0ee beq.n 801375e <HAL_RCC_OscConfig+0x386>
8013780: e014 b.n 80137ac <HAL_RCC_OscConfig+0x3d4>
}
}
else
{
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013782: f7fd feef bl 8011564 <HAL_GetTick>
8013786: 6138 str r0, [r7, #16]
/* Wait till LSE is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET)
8013788: e00a b.n 80137a0 <HAL_RCC_OscConfig+0x3c8>
{
if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE)
801378a: f7fd feeb bl 8011564 <HAL_GetTick>
801378e: 4602 mov r2, r0
8013790: 693b ldr r3, [r7, #16]
8013792: 1ad3 subs r3, r2, r3
8013794: f241 3288 movw r2, #5000 ; 0x1388
8013798: 4293 cmp r3, r2
801379a: d901 bls.n 80137a0 <HAL_RCC_OscConfig+0x3c8>
{
return HAL_TIMEOUT;
801379c: 2303 movs r3, #3
801379e: e0c2 b.n 8013926 <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET)
80137a0: 4b41 ldr r3, [pc, #260] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
80137a2: 6f1b ldr r3, [r3, #112] ; 0x70
80137a4: f003 0302 and.w r3, r3, #2
80137a8: 2b00 cmp r3, #0
80137aa: d1ee bne.n 801378a <HAL_RCC_OscConfig+0x3b2>
}
}
}
/* Restore clock configuration if changed */
if (pwrclkchanged == SET)
80137ac: 7dfb ldrb r3, [r7, #23]
80137ae: 2b01 cmp r3, #1
80137b0: d105 bne.n 80137be <HAL_RCC_OscConfig+0x3e6>
{
__HAL_RCC_PWR_CLK_DISABLE();
80137b2: 4a3d ldr r2, [pc, #244] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
80137b4: 4b3c ldr r3, [pc, #240] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
80137b6: 6c1b ldr r3, [r3, #64] ; 0x40
80137b8: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000
80137bc: 6413 str r3, [r2, #64] ; 0x40
}
}
/*-------------------------------- PLL Configuration -----------------------*/
/* Check the parameters */
assert_param(IS_RCC_PLL(RCC_OscInitStruct->PLL.PLLState));
if ((RCC_OscInitStruct->PLL.PLLState) != RCC_PLL_NONE)
80137be: 687b ldr r3, [r7, #4]
80137c0: 699b ldr r3, [r3, #24]
80137c2: 2b00 cmp r3, #0
80137c4: f000 80ae beq.w 8013924 <HAL_RCC_OscConfig+0x54c>
{
/* Check if the PLL is used as system clock or not */
if (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_SYSCLKSOURCE_STATUS_PLLCLK)
80137c8: 4b37 ldr r3, [pc, #220] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
80137ca: 689b ldr r3, [r3, #8]
80137cc: f003 030c and.w r3, r3, #12
80137d0: 2b08 cmp r3, #8
80137d2: d06d beq.n 80138b0 <HAL_RCC_OscConfig+0x4d8>
{
if ((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON)
80137d4: 687b ldr r3, [r7, #4]
80137d6: 699b ldr r3, [r3, #24]
80137d8: 2b02 cmp r3, #2
80137da: d14b bne.n 8013874 <HAL_RCC_OscConfig+0x49c>
#if defined (RCC_PLLCFGR_PLLR)
assert_param(IS_RCC_PLLR_VALUE(RCC_OscInitStruct->PLL.PLLR));
#endif
/* Disable the main PLL. */
__HAL_RCC_PLL_DISABLE();
80137dc: 4a32 ldr r2, [pc, #200] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
80137de: 4b32 ldr r3, [pc, #200] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
80137e0: 681b ldr r3, [r3, #0]
80137e2: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000
80137e6: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
80137e8: f7fd febc bl 8011564 <HAL_GetTick>
80137ec: 6138 str r0, [r7, #16]
/* Wait till PLL is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
80137ee: e008 b.n 8013802 <HAL_RCC_OscConfig+0x42a>
{
if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE)
80137f0: f7fd feb8 bl 8011564 <HAL_GetTick>
80137f4: 4602 mov r2, r0
80137f6: 693b ldr r3, [r7, #16]
80137f8: 1ad3 subs r3, r2, r3
80137fa: 2b02 cmp r3, #2
80137fc: d901 bls.n 8013802 <HAL_RCC_OscConfig+0x42a>
{
return HAL_TIMEOUT;
80137fe: 2303 movs r3, #3
8013800: e091 b.n 8013926 <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
8013802: 4b29 ldr r3, [pc, #164] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
8013804: 681b ldr r3, [r3, #0]
8013806: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
801380a: 2b00 cmp r3, #0
801380c: d1f0 bne.n 80137f0 <HAL_RCC_OscConfig+0x418>
}
}
/* Configure the main PLL clock source, multiplication and division factors. */
#if defined (RCC_PLLCFGR_PLLR)
__HAL_RCC_PLL_CONFIG(RCC_OscInitStruct->PLL.PLLSource,
801380e: 4926 ldr r1, [pc, #152] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
8013810: 687b ldr r3, [r7, #4]
8013812: 69da ldr r2, [r3, #28]
8013814: 687b ldr r3, [r7, #4]
8013816: 6a1b ldr r3, [r3, #32]
8013818: 431a orrs r2, r3
801381a: 687b ldr r3, [r7, #4]
801381c: 6a5b ldr r3, [r3, #36] ; 0x24
801381e: 019b lsls r3, r3, #6
8013820: 431a orrs r2, r3
8013822: 687b ldr r3, [r7, #4]
8013824: 6a9b ldr r3, [r3, #40] ; 0x28
8013826: 085b lsrs r3, r3, #1
8013828: 3b01 subs r3, #1
801382a: 041b lsls r3, r3, #16
801382c: 431a orrs r2, r3
801382e: 687b ldr r3, [r7, #4]
8013830: 6adb ldr r3, [r3, #44] ; 0x2c
8013832: 061b lsls r3, r3, #24
8013834: 431a orrs r2, r3
8013836: 687b ldr r3, [r7, #4]
8013838: 6b1b ldr r3, [r3, #48] ; 0x30
801383a: 071b lsls r3, r3, #28
801383c: 4313 orrs r3, r2
801383e: 604b str r3, [r1, #4]
RCC_OscInitStruct->PLL.PLLP,
RCC_OscInitStruct->PLL.PLLQ);
#endif
/* Enable the main PLL. */
__HAL_RCC_PLL_ENABLE();
8013840: 4a19 ldr r2, [pc, #100] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
8013842: 4b19 ldr r3, [pc, #100] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
8013844: 681b ldr r3, [r3, #0]
8013846: f043 7380 orr.w r3, r3, #16777216 ; 0x1000000
801384a: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
801384c: f7fd fe8a bl 8011564 <HAL_GetTick>
8013850: 6138 str r0, [r7, #16]
/* Wait till PLL is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET)
8013852: e008 b.n 8013866 <HAL_RCC_OscConfig+0x48e>
{
if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE)
8013854: f7fd fe86 bl 8011564 <HAL_GetTick>
8013858: 4602 mov r2, r0
801385a: 693b ldr r3, [r7, #16]
801385c: 1ad3 subs r3, r2, r3
801385e: 2b02 cmp r3, #2
8013860: d901 bls.n 8013866 <HAL_RCC_OscConfig+0x48e>
{
return HAL_TIMEOUT;
8013862: 2303 movs r3, #3
8013864: e05f b.n 8013926 <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET)
8013866: 4b10 ldr r3, [pc, #64] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
8013868: 681b ldr r3, [r3, #0]
801386a: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
801386e: 2b00 cmp r3, #0
8013870: d0f0 beq.n 8013854 <HAL_RCC_OscConfig+0x47c>
8013872: e057 b.n 8013924 <HAL_RCC_OscConfig+0x54c>
}
}
else
{
/* Disable the main PLL. */
__HAL_RCC_PLL_DISABLE();
8013874: 4a0c ldr r2, [pc, #48] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
8013876: 4b0c ldr r3, [pc, #48] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
8013878: 681b ldr r3, [r3, #0]
801387a: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000
801387e: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013880: f7fd fe70 bl 8011564 <HAL_GetTick>
8013884: 6138 str r0, [r7, #16]
/* Wait till PLL is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
8013886: e008 b.n 801389a <HAL_RCC_OscConfig+0x4c2>
{
if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE)
8013888: f7fd fe6c bl 8011564 <HAL_GetTick>
801388c: 4602 mov r2, r0
801388e: 693b ldr r3, [r7, #16]
8013890: 1ad3 subs r3, r2, r3
8013892: 2b02 cmp r3, #2
8013894: d901 bls.n 801389a <HAL_RCC_OscConfig+0x4c2>
{
return HAL_TIMEOUT;
8013896: 2303 movs r3, #3
8013898: e045 b.n 8013926 <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
801389a: 4b03 ldr r3, [pc, #12] ; (80138a8 <HAL_RCC_OscConfig+0x4d0>)
801389c: 681b ldr r3, [r3, #0]
801389e: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
80138a2: 2b00 cmp r3, #0
80138a4: d1f0 bne.n 8013888 <HAL_RCC_OscConfig+0x4b0>
80138a6: e03d b.n 8013924 <HAL_RCC_OscConfig+0x54c>
80138a8: 40023800 .word 0x40023800
80138ac: 40007000 .word 0x40007000
}
}
else
{
/* Do not return HAL_ERROR if request repeats the current configuration */
pll_config = RCC->PLLCFGR;
80138b0: 4b1f ldr r3, [pc, #124] ; (8013930 <HAL_RCC_OscConfig+0x558>)
80138b2: 685b ldr r3, [r3, #4]
80138b4: 60fb str r3, [r7, #12]
#if defined (RCC_PLLCFGR_PLLR)
if (((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) ||
80138b6: 687b ldr r3, [r7, #4]
80138b8: 699b ldr r3, [r3, #24]
80138ba: 2b01 cmp r3, #1
80138bc: d030 beq.n 8013920 <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) ||
80138be: 68fb ldr r3, [r7, #12]
80138c0: f403 0280 and.w r2, r3, #4194304 ; 0x400000
80138c4: 687b ldr r3, [r7, #4]
80138c6: 69db ldr r3, [r3, #28]
if (((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) ||
80138c8: 429a cmp r2, r3
80138ca: d129 bne.n 8013920 <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != RCC_OscInitStruct->PLL.PLLM) ||
80138cc: 68fb ldr r3, [r7, #12]
80138ce: f003 023f and.w r2, r3, #63 ; 0x3f
80138d2: 687b ldr r3, [r7, #4]
80138d4: 6a1b ldr r3, [r3, #32]
(READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) ||
80138d6: 429a cmp r2, r3
80138d8: d122 bne.n 8013920 <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) ||
80138da: 68fa ldr r2, [r7, #12]
80138dc: f647 73c0 movw r3, #32704 ; 0x7fc0
80138e0: 4013 ands r3, r2
80138e2: 687a ldr r2, [r7, #4]
80138e4: 6a52 ldr r2, [r2, #36] ; 0x24
80138e6: 0192 lsls r2, r2, #6
(READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != RCC_OscInitStruct->PLL.PLLM) ||
80138e8: 4293 cmp r3, r2
80138ea: d119 bne.n 8013920 <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != ((((RCC_OscInitStruct->PLL.PLLP) >> 1U) - 1U) << RCC_PLLCFGR_PLLP_Pos)) ||
80138ec: 68fb ldr r3, [r7, #12]
80138ee: f403 3240 and.w r2, r3, #196608 ; 0x30000
80138f2: 687b ldr r3, [r7, #4]
80138f4: 6a9b ldr r3, [r3, #40] ; 0x28
80138f6: 085b lsrs r3, r3, #1
80138f8: 3b01 subs r3, #1
80138fa: 041b lsls r3, r3, #16
(READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) ||
80138fc: 429a cmp r2, r3
80138fe: d10f bne.n 8013920 <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != (RCC_OscInitStruct->PLL.PLLQ << RCC_PLLCFGR_PLLQ_Pos)) ||
8013900: 68fb ldr r3, [r7, #12]
8013902: f003 6270 and.w r2, r3, #251658240 ; 0xf000000
8013906: 687b ldr r3, [r7, #4]
8013908: 6adb ldr r3, [r3, #44] ; 0x2c
801390a: 061b lsls r3, r3, #24
(READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != ((((RCC_OscInitStruct->PLL.PLLP) >> 1U) - 1U) << RCC_PLLCFGR_PLLP_Pos)) ||
801390c: 429a cmp r2, r3
801390e: d107 bne.n 8013920 <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLR) != (RCC_OscInitStruct->PLL.PLLR << RCC_PLLCFGR_PLLR_Pos)))
8013910: 68fb ldr r3, [r7, #12]
8013912: f003 42e0 and.w r2, r3, #1879048192 ; 0x70000000
8013916: 687b ldr r3, [r7, #4]
8013918: 6b1b ldr r3, [r3, #48] ; 0x30
801391a: 071b lsls r3, r3, #28
(READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != (RCC_OscInitStruct->PLL.PLLQ << RCC_PLLCFGR_PLLQ_Pos)) ||
801391c: 429a cmp r2, r3
801391e: d001 beq.n 8013924 <HAL_RCC_OscConfig+0x54c>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) ||
(READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != ((((RCC_OscInitStruct->PLL.PLLP) >> 1U) - 1U) << RCC_PLLCFGR_PLLP_Pos)) ||
(READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != (RCC_OscInitStruct->PLL.PLLQ << RCC_PLLCFGR_PLLQ_Pos)))
#endif
{
return HAL_ERROR;
8013920: 2301 movs r3, #1
8013922: e000 b.n 8013926 <HAL_RCC_OscConfig+0x54e>
}
}
}
return HAL_OK;
8013924: 2300 movs r3, #0
}
8013926: 4618 mov r0, r3
8013928: 3718 adds r7, #24
801392a: 46bd mov sp, r7
801392c: bd80 pop {r7, pc}
801392e: bf00 nop
8013930: 40023800 .word 0x40023800
08013934 <HAL_RCC_ClockConfig>:
* HPRE[3:0] bits to ensure that HCLK not exceed the maximum allowed frequency
* (for more details refer to section above "Initialization/de-initialization functions")
* @retval None
*/
HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency)
{
8013934: b580 push {r7, lr}
8013936: b084 sub sp, #16
8013938: af00 add r7, sp, #0
801393a: 6078 str r0, [r7, #4]
801393c: 6039 str r1, [r7, #0]
uint32_t tickstart = 0;
801393e: 2300 movs r3, #0
8013940: 60fb str r3, [r7, #12]
/* Check Null pointer */
if (RCC_ClkInitStruct == NULL)
8013942: 687b ldr r3, [r7, #4]
8013944: 2b00 cmp r3, #0
8013946: d101 bne.n 801394c <HAL_RCC_ClockConfig+0x18>
{
return HAL_ERROR;
8013948: 2301 movs r3, #1
801394a: e0d0 b.n 8013aee <HAL_RCC_ClockConfig+0x1ba>
/* To correctly read data from FLASH memory, the number of wait states (LATENCY)
must be correctly programmed according to the frequency of the CPU clock
(HCLK) and the supply voltage of the device. */
/* Increasing the CPU frequency */
if (FLatency > __HAL_FLASH_GET_LATENCY())
801394c: 4b6a ldr r3, [pc, #424] ; (8013af8 <HAL_RCC_ClockConfig+0x1c4>)
801394e: 681b ldr r3, [r3, #0]
8013950: f003 020f and.w r2, r3, #15
8013954: 683b ldr r3, [r7, #0]
8013956: 429a cmp r2, r3
8013958: d210 bcs.n 801397c <HAL_RCC_ClockConfig+0x48>
{
/* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */
__HAL_FLASH_SET_LATENCY(FLatency);
801395a: 4967 ldr r1, [pc, #412] ; (8013af8 <HAL_RCC_ClockConfig+0x1c4>)
801395c: 4b66 ldr r3, [pc, #408] ; (8013af8 <HAL_RCC_ClockConfig+0x1c4>)
801395e: 681b ldr r3, [r3, #0]
8013960: f023 020f bic.w r2, r3, #15
8013964: 683b ldr r3, [r7, #0]
8013966: 4313 orrs r3, r2
8013968: 600b str r3, [r1, #0]
/* Check that the new number of wait states is taken into account to access the Flash
memory by reading the FLASH_ACR register */
if (__HAL_FLASH_GET_LATENCY() != FLatency)
801396a: 4b63 ldr r3, [pc, #396] ; (8013af8 <HAL_RCC_ClockConfig+0x1c4>)
801396c: 681b ldr r3, [r3, #0]
801396e: f003 020f and.w r2, r3, #15
8013972: 683b ldr r3, [r7, #0]
8013974: 429a cmp r2, r3
8013976: d001 beq.n 801397c <HAL_RCC_ClockConfig+0x48>
{
return HAL_ERROR;
8013978: 2301 movs r3, #1
801397a: e0b8 b.n 8013aee <HAL_RCC_ClockConfig+0x1ba>
}
}
/*-------------------------- HCLK Configuration --------------------------*/
if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK)
801397c: 687b ldr r3, [r7, #4]
801397e: 681b ldr r3, [r3, #0]
8013980: f003 0302 and.w r3, r3, #2
8013984: 2b00 cmp r3, #0
8013986: d020 beq.n 80139ca <HAL_RCC_ClockConfig+0x96>
{
/* Set the highest APBx dividers in order to ensure that we do not go through
a non-spec phase whatever we decrease or increase HCLK. */
if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1)
8013988: 687b ldr r3, [r7, #4]
801398a: 681b ldr r3, [r3, #0]
801398c: f003 0304 and.w r3, r3, #4
8013990: 2b00 cmp r3, #0
8013992: d005 beq.n 80139a0 <HAL_RCC_ClockConfig+0x6c>
{
MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16);
8013994: 4a59 ldr r2, [pc, #356] ; (8013afc <HAL_RCC_ClockConfig+0x1c8>)
8013996: 4b59 ldr r3, [pc, #356] ; (8013afc <HAL_RCC_ClockConfig+0x1c8>)
8013998: 689b ldr r3, [r3, #8]
801399a: f443 53e0 orr.w r3, r3, #7168 ; 0x1c00
801399e: 6093 str r3, [r2, #8]
}
if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2)
80139a0: 687b ldr r3, [r7, #4]
80139a2: 681b ldr r3, [r3, #0]
80139a4: f003 0308 and.w r3, r3, #8
80139a8: 2b00 cmp r3, #0
80139aa: d005 beq.n 80139b8 <HAL_RCC_ClockConfig+0x84>
{
MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, (RCC_HCLK_DIV16 << 3));
80139ac: 4a53 ldr r2, [pc, #332] ; (8013afc <HAL_RCC_ClockConfig+0x1c8>)
80139ae: 4b53 ldr r3, [pc, #332] ; (8013afc <HAL_RCC_ClockConfig+0x1c8>)
80139b0: 689b ldr r3, [r3, #8]
80139b2: f443 4360 orr.w r3, r3, #57344 ; 0xe000
80139b6: 6093 str r3, [r2, #8]
}
/* Set the new HCLK clock divider */
assert_param(IS_RCC_HCLK(RCC_ClkInitStruct->AHBCLKDivider));
MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->AHBCLKDivider);
80139b8: 4950 ldr r1, [pc, #320] ; (8013afc <HAL_RCC_ClockConfig+0x1c8>)
80139ba: 4b50 ldr r3, [pc, #320] ; (8013afc <HAL_RCC_ClockConfig+0x1c8>)
80139bc: 689b ldr r3, [r3, #8]
80139be: f023 02f0 bic.w r2, r3, #240 ; 0xf0
80139c2: 687b ldr r3, [r7, #4]
80139c4: 689b ldr r3, [r3, #8]
80139c6: 4313 orrs r3, r2
80139c8: 608b str r3, [r1, #8]
}
/*------------------------- SYSCLK Configuration ---------------------------*/
if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK)
80139ca: 687b ldr r3, [r7, #4]
80139cc: 681b ldr r3, [r3, #0]
80139ce: f003 0301 and.w r3, r3, #1
80139d2: 2b00 cmp r3, #0
80139d4: d040 beq.n 8013a58 <HAL_RCC_ClockConfig+0x124>
{
assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->SYSCLKSource));
/* HSE is selected as System Clock Source */
if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_HSE)
80139d6: 687b ldr r3, [r7, #4]
80139d8: 685b ldr r3, [r3, #4]
80139da: 2b01 cmp r3, #1
80139dc: d107 bne.n 80139ee <HAL_RCC_ClockConfig+0xba>
{
/* Check the HSE ready flag */
if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET)
80139de: 4b47 ldr r3, [pc, #284] ; (8013afc <HAL_RCC_ClockConfig+0x1c8>)
80139e0: 681b ldr r3, [r3, #0]
80139e2: f403 3300 and.w r3, r3, #131072 ; 0x20000
80139e6: 2b00 cmp r3, #0
80139e8: d115 bne.n 8013a16 <HAL_RCC_ClockConfig+0xe2>
{
return HAL_ERROR;
80139ea: 2301 movs r3, #1
80139ec: e07f b.n 8013aee <HAL_RCC_ClockConfig+0x1ba>
}
}
/* PLL is selected as System Clock Source */
else if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK)
80139ee: 687b ldr r3, [r7, #4]
80139f0: 685b ldr r3, [r3, #4]
80139f2: 2b02 cmp r3, #2
80139f4: d107 bne.n 8013a06 <HAL_RCC_ClockConfig+0xd2>
{
/* Check the PLL ready flag */
if (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET)
80139f6: 4b41 ldr r3, [pc, #260] ; (8013afc <HAL_RCC_ClockConfig+0x1c8>)
80139f8: 681b ldr r3, [r3, #0]
80139fa: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
80139fe: 2b00 cmp r3, #0
8013a00: d109 bne.n 8013a16 <HAL_RCC_ClockConfig+0xe2>
{
return HAL_ERROR;
8013a02: 2301 movs r3, #1
8013a04: e073 b.n 8013aee <HAL_RCC_ClockConfig+0x1ba>
}
/* HSI is selected as System Clock Source */
else
{
/* Check the HSI ready flag */
if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET)
8013a06: 4b3d ldr r3, [pc, #244] ; (8013afc <HAL_RCC_ClockConfig+0x1c8>)
8013a08: 681b ldr r3, [r3, #0]
8013a0a: f003 0302 and.w r3, r3, #2
8013a0e: 2b00 cmp r3, #0
8013a10: d101 bne.n 8013a16 <HAL_RCC_ClockConfig+0xe2>
{
return HAL_ERROR;
8013a12: 2301 movs r3, #1
8013a14: e06b b.n 8013aee <HAL_RCC_ClockConfig+0x1ba>
}
}
__HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource);
8013a16: 4939 ldr r1, [pc, #228] ; (8013afc <HAL_RCC_ClockConfig+0x1c8>)
8013a18: 4b38 ldr r3, [pc, #224] ; (8013afc <HAL_RCC_ClockConfig+0x1c8>)
8013a1a: 689b ldr r3, [r3, #8]
8013a1c: f023 0203 bic.w r2, r3, #3
8013a20: 687b ldr r3, [r7, #4]
8013a22: 685b ldr r3, [r3, #4]
8013a24: 4313 orrs r3, r2
8013a26: 608b str r3, [r1, #8]
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013a28: f7fd fd9c bl 8011564 <HAL_GetTick>
8013a2c: 60f8 str r0, [r7, #12]
while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos))
8013a2e: e00a b.n 8013a46 <HAL_RCC_ClockConfig+0x112>
{
if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE)
8013a30: f7fd fd98 bl 8011564 <HAL_GetTick>
8013a34: 4602 mov r2, r0
8013a36: 68fb ldr r3, [r7, #12]
8013a38: 1ad3 subs r3, r2, r3
8013a3a: f241 3288 movw r2, #5000 ; 0x1388
8013a3e: 4293 cmp r3, r2
8013a40: d901 bls.n 8013a46 <HAL_RCC_ClockConfig+0x112>
{
return HAL_TIMEOUT;
8013a42: 2303 movs r3, #3
8013a44: e053 b.n 8013aee <HAL_RCC_ClockConfig+0x1ba>
while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos))
8013a46: 4b2d ldr r3, [pc, #180] ; (8013afc <HAL_RCC_ClockConfig+0x1c8>)
8013a48: 689b ldr r3, [r3, #8]
8013a4a: f003 020c and.w r2, r3, #12
8013a4e: 687b ldr r3, [r7, #4]
8013a50: 685b ldr r3, [r3, #4]
8013a52: 009b lsls r3, r3, #2
8013a54: 429a cmp r2, r3
8013a56: d1eb bne.n 8013a30 <HAL_RCC_ClockConfig+0xfc>
}
}
}
/* Decreasing the number of wait states because of lower CPU frequency */
if (FLatency < __HAL_FLASH_GET_LATENCY())
8013a58: 4b27 ldr r3, [pc, #156] ; (8013af8 <HAL_RCC_ClockConfig+0x1c4>)
8013a5a: 681b ldr r3, [r3, #0]
8013a5c: f003 020f and.w r2, r3, #15
8013a60: 683b ldr r3, [r7, #0]
8013a62: 429a cmp r2, r3
8013a64: d910 bls.n 8013a88 <HAL_RCC_ClockConfig+0x154>
{
/* Program the new number of wait states to the LATENCY bits in the FLASH_ACR register */
__HAL_FLASH_SET_LATENCY(FLatency);
8013a66: 4924 ldr r1, [pc, #144] ; (8013af8 <HAL_RCC_ClockConfig+0x1c4>)
8013a68: 4b23 ldr r3, [pc, #140] ; (8013af8 <HAL_RCC_ClockConfig+0x1c4>)
8013a6a: 681b ldr r3, [r3, #0]
8013a6c: f023 020f bic.w r2, r3, #15
8013a70: 683b ldr r3, [r7, #0]
8013a72: 4313 orrs r3, r2
8013a74: 600b str r3, [r1, #0]
/* Check that the new number of wait states is taken into account to access the Flash
memory by reading the FLASH_ACR register */
if (__HAL_FLASH_GET_LATENCY() != FLatency)
8013a76: 4b20 ldr r3, [pc, #128] ; (8013af8 <HAL_RCC_ClockConfig+0x1c4>)
8013a78: 681b ldr r3, [r3, #0]
8013a7a: f003 020f and.w r2, r3, #15
8013a7e: 683b ldr r3, [r7, #0]
8013a80: 429a cmp r2, r3
8013a82: d001 beq.n 8013a88 <HAL_RCC_ClockConfig+0x154>
{
return HAL_ERROR;
8013a84: 2301 movs r3, #1
8013a86: e032 b.n 8013aee <HAL_RCC_ClockConfig+0x1ba>
}
}
/*-------------------------- PCLK1 Configuration ---------------------------*/
if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1)
8013a88: 687b ldr r3, [r7, #4]
8013a8a: 681b ldr r3, [r3, #0]
8013a8c: f003 0304 and.w r3, r3, #4
8013a90: 2b00 cmp r3, #0
8013a92: d008 beq.n 8013aa6 <HAL_RCC_ClockConfig+0x172>
{
assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider));
MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider);
8013a94: 4919 ldr r1, [pc, #100] ; (8013afc <HAL_RCC_ClockConfig+0x1c8>)
8013a96: 4b19 ldr r3, [pc, #100] ; (8013afc <HAL_RCC_ClockConfig+0x1c8>)
8013a98: 689b ldr r3, [r3, #8]
8013a9a: f423 52e0 bic.w r2, r3, #7168 ; 0x1c00
8013a9e: 687b ldr r3, [r7, #4]
8013aa0: 68db ldr r3, [r3, #12]
8013aa2: 4313 orrs r3, r2
8013aa4: 608b str r3, [r1, #8]
}
/*-------------------------- PCLK2 Configuration ---------------------------*/
if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2)
8013aa6: 687b ldr r3, [r7, #4]
8013aa8: 681b ldr r3, [r3, #0]
8013aaa: f003 0308 and.w r3, r3, #8
8013aae: 2b00 cmp r3, #0
8013ab0: d009 beq.n 8013ac6 <HAL_RCC_ClockConfig+0x192>
{
assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider));
MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3));
8013ab2: 4912 ldr r1, [pc, #72] ; (8013afc <HAL_RCC_ClockConfig+0x1c8>)
8013ab4: 4b11 ldr r3, [pc, #68] ; (8013afc <HAL_RCC_ClockConfig+0x1c8>)
8013ab6: 689b ldr r3, [r3, #8]
8013ab8: f423 4260 bic.w r2, r3, #57344 ; 0xe000
8013abc: 687b ldr r3, [r7, #4]
8013abe: 691b ldr r3, [r3, #16]
8013ac0: 00db lsls r3, r3, #3
8013ac2: 4313 orrs r3, r2
8013ac4: 608b str r3, [r1, #8]
}
/* Update the SystemCoreClock global variable */
SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos];
8013ac6: f000 f821 bl 8013b0c <HAL_RCC_GetSysClockFreq>
8013aca: 4601 mov r1, r0
8013acc: 4b0b ldr r3, [pc, #44] ; (8013afc <HAL_RCC_ClockConfig+0x1c8>)
8013ace: 689b ldr r3, [r3, #8]
8013ad0: 091b lsrs r3, r3, #4
8013ad2: f003 030f and.w r3, r3, #15
8013ad6: 4a0a ldr r2, [pc, #40] ; (8013b00 <HAL_RCC_ClockConfig+0x1cc>)
8013ad8: 5cd3 ldrb r3, [r2, r3]
8013ada: fa21 f303 lsr.w r3, r1, r3
8013ade: 4a09 ldr r2, [pc, #36] ; (8013b04 <HAL_RCC_ClockConfig+0x1d0>)
8013ae0: 6013 str r3, [r2, #0]
/* Configure the source of time base considering new system clocks settings*/
HAL_InitTick(uwTickPrio);
8013ae2: 4b09 ldr r3, [pc, #36] ; (8013b08 <HAL_RCC_ClockConfig+0x1d4>)
8013ae4: 681b ldr r3, [r3, #0]
8013ae6: 4618 mov r0, r3
8013ae8: f7fd fcf8 bl 80114dc <HAL_InitTick>
return HAL_OK;
8013aec: 2300 movs r3, #0
}
8013aee: 4618 mov r0, r3
8013af0: 3710 adds r7, #16
8013af2: 46bd mov sp, r7
8013af4: bd80 pop {r7, pc}
8013af6: bf00 nop
8013af8: 40023c00 .word 0x40023c00
8013afc: 40023800 .word 0x40023800
8013b00: 0801add8 .word 0x0801add8
8013b04: 20020994 .word 0x20020994
8013b08: 200209a0 .word 0x200209a0
08013b0c <HAL_RCC_GetSysClockFreq>:
*
*
* @retval SYSCLK frequency
*/
uint32_t HAL_RCC_GetSysClockFreq(void)
{
8013b0c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
8013b10: b087 sub sp, #28
8013b12: af00 add r7, sp, #0
uint32_t pllm = 0, pllvco = 0, pllp = 0;
8013b14: 2200 movs r2, #0
8013b16: 60fa str r2, [r7, #12]
8013b18: 2200 movs r2, #0
8013b1a: 617a str r2, [r7, #20]
8013b1c: 2200 movs r2, #0
8013b1e: 60ba str r2, [r7, #8]
uint32_t sysclockfreq = 0;
8013b20: 2200 movs r2, #0
8013b22: 613a str r2, [r7, #16]
/* Get SYSCLK source -------------------------------------------------------*/
switch (RCC->CFGR & RCC_CFGR_SWS)
8013b24: 4a51 ldr r2, [pc, #324] ; (8013c6c <HAL_RCC_GetSysClockFreq+0x160>)
8013b26: 6892 ldr r2, [r2, #8]
8013b28: f002 020c and.w r2, r2, #12
8013b2c: 2a04 cmp r2, #4
8013b2e: d007 beq.n 8013b40 <HAL_RCC_GetSysClockFreq+0x34>
8013b30: 2a08 cmp r2, #8
8013b32: d008 beq.n 8013b46 <HAL_RCC_GetSysClockFreq+0x3a>
8013b34: 2a00 cmp r2, #0
8013b36: f040 8090 bne.w 8013c5a <HAL_RCC_GetSysClockFreq+0x14e>
{
case RCC_SYSCLKSOURCE_STATUS_HSI: /* HSI used as system clock source */
{
sysclockfreq = HSI_VALUE;
8013b3a: 4b4d ldr r3, [pc, #308] ; (8013c70 <HAL_RCC_GetSysClockFreq+0x164>)
8013b3c: 613b str r3, [r7, #16]
break;
8013b3e: e08f b.n 8013c60 <HAL_RCC_GetSysClockFreq+0x154>
}
case RCC_SYSCLKSOURCE_STATUS_HSE: /* HSE used as system clock source */
{
sysclockfreq = HSE_VALUE;
8013b40: 4b4c ldr r3, [pc, #304] ; (8013c74 <HAL_RCC_GetSysClockFreq+0x168>)
8013b42: 613b str r3, [r7, #16]
break;
8013b44: e08c b.n 8013c60 <HAL_RCC_GetSysClockFreq+0x154>
}
case RCC_SYSCLKSOURCE_STATUS_PLLCLK: /* PLL used as system clock source */
{
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLLM) * PLLN
SYSCLK = PLL_VCO / PLLP */
pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
8013b46: 4a49 ldr r2, [pc, #292] ; (8013c6c <HAL_RCC_GetSysClockFreq+0x160>)
8013b48: 6852 ldr r2, [r2, #4]
8013b4a: f002 023f and.w r2, r2, #63 ; 0x3f
8013b4e: 60fa str r2, [r7, #12]
if (__HAL_RCC_GET_PLL_OSCSOURCE() != RCC_PLLCFGR_PLLSRC_HSI)
8013b50: 4a46 ldr r2, [pc, #280] ; (8013c6c <HAL_RCC_GetSysClockFreq+0x160>)
8013b52: 6852 ldr r2, [r2, #4]
8013b54: f402 0280 and.w r2, r2, #4194304 ; 0x400000
8013b58: 2a00 cmp r2, #0
8013b5a: d023 beq.n 8013ba4 <HAL_RCC_GetSysClockFreq+0x98>
{
/* HSE used as PLL clock source */
pllvco = (uint32_t)((((uint64_t) HSE_VALUE * ((uint64_t)((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)))) / (uint64_t)pllm);
8013b5c: 4b43 ldr r3, [pc, #268] ; (8013c6c <HAL_RCC_GetSysClockFreq+0x160>)
8013b5e: 685b ldr r3, [r3, #4]
8013b60: 099b lsrs r3, r3, #6
8013b62: f04f 0400 mov.w r4, #0
8013b66: f240 11ff movw r1, #511 ; 0x1ff
8013b6a: f04f 0200 mov.w r2, #0
8013b6e: ea03 0301 and.w r3, r3, r1
8013b72: ea04 0402 and.w r4, r4, r2
8013b76: 4a3f ldr r2, [pc, #252] ; (8013c74 <HAL_RCC_GetSysClockFreq+0x168>)
8013b78: fb02 f104 mul.w r1, r2, r4
8013b7c: 2200 movs r2, #0
8013b7e: fb02 f203 mul.w r2, r2, r3
8013b82: 440a add r2, r1
8013b84: 493b ldr r1, [pc, #236] ; (8013c74 <HAL_RCC_GetSysClockFreq+0x168>)
8013b86: fba3 0101 umull r0, r1, r3, r1
8013b8a: 1853 adds r3, r2, r1
8013b8c: 4619 mov r1, r3
8013b8e: 68fb ldr r3, [r7, #12]
8013b90: f04f 0400 mov.w r4, #0
8013b94: 461a mov r2, r3
8013b96: 4623 mov r3, r4
8013b98: f7ec fb56 bl 8000248 <__aeabi_uldivmod>
8013b9c: 4603 mov r3, r0
8013b9e: 460c mov r4, r1
8013ba0: 617b str r3, [r7, #20]
8013ba2: e04c b.n 8013c3e <HAL_RCC_GetSysClockFreq+0x132>
}
else
{
/* HSI used as PLL clock source */
pllvco = (uint32_t)((((uint64_t) HSI_VALUE * ((uint64_t)((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)))) / (uint64_t)pllm);
8013ba4: 4a31 ldr r2, [pc, #196] ; (8013c6c <HAL_RCC_GetSysClockFreq+0x160>)
8013ba6: 6852 ldr r2, [r2, #4]
8013ba8: 0992 lsrs r2, r2, #6
8013baa: 4611 mov r1, r2
8013bac: f04f 0200 mov.w r2, #0
8013bb0: f240 15ff movw r5, #511 ; 0x1ff
8013bb4: f04f 0600 mov.w r6, #0
8013bb8: ea05 0501 and.w r5, r5, r1
8013bbc: ea06 0602 and.w r6, r6, r2
8013bc0: 4629 mov r1, r5
8013bc2: 4632 mov r2, r6
8013bc4: ea4f 1b42 mov.w fp, r2, lsl #5
8013bc8: ea4b 6bd1 orr.w fp, fp, r1, lsr #27
8013bcc: ea4f 1a41 mov.w sl, r1, lsl #5
8013bd0: 4651 mov r1, sl
8013bd2: 465a mov r2, fp
8013bd4: 46aa mov sl, r5
8013bd6: 46b3 mov fp, r6
8013bd8: 4655 mov r5, sl
8013bda: 465e mov r6, fp
8013bdc: 1b4d subs r5, r1, r5
8013bde: eb62 0606 sbc.w r6, r2, r6
8013be2: 4629 mov r1, r5
8013be4: 4632 mov r2, r6
8013be6: 0194 lsls r4, r2, #6
8013be8: ea44 6491 orr.w r4, r4, r1, lsr #26
8013bec: 018b lsls r3, r1, #6
8013bee: 1a5b subs r3, r3, r1
8013bf0: eb64 0402 sbc.w r4, r4, r2
8013bf4: ea4f 09c4 mov.w r9, r4, lsl #3
8013bf8: ea49 7953 orr.w r9, r9, r3, lsr #29
8013bfc: ea4f 08c3 mov.w r8, r3, lsl #3
8013c00: 4643 mov r3, r8
8013c02: 464c mov r4, r9
8013c04: 4655 mov r5, sl
8013c06: 465e mov r6, fp
8013c08: 18ed adds r5, r5, r3
8013c0a: eb46 0604 adc.w r6, r6, r4
8013c0e: 462b mov r3, r5
8013c10: 4634 mov r4, r6
8013c12: 02a2 lsls r2, r4, #10
8013c14: 607a str r2, [r7, #4]
8013c16: 687a ldr r2, [r7, #4]
8013c18: ea42 5293 orr.w r2, r2, r3, lsr #22
8013c1c: 607a str r2, [r7, #4]
8013c1e: 029b lsls r3, r3, #10
8013c20: 603b str r3, [r7, #0]
8013c22: e897 0018 ldmia.w r7, {r3, r4}
8013c26: 4618 mov r0, r3
8013c28: 4621 mov r1, r4
8013c2a: 68fb ldr r3, [r7, #12]
8013c2c: f04f 0400 mov.w r4, #0
8013c30: 461a mov r2, r3
8013c32: 4623 mov r3, r4
8013c34: f7ec fb08 bl 8000248 <__aeabi_uldivmod>
8013c38: 4603 mov r3, r0
8013c3a: 460c mov r4, r1
8013c3c: 617b str r3, [r7, #20]
}
pllp = ((((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >> RCC_PLLCFGR_PLLP_Pos) + 1) * 2);
8013c3e: 4b0b ldr r3, [pc, #44] ; (8013c6c <HAL_RCC_GetSysClockFreq+0x160>)
8013c40: 685b ldr r3, [r3, #4]
8013c42: 0c1b lsrs r3, r3, #16
8013c44: f003 0303 and.w r3, r3, #3
8013c48: 3301 adds r3, #1
8013c4a: 005b lsls r3, r3, #1
8013c4c: 60bb str r3, [r7, #8]
sysclockfreq = pllvco / pllp;
8013c4e: 697a ldr r2, [r7, #20]
8013c50: 68bb ldr r3, [r7, #8]
8013c52: fbb2 f3f3 udiv r3, r2, r3
8013c56: 613b str r3, [r7, #16]
break;
8013c58: e002 b.n 8013c60 <HAL_RCC_GetSysClockFreq+0x154>
}
default:
{
sysclockfreq = HSI_VALUE;
8013c5a: 4b05 ldr r3, [pc, #20] ; (8013c70 <HAL_RCC_GetSysClockFreq+0x164>)
8013c5c: 613b str r3, [r7, #16]
break;
8013c5e: bf00 nop
}
}
return sysclockfreq;
8013c60: 693b ldr r3, [r7, #16]
}
8013c62: 4618 mov r0, r3
8013c64: 371c adds r7, #28
8013c66: 46bd mov sp, r7
8013c68: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
8013c6c: 40023800 .word 0x40023800
8013c70: 00f42400 .word 0x00f42400
8013c74: 017d7840 .word 0x017d7840
08013c78 <HAL_RCC_GetHCLKFreq>:
* right HCLK value. Otherwise, any configuration based on this function will be incorrect.
* @note The SystemCoreClock CMSIS variable is used to store System Clock Frequency.
* @retval HCLK frequency
*/
uint32_t HAL_RCC_GetHCLKFreq(void)
{
8013c78: b480 push {r7}
8013c7a: af00 add r7, sp, #0
return SystemCoreClock;
8013c7c: 4b03 ldr r3, [pc, #12] ; (8013c8c <HAL_RCC_GetHCLKFreq+0x14>)
8013c7e: 681b ldr r3, [r3, #0]
}
8013c80: 4618 mov r0, r3
8013c82: 46bd mov sp, r7
8013c84: f85d 7b04 ldr.w r7, [sp], #4
8013c88: 4770 bx lr
8013c8a: bf00 nop
8013c8c: 20020994 .word 0x20020994
08013c90 <HAL_RCC_GetPCLK1Freq>:
* @note Each time PCLK1 changes, this function must be called to update the
* right PCLK1 value. Otherwise, any configuration based on this function will be incorrect.
* @retval PCLK1 frequency
*/
uint32_t HAL_RCC_GetPCLK1Freq(void)
{
8013c90: b580 push {r7, lr}
8013c92: af00 add r7, sp, #0
/* Get HCLK source and Compute PCLK1 frequency ---------------------------*/
return (HAL_RCC_GetHCLKFreq() >> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE1) >> RCC_CFGR_PPRE1_Pos]);
8013c94: f7ff fff0 bl 8013c78 <HAL_RCC_GetHCLKFreq>
8013c98: 4601 mov r1, r0
8013c9a: 4b05 ldr r3, [pc, #20] ; (8013cb0 <HAL_RCC_GetPCLK1Freq+0x20>)
8013c9c: 689b ldr r3, [r3, #8]
8013c9e: 0a9b lsrs r3, r3, #10
8013ca0: f003 0307 and.w r3, r3, #7
8013ca4: 4a03 ldr r2, [pc, #12] ; (8013cb4 <HAL_RCC_GetPCLK1Freq+0x24>)
8013ca6: 5cd3 ldrb r3, [r2, r3]
8013ca8: fa21 f303 lsr.w r3, r1, r3
}
8013cac: 4618 mov r0, r3
8013cae: bd80 pop {r7, pc}
8013cb0: 40023800 .word 0x40023800
8013cb4: 0801ade8 .word 0x0801ade8
08013cb8 <HAL_RCC_GetPCLK2Freq>:
* @note Each time PCLK2 changes, this function must be called to update the
* right PCLK2 value. Otherwise, any configuration based on this function will be incorrect.
* @retval PCLK2 frequency
*/
uint32_t HAL_RCC_GetPCLK2Freq(void)
{
8013cb8: b580 push {r7, lr}
8013cba: af00 add r7, sp, #0
/* Get HCLK source and Compute PCLK2 frequency ---------------------------*/
return (HAL_RCC_GetHCLKFreq() >> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE2) >> RCC_CFGR_PPRE2_Pos]);
8013cbc: f7ff ffdc bl 8013c78 <HAL_RCC_GetHCLKFreq>
8013cc0: 4601 mov r1, r0
8013cc2: 4b05 ldr r3, [pc, #20] ; (8013cd8 <HAL_RCC_GetPCLK2Freq+0x20>)
8013cc4: 689b ldr r3, [r3, #8]
8013cc6: 0b5b lsrs r3, r3, #13
8013cc8: f003 0307 and.w r3, r3, #7
8013ccc: 4a03 ldr r2, [pc, #12] ; (8013cdc <HAL_RCC_GetPCLK2Freq+0x24>)
8013cce: 5cd3 ldrb r3, [r2, r3]
8013cd0: fa21 f303 lsr.w r3, r1, r3
}
8013cd4: 4618 mov r0, r3
8013cd6: bd80 pop {r7, pc}
8013cd8: 40023800 .word 0x40023800
8013cdc: 0801ade8 .word 0x0801ade8
08013ce0 <HAL_RCCEx_PeriphCLKConfig>:
* the backup registers) are set to their reset values.
*
* @retval HAL status
*/
HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit)
{
8013ce0: b580 push {r7, lr}
8013ce2: b088 sub sp, #32
8013ce4: af00 add r7, sp, #0
8013ce6: 6078 str r0, [r7, #4]
uint32_t tickstart = 0;
8013ce8: 2300 movs r3, #0
8013cea: 617b str r3, [r7, #20]
uint32_t tmpreg0 = 0;
8013cec: 2300 movs r3, #0
8013cee: 613b str r3, [r7, #16]
uint32_t tmpreg1 = 0;
8013cf0: 2300 movs r3, #0
8013cf2: 60fb str r3, [r7, #12]
uint32_t plli2sused = 0;
8013cf4: 2300 movs r3, #0
8013cf6: 61fb str r3, [r7, #28]
uint32_t pllsaiused = 0;
8013cf8: 2300 movs r3, #0
8013cfa: 61bb str r3, [r7, #24]
/* Check the parameters */
assert_param(IS_RCC_PERIPHCLOCK(PeriphClkInit->PeriphClockSelection));
/*----------------------------------- I2S configuration ----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2S) == (RCC_PERIPHCLK_I2S))
8013cfc: 687b ldr r3, [r7, #4]
8013cfe: 681b ldr r3, [r3, #0]
8013d00: f003 0301 and.w r3, r3, #1
8013d04: 2b00 cmp r3, #0
8013d06: d012 beq.n 8013d2e <HAL_RCCEx_PeriphCLKConfig+0x4e>
{
/* Check the parameters */
assert_param(IS_RCC_I2SCLKSOURCE(PeriphClkInit->I2sClockSelection));
/* Configure I2S Clock source */
__HAL_RCC_I2S_CONFIG(PeriphClkInit->I2sClockSelection);
8013d08: 4a69 ldr r2, [pc, #420] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013d0a: 4b69 ldr r3, [pc, #420] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013d0c: 689b ldr r3, [r3, #8]
8013d0e: f423 0300 bic.w r3, r3, #8388608 ; 0x800000
8013d12: 6093 str r3, [r2, #8]
8013d14: 4966 ldr r1, [pc, #408] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013d16: 4b66 ldr r3, [pc, #408] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013d18: 689a ldr r2, [r3, #8]
8013d1a: 687b ldr r3, [r7, #4]
8013d1c: 6b5b ldr r3, [r3, #52] ; 0x34
8013d1e: 4313 orrs r3, r2
8013d20: 608b str r3, [r1, #8]
/* Enable the PLLI2S when it's used as clock source for I2S */
if(PeriphClkInit->I2sClockSelection == RCC_I2SCLKSOURCE_PLLI2S)
8013d22: 687b ldr r3, [r7, #4]
8013d24: 6b5b ldr r3, [r3, #52] ; 0x34
8013d26: 2b00 cmp r3, #0
8013d28: d101 bne.n 8013d2e <HAL_RCCEx_PeriphCLKConfig+0x4e>
{
plli2sused = 1;
8013d2a: 2301 movs r3, #1
8013d2c: 61fb str r3, [r7, #28]
}
}
/*------------------------------------ SAI1 configuration --------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == (RCC_PERIPHCLK_SAI1))
8013d2e: 687b ldr r3, [r7, #4]
8013d30: 681b ldr r3, [r3, #0]
8013d32: f403 2300 and.w r3, r3, #524288 ; 0x80000
8013d36: 2b00 cmp r3, #0
8013d38: d017 beq.n 8013d6a <HAL_RCCEx_PeriphCLKConfig+0x8a>
{
/* Check the parameters */
assert_param(IS_RCC_SAI1CLKSOURCE(PeriphClkInit->Sai1ClockSelection));
/* Configure SAI1 Clock source */
__HAL_RCC_SAI1_CONFIG(PeriphClkInit->Sai1ClockSelection);
8013d3a: 495d ldr r1, [pc, #372] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013d3c: 4b5c ldr r3, [pc, #368] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013d3e: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
8013d42: f423 1240 bic.w r2, r3, #3145728 ; 0x300000
8013d46: 687b ldr r3, [r7, #4]
8013d48: 6bdb ldr r3, [r3, #60] ; 0x3c
8013d4a: 4313 orrs r3, r2
8013d4c: f8c1 308c str.w r3, [r1, #140] ; 0x8c
/* Enable the PLLI2S when it's used as clock source for SAI */
if(PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLI2S)
8013d50: 687b ldr r3, [r7, #4]
8013d52: 6bdb ldr r3, [r3, #60] ; 0x3c
8013d54: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000
8013d58: d101 bne.n 8013d5e <HAL_RCCEx_PeriphCLKConfig+0x7e>
{
plli2sused = 1;
8013d5a: 2301 movs r3, #1
8013d5c: 61fb str r3, [r7, #28]
}
/* Enable the PLLSAI when it's used as clock source for SAI */
if(PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI)
8013d5e: 687b ldr r3, [r7, #4]
8013d60: 6bdb ldr r3, [r3, #60] ; 0x3c
8013d62: 2b00 cmp r3, #0
8013d64: d101 bne.n 8013d6a <HAL_RCCEx_PeriphCLKConfig+0x8a>
{
pllsaiused = 1;
8013d66: 2301 movs r3, #1
8013d68: 61bb str r3, [r7, #24]
}
}
/*------------------------------------ SAI2 configuration --------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == (RCC_PERIPHCLK_SAI2))
8013d6a: 687b ldr r3, [r7, #4]
8013d6c: 681b ldr r3, [r3, #0]
8013d6e: f403 1380 and.w r3, r3, #1048576 ; 0x100000
8013d72: 2b00 cmp r3, #0
8013d74: d017 beq.n 8013da6 <HAL_RCCEx_PeriphCLKConfig+0xc6>
{
/* Check the parameters */
assert_param(IS_RCC_SAI2CLKSOURCE(PeriphClkInit->Sai2ClockSelection));
/* Configure SAI2 Clock source */
__HAL_RCC_SAI2_CONFIG(PeriphClkInit->Sai2ClockSelection);
8013d76: 494e ldr r1, [pc, #312] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013d78: 4b4d ldr r3, [pc, #308] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013d7a: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
8013d7e: f423 0240 bic.w r2, r3, #12582912 ; 0xc00000
8013d82: 687b ldr r3, [r7, #4]
8013d84: 6c1b ldr r3, [r3, #64] ; 0x40
8013d86: 4313 orrs r3, r2
8013d88: f8c1 308c str.w r3, [r1, #140] ; 0x8c
/* Enable the PLLI2S when it's used as clock source for SAI */
if(PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S)
8013d8c: 687b ldr r3, [r7, #4]
8013d8e: 6c1b ldr r3, [r3, #64] ; 0x40
8013d90: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000
8013d94: d101 bne.n 8013d9a <HAL_RCCEx_PeriphCLKConfig+0xba>
{
plli2sused = 1;
8013d96: 2301 movs r3, #1
8013d98: 61fb str r3, [r7, #28]
}
/* Enable the PLLSAI when it's used as clock source for SAI */
if(PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI)
8013d9a: 687b ldr r3, [r7, #4]
8013d9c: 6c1b ldr r3, [r3, #64] ; 0x40
8013d9e: 2b00 cmp r3, #0
8013da0: d101 bne.n 8013da6 <HAL_RCCEx_PeriphCLKConfig+0xc6>
{
pllsaiused = 1;
8013da2: 2301 movs r3, #1
8013da4: 61bb str r3, [r7, #24]
}
}
/*-------------------------------------- SPDIF-RX Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SPDIFRX) == RCC_PERIPHCLK_SPDIFRX)
8013da6: 687b ldr r3, [r7, #4]
8013da8: 681b ldr r3, [r3, #0]
8013daa: f003 7380 and.w r3, r3, #16777216 ; 0x1000000
8013dae: 2b00 cmp r3, #0
8013db0: d001 beq.n 8013db6 <HAL_RCCEx_PeriphCLKConfig+0xd6>
{
plli2sused = 1;
8013db2: 2301 movs r3, #1
8013db4: 61fb str r3, [r7, #28]
}
/*------------------------------------ RTC configuration --------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RTC) == (RCC_PERIPHCLK_RTC))
8013db6: 687b ldr r3, [r7, #4]
8013db8: 681b ldr r3, [r3, #0]
8013dba: f003 0320 and.w r3, r3, #32
8013dbe: 2b00 cmp r3, #0
8013dc0: f000 808b beq.w 8013eda <HAL_RCCEx_PeriphCLKConfig+0x1fa>
{
/* Check for RTC Parameters used to output RTCCLK */
assert_param(IS_RCC_RTCCLKSOURCE(PeriphClkInit->RTCClockSelection));
/* Enable Power Clock*/
__HAL_RCC_PWR_CLK_ENABLE();
8013dc4: 4a3a ldr r2, [pc, #232] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013dc6: 4b3a ldr r3, [pc, #232] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013dc8: 6c1b ldr r3, [r3, #64] ; 0x40
8013dca: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
8013dce: 6413 str r3, [r2, #64] ; 0x40
8013dd0: 4b37 ldr r3, [pc, #220] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013dd2: 6c1b ldr r3, [r3, #64] ; 0x40
8013dd4: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
8013dd8: 60bb str r3, [r7, #8]
8013dda: 68bb ldr r3, [r7, #8]
/* Enable write access to Backup domain */
PWR->CR1 |= PWR_CR1_DBP;
8013ddc: 4a35 ldr r2, [pc, #212] ; (8013eb4 <HAL_RCCEx_PeriphCLKConfig+0x1d4>)
8013dde: 4b35 ldr r3, [pc, #212] ; (8013eb4 <HAL_RCCEx_PeriphCLKConfig+0x1d4>)
8013de0: 681b ldr r3, [r3, #0]
8013de2: f443 7380 orr.w r3, r3, #256 ; 0x100
8013de6: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013de8: f7fd fbbc bl 8011564 <HAL_GetTick>
8013dec: 6178 str r0, [r7, #20]
/* Wait for Backup domain Write protection disable */
while((PWR->CR1 & PWR_CR1_DBP) == RESET)
8013dee: e008 b.n 8013e02 <HAL_RCCEx_PeriphCLKConfig+0x122>
{
if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE)
8013df0: f7fd fbb8 bl 8011564 <HAL_GetTick>
8013df4: 4602 mov r2, r0
8013df6: 697b ldr r3, [r7, #20]
8013df8: 1ad3 subs r3, r2, r3
8013dfa: 2b64 cmp r3, #100 ; 0x64
8013dfc: d901 bls.n 8013e02 <HAL_RCCEx_PeriphCLKConfig+0x122>
{
return HAL_TIMEOUT;
8013dfe: 2303 movs r3, #3
8013e00: e38d b.n 801451e <HAL_RCCEx_PeriphCLKConfig+0x83e>
while((PWR->CR1 & PWR_CR1_DBP) == RESET)
8013e02: 4b2c ldr r3, [pc, #176] ; (8013eb4 <HAL_RCCEx_PeriphCLKConfig+0x1d4>)
8013e04: 681b ldr r3, [r3, #0]
8013e06: f403 7380 and.w r3, r3, #256 ; 0x100
8013e0a: 2b00 cmp r3, #0
8013e0c: d0f0 beq.n 8013df0 <HAL_RCCEx_PeriphCLKConfig+0x110>
}
}
/* Reset the Backup domain only if the RTC Clock source selection is modified */
tmpreg0 = (RCC->BDCR & RCC_BDCR_RTCSEL);
8013e0e: 4b28 ldr r3, [pc, #160] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013e10: 6f1b ldr r3, [r3, #112] ; 0x70
8013e12: f403 7340 and.w r3, r3, #768 ; 0x300
8013e16: 613b str r3, [r7, #16]
if((tmpreg0 != 0x00000000U) && (tmpreg0 != (PeriphClkInit->RTCClockSelection & RCC_BDCR_RTCSEL)))
8013e18: 693b ldr r3, [r7, #16]
8013e1a: 2b00 cmp r3, #0
8013e1c: d035 beq.n 8013e8a <HAL_RCCEx_PeriphCLKConfig+0x1aa>
8013e1e: 687b ldr r3, [r7, #4]
8013e20: 6b1b ldr r3, [r3, #48] ; 0x30
8013e22: f403 7240 and.w r2, r3, #768 ; 0x300
8013e26: 693b ldr r3, [r7, #16]
8013e28: 429a cmp r2, r3
8013e2a: d02e beq.n 8013e8a <HAL_RCCEx_PeriphCLKConfig+0x1aa>
{
/* Store the content of BDCR register before the reset of Backup Domain */
tmpreg0 = (RCC->BDCR & ~(RCC_BDCR_RTCSEL));
8013e2c: 4b20 ldr r3, [pc, #128] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013e2e: 6f1b ldr r3, [r3, #112] ; 0x70
8013e30: f423 7340 bic.w r3, r3, #768 ; 0x300
8013e34: 613b str r3, [r7, #16]
/* RTC Clock selection can be changed only if the Backup Domain is reset */
__HAL_RCC_BACKUPRESET_FORCE();
8013e36: 4a1e ldr r2, [pc, #120] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013e38: 4b1d ldr r3, [pc, #116] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013e3a: 6f1b ldr r3, [r3, #112] ; 0x70
8013e3c: f443 3380 orr.w r3, r3, #65536 ; 0x10000
8013e40: 6713 str r3, [r2, #112] ; 0x70
__HAL_RCC_BACKUPRESET_RELEASE();
8013e42: 4a1b ldr r2, [pc, #108] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013e44: 4b1a ldr r3, [pc, #104] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013e46: 6f1b ldr r3, [r3, #112] ; 0x70
8013e48: f423 3380 bic.w r3, r3, #65536 ; 0x10000
8013e4c: 6713 str r3, [r2, #112] ; 0x70
/* Restore the Content of BDCR register */
RCC->BDCR = tmpreg0;
8013e4e: 4a18 ldr r2, [pc, #96] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013e50: 693b ldr r3, [r7, #16]
8013e52: 6713 str r3, [r2, #112] ; 0x70
/* Wait for LSE reactivation if LSE was enable prior to Backup Domain reset */
if (HAL_IS_BIT_SET(RCC->BDCR, RCC_BDCR_LSEON))
8013e54: 4b16 ldr r3, [pc, #88] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013e56: 6f1b ldr r3, [r3, #112] ; 0x70
8013e58: f003 0301 and.w r3, r3, #1
8013e5c: 2b01 cmp r3, #1
8013e5e: d114 bne.n 8013e8a <HAL_RCCEx_PeriphCLKConfig+0x1aa>
{
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013e60: f7fd fb80 bl 8011564 <HAL_GetTick>
8013e64: 6178 str r0, [r7, #20]
/* Wait till LSE is ready */
while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET)
8013e66: e00a b.n 8013e7e <HAL_RCCEx_PeriphCLKConfig+0x19e>
{
if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE)
8013e68: f7fd fb7c bl 8011564 <HAL_GetTick>
8013e6c: 4602 mov r2, r0
8013e6e: 697b ldr r3, [r7, #20]
8013e70: 1ad3 subs r3, r2, r3
8013e72: f241 3288 movw r2, #5000 ; 0x1388
8013e76: 4293 cmp r3, r2
8013e78: d901 bls.n 8013e7e <HAL_RCCEx_PeriphCLKConfig+0x19e>
{
return HAL_TIMEOUT;
8013e7a: 2303 movs r3, #3
8013e7c: e34f b.n 801451e <HAL_RCCEx_PeriphCLKConfig+0x83e>
while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET)
8013e7e: 4b0c ldr r3, [pc, #48] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013e80: 6f1b ldr r3, [r3, #112] ; 0x70
8013e82: f003 0302 and.w r3, r3, #2
8013e86: 2b00 cmp r3, #0
8013e88: d0ee beq.n 8013e68 <HAL_RCCEx_PeriphCLKConfig+0x188>
}
}
}
}
__HAL_RCC_RTC_CONFIG(PeriphClkInit->RTCClockSelection);
8013e8a: 687b ldr r3, [r7, #4]
8013e8c: 6b1b ldr r3, [r3, #48] ; 0x30
8013e8e: f403 7340 and.w r3, r3, #768 ; 0x300
8013e92: f5b3 7f40 cmp.w r3, #768 ; 0x300
8013e96: d111 bne.n 8013ebc <HAL_RCCEx_PeriphCLKConfig+0x1dc>
8013e98: 4805 ldr r0, [pc, #20] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013e9a: 4b05 ldr r3, [pc, #20] ; (8013eb0 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013e9c: 689b ldr r3, [r3, #8]
8013e9e: f423 12f8 bic.w r2, r3, #2031616 ; 0x1f0000
8013ea2: 687b ldr r3, [r7, #4]
8013ea4: 6b19 ldr r1, [r3, #48] ; 0x30
8013ea6: 4b04 ldr r3, [pc, #16] ; (8013eb8 <HAL_RCCEx_PeriphCLKConfig+0x1d8>)
8013ea8: 400b ands r3, r1
8013eaa: 4313 orrs r3, r2
8013eac: 6083 str r3, [r0, #8]
8013eae: e00b b.n 8013ec8 <HAL_RCCEx_PeriphCLKConfig+0x1e8>
8013eb0: 40023800 .word 0x40023800
8013eb4: 40007000 .word 0x40007000
8013eb8: 0ffffcff .word 0x0ffffcff
8013ebc: 4ab2 ldr r2, [pc, #712] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013ebe: 4bb2 ldr r3, [pc, #712] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013ec0: 689b ldr r3, [r3, #8]
8013ec2: f423 13f8 bic.w r3, r3, #2031616 ; 0x1f0000
8013ec6: 6093 str r3, [r2, #8]
8013ec8: 49af ldr r1, [pc, #700] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013eca: 4baf ldr r3, [pc, #700] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013ecc: 6f1a ldr r2, [r3, #112] ; 0x70
8013ece: 687b ldr r3, [r7, #4]
8013ed0: 6b1b ldr r3, [r3, #48] ; 0x30
8013ed2: f3c3 030b ubfx r3, r3, #0, #12
8013ed6: 4313 orrs r3, r2
8013ed8: 670b str r3, [r1, #112] ; 0x70
}
/*------------------------------------ TIM configuration --------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_TIM) == (RCC_PERIPHCLK_TIM))
8013eda: 687b ldr r3, [r7, #4]
8013edc: 681b ldr r3, [r3, #0]
8013ede: f003 0310 and.w r3, r3, #16
8013ee2: 2b00 cmp r3, #0
8013ee4: d010 beq.n 8013f08 <HAL_RCCEx_PeriphCLKConfig+0x228>
{
/* Check the parameters */
assert_param(IS_RCC_TIMPRES(PeriphClkInit->TIMPresSelection));
/* Configure Timer Prescaler */
__HAL_RCC_TIMCLKPRESCALER(PeriphClkInit->TIMPresSelection);
8013ee6: 4aa8 ldr r2, [pc, #672] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013ee8: 4ba7 ldr r3, [pc, #668] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013eea: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
8013eee: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000
8013ef2: f8c2 308c str.w r3, [r2, #140] ; 0x8c
8013ef6: 49a4 ldr r1, [pc, #656] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013ef8: 4ba3 ldr r3, [pc, #652] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013efa: f8d3 208c ldr.w r2, [r3, #140] ; 0x8c
8013efe: 687b ldr r3, [r7, #4]
8013f00: 6b9b ldr r3, [r3, #56] ; 0x38
8013f02: 4313 orrs r3, r2
8013f04: f8c1 308c str.w r3, [r1, #140] ; 0x8c
}
/*-------------------------------------- I2C1 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1)
8013f08: 687b ldr r3, [r7, #4]
8013f0a: 681b ldr r3, [r3, #0]
8013f0c: f403 4380 and.w r3, r3, #16384 ; 0x4000
8013f10: 2b00 cmp r3, #0
8013f12: d00a beq.n 8013f2a <HAL_RCCEx_PeriphCLKConfig+0x24a>
{
/* Check the parameters */
assert_param(IS_RCC_I2C1CLKSOURCE(PeriphClkInit->I2c1ClockSelection));
/* Configure the I2C1 clock source */
__HAL_RCC_I2C1_CONFIG(PeriphClkInit->I2c1ClockSelection);
8013f14: 499c ldr r1, [pc, #624] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013f16: 4b9c ldr r3, [pc, #624] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013f18: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8013f1c: f423 3240 bic.w r2, r3, #196608 ; 0x30000
8013f20: 687b ldr r3, [r7, #4]
8013f22: 6e5b ldr r3, [r3, #100] ; 0x64
8013f24: 4313 orrs r3, r2
8013f26: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- I2C2 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2)
8013f2a: 687b ldr r3, [r7, #4]
8013f2c: 681b ldr r3, [r3, #0]
8013f2e: f403 4300 and.w r3, r3, #32768 ; 0x8000
8013f32: 2b00 cmp r3, #0
8013f34: d00a beq.n 8013f4c <HAL_RCCEx_PeriphCLKConfig+0x26c>
{
/* Check the parameters */
assert_param(IS_RCC_I2C2CLKSOURCE(PeriphClkInit->I2c2ClockSelection));
/* Configure the I2C2 clock source */
__HAL_RCC_I2C2_CONFIG(PeriphClkInit->I2c2ClockSelection);
8013f36: 4994 ldr r1, [pc, #592] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013f38: 4b93 ldr r3, [pc, #588] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013f3a: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8013f3e: f423 2240 bic.w r2, r3, #786432 ; 0xc0000
8013f42: 687b ldr r3, [r7, #4]
8013f44: 6e9b ldr r3, [r3, #104] ; 0x68
8013f46: 4313 orrs r3, r2
8013f48: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- I2C3 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3)
8013f4c: 687b ldr r3, [r7, #4]
8013f4e: 681b ldr r3, [r3, #0]
8013f50: f403 3380 and.w r3, r3, #65536 ; 0x10000
8013f54: 2b00 cmp r3, #0
8013f56: d00a beq.n 8013f6e <HAL_RCCEx_PeriphCLKConfig+0x28e>
{
/* Check the parameters */
assert_param(IS_RCC_I2C3CLKSOURCE(PeriphClkInit->I2c3ClockSelection));
/* Configure the I2C3 clock source */
__HAL_RCC_I2C3_CONFIG(PeriphClkInit->I2c3ClockSelection);
8013f58: 498b ldr r1, [pc, #556] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013f5a: 4b8b ldr r3, [pc, #556] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013f5c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8013f60: f423 1240 bic.w r2, r3, #3145728 ; 0x300000
8013f64: 687b ldr r3, [r7, #4]
8013f66: 6edb ldr r3, [r3, #108] ; 0x6c
8013f68: 4313 orrs r3, r2
8013f6a: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- I2C4 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C4) == RCC_PERIPHCLK_I2C4)
8013f6e: 687b ldr r3, [r7, #4]
8013f70: 681b ldr r3, [r3, #0]
8013f72: f403 3300 and.w r3, r3, #131072 ; 0x20000
8013f76: 2b00 cmp r3, #0
8013f78: d00a beq.n 8013f90 <HAL_RCCEx_PeriphCLKConfig+0x2b0>
{
/* Check the parameters */
assert_param(IS_RCC_I2C4CLKSOURCE(PeriphClkInit->I2c4ClockSelection));
/* Configure the I2C4 clock source */
__HAL_RCC_I2C4_CONFIG(PeriphClkInit->I2c4ClockSelection);
8013f7a: 4983 ldr r1, [pc, #524] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013f7c: 4b82 ldr r3, [pc, #520] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013f7e: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8013f82: f423 0240 bic.w r2, r3, #12582912 ; 0xc00000
8013f86: 687b ldr r3, [r7, #4]
8013f88: 6f1b ldr r3, [r3, #112] ; 0x70
8013f8a: 4313 orrs r3, r2
8013f8c: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- USART1 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1)
8013f90: 687b ldr r3, [r7, #4]
8013f92: 681b ldr r3, [r3, #0]
8013f94: f003 0340 and.w r3, r3, #64 ; 0x40
8013f98: 2b00 cmp r3, #0
8013f9a: d00a beq.n 8013fb2 <HAL_RCCEx_PeriphCLKConfig+0x2d2>
{
/* Check the parameters */
assert_param(IS_RCC_USART1CLKSOURCE(PeriphClkInit->Usart1ClockSelection));
/* Configure the USART1 clock source */
__HAL_RCC_USART1_CONFIG(PeriphClkInit->Usart1ClockSelection);
8013f9c: 497a ldr r1, [pc, #488] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013f9e: 4b7a ldr r3, [pc, #488] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013fa0: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8013fa4: f023 0203 bic.w r2, r3, #3
8013fa8: 687b ldr r3, [r7, #4]
8013faa: 6c5b ldr r3, [r3, #68] ; 0x44
8013fac: 4313 orrs r3, r2
8013fae: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- USART2 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2)
8013fb2: 687b ldr r3, [r7, #4]
8013fb4: 681b ldr r3, [r3, #0]
8013fb6: f003 0380 and.w r3, r3, #128 ; 0x80
8013fba: 2b00 cmp r3, #0
8013fbc: d00a beq.n 8013fd4 <HAL_RCCEx_PeriphCLKConfig+0x2f4>
{
/* Check the parameters */
assert_param(IS_RCC_USART2CLKSOURCE(PeriphClkInit->Usart2ClockSelection));
/* Configure the USART2 clock source */
__HAL_RCC_USART2_CONFIG(PeriphClkInit->Usart2ClockSelection);
8013fbe: 4972 ldr r1, [pc, #456] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013fc0: 4b71 ldr r3, [pc, #452] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013fc2: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8013fc6: f023 020c bic.w r2, r3, #12
8013fca: 687b ldr r3, [r7, #4]
8013fcc: 6c9b ldr r3, [r3, #72] ; 0x48
8013fce: 4313 orrs r3, r2
8013fd0: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- USART3 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART3) == RCC_PERIPHCLK_USART3)
8013fd4: 687b ldr r3, [r7, #4]
8013fd6: 681b ldr r3, [r3, #0]
8013fd8: f403 7380 and.w r3, r3, #256 ; 0x100
8013fdc: 2b00 cmp r3, #0
8013fde: d00a beq.n 8013ff6 <HAL_RCCEx_PeriphCLKConfig+0x316>
{
/* Check the parameters */
assert_param(IS_RCC_USART3CLKSOURCE(PeriphClkInit->Usart3ClockSelection));
/* Configure the USART3 clock source */
__HAL_RCC_USART3_CONFIG(PeriphClkInit->Usart3ClockSelection);
8013fe0: 4969 ldr r1, [pc, #420] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013fe2: 4b69 ldr r3, [pc, #420] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013fe4: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8013fe8: f023 0230 bic.w r2, r3, #48 ; 0x30
8013fec: 687b ldr r3, [r7, #4]
8013fee: 6cdb ldr r3, [r3, #76] ; 0x4c
8013ff0: 4313 orrs r3, r2
8013ff2: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- UART4 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART4) == RCC_PERIPHCLK_UART4)
8013ff6: 687b ldr r3, [r7, #4]
8013ff8: 681b ldr r3, [r3, #0]
8013ffa: f403 7300 and.w r3, r3, #512 ; 0x200
8013ffe: 2b00 cmp r3, #0
8014000: d00a beq.n 8014018 <HAL_RCCEx_PeriphCLKConfig+0x338>
{
/* Check the parameters */
assert_param(IS_RCC_UART4CLKSOURCE(PeriphClkInit->Uart4ClockSelection));
/* Configure the UART4 clock source */
__HAL_RCC_UART4_CONFIG(PeriphClkInit->Uart4ClockSelection);
8014002: 4961 ldr r1, [pc, #388] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014004: 4b60 ldr r3, [pc, #384] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014006: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
801400a: f023 02c0 bic.w r2, r3, #192 ; 0xc0
801400e: 687b ldr r3, [r7, #4]
8014010: 6d1b ldr r3, [r3, #80] ; 0x50
8014012: 4313 orrs r3, r2
8014014: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- UART5 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART5) == RCC_PERIPHCLK_UART5)
8014018: 687b ldr r3, [r7, #4]
801401a: 681b ldr r3, [r3, #0]
801401c: f403 6380 and.w r3, r3, #1024 ; 0x400
8014020: 2b00 cmp r3, #0
8014022: d00a beq.n 801403a <HAL_RCCEx_PeriphCLKConfig+0x35a>
{
/* Check the parameters */
assert_param(IS_RCC_UART5CLKSOURCE(PeriphClkInit->Uart5ClockSelection));
/* Configure the UART5 clock source */
__HAL_RCC_UART5_CONFIG(PeriphClkInit->Uart5ClockSelection);
8014024: 4958 ldr r1, [pc, #352] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014026: 4b58 ldr r3, [pc, #352] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014028: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
801402c: f423 7240 bic.w r2, r3, #768 ; 0x300
8014030: 687b ldr r3, [r7, #4]
8014032: 6d5b ldr r3, [r3, #84] ; 0x54
8014034: 4313 orrs r3, r2
8014036: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- USART6 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART6) == RCC_PERIPHCLK_USART6)
801403a: 687b ldr r3, [r7, #4]
801403c: 681b ldr r3, [r3, #0]
801403e: f403 6300 and.w r3, r3, #2048 ; 0x800
8014042: 2b00 cmp r3, #0
8014044: d00a beq.n 801405c <HAL_RCCEx_PeriphCLKConfig+0x37c>
{
/* Check the parameters */
assert_param(IS_RCC_USART6CLKSOURCE(PeriphClkInit->Usart6ClockSelection));
/* Configure the USART6 clock source */
__HAL_RCC_USART6_CONFIG(PeriphClkInit->Usart6ClockSelection);
8014046: 4950 ldr r1, [pc, #320] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014048: 4b4f ldr r3, [pc, #316] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801404a: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
801404e: f423 6240 bic.w r2, r3, #3072 ; 0xc00
8014052: 687b ldr r3, [r7, #4]
8014054: 6d9b ldr r3, [r3, #88] ; 0x58
8014056: 4313 orrs r3, r2
8014058: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- UART7 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART7) == RCC_PERIPHCLK_UART7)
801405c: 687b ldr r3, [r7, #4]
801405e: 681b ldr r3, [r3, #0]
8014060: f403 5380 and.w r3, r3, #4096 ; 0x1000
8014064: 2b00 cmp r3, #0
8014066: d00a beq.n 801407e <HAL_RCCEx_PeriphCLKConfig+0x39e>
{
/* Check the parameters */
assert_param(IS_RCC_UART7CLKSOURCE(PeriphClkInit->Uart7ClockSelection));
/* Configure the UART7 clock source */
__HAL_RCC_UART7_CONFIG(PeriphClkInit->Uart7ClockSelection);
8014068: 4947 ldr r1, [pc, #284] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801406a: 4b47 ldr r3, [pc, #284] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801406c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8014070: f423 5240 bic.w r2, r3, #12288 ; 0x3000
8014074: 687b ldr r3, [r7, #4]
8014076: 6ddb ldr r3, [r3, #92] ; 0x5c
8014078: 4313 orrs r3, r2
801407a: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- UART8 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART8) == RCC_PERIPHCLK_UART8)
801407e: 687b ldr r3, [r7, #4]
8014080: 681b ldr r3, [r3, #0]
8014082: f403 5300 and.w r3, r3, #8192 ; 0x2000
8014086: 2b00 cmp r3, #0
8014088: d00a beq.n 80140a0 <HAL_RCCEx_PeriphCLKConfig+0x3c0>
{
/* Check the parameters */
assert_param(IS_RCC_UART8CLKSOURCE(PeriphClkInit->Uart8ClockSelection));
/* Configure the UART8 clock source */
__HAL_RCC_UART8_CONFIG(PeriphClkInit->Uart8ClockSelection);
801408a: 493f ldr r1, [pc, #252] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801408c: 4b3e ldr r3, [pc, #248] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801408e: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8014092: f423 4240 bic.w r2, r3, #49152 ; 0xc000
8014096: 687b ldr r3, [r7, #4]
8014098: 6e1b ldr r3, [r3, #96] ; 0x60
801409a: 4313 orrs r3, r2
801409c: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*--------------------------------------- CEC Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CEC) == RCC_PERIPHCLK_CEC)
80140a0: 687b ldr r3, [r7, #4]
80140a2: 681b ldr r3, [r3, #0]
80140a4: f403 0380 and.w r3, r3, #4194304 ; 0x400000
80140a8: 2b00 cmp r3, #0
80140aa: d00a beq.n 80140c2 <HAL_RCCEx_PeriphCLKConfig+0x3e2>
{
/* Check the parameters */
assert_param(IS_RCC_CECCLKSOURCE(PeriphClkInit->CecClockSelection));
/* Configure the CEC clock source */
__HAL_RCC_CEC_CONFIG(PeriphClkInit->CecClockSelection);
80140ac: 4936 ldr r1, [pc, #216] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80140ae: 4b36 ldr r3, [pc, #216] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80140b0: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80140b4: f023 6280 bic.w r2, r3, #67108864 ; 0x4000000
80140b8: 687b ldr r3, [r7, #4]
80140ba: 6f9b ldr r3, [r3, #120] ; 0x78
80140bc: 4313 orrs r3, r2
80140be: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- CK48 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CLK48) == RCC_PERIPHCLK_CLK48)
80140c2: 687b ldr r3, [r7, #4]
80140c4: 681b ldr r3, [r3, #0]
80140c6: f403 1300 and.w r3, r3, #2097152 ; 0x200000
80140ca: 2b00 cmp r3, #0
80140cc: d011 beq.n 80140f2 <HAL_RCCEx_PeriphCLKConfig+0x412>
{
/* Check the parameters */
assert_param(IS_RCC_CLK48SOURCE(PeriphClkInit->Clk48ClockSelection));
/* Configure the CLK48 source */
__HAL_RCC_CLK48_CONFIG(PeriphClkInit->Clk48ClockSelection);
80140ce: 492e ldr r1, [pc, #184] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80140d0: 4b2d ldr r3, [pc, #180] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80140d2: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80140d6: f023 6200 bic.w r2, r3, #134217728 ; 0x8000000
80140da: 687b ldr r3, [r7, #4]
80140dc: 6fdb ldr r3, [r3, #124] ; 0x7c
80140de: 4313 orrs r3, r2
80140e0: f8c1 3090 str.w r3, [r1, #144] ; 0x90
/* Enable the PLLSAI when it's used as clock source for CK48 */
if(PeriphClkInit->Clk48ClockSelection == RCC_CLK48SOURCE_PLLSAIP)
80140e4: 687b ldr r3, [r7, #4]
80140e6: 6fdb ldr r3, [r3, #124] ; 0x7c
80140e8: f1b3 6f00 cmp.w r3, #134217728 ; 0x8000000
80140ec: d101 bne.n 80140f2 <HAL_RCCEx_PeriphCLKConfig+0x412>
{
pllsaiused = 1;
80140ee: 2301 movs r3, #1
80140f0: 61bb str r3, [r7, #24]
}
}
/*-------------------------------------- LTDC Configuration -----------------------------------*/
#if defined(STM32F746xx) || defined(STM32F756xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx) || defined (STM32F750xx)
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LTDC) == RCC_PERIPHCLK_LTDC)
80140f2: 687b ldr r3, [r7, #4]
80140f4: 681b ldr r3, [r3, #0]
80140f6: f003 0308 and.w r3, r3, #8
80140fa: 2b00 cmp r3, #0
80140fc: d001 beq.n 8014102 <HAL_RCCEx_PeriphCLKConfig+0x422>
{
pllsaiused = 1;
80140fe: 2301 movs r3, #1
8014100: 61bb str r3, [r7, #24]
}
#endif /* STM32F746xx || STM32F756xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx || STM32F750xx */
/*-------------------------------------- LPTIM1 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPTIM1) == RCC_PERIPHCLK_LPTIM1)
8014102: 687b ldr r3, [r7, #4]
8014104: 681b ldr r3, [r3, #0]
8014106: f403 2380 and.w r3, r3, #262144 ; 0x40000
801410a: 2b00 cmp r3, #0
801410c: d00a beq.n 8014124 <HAL_RCCEx_PeriphCLKConfig+0x444>
{
/* Check the parameters */
assert_param(IS_RCC_LPTIM1CLK(PeriphClkInit->Lptim1ClockSelection));
/* Configure the LTPIM1 clock source */
__HAL_RCC_LPTIM1_CONFIG(PeriphClkInit->Lptim1ClockSelection);
801410e: 491e ldr r1, [pc, #120] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014110: 4b1d ldr r3, [pc, #116] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014112: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8014116: f023 7240 bic.w r2, r3, #50331648 ; 0x3000000
801411a: 687b ldr r3, [r7, #4]
801411c: 6f5b ldr r3, [r3, #116] ; 0x74
801411e: 4313 orrs r3, r2
8014120: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*------------------------------------- SDMMC1 Configuration ------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SDMMC1) == RCC_PERIPHCLK_SDMMC1)
8014124: 687b ldr r3, [r7, #4]
8014126: 681b ldr r3, [r3, #0]
8014128: f403 0300 and.w r3, r3, #8388608 ; 0x800000
801412c: 2b00 cmp r3, #0
801412e: d00b beq.n 8014148 <HAL_RCCEx_PeriphCLKConfig+0x468>
{
/* Check the parameters */
assert_param(IS_RCC_SDMMC1CLKSOURCE(PeriphClkInit->Sdmmc1ClockSelection));
/* Configure the SDMMC1 clock source */
__HAL_RCC_SDMMC1_CONFIG(PeriphClkInit->Sdmmc1ClockSelection);
8014130: 4915 ldr r1, [pc, #84] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014132: 4b15 ldr r3, [pc, #84] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014134: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8014138: f023 5280 bic.w r2, r3, #268435456 ; 0x10000000
801413c: 687b ldr r3, [r7, #4]
801413e: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
8014142: 4313 orrs r3, r2
8014144: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
#if defined (STM32F765xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx)
/*------------------------------------- SDMMC2 Configuration ------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SDMMC2) == RCC_PERIPHCLK_SDMMC2)
8014148: 687b ldr r3, [r7, #4]
801414a: 681b ldr r3, [r3, #0]
801414c: f003 6380 and.w r3, r3, #67108864 ; 0x4000000
8014150: 2b00 cmp r3, #0
8014152: d00b beq.n 801416c <HAL_RCCEx_PeriphCLKConfig+0x48c>
{
/* Check the parameters */
assert_param(IS_RCC_SDMMC2CLKSOURCE(PeriphClkInit->Sdmmc2ClockSelection));
/* Configure the SDMMC2 clock source */
__HAL_RCC_SDMMC2_CONFIG(PeriphClkInit->Sdmmc2ClockSelection);
8014154: 490c ldr r1, [pc, #48] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014156: 4b0c ldr r3, [pc, #48] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014158: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
801415c: f023 5200 bic.w r2, r3, #536870912 ; 0x20000000
8014160: 687b ldr r3, [r7, #4]
8014162: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
8014166: 4313 orrs r3, r2
8014168: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*------------------------------------- DFSDM1 Configuration -------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_DFSDM1) == RCC_PERIPHCLK_DFSDM1)
801416c: 687b ldr r3, [r7, #4]
801416e: 681b ldr r3, [r3, #0]
8014170: f003 6300 and.w r3, r3, #134217728 ; 0x8000000
8014174: 2b00 cmp r3, #0
8014176: d00e beq.n 8014196 <HAL_RCCEx_PeriphCLKConfig+0x4b6>
{
/* Check the parameters */
assert_param(IS_RCC_DFSDM1CLKSOURCE(PeriphClkInit->Dfsdm1ClockSelection));
/* Configure the DFSDM1 interface clock source */
__HAL_RCC_DFSDM1_CONFIG(PeriphClkInit->Dfsdm1ClockSelection);
8014178: 4903 ldr r1, [pc, #12] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801417a: 4b03 ldr r3, [pc, #12] ; (8014188 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801417c: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
8014180: f023 7200 bic.w r2, r3, #33554432 ; 0x2000000
8014184: 687b ldr r3, [r7, #4]
8014186: e001 b.n 801418c <HAL_RCCEx_PeriphCLKConfig+0x4ac>
8014188: 40023800 .word 0x40023800
801418c: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
8014190: 4313 orrs r3, r2
8014192: f8c1 308c str.w r3, [r1, #140] ; 0x8c
}
/*------------------------------------- DFSDM AUDIO Configuration -------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_DFSDM1_AUDIO) == RCC_PERIPHCLK_DFSDM1_AUDIO)
8014196: 687b ldr r3, [r7, #4]
8014198: 681b ldr r3, [r3, #0]
801419a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
801419e: 2b00 cmp r3, #0
80141a0: d00b beq.n 80141ba <HAL_RCCEx_PeriphCLKConfig+0x4da>
{
/* Check the parameters */
assert_param(IS_RCC_DFSDM1AUDIOCLKSOURCE(PeriphClkInit->Dfsdm1AudioClockSelection));
/* Configure the DFSDM interface clock source */
__HAL_RCC_DFSDM1AUDIO_CONFIG(PeriphClkInit->Dfsdm1AudioClockSelection);
80141a2: 4981 ldr r1, [pc, #516] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80141a4: 4b80 ldr r3, [pc, #512] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80141a6: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
80141aa: f023 6280 bic.w r2, r3, #67108864 ; 0x4000000
80141ae: 687b ldr r3, [r7, #4]
80141b0: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
80141b4: 4313 orrs r3, r2
80141b6: f8c1 308c str.w r3, [r1, #140] ; 0x8c
}
#endif /* STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx */
/*-------------------------------------- PLLI2S Configuration ---------------------------------*/
/* PLLI2S is configured when a peripheral will use it as source clock : SAI1, SAI2, I2S or SPDIF-RX */
if((plli2sused == 1) || ((PeriphClkInit->PeriphClockSelection & RCC_PERIPHCLK_PLLI2S) == RCC_PERIPHCLK_PLLI2S))
80141ba: 69fb ldr r3, [r7, #28]
80141bc: 2b01 cmp r3, #1
80141be: d006 beq.n 80141ce <HAL_RCCEx_PeriphCLKConfig+0x4ee>
80141c0: 687b ldr r3, [r7, #4]
80141c2: 681b ldr r3, [r3, #0]
80141c4: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
80141c8: 2b00 cmp r3, #0
80141ca: f000 80d6 beq.w 801437a <HAL_RCCEx_PeriphCLKConfig+0x69a>
{
/* Disable the PLLI2S */
__HAL_RCC_PLLI2S_DISABLE();
80141ce: 4a76 ldr r2, [pc, #472] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80141d0: 4b75 ldr r3, [pc, #468] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80141d2: 681b ldr r3, [r3, #0]
80141d4: f023 6380 bic.w r3, r3, #67108864 ; 0x4000000
80141d8: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
80141da: f7fd f9c3 bl 8011564 <HAL_GetTick>
80141de: 6178 str r0, [r7, #20]
/* Wait till PLLI2S is disabled */
while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) != RESET)
80141e0: e008 b.n 80141f4 <HAL_RCCEx_PeriphCLKConfig+0x514>
{
if((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE)
80141e2: f7fd f9bf bl 8011564 <HAL_GetTick>
80141e6: 4602 mov r2, r0
80141e8: 697b ldr r3, [r7, #20]
80141ea: 1ad3 subs r3, r2, r3
80141ec: 2b64 cmp r3, #100 ; 0x64
80141ee: d901 bls.n 80141f4 <HAL_RCCEx_PeriphCLKConfig+0x514>
{
/* return in case of Timeout detected */
return HAL_TIMEOUT;
80141f0: 2303 movs r3, #3
80141f2: e194 b.n 801451e <HAL_RCCEx_PeriphCLKConfig+0x83e>
while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) != RESET)
80141f4: 4b6c ldr r3, [pc, #432] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80141f6: 681b ldr r3, [r3, #0]
80141f8: f003 6300 and.w r3, r3, #134217728 ; 0x8000000
80141fc: 2b00 cmp r3, #0
80141fe: d1f0 bne.n 80141e2 <HAL_RCCEx_PeriphCLKConfig+0x502>
/* check for common PLLI2S Parameters */
assert_param(IS_RCC_PLLI2SN_VALUE(PeriphClkInit->PLLI2S.PLLI2SN));
/*----------------- In Case of PLLI2S is selected as source clock for I2S -------------------*/
if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2S) == RCC_PERIPHCLK_I2S) && (PeriphClkInit->I2sClockSelection == RCC_I2SCLKSOURCE_PLLI2S)))
8014200: 687b ldr r3, [r7, #4]
8014202: 681b ldr r3, [r3, #0]
8014204: f003 0301 and.w r3, r3, #1
8014208: 2b00 cmp r3, #0
801420a: d021 beq.n 8014250 <HAL_RCCEx_PeriphCLKConfig+0x570>
801420c: 687b ldr r3, [r7, #4]
801420e: 6b5b ldr r3, [r3, #52] ; 0x34
8014210: 2b00 cmp r3, #0
8014212: d11d bne.n 8014250 <HAL_RCCEx_PeriphCLKConfig+0x570>
{
/* check for Parameters */
assert_param(IS_RCC_PLLI2SR_VALUE(PeriphClkInit->PLLI2S.PLLI2SR));
/* Read PLLI2SP and PLLI2SQ value from PLLI2SCFGR register (this value is not needed for I2S configuration) */
tmpreg0 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SP) >> RCC_PLLI2SCFGR_PLLI2SP_Pos);
8014214: 4b64 ldr r3, [pc, #400] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014216: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
801421a: 0c1b lsrs r3, r3, #16
801421c: f003 0303 and.w r3, r3, #3
8014220: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SQ) >> RCC_PLLI2SCFGR_PLLI2SQ_Pos);
8014222: 4b61 ldr r3, [pc, #388] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014224: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
8014228: 0e1b lsrs r3, r3, #24
801422a: f003 030f and.w r3, r3, #15
801422e: 60fb str r3, [r7, #12]
/* Configure the PLLI2S division factors */
/* PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) x (PLLI2SN/PLLM) */
/* I2SCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SR */
__HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN , tmpreg0, tmpreg1, PeriphClkInit->PLLI2S.PLLI2SR);
8014230: 495d ldr r1, [pc, #372] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014232: 687b ldr r3, [r7, #4]
8014234: 685b ldr r3, [r3, #4]
8014236: 019a lsls r2, r3, #6
8014238: 693b ldr r3, [r7, #16]
801423a: 041b lsls r3, r3, #16
801423c: 431a orrs r2, r3
801423e: 68fb ldr r3, [r7, #12]
8014240: 061b lsls r3, r3, #24
8014242: 431a orrs r2, r3
8014244: 687b ldr r3, [r7, #4]
8014246: 689b ldr r3, [r3, #8]
8014248: 071b lsls r3, r3, #28
801424a: 4313 orrs r3, r2
801424c: f8c1 3084 str.w r3, [r1, #132] ; 0x84
}
/*----------------- In Case of PLLI2S is selected as source clock for SAI -------------------*/
if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLI2S)) ||
8014250: 687b ldr r3, [r7, #4]
8014252: 681b ldr r3, [r3, #0]
8014254: f403 2300 and.w r3, r3, #524288 ; 0x80000
8014258: 2b00 cmp r3, #0
801425a: d004 beq.n 8014266 <HAL_RCCEx_PeriphCLKConfig+0x586>
801425c: 687b ldr r3, [r7, #4]
801425e: 6bdb ldr r3, [r3, #60] ; 0x3c
8014260: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000
8014264: d00a beq.n 801427c <HAL_RCCEx_PeriphCLKConfig+0x59c>
((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S)))
8014266: 687b ldr r3, [r7, #4]
8014268: 681b ldr r3, [r3, #0]
801426a: f403 1380 and.w r3, r3, #1048576 ; 0x100000
if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLI2S)) ||
801426e: 2b00 cmp r3, #0
8014270: d02e beq.n 80142d0 <HAL_RCCEx_PeriphCLKConfig+0x5f0>
((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S)))
8014272: 687b ldr r3, [r7, #4]
8014274: 6c1b ldr r3, [r3, #64] ; 0x40
8014276: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000
801427a: d129 bne.n 80142d0 <HAL_RCCEx_PeriphCLKConfig+0x5f0>
assert_param(IS_RCC_PLLI2SQ_VALUE(PeriphClkInit->PLLI2S.PLLI2SQ));
/* Check for PLLI2S/DIVQ parameters */
assert_param(IS_RCC_PLLI2S_DIVQ_VALUE(PeriphClkInit->PLLI2SDivQ));
/* Read PLLI2SP and PLLI2SR values from PLLI2SCFGR register (this value is not needed for SAI configuration) */
tmpreg0 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SP) >> RCC_PLLI2SCFGR_PLLI2SP_Pos);
801427c: 4b4a ldr r3, [pc, #296] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
801427e: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
8014282: 0c1b lsrs r3, r3, #16
8014284: f003 0303 and.w r3, r3, #3
8014288: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLI2SCFGR_PLLI2SR_Pos);
801428a: 4b47 ldr r3, [pc, #284] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
801428c: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
8014290: 0f1b lsrs r3, r3, #28
8014292: f003 0307 and.w r3, r3, #7
8014296: 60fb str r3, [r7, #12]
/* Configure the PLLI2S division factors */
/* PLLI2S_VCO Input = PLL_SOURCE/PLLM */
/* PLLI2S_VCO Output = PLLI2S_VCO Input * PLLI2SN */
/* SAI_CLK(first level) = PLLI2S_VCO Output/PLLI2SQ */
__HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN, tmpreg0, PeriphClkInit->PLLI2S.PLLI2SQ, tmpreg1);
8014298: 4943 ldr r1, [pc, #268] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
801429a: 687b ldr r3, [r7, #4]
801429c: 685b ldr r3, [r3, #4]
801429e: 019a lsls r2, r3, #6
80142a0: 693b ldr r3, [r7, #16]
80142a2: 041b lsls r3, r3, #16
80142a4: 431a orrs r2, r3
80142a6: 687b ldr r3, [r7, #4]
80142a8: 68db ldr r3, [r3, #12]
80142aa: 061b lsls r3, r3, #24
80142ac: 431a orrs r2, r3
80142ae: 68fb ldr r3, [r7, #12]
80142b0: 071b lsls r3, r3, #28
80142b2: 4313 orrs r3, r2
80142b4: f8c1 3084 str.w r3, [r1, #132] ; 0x84
/* SAI_CLK_x = SAI_CLK(first level)/PLLI2SDIVQ */
__HAL_RCC_PLLI2S_PLLSAICLKDIVQ_CONFIG(PeriphClkInit->PLLI2SDivQ);
80142b8: 493b ldr r1, [pc, #236] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80142ba: 4b3b ldr r3, [pc, #236] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80142bc: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
80142c0: f023 021f bic.w r2, r3, #31
80142c4: 687b ldr r3, [r7, #4]
80142c6: 6a5b ldr r3, [r3, #36] ; 0x24
80142c8: 3b01 subs r3, #1
80142ca: 4313 orrs r3, r2
80142cc: f8c1 308c str.w r3, [r1, #140] ; 0x8c
}
/*----------------- In Case of PLLI2S is selected as source clock for SPDIF-RX -------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SPDIFRX) == RCC_PERIPHCLK_SPDIFRX)
80142d0: 687b ldr r3, [r7, #4]
80142d2: 681b ldr r3, [r3, #0]
80142d4: f003 7380 and.w r3, r3, #16777216 ; 0x1000000
80142d8: 2b00 cmp r3, #0
80142da: d01d beq.n 8014318 <HAL_RCCEx_PeriphCLKConfig+0x638>
{
/* check for Parameters */
assert_param(IS_RCC_PLLI2SP_VALUE(PeriphClkInit->PLLI2S.PLLI2SP));
/* Read PLLI2SR value from PLLI2SCFGR register (this value is not needed for SPDIF-RX configuration) */
tmpreg0 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SQ) >> RCC_PLLI2SCFGR_PLLI2SQ_Pos);
80142dc: 4b32 ldr r3, [pc, #200] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80142de: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
80142e2: 0e1b lsrs r3, r3, #24
80142e4: f003 030f and.w r3, r3, #15
80142e8: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLI2SCFGR_PLLI2SR_Pos);
80142ea: 4b2f ldr r3, [pc, #188] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80142ec: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
80142f0: 0f1b lsrs r3, r3, #28
80142f2: f003 0307 and.w r3, r3, #7
80142f6: 60fb str r3, [r7, #12]
/* Configure the PLLI2S division factors */
/* PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) x (PLLI2SN/PLLM) */
/* SPDIFCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SP */
__HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN , PeriphClkInit->PLLI2S.PLLI2SP, tmpreg0, tmpreg1);
80142f8: 492b ldr r1, [pc, #172] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80142fa: 687b ldr r3, [r7, #4]
80142fc: 685b ldr r3, [r3, #4]
80142fe: 019a lsls r2, r3, #6
8014300: 687b ldr r3, [r7, #4]
8014302: 691b ldr r3, [r3, #16]
8014304: 041b lsls r3, r3, #16
8014306: 431a orrs r2, r3
8014308: 693b ldr r3, [r7, #16]
801430a: 061b lsls r3, r3, #24
801430c: 431a orrs r2, r3
801430e: 68fb ldr r3, [r7, #12]
8014310: 071b lsls r3, r3, #28
8014312: 4313 orrs r3, r2
8014314: f8c1 3084 str.w r3, [r1, #132] ; 0x84
}
/*----------------- In Case of PLLI2S is just selected -----------------*/
if((PeriphClkInit->PeriphClockSelection & RCC_PERIPHCLK_PLLI2S) == RCC_PERIPHCLK_PLLI2S)
8014318: 687b ldr r3, [r7, #4]
801431a: 681b ldr r3, [r3, #0]
801431c: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
8014320: 2b00 cmp r3, #0
8014322: d011 beq.n 8014348 <HAL_RCCEx_PeriphCLKConfig+0x668>
assert_param(IS_RCC_PLLI2SQ_VALUE(PeriphClkInit->PLLI2S.PLLI2SQ));
/* Configure the PLLI2S division factors */
/* PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) x (PLLI2SN/PLLI2SM) */
/* SPDIFRXCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SP */
__HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN , PeriphClkInit->PLLI2S.PLLI2SP, PeriphClkInit->PLLI2S.PLLI2SQ, PeriphClkInit->PLLI2S.PLLI2SR);
8014324: 4920 ldr r1, [pc, #128] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014326: 687b ldr r3, [r7, #4]
8014328: 685b ldr r3, [r3, #4]
801432a: 019a lsls r2, r3, #6
801432c: 687b ldr r3, [r7, #4]
801432e: 691b ldr r3, [r3, #16]
8014330: 041b lsls r3, r3, #16
8014332: 431a orrs r2, r3
8014334: 687b ldr r3, [r7, #4]
8014336: 68db ldr r3, [r3, #12]
8014338: 061b lsls r3, r3, #24
801433a: 431a orrs r2, r3
801433c: 687b ldr r3, [r7, #4]
801433e: 689b ldr r3, [r3, #8]
8014340: 071b lsls r3, r3, #28
8014342: 4313 orrs r3, r2
8014344: f8c1 3084 str.w r3, [r1, #132] ; 0x84
}
/* Enable the PLLI2S */
__HAL_RCC_PLLI2S_ENABLE();
8014348: 4a17 ldr r2, [pc, #92] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
801434a: 4b17 ldr r3, [pc, #92] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
801434c: 681b ldr r3, [r3, #0]
801434e: f043 6380 orr.w r3, r3, #67108864 ; 0x4000000
8014352: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
8014354: f7fd f906 bl 8011564 <HAL_GetTick>
8014358: 6178 str r0, [r7, #20]
/* Wait till PLLI2S is ready */
while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) == RESET)
801435a: e008 b.n 801436e <HAL_RCCEx_PeriphCLKConfig+0x68e>
{
if((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE)
801435c: f7fd f902 bl 8011564 <HAL_GetTick>
8014360: 4602 mov r2, r0
8014362: 697b ldr r3, [r7, #20]
8014364: 1ad3 subs r3, r2, r3
8014366: 2b64 cmp r3, #100 ; 0x64
8014368: d901 bls.n 801436e <HAL_RCCEx_PeriphCLKConfig+0x68e>
{
/* return in case of Timeout detected */
return HAL_TIMEOUT;
801436a: 2303 movs r3, #3
801436c: e0d7 b.n 801451e <HAL_RCCEx_PeriphCLKConfig+0x83e>
while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) == RESET)
801436e: 4b0e ldr r3, [pc, #56] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014370: 681b ldr r3, [r3, #0]
8014372: f003 6300 and.w r3, r3, #134217728 ; 0x8000000
8014376: 2b00 cmp r3, #0
8014378: d0f0 beq.n 801435c <HAL_RCCEx_PeriphCLKConfig+0x67c>
}
}
/*-------------------------------------- PLLSAI Configuration ---------------------------------*/
/* PLLSAI is configured when a peripheral will use it as source clock : SAI1, SAI2, LTDC or CK48 */
if(pllsaiused == 1)
801437a: 69bb ldr r3, [r7, #24]
801437c: 2b01 cmp r3, #1
801437e: f040 80cd bne.w 801451c <HAL_RCCEx_PeriphCLKConfig+0x83c>
{
/* Disable PLLSAI Clock */
__HAL_RCC_PLLSAI_DISABLE();
8014382: 4a09 ldr r2, [pc, #36] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014384: 4b08 ldr r3, [pc, #32] ; (80143a8 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014386: 681b ldr r3, [r3, #0]
8014388: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000
801438c: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
801438e: f7fd f8e9 bl 8011564 <HAL_GetTick>
8014392: 6178 str r0, [r7, #20]
/* Wait till PLLSAI is disabled */
while(__HAL_RCC_PLLSAI_GET_FLAG() != RESET)
8014394: e00a b.n 80143ac <HAL_RCCEx_PeriphCLKConfig+0x6cc>
{
if((HAL_GetTick() - tickstart) > PLLSAI_TIMEOUT_VALUE)
8014396: f7fd f8e5 bl 8011564 <HAL_GetTick>
801439a: 4602 mov r2, r0
801439c: 697b ldr r3, [r7, #20]
801439e: 1ad3 subs r3, r2, r3
80143a0: 2b64 cmp r3, #100 ; 0x64
80143a2: d903 bls.n 80143ac <HAL_RCCEx_PeriphCLKConfig+0x6cc>
{
/* return in case of Timeout detected */
return HAL_TIMEOUT;
80143a4: 2303 movs r3, #3
80143a6: e0ba b.n 801451e <HAL_RCCEx_PeriphCLKConfig+0x83e>
80143a8: 40023800 .word 0x40023800
while(__HAL_RCC_PLLSAI_GET_FLAG() != RESET)
80143ac: 4b5e ldr r3, [pc, #376] ; (8014528 <HAL_RCCEx_PeriphCLKConfig+0x848>)
80143ae: 681b ldr r3, [r3, #0]
80143b0: f003 5300 and.w r3, r3, #536870912 ; 0x20000000
80143b4: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000
80143b8: d0ed beq.n 8014396 <HAL_RCCEx_PeriphCLKConfig+0x6b6>
/* Check the PLLSAI division factors */
assert_param(IS_RCC_PLLSAIN_VALUE(PeriphClkInit->PLLSAI.PLLSAIN));
/*----------------- In Case of PLLSAI is selected as source clock for SAI -------------------*/
if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI)) ||\
80143ba: 687b ldr r3, [r7, #4]
80143bc: 681b ldr r3, [r3, #0]
80143be: f403 2300 and.w r3, r3, #524288 ; 0x80000
80143c2: 2b00 cmp r3, #0
80143c4: d003 beq.n 80143ce <HAL_RCCEx_PeriphCLKConfig+0x6ee>
80143c6: 687b ldr r3, [r7, #4]
80143c8: 6bdb ldr r3, [r3, #60] ; 0x3c
80143ca: 2b00 cmp r3, #0
80143cc: d009 beq.n 80143e2 <HAL_RCCEx_PeriphCLKConfig+0x702>
((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI)))
80143ce: 687b ldr r3, [r7, #4]
80143d0: 681b ldr r3, [r3, #0]
80143d2: f403 1380 and.w r3, r3, #1048576 ; 0x100000
if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI)) ||\
80143d6: 2b00 cmp r3, #0
80143d8: d02e beq.n 8014438 <HAL_RCCEx_PeriphCLKConfig+0x758>
((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI)))
80143da: 687b ldr r3, [r7, #4]
80143dc: 6c1b ldr r3, [r3, #64] ; 0x40
80143de: 2b00 cmp r3, #0
80143e0: d12a bne.n 8014438 <HAL_RCCEx_PeriphCLKConfig+0x758>
assert_param(IS_RCC_PLLSAIQ_VALUE(PeriphClkInit->PLLSAI.PLLSAIQ));
/* check for PLLSAI/DIVQ Parameter */
assert_param(IS_RCC_PLLSAI_DIVQ_VALUE(PeriphClkInit->PLLSAIDivQ));
/* Read PLLSAIP value from PLLSAICFGR register (this value is not needed for SAI configuration) */
tmpreg0 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIP) >> RCC_PLLSAICFGR_PLLSAIP_Pos);
80143e2: 4b51 ldr r3, [pc, #324] ; (8014528 <HAL_RCCEx_PeriphCLKConfig+0x848>)
80143e4: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
80143e8: 0c1b lsrs r3, r3, #16
80143ea: f003 0303 and.w r3, r3, #3
80143ee: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLSAICFGR_PLLSAIR_Pos);
80143f0: 4b4d ldr r3, [pc, #308] ; (8014528 <HAL_RCCEx_PeriphCLKConfig+0x848>)
80143f2: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
80143f6: 0f1b lsrs r3, r3, #28
80143f8: f003 0307 and.w r3, r3, #7
80143fc: 60fb str r3, [r7, #12]
/* PLLSAI_VCO Input = PLL_SOURCE/PLLM */
/* PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAIN */
/* SAI_CLK(first level) = PLLSAI_VCO Output/PLLSAIQ */
__HAL_RCC_PLLSAI_CONFIG(PeriphClkInit->PLLSAI.PLLSAIN , tmpreg0, PeriphClkInit->PLLSAI.PLLSAIQ, tmpreg1);
80143fe: 494a ldr r1, [pc, #296] ; (8014528 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014400: 687b ldr r3, [r7, #4]
8014402: 695b ldr r3, [r3, #20]
8014404: 019a lsls r2, r3, #6
8014406: 693b ldr r3, [r7, #16]
8014408: 041b lsls r3, r3, #16
801440a: 431a orrs r2, r3
801440c: 687b ldr r3, [r7, #4]
801440e: 699b ldr r3, [r3, #24]
8014410: 061b lsls r3, r3, #24
8014412: 431a orrs r2, r3
8014414: 68fb ldr r3, [r7, #12]
8014416: 071b lsls r3, r3, #28
8014418: 4313 orrs r3, r2
801441a: f8c1 3088 str.w r3, [r1, #136] ; 0x88
/* SAI_CLK_x = SAI_CLK(first level)/PLLSAIDIVQ */
__HAL_RCC_PLLSAI_PLLSAICLKDIVQ_CONFIG(PeriphClkInit->PLLSAIDivQ);
801441e: 4942 ldr r1, [pc, #264] ; (8014528 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014420: 4b41 ldr r3, [pc, #260] ; (8014528 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014422: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
8014426: f423 52f8 bic.w r2, r3, #7936 ; 0x1f00
801442a: 687b ldr r3, [r7, #4]
801442c: 6a9b ldr r3, [r3, #40] ; 0x28
801442e: 3b01 subs r3, #1
8014430: 021b lsls r3, r3, #8
8014432: 4313 orrs r3, r2
8014434: f8c1 308c str.w r3, [r1, #140] ; 0x8c
}
/*----------------- In Case of PLLSAI is selected as source clock for CLK48 -------------------*/
/* In Case of PLLI2S is selected as source clock for CK48 */
if((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CLK48) == RCC_PERIPHCLK_CLK48) && (PeriphClkInit->Clk48ClockSelection == RCC_CLK48SOURCE_PLLSAIP))
8014438: 687b ldr r3, [r7, #4]
801443a: 681b ldr r3, [r3, #0]
801443c: f403 1300 and.w r3, r3, #2097152 ; 0x200000
8014440: 2b00 cmp r3, #0
8014442: d022 beq.n 801448a <HAL_RCCEx_PeriphCLKConfig+0x7aa>
8014444: 687b ldr r3, [r7, #4]
8014446: 6fdb ldr r3, [r3, #124] ; 0x7c
8014448: f1b3 6f00 cmp.w r3, #134217728 ; 0x8000000
801444c: d11d bne.n 801448a <HAL_RCCEx_PeriphCLKConfig+0x7aa>
{
/* check for Parameters */
assert_param(IS_RCC_PLLSAIP_VALUE(PeriphClkInit->PLLSAI.PLLSAIP));
/* Read PLLSAIQ and PLLSAIR value from PLLSAICFGR register (this value is not needed for CK48 configuration) */
tmpreg0 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIQ) >> RCC_PLLSAICFGR_PLLSAIQ_Pos);
801444e: 4b36 ldr r3, [pc, #216] ; (8014528 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014450: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
8014454: 0e1b lsrs r3, r3, #24
8014456: f003 030f and.w r3, r3, #15
801445a: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIR) >> RCC_PLLSAICFGR_PLLSAIR_Pos);
801445c: 4b32 ldr r3, [pc, #200] ; (8014528 <HAL_RCCEx_PeriphCLKConfig+0x848>)
801445e: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
8014462: 0f1b lsrs r3, r3, #28
8014464: f003 0307 and.w r3, r3, #7
8014468: 60fb str r3, [r7, #12]
/* Configure the PLLSAI division factors */
/* PLLSAI_VCO = f(VCO clock) = f(PLLSAI clock input) x (PLLI2SN/PLLM) */
/* 48CLK = f(PLLSAI clock output) = f(VCO clock) / PLLSAIP */
__HAL_RCC_PLLSAI_CONFIG(PeriphClkInit->PLLSAI.PLLSAIN , PeriphClkInit->PLLSAI.PLLSAIP, tmpreg0, tmpreg1);
801446a: 492f ldr r1, [pc, #188] ; (8014528 <HAL_RCCEx_PeriphCLKConfig+0x848>)
801446c: 687b ldr r3, [r7, #4]
801446e: 695b ldr r3, [r3, #20]
8014470: 019a lsls r2, r3, #6
8014472: 687b ldr r3, [r7, #4]
8014474: 6a1b ldr r3, [r3, #32]
8014476: 041b lsls r3, r3, #16
8014478: 431a orrs r2, r3
801447a: 693b ldr r3, [r7, #16]
801447c: 061b lsls r3, r3, #24
801447e: 431a orrs r2, r3
8014480: 68fb ldr r3, [r7, #12]
8014482: 071b lsls r3, r3, #28
8014484: 4313 orrs r3, r2
8014486: f8c1 3088 str.w r3, [r1, #136] ; 0x88
}
#if defined(STM32F746xx) || defined(STM32F756xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx) || defined (STM32F750xx)
/*---------------------------- LTDC configuration -------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LTDC) == (RCC_PERIPHCLK_LTDC))
801448a: 687b ldr r3, [r7, #4]
801448c: 681b ldr r3, [r3, #0]
801448e: f003 0308 and.w r3, r3, #8
8014492: 2b00 cmp r3, #0
8014494: d028 beq.n 80144e8 <HAL_RCCEx_PeriphCLKConfig+0x808>
{
assert_param(IS_RCC_PLLSAIR_VALUE(PeriphClkInit->PLLSAI.PLLSAIR));
assert_param(IS_RCC_PLLSAI_DIVR_VALUE(PeriphClkInit->PLLSAIDivR));
/* Read PLLSAIP and PLLSAIQ value from PLLSAICFGR register (these value are not needed for LTDC configuration) */
tmpreg0 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIQ) >> RCC_PLLSAICFGR_PLLSAIQ_Pos);
8014496: 4b24 ldr r3, [pc, #144] ; (8014528 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014498: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
801449c: 0e1b lsrs r3, r3, #24
801449e: f003 030f and.w r3, r3, #15
80144a2: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIP) >> RCC_PLLSAICFGR_PLLSAIP_Pos);
80144a4: 4b20 ldr r3, [pc, #128] ; (8014528 <HAL_RCCEx_PeriphCLKConfig+0x848>)
80144a6: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
80144aa: 0c1b lsrs r3, r3, #16
80144ac: f003 0303 and.w r3, r3, #3
80144b0: 60fb str r3, [r7, #12]
/* PLLSAI_VCO Input = PLL_SOURCE/PLLM */
/* PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAIN */
/* LTDC_CLK(first level) = PLLSAI_VCO Output/PLLSAIR */
__HAL_RCC_PLLSAI_CONFIG(PeriphClkInit->PLLSAI.PLLSAIN , tmpreg1, tmpreg0, PeriphClkInit->PLLSAI.PLLSAIR);
80144b2: 491d ldr r1, [pc, #116] ; (8014528 <HAL_RCCEx_PeriphCLKConfig+0x848>)
80144b4: 687b ldr r3, [r7, #4]
80144b6: 695b ldr r3, [r3, #20]
80144b8: 019a lsls r2, r3, #6
80144ba: 68fb ldr r3, [r7, #12]
80144bc: 041b lsls r3, r3, #16
80144be: 431a orrs r2, r3
80144c0: 693b ldr r3, [r7, #16]
80144c2: 061b lsls r3, r3, #24
80144c4: 431a orrs r2, r3
80144c6: 687b ldr r3, [r7, #4]
80144c8: 69db ldr r3, [r3, #28]
80144ca: 071b lsls r3, r3, #28
80144cc: 4313 orrs r3, r2
80144ce: f8c1 3088 str.w r3, [r1, #136] ; 0x88
/* LTDC_CLK = LTDC_CLK(first level)/PLLSAIDIVR */
__HAL_RCC_PLLSAI_PLLSAICLKDIVR_CONFIG(PeriphClkInit->PLLSAIDivR);
80144d2: 4915 ldr r1, [pc, #84] ; (8014528 <HAL_RCCEx_PeriphCLKConfig+0x848>)
80144d4: 4b14 ldr r3, [pc, #80] ; (8014528 <HAL_RCCEx_PeriphCLKConfig+0x848>)
80144d6: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
80144da: f423 3240 bic.w r2, r3, #196608 ; 0x30000
80144de: 687b ldr r3, [r7, #4]
80144e0: 6adb ldr r3, [r3, #44] ; 0x2c
80144e2: 4313 orrs r3, r2
80144e4: f8c1 308c str.w r3, [r1, #140] ; 0x8c
}
#endif /* STM32F746xx || STM32F756xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx || STM32F750xx */
/* Enable PLLSAI Clock */
__HAL_RCC_PLLSAI_ENABLE();
80144e8: 4a0f ldr r2, [pc, #60] ; (8014528 <HAL_RCCEx_PeriphCLKConfig+0x848>)
80144ea: 4b0f ldr r3, [pc, #60] ; (8014528 <HAL_RCCEx_PeriphCLKConfig+0x848>)
80144ec: 681b ldr r3, [r3, #0]
80144ee: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
80144f2: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
80144f4: f7fd f836 bl 8011564 <HAL_GetTick>
80144f8: 6178 str r0, [r7, #20]
/* Wait till PLLSAI is ready */
while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET)
80144fa: e008 b.n 801450e <HAL_RCCEx_PeriphCLKConfig+0x82e>
{
if((HAL_GetTick() - tickstart) > PLLSAI_TIMEOUT_VALUE)
80144fc: f7fd f832 bl 8011564 <HAL_GetTick>
8014500: 4602 mov r2, r0
8014502: 697b ldr r3, [r7, #20]
8014504: 1ad3 subs r3, r2, r3
8014506: 2b64 cmp r3, #100 ; 0x64
8014508: d901 bls.n 801450e <HAL_RCCEx_PeriphCLKConfig+0x82e>
{
/* return in case of Timeout detected */
return HAL_TIMEOUT;
801450a: 2303 movs r3, #3
801450c: e007 b.n 801451e <HAL_RCCEx_PeriphCLKConfig+0x83e>
while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET)
801450e: 4b06 ldr r3, [pc, #24] ; (8014528 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014510: 681b ldr r3, [r3, #0]
8014512: f003 5300 and.w r3, r3, #536870912 ; 0x20000000
8014516: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000
801451a: d1ef bne.n 80144fc <HAL_RCCEx_PeriphCLKConfig+0x81c>
}
}
}
return HAL_OK;
801451c: 2300 movs r3, #0
}
801451e: 4618 mov r0, r3
8014520: 3720 adds r7, #32
8014522: 46bd mov sp, r7
8014524: bd80 pop {r7, pc}
8014526: bf00 nop
8014528: 40023800 .word 0x40023800
0801452c <HAL_TIM_Base_Init>:
* Ex: call @ref HAL_TIM_Base_DeInit() before HAL_TIM_Base_Init()
* @param htim TIM Base handle
* @retval HAL status
*/
HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim)
{
801452c: b580 push {r7, lr}
801452e: b082 sub sp, #8
8014530: af00 add r7, sp, #0
8014532: 6078 str r0, [r7, #4]
/* Check the TIM handle allocation */
if (htim == NULL)
8014534: 687b ldr r3, [r7, #4]
8014536: 2b00 cmp r3, #0
8014538: d101 bne.n 801453e <HAL_TIM_Base_Init+0x12>
{
return HAL_ERROR;
801453a: 2301 movs r3, #1
801453c: e049 b.n 80145d2 <HAL_TIM_Base_Init+0xa6>
assert_param(IS_TIM_INSTANCE(htim->Instance));
assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode));
assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision));
assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload));
if (htim->State == HAL_TIM_STATE_RESET)
801453e: 687b ldr r3, [r7, #4]
8014540: f893 303d ldrb.w r3, [r3, #61] ; 0x3d
8014544: b2db uxtb r3, r3
8014546: 2b00 cmp r3, #0
8014548: d106 bne.n 8014558 <HAL_TIM_Base_Init+0x2c>
{
/* Allocate lock resource and initialize it */
htim->Lock = HAL_UNLOCKED;
801454a: 687b ldr r3, [r7, #4]
801454c: 2200 movs r2, #0
801454e: f883 203c strb.w r2, [r3, #60] ; 0x3c
}
/* Init the low level hardware : GPIO, CLOCK, NVIC */
htim->Base_MspInitCallback(htim);
#else
/* Init the low level hardware : GPIO, CLOCK, NVIC */
HAL_TIM_Base_MspInit(htim);
8014552: 6878 ldr r0, [r7, #4]
8014554: f7fb fa18 bl 800f988 <HAL_TIM_Base_MspInit>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
/* Set the TIM state */
htim->State = HAL_TIM_STATE_BUSY;
8014558: 687b ldr r3, [r7, #4]
801455a: 2202 movs r2, #2
801455c: f883 203d strb.w r2, [r3, #61] ; 0x3d
/* Set the Time Base configuration */
TIM_Base_SetConfig(htim->Instance, &htim->Init);
8014560: 687b ldr r3, [r7, #4]
8014562: 681a ldr r2, [r3, #0]
8014564: 687b ldr r3, [r7, #4]
8014566: 3304 adds r3, #4
8014568: 4619 mov r1, r3
801456a: 4610 mov r0, r2
801456c: f000 f9f6 bl 801495c <TIM_Base_SetConfig>
/* Initialize the DMA burst operation state */
htim->DMABurstState = HAL_DMA_BURST_STATE_READY;
8014570: 687b ldr r3, [r7, #4]
8014572: 2201 movs r2, #1
8014574: f883 2048 strb.w r2, [r3, #72] ; 0x48
/* Initialize the TIM channels state */
TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY);
8014578: 687b ldr r3, [r7, #4]
801457a: 2201 movs r2, #1
801457c: f883 203e strb.w r2, [r3, #62] ; 0x3e
8014580: 687b ldr r3, [r7, #4]
8014582: 2201 movs r2, #1
8014584: f883 203f strb.w r2, [r3, #63] ; 0x3f
8014588: 687b ldr r3, [r7, #4]
801458a: 2201 movs r2, #1
801458c: f883 2040 strb.w r2, [r3, #64] ; 0x40
8014590: 687b ldr r3, [r7, #4]
8014592: 2201 movs r2, #1
8014594: f883 2041 strb.w r2, [r3, #65] ; 0x41
8014598: 687b ldr r3, [r7, #4]
801459a: 2201 movs r2, #1
801459c: f883 2042 strb.w r2, [r3, #66] ; 0x42
80145a0: 687b ldr r3, [r7, #4]
80145a2: 2201 movs r2, #1
80145a4: f883 2043 strb.w r2, [r3, #67] ; 0x43
TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY);
80145a8: 687b ldr r3, [r7, #4]
80145aa: 2201 movs r2, #1
80145ac: f883 2044 strb.w r2, [r3, #68] ; 0x44
80145b0: 687b ldr r3, [r7, #4]
80145b2: 2201 movs r2, #1
80145b4: f883 2045 strb.w r2, [r3, #69] ; 0x45
80145b8: 687b ldr r3, [r7, #4]
80145ba: 2201 movs r2, #1
80145bc: f883 2046 strb.w r2, [r3, #70] ; 0x46
80145c0: 687b ldr r3, [r7, #4]
80145c2: 2201 movs r2, #1
80145c4: f883 2047 strb.w r2, [r3, #71] ; 0x47
/* Initialize the TIM state*/
htim->State = HAL_TIM_STATE_READY;
80145c8: 687b ldr r3, [r7, #4]
80145ca: 2201 movs r2, #1
80145cc: f883 203d strb.w r2, [r3, #61] ; 0x3d
return HAL_OK;
80145d0: 2300 movs r3, #0
}
80145d2: 4618 mov r0, r3
80145d4: 3708 adds r7, #8
80145d6: 46bd mov sp, r7
80145d8: bd80 pop {r7, pc}
...
080145dc <HAL_TIM_Base_Start_IT>:
* @brief Starts the TIM Base generation in interrupt mode.
* @param htim TIM Base handle
* @retval HAL status
*/
HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim)
{
80145dc: b480 push {r7}
80145de: b085 sub sp, #20
80145e0: af00 add r7, sp, #0
80145e2: 6078 str r0, [r7, #4]
/* Check the parameters */
assert_param(IS_TIM_INSTANCE(htim->Instance));
/* Check the TIM state */
if (htim->State != HAL_TIM_STATE_READY)
80145e4: 687b ldr r3, [r7, #4]
80145e6: f893 303d ldrb.w r3, [r3, #61] ; 0x3d
80145ea: b2db uxtb r3, r3
80145ec: 2b01 cmp r3, #1
80145ee: d001 beq.n 80145f4 <HAL_TIM_Base_Start_IT+0x18>
{
return HAL_ERROR;
80145f0: 2301 movs r3, #1
80145f2: e054 b.n 801469e <HAL_TIM_Base_Start_IT+0xc2>
}
/* Set the TIM state */
htim->State = HAL_TIM_STATE_BUSY;
80145f4: 687b ldr r3, [r7, #4]
80145f6: 2202 movs r2, #2
80145f8: f883 203d strb.w r2, [r3, #61] ; 0x3d
/* Enable the TIM Update interrupt */
__HAL_TIM_ENABLE_IT(htim, TIM_IT_UPDATE);
80145fc: 687b ldr r3, [r7, #4]
80145fe: 681b ldr r3, [r3, #0]
8014600: 687a ldr r2, [r7, #4]
8014602: 6812 ldr r2, [r2, #0]
8014604: 68d2 ldr r2, [r2, #12]
8014606: f042 0201 orr.w r2, r2, #1
801460a: 60da str r2, [r3, #12]
/* Enable the Peripheral, except in trigger mode where enable is automatically done with trigger */
if (IS_TIM_SLAVE_INSTANCE(htim->Instance))
801460c: 687b ldr r3, [r7, #4]
801460e: 681b ldr r3, [r3, #0]
8014610: 4a26 ldr r2, [pc, #152] ; (80146ac <HAL_TIM_Base_Start_IT+0xd0>)
8014612: 4293 cmp r3, r2
8014614: d022 beq.n 801465c <HAL_TIM_Base_Start_IT+0x80>
8014616: 687b ldr r3, [r7, #4]
8014618: 681b ldr r3, [r3, #0]
801461a: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000
801461e: d01d beq.n 801465c <HAL_TIM_Base_Start_IT+0x80>
8014620: 687b ldr r3, [r7, #4]
8014622: 681b ldr r3, [r3, #0]
8014624: 4a22 ldr r2, [pc, #136] ; (80146b0 <HAL_TIM_Base_Start_IT+0xd4>)
8014626: 4293 cmp r3, r2
8014628: d018 beq.n 801465c <HAL_TIM_Base_Start_IT+0x80>
801462a: 687b ldr r3, [r7, #4]
801462c: 681b ldr r3, [r3, #0]
801462e: 4a21 ldr r2, [pc, #132] ; (80146b4 <HAL_TIM_Base_Start_IT+0xd8>)
8014630: 4293 cmp r3, r2
8014632: d013 beq.n 801465c <HAL_TIM_Base_Start_IT+0x80>
8014634: 687b ldr r3, [r7, #4]
8014636: 681b ldr r3, [r3, #0]
8014638: 4a1f ldr r2, [pc, #124] ; (80146b8 <HAL_TIM_Base_Start_IT+0xdc>)
801463a: 4293 cmp r3, r2
801463c: d00e beq.n 801465c <HAL_TIM_Base_Start_IT+0x80>
801463e: 687b ldr r3, [r7, #4]
8014640: 681b ldr r3, [r3, #0]
8014642: 4a1e ldr r2, [pc, #120] ; (80146bc <HAL_TIM_Base_Start_IT+0xe0>)
8014644: 4293 cmp r3, r2
8014646: d009 beq.n 801465c <HAL_TIM_Base_Start_IT+0x80>
8014648: 687b ldr r3, [r7, #4]
801464a: 681b ldr r3, [r3, #0]
801464c: 4a1c ldr r2, [pc, #112] ; (80146c0 <HAL_TIM_Base_Start_IT+0xe4>)
801464e: 4293 cmp r3, r2
8014650: d004 beq.n 801465c <HAL_TIM_Base_Start_IT+0x80>
8014652: 687b ldr r3, [r7, #4]
8014654: 681b ldr r3, [r3, #0]
8014656: 4a1b ldr r2, [pc, #108] ; (80146c4 <HAL_TIM_Base_Start_IT+0xe8>)
8014658: 4293 cmp r3, r2
801465a: d115 bne.n 8014688 <HAL_TIM_Base_Start_IT+0xac>
{
tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
801465c: 687b ldr r3, [r7, #4]
801465e: 681b ldr r3, [r3, #0]
8014660: 689a ldr r2, [r3, #8]
8014662: 4b19 ldr r3, [pc, #100] ; (80146c8 <HAL_TIM_Base_Start_IT+0xec>)
8014664: 4013 ands r3, r2
8014666: 60fb str r3, [r7, #12]
if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
8014668: 68fb ldr r3, [r7, #12]
801466a: 2b06 cmp r3, #6
801466c: d015 beq.n 801469a <HAL_TIM_Base_Start_IT+0xbe>
801466e: 68fb ldr r3, [r7, #12]
8014670: f5b3 3f80 cmp.w r3, #65536 ; 0x10000
8014674: d011 beq.n 801469a <HAL_TIM_Base_Start_IT+0xbe>
{
__HAL_TIM_ENABLE(htim);
8014676: 687b ldr r3, [r7, #4]
8014678: 681b ldr r3, [r3, #0]
801467a: 687a ldr r2, [r7, #4]
801467c: 6812 ldr r2, [r2, #0]
801467e: 6812 ldr r2, [r2, #0]
8014680: f042 0201 orr.w r2, r2, #1
8014684: 601a str r2, [r3, #0]
if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
8014686: e008 b.n 801469a <HAL_TIM_Base_Start_IT+0xbe>
}
}
else
{
__HAL_TIM_ENABLE(htim);
8014688: 687b ldr r3, [r7, #4]
801468a: 681b ldr r3, [r3, #0]
801468c: 687a ldr r2, [r7, #4]
801468e: 6812 ldr r2, [r2, #0]
8014690: 6812 ldr r2, [r2, #0]
8014692: f042 0201 orr.w r2, r2, #1
8014696: 601a str r2, [r3, #0]
8014698: e000 b.n 801469c <HAL_TIM_Base_Start_IT+0xc0>
if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
801469a: bf00 nop
}
/* Return function status */
return HAL_OK;
801469c: 2300 movs r3, #0
}
801469e: 4618 mov r0, r3
80146a0: 3714 adds r7, #20
80146a2: 46bd mov sp, r7
80146a4: f85d 7b04 ldr.w r7, [sp], #4
80146a8: 4770 bx lr
80146aa: bf00 nop
80146ac: 40010000 .word 0x40010000
80146b0: 40000400 .word 0x40000400
80146b4: 40000800 .word 0x40000800
80146b8: 40000c00 .word 0x40000c00
80146bc: 40010400 .word 0x40010400
80146c0: 40014000 .word 0x40014000
80146c4: 40001800 .word 0x40001800
80146c8: 00010007 .word 0x00010007
080146cc <HAL_TIM_IRQHandler>:
* @brief This function handles TIM interrupts requests.
* @param htim TIM handle
* @retval None
*/
void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim)
{
80146cc: b580 push {r7, lr}
80146ce: b082 sub sp, #8
80146d0: af00 add r7, sp, #0
80146d2: 6078 str r0, [r7, #4]
/* Capture compare 1 event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1) != RESET)
80146d4: 687b ldr r3, [r7, #4]
80146d6: 681b ldr r3, [r3, #0]
80146d8: 691b ldr r3, [r3, #16]
80146da: f003 0302 and.w r3, r3, #2
80146de: 2b02 cmp r3, #2
80146e0: d122 bne.n 8014728 <HAL_TIM_IRQHandler+0x5c>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC1) != RESET)
80146e2: 687b ldr r3, [r7, #4]
80146e4: 681b ldr r3, [r3, #0]
80146e6: 68db ldr r3, [r3, #12]
80146e8: f003 0302 and.w r3, r3, #2
80146ec: 2b02 cmp r3, #2
80146ee: d11b bne.n 8014728 <HAL_TIM_IRQHandler+0x5c>
{
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_CC1);
80146f0: 687b ldr r3, [r7, #4]
80146f2: 681b ldr r3, [r3, #0]
80146f4: f06f 0202 mvn.w r2, #2
80146f8: 611a str r2, [r3, #16]
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1;
80146fa: 687b ldr r3, [r7, #4]
80146fc: 2201 movs r2, #1
80146fe: 771a strb r2, [r3, #28]
/* Input capture event */
if ((htim->Instance->CCMR1 & TIM_CCMR1_CC1S) != 0x00U)
8014700: 687b ldr r3, [r7, #4]
8014702: 681b ldr r3, [r3, #0]
8014704: 699b ldr r3, [r3, #24]
8014706: f003 0303 and.w r3, r3, #3
801470a: 2b00 cmp r3, #0
801470c: d003 beq.n 8014716 <HAL_TIM_IRQHandler+0x4a>
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->IC_CaptureCallback(htim);
#else
HAL_TIM_IC_CaptureCallback(htim);
801470e: 6878 ldr r0, [r7, #4]
8014710: f000 f905 bl 801491e <HAL_TIM_IC_CaptureCallback>
8014714: e005 b.n 8014722 <HAL_TIM_IRQHandler+0x56>
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->OC_DelayElapsedCallback(htim);
htim->PWM_PulseFinishedCallback(htim);
#else
HAL_TIM_OC_DelayElapsedCallback(htim);
8014716: 6878 ldr r0, [r7, #4]
8014718: f000 f8f7 bl 801490a <HAL_TIM_OC_DelayElapsedCallback>
HAL_TIM_PWM_PulseFinishedCallback(htim);
801471c: 6878 ldr r0, [r7, #4]
801471e: f000 f908 bl 8014932 <HAL_TIM_PWM_PulseFinishedCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
8014722: 687b ldr r3, [r7, #4]
8014724: 2200 movs r2, #0
8014726: 771a strb r2, [r3, #28]
}
}
}
/* Capture compare 2 event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC2) != RESET)
8014728: 687b ldr r3, [r7, #4]
801472a: 681b ldr r3, [r3, #0]
801472c: 691b ldr r3, [r3, #16]
801472e: f003 0304 and.w r3, r3, #4
8014732: 2b04 cmp r3, #4
8014734: d122 bne.n 801477c <HAL_TIM_IRQHandler+0xb0>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC2) != RESET)
8014736: 687b ldr r3, [r7, #4]
8014738: 681b ldr r3, [r3, #0]
801473a: 68db ldr r3, [r3, #12]
801473c: f003 0304 and.w r3, r3, #4
8014740: 2b04 cmp r3, #4
8014742: d11b bne.n 801477c <HAL_TIM_IRQHandler+0xb0>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_CC2);
8014744: 687b ldr r3, [r7, #4]
8014746: 681b ldr r3, [r3, #0]
8014748: f06f 0204 mvn.w r2, #4
801474c: 611a str r2, [r3, #16]
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2;
801474e: 687b ldr r3, [r7, #4]
8014750: 2202 movs r2, #2
8014752: 771a strb r2, [r3, #28]
/* Input capture event */
if ((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U)
8014754: 687b ldr r3, [r7, #4]
8014756: 681b ldr r3, [r3, #0]
8014758: 699b ldr r3, [r3, #24]
801475a: f403 7340 and.w r3, r3, #768 ; 0x300
801475e: 2b00 cmp r3, #0
8014760: d003 beq.n 801476a <HAL_TIM_IRQHandler+0x9e>
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->IC_CaptureCallback(htim);
#else
HAL_TIM_IC_CaptureCallback(htim);
8014762: 6878 ldr r0, [r7, #4]
8014764: f000 f8db bl 801491e <HAL_TIM_IC_CaptureCallback>
8014768: e005 b.n 8014776 <HAL_TIM_IRQHandler+0xaa>
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->OC_DelayElapsedCallback(htim);
htim->PWM_PulseFinishedCallback(htim);
#else
HAL_TIM_OC_DelayElapsedCallback(htim);
801476a: 6878 ldr r0, [r7, #4]
801476c: f000 f8cd bl 801490a <HAL_TIM_OC_DelayElapsedCallback>
HAL_TIM_PWM_PulseFinishedCallback(htim);
8014770: 6878 ldr r0, [r7, #4]
8014772: f000 f8de bl 8014932 <HAL_TIM_PWM_PulseFinishedCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
8014776: 687b ldr r3, [r7, #4]
8014778: 2200 movs r2, #0
801477a: 771a strb r2, [r3, #28]
}
}
/* Capture compare 3 event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC3) != RESET)
801477c: 687b ldr r3, [r7, #4]
801477e: 681b ldr r3, [r3, #0]
8014780: 691b ldr r3, [r3, #16]
8014782: f003 0308 and.w r3, r3, #8
8014786: 2b08 cmp r3, #8
8014788: d122 bne.n 80147d0 <HAL_TIM_IRQHandler+0x104>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC3) != RESET)
801478a: 687b ldr r3, [r7, #4]
801478c: 681b ldr r3, [r3, #0]
801478e: 68db ldr r3, [r3, #12]
8014790: f003 0308 and.w r3, r3, #8
8014794: 2b08 cmp r3, #8
8014796: d11b bne.n 80147d0 <HAL_TIM_IRQHandler+0x104>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_CC3);
8014798: 687b ldr r3, [r7, #4]
801479a: 681b ldr r3, [r3, #0]
801479c: f06f 0208 mvn.w r2, #8
80147a0: 611a str r2, [r3, #16]
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3;
80147a2: 687b ldr r3, [r7, #4]
80147a4: 2204 movs r2, #4
80147a6: 771a strb r2, [r3, #28]
/* Input capture event */
if ((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U)
80147a8: 687b ldr r3, [r7, #4]
80147aa: 681b ldr r3, [r3, #0]
80147ac: 69db ldr r3, [r3, #28]
80147ae: f003 0303 and.w r3, r3, #3
80147b2: 2b00 cmp r3, #0
80147b4: d003 beq.n 80147be <HAL_TIM_IRQHandler+0xf2>
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->IC_CaptureCallback(htim);
#else
HAL_TIM_IC_CaptureCallback(htim);
80147b6: 6878 ldr r0, [r7, #4]
80147b8: f000 f8b1 bl 801491e <HAL_TIM_IC_CaptureCallback>
80147bc: e005 b.n 80147ca <HAL_TIM_IRQHandler+0xfe>
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->OC_DelayElapsedCallback(htim);
htim->PWM_PulseFinishedCallback(htim);
#else
HAL_TIM_OC_DelayElapsedCallback(htim);
80147be: 6878 ldr r0, [r7, #4]
80147c0: f000 f8a3 bl 801490a <HAL_TIM_OC_DelayElapsedCallback>
HAL_TIM_PWM_PulseFinishedCallback(htim);
80147c4: 6878 ldr r0, [r7, #4]
80147c6: f000 f8b4 bl 8014932 <HAL_TIM_PWM_PulseFinishedCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
80147ca: 687b ldr r3, [r7, #4]
80147cc: 2200 movs r2, #0
80147ce: 771a strb r2, [r3, #28]
}
}
/* Capture compare 4 event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC4) != RESET)
80147d0: 687b ldr r3, [r7, #4]
80147d2: 681b ldr r3, [r3, #0]
80147d4: 691b ldr r3, [r3, #16]
80147d6: f003 0310 and.w r3, r3, #16
80147da: 2b10 cmp r3, #16
80147dc: d122 bne.n 8014824 <HAL_TIM_IRQHandler+0x158>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC4) != RESET)
80147de: 687b ldr r3, [r7, #4]
80147e0: 681b ldr r3, [r3, #0]
80147e2: 68db ldr r3, [r3, #12]
80147e4: f003 0310 and.w r3, r3, #16
80147e8: 2b10 cmp r3, #16
80147ea: d11b bne.n 8014824 <HAL_TIM_IRQHandler+0x158>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_CC4);
80147ec: 687b ldr r3, [r7, #4]
80147ee: 681b ldr r3, [r3, #0]
80147f0: f06f 0210 mvn.w r2, #16
80147f4: 611a str r2, [r3, #16]
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4;
80147f6: 687b ldr r3, [r7, #4]
80147f8: 2208 movs r2, #8
80147fa: 771a strb r2, [r3, #28]
/* Input capture event */
if ((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U)
80147fc: 687b ldr r3, [r7, #4]
80147fe: 681b ldr r3, [r3, #0]
8014800: 69db ldr r3, [r3, #28]
8014802: f403 7340 and.w r3, r3, #768 ; 0x300
8014806: 2b00 cmp r3, #0
8014808: d003 beq.n 8014812 <HAL_TIM_IRQHandler+0x146>
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->IC_CaptureCallback(htim);
#else
HAL_TIM_IC_CaptureCallback(htim);
801480a: 6878 ldr r0, [r7, #4]
801480c: f000 f887 bl 801491e <HAL_TIM_IC_CaptureCallback>
8014810: e005 b.n 801481e <HAL_TIM_IRQHandler+0x152>
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->OC_DelayElapsedCallback(htim);
htim->PWM_PulseFinishedCallback(htim);
#else
HAL_TIM_OC_DelayElapsedCallback(htim);
8014812: 6878 ldr r0, [r7, #4]
8014814: f000 f879 bl 801490a <HAL_TIM_OC_DelayElapsedCallback>
HAL_TIM_PWM_PulseFinishedCallback(htim);
8014818: 6878 ldr r0, [r7, #4]
801481a: f000 f88a bl 8014932 <HAL_TIM_PWM_PulseFinishedCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
801481e: 687b ldr r3, [r7, #4]
8014820: 2200 movs r2, #0
8014822: 771a strb r2, [r3, #28]
}
}
/* TIM Update event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_UPDATE) != RESET)
8014824: 687b ldr r3, [r7, #4]
8014826: 681b ldr r3, [r3, #0]
8014828: 691b ldr r3, [r3, #16]
801482a: f003 0301 and.w r3, r3, #1
801482e: 2b01 cmp r3, #1
8014830: d10e bne.n 8014850 <HAL_TIM_IRQHandler+0x184>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_UPDATE) != RESET)
8014832: 687b ldr r3, [r7, #4]
8014834: 681b ldr r3, [r3, #0]
8014836: 68db ldr r3, [r3, #12]
8014838: f003 0301 and.w r3, r3, #1
801483c: 2b01 cmp r3, #1
801483e: d107 bne.n 8014850 <HAL_TIM_IRQHandler+0x184>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE);
8014840: 687b ldr r3, [r7, #4]
8014842: 681b ldr r3, [r3, #0]
8014844: f06f 0201 mvn.w r2, #1
8014848: 611a str r2, [r3, #16]
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->PeriodElapsedCallback(htim);
#else
HAL_TIM_PeriodElapsedCallback(htim);
801484a: 6878 ldr r0, [r7, #4]
801484c: f7fb f8ea bl 800fa24 <HAL_TIM_PeriodElapsedCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
/* TIM Break input event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK) != RESET)
8014850: 687b ldr r3, [r7, #4]
8014852: 681b ldr r3, [r3, #0]
8014854: 691b ldr r3, [r3, #16]
8014856: f003 0380 and.w r3, r3, #128 ; 0x80
801485a: 2b80 cmp r3, #128 ; 0x80
801485c: d10e bne.n 801487c <HAL_TIM_IRQHandler+0x1b0>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET)
801485e: 687b ldr r3, [r7, #4]
8014860: 681b ldr r3, [r3, #0]
8014862: 68db ldr r3, [r3, #12]
8014864: f003 0380 and.w r3, r3, #128 ; 0x80
8014868: 2b80 cmp r3, #128 ; 0x80
801486a: d107 bne.n 801487c <HAL_TIM_IRQHandler+0x1b0>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_BREAK);
801486c: 687b ldr r3, [r7, #4]
801486e: 681b ldr r3, [r3, #0]
8014870: f06f 0280 mvn.w r2, #128 ; 0x80
8014874: 611a str r2, [r3, #16]
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->BreakCallback(htim);
#else
HAL_TIMEx_BreakCallback(htim);
8014876: 6878 ldr r0, [r7, #4]
8014878: f000 f9a8 bl 8014bcc <HAL_TIMEx_BreakCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
/* TIM Break2 input event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK2) != RESET)
801487c: 687b ldr r3, [r7, #4]
801487e: 681b ldr r3, [r3, #0]
8014880: 691b ldr r3, [r3, #16]
8014882: f403 7380 and.w r3, r3, #256 ; 0x100
8014886: f5b3 7f80 cmp.w r3, #256 ; 0x100
801488a: d10e bne.n 80148aa <HAL_TIM_IRQHandler+0x1de>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET)
801488c: 687b ldr r3, [r7, #4]
801488e: 681b ldr r3, [r3, #0]
8014890: 68db ldr r3, [r3, #12]
8014892: f003 0380 and.w r3, r3, #128 ; 0x80
8014896: 2b80 cmp r3, #128 ; 0x80
8014898: d107 bne.n 80148aa <HAL_TIM_IRQHandler+0x1de>
{
__HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_BREAK2);
801489a: 687b ldr r3, [r7, #4]
801489c: 681b ldr r3, [r3, #0]
801489e: f46f 7280 mvn.w r2, #256 ; 0x100
80148a2: 611a str r2, [r3, #16]
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->Break2Callback(htim);
#else
HAL_TIMEx_Break2Callback(htim);
80148a4: 6878 ldr r0, [r7, #4]
80148a6: f000 f99b bl 8014be0 <HAL_TIMEx_Break2Callback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
/* TIM Trigger detection event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_TRIGGER) != RESET)
80148aa: 687b ldr r3, [r7, #4]
80148ac: 681b ldr r3, [r3, #0]
80148ae: 691b ldr r3, [r3, #16]
80148b0: f003 0340 and.w r3, r3, #64 ; 0x40
80148b4: 2b40 cmp r3, #64 ; 0x40
80148b6: d10e bne.n 80148d6 <HAL_TIM_IRQHandler+0x20a>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_TRIGGER) != RESET)
80148b8: 687b ldr r3, [r7, #4]
80148ba: 681b ldr r3, [r3, #0]
80148bc: 68db ldr r3, [r3, #12]
80148be: f003 0340 and.w r3, r3, #64 ; 0x40
80148c2: 2b40 cmp r3, #64 ; 0x40
80148c4: d107 bne.n 80148d6 <HAL_TIM_IRQHandler+0x20a>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_TRIGGER);
80148c6: 687b ldr r3, [r7, #4]
80148c8: 681b ldr r3, [r3, #0]
80148ca: f06f 0240 mvn.w r2, #64 ; 0x40
80148ce: 611a str r2, [r3, #16]
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->TriggerCallback(htim);
#else
HAL_TIM_TriggerCallback(htim);
80148d0: 6878 ldr r0, [r7, #4]
80148d2: f000 f838 bl 8014946 <HAL_TIM_TriggerCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
/* TIM commutation event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_COM) != RESET)
80148d6: 687b ldr r3, [r7, #4]
80148d8: 681b ldr r3, [r3, #0]
80148da: 691b ldr r3, [r3, #16]
80148dc: f003 0320 and.w r3, r3, #32
80148e0: 2b20 cmp r3, #32
80148e2: d10e bne.n 8014902 <HAL_TIM_IRQHandler+0x236>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_COM) != RESET)
80148e4: 687b ldr r3, [r7, #4]
80148e6: 681b ldr r3, [r3, #0]
80148e8: 68db ldr r3, [r3, #12]
80148ea: f003 0320 and.w r3, r3, #32
80148ee: 2b20 cmp r3, #32
80148f0: d107 bne.n 8014902 <HAL_TIM_IRQHandler+0x236>
{
__HAL_TIM_CLEAR_IT(htim, TIM_FLAG_COM);
80148f2: 687b ldr r3, [r7, #4]
80148f4: 681b ldr r3, [r3, #0]
80148f6: f06f 0220 mvn.w r2, #32
80148fa: 611a str r2, [r3, #16]
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->CommutationCallback(htim);
#else
HAL_TIMEx_CommutCallback(htim);
80148fc: 6878 ldr r0, [r7, #4]
80148fe: f000 f95b bl 8014bb8 <HAL_TIMEx_CommutCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
}
8014902: bf00 nop
8014904: 3708 adds r7, #8
8014906: 46bd mov sp, r7
8014908: bd80 pop {r7, pc}
0801490a <HAL_TIM_OC_DelayElapsedCallback>:
* @brief Output Compare callback in non-blocking mode
* @param htim TIM OC handle
* @retval None
*/
__weak void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
{
801490a: b480 push {r7}
801490c: b083 sub sp, #12
801490e: af00 add r7, sp, #0
8014910: 6078 str r0, [r7, #4]
UNUSED(htim);
/* NOTE : This function should not be modified, when the callback is needed,
the HAL_TIM_OC_DelayElapsedCallback could be implemented in the user file
*/
}
8014912: bf00 nop
8014914: 370c adds r7, #12
8014916: 46bd mov sp, r7
8014918: f85d 7b04 ldr.w r7, [sp], #4
801491c: 4770 bx lr
0801491e <HAL_TIM_IC_CaptureCallback>:
* @brief Input Capture callback in non-blocking mode
* @param htim TIM IC handle
* @retval None
*/
__weak void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{
801491e: b480 push {r7}
8014920: b083 sub sp, #12
8014922: af00 add r7, sp, #0
8014924: 6078 str r0, [r7, #4]
UNUSED(htim);
/* NOTE : This function should not be modified, when the callback is needed,
the HAL_TIM_IC_CaptureCallback could be implemented in the user file
*/
}
8014926: bf00 nop
8014928: 370c adds r7, #12
801492a: 46bd mov sp, r7
801492c: f85d 7b04 ldr.w r7, [sp], #4
8014930: 4770 bx lr
08014932 <HAL_TIM_PWM_PulseFinishedCallback>:
* @brief PWM Pulse finished callback in non-blocking mode
* @param htim TIM handle
* @retval None
*/
__weak void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
{
8014932: b480 push {r7}
8014934: b083 sub sp, #12
8014936: af00 add r7, sp, #0
8014938: 6078 str r0, [r7, #4]
UNUSED(htim);
/* NOTE : This function should not be modified, when the callback is needed,
the HAL_TIM_PWM_PulseFinishedCallback could be implemented in the user file
*/
}
801493a: bf00 nop
801493c: 370c adds r7, #12
801493e: 46bd mov sp, r7
8014940: f85d 7b04 ldr.w r7, [sp], #4
8014944: 4770 bx lr
08014946 <HAL_TIM_TriggerCallback>:
* @brief Hall Trigger detection callback in non-blocking mode
* @param htim TIM handle
* @retval None
*/
__weak void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim)
{
8014946: b480 push {r7}
8014948: b083 sub sp, #12
801494a: af00 add r7, sp, #0
801494c: 6078 str r0, [r7, #4]
UNUSED(htim);
/* NOTE : This function should not be modified, when the callback is needed,
the HAL_TIM_TriggerCallback could be implemented in the user file
*/
}
801494e: bf00 nop
8014950: 370c adds r7, #12
8014952: 46bd mov sp, r7
8014954: f85d 7b04 ldr.w r7, [sp], #4
8014958: 4770 bx lr
...
0801495c <TIM_Base_SetConfig>:
* @param TIMx TIM peripheral
* @param Structure TIM Base configuration structure
* @retval None
*/
void TIM_Base_SetConfig(TIM_TypeDef *TIMx, TIM_Base_InitTypeDef *Structure)
{
801495c: b480 push {r7}
801495e: b085 sub sp, #20
8014960: af00 add r7, sp, #0
8014962: 6078 str r0, [r7, #4]
8014964: 6039 str r1, [r7, #0]
uint32_t tmpcr1;
tmpcr1 = TIMx->CR1;
8014966: 687b ldr r3, [r7, #4]
8014968: 681b ldr r3, [r3, #0]
801496a: 60fb str r3, [r7, #12]
/* Set TIM Time Base Unit parameters ---------------------------------------*/
if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx))
801496c: 687b ldr r3, [r7, #4]
801496e: 4a40 ldr r2, [pc, #256] ; (8014a70 <TIM_Base_SetConfig+0x114>)
8014970: 4293 cmp r3, r2
8014972: d013 beq.n 801499c <TIM_Base_SetConfig+0x40>
8014974: 687b ldr r3, [r7, #4]
8014976: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000
801497a: d00f beq.n 801499c <TIM_Base_SetConfig+0x40>
801497c: 687b ldr r3, [r7, #4]
801497e: 4a3d ldr r2, [pc, #244] ; (8014a74 <TIM_Base_SetConfig+0x118>)
8014980: 4293 cmp r3, r2
8014982: d00b beq.n 801499c <TIM_Base_SetConfig+0x40>
8014984: 687b ldr r3, [r7, #4]
8014986: 4a3c ldr r2, [pc, #240] ; (8014a78 <TIM_Base_SetConfig+0x11c>)
8014988: 4293 cmp r3, r2
801498a: d007 beq.n 801499c <TIM_Base_SetConfig+0x40>
801498c: 687b ldr r3, [r7, #4]
801498e: 4a3b ldr r2, [pc, #236] ; (8014a7c <TIM_Base_SetConfig+0x120>)
8014990: 4293 cmp r3, r2
8014992: d003 beq.n 801499c <TIM_Base_SetConfig+0x40>
8014994: 687b ldr r3, [r7, #4]
8014996: 4a3a ldr r2, [pc, #232] ; (8014a80 <TIM_Base_SetConfig+0x124>)
8014998: 4293 cmp r3, r2
801499a: d108 bne.n 80149ae <TIM_Base_SetConfig+0x52>
{
/* Select the Counter Mode */
tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS);
801499c: 68fb ldr r3, [r7, #12]
801499e: f023 0370 bic.w r3, r3, #112 ; 0x70
80149a2: 60fb str r3, [r7, #12]
tmpcr1 |= Structure->CounterMode;
80149a4: 683b ldr r3, [r7, #0]
80149a6: 685b ldr r3, [r3, #4]
80149a8: 68fa ldr r2, [r7, #12]
80149aa: 4313 orrs r3, r2
80149ac: 60fb str r3, [r7, #12]
}
if (IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx))
80149ae: 687b ldr r3, [r7, #4]
80149b0: 4a2f ldr r2, [pc, #188] ; (8014a70 <TIM_Base_SetConfig+0x114>)
80149b2: 4293 cmp r3, r2
80149b4: d02b beq.n 8014a0e <TIM_Base_SetConfig+0xb2>
80149b6: 687b ldr r3, [r7, #4]
80149b8: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000
80149bc: d027 beq.n 8014a0e <TIM_Base_SetConfig+0xb2>
80149be: 687b ldr r3, [r7, #4]
80149c0: 4a2c ldr r2, [pc, #176] ; (8014a74 <TIM_Base_SetConfig+0x118>)
80149c2: 4293 cmp r3, r2
80149c4: d023 beq.n 8014a0e <TIM_Base_SetConfig+0xb2>
80149c6: 687b ldr r3, [r7, #4]
80149c8: 4a2b ldr r2, [pc, #172] ; (8014a78 <TIM_Base_SetConfig+0x11c>)
80149ca: 4293 cmp r3, r2
80149cc: d01f beq.n 8014a0e <TIM_Base_SetConfig+0xb2>
80149ce: 687b ldr r3, [r7, #4]
80149d0: 4a2a ldr r2, [pc, #168] ; (8014a7c <TIM_Base_SetConfig+0x120>)
80149d2: 4293 cmp r3, r2
80149d4: d01b beq.n 8014a0e <TIM_Base_SetConfig+0xb2>
80149d6: 687b ldr r3, [r7, #4]
80149d8: 4a29 ldr r2, [pc, #164] ; (8014a80 <TIM_Base_SetConfig+0x124>)
80149da: 4293 cmp r3, r2
80149dc: d017 beq.n 8014a0e <TIM_Base_SetConfig+0xb2>
80149de: 687b ldr r3, [r7, #4]
80149e0: 4a28 ldr r2, [pc, #160] ; (8014a84 <TIM_Base_SetConfig+0x128>)
80149e2: 4293 cmp r3, r2
80149e4: d013 beq.n 8014a0e <TIM_Base_SetConfig+0xb2>
80149e6: 687b ldr r3, [r7, #4]
80149e8: 4a27 ldr r2, [pc, #156] ; (8014a88 <TIM_Base_SetConfig+0x12c>)
80149ea: 4293 cmp r3, r2
80149ec: d00f beq.n 8014a0e <TIM_Base_SetConfig+0xb2>
80149ee: 687b ldr r3, [r7, #4]
80149f0: 4a26 ldr r2, [pc, #152] ; (8014a8c <TIM_Base_SetConfig+0x130>)
80149f2: 4293 cmp r3, r2
80149f4: d00b beq.n 8014a0e <TIM_Base_SetConfig+0xb2>
80149f6: 687b ldr r3, [r7, #4]
80149f8: 4a25 ldr r2, [pc, #148] ; (8014a90 <TIM_Base_SetConfig+0x134>)
80149fa: 4293 cmp r3, r2
80149fc: d007 beq.n 8014a0e <TIM_Base_SetConfig+0xb2>
80149fe: 687b ldr r3, [r7, #4]
8014a00: 4a24 ldr r2, [pc, #144] ; (8014a94 <TIM_Base_SetConfig+0x138>)
8014a02: 4293 cmp r3, r2
8014a04: d003 beq.n 8014a0e <TIM_Base_SetConfig+0xb2>
8014a06: 687b ldr r3, [r7, #4]
8014a08: 4a23 ldr r2, [pc, #140] ; (8014a98 <TIM_Base_SetConfig+0x13c>)
8014a0a: 4293 cmp r3, r2
8014a0c: d108 bne.n 8014a20 <TIM_Base_SetConfig+0xc4>
{
/* Set the clock division */
tmpcr1 &= ~TIM_CR1_CKD;
8014a0e: 68fb ldr r3, [r7, #12]
8014a10: f423 7340 bic.w r3, r3, #768 ; 0x300
8014a14: 60fb str r3, [r7, #12]
tmpcr1 |= (uint32_t)Structure->ClockDivision;
8014a16: 683b ldr r3, [r7, #0]
8014a18: 68db ldr r3, [r3, #12]
8014a1a: 68fa ldr r2, [r7, #12]
8014a1c: 4313 orrs r3, r2
8014a1e: 60fb str r3, [r7, #12]
}
/* Set the auto-reload preload */
MODIFY_REG(tmpcr1, TIM_CR1_ARPE, Structure->AutoReloadPreload);
8014a20: 68fb ldr r3, [r7, #12]
8014a22: f023 0280 bic.w r2, r3, #128 ; 0x80
8014a26: 683b ldr r3, [r7, #0]
8014a28: 695b ldr r3, [r3, #20]
8014a2a: 4313 orrs r3, r2
8014a2c: 60fb str r3, [r7, #12]
TIMx->CR1 = tmpcr1;
8014a2e: 687b ldr r3, [r7, #4]
8014a30: 68fa ldr r2, [r7, #12]
8014a32: 601a str r2, [r3, #0]
/* Set the Autoreload value */
TIMx->ARR = (uint32_t)Structure->Period ;
8014a34: 683b ldr r3, [r7, #0]
8014a36: 689a ldr r2, [r3, #8]
8014a38: 687b ldr r3, [r7, #4]
8014a3a: 62da str r2, [r3, #44] ; 0x2c
/* Set the Prescaler value */
TIMx->PSC = Structure->Prescaler;
8014a3c: 683b ldr r3, [r7, #0]
8014a3e: 681a ldr r2, [r3, #0]
8014a40: 687b ldr r3, [r7, #4]
8014a42: 629a str r2, [r3, #40] ; 0x28
if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx))
8014a44: 687b ldr r3, [r7, #4]
8014a46: 4a0a ldr r2, [pc, #40] ; (8014a70 <TIM_Base_SetConfig+0x114>)
8014a48: 4293 cmp r3, r2
8014a4a: d003 beq.n 8014a54 <TIM_Base_SetConfig+0xf8>
8014a4c: 687b ldr r3, [r7, #4]
8014a4e: 4a0c ldr r2, [pc, #48] ; (8014a80 <TIM_Base_SetConfig+0x124>)
8014a50: 4293 cmp r3, r2
8014a52: d103 bne.n 8014a5c <TIM_Base_SetConfig+0x100>
{
/* Set the Repetition Counter value */
TIMx->RCR = Structure->RepetitionCounter;
8014a54: 683b ldr r3, [r7, #0]
8014a56: 691a ldr r2, [r3, #16]
8014a58: 687b ldr r3, [r7, #4]
8014a5a: 631a str r2, [r3, #48] ; 0x30
}
/* Generate an update event to reload the Prescaler
and the repetition counter (only for advanced timer) value immediately */
TIMx->EGR = TIM_EGR_UG;
8014a5c: 687b ldr r3, [r7, #4]
8014a5e: 2201 movs r2, #1
8014a60: 615a str r2, [r3, #20]
}
8014a62: bf00 nop
8014a64: 3714 adds r7, #20
8014a66: 46bd mov sp, r7
8014a68: f85d 7b04 ldr.w r7, [sp], #4
8014a6c: 4770 bx lr
8014a6e: bf00 nop
8014a70: 40010000 .word 0x40010000
8014a74: 40000400 .word 0x40000400
8014a78: 40000800 .word 0x40000800
8014a7c: 40000c00 .word 0x40000c00
8014a80: 40010400 .word 0x40010400
8014a84: 40014000 .word 0x40014000
8014a88: 40014400 .word 0x40014400
8014a8c: 40014800 .word 0x40014800
8014a90: 40001800 .word 0x40001800
8014a94: 40001c00 .word 0x40001c00
8014a98: 40002000 .word 0x40002000
08014a9c <HAL_TIMEx_MasterConfigSynchronization>:
* mode.
* @retval HAL status
*/
HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef *htim,
TIM_MasterConfigTypeDef *sMasterConfig)
{
8014a9c: b480 push {r7}
8014a9e: b085 sub sp, #20
8014aa0: af00 add r7, sp, #0
8014aa2: 6078 str r0, [r7, #4]
8014aa4: 6039 str r1, [r7, #0]
assert_param(IS_TIM_MASTER_INSTANCE(htim->Instance));
assert_param(IS_TIM_TRGO_SOURCE(sMasterConfig->MasterOutputTrigger));
assert_param(IS_TIM_MSM_STATE(sMasterConfig->MasterSlaveMode));
/* Check input state */
__HAL_LOCK(htim);
8014aa6: 687b ldr r3, [r7, #4]
8014aa8: f893 303c ldrb.w r3, [r3, #60] ; 0x3c
8014aac: 2b01 cmp r3, #1
8014aae: d101 bne.n 8014ab4 <HAL_TIMEx_MasterConfigSynchronization+0x18>
8014ab0: 2302 movs r3, #2
8014ab2: e06d b.n 8014b90 <HAL_TIMEx_MasterConfigSynchronization+0xf4>
8014ab4: 687b ldr r3, [r7, #4]
8014ab6: 2201 movs r2, #1
8014ab8: f883 203c strb.w r2, [r3, #60] ; 0x3c
/* Change the handler state */
htim->State = HAL_TIM_STATE_BUSY;
8014abc: 687b ldr r3, [r7, #4]
8014abe: 2202 movs r2, #2
8014ac0: f883 203d strb.w r2, [r3, #61] ; 0x3d
/* Get the TIMx CR2 register value */
tmpcr2 = htim->Instance->CR2;
8014ac4: 687b ldr r3, [r7, #4]
8014ac6: 681b ldr r3, [r3, #0]
8014ac8: 685b ldr r3, [r3, #4]
8014aca: 60fb str r3, [r7, #12]
/* Get the TIMx SMCR register value */
tmpsmcr = htim->Instance->SMCR;
8014acc: 687b ldr r3, [r7, #4]
8014ace: 681b ldr r3, [r3, #0]
8014ad0: 689b ldr r3, [r3, #8]
8014ad2: 60bb str r3, [r7, #8]
/* If the timer supports ADC synchronization through TRGO2, set the master mode selection 2 */
if (IS_TIM_TRGO2_INSTANCE(htim->Instance))
8014ad4: 687b ldr r3, [r7, #4]
8014ad6: 681b ldr r3, [r3, #0]
8014ad8: 4a30 ldr r2, [pc, #192] ; (8014b9c <HAL_TIMEx_MasterConfigSynchronization+0x100>)
8014ada: 4293 cmp r3, r2
8014adc: d004 beq.n 8014ae8 <HAL_TIMEx_MasterConfigSynchronization+0x4c>
8014ade: 687b ldr r3, [r7, #4]
8014ae0: 681b ldr r3, [r3, #0]
8014ae2: 4a2f ldr r2, [pc, #188] ; (8014ba0 <HAL_TIMEx_MasterConfigSynchronization+0x104>)
8014ae4: 4293 cmp r3, r2
8014ae6: d108 bne.n 8014afa <HAL_TIMEx_MasterConfigSynchronization+0x5e>
{
/* Check the parameters */
assert_param(IS_TIM_TRGO2_SOURCE(sMasterConfig->MasterOutputTrigger2));
/* Clear the MMS2 bits */
tmpcr2 &= ~TIM_CR2_MMS2;
8014ae8: 68fb ldr r3, [r7, #12]
8014aea: f423 0370 bic.w r3, r3, #15728640 ; 0xf00000
8014aee: 60fb str r3, [r7, #12]
/* Select the TRGO2 source*/
tmpcr2 |= sMasterConfig->MasterOutputTrigger2;
8014af0: 683b ldr r3, [r7, #0]
8014af2: 685b ldr r3, [r3, #4]
8014af4: 68fa ldr r2, [r7, #12]
8014af6: 4313 orrs r3, r2
8014af8: 60fb str r3, [r7, #12]
}
/* Reset the MMS Bits */
tmpcr2 &= ~TIM_CR2_MMS;
8014afa: 68fb ldr r3, [r7, #12]
8014afc: f023 0370 bic.w r3, r3, #112 ; 0x70
8014b00: 60fb str r3, [r7, #12]
/* Select the TRGO source */
tmpcr2 |= sMasterConfig->MasterOutputTrigger;
8014b02: 683b ldr r3, [r7, #0]
8014b04: 681b ldr r3, [r3, #0]
8014b06: 68fa ldr r2, [r7, #12]
8014b08: 4313 orrs r3, r2
8014b0a: 60fb str r3, [r7, #12]
/* Update TIMx CR2 */
htim->Instance->CR2 = tmpcr2;
8014b0c: 687b ldr r3, [r7, #4]
8014b0e: 681b ldr r3, [r3, #0]
8014b10: 68fa ldr r2, [r7, #12]
8014b12: 605a str r2, [r3, #4]
if (IS_TIM_SLAVE_INSTANCE(htim->Instance))
8014b14: 687b ldr r3, [r7, #4]
8014b16: 681b ldr r3, [r3, #0]
8014b18: 4a20 ldr r2, [pc, #128] ; (8014b9c <HAL_TIMEx_MasterConfigSynchronization+0x100>)
8014b1a: 4293 cmp r3, r2
8014b1c: d022 beq.n 8014b64 <HAL_TIMEx_MasterConfigSynchronization+0xc8>
8014b1e: 687b ldr r3, [r7, #4]
8014b20: 681b ldr r3, [r3, #0]
8014b22: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000
8014b26: d01d beq.n 8014b64 <HAL_TIMEx_MasterConfigSynchronization+0xc8>
8014b28: 687b ldr r3, [r7, #4]
8014b2a: 681b ldr r3, [r3, #0]
8014b2c: 4a1d ldr r2, [pc, #116] ; (8014ba4 <HAL_TIMEx_MasterConfigSynchronization+0x108>)
8014b2e: 4293 cmp r3, r2
8014b30: d018 beq.n 8014b64 <HAL_TIMEx_MasterConfigSynchronization+0xc8>
8014b32: 687b ldr r3, [r7, #4]
8014b34: 681b ldr r3, [r3, #0]
8014b36: 4a1c ldr r2, [pc, #112] ; (8014ba8 <HAL_TIMEx_MasterConfigSynchronization+0x10c>)
8014b38: 4293 cmp r3, r2
8014b3a: d013 beq.n 8014b64 <HAL_TIMEx_MasterConfigSynchronization+0xc8>
8014b3c: 687b ldr r3, [r7, #4]
8014b3e: 681b ldr r3, [r3, #0]
8014b40: 4a1a ldr r2, [pc, #104] ; (8014bac <HAL_TIMEx_MasterConfigSynchronization+0x110>)
8014b42: 4293 cmp r3, r2
8014b44: d00e beq.n 8014b64 <HAL_TIMEx_MasterConfigSynchronization+0xc8>
8014b46: 687b ldr r3, [r7, #4]
8014b48: 681b ldr r3, [r3, #0]
8014b4a: 4a15 ldr r2, [pc, #84] ; (8014ba0 <HAL_TIMEx_MasterConfigSynchronization+0x104>)
8014b4c: 4293 cmp r3, r2
8014b4e: d009 beq.n 8014b64 <HAL_TIMEx_MasterConfigSynchronization+0xc8>
8014b50: 687b ldr r3, [r7, #4]
8014b52: 681b ldr r3, [r3, #0]
8014b54: 4a16 ldr r2, [pc, #88] ; (8014bb0 <HAL_TIMEx_MasterConfigSynchronization+0x114>)
8014b56: 4293 cmp r3, r2
8014b58: d004 beq.n 8014b64 <HAL_TIMEx_MasterConfigSynchronization+0xc8>
8014b5a: 687b ldr r3, [r7, #4]
8014b5c: 681b ldr r3, [r3, #0]
8014b5e: 4a15 ldr r2, [pc, #84] ; (8014bb4 <HAL_TIMEx_MasterConfigSynchronization+0x118>)
8014b60: 4293 cmp r3, r2
8014b62: d10c bne.n 8014b7e <HAL_TIMEx_MasterConfigSynchronization+0xe2>
{
/* Reset the MSM Bit */
tmpsmcr &= ~TIM_SMCR_MSM;
8014b64: 68bb ldr r3, [r7, #8]
8014b66: f023 0380 bic.w r3, r3, #128 ; 0x80
8014b6a: 60bb str r3, [r7, #8]
/* Set master mode */
tmpsmcr |= sMasterConfig->MasterSlaveMode;
8014b6c: 683b ldr r3, [r7, #0]
8014b6e: 689b ldr r3, [r3, #8]
8014b70: 68ba ldr r2, [r7, #8]
8014b72: 4313 orrs r3, r2
8014b74: 60bb str r3, [r7, #8]
/* Update TIMx SMCR */
htim->Instance->SMCR = tmpsmcr;
8014b76: 687b ldr r3, [r7, #4]
8014b78: 681b ldr r3, [r3, #0]
8014b7a: 68ba ldr r2, [r7, #8]
8014b7c: 609a str r2, [r3, #8]
}
/* Change the htim state */
htim->State = HAL_TIM_STATE_READY;
8014b7e: 687b ldr r3, [r7, #4]
8014b80: 2201 movs r2, #1
8014b82: f883 203d strb.w r2, [r3, #61] ; 0x3d
__HAL_UNLOCK(htim);
8014b86: 687b ldr r3, [r7, #4]
8014b88: 2200 movs r2, #0
8014b8a: f883 203c strb.w r2, [r3, #60] ; 0x3c
return HAL_OK;
8014b8e: 2300 movs r3, #0
}
8014b90: 4618 mov r0, r3
8014b92: 3714 adds r7, #20
8014b94: 46bd mov sp, r7
8014b96: f85d 7b04 ldr.w r7, [sp], #4
8014b9a: 4770 bx lr
8014b9c: 40010000 .word 0x40010000
8014ba0: 40010400 .word 0x40010400
8014ba4: 40000400 .word 0x40000400
8014ba8: 40000800 .word 0x40000800
8014bac: 40000c00 .word 0x40000c00
8014bb0: 40014000 .word 0x40014000
8014bb4: 40001800 .word 0x40001800
08014bb8 <HAL_TIMEx_CommutCallback>:
* @brief Hall commutation changed callback in non-blocking mode
* @param htim TIM handle
* @retval None
*/
__weak void HAL_TIMEx_CommutCallback(TIM_HandleTypeDef *htim)
{
8014bb8: b480 push {r7}
8014bba: b083 sub sp, #12
8014bbc: af00 add r7, sp, #0
8014bbe: 6078 str r0, [r7, #4]
UNUSED(htim);
/* NOTE : This function should not be modified, when the callback is needed,
the HAL_TIMEx_CommutCallback could be implemented in the user file
*/
}
8014bc0: bf00 nop
8014bc2: 370c adds r7, #12
8014bc4: 46bd mov sp, r7
8014bc6: f85d 7b04 ldr.w r7, [sp], #4
8014bca: 4770 bx lr
08014bcc <HAL_TIMEx_BreakCallback>:
* @brief Hall Break detection callback in non-blocking mode
* @param htim TIM handle
* @retval None
*/
__weak void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim)
{
8014bcc: b480 push {r7}
8014bce: b083 sub sp, #12
8014bd0: af00 add r7, sp, #0
8014bd2: 6078 str r0, [r7, #4]
UNUSED(htim);
/* NOTE : This function should not be modified, when the callback is needed,
the HAL_TIMEx_BreakCallback could be implemented in the user file
*/
}
8014bd4: bf00 nop
8014bd6: 370c adds r7, #12
8014bd8: 46bd mov sp, r7
8014bda: f85d 7b04 ldr.w r7, [sp], #4
8014bde: 4770 bx lr
08014be0 <HAL_TIMEx_Break2Callback>:
* @brief Hall Break2 detection callback in non blocking mode
* @param htim: TIM handle
* @retval None
*/
__weak void HAL_TIMEx_Break2Callback(TIM_HandleTypeDef *htim)
{
8014be0: b480 push {r7}
8014be2: b083 sub sp, #12
8014be4: af00 add r7, sp, #0
8014be6: 6078 str r0, [r7, #4]
UNUSED(htim);
/* NOTE : This function Should not be modified, when the callback is needed,
the HAL_TIMEx_Break2Callback could be implemented in the user file
*/
}
8014be8: bf00 nop
8014bea: 370c adds r7, #12
8014bec: 46bd mov sp, r7
8014bee: f85d 7b04 ldr.w r7, [sp], #4
8014bf2: 4770 bx lr
08014bf4 <HAL_UART_Init>:
* parameters in the UART_InitTypeDef and initialize the associated handle.
* @param huart UART handle.
* @retval HAL status
*/
HAL_StatusTypeDef HAL_UART_Init(UART_HandleTypeDef *huart)
{
8014bf4: b580 push {r7, lr}
8014bf6: b082 sub sp, #8
8014bf8: af00 add r7, sp, #0
8014bfa: 6078 str r0, [r7, #4]
/* Check the UART handle allocation */
if (huart == NULL)
8014bfc: 687b ldr r3, [r7, #4]
8014bfe: 2b00 cmp r3, #0
8014c00: d101 bne.n 8014c06 <HAL_UART_Init+0x12>
{
return HAL_ERROR;
8014c02: 2301 movs r3, #1
8014c04: e040 b.n 8014c88 <HAL_UART_Init+0x94>
{
/* Check the parameters */
assert_param(IS_UART_INSTANCE(huart->Instance));
}
if (huart->gState == HAL_UART_STATE_RESET)
8014c06: 687b ldr r3, [r7, #4]
8014c08: 6f9b ldr r3, [r3, #120] ; 0x78
8014c0a: 2b00 cmp r3, #0
8014c0c: d106 bne.n 8014c1c <HAL_UART_Init+0x28>
{
/* Allocate lock resource and initialize it */
huart->Lock = HAL_UNLOCKED;
8014c0e: 687b ldr r3, [r7, #4]
8014c10: 2200 movs r2, #0
8014c12: f883 2074 strb.w r2, [r3, #116] ; 0x74
/* Init the low level hardware */
huart->MspInitCallback(huart);
#else
/* Init the low level hardware : GPIO, CLOCK */
HAL_UART_MspInit(huart);
8014c16: 6878 ldr r0, [r7, #4]
8014c18: f7fb f838 bl 800fc8c <HAL_UART_MspInit>
#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
}
huart->gState = HAL_UART_STATE_BUSY;
8014c1c: 687b ldr r3, [r7, #4]
8014c1e: 2224 movs r2, #36 ; 0x24
8014c20: 679a str r2, [r3, #120] ; 0x78
__HAL_UART_DISABLE(huart);
8014c22: 687b ldr r3, [r7, #4]
8014c24: 681b ldr r3, [r3, #0]
8014c26: 687a ldr r2, [r7, #4]
8014c28: 6812 ldr r2, [r2, #0]
8014c2a: 6812 ldr r2, [r2, #0]
8014c2c: f022 0201 bic.w r2, r2, #1
8014c30: 601a str r2, [r3, #0]
/* Set the UART Communication parameters */
if (UART_SetConfig(huart) == HAL_ERROR)
8014c32: 6878 ldr r0, [r7, #4]
8014c34: f000 fd90 bl 8015758 <UART_SetConfig>
8014c38: 4603 mov r3, r0
8014c3a: 2b01 cmp r3, #1
8014c3c: d101 bne.n 8014c42 <HAL_UART_Init+0x4e>
{
return HAL_ERROR;
8014c3e: 2301 movs r3, #1
8014c40: e022 b.n 8014c88 <HAL_UART_Init+0x94>
}
if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT)
8014c42: 687b ldr r3, [r7, #4]
8014c44: 6a5b ldr r3, [r3, #36] ; 0x24
8014c46: 2b00 cmp r3, #0
8014c48: d002 beq.n 8014c50 <HAL_UART_Init+0x5c>
{
UART_AdvFeatureConfig(huart);
8014c4a: 6878 ldr r0, [r7, #4]
8014c4c: f000 ffe4 bl 8015c18 <UART_AdvFeatureConfig>
}
/* In asynchronous mode, the following bits must be kept cleared:
- LINEN and CLKEN bits in the USART_CR2 register,
- SCEN, HDSEL and IREN bits in the USART_CR3 register.*/
CLEAR_BIT(huart->Instance->CR2, (USART_CR2_LINEN | USART_CR2_CLKEN));
8014c50: 687b ldr r3, [r7, #4]
8014c52: 681b ldr r3, [r3, #0]
8014c54: 687a ldr r2, [r7, #4]
8014c56: 6812 ldr r2, [r2, #0]
8014c58: 6852 ldr r2, [r2, #4]
8014c5a: f422 4290 bic.w r2, r2, #18432 ; 0x4800
8014c5e: 605a str r2, [r3, #4]
CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
8014c60: 687b ldr r3, [r7, #4]
8014c62: 681b ldr r3, [r3, #0]
8014c64: 687a ldr r2, [r7, #4]
8014c66: 6812 ldr r2, [r2, #0]
8014c68: 6892 ldr r2, [r2, #8]
8014c6a: f022 022a bic.w r2, r2, #42 ; 0x2a
8014c6e: 609a str r2, [r3, #8]
__HAL_UART_ENABLE(huart);
8014c70: 687b ldr r3, [r7, #4]
8014c72: 681b ldr r3, [r3, #0]
8014c74: 687a ldr r2, [r7, #4]
8014c76: 6812 ldr r2, [r2, #0]
8014c78: 6812 ldr r2, [r2, #0]
8014c7a: f042 0201 orr.w r2, r2, #1
8014c7e: 601a str r2, [r3, #0]
/* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */
return (UART_CheckIdleState(huart));
8014c80: 6878 ldr r0, [r7, #4]
8014c82: f001 f86b bl 8015d5c <UART_CheckIdleState>
8014c86: 4603 mov r3, r0
}
8014c88: 4618 mov r0, r3
8014c8a: 3708 adds r7, #8
8014c8c: 46bd mov sp, r7
8014c8e: bd80 pop {r7, pc}
08014c90 <HAL_UART_Receive>:
* @param Size Amount of data elements (u8 or u16) to be received.
* @param Timeout Timeout duration.
* @retval HAL status
*/
HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
{
8014c90: b580 push {r7, lr}
8014c92: b08a sub sp, #40 ; 0x28
8014c94: af02 add r7, sp, #8
8014c96: 60f8 str r0, [r7, #12]
8014c98: 60b9 str r1, [r7, #8]
8014c9a: 603b str r3, [r7, #0]
8014c9c: 4613 mov r3, r2
8014c9e: 80fb strh r3, [r7, #6]
uint16_t *pdata16bits;
uint16_t uhMask;
uint32_t tickstart;
/* Check that a Rx process is not already ongoing */
if (huart->RxState == HAL_UART_STATE_READY)
8014ca0: 68fb ldr r3, [r7, #12]
8014ca2: 6fdb ldr r3, [r3, #124] ; 0x7c
8014ca4: 2b20 cmp r3, #32
8014ca6: f040 80be bne.w 8014e26 <HAL_UART_Receive+0x196>
{
if ((pData == NULL) || (Size == 0U))
8014caa: 68bb ldr r3, [r7, #8]
8014cac: 2b00 cmp r3, #0
8014cae: d002 beq.n 8014cb6 <HAL_UART_Receive+0x26>
8014cb0: 88fb ldrh r3, [r7, #6]
8014cb2: 2b00 cmp r3, #0
8014cb4: d101 bne.n 8014cba <HAL_UART_Receive+0x2a>
{
return HAL_ERROR;
8014cb6: 2301 movs r3, #1
8014cb8: e0b6 b.n 8014e28 <HAL_UART_Receive+0x198>
}
__HAL_LOCK(huart);
8014cba: 68fb ldr r3, [r7, #12]
8014cbc: f893 3074 ldrb.w r3, [r3, #116] ; 0x74
8014cc0: 2b01 cmp r3, #1
8014cc2: d101 bne.n 8014cc8 <HAL_UART_Receive+0x38>
8014cc4: 2302 movs r3, #2
8014cc6: e0af b.n 8014e28 <HAL_UART_Receive+0x198>
8014cc8: 68fb ldr r3, [r7, #12]
8014cca: 2201 movs r2, #1
8014ccc: f883 2074 strb.w r2, [r3, #116] ; 0x74
huart->ErrorCode = HAL_UART_ERROR_NONE;
8014cd0: 68fb ldr r3, [r7, #12]
8014cd2: 2200 movs r2, #0
8014cd4: f8c3 2080 str.w r2, [r3, #128] ; 0x80
huart->RxState = HAL_UART_STATE_BUSY_RX;
8014cd8: 68fb ldr r3, [r7, #12]
8014cda: 2222 movs r2, #34 ; 0x22
8014cdc: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
8014cde: 68fb ldr r3, [r7, #12]
8014ce0: 2200 movs r2, #0
8014ce2: 661a str r2, [r3, #96] ; 0x60
/* Init tickstart for timeout management */
tickstart = HAL_GetTick();
8014ce4: f7fc fc3e bl 8011564 <HAL_GetTick>
8014ce8: 6178 str r0, [r7, #20]
huart->RxXferSize = Size;
8014cea: 68fb ldr r3, [r7, #12]
8014cec: 88fa ldrh r2, [r7, #6]
8014cee: f8a3 2058 strh.w r2, [r3, #88] ; 0x58
huart->RxXferCount = Size;
8014cf2: 68fb ldr r3, [r7, #12]
8014cf4: 88fa ldrh r2, [r7, #6]
8014cf6: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
/* Computation of UART mask to apply to RDR register */
UART_MASK_COMPUTATION(huart);
8014cfa: 68fb ldr r3, [r7, #12]
8014cfc: 689b ldr r3, [r3, #8]
8014cfe: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
8014d02: d10e bne.n 8014d22 <HAL_UART_Receive+0x92>
8014d04: 68fb ldr r3, [r7, #12]
8014d06: 691b ldr r3, [r3, #16]
8014d08: 2b00 cmp r3, #0
8014d0a: d105 bne.n 8014d18 <HAL_UART_Receive+0x88>
8014d0c: 68fb ldr r3, [r7, #12]
8014d0e: f240 12ff movw r2, #511 ; 0x1ff
8014d12: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
8014d16: e02d b.n 8014d74 <HAL_UART_Receive+0xe4>
8014d18: 68fb ldr r3, [r7, #12]
8014d1a: 22ff movs r2, #255 ; 0xff
8014d1c: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
8014d20: e028 b.n 8014d74 <HAL_UART_Receive+0xe4>
8014d22: 68fb ldr r3, [r7, #12]
8014d24: 689b ldr r3, [r3, #8]
8014d26: 2b00 cmp r3, #0
8014d28: d10d bne.n 8014d46 <HAL_UART_Receive+0xb6>
8014d2a: 68fb ldr r3, [r7, #12]
8014d2c: 691b ldr r3, [r3, #16]
8014d2e: 2b00 cmp r3, #0
8014d30: d104 bne.n 8014d3c <HAL_UART_Receive+0xac>
8014d32: 68fb ldr r3, [r7, #12]
8014d34: 22ff movs r2, #255 ; 0xff
8014d36: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
8014d3a: e01b b.n 8014d74 <HAL_UART_Receive+0xe4>
8014d3c: 68fb ldr r3, [r7, #12]
8014d3e: 227f movs r2, #127 ; 0x7f
8014d40: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
8014d44: e016 b.n 8014d74 <HAL_UART_Receive+0xe4>
8014d46: 68fb ldr r3, [r7, #12]
8014d48: 689b ldr r3, [r3, #8]
8014d4a: f1b3 5f80 cmp.w r3, #268435456 ; 0x10000000
8014d4e: d10d bne.n 8014d6c <HAL_UART_Receive+0xdc>
8014d50: 68fb ldr r3, [r7, #12]
8014d52: 691b ldr r3, [r3, #16]
8014d54: 2b00 cmp r3, #0
8014d56: d104 bne.n 8014d62 <HAL_UART_Receive+0xd2>
8014d58: 68fb ldr r3, [r7, #12]
8014d5a: 227f movs r2, #127 ; 0x7f
8014d5c: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
8014d60: e008 b.n 8014d74 <HAL_UART_Receive+0xe4>
8014d62: 68fb ldr r3, [r7, #12]
8014d64: 223f movs r2, #63 ; 0x3f
8014d66: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
8014d6a: e003 b.n 8014d74 <HAL_UART_Receive+0xe4>
8014d6c: 68fb ldr r3, [r7, #12]
8014d6e: 2200 movs r2, #0
8014d70: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
uhMask = huart->Mask;
8014d74: 68fb ldr r3, [r7, #12]
8014d76: f8b3 305c ldrh.w r3, [r3, #92] ; 0x5c
8014d7a: 827b strh r3, [r7, #18]
/* In case of 9bits/No Parity transfer, pRxData needs to be handled as a uint16_t pointer */
if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE))
8014d7c: 68fb ldr r3, [r7, #12]
8014d7e: 689b ldr r3, [r3, #8]
8014d80: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
8014d84: d108 bne.n 8014d98 <HAL_UART_Receive+0x108>
8014d86: 68fb ldr r3, [r7, #12]
8014d88: 691b ldr r3, [r3, #16]
8014d8a: 2b00 cmp r3, #0
8014d8c: d104 bne.n 8014d98 <HAL_UART_Receive+0x108>
{
pdata8bits = NULL;
8014d8e: 2300 movs r3, #0
8014d90: 61fb str r3, [r7, #28]
pdata16bits = (uint16_t *) pData;
8014d92: 68bb ldr r3, [r7, #8]
8014d94: 61bb str r3, [r7, #24]
8014d96: e003 b.n 8014da0 <HAL_UART_Receive+0x110>
}
else
{
pdata8bits = pData;
8014d98: 68bb ldr r3, [r7, #8]
8014d9a: 61fb str r3, [r7, #28]
pdata16bits = NULL;
8014d9c: 2300 movs r3, #0
8014d9e: 61bb str r3, [r7, #24]
}
__HAL_UNLOCK(huart);
8014da0: 68fb ldr r3, [r7, #12]
8014da2: 2200 movs r2, #0
8014da4: f883 2074 strb.w r2, [r3, #116] ; 0x74
/* as long as data have to be received */
while (huart->RxXferCount > 0U)
8014da8: e032 b.n 8014e10 <HAL_UART_Receive+0x180>
{
if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK)
8014daa: 683b ldr r3, [r7, #0]
8014dac: 9300 str r3, [sp, #0]
8014dae: 697b ldr r3, [r7, #20]
8014db0: 2200 movs r2, #0
8014db2: 2120 movs r1, #32
8014db4: 68f8 ldr r0, [r7, #12]
8014db6: f001 f81a bl 8015dee <UART_WaitOnFlagUntilTimeout>
8014dba: 4603 mov r3, r0
8014dbc: 2b00 cmp r3, #0
8014dbe: d001 beq.n 8014dc4 <HAL_UART_Receive+0x134>
{
return HAL_TIMEOUT;
8014dc0: 2303 movs r3, #3
8014dc2: e031 b.n 8014e28 <HAL_UART_Receive+0x198>
}
if (pdata8bits == NULL)
8014dc4: 69fb ldr r3, [r7, #28]
8014dc6: 2b00 cmp r3, #0
8014dc8: d10c bne.n 8014de4 <HAL_UART_Receive+0x154>
{
*pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask);
8014dca: 68fb ldr r3, [r7, #12]
8014dcc: 681b ldr r3, [r3, #0]
8014dce: 6a5b ldr r3, [r3, #36] ; 0x24
8014dd0: b29a uxth r2, r3
8014dd2: 8a7b ldrh r3, [r7, #18]
8014dd4: 4013 ands r3, r2
8014dd6: b29a uxth r2, r3
8014dd8: 69bb ldr r3, [r7, #24]
8014dda: 801a strh r2, [r3, #0]
pdata16bits++;
8014ddc: 69bb ldr r3, [r7, #24]
8014dde: 3302 adds r3, #2
8014de0: 61bb str r3, [r7, #24]
8014de2: e00c b.n 8014dfe <HAL_UART_Receive+0x16e>
}
else
{
*pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask);
8014de4: 68fb ldr r3, [r7, #12]
8014de6: 681b ldr r3, [r3, #0]
8014de8: 6a5b ldr r3, [r3, #36] ; 0x24
8014dea: b2da uxtb r2, r3
8014dec: 8a7b ldrh r3, [r7, #18]
8014dee: b2db uxtb r3, r3
8014df0: 4013 ands r3, r2
8014df2: b2da uxtb r2, r3
8014df4: 69fb ldr r3, [r7, #28]
8014df6: 701a strb r2, [r3, #0]
pdata8bits++;
8014df8: 69fb ldr r3, [r7, #28]
8014dfa: 3301 adds r3, #1
8014dfc: 61fb str r3, [r7, #28]
}
huart->RxXferCount--;
8014dfe: 68fb ldr r3, [r7, #12]
8014e00: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a
8014e04: b29b uxth r3, r3
8014e06: 3b01 subs r3, #1
8014e08: b29a uxth r2, r3
8014e0a: 68fb ldr r3, [r7, #12]
8014e0c: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
while (huart->RxXferCount > 0U)
8014e10: 68fb ldr r3, [r7, #12]
8014e12: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a
8014e16: b29b uxth r3, r3
8014e18: 2b00 cmp r3, #0
8014e1a: d1c6 bne.n 8014daa <HAL_UART_Receive+0x11a>
}
/* At end of Rx process, restore huart->RxState to Ready */
huart->RxState = HAL_UART_STATE_READY;
8014e1c: 68fb ldr r3, [r7, #12]
8014e1e: 2220 movs r2, #32
8014e20: 67da str r2, [r3, #124] ; 0x7c
return HAL_OK;
8014e22: 2300 movs r3, #0
8014e24: e000 b.n 8014e28 <HAL_UART_Receive+0x198>
}
else
{
return HAL_BUSY;
8014e26: 2302 movs r3, #2
}
}
8014e28: 4618 mov r0, r3
8014e2a: 3720 adds r7, #32
8014e2c: 46bd mov sp, r7
8014e2e: bd80 pop {r7, pc}
08014e30 <HAL_UART_Transmit_IT>:
* @param pData Pointer to data buffer (u8 or u16 data elements).
* @param Size Amount of data elements (u8 or u16) to be sent.
* @retval HAL status
*/
HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size)
{
8014e30: b480 push {r7}
8014e32: b08b sub sp, #44 ; 0x2c
8014e34: af00 add r7, sp, #0
8014e36: 60f8 str r0, [r7, #12]
8014e38: 60b9 str r1, [r7, #8]
8014e3a: 4613 mov r3, r2
8014e3c: 80fb strh r3, [r7, #6]
/* Check that a Tx process is not already ongoing */
if (huart->gState == HAL_UART_STATE_READY)
8014e3e: 68fb ldr r3, [r7, #12]
8014e40: 6f9b ldr r3, [r3, #120] ; 0x78
8014e42: 2b20 cmp r3, #32
8014e44: d156 bne.n 8014ef4 <HAL_UART_Transmit_IT+0xc4>
{
if ((pData == NULL) || (Size == 0U))
8014e46: 68bb ldr r3, [r7, #8]
8014e48: 2b00 cmp r3, #0
8014e4a: d002 beq.n 8014e52 <HAL_UART_Transmit_IT+0x22>
8014e4c: 88fb ldrh r3, [r7, #6]
8014e4e: 2b00 cmp r3, #0
8014e50: d101 bne.n 8014e56 <HAL_UART_Transmit_IT+0x26>
{
return HAL_ERROR;
8014e52: 2301 movs r3, #1
8014e54: e04f b.n 8014ef6 <HAL_UART_Transmit_IT+0xc6>
}
__HAL_LOCK(huart);
8014e56: 68fb ldr r3, [r7, #12]
8014e58: f893 3074 ldrb.w r3, [r3, #116] ; 0x74
8014e5c: 2b01 cmp r3, #1
8014e5e: d101 bne.n 8014e64 <HAL_UART_Transmit_IT+0x34>
8014e60: 2302 movs r3, #2
8014e62: e048 b.n 8014ef6 <HAL_UART_Transmit_IT+0xc6>
8014e64: 68fb ldr r3, [r7, #12]
8014e66: 2201 movs r2, #1
8014e68: f883 2074 strb.w r2, [r3, #116] ; 0x74
huart->pTxBuffPtr = pData;
8014e6c: 68fb ldr r3, [r7, #12]
8014e6e: 68ba ldr r2, [r7, #8]
8014e70: 64da str r2, [r3, #76] ; 0x4c
huart->TxXferSize = Size;
8014e72: 68fb ldr r3, [r7, #12]
8014e74: 88fa ldrh r2, [r7, #6]
8014e76: f8a3 2050 strh.w r2, [r3, #80] ; 0x50
huart->TxXferCount = Size;
8014e7a: 68fb ldr r3, [r7, #12]
8014e7c: 88fa ldrh r2, [r7, #6]
8014e7e: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
huart->TxISR = NULL;
8014e82: 68fb ldr r3, [r7, #12]
8014e84: 2200 movs r2, #0
8014e86: 669a str r2, [r3, #104] ; 0x68
huart->ErrorCode = HAL_UART_ERROR_NONE;
8014e88: 68fb ldr r3, [r7, #12]
8014e8a: 2200 movs r2, #0
8014e8c: f8c3 2080 str.w r2, [r3, #128] ; 0x80
huart->gState = HAL_UART_STATE_BUSY_TX;
8014e90: 68fb ldr r3, [r7, #12]
8014e92: 2221 movs r2, #33 ; 0x21
8014e94: 679a str r2, [r3, #120] ; 0x78
/* Set the Tx ISR function pointer according to the data word length */
if ((huart->Init.WordLength == UART_WORDLENGTH_9B) && (huart->Init.Parity == UART_PARITY_NONE))
8014e96: 68fb ldr r3, [r7, #12]
8014e98: 689b ldr r3, [r3, #8]
8014e9a: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
8014e9e: d107 bne.n 8014eb0 <HAL_UART_Transmit_IT+0x80>
8014ea0: 68fb ldr r3, [r7, #12]
8014ea2: 691b ldr r3, [r3, #16]
8014ea4: 2b00 cmp r3, #0
8014ea6: d103 bne.n 8014eb0 <HAL_UART_Transmit_IT+0x80>
{
huart->TxISR = UART_TxISR_16BIT;
8014ea8: 68fb ldr r3, [r7, #12]
8014eaa: 4a16 ldr r2, [pc, #88] ; (8014f04 <HAL_UART_Transmit_IT+0xd4>)
8014eac: 669a str r2, [r3, #104] ; 0x68
8014eae: e002 b.n 8014eb6 <HAL_UART_Transmit_IT+0x86>
}
else
{
huart->TxISR = UART_TxISR_8BIT;
8014eb0: 68fb ldr r3, [r7, #12]
8014eb2: 4a15 ldr r2, [pc, #84] ; (8014f08 <HAL_UART_Transmit_IT+0xd8>)
8014eb4: 669a str r2, [r3, #104] ; 0x68
}
__HAL_UNLOCK(huart);
8014eb6: 68fb ldr r3, [r7, #12]
8014eb8: 2200 movs r2, #0
8014eba: f883 2074 strb.w r2, [r3, #116] ; 0x74
/* Enable the Transmit Data Register Empty interrupt */
ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE);
8014ebe: 68fb ldr r3, [r7, #12]
8014ec0: 681b ldr r3, [r3, #0]
8014ec2: 617b str r3, [r7, #20]
*/
__STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr)
{
uint32_t result;
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8014ec4: 697b ldr r3, [r7, #20]
8014ec6: e853 3f00 ldrex r3, [r3]
8014eca: 613b str r3, [r7, #16]
return(result);
8014ecc: 693b ldr r3, [r7, #16]
8014ece: f043 0380 orr.w r3, r3, #128 ; 0x80
8014ed2: 627b str r3, [r7, #36] ; 0x24
8014ed4: 68fb ldr r3, [r7, #12]
8014ed6: 681b ldr r3, [r3, #0]
8014ed8: 461a mov r2, r3
8014eda: 6a7b ldr r3, [r7, #36] ; 0x24
8014edc: 623b str r3, [r7, #32]
8014ede: 61fa str r2, [r7, #28]
*/
__STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr)
{
uint32_t result;
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8014ee0: 69f9 ldr r1, [r7, #28]
8014ee2: 6a3a ldr r2, [r7, #32]
8014ee4: e841 2300 strex r3, r2, [r1]
8014ee8: 61bb str r3, [r7, #24]
return(result);
8014eea: 69bb ldr r3, [r7, #24]
8014eec: 2b00 cmp r3, #0
8014eee: d1e6 bne.n 8014ebe <HAL_UART_Transmit_IT+0x8e>
return HAL_OK;
8014ef0: 2300 movs r3, #0
8014ef2: e000 b.n 8014ef6 <HAL_UART_Transmit_IT+0xc6>
}
else
{
return HAL_BUSY;
8014ef4: 2302 movs r3, #2
}
}
8014ef6: 4618 mov r0, r3
8014ef8: 372c adds r7, #44 ; 0x2c
8014efa: 46bd mov sp, r7
8014efc: f85d 7b04 ldr.w r7, [sp], #4
8014f00: 4770 bx lr
8014f02: bf00 nop
8014f04: 08016203 .word 0x08016203
8014f08: 0801614d .word 0x0801614d
08014f0c <HAL_UART_Abort_IT>:
* @note This procedure is executed in Interrupt mode, meaning that abort procedure could be
* considered as completed only when user abort complete callback is executed (not when exiting function).
* @retval HAL status
*/
HAL_StatusTypeDef HAL_UART_Abort_IT(UART_HandleTypeDef *huart)
{
8014f0c: b580 push {r7, lr}
8014f0e: b0a2 sub sp, #136 ; 0x88
8014f10: af00 add r7, sp, #0
8014f12: 6078 str r0, [r7, #4]
uint32_t abortcplt = 1U;
8014f14: 2301 movs r3, #1
8014f16: f8c7 3084 str.w r3, [r7, #132] ; 0x84
/* Disable interrupts */
ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE | USART_CR1_TCIE));
8014f1a: 687b ldr r3, [r7, #4]
8014f1c: 681b ldr r3, [r3, #0]
8014f1e: 663b str r3, [r7, #96] ; 0x60
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8014f20: 6e3b ldr r3, [r7, #96] ; 0x60
8014f22: e853 3f00 ldrex r3, [r3]
8014f26: 65fb str r3, [r7, #92] ; 0x5c
return(result);
8014f28: 6dfb ldr r3, [r7, #92] ; 0x5c
8014f2a: f423 73f0 bic.w r3, r3, #480 ; 0x1e0
8014f2e: f8c7 3080 str.w r3, [r7, #128] ; 0x80
8014f32: 687b ldr r3, [r7, #4]
8014f34: 681b ldr r3, [r3, #0]
8014f36: 461a mov r2, r3
8014f38: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80
8014f3c: 66fb str r3, [r7, #108] ; 0x6c
8014f3e: 66ba str r2, [r7, #104] ; 0x68
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8014f40: 6eb9 ldr r1, [r7, #104] ; 0x68
8014f42: 6efa ldr r2, [r7, #108] ; 0x6c
8014f44: e841 2300 strex r3, r2, [r1]
8014f48: 667b str r3, [r7, #100] ; 0x64
return(result);
8014f4a: 6e7b ldr r3, [r7, #100] ; 0x64
8014f4c: 2b00 cmp r3, #0
8014f4e: d1e4 bne.n 8014f1a <HAL_UART_Abort_IT+0xe>
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
8014f50: 687b ldr r3, [r7, #4]
8014f52: 681b ldr r3, [r3, #0]
8014f54: 3308 adds r3, #8
8014f56: 64fb str r3, [r7, #76] ; 0x4c
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8014f58: 6cfb ldr r3, [r7, #76] ; 0x4c
8014f5a: e853 3f00 ldrex r3, [r3]
8014f5e: 64bb str r3, [r7, #72] ; 0x48
return(result);
8014f60: 6cbb ldr r3, [r7, #72] ; 0x48
8014f62: f023 0301 bic.w r3, r3, #1
8014f66: 67fb str r3, [r7, #124] ; 0x7c
8014f68: 687b ldr r3, [r7, #4]
8014f6a: 681b ldr r3, [r3, #0]
8014f6c: 3308 adds r3, #8
8014f6e: 6ffa ldr r2, [r7, #124] ; 0x7c
8014f70: 65ba str r2, [r7, #88] ; 0x58
8014f72: 657b str r3, [r7, #84] ; 0x54
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8014f74: 6d79 ldr r1, [r7, #84] ; 0x54
8014f76: 6dba ldr r2, [r7, #88] ; 0x58
8014f78: e841 2300 strex r3, r2, [r1]
8014f7c: 653b str r3, [r7, #80] ; 0x50
return(result);
8014f7e: 6d3b ldr r3, [r7, #80] ; 0x50
8014f80: 2b00 cmp r3, #0
8014f82: d1e5 bne.n 8014f50 <HAL_UART_Abort_IT+0x44>
/* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */
if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE)
8014f84: 687b ldr r3, [r7, #4]
8014f86: 6e1b ldr r3, [r3, #96] ; 0x60
8014f88: 2b01 cmp r3, #1
8014f8a: d118 bne.n 8014fbe <HAL_UART_Abort_IT+0xb2>
{
ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE));
8014f8c: 687b ldr r3, [r7, #4]
8014f8e: 681b ldr r3, [r3, #0]
8014f90: 63bb str r3, [r7, #56] ; 0x38
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8014f92: 6bbb ldr r3, [r7, #56] ; 0x38
8014f94: e853 3f00 ldrex r3, [r3]
8014f98: 637b str r3, [r7, #52] ; 0x34
return(result);
8014f9a: 6b7b ldr r3, [r7, #52] ; 0x34
8014f9c: f023 0310 bic.w r3, r3, #16
8014fa0: 67bb str r3, [r7, #120] ; 0x78
8014fa2: 687b ldr r3, [r7, #4]
8014fa4: 681b ldr r3, [r3, #0]
8014fa6: 461a mov r2, r3
8014fa8: 6fbb ldr r3, [r7, #120] ; 0x78
8014faa: 647b str r3, [r7, #68] ; 0x44
8014fac: 643a str r2, [r7, #64] ; 0x40
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8014fae: 6c39 ldr r1, [r7, #64] ; 0x40
8014fb0: 6c7a ldr r2, [r7, #68] ; 0x44
8014fb2: e841 2300 strex r3, r2, [r1]
8014fb6: 63fb str r3, [r7, #60] ; 0x3c
return(result);
8014fb8: 6bfb ldr r3, [r7, #60] ; 0x3c
8014fba: 2b00 cmp r3, #0
8014fbc: d1e6 bne.n 8014f8c <HAL_UART_Abort_IT+0x80>
}
/* If DMA Tx and/or DMA Rx Handles are associated to UART Handle, DMA Abort complete callbacks should be initialised
before any call to DMA Abort functions */
/* DMA Tx Handle is valid */
if (huart->hdmatx != NULL)
8014fbe: 687b ldr r3, [r7, #4]
8014fc0: 6edb ldr r3, [r3, #108] ; 0x6c
8014fc2: 2b00 cmp r3, #0
8014fc4: d00f beq.n 8014fe6 <HAL_UART_Abort_IT+0xda>
{
/* Set DMA Abort Complete callback if UART DMA Tx request if enabled.
Otherwise, set it to NULL */
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT))
8014fc6: 687b ldr r3, [r7, #4]
8014fc8: 681b ldr r3, [r3, #0]
8014fca: 689b ldr r3, [r3, #8]
8014fcc: f003 0380 and.w r3, r3, #128 ; 0x80
8014fd0: 2b80 cmp r3, #128 ; 0x80
8014fd2: d104 bne.n 8014fde <HAL_UART_Abort_IT+0xd2>
{
huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback;
8014fd4: 687b ldr r3, [r7, #4]
8014fd6: 6edb ldr r3, [r3, #108] ; 0x6c
8014fd8: 4a5d ldr r2, [pc, #372] ; (8015150 <HAL_UART_Abort_IT+0x244>)
8014fda: 651a str r2, [r3, #80] ; 0x50
8014fdc: e003 b.n 8014fe6 <HAL_UART_Abort_IT+0xda>
}
else
{
huart->hdmatx->XferAbortCallback = NULL;
8014fde: 687b ldr r3, [r7, #4]
8014fe0: 6edb ldr r3, [r3, #108] ; 0x6c
8014fe2: 2200 movs r2, #0
8014fe4: 651a str r2, [r3, #80] ; 0x50
}
}
/* DMA Rx Handle is valid */
if (huart->hdmarx != NULL)
8014fe6: 687b ldr r3, [r7, #4]
8014fe8: 6f1b ldr r3, [r3, #112] ; 0x70
8014fea: 2b00 cmp r3, #0
8014fec: d00f beq.n 801500e <HAL_UART_Abort_IT+0x102>
{
/* Set DMA Abort Complete callback if UART DMA Rx request if enabled.
Otherwise, set it to NULL */
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
8014fee: 687b ldr r3, [r7, #4]
8014ff0: 681b ldr r3, [r3, #0]
8014ff2: 689b ldr r3, [r3, #8]
8014ff4: f003 0340 and.w r3, r3, #64 ; 0x40
8014ff8: 2b40 cmp r3, #64 ; 0x40
8014ffa: d104 bne.n 8015006 <HAL_UART_Abort_IT+0xfa>
{
huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback;
8014ffc: 687b ldr r3, [r7, #4]
8014ffe: 6f1b ldr r3, [r3, #112] ; 0x70
8015000: 4a54 ldr r2, [pc, #336] ; (8015154 <HAL_UART_Abort_IT+0x248>)
8015002: 651a str r2, [r3, #80] ; 0x50
8015004: e003 b.n 801500e <HAL_UART_Abort_IT+0x102>
}
else
{
huart->hdmarx->XferAbortCallback = NULL;
8015006: 687b ldr r3, [r7, #4]
8015008: 6f1b ldr r3, [r3, #112] ; 0x70
801500a: 2200 movs r2, #0
801500c: 651a str r2, [r3, #80] ; 0x50
}
}
/* Abort the UART DMA Tx channel if enabled */
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAT))
801500e: 687b ldr r3, [r7, #4]
8015010: 681b ldr r3, [r3, #0]
8015012: 689b ldr r3, [r3, #8]
8015014: f003 0380 and.w r3, r3, #128 ; 0x80
8015018: 2b80 cmp r3, #128 ; 0x80
801501a: d12d bne.n 8015078 <HAL_UART_Abort_IT+0x16c>
{
/* Disable DMA Tx at UART level */
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT);
801501c: 687b ldr r3, [r7, #4]
801501e: 681b ldr r3, [r3, #0]
8015020: 3308 adds r3, #8
8015022: 627b str r3, [r7, #36] ; 0x24
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015024: 6a7b ldr r3, [r7, #36] ; 0x24
8015026: e853 3f00 ldrex r3, [r3]
801502a: 623b str r3, [r7, #32]
return(result);
801502c: 6a3b ldr r3, [r7, #32]
801502e: f023 0380 bic.w r3, r3, #128 ; 0x80
8015032: 677b str r3, [r7, #116] ; 0x74
8015034: 687b ldr r3, [r7, #4]
8015036: 681b ldr r3, [r3, #0]
8015038: 3308 adds r3, #8
801503a: 6f7a ldr r2, [r7, #116] ; 0x74
801503c: 633a str r2, [r7, #48] ; 0x30
801503e: 62fb str r3, [r7, #44] ; 0x2c
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015040: 6af9 ldr r1, [r7, #44] ; 0x2c
8015042: 6b3a ldr r2, [r7, #48] ; 0x30
8015044: e841 2300 strex r3, r2, [r1]
8015048: 62bb str r3, [r7, #40] ; 0x28
return(result);
801504a: 6abb ldr r3, [r7, #40] ; 0x28
801504c: 2b00 cmp r3, #0
801504e: d1e5 bne.n 801501c <HAL_UART_Abort_IT+0x110>
/* Abort the UART DMA Tx channel : use non blocking DMA Abort API (callback) */
if (huart->hdmatx != NULL)
8015050: 687b ldr r3, [r7, #4]
8015052: 6edb ldr r3, [r3, #108] ; 0x6c
8015054: 2b00 cmp r3, #0
8015056: d00f beq.n 8015078 <HAL_UART_Abort_IT+0x16c>
{
/* UART Tx DMA Abort callback has already been initialised :
will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */
/* Abort DMA TX */
if (HAL_DMA_Abort_IT(huart->hdmatx) != HAL_OK)
8015058: 687b ldr r3, [r7, #4]
801505a: 6edb ldr r3, [r3, #108] ; 0x6c
801505c: 4618 mov r0, r3
801505e: f7fc fc5e bl 801191e <HAL_DMA_Abort_IT>
8015062: 4603 mov r3, r0
8015064: 2b00 cmp r3, #0
8015066: d004 beq.n 8015072 <HAL_UART_Abort_IT+0x166>
{
huart->hdmatx->XferAbortCallback = NULL;
8015068: 687b ldr r3, [r7, #4]
801506a: 6edb ldr r3, [r3, #108] ; 0x6c
801506c: 2200 movs r2, #0
801506e: 651a str r2, [r3, #80] ; 0x50
8015070: e002 b.n 8015078 <HAL_UART_Abort_IT+0x16c>
}
else
{
abortcplt = 0U;
8015072: 2300 movs r3, #0
8015074: f8c7 3084 str.w r3, [r7, #132] ; 0x84
}
}
}
/* Abort the UART DMA Rx channel if enabled */
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
8015078: 687b ldr r3, [r7, #4]
801507a: 681b ldr r3, [r3, #0]
801507c: 689b ldr r3, [r3, #8]
801507e: f003 0340 and.w r3, r3, #64 ; 0x40
8015082: 2b40 cmp r3, #64 ; 0x40
8015084: d130 bne.n 80150e8 <HAL_UART_Abort_IT+0x1dc>
{
/* Disable the UART DMA Rx request if enabled */
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
8015086: 687b ldr r3, [r7, #4]
8015088: 681b ldr r3, [r3, #0]
801508a: 3308 adds r3, #8
801508c: 613b str r3, [r7, #16]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
801508e: 693b ldr r3, [r7, #16]
8015090: e853 3f00 ldrex r3, [r3]
8015094: 60fb str r3, [r7, #12]
return(result);
8015096: 68fb ldr r3, [r7, #12]
8015098: f023 0340 bic.w r3, r3, #64 ; 0x40
801509c: 673b str r3, [r7, #112] ; 0x70
801509e: 687b ldr r3, [r7, #4]
80150a0: 681b ldr r3, [r3, #0]
80150a2: 3308 adds r3, #8
80150a4: 6f3a ldr r2, [r7, #112] ; 0x70
80150a6: 61fa str r2, [r7, #28]
80150a8: 61bb str r3, [r7, #24]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80150aa: 69b9 ldr r1, [r7, #24]
80150ac: 69fa ldr r2, [r7, #28]
80150ae: e841 2300 strex r3, r2, [r1]
80150b2: 617b str r3, [r7, #20]
return(result);
80150b4: 697b ldr r3, [r7, #20]
80150b6: 2b00 cmp r3, #0
80150b8: d1e5 bne.n 8015086 <HAL_UART_Abort_IT+0x17a>
/* Abort the UART DMA Rx channel : use non blocking DMA Abort API (callback) */
if (huart->hdmarx != NULL)
80150ba: 687b ldr r3, [r7, #4]
80150bc: 6f1b ldr r3, [r3, #112] ; 0x70
80150be: 2b00 cmp r3, #0
80150c0: d012 beq.n 80150e8 <HAL_UART_Abort_IT+0x1dc>
{
/* UART Rx DMA Abort callback has already been initialised :
will lead to call HAL_UART_AbortCpltCallback() at end of DMA abort procedure */
/* Abort DMA RX */
if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK)
80150c2: 687b ldr r3, [r7, #4]
80150c4: 6f1b ldr r3, [r3, #112] ; 0x70
80150c6: 4618 mov r0, r3
80150c8: f7fc fc29 bl 801191e <HAL_DMA_Abort_IT>
80150cc: 4603 mov r3, r0
80150ce: 2b00 cmp r3, #0
80150d0: d007 beq.n 80150e2 <HAL_UART_Abort_IT+0x1d6>
{
huart->hdmarx->XferAbortCallback = NULL;
80150d2: 687b ldr r3, [r7, #4]
80150d4: 6f1b ldr r3, [r3, #112] ; 0x70
80150d6: 2200 movs r2, #0
80150d8: 651a str r2, [r3, #80] ; 0x50
abortcplt = 1U;
80150da: 2301 movs r3, #1
80150dc: f8c7 3084 str.w r3, [r7, #132] ; 0x84
80150e0: e002 b.n 80150e8 <HAL_UART_Abort_IT+0x1dc>
}
else
{
abortcplt = 0U;
80150e2: 2300 movs r3, #0
80150e4: f8c7 3084 str.w r3, [r7, #132] ; 0x84
}
}
}
/* if no DMA abort complete callback execution is required => call user Abort Complete callback */
if (abortcplt == 1U)
80150e8: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84
80150ec: 2b01 cmp r3, #1
80150ee: d129 bne.n 8015144 <HAL_UART_Abort_IT+0x238>
{
/* Reset Tx and Rx transfer counters */
huart->TxXferCount = 0U;
80150f0: 687b ldr r3, [r7, #4]
80150f2: 2200 movs r2, #0
80150f4: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
huart->RxXferCount = 0U;
80150f8: 687b ldr r3, [r7, #4]
80150fa: 2200 movs r2, #0
80150fc: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
/* Clear ISR function pointers */
huart->RxISR = NULL;
8015100: 687b ldr r3, [r7, #4]
8015102: 2200 movs r2, #0
8015104: 665a str r2, [r3, #100] ; 0x64
huart->TxISR = NULL;
8015106: 687b ldr r3, [r7, #4]
8015108: 2200 movs r2, #0
801510a: 669a str r2, [r3, #104] ; 0x68
/* Reset errorCode */
huart->ErrorCode = HAL_UART_ERROR_NONE;
801510c: 687b ldr r3, [r7, #4]
801510e: 2200 movs r2, #0
8015110: f8c3 2080 str.w r2, [r3, #128] ; 0x80
/* Clear the Error flags in the ICR register */
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF);
8015114: 687b ldr r3, [r7, #4]
8015116: 681b ldr r3, [r3, #0]
8015118: 220f movs r2, #15
801511a: 621a str r2, [r3, #32]
/* Discard the received data */
__HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
801511c: 687b ldr r3, [r7, #4]
801511e: 681b ldr r3, [r3, #0]
8015120: 687a ldr r2, [r7, #4]
8015122: 6812 ldr r2, [r2, #0]
8015124: 6992 ldr r2, [r2, #24]
8015126: f042 0208 orr.w r2, r2, #8
801512a: 619a str r2, [r3, #24]
/* Restore huart->gState and huart->RxState to Ready */
huart->gState = HAL_UART_STATE_READY;
801512c: 687b ldr r3, [r7, #4]
801512e: 2220 movs r2, #32
8015130: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
8015132: 687b ldr r3, [r7, #4]
8015134: 2220 movs r2, #32
8015136: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
8015138: 687b ldr r3, [r7, #4]
801513a: 2200 movs r2, #0
801513c: 661a str r2, [r3, #96] ; 0x60
#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
/* Call registered Abort complete callback */
huart->AbortCpltCallback(huart);
#else
/* Call legacy weak Abort complete callback */
HAL_UART_AbortCpltCallback(huart);
801513e: 6878 ldr r0, [r7, #4]
8015140: f000 faea bl 8015718 <HAL_UART_AbortCpltCallback>
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
}
return HAL_OK;
8015144: 2300 movs r3, #0
}
8015146: 4618 mov r0, r3
8015148: 3788 adds r7, #136 ; 0x88
801514a: 46bd mov sp, r7
801514c: bd80 pop {r7, pc}
801514e: bf00 nop
8015150: 08016069 .word 0x08016069
8015154: 080160d3 .word 0x080160d3
08015158 <HAL_UART_IRQHandler>:
* @brief Handle UART interrupt request.
* @param huart UART handle.
* @retval None
*/
void HAL_UART_IRQHandler(UART_HandleTypeDef *huart)
{
8015158: b580 push {r7, lr}
801515a: b0ba sub sp, #232 ; 0xe8
801515c: af00 add r7, sp, #0
801515e: 6078 str r0, [r7, #4]
uint32_t isrflags = READ_REG(huart->Instance->ISR);
8015160: 687b ldr r3, [r7, #4]
8015162: 681b ldr r3, [r3, #0]
8015164: 69db ldr r3, [r3, #28]
8015166: f8c7 30e4 str.w r3, [r7, #228] ; 0xe4
uint32_t cr1its = READ_REG(huart->Instance->CR1);
801516a: 687b ldr r3, [r7, #4]
801516c: 681b ldr r3, [r3, #0]
801516e: 681b ldr r3, [r3, #0]
8015170: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0
uint32_t cr3its = READ_REG(huart->Instance->CR3);
8015174: 687b ldr r3, [r7, #4]
8015176: 681b ldr r3, [r3, #0]
8015178: 689b ldr r3, [r3, #8]
801517a: f8c7 30dc str.w r3, [r7, #220] ; 0xdc
uint32_t errorflags;
uint32_t errorcode;
/* If no error occurs */
errorflags = (isrflags & (uint32_t)(USART_ISR_PE | USART_ISR_FE | USART_ISR_ORE | USART_ISR_NE | USART_ISR_RTOF));
801517e: f8d7 20e4 ldr.w r2, [r7, #228] ; 0xe4
8015182: f640 030f movw r3, #2063 ; 0x80f
8015186: 4013 ands r3, r2
8015188: f8c7 30d8 str.w r3, [r7, #216] ; 0xd8
if (errorflags == 0U)
801518c: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8
8015190: 2b00 cmp r3, #0
8015192: d115 bne.n 80151c0 <HAL_UART_IRQHandler+0x68>
{
/* UART in mode Receiver ---------------------------------------------------*/
if (((isrflags & USART_ISR_RXNE) != 0U)
8015194: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
8015198: f003 0320 and.w r3, r3, #32
801519c: 2b00 cmp r3, #0
801519e: d00f beq.n 80151c0 <HAL_UART_IRQHandler+0x68>
&& ((cr1its & USART_CR1_RXNEIE) != 0U))
80151a0: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
80151a4: f003 0320 and.w r3, r3, #32
80151a8: 2b00 cmp r3, #0
80151aa: d009 beq.n 80151c0 <HAL_UART_IRQHandler+0x68>
{
if (huart->RxISR != NULL)
80151ac: 687b ldr r3, [r7, #4]
80151ae: 6e5b ldr r3, [r3, #100] ; 0x64
80151b0: 2b00 cmp r3, #0
80151b2: f000 82a5 beq.w 8015700 <HAL_UART_IRQHandler+0x5a8>
{
huart->RxISR(huart);
80151b6: 687b ldr r3, [r7, #4]
80151b8: 6e5b ldr r3, [r3, #100] ; 0x64
80151ba: 6878 ldr r0, [r7, #4]
80151bc: 4798 blx r3
}
return;
80151be: e29f b.n 8015700 <HAL_UART_IRQHandler+0x5a8>
}
}
/* If some errors occur */
if ((errorflags != 0U)
80151c0: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8
80151c4: 2b00 cmp r3, #0
80151c6: f000 8117 beq.w 80153f8 <HAL_UART_IRQHandler+0x2a0>
&& (((cr3its & USART_CR3_EIE) != 0U)
80151ca: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc
80151ce: f003 0301 and.w r3, r3, #1
80151d2: 2b00 cmp r3, #0
80151d4: d106 bne.n 80151e4 <HAL_UART_IRQHandler+0x8c>
|| ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_RTOIE)) != 0U)))
80151d6: f8d7 20e0 ldr.w r2, [r7, #224] ; 0xe0
80151da: 4b85 ldr r3, [pc, #532] ; (80153f0 <HAL_UART_IRQHandler+0x298>)
80151dc: 4013 ands r3, r2
80151de: 2b00 cmp r3, #0
80151e0: f000 810a beq.w 80153f8 <HAL_UART_IRQHandler+0x2a0>
{
/* UART parity error interrupt occurred -------------------------------------*/
if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U))
80151e4: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
80151e8: f003 0301 and.w r3, r3, #1
80151ec: 2b00 cmp r3, #0
80151ee: d011 beq.n 8015214 <HAL_UART_IRQHandler+0xbc>
80151f0: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
80151f4: f403 7380 and.w r3, r3, #256 ; 0x100
80151f8: 2b00 cmp r3, #0
80151fa: d00b beq.n 8015214 <HAL_UART_IRQHandler+0xbc>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF);
80151fc: 687b ldr r3, [r7, #4]
80151fe: 681b ldr r3, [r3, #0]
8015200: 2201 movs r2, #1
8015202: 621a str r2, [r3, #32]
huart->ErrorCode |= HAL_UART_ERROR_PE;
8015204: 687b ldr r3, [r7, #4]
8015206: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
801520a: f043 0201 orr.w r2, r3, #1
801520e: 687b ldr r3, [r7, #4]
8015210: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
/* UART frame error interrupt occurred --------------------------------------*/
if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U))
8015214: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
8015218: f003 0302 and.w r3, r3, #2
801521c: 2b00 cmp r3, #0
801521e: d011 beq.n 8015244 <HAL_UART_IRQHandler+0xec>
8015220: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc
8015224: f003 0301 and.w r3, r3, #1
8015228: 2b00 cmp r3, #0
801522a: d00b beq.n 8015244 <HAL_UART_IRQHandler+0xec>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF);
801522c: 687b ldr r3, [r7, #4]
801522e: 681b ldr r3, [r3, #0]
8015230: 2202 movs r2, #2
8015232: 621a str r2, [r3, #32]
huart->ErrorCode |= HAL_UART_ERROR_FE;
8015234: 687b ldr r3, [r7, #4]
8015236: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
801523a: f043 0204 orr.w r2, r3, #4
801523e: 687b ldr r3, [r7, #4]
8015240: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
/* UART noise error interrupt occurred --------------------------------------*/
if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U))
8015244: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
8015248: f003 0304 and.w r3, r3, #4
801524c: 2b00 cmp r3, #0
801524e: d011 beq.n 8015274 <HAL_UART_IRQHandler+0x11c>
8015250: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc
8015254: f003 0301 and.w r3, r3, #1
8015258: 2b00 cmp r3, #0
801525a: d00b beq.n 8015274 <HAL_UART_IRQHandler+0x11c>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF);
801525c: 687b ldr r3, [r7, #4]
801525e: 681b ldr r3, [r3, #0]
8015260: 2204 movs r2, #4
8015262: 621a str r2, [r3, #32]
huart->ErrorCode |= HAL_UART_ERROR_NE;
8015264: 687b ldr r3, [r7, #4]
8015266: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
801526a: f043 0202 orr.w r2, r3, #2
801526e: 687b ldr r3, [r7, #4]
8015270: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
/* UART Over-Run interrupt occurred -----------------------------------------*/
if (((isrflags & USART_ISR_ORE) != 0U)
8015274: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
8015278: f003 0308 and.w r3, r3, #8
801527c: 2b00 cmp r3, #0
801527e: d017 beq.n 80152b0 <HAL_UART_IRQHandler+0x158>
&& (((cr1its & USART_CR1_RXNEIE) != 0U) ||
8015280: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
8015284: f003 0320 and.w r3, r3, #32
8015288: 2b00 cmp r3, #0
801528a: d105 bne.n 8015298 <HAL_UART_IRQHandler+0x140>
((cr3its & USART_CR3_EIE) != 0U)))
801528c: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc
8015290: f003 0301 and.w r3, r3, #1
&& (((cr1its & USART_CR1_RXNEIE) != 0U) ||
8015294: 2b00 cmp r3, #0
8015296: d00b beq.n 80152b0 <HAL_UART_IRQHandler+0x158>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF);
8015298: 687b ldr r3, [r7, #4]
801529a: 681b ldr r3, [r3, #0]
801529c: 2208 movs r2, #8
801529e: 621a str r2, [r3, #32]
huart->ErrorCode |= HAL_UART_ERROR_ORE;
80152a0: 687b ldr r3, [r7, #4]
80152a2: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
80152a6: f043 0208 orr.w r2, r3, #8
80152aa: 687b ldr r3, [r7, #4]
80152ac: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
/* UART Receiver Timeout interrupt occurred ---------------------------------*/
if (((isrflags & USART_ISR_RTOF) != 0U) && ((cr1its & USART_CR1_RTOIE) != 0U))
80152b0: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
80152b4: f403 6300 and.w r3, r3, #2048 ; 0x800
80152b8: 2b00 cmp r3, #0
80152ba: d012 beq.n 80152e2 <HAL_UART_IRQHandler+0x18a>
80152bc: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
80152c0: f003 6380 and.w r3, r3, #67108864 ; 0x4000000
80152c4: 2b00 cmp r3, #0
80152c6: d00c beq.n 80152e2 <HAL_UART_IRQHandler+0x18a>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF);
80152c8: 687b ldr r3, [r7, #4]
80152ca: 681b ldr r3, [r3, #0]
80152cc: f44f 6200 mov.w r2, #2048 ; 0x800
80152d0: 621a str r2, [r3, #32]
huart->ErrorCode |= HAL_UART_ERROR_RTO;
80152d2: 687b ldr r3, [r7, #4]
80152d4: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
80152d8: f043 0220 orr.w r2, r3, #32
80152dc: 687b ldr r3, [r7, #4]
80152de: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
/* Call UART Error Call back function if need be ----------------------------*/
if (huart->ErrorCode != HAL_UART_ERROR_NONE)
80152e2: 687b ldr r3, [r7, #4]
80152e4: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
80152e8: 2b00 cmp r3, #0
80152ea: f000 820b beq.w 8015704 <HAL_UART_IRQHandler+0x5ac>
{
/* UART in mode Receiver --------------------------------------------------*/
if (((isrflags & USART_ISR_RXNE) != 0U)
80152ee: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
80152f2: f003 0320 and.w r3, r3, #32
80152f6: 2b00 cmp r3, #0
80152f8: d00d beq.n 8015316 <HAL_UART_IRQHandler+0x1be>
&& ((cr1its & USART_CR1_RXNEIE) != 0U))
80152fa: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
80152fe: f003 0320 and.w r3, r3, #32
8015302: 2b00 cmp r3, #0
8015304: d007 beq.n 8015316 <HAL_UART_IRQHandler+0x1be>
{
if (huart->RxISR != NULL)
8015306: 687b ldr r3, [r7, #4]
8015308: 6e5b ldr r3, [r3, #100] ; 0x64
801530a: 2b00 cmp r3, #0
801530c: d003 beq.n 8015316 <HAL_UART_IRQHandler+0x1be>
{
huart->RxISR(huart);
801530e: 687b ldr r3, [r7, #4]
8015310: 6e5b ldr r3, [r3, #100] ; 0x64
8015312: 6878 ldr r0, [r7, #4]
8015314: 4798 blx r3
/* If Error is to be considered as blocking :
- Receiver Timeout error in Reception
- Overrun error in Reception
- any error occurs in DMA mode reception
*/
errorcode = huart->ErrorCode;
8015316: 687b ldr r3, [r7, #4]
8015318: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
801531c: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4
if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) ||
8015320: 687b ldr r3, [r7, #4]
8015322: 681b ldr r3, [r3, #0]
8015324: 689b ldr r3, [r3, #8]
8015326: f003 0340 and.w r3, r3, #64 ; 0x40
801532a: 2b40 cmp r3, #64 ; 0x40
801532c: d005 beq.n 801533a <HAL_UART_IRQHandler+0x1e2>
((errorcode & (HAL_UART_ERROR_RTO | HAL_UART_ERROR_ORE)) != 0U))
801532e: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4
8015332: f003 0328 and.w r3, r3, #40 ; 0x28
if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) ||
8015336: 2b00 cmp r3, #0
8015338: d04f beq.n 80153da <HAL_UART_IRQHandler+0x282>
{
/* Blocking error : transfer is aborted
Set the UART state ready to be able to start again the process,
Disable Rx Interrupts, and disable Rx DMA request, if ongoing */
UART_EndRxTransfer(huart);
801533a: 6878 ldr r0, [r7, #4]
801533c: f000 fe1b bl 8015f76 <UART_EndRxTransfer>
/* Abort the UART DMA Rx channel if enabled */
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
8015340: 687b ldr r3, [r7, #4]
8015342: 681b ldr r3, [r3, #0]
8015344: 689b ldr r3, [r3, #8]
8015346: f003 0340 and.w r3, r3, #64 ; 0x40
801534a: 2b40 cmp r3, #64 ; 0x40
801534c: d141 bne.n 80153d2 <HAL_UART_IRQHandler+0x27a>
{
/* Disable the UART DMA Rx request if enabled */
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
801534e: 687b ldr r3, [r7, #4]
8015350: 681b ldr r3, [r3, #0]
8015352: 3308 adds r3, #8
8015354: f8c7 309c str.w r3, [r7, #156] ; 0x9c
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015358: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c
801535c: e853 3f00 ldrex r3, [r3]
8015360: f8c7 3098 str.w r3, [r7, #152] ; 0x98
return(result);
8015364: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98
8015368: f023 0340 bic.w r3, r3, #64 ; 0x40
801536c: f8c7 30d0 str.w r3, [r7, #208] ; 0xd0
8015370: 687b ldr r3, [r7, #4]
8015372: 681b ldr r3, [r3, #0]
8015374: 3308 adds r3, #8
8015376: f8d7 20d0 ldr.w r2, [r7, #208] ; 0xd0
801537a: f8c7 20a8 str.w r2, [r7, #168] ; 0xa8
801537e: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015382: f8d7 10a4 ldr.w r1, [r7, #164] ; 0xa4
8015386: f8d7 20a8 ldr.w r2, [r7, #168] ; 0xa8
801538a: e841 2300 strex r3, r2, [r1]
801538e: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0
return(result);
8015392: f8d7 30a0 ldr.w r3, [r7, #160] ; 0xa0
8015396: 2b00 cmp r3, #0
8015398: d1d9 bne.n 801534e <HAL_UART_IRQHandler+0x1f6>
/* Abort the UART DMA Rx channel */
if (huart->hdmarx != NULL)
801539a: 687b ldr r3, [r7, #4]
801539c: 6f1b ldr r3, [r3, #112] ; 0x70
801539e: 2b00 cmp r3, #0
80153a0: d013 beq.n 80153ca <HAL_UART_IRQHandler+0x272>
{
/* Set the UART DMA Abort callback :
will lead to call HAL_UART_ErrorCallback() at end of DMA abort procedure */
huart->hdmarx->XferAbortCallback = UART_DMAAbortOnError;
80153a2: 687b ldr r3, [r7, #4]
80153a4: 6f1b ldr r3, [r3, #112] ; 0x70
80153a6: 4a13 ldr r2, [pc, #76] ; (80153f4 <HAL_UART_IRQHandler+0x29c>)
80153a8: 651a str r2, [r3, #80] ; 0x50
/* Abort DMA RX */
if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK)
80153aa: 687b ldr r3, [r7, #4]
80153ac: 6f1b ldr r3, [r3, #112] ; 0x70
80153ae: 4618 mov r0, r3
80153b0: f7fc fab5 bl 801191e <HAL_DMA_Abort_IT>
80153b4: 4603 mov r3, r0
80153b6: 2b00 cmp r3, #0
80153b8: d017 beq.n 80153ea <HAL_UART_IRQHandler+0x292>
{
/* Call Directly huart->hdmarx->XferAbortCallback function in case of error */
huart->hdmarx->XferAbortCallback(huart->hdmarx);
80153ba: 687b ldr r3, [r7, #4]
80153bc: 6f1b ldr r3, [r3, #112] ; 0x70
80153be: 6d1b ldr r3, [r3, #80] ; 0x50
80153c0: 687a ldr r2, [r7, #4]
80153c2: 6f12 ldr r2, [r2, #112] ; 0x70
80153c4: 4610 mov r0, r2
80153c6: 4798 blx r3
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
80153c8: e00f b.n 80153ea <HAL_UART_IRQHandler+0x292>
#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
/*Call registered error callback*/
huart->ErrorCallback(huart);
#else
/*Call legacy weak error callback*/
HAL_UART_ErrorCallback(huart);
80153ca: 6878 ldr r0, [r7, #4]
80153cc: f7fa fd7a bl 800fec4 <HAL_UART_ErrorCallback>
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
80153d0: e00b b.n 80153ea <HAL_UART_IRQHandler+0x292>
#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
/*Call registered error callback*/
huart->ErrorCallback(huart);
#else
/*Call legacy weak error callback*/
HAL_UART_ErrorCallback(huart);
80153d2: 6878 ldr r0, [r7, #4]
80153d4: f7fa fd76 bl 800fec4 <HAL_UART_ErrorCallback>
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
80153d8: e007 b.n 80153ea <HAL_UART_IRQHandler+0x292>
#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
/*Call registered error callback*/
huart->ErrorCallback(huart);
#else
/*Call legacy weak error callback*/
HAL_UART_ErrorCallback(huart);
80153da: 6878 ldr r0, [r7, #4]
80153dc: f7fa fd72 bl 800fec4 <HAL_UART_ErrorCallback>
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
huart->ErrorCode = HAL_UART_ERROR_NONE;
80153e0: 687b ldr r3, [r7, #4]
80153e2: 2200 movs r2, #0
80153e4: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
}
return;
80153e8: e18c b.n 8015704 <HAL_UART_IRQHandler+0x5ac>
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
80153ea: bf00 nop
return;
80153ec: e18a b.n 8015704 <HAL_UART_IRQHandler+0x5ac>
80153ee: bf00 nop
80153f0: 04000120 .word 0x04000120
80153f4: 0801603d .word 0x0801603d
} /* End if some error occurs */
/* Check current reception Mode :
If Reception till IDLE event has been selected : */
if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE)
80153f8: 687b ldr r3, [r7, #4]
80153fa: 6e1b ldr r3, [r3, #96] ; 0x60
80153fc: 2b01 cmp r3, #1
80153fe: f040 8144 bne.w 801568a <HAL_UART_IRQHandler+0x532>
&& ((isrflags & USART_ISR_IDLE) != 0U)
8015402: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
8015406: f003 0310 and.w r3, r3, #16
801540a: 2b00 cmp r3, #0
801540c: f000 813d beq.w 801568a <HAL_UART_IRQHandler+0x532>
&& ((cr1its & USART_ISR_IDLE) != 0U))
8015410: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
8015414: f003 0310 and.w r3, r3, #16
8015418: 2b00 cmp r3, #0
801541a: f000 8136 beq.w 801568a <HAL_UART_IRQHandler+0x532>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF);
801541e: 687b ldr r3, [r7, #4]
8015420: 681b ldr r3, [r3, #0]
8015422: 2210 movs r2, #16
8015424: 621a str r2, [r3, #32]
/* Check if DMA mode is enabled in UART */
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
8015426: 687b ldr r3, [r7, #4]
8015428: 681b ldr r3, [r3, #0]
801542a: 689b ldr r3, [r3, #8]
801542c: f003 0340 and.w r3, r3, #64 ; 0x40
8015430: 2b40 cmp r3, #64 ; 0x40
8015432: f040 80b2 bne.w 801559a <HAL_UART_IRQHandler+0x442>
{
/* DMA mode enabled */
/* Check received length : If all expected data are received, do nothing,
(DMA cplt callback will be called).
Otherwise, if at least one data has already been received, IDLE event is to be notified to user */
uint16_t nb_remaining_rx_data = (uint16_t) __HAL_DMA_GET_COUNTER(huart->hdmarx);
8015436: 687b ldr r3, [r7, #4]
8015438: 6f1b ldr r3, [r3, #112] ; 0x70
801543a: 681b ldr r3, [r3, #0]
801543c: 685b ldr r3, [r3, #4]
801543e: f8a7 30ce strh.w r3, [r7, #206] ; 0xce
if ((nb_remaining_rx_data > 0U)
8015442: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce
8015446: 2b00 cmp r3, #0
8015448: f000 815e beq.w 8015708 <HAL_UART_IRQHandler+0x5b0>
&& (nb_remaining_rx_data < huart->RxXferSize))
801544c: 687b ldr r3, [r7, #4]
801544e: f8b3 3058 ldrh.w r3, [r3, #88] ; 0x58
8015452: f8b7 20ce ldrh.w r2, [r7, #206] ; 0xce
8015456: 429a cmp r2, r3
8015458: f080 8156 bcs.w 8015708 <HAL_UART_IRQHandler+0x5b0>
{
/* Reception is not complete */
huart->RxXferCount = nb_remaining_rx_data;
801545c: 687b ldr r3, [r7, #4]
801545e: f8b7 20ce ldrh.w r2, [r7, #206] ; 0xce
8015462: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
/* In Normal mode, end DMA xfer and HAL UART Rx process*/
if (huart->hdmarx->Init.Mode != DMA_CIRCULAR)
8015466: 687b ldr r3, [r7, #4]
8015468: 6f1b ldr r3, [r3, #112] ; 0x70
801546a: 69db ldr r3, [r3, #28]
801546c: f5b3 7f80 cmp.w r3, #256 ; 0x100
8015470: f000 8085 beq.w 801557e <HAL_UART_IRQHandler+0x426>
{
/* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE);
8015474: 687b ldr r3, [r7, #4]
8015476: 681b ldr r3, [r3, #0]
8015478: f8c7 3088 str.w r3, [r7, #136] ; 0x88
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
801547c: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88
8015480: e853 3f00 ldrex r3, [r3]
8015484: f8c7 3084 str.w r3, [r7, #132] ; 0x84
return(result);
8015488: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84
801548c: f423 7380 bic.w r3, r3, #256 ; 0x100
8015490: f8c7 30c8 str.w r3, [r7, #200] ; 0xc8
8015494: 687b ldr r3, [r7, #4]
8015496: 681b ldr r3, [r3, #0]
8015498: 461a mov r2, r3
801549a: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8
801549e: f8c7 3094 str.w r3, [r7, #148] ; 0x94
80154a2: f8c7 2090 str.w r2, [r7, #144] ; 0x90
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80154a6: f8d7 1090 ldr.w r1, [r7, #144] ; 0x90
80154aa: f8d7 2094 ldr.w r2, [r7, #148] ; 0x94
80154ae: e841 2300 strex r3, r2, [r1]
80154b2: f8c7 308c str.w r3, [r7, #140] ; 0x8c
return(result);
80154b6: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c
80154ba: 2b00 cmp r3, #0
80154bc: d1da bne.n 8015474 <HAL_UART_IRQHandler+0x31c>
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
80154be: 687b ldr r3, [r7, #4]
80154c0: 681b ldr r3, [r3, #0]
80154c2: 3308 adds r3, #8
80154c4: 677b str r3, [r7, #116] ; 0x74
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
80154c6: 6f7b ldr r3, [r7, #116] ; 0x74
80154c8: e853 3f00 ldrex r3, [r3]
80154cc: 673b str r3, [r7, #112] ; 0x70
return(result);
80154ce: 6f3b ldr r3, [r7, #112] ; 0x70
80154d0: f023 0301 bic.w r3, r3, #1
80154d4: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4
80154d8: 687b ldr r3, [r7, #4]
80154da: 681b ldr r3, [r3, #0]
80154dc: 3308 adds r3, #8
80154de: f8d7 20c4 ldr.w r2, [r7, #196] ; 0xc4
80154e2: f8c7 2080 str.w r2, [r7, #128] ; 0x80
80154e6: 67fb str r3, [r7, #124] ; 0x7c
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80154e8: 6ff9 ldr r1, [r7, #124] ; 0x7c
80154ea: f8d7 2080 ldr.w r2, [r7, #128] ; 0x80
80154ee: e841 2300 strex r3, r2, [r1]
80154f2: 67bb str r3, [r7, #120] ; 0x78
return(result);
80154f4: 6fbb ldr r3, [r7, #120] ; 0x78
80154f6: 2b00 cmp r3, #0
80154f8: d1e1 bne.n 80154be <HAL_UART_IRQHandler+0x366>
/* Disable the DMA transfer for the receiver request by resetting the DMAR bit
in the UART CR3 register */
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
80154fa: 687b ldr r3, [r7, #4]
80154fc: 681b ldr r3, [r3, #0]
80154fe: 3308 adds r3, #8
8015500: 663b str r3, [r7, #96] ; 0x60
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015502: 6e3b ldr r3, [r7, #96] ; 0x60
8015504: e853 3f00 ldrex r3, [r3]
8015508: 65fb str r3, [r7, #92] ; 0x5c
return(result);
801550a: 6dfb ldr r3, [r7, #92] ; 0x5c
801550c: f023 0340 bic.w r3, r3, #64 ; 0x40
8015510: f8c7 30c0 str.w r3, [r7, #192] ; 0xc0
8015514: 687b ldr r3, [r7, #4]
8015516: 681b ldr r3, [r3, #0]
8015518: 3308 adds r3, #8
801551a: f8d7 20c0 ldr.w r2, [r7, #192] ; 0xc0
801551e: 66fa str r2, [r7, #108] ; 0x6c
8015520: 66bb str r3, [r7, #104] ; 0x68
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015522: 6eb9 ldr r1, [r7, #104] ; 0x68
8015524: 6efa ldr r2, [r7, #108] ; 0x6c
8015526: e841 2300 strex r3, r2, [r1]
801552a: 667b str r3, [r7, #100] ; 0x64
return(result);
801552c: 6e7b ldr r3, [r7, #100] ; 0x64
801552e: 2b00 cmp r3, #0
8015530: d1e3 bne.n 80154fa <HAL_UART_IRQHandler+0x3a2>
/* At end of Rx process, restore huart->RxState to Ready */
huart->RxState = HAL_UART_STATE_READY;
8015532: 687b ldr r3, [r7, #4]
8015534: 2220 movs r2, #32
8015536: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
8015538: 687b ldr r3, [r7, #4]
801553a: 2200 movs r2, #0
801553c: 661a str r2, [r3, #96] ; 0x60
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
801553e: 687b ldr r3, [r7, #4]
8015540: 681b ldr r3, [r3, #0]
8015542: 64fb str r3, [r7, #76] ; 0x4c
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015544: 6cfb ldr r3, [r7, #76] ; 0x4c
8015546: e853 3f00 ldrex r3, [r3]
801554a: 64bb str r3, [r7, #72] ; 0x48
return(result);
801554c: 6cbb ldr r3, [r7, #72] ; 0x48
801554e: f023 0310 bic.w r3, r3, #16
8015552: f8c7 30bc str.w r3, [r7, #188] ; 0xbc
8015556: 687b ldr r3, [r7, #4]
8015558: 681b ldr r3, [r3, #0]
801555a: 461a mov r2, r3
801555c: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc
8015560: 65bb str r3, [r7, #88] ; 0x58
8015562: 657a str r2, [r7, #84] ; 0x54
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015564: 6d79 ldr r1, [r7, #84] ; 0x54
8015566: 6dba ldr r2, [r7, #88] ; 0x58
8015568: e841 2300 strex r3, r2, [r1]
801556c: 653b str r3, [r7, #80] ; 0x50
return(result);
801556e: 6d3b ldr r3, [r7, #80] ; 0x50
8015570: 2b00 cmp r3, #0
8015572: d1e4 bne.n 801553e <HAL_UART_IRQHandler+0x3e6>
/* Last bytes received, so no need as the abort is immediate */
(void)HAL_DMA_Abort(huart->hdmarx);
8015574: 687b ldr r3, [r7, #4]
8015576: 6f1b ldr r3, [r3, #112] ; 0x70
8015578: 4618 mov r0, r3
801557a: f7fc f960 bl 801183e <HAL_DMA_Abort>
#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
/*Call registered Rx Event callback*/
huart->RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount));
#else
/*Call legacy weak Rx Event callback*/
HAL_UARTEx_RxEventCallback(huart, (huart->RxXferSize - huart->RxXferCount));
801557e: 687b ldr r3, [r7, #4]
8015580: f8b3 2058 ldrh.w r2, [r3, #88] ; 0x58
8015584: 687b ldr r3, [r7, #4]
8015586: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a
801558a: b29b uxth r3, r3
801558c: 1ad3 subs r3, r2, r3
801558e: b29b uxth r3, r3
8015590: 4619 mov r1, r3
8015592: 6878 ldr r0, [r7, #4]
8015594: f000 f8ca bl 801572c <HAL_UARTEx_RxEventCallback>
#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
}
return;
8015598: e0b6 b.n 8015708 <HAL_UART_IRQHandler+0x5b0>
else
{
/* DMA mode not enabled */
/* Check received length : If all expected data are received, do nothing.
Otherwise, if at least one data has already been received, IDLE event is to be notified to user */
uint16_t nb_rx_data = huart->RxXferSize - huart->RxXferCount;
801559a: 687b ldr r3, [r7, #4]
801559c: f8b3 2058 ldrh.w r2, [r3, #88] ; 0x58
80155a0: 687b ldr r3, [r7, #4]
80155a2: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a
80155a6: b29b uxth r3, r3
80155a8: 1ad3 subs r3, r2, r3
80155aa: f8a7 30ba strh.w r3, [r7, #186] ; 0xba
if ((huart->RxXferCount > 0U)
80155ae: 687b ldr r3, [r7, #4]
80155b0: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a
80155b4: b29b uxth r3, r3
80155b6: 2b00 cmp r3, #0
80155b8: f000 80a8 beq.w 801570c <HAL_UART_IRQHandler+0x5b4>
&& (nb_rx_data > 0U))
80155bc: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba
80155c0: 2b00 cmp r3, #0
80155c2: f000 80a3 beq.w 801570c <HAL_UART_IRQHandler+0x5b4>
{
/* Disable the UART Parity Error Interrupt and RXNE interrupts */
ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
80155c6: 687b ldr r3, [r7, #4]
80155c8: 681b ldr r3, [r3, #0]
80155ca: 63bb str r3, [r7, #56] ; 0x38
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
80155cc: 6bbb ldr r3, [r7, #56] ; 0x38
80155ce: e853 3f00 ldrex r3, [r3]
80155d2: 637b str r3, [r7, #52] ; 0x34
return(result);
80155d4: 6b7b ldr r3, [r7, #52] ; 0x34
80155d6: f423 7390 bic.w r3, r3, #288 ; 0x120
80155da: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4
80155de: 687b ldr r3, [r7, #4]
80155e0: 681b ldr r3, [r3, #0]
80155e2: 461a mov r2, r3
80155e4: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4
80155e8: 647b str r3, [r7, #68] ; 0x44
80155ea: 643a str r2, [r7, #64] ; 0x40
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80155ec: 6c39 ldr r1, [r7, #64] ; 0x40
80155ee: 6c7a ldr r2, [r7, #68] ; 0x44
80155f0: e841 2300 strex r3, r2, [r1]
80155f4: 63fb str r3, [r7, #60] ; 0x3c
return(result);
80155f6: 6bfb ldr r3, [r7, #60] ; 0x3c
80155f8: 2b00 cmp r3, #0
80155fa: d1e4 bne.n 80155c6 <HAL_UART_IRQHandler+0x46e>
/* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
80155fc: 687b ldr r3, [r7, #4]
80155fe: 681b ldr r3, [r3, #0]
8015600: 3308 adds r3, #8
8015602: 627b str r3, [r7, #36] ; 0x24
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015604: 6a7b ldr r3, [r7, #36] ; 0x24
8015606: e853 3f00 ldrex r3, [r3]
801560a: 623b str r3, [r7, #32]
return(result);
801560c: 6a3b ldr r3, [r7, #32]
801560e: f023 0301 bic.w r3, r3, #1
8015612: f8c7 30b0 str.w r3, [r7, #176] ; 0xb0
8015616: 687b ldr r3, [r7, #4]
8015618: 681b ldr r3, [r3, #0]
801561a: 3308 adds r3, #8
801561c: f8d7 20b0 ldr.w r2, [r7, #176] ; 0xb0
8015620: 633a str r2, [r7, #48] ; 0x30
8015622: 62fb str r3, [r7, #44] ; 0x2c
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015624: 6af9 ldr r1, [r7, #44] ; 0x2c
8015626: 6b3a ldr r2, [r7, #48] ; 0x30
8015628: e841 2300 strex r3, r2, [r1]
801562c: 62bb str r3, [r7, #40] ; 0x28
return(result);
801562e: 6abb ldr r3, [r7, #40] ; 0x28
8015630: 2b00 cmp r3, #0
8015632: d1e3 bne.n 80155fc <HAL_UART_IRQHandler+0x4a4>
/* Rx process is completed, restore huart->RxState to Ready */
huart->RxState = HAL_UART_STATE_READY;
8015634: 687b ldr r3, [r7, #4]
8015636: 2220 movs r2, #32
8015638: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
801563a: 687b ldr r3, [r7, #4]
801563c: 2200 movs r2, #0
801563e: 661a str r2, [r3, #96] ; 0x60
/* Clear RxISR function pointer */
huart->RxISR = NULL;
8015640: 687b ldr r3, [r7, #4]
8015642: 2200 movs r2, #0
8015644: 665a str r2, [r3, #100] ; 0x64
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
8015646: 687b ldr r3, [r7, #4]
8015648: 681b ldr r3, [r3, #0]
801564a: 613b str r3, [r7, #16]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
801564c: 693b ldr r3, [r7, #16]
801564e: e853 3f00 ldrex r3, [r3]
8015652: 60fb str r3, [r7, #12]
return(result);
8015654: 68fb ldr r3, [r7, #12]
8015656: f023 0310 bic.w r3, r3, #16
801565a: f8c7 30ac str.w r3, [r7, #172] ; 0xac
801565e: 687b ldr r3, [r7, #4]
8015660: 681b ldr r3, [r3, #0]
8015662: 461a mov r2, r3
8015664: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac
8015668: 61fb str r3, [r7, #28]
801566a: 61ba str r2, [r7, #24]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
801566c: 69b9 ldr r1, [r7, #24]
801566e: 69fa ldr r2, [r7, #28]
8015670: e841 2300 strex r3, r2, [r1]
8015674: 617b str r3, [r7, #20]
return(result);
8015676: 697b ldr r3, [r7, #20]
8015678: 2b00 cmp r3, #0
801567a: d1e4 bne.n 8015646 <HAL_UART_IRQHandler+0x4ee>
#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
/*Call registered Rx complete callback*/
huart->RxEventCallback(huart, nb_rx_data);
#else
/*Call legacy weak Rx Event callback*/
HAL_UARTEx_RxEventCallback(huart, nb_rx_data);
801567c: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba
8015680: 4619 mov r1, r3
8015682: 6878 ldr r0, [r7, #4]
8015684: f000 f852 bl 801572c <HAL_UARTEx_RxEventCallback>
#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
}
return;
8015688: e040 b.n 801570c <HAL_UART_IRQHandler+0x5b4>
}
#if defined(USART_CR1_UESM)
#if defined(USART_CR3_WUFIE)
/* UART wakeup from Stop mode interrupt occurred ---------------------------*/
if (((isrflags & USART_ISR_WUF) != 0U) && ((cr3its & USART_CR3_WUFIE) != 0U))
801568a: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
801568e: f403 1380 and.w r3, r3, #1048576 ; 0x100000
8015692: 2b00 cmp r3, #0
8015694: d00e beq.n 80156b4 <HAL_UART_IRQHandler+0x55c>
8015696: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc
801569a: f403 0380 and.w r3, r3, #4194304 ; 0x400000
801569e: 2b00 cmp r3, #0
80156a0: d008 beq.n 80156b4 <HAL_UART_IRQHandler+0x55c>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF);
80156a2: 687b ldr r3, [r7, #4]
80156a4: 681b ldr r3, [r3, #0]
80156a6: f44f 1280 mov.w r2, #1048576 ; 0x100000
80156aa: 621a str r2, [r3, #32]
#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
/* Call registered Wakeup Callback */
huart->WakeupCallback(huart);
#else
/* Call legacy weak Wakeup Callback */
HAL_UARTEx_WakeupCallback(huart);
80156ac: 6878 ldr r0, [r7, #4]
80156ae: f000 f849 bl 8015744 <HAL_UARTEx_WakeupCallback>
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
return;
80156b2: e02e b.n 8015712 <HAL_UART_IRQHandler+0x5ba>
}
#endif /* USART_CR3_WUFIE */
#endif /* USART_CR1_UESM */
/* UART in mode Transmitter ------------------------------------------------*/
if (((isrflags & USART_ISR_TXE) != 0U)
80156b4: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
80156b8: f003 0380 and.w r3, r3, #128 ; 0x80
80156bc: 2b00 cmp r3, #0
80156be: d00e beq.n 80156de <HAL_UART_IRQHandler+0x586>
&& ((cr1its & USART_CR1_TXEIE) != 0U))
80156c0: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
80156c4: f003 0380 and.w r3, r3, #128 ; 0x80
80156c8: 2b00 cmp r3, #0
80156ca: d008 beq.n 80156de <HAL_UART_IRQHandler+0x586>
{
if (huart->TxISR != NULL)
80156cc: 687b ldr r3, [r7, #4]
80156ce: 6e9b ldr r3, [r3, #104] ; 0x68
80156d0: 2b00 cmp r3, #0
80156d2: d01d beq.n 8015710 <HAL_UART_IRQHandler+0x5b8>
{
huart->TxISR(huart);
80156d4: 687b ldr r3, [r7, #4]
80156d6: 6e9b ldr r3, [r3, #104] ; 0x68
80156d8: 6878 ldr r0, [r7, #4]
80156da: 4798 blx r3
}
return;
80156dc: e018 b.n 8015710 <HAL_UART_IRQHandler+0x5b8>
}
/* UART in mode Transmitter (transmission end) -----------------------------*/
if (((isrflags & USART_ISR_TC) != 0U) && ((cr1its & USART_CR1_TCIE) != 0U))
80156de: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
80156e2: f003 0340 and.w r3, r3, #64 ; 0x40
80156e6: 2b00 cmp r3, #0
80156e8: d013 beq.n 8015712 <HAL_UART_IRQHandler+0x5ba>
80156ea: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
80156ee: f003 0340 and.w r3, r3, #64 ; 0x40
80156f2: 2b00 cmp r3, #0
80156f4: d00d beq.n 8015712 <HAL_UART_IRQHandler+0x5ba>
{
UART_EndTransmit_IT(huart);
80156f6: 6878 ldr r0, [r7, #4]
80156f8: f000 fde2 bl 80162c0 <UART_EndTransmit_IT>
return;
80156fc: bf00 nop
80156fe: e008 b.n 8015712 <HAL_UART_IRQHandler+0x5ba>
return;
8015700: bf00 nop
8015702: e006 b.n 8015712 <HAL_UART_IRQHandler+0x5ba>
return;
8015704: bf00 nop
8015706: e004 b.n 8015712 <HAL_UART_IRQHandler+0x5ba>
return;
8015708: bf00 nop
801570a: e002 b.n 8015712 <HAL_UART_IRQHandler+0x5ba>
return;
801570c: bf00 nop
801570e: e000 b.n 8015712 <HAL_UART_IRQHandler+0x5ba>
return;
8015710: bf00 nop
}
}
8015712: 37e8 adds r7, #232 ; 0xe8
8015714: 46bd mov sp, r7
8015716: bd80 pop {r7, pc}
08015718 <HAL_UART_AbortCpltCallback>:
* @brief UART Abort Complete callback.
* @param huart UART handle.
* @retval None
*/
__weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart)
{
8015718: b480 push {r7}
801571a: b083 sub sp, #12
801571c: af00 add r7, sp, #0
801571e: 6078 str r0, [r7, #4]
UNUSED(huart);
/* NOTE : This function should not be modified, when the callback is needed,
the HAL_UART_AbortCpltCallback can be implemented in the user file.
*/
}
8015720: bf00 nop
8015722: 370c adds r7, #12
8015724: 46bd mov sp, r7
8015726: f85d 7b04 ldr.w r7, [sp], #4
801572a: 4770 bx lr
0801572c <HAL_UARTEx_RxEventCallback>:
* @param Size Number of data available in application reception buffer (indicates a position in
* reception buffer until which, data are available)
* @retval None
*/
__weak void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
{
801572c: b480 push {r7}
801572e: b083 sub sp, #12
8015730: af00 add r7, sp, #0
8015732: 6078 str r0, [r7, #4]
8015734: 460b mov r3, r1
8015736: 807b strh r3, [r7, #2]
UNUSED(Size);
/* NOTE : This function should not be modified, when the callback is needed,
the HAL_UARTEx_RxEventCallback can be implemented in the user file.
*/
}
8015738: bf00 nop
801573a: 370c adds r7, #12
801573c: 46bd mov sp, r7
801573e: f85d 7b04 ldr.w r7, [sp], #4
8015742: 4770 bx lr
08015744 <HAL_UARTEx_WakeupCallback>:
* @brief UART wakeup from Stop mode callback.
* @param huart UART handle.
* @retval None
*/
__weak void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart)
{
8015744: b480 push {r7}
8015746: b083 sub sp, #12
8015748: af00 add r7, sp, #0
801574a: 6078 str r0, [r7, #4]
UNUSED(huart);
/* NOTE : This function should not be modified, when the callback is needed,
the HAL_UARTEx_WakeupCallback can be implemented in the user file.
*/
}
801574c: bf00 nop
801574e: 370c adds r7, #12
8015750: 46bd mov sp, r7
8015752: f85d 7b04 ldr.w r7, [sp], #4
8015756: 4770 bx lr
08015758 <UART_SetConfig>:
* @brief Configure the UART peripheral.
* @param huart UART handle.
* @retval HAL status
*/
HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart)
{
8015758: b580 push {r7, lr}
801575a: b088 sub sp, #32
801575c: af00 add r7, sp, #0
801575e: 6078 str r0, [r7, #4]
uint32_t tmpreg;
uint16_t brrtemp;
UART_ClockSourceTypeDef clocksource;
uint32_t usartdiv;
HAL_StatusTypeDef ret = HAL_OK;
8015760: 2300 movs r3, #0
8015762: 77bb strb r3, [r7, #30]
* the UART Word Length, Parity, Mode and oversampling:
* set the M bits according to huart->Init.WordLength value
* set PCE and PS bits according to huart->Init.Parity value
* set TE and RE bits according to huart->Init.Mode value
* set OVER8 bit according to huart->Init.OverSampling value */
tmpreg = (uint32_t)huart->Init.WordLength | huart->Init.Parity | huart->Init.Mode | huart->Init.OverSampling ;
8015764: 687b ldr r3, [r7, #4]
8015766: 689a ldr r2, [r3, #8]
8015768: 687b ldr r3, [r7, #4]
801576a: 691b ldr r3, [r3, #16]
801576c: 431a orrs r2, r3
801576e: 687b ldr r3, [r7, #4]
8015770: 695b ldr r3, [r3, #20]
8015772: 431a orrs r2, r3
8015774: 687b ldr r3, [r7, #4]
8015776: 69db ldr r3, [r3, #28]
8015778: 4313 orrs r3, r2
801577a: 617b str r3, [r7, #20]
MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg);
801577c: 687b ldr r3, [r7, #4]
801577e: 681a ldr r2, [r3, #0]
8015780: 687b ldr r3, [r7, #4]
8015782: 681b ldr r3, [r3, #0]
8015784: 6819 ldr r1, [r3, #0]
8015786: 4bb3 ldr r3, [pc, #716] ; (8015a54 <UART_SetConfig+0x2fc>)
8015788: 400b ands r3, r1
801578a: 6979 ldr r1, [r7, #20]
801578c: 430b orrs r3, r1
801578e: 6013 str r3, [r2, #0]
/*-------------------------- USART CR2 Configuration -----------------------*/
/* Configure the UART Stop Bits: Set STOP[13:12] bits according
* to huart->Init.StopBits value */
MODIFY_REG(huart->Instance->CR2, USART_CR2_STOP, huart->Init.StopBits);
8015790: 687b ldr r3, [r7, #4]
8015792: 681b ldr r3, [r3, #0]
8015794: 687a ldr r2, [r7, #4]
8015796: 6812 ldr r2, [r2, #0]
8015798: 6852 ldr r2, [r2, #4]
801579a: f422 5140 bic.w r1, r2, #12288 ; 0x3000
801579e: 687a ldr r2, [r7, #4]
80157a0: 68d2 ldr r2, [r2, #12]
80157a2: 430a orrs r2, r1
80157a4: 605a str r2, [r3, #4]
/* Configure
* - UART HardWare Flow Control: set CTSE and RTSE bits according
* to huart->Init.HwFlowCtl value
* - one-bit sampling method versus three samples' majority rule according
* to huart->Init.OneBitSampling (not applicable to LPUART) */
tmpreg = (uint32_t)huart->Init.HwFlowCtl;
80157a6: 687b ldr r3, [r7, #4]
80157a8: 699b ldr r3, [r3, #24]
80157aa: 617b str r3, [r7, #20]
tmpreg |= huart->Init.OneBitSampling;
80157ac: 687b ldr r3, [r7, #4]
80157ae: 6a1b ldr r3, [r3, #32]
80157b0: 697a ldr r2, [r7, #20]
80157b2: 4313 orrs r3, r2
80157b4: 617b str r3, [r7, #20]
MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg);
80157b6: 687b ldr r3, [r7, #4]
80157b8: 681b ldr r3, [r3, #0]
80157ba: 687a ldr r2, [r7, #4]
80157bc: 6812 ldr r2, [r2, #0]
80157be: 6892 ldr r2, [r2, #8]
80157c0: f422 6130 bic.w r1, r2, #2816 ; 0xb00
80157c4: 697a ldr r2, [r7, #20]
80157c6: 430a orrs r2, r1
80157c8: 609a str r2, [r3, #8]
/*-------------------------- USART BRR Configuration -----------------------*/
UART_GETCLOCKSOURCE(huart, clocksource);
80157ca: 687b ldr r3, [r7, #4]
80157cc: 681b ldr r3, [r3, #0]
80157ce: 4aa2 ldr r2, [pc, #648] ; (8015a58 <UART_SetConfig+0x300>)
80157d0: 4293 cmp r3, r2
80157d2: d121 bne.n 8015818 <UART_SetConfig+0xc0>
80157d4: 4ba1 ldr r3, [pc, #644] ; (8015a5c <UART_SetConfig+0x304>)
80157d6: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80157da: f003 0303 and.w r3, r3, #3
80157de: 2b03 cmp r3, #3
80157e0: d816 bhi.n 8015810 <UART_SetConfig+0xb8>
80157e2: a201 add r2, pc, #4 ; (adr r2, 80157e8 <UART_SetConfig+0x90>)
80157e4: f852 f023 ldr.w pc, [r2, r3, lsl #2]
80157e8: 080157f9 .word 0x080157f9
80157ec: 08015805 .word 0x08015805
80157f0: 080157ff .word 0x080157ff
80157f4: 0801580b .word 0x0801580b
80157f8: 2301 movs r3, #1
80157fa: 77fb strb r3, [r7, #31]
80157fc: e150 b.n 8015aa0 <UART_SetConfig+0x348>
80157fe: 2302 movs r3, #2
8015800: 77fb strb r3, [r7, #31]
8015802: e14d b.n 8015aa0 <UART_SetConfig+0x348>
8015804: 2304 movs r3, #4
8015806: 77fb strb r3, [r7, #31]
8015808: e14a b.n 8015aa0 <UART_SetConfig+0x348>
801580a: 2308 movs r3, #8
801580c: 77fb strb r3, [r7, #31]
801580e: e147 b.n 8015aa0 <UART_SetConfig+0x348>
8015810: 2310 movs r3, #16
8015812: 77fb strb r3, [r7, #31]
8015814: bf00 nop
8015816: e143 b.n 8015aa0 <UART_SetConfig+0x348>
8015818: 687b ldr r3, [r7, #4]
801581a: 681b ldr r3, [r3, #0]
801581c: 4a90 ldr r2, [pc, #576] ; (8015a60 <UART_SetConfig+0x308>)
801581e: 4293 cmp r3, r2
8015820: d134 bne.n 801588c <UART_SetConfig+0x134>
8015822: 4b8e ldr r3, [pc, #568] ; (8015a5c <UART_SetConfig+0x304>)
8015824: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8015828: f003 030c and.w r3, r3, #12
801582c: 2b0c cmp r3, #12
801582e: d829 bhi.n 8015884 <UART_SetConfig+0x12c>
8015830: a201 add r2, pc, #4 ; (adr r2, 8015838 <UART_SetConfig+0xe0>)
8015832: f852 f023 ldr.w pc, [r2, r3, lsl #2]
8015836: bf00 nop
8015838: 0801586d .word 0x0801586d
801583c: 08015885 .word 0x08015885
8015840: 08015885 .word 0x08015885
8015844: 08015885 .word 0x08015885
8015848: 08015879 .word 0x08015879
801584c: 08015885 .word 0x08015885
8015850: 08015885 .word 0x08015885
8015854: 08015885 .word 0x08015885
8015858: 08015873 .word 0x08015873
801585c: 08015885 .word 0x08015885
8015860: 08015885 .word 0x08015885
8015864: 08015885 .word 0x08015885
8015868: 0801587f .word 0x0801587f
801586c: 2300 movs r3, #0
801586e: 77fb strb r3, [r7, #31]
8015870: e116 b.n 8015aa0 <UART_SetConfig+0x348>
8015872: 2302 movs r3, #2
8015874: 77fb strb r3, [r7, #31]
8015876: e113 b.n 8015aa0 <UART_SetConfig+0x348>
8015878: 2304 movs r3, #4
801587a: 77fb strb r3, [r7, #31]
801587c: e110 b.n 8015aa0 <UART_SetConfig+0x348>
801587e: 2308 movs r3, #8
8015880: 77fb strb r3, [r7, #31]
8015882: e10d b.n 8015aa0 <UART_SetConfig+0x348>
8015884: 2310 movs r3, #16
8015886: 77fb strb r3, [r7, #31]
8015888: bf00 nop
801588a: e109 b.n 8015aa0 <UART_SetConfig+0x348>
801588c: 687b ldr r3, [r7, #4]
801588e: 681b ldr r3, [r3, #0]
8015890: 4a74 ldr r2, [pc, #464] ; (8015a64 <UART_SetConfig+0x30c>)
8015892: 4293 cmp r3, r2
8015894: d120 bne.n 80158d8 <UART_SetConfig+0x180>
8015896: 4b71 ldr r3, [pc, #452] ; (8015a5c <UART_SetConfig+0x304>)
8015898: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
801589c: f003 0330 and.w r3, r3, #48 ; 0x30
80158a0: 2b10 cmp r3, #16
80158a2: d00f beq.n 80158c4 <UART_SetConfig+0x16c>
80158a4: 2b10 cmp r3, #16
80158a6: d802 bhi.n 80158ae <UART_SetConfig+0x156>
80158a8: 2b00 cmp r3, #0
80158aa: d005 beq.n 80158b8 <UART_SetConfig+0x160>
80158ac: e010 b.n 80158d0 <UART_SetConfig+0x178>
80158ae: 2b20 cmp r3, #32
80158b0: d005 beq.n 80158be <UART_SetConfig+0x166>
80158b2: 2b30 cmp r3, #48 ; 0x30
80158b4: d009 beq.n 80158ca <UART_SetConfig+0x172>
80158b6: e00b b.n 80158d0 <UART_SetConfig+0x178>
80158b8: 2300 movs r3, #0
80158ba: 77fb strb r3, [r7, #31]
80158bc: e0f0 b.n 8015aa0 <UART_SetConfig+0x348>
80158be: 2302 movs r3, #2
80158c0: 77fb strb r3, [r7, #31]
80158c2: e0ed b.n 8015aa0 <UART_SetConfig+0x348>
80158c4: 2304 movs r3, #4
80158c6: 77fb strb r3, [r7, #31]
80158c8: e0ea b.n 8015aa0 <UART_SetConfig+0x348>
80158ca: 2308 movs r3, #8
80158cc: 77fb strb r3, [r7, #31]
80158ce: e0e7 b.n 8015aa0 <UART_SetConfig+0x348>
80158d0: 2310 movs r3, #16
80158d2: 77fb strb r3, [r7, #31]
80158d4: bf00 nop
80158d6: e0e3 b.n 8015aa0 <UART_SetConfig+0x348>
80158d8: 687b ldr r3, [r7, #4]
80158da: 681b ldr r3, [r3, #0]
80158dc: 4a62 ldr r2, [pc, #392] ; (8015a68 <UART_SetConfig+0x310>)
80158de: 4293 cmp r3, r2
80158e0: d120 bne.n 8015924 <UART_SetConfig+0x1cc>
80158e2: 4b5e ldr r3, [pc, #376] ; (8015a5c <UART_SetConfig+0x304>)
80158e4: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80158e8: f003 03c0 and.w r3, r3, #192 ; 0xc0
80158ec: 2b40 cmp r3, #64 ; 0x40
80158ee: d00f beq.n 8015910 <UART_SetConfig+0x1b8>
80158f0: 2b40 cmp r3, #64 ; 0x40
80158f2: d802 bhi.n 80158fa <UART_SetConfig+0x1a2>
80158f4: 2b00 cmp r3, #0
80158f6: d005 beq.n 8015904 <UART_SetConfig+0x1ac>
80158f8: e010 b.n 801591c <UART_SetConfig+0x1c4>
80158fa: 2b80 cmp r3, #128 ; 0x80
80158fc: d005 beq.n 801590a <UART_SetConfig+0x1b2>
80158fe: 2bc0 cmp r3, #192 ; 0xc0
8015900: d009 beq.n 8015916 <UART_SetConfig+0x1be>
8015902: e00b b.n 801591c <UART_SetConfig+0x1c4>
8015904: 2300 movs r3, #0
8015906: 77fb strb r3, [r7, #31]
8015908: e0ca b.n 8015aa0 <UART_SetConfig+0x348>
801590a: 2302 movs r3, #2
801590c: 77fb strb r3, [r7, #31]
801590e: e0c7 b.n 8015aa0 <UART_SetConfig+0x348>
8015910: 2304 movs r3, #4
8015912: 77fb strb r3, [r7, #31]
8015914: e0c4 b.n 8015aa0 <UART_SetConfig+0x348>
8015916: 2308 movs r3, #8
8015918: 77fb strb r3, [r7, #31]
801591a: e0c1 b.n 8015aa0 <UART_SetConfig+0x348>
801591c: 2310 movs r3, #16
801591e: 77fb strb r3, [r7, #31]
8015920: bf00 nop
8015922: e0bd b.n 8015aa0 <UART_SetConfig+0x348>
8015924: 687b ldr r3, [r7, #4]
8015926: 681b ldr r3, [r3, #0]
8015928: 4a50 ldr r2, [pc, #320] ; (8015a6c <UART_SetConfig+0x314>)
801592a: 4293 cmp r3, r2
801592c: d124 bne.n 8015978 <UART_SetConfig+0x220>
801592e: 4b4b ldr r3, [pc, #300] ; (8015a5c <UART_SetConfig+0x304>)
8015930: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8015934: f403 7340 and.w r3, r3, #768 ; 0x300
8015938: f5b3 7f80 cmp.w r3, #256 ; 0x100
801593c: d012 beq.n 8015964 <UART_SetConfig+0x20c>
801593e: f5b3 7f80 cmp.w r3, #256 ; 0x100
8015942: d802 bhi.n 801594a <UART_SetConfig+0x1f2>
8015944: 2b00 cmp r3, #0
8015946: d007 beq.n 8015958 <UART_SetConfig+0x200>
8015948: e012 b.n 8015970 <UART_SetConfig+0x218>
801594a: f5b3 7f00 cmp.w r3, #512 ; 0x200
801594e: d006 beq.n 801595e <UART_SetConfig+0x206>
8015950: f5b3 7f40 cmp.w r3, #768 ; 0x300
8015954: d009 beq.n 801596a <UART_SetConfig+0x212>
8015956: e00b b.n 8015970 <UART_SetConfig+0x218>
8015958: 2300 movs r3, #0
801595a: 77fb strb r3, [r7, #31]
801595c: e0a0 b.n 8015aa0 <UART_SetConfig+0x348>
801595e: 2302 movs r3, #2
8015960: 77fb strb r3, [r7, #31]
8015962: e09d b.n 8015aa0 <UART_SetConfig+0x348>
8015964: 2304 movs r3, #4
8015966: 77fb strb r3, [r7, #31]
8015968: e09a b.n 8015aa0 <UART_SetConfig+0x348>
801596a: 2308 movs r3, #8
801596c: 77fb strb r3, [r7, #31]
801596e: e097 b.n 8015aa0 <UART_SetConfig+0x348>
8015970: 2310 movs r3, #16
8015972: 77fb strb r3, [r7, #31]
8015974: bf00 nop
8015976: e093 b.n 8015aa0 <UART_SetConfig+0x348>
8015978: 687b ldr r3, [r7, #4]
801597a: 681b ldr r3, [r3, #0]
801597c: 4a3c ldr r2, [pc, #240] ; (8015a70 <UART_SetConfig+0x318>)
801597e: 4293 cmp r3, r2
8015980: d124 bne.n 80159cc <UART_SetConfig+0x274>
8015982: 4b36 ldr r3, [pc, #216] ; (8015a5c <UART_SetConfig+0x304>)
8015984: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8015988: f403 6340 and.w r3, r3, #3072 ; 0xc00
801598c: f5b3 6f80 cmp.w r3, #1024 ; 0x400
8015990: d012 beq.n 80159b8 <UART_SetConfig+0x260>
8015992: f5b3 6f80 cmp.w r3, #1024 ; 0x400
8015996: d802 bhi.n 801599e <UART_SetConfig+0x246>
8015998: 2b00 cmp r3, #0
801599a: d007 beq.n 80159ac <UART_SetConfig+0x254>
801599c: e012 b.n 80159c4 <UART_SetConfig+0x26c>
801599e: f5b3 6f00 cmp.w r3, #2048 ; 0x800
80159a2: d006 beq.n 80159b2 <UART_SetConfig+0x25a>
80159a4: f5b3 6f40 cmp.w r3, #3072 ; 0xc00
80159a8: d009 beq.n 80159be <UART_SetConfig+0x266>
80159aa: e00b b.n 80159c4 <UART_SetConfig+0x26c>
80159ac: 2301 movs r3, #1
80159ae: 77fb strb r3, [r7, #31]
80159b0: e076 b.n 8015aa0 <UART_SetConfig+0x348>
80159b2: 2302 movs r3, #2
80159b4: 77fb strb r3, [r7, #31]
80159b6: e073 b.n 8015aa0 <UART_SetConfig+0x348>
80159b8: 2304 movs r3, #4
80159ba: 77fb strb r3, [r7, #31]
80159bc: e070 b.n 8015aa0 <UART_SetConfig+0x348>
80159be: 2308 movs r3, #8
80159c0: 77fb strb r3, [r7, #31]
80159c2: e06d b.n 8015aa0 <UART_SetConfig+0x348>
80159c4: 2310 movs r3, #16
80159c6: 77fb strb r3, [r7, #31]
80159c8: bf00 nop
80159ca: e069 b.n 8015aa0 <UART_SetConfig+0x348>
80159cc: 687b ldr r3, [r7, #4]
80159ce: 681b ldr r3, [r3, #0]
80159d0: 4a28 ldr r2, [pc, #160] ; (8015a74 <UART_SetConfig+0x31c>)
80159d2: 4293 cmp r3, r2
80159d4: d124 bne.n 8015a20 <UART_SetConfig+0x2c8>
80159d6: 4b21 ldr r3, [pc, #132] ; (8015a5c <UART_SetConfig+0x304>)
80159d8: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80159dc: f403 5340 and.w r3, r3, #12288 ; 0x3000
80159e0: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
80159e4: d012 beq.n 8015a0c <UART_SetConfig+0x2b4>
80159e6: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
80159ea: d802 bhi.n 80159f2 <UART_SetConfig+0x29a>
80159ec: 2b00 cmp r3, #0
80159ee: d007 beq.n 8015a00 <UART_SetConfig+0x2a8>
80159f0: e012 b.n 8015a18 <UART_SetConfig+0x2c0>
80159f2: f5b3 5f00 cmp.w r3, #8192 ; 0x2000
80159f6: d006 beq.n 8015a06 <UART_SetConfig+0x2ae>
80159f8: f5b3 5f40 cmp.w r3, #12288 ; 0x3000
80159fc: d009 beq.n 8015a12 <UART_SetConfig+0x2ba>
80159fe: e00b b.n 8015a18 <UART_SetConfig+0x2c0>
8015a00: 2300 movs r3, #0
8015a02: 77fb strb r3, [r7, #31]
8015a04: e04c b.n 8015aa0 <UART_SetConfig+0x348>
8015a06: 2302 movs r3, #2
8015a08: 77fb strb r3, [r7, #31]
8015a0a: e049 b.n 8015aa0 <UART_SetConfig+0x348>
8015a0c: 2304 movs r3, #4
8015a0e: 77fb strb r3, [r7, #31]
8015a10: e046 b.n 8015aa0 <UART_SetConfig+0x348>
8015a12: 2308 movs r3, #8
8015a14: 77fb strb r3, [r7, #31]
8015a16: e043 b.n 8015aa0 <UART_SetConfig+0x348>
8015a18: 2310 movs r3, #16
8015a1a: 77fb strb r3, [r7, #31]
8015a1c: bf00 nop
8015a1e: e03f b.n 8015aa0 <UART_SetConfig+0x348>
8015a20: 687b ldr r3, [r7, #4]
8015a22: 681b ldr r3, [r3, #0]
8015a24: 4a14 ldr r2, [pc, #80] ; (8015a78 <UART_SetConfig+0x320>)
8015a26: 4293 cmp r3, r2
8015a28: d138 bne.n 8015a9c <UART_SetConfig+0x344>
8015a2a: 4b0c ldr r3, [pc, #48] ; (8015a5c <UART_SetConfig+0x304>)
8015a2c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8015a30: f403 4340 and.w r3, r3, #49152 ; 0xc000
8015a34: f5b3 4f80 cmp.w r3, #16384 ; 0x4000
8015a38: d026 beq.n 8015a88 <UART_SetConfig+0x330>
8015a3a: f5b3 4f80 cmp.w r3, #16384 ; 0x4000
8015a3e: d802 bhi.n 8015a46 <UART_SetConfig+0x2ee>
8015a40: 2b00 cmp r3, #0
8015a42: d01b beq.n 8015a7c <UART_SetConfig+0x324>
8015a44: e026 b.n 8015a94 <UART_SetConfig+0x33c>
8015a46: f5b3 4f00 cmp.w r3, #32768 ; 0x8000
8015a4a: d01a beq.n 8015a82 <UART_SetConfig+0x32a>
8015a4c: f5b3 4f40 cmp.w r3, #49152 ; 0xc000
8015a50: d01d beq.n 8015a8e <UART_SetConfig+0x336>
8015a52: e01f b.n 8015a94 <UART_SetConfig+0x33c>
8015a54: efff69f3 .word 0xefff69f3
8015a58: 40011000 .word 0x40011000
8015a5c: 40023800 .word 0x40023800
8015a60: 40004400 .word 0x40004400
8015a64: 40004800 .word 0x40004800
8015a68: 40004c00 .word 0x40004c00
8015a6c: 40005000 .word 0x40005000
8015a70: 40011400 .word 0x40011400
8015a74: 40007800 .word 0x40007800
8015a78: 40007c00 .word 0x40007c00
8015a7c: 2300 movs r3, #0
8015a7e: 77fb strb r3, [r7, #31]
8015a80: e00e b.n 8015aa0 <UART_SetConfig+0x348>
8015a82: 2302 movs r3, #2
8015a84: 77fb strb r3, [r7, #31]
8015a86: e00b b.n 8015aa0 <UART_SetConfig+0x348>
8015a88: 2304 movs r3, #4
8015a8a: 77fb strb r3, [r7, #31]
8015a8c: e008 b.n 8015aa0 <UART_SetConfig+0x348>
8015a8e: 2308 movs r3, #8
8015a90: 77fb strb r3, [r7, #31]
8015a92: e005 b.n 8015aa0 <UART_SetConfig+0x348>
8015a94: 2310 movs r3, #16
8015a96: 77fb strb r3, [r7, #31]
8015a98: bf00 nop
8015a9a: e001 b.n 8015aa0 <UART_SetConfig+0x348>
8015a9c: 2310 movs r3, #16
8015a9e: 77fb strb r3, [r7, #31]
if (huart->Init.OverSampling == UART_OVERSAMPLING_8)
8015aa0: 687b ldr r3, [r7, #4]
8015aa2: 69db ldr r3, [r3, #28]
8015aa4: f5b3 4f00 cmp.w r3, #32768 ; 0x8000
8015aa8: d15b bne.n 8015b62 <UART_SetConfig+0x40a>
{
switch (clocksource)
8015aaa: 7ffb ldrb r3, [r7, #31]
8015aac: 2b08 cmp r3, #8
8015aae: d828 bhi.n 8015b02 <UART_SetConfig+0x3aa>
8015ab0: a201 add r2, pc, #4 ; (adr r2, 8015ab8 <UART_SetConfig+0x360>)
8015ab2: f852 f023 ldr.w pc, [r2, r3, lsl #2]
8015ab6: bf00 nop
8015ab8: 08015add .word 0x08015add
8015abc: 08015ae5 .word 0x08015ae5
8015ac0: 08015aed .word 0x08015aed
8015ac4: 08015b03 .word 0x08015b03
8015ac8: 08015af3 .word 0x08015af3
8015acc: 08015b03 .word 0x08015b03
8015ad0: 08015b03 .word 0x08015b03
8015ad4: 08015b03 .word 0x08015b03
8015ad8: 08015afb .word 0x08015afb
{
case UART_CLOCKSOURCE_PCLK1:
pclk = HAL_RCC_GetPCLK1Freq();
8015adc: f7fe f8d8 bl 8013c90 <HAL_RCC_GetPCLK1Freq>
8015ae0: 61b8 str r0, [r7, #24]
break;
8015ae2: e013 b.n 8015b0c <UART_SetConfig+0x3b4>
case UART_CLOCKSOURCE_PCLK2:
pclk = HAL_RCC_GetPCLK2Freq();
8015ae4: f7fe f8e8 bl 8013cb8 <HAL_RCC_GetPCLK2Freq>
8015ae8: 61b8 str r0, [r7, #24]
break;
8015aea: e00f b.n 8015b0c <UART_SetConfig+0x3b4>
case UART_CLOCKSOURCE_HSI:
pclk = (uint32_t) HSI_VALUE;
8015aec: 4b49 ldr r3, [pc, #292] ; (8015c14 <UART_SetConfig+0x4bc>)
8015aee: 61bb str r3, [r7, #24]
break;
8015af0: e00c b.n 8015b0c <UART_SetConfig+0x3b4>
case UART_CLOCKSOURCE_SYSCLK:
pclk = HAL_RCC_GetSysClockFreq();
8015af2: f7fe f80b bl 8013b0c <HAL_RCC_GetSysClockFreq>
8015af6: 61b8 str r0, [r7, #24]
break;
8015af8: e008 b.n 8015b0c <UART_SetConfig+0x3b4>
case UART_CLOCKSOURCE_LSE:
pclk = (uint32_t) LSE_VALUE;
8015afa: f44f 4300 mov.w r3, #32768 ; 0x8000
8015afe: 61bb str r3, [r7, #24]
break;
8015b00: e004 b.n 8015b0c <UART_SetConfig+0x3b4>
default:
pclk = 0U;
8015b02: 2300 movs r3, #0
8015b04: 61bb str r3, [r7, #24]
ret = HAL_ERROR;
8015b06: 2301 movs r3, #1
8015b08: 77bb strb r3, [r7, #30]
break;
8015b0a: bf00 nop
}
/* USARTDIV must be greater than or equal to 0d16 */
if (pclk != 0U)
8015b0c: 69bb ldr r3, [r7, #24]
8015b0e: 2b00 cmp r3, #0
8015b10: d074 beq.n 8015bfc <UART_SetConfig+0x4a4>
{
usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate));
8015b12: 69bb ldr r3, [r7, #24]
8015b14: 005a lsls r2, r3, #1
8015b16: 687b ldr r3, [r7, #4]
8015b18: 685b ldr r3, [r3, #4]
8015b1a: 085b lsrs r3, r3, #1
8015b1c: 441a add r2, r3
8015b1e: 687b ldr r3, [r7, #4]
8015b20: 685b ldr r3, [r3, #4]
8015b22: fbb2 f3f3 udiv r3, r2, r3
8015b26: 613b str r3, [r7, #16]
if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX))
8015b28: 693b ldr r3, [r7, #16]
8015b2a: 2b0f cmp r3, #15
8015b2c: d916 bls.n 8015b5c <UART_SetConfig+0x404>
8015b2e: 693b ldr r3, [r7, #16]
8015b30: f5b3 3f80 cmp.w r3, #65536 ; 0x10000
8015b34: d212 bcs.n 8015b5c <UART_SetConfig+0x404>
{
brrtemp = (uint16_t)(usartdiv & 0xFFF0U);
8015b36: 693b ldr r3, [r7, #16]
8015b38: b29b uxth r3, r3
8015b3a: f023 030f bic.w r3, r3, #15
8015b3e: 81fb strh r3, [r7, #14]
brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U);
8015b40: 693b ldr r3, [r7, #16]
8015b42: 085b lsrs r3, r3, #1
8015b44: b29b uxth r3, r3
8015b46: f003 0307 and.w r3, r3, #7
8015b4a: b29a uxth r2, r3
8015b4c: 89fb ldrh r3, [r7, #14]
8015b4e: 4313 orrs r3, r2
8015b50: 81fb strh r3, [r7, #14]
huart->Instance->BRR = brrtemp;
8015b52: 687b ldr r3, [r7, #4]
8015b54: 681b ldr r3, [r3, #0]
8015b56: 89fa ldrh r2, [r7, #14]
8015b58: 60da str r2, [r3, #12]
8015b5a: e04f b.n 8015bfc <UART_SetConfig+0x4a4>
}
else
{
ret = HAL_ERROR;
8015b5c: 2301 movs r3, #1
8015b5e: 77bb strb r3, [r7, #30]
8015b60: e04c b.n 8015bfc <UART_SetConfig+0x4a4>
}
}
}
else
{
switch (clocksource)
8015b62: 7ffb ldrb r3, [r7, #31]
8015b64: 2b08 cmp r3, #8
8015b66: d828 bhi.n 8015bba <UART_SetConfig+0x462>
8015b68: a201 add r2, pc, #4 ; (adr r2, 8015b70 <UART_SetConfig+0x418>)
8015b6a: f852 f023 ldr.w pc, [r2, r3, lsl #2]
8015b6e: bf00 nop
8015b70: 08015b95 .word 0x08015b95
8015b74: 08015b9d .word 0x08015b9d
8015b78: 08015ba5 .word 0x08015ba5
8015b7c: 08015bbb .word 0x08015bbb
8015b80: 08015bab .word 0x08015bab
8015b84: 08015bbb .word 0x08015bbb
8015b88: 08015bbb .word 0x08015bbb
8015b8c: 08015bbb .word 0x08015bbb
8015b90: 08015bb3 .word 0x08015bb3
{
case UART_CLOCKSOURCE_PCLK1:
pclk = HAL_RCC_GetPCLK1Freq();
8015b94: f7fe f87c bl 8013c90 <HAL_RCC_GetPCLK1Freq>
8015b98: 61b8 str r0, [r7, #24]
break;
8015b9a: e013 b.n 8015bc4 <UART_SetConfig+0x46c>
case UART_CLOCKSOURCE_PCLK2:
pclk = HAL_RCC_GetPCLK2Freq();
8015b9c: f7fe f88c bl 8013cb8 <HAL_RCC_GetPCLK2Freq>
8015ba0: 61b8 str r0, [r7, #24]
break;
8015ba2: e00f b.n 8015bc4 <UART_SetConfig+0x46c>
case UART_CLOCKSOURCE_HSI:
pclk = (uint32_t) HSI_VALUE;
8015ba4: 4b1b ldr r3, [pc, #108] ; (8015c14 <UART_SetConfig+0x4bc>)
8015ba6: 61bb str r3, [r7, #24]
break;
8015ba8: e00c b.n 8015bc4 <UART_SetConfig+0x46c>
case UART_CLOCKSOURCE_SYSCLK:
pclk = HAL_RCC_GetSysClockFreq();
8015baa: f7fd ffaf bl 8013b0c <HAL_RCC_GetSysClockFreq>
8015bae: 61b8 str r0, [r7, #24]
break;
8015bb0: e008 b.n 8015bc4 <UART_SetConfig+0x46c>
case UART_CLOCKSOURCE_LSE:
pclk = (uint32_t) LSE_VALUE;
8015bb2: f44f 4300 mov.w r3, #32768 ; 0x8000
8015bb6: 61bb str r3, [r7, #24]
break;
8015bb8: e004 b.n 8015bc4 <UART_SetConfig+0x46c>
default:
pclk = 0U;
8015bba: 2300 movs r3, #0
8015bbc: 61bb str r3, [r7, #24]
ret = HAL_ERROR;
8015bbe: 2301 movs r3, #1
8015bc0: 77bb strb r3, [r7, #30]
break;
8015bc2: bf00 nop
}
if (pclk != 0U)
8015bc4: 69bb ldr r3, [r7, #24]
8015bc6: 2b00 cmp r3, #0
8015bc8: d018 beq.n 8015bfc <UART_SetConfig+0x4a4>
{
/* USARTDIV must be greater than or equal to 0d16 */
usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate));
8015bca: 687b ldr r3, [r7, #4]
8015bcc: 685b ldr r3, [r3, #4]
8015bce: 085a lsrs r2, r3, #1
8015bd0: 69bb ldr r3, [r7, #24]
8015bd2: 441a add r2, r3
8015bd4: 687b ldr r3, [r7, #4]
8015bd6: 685b ldr r3, [r3, #4]
8015bd8: fbb2 f3f3 udiv r3, r2, r3
8015bdc: 613b str r3, [r7, #16]
if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX))
8015bde: 693b ldr r3, [r7, #16]
8015be0: 2b0f cmp r3, #15
8015be2: d909 bls.n 8015bf8 <UART_SetConfig+0x4a0>
8015be4: 693b ldr r3, [r7, #16]
8015be6: f5b3 3f80 cmp.w r3, #65536 ; 0x10000
8015bea: d205 bcs.n 8015bf8 <UART_SetConfig+0x4a0>
{
huart->Instance->BRR = (uint16_t)usartdiv;
8015bec: 687b ldr r3, [r7, #4]
8015bee: 681b ldr r3, [r3, #0]
8015bf0: 693a ldr r2, [r7, #16]
8015bf2: b292 uxth r2, r2
8015bf4: 60da str r2, [r3, #12]
8015bf6: e001 b.n 8015bfc <UART_SetConfig+0x4a4>
}
else
{
ret = HAL_ERROR;
8015bf8: 2301 movs r3, #1
8015bfa: 77bb strb r3, [r7, #30]
}
}
/* Clear ISR function pointers */
huart->RxISR = NULL;
8015bfc: 687b ldr r3, [r7, #4]
8015bfe: 2200 movs r2, #0
8015c00: 665a str r2, [r3, #100] ; 0x64
huart->TxISR = NULL;
8015c02: 687b ldr r3, [r7, #4]
8015c04: 2200 movs r2, #0
8015c06: 669a str r2, [r3, #104] ; 0x68
return ret;
8015c08: 7fbb ldrb r3, [r7, #30]
}
8015c0a: 4618 mov r0, r3
8015c0c: 3720 adds r7, #32
8015c0e: 46bd mov sp, r7
8015c10: bd80 pop {r7, pc}
8015c12: bf00 nop
8015c14: 00f42400 .word 0x00f42400
08015c18 <UART_AdvFeatureConfig>:
* @brief Configure the UART peripheral advanced features.
* @param huart UART handle.
* @retval None
*/
void UART_AdvFeatureConfig(UART_HandleTypeDef *huart)
{
8015c18: b480 push {r7}
8015c1a: b083 sub sp, #12
8015c1c: af00 add r7, sp, #0
8015c1e: 6078 str r0, [r7, #4]
/* Check whether the set of advanced features to configure is properly set */
assert_param(IS_UART_ADVFEATURE_INIT(huart->AdvancedInit.AdvFeatureInit));
/* if required, configure TX pin active level inversion */
if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_TXINVERT_INIT))
8015c20: 687b ldr r3, [r7, #4]
8015c22: 6a5b ldr r3, [r3, #36] ; 0x24
8015c24: f003 0301 and.w r3, r3, #1
8015c28: 2b00 cmp r3, #0
8015c2a: d00a beq.n 8015c42 <UART_AdvFeatureConfig+0x2a>
{
assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert));
MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert);
8015c2c: 687b ldr r3, [r7, #4]
8015c2e: 681b ldr r3, [r3, #0]
8015c30: 687a ldr r2, [r7, #4]
8015c32: 6812 ldr r2, [r2, #0]
8015c34: 6852 ldr r2, [r2, #4]
8015c36: f422 3100 bic.w r1, r2, #131072 ; 0x20000
8015c3a: 687a ldr r2, [r7, #4]
8015c3c: 6a92 ldr r2, [r2, #40] ; 0x28
8015c3e: 430a orrs r2, r1
8015c40: 605a str r2, [r3, #4]
}
/* if required, configure RX pin active level inversion */
if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXINVERT_INIT))
8015c42: 687b ldr r3, [r7, #4]
8015c44: 6a5b ldr r3, [r3, #36] ; 0x24
8015c46: f003 0302 and.w r3, r3, #2
8015c4a: 2b00 cmp r3, #0
8015c4c: d00a beq.n 8015c64 <UART_AdvFeatureConfig+0x4c>
{
assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert));
MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert);
8015c4e: 687b ldr r3, [r7, #4]
8015c50: 681b ldr r3, [r3, #0]
8015c52: 687a ldr r2, [r7, #4]
8015c54: 6812 ldr r2, [r2, #0]
8015c56: 6852 ldr r2, [r2, #4]
8015c58: f422 3180 bic.w r1, r2, #65536 ; 0x10000
8015c5c: 687a ldr r2, [r7, #4]
8015c5e: 6ad2 ldr r2, [r2, #44] ; 0x2c
8015c60: 430a orrs r2, r1
8015c62: 605a str r2, [r3, #4]
}
/* if required, configure data inversion */
if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT))
8015c64: 687b ldr r3, [r7, #4]
8015c66: 6a5b ldr r3, [r3, #36] ; 0x24
8015c68: f003 0304 and.w r3, r3, #4
8015c6c: 2b00 cmp r3, #0
8015c6e: d00a beq.n 8015c86 <UART_AdvFeatureConfig+0x6e>
{
assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert));
MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert);
8015c70: 687b ldr r3, [r7, #4]
8015c72: 681b ldr r3, [r3, #0]
8015c74: 687a ldr r2, [r7, #4]
8015c76: 6812 ldr r2, [r2, #0]
8015c78: 6852 ldr r2, [r2, #4]
8015c7a: f422 2180 bic.w r1, r2, #262144 ; 0x40000
8015c7e: 687a ldr r2, [r7, #4]
8015c80: 6b12 ldr r2, [r2, #48] ; 0x30
8015c82: 430a orrs r2, r1
8015c84: 605a str r2, [r3, #4]
}
/* if required, configure RX/TX pins swap */
if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT))
8015c86: 687b ldr r3, [r7, #4]
8015c88: 6a5b ldr r3, [r3, #36] ; 0x24
8015c8a: f003 0308 and.w r3, r3, #8
8015c8e: 2b00 cmp r3, #0
8015c90: d00a beq.n 8015ca8 <UART_AdvFeatureConfig+0x90>
{
assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap));
MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap);
8015c92: 687b ldr r3, [r7, #4]
8015c94: 681b ldr r3, [r3, #0]
8015c96: 687a ldr r2, [r7, #4]
8015c98: 6812 ldr r2, [r2, #0]
8015c9a: 6852 ldr r2, [r2, #4]
8015c9c: f422 4100 bic.w r1, r2, #32768 ; 0x8000
8015ca0: 687a ldr r2, [r7, #4]
8015ca2: 6b52 ldr r2, [r2, #52] ; 0x34
8015ca4: 430a orrs r2, r1
8015ca6: 605a str r2, [r3, #4]
}
/* if required, configure RX overrun detection disabling */
if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT))
8015ca8: 687b ldr r3, [r7, #4]
8015caa: 6a5b ldr r3, [r3, #36] ; 0x24
8015cac: f003 0310 and.w r3, r3, #16
8015cb0: 2b00 cmp r3, #0
8015cb2: d00a beq.n 8015cca <UART_AdvFeatureConfig+0xb2>
{
assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable));
MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable);
8015cb4: 687b ldr r3, [r7, #4]
8015cb6: 681b ldr r3, [r3, #0]
8015cb8: 687a ldr r2, [r7, #4]
8015cba: 6812 ldr r2, [r2, #0]
8015cbc: 6892 ldr r2, [r2, #8]
8015cbe: f422 5180 bic.w r1, r2, #4096 ; 0x1000
8015cc2: 687a ldr r2, [r7, #4]
8015cc4: 6b92 ldr r2, [r2, #56] ; 0x38
8015cc6: 430a orrs r2, r1
8015cc8: 609a str r2, [r3, #8]
}
/* if required, configure DMA disabling on reception error */
if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DMADISABLEONERROR_INIT))
8015cca: 687b ldr r3, [r7, #4]
8015ccc: 6a5b ldr r3, [r3, #36] ; 0x24
8015cce: f003 0320 and.w r3, r3, #32
8015cd2: 2b00 cmp r3, #0
8015cd4: d00a beq.n 8015cec <UART_AdvFeatureConfig+0xd4>
{
assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError));
MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError);
8015cd6: 687b ldr r3, [r7, #4]
8015cd8: 681b ldr r3, [r3, #0]
8015cda: 687a ldr r2, [r7, #4]
8015cdc: 6812 ldr r2, [r2, #0]
8015cde: 6892 ldr r2, [r2, #8]
8015ce0: f422 5100 bic.w r1, r2, #8192 ; 0x2000
8015ce4: 687a ldr r2, [r7, #4]
8015ce6: 6bd2 ldr r2, [r2, #60] ; 0x3c
8015ce8: 430a orrs r2, r1
8015cea: 609a str r2, [r3, #8]
}
/* if required, configure auto Baud rate detection scheme */
if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_AUTOBAUDRATE_INIT))
8015cec: 687b ldr r3, [r7, #4]
8015cee: 6a5b ldr r3, [r3, #36] ; 0x24
8015cf0: f003 0340 and.w r3, r3, #64 ; 0x40
8015cf4: 2b00 cmp r3, #0
8015cf6: d01a beq.n 8015d2e <UART_AdvFeatureConfig+0x116>
{
assert_param(IS_USART_AUTOBAUDRATE_DETECTION_INSTANCE(huart->Instance));
assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATE(huart->AdvancedInit.AutoBaudRateEnable));
MODIFY_REG(huart->Instance->CR2, USART_CR2_ABREN, huart->AdvancedInit.AutoBaudRateEnable);
8015cf8: 687b ldr r3, [r7, #4]
8015cfa: 681b ldr r3, [r3, #0]
8015cfc: 687a ldr r2, [r7, #4]
8015cfe: 6812 ldr r2, [r2, #0]
8015d00: 6852 ldr r2, [r2, #4]
8015d02: f422 1180 bic.w r1, r2, #1048576 ; 0x100000
8015d06: 687a ldr r2, [r7, #4]
8015d08: 6c12 ldr r2, [r2, #64] ; 0x40
8015d0a: 430a orrs r2, r1
8015d0c: 605a str r2, [r3, #4]
/* set auto Baudrate detection parameters if detection is enabled */
if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE)
8015d0e: 687b ldr r3, [r7, #4]
8015d10: 6c1b ldr r3, [r3, #64] ; 0x40
8015d12: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000
8015d16: d10a bne.n 8015d2e <UART_AdvFeatureConfig+0x116>
{
assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode));
MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode);
8015d18: 687b ldr r3, [r7, #4]
8015d1a: 681b ldr r3, [r3, #0]
8015d1c: 687a ldr r2, [r7, #4]
8015d1e: 6812 ldr r2, [r2, #0]
8015d20: 6852 ldr r2, [r2, #4]
8015d22: f422 01c0 bic.w r1, r2, #6291456 ; 0x600000
8015d26: 687a ldr r2, [r7, #4]
8015d28: 6c52 ldr r2, [r2, #68] ; 0x44
8015d2a: 430a orrs r2, r1
8015d2c: 605a str r2, [r3, #4]
}
}
/* if required, configure MSB first on communication line */
if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_MSBFIRST_INIT))
8015d2e: 687b ldr r3, [r7, #4]
8015d30: 6a5b ldr r3, [r3, #36] ; 0x24
8015d32: f003 0380 and.w r3, r3, #128 ; 0x80
8015d36: 2b00 cmp r3, #0
8015d38: d00a beq.n 8015d50 <UART_AdvFeatureConfig+0x138>
{
assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst));
MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst);
8015d3a: 687b ldr r3, [r7, #4]
8015d3c: 681b ldr r3, [r3, #0]
8015d3e: 687a ldr r2, [r7, #4]
8015d40: 6812 ldr r2, [r2, #0]
8015d42: 6852 ldr r2, [r2, #4]
8015d44: f422 2100 bic.w r1, r2, #524288 ; 0x80000
8015d48: 687a ldr r2, [r7, #4]
8015d4a: 6c92 ldr r2, [r2, #72] ; 0x48
8015d4c: 430a orrs r2, r1
8015d4e: 605a str r2, [r3, #4]
}
}
8015d50: bf00 nop
8015d52: 370c adds r7, #12
8015d54: 46bd mov sp, r7
8015d56: f85d 7b04 ldr.w r7, [sp], #4
8015d5a: 4770 bx lr
08015d5c <UART_CheckIdleState>:
* @brief Check the UART Idle State.
* @param huart UART handle.
* @retval HAL status
*/
HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart)
{
8015d5c: b580 push {r7, lr}
8015d5e: b086 sub sp, #24
8015d60: af02 add r7, sp, #8
8015d62: 6078 str r0, [r7, #4]
uint32_t tickstart;
/* Initialize the UART ErrorCode */
huart->ErrorCode = HAL_UART_ERROR_NONE;
8015d64: 687b ldr r3, [r7, #4]
8015d66: 2200 movs r2, #0
8015d68: f8c3 2080 str.w r2, [r3, #128] ; 0x80
/* Init tickstart for timeout management */
tickstart = HAL_GetTick();
8015d6c: f7fb fbfa bl 8011564 <HAL_GetTick>
8015d70: 60f8 str r0, [r7, #12]
/* Check if the Transmitter is enabled */
if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE)
8015d72: 687b ldr r3, [r7, #4]
8015d74: 681b ldr r3, [r3, #0]
8015d76: 681b ldr r3, [r3, #0]
8015d78: f003 0308 and.w r3, r3, #8
8015d7c: 2b08 cmp r3, #8
8015d7e: d10e bne.n 8015d9e <UART_CheckIdleState+0x42>
{
/* Wait until TEACK flag is set */
if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK)
8015d80: f06f 437e mvn.w r3, #4261412864 ; 0xfe000000
8015d84: 9300 str r3, [sp, #0]
8015d86: 68fb ldr r3, [r7, #12]
8015d88: 2200 movs r2, #0
8015d8a: f44f 1100 mov.w r1, #2097152 ; 0x200000
8015d8e: 6878 ldr r0, [r7, #4]
8015d90: f000 f82d bl 8015dee <UART_WaitOnFlagUntilTimeout>
8015d94: 4603 mov r3, r0
8015d96: 2b00 cmp r3, #0
8015d98: d001 beq.n 8015d9e <UART_CheckIdleState+0x42>
{
/* Timeout occurred */
return HAL_TIMEOUT;
8015d9a: 2303 movs r3, #3
8015d9c: e023 b.n 8015de6 <UART_CheckIdleState+0x8a>
}
}
#if defined(USART_ISR_REACK)
/* Check if the Receiver is enabled */
if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE)
8015d9e: 687b ldr r3, [r7, #4]
8015da0: 681b ldr r3, [r3, #0]
8015da2: 681b ldr r3, [r3, #0]
8015da4: f003 0304 and.w r3, r3, #4
8015da8: 2b04 cmp r3, #4
8015daa: d10e bne.n 8015dca <UART_CheckIdleState+0x6e>
{
/* Wait until REACK flag is set */
if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK)
8015dac: f06f 437e mvn.w r3, #4261412864 ; 0xfe000000
8015db0: 9300 str r3, [sp, #0]
8015db2: 68fb ldr r3, [r7, #12]
8015db4: 2200 movs r2, #0
8015db6: f44f 0180 mov.w r1, #4194304 ; 0x400000
8015dba: 6878 ldr r0, [r7, #4]
8015dbc: f000 f817 bl 8015dee <UART_WaitOnFlagUntilTimeout>
8015dc0: 4603 mov r3, r0
8015dc2: 2b00 cmp r3, #0
8015dc4: d001 beq.n 8015dca <UART_CheckIdleState+0x6e>
{
/* Timeout occurred */
return HAL_TIMEOUT;
8015dc6: 2303 movs r3, #3
8015dc8: e00d b.n 8015de6 <UART_CheckIdleState+0x8a>
}
}
#endif
/* Initialize the UART State */
huart->gState = HAL_UART_STATE_READY;
8015dca: 687b ldr r3, [r7, #4]
8015dcc: 2220 movs r2, #32
8015dce: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
8015dd0: 687b ldr r3, [r7, #4]
8015dd2: 2220 movs r2, #32
8015dd4: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
8015dd6: 687b ldr r3, [r7, #4]
8015dd8: 2200 movs r2, #0
8015dda: 661a str r2, [r3, #96] ; 0x60
__HAL_UNLOCK(huart);
8015ddc: 687b ldr r3, [r7, #4]
8015dde: 2200 movs r2, #0
8015de0: f883 2074 strb.w r2, [r3, #116] ; 0x74
return HAL_OK;
8015de4: 2300 movs r3, #0
}
8015de6: 4618 mov r0, r3
8015de8: 3710 adds r7, #16
8015dea: 46bd mov sp, r7
8015dec: bd80 pop {r7, pc}
08015dee <UART_WaitOnFlagUntilTimeout>:
* @param Timeout Timeout duration
* @retval HAL status
*/
HAL_StatusTypeDef UART_WaitOnFlagUntilTimeout(UART_HandleTypeDef *huart, uint32_t Flag, FlagStatus Status,
uint32_t Tickstart, uint32_t Timeout)
{
8015dee: b580 push {r7, lr}
8015df0: b09c sub sp, #112 ; 0x70
8015df2: af00 add r7, sp, #0
8015df4: 60f8 str r0, [r7, #12]
8015df6: 60b9 str r1, [r7, #8]
8015df8: 603b str r3, [r7, #0]
8015dfa: 4613 mov r3, r2
8015dfc: 71fb strb r3, [r7, #7]
/* Wait until flag is set */
while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status)
8015dfe: e0a5 b.n 8015f4c <UART_WaitOnFlagUntilTimeout+0x15e>
{
/* Check for the Timeout */
if (Timeout != HAL_MAX_DELAY)
8015e00: 6fbb ldr r3, [r7, #120] ; 0x78
8015e02: f1b3 3fff cmp.w r3, #4294967295
8015e06: f000 80a1 beq.w 8015f4c <UART_WaitOnFlagUntilTimeout+0x15e>
{
if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
8015e0a: f7fb fbab bl 8011564 <HAL_GetTick>
8015e0e: 4602 mov r2, r0
8015e10: 683b ldr r3, [r7, #0]
8015e12: 1ad2 subs r2, r2, r3
8015e14: 6fbb ldr r3, [r7, #120] ; 0x78
8015e16: 429a cmp r2, r3
8015e18: d802 bhi.n 8015e20 <UART_WaitOnFlagUntilTimeout+0x32>
8015e1a: 6fbb ldr r3, [r7, #120] ; 0x78
8015e1c: 2b00 cmp r3, #0
8015e1e: d13e bne.n 8015e9e <UART_WaitOnFlagUntilTimeout+0xb0>
{
/* Disable TXE, RXNE, PE and ERR (Frame error, noise error, overrun error)
interrupts for the interrupt process */
ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE));
8015e20: 68fb ldr r3, [r7, #12]
8015e22: 681b ldr r3, [r3, #0]
8015e24: 653b str r3, [r7, #80] ; 0x50
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015e26: 6d3b ldr r3, [r7, #80] ; 0x50
8015e28: e853 3f00 ldrex r3, [r3]
8015e2c: 64fb str r3, [r7, #76] ; 0x4c
return(result);
8015e2e: 6cfb ldr r3, [r7, #76] ; 0x4c
8015e30: f423 73d0 bic.w r3, r3, #416 ; 0x1a0
8015e34: 667b str r3, [r7, #100] ; 0x64
8015e36: 68fb ldr r3, [r7, #12]
8015e38: 681b ldr r3, [r3, #0]
8015e3a: 461a mov r2, r3
8015e3c: 6e7b ldr r3, [r7, #100] ; 0x64
8015e3e: 65fb str r3, [r7, #92] ; 0x5c
8015e40: 65ba str r2, [r7, #88] ; 0x58
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015e42: 6db9 ldr r1, [r7, #88] ; 0x58
8015e44: 6dfa ldr r2, [r7, #92] ; 0x5c
8015e46: e841 2300 strex r3, r2, [r1]
8015e4a: 657b str r3, [r7, #84] ; 0x54
return(result);
8015e4c: 6d7b ldr r3, [r7, #84] ; 0x54
8015e4e: 2b00 cmp r3, #0
8015e50: d1e6 bne.n 8015e20 <UART_WaitOnFlagUntilTimeout+0x32>
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
8015e52: 68fb ldr r3, [r7, #12]
8015e54: 681b ldr r3, [r3, #0]
8015e56: 3308 adds r3, #8
8015e58: 63fb str r3, [r7, #60] ; 0x3c
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015e5a: 6bfb ldr r3, [r7, #60] ; 0x3c
8015e5c: e853 3f00 ldrex r3, [r3]
8015e60: 63bb str r3, [r7, #56] ; 0x38
return(result);
8015e62: 6bbb ldr r3, [r7, #56] ; 0x38
8015e64: f023 0301 bic.w r3, r3, #1
8015e68: 663b str r3, [r7, #96] ; 0x60
8015e6a: 68fb ldr r3, [r7, #12]
8015e6c: 681b ldr r3, [r3, #0]
8015e6e: 3308 adds r3, #8
8015e70: 6e3a ldr r2, [r7, #96] ; 0x60
8015e72: 64ba str r2, [r7, #72] ; 0x48
8015e74: 647b str r3, [r7, #68] ; 0x44
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015e76: 6c79 ldr r1, [r7, #68] ; 0x44
8015e78: 6cba ldr r2, [r7, #72] ; 0x48
8015e7a: e841 2300 strex r3, r2, [r1]
8015e7e: 643b str r3, [r7, #64] ; 0x40
return(result);
8015e80: 6c3b ldr r3, [r7, #64] ; 0x40
8015e82: 2b00 cmp r3, #0
8015e84: d1e5 bne.n 8015e52 <UART_WaitOnFlagUntilTimeout+0x64>
huart->gState = HAL_UART_STATE_READY;
8015e86: 68fb ldr r3, [r7, #12]
8015e88: 2220 movs r2, #32
8015e8a: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
8015e8c: 68fb ldr r3, [r7, #12]
8015e8e: 2220 movs r2, #32
8015e90: 67da str r2, [r3, #124] ; 0x7c
__HAL_UNLOCK(huart);
8015e92: 68fb ldr r3, [r7, #12]
8015e94: 2200 movs r2, #0
8015e96: f883 2074 strb.w r2, [r3, #116] ; 0x74
return HAL_TIMEOUT;
8015e9a: 2303 movs r3, #3
8015e9c: e067 b.n 8015f6e <UART_WaitOnFlagUntilTimeout+0x180>
}
if (READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U)
8015e9e: 68fb ldr r3, [r7, #12]
8015ea0: 681b ldr r3, [r3, #0]
8015ea2: 681b ldr r3, [r3, #0]
8015ea4: f003 0304 and.w r3, r3, #4
8015ea8: 2b00 cmp r3, #0
8015eaa: d04f beq.n 8015f4c <UART_WaitOnFlagUntilTimeout+0x15e>
{
if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET)
8015eac: 68fb ldr r3, [r7, #12]
8015eae: 681b ldr r3, [r3, #0]
8015eb0: 69db ldr r3, [r3, #28]
8015eb2: f403 6300 and.w r3, r3, #2048 ; 0x800
8015eb6: f5b3 6f00 cmp.w r3, #2048 ; 0x800
8015eba: d147 bne.n 8015f4c <UART_WaitOnFlagUntilTimeout+0x15e>
{
/* Clear Receiver Timeout flag*/
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF);
8015ebc: 68fb ldr r3, [r7, #12]
8015ebe: 681b ldr r3, [r3, #0]
8015ec0: f44f 6200 mov.w r2, #2048 ; 0x800
8015ec4: 621a str r2, [r3, #32]
/* Disable TXE, RXNE, PE and ERR (Frame error, noise error, overrun error)
interrupts for the interrupt process */
ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_TXEIE));
8015ec6: 68fb ldr r3, [r7, #12]
8015ec8: 681b ldr r3, [r3, #0]
8015eca: 62bb str r3, [r7, #40] ; 0x28
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015ecc: 6abb ldr r3, [r7, #40] ; 0x28
8015ece: e853 3f00 ldrex r3, [r3]
8015ed2: 627b str r3, [r7, #36] ; 0x24
return(result);
8015ed4: 6a7b ldr r3, [r7, #36] ; 0x24
8015ed6: f423 73d0 bic.w r3, r3, #416 ; 0x1a0
8015eda: 66fb str r3, [r7, #108] ; 0x6c
8015edc: 68fb ldr r3, [r7, #12]
8015ede: 681b ldr r3, [r3, #0]
8015ee0: 461a mov r2, r3
8015ee2: 6efb ldr r3, [r7, #108] ; 0x6c
8015ee4: 637b str r3, [r7, #52] ; 0x34
8015ee6: 633a str r2, [r7, #48] ; 0x30
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015ee8: 6b39 ldr r1, [r7, #48] ; 0x30
8015eea: 6b7a ldr r2, [r7, #52] ; 0x34
8015eec: e841 2300 strex r3, r2, [r1]
8015ef0: 62fb str r3, [r7, #44] ; 0x2c
return(result);
8015ef2: 6afb ldr r3, [r7, #44] ; 0x2c
8015ef4: 2b00 cmp r3, #0
8015ef6: d1e6 bne.n 8015ec6 <UART_WaitOnFlagUntilTimeout+0xd8>
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
8015ef8: 68fb ldr r3, [r7, #12]
8015efa: 681b ldr r3, [r3, #0]
8015efc: 3308 adds r3, #8
8015efe: 617b str r3, [r7, #20]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015f00: 697b ldr r3, [r7, #20]
8015f02: e853 3f00 ldrex r3, [r3]
8015f06: 613b str r3, [r7, #16]
return(result);
8015f08: 693b ldr r3, [r7, #16]
8015f0a: f023 0301 bic.w r3, r3, #1
8015f0e: 66bb str r3, [r7, #104] ; 0x68
8015f10: 68fb ldr r3, [r7, #12]
8015f12: 681b ldr r3, [r3, #0]
8015f14: 3308 adds r3, #8
8015f16: 6eba ldr r2, [r7, #104] ; 0x68
8015f18: 623a str r2, [r7, #32]
8015f1a: 61fb str r3, [r7, #28]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015f1c: 69f9 ldr r1, [r7, #28]
8015f1e: 6a3a ldr r2, [r7, #32]
8015f20: e841 2300 strex r3, r2, [r1]
8015f24: 61bb str r3, [r7, #24]
return(result);
8015f26: 69bb ldr r3, [r7, #24]
8015f28: 2b00 cmp r3, #0
8015f2a: d1e5 bne.n 8015ef8 <UART_WaitOnFlagUntilTimeout+0x10a>
huart->gState = HAL_UART_STATE_READY;
8015f2c: 68fb ldr r3, [r7, #12]
8015f2e: 2220 movs r2, #32
8015f30: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
8015f32: 68fb ldr r3, [r7, #12]
8015f34: 2220 movs r2, #32
8015f36: 67da str r2, [r3, #124] ; 0x7c
huart->ErrorCode = HAL_UART_ERROR_RTO;
8015f38: 68fb ldr r3, [r7, #12]
8015f3a: 2220 movs r2, #32
8015f3c: f8c3 2080 str.w r2, [r3, #128] ; 0x80
/* Process Unlocked */
__HAL_UNLOCK(huart);
8015f40: 68fb ldr r3, [r7, #12]
8015f42: 2200 movs r2, #0
8015f44: f883 2074 strb.w r2, [r3, #116] ; 0x74
return HAL_TIMEOUT;
8015f48: 2303 movs r3, #3
8015f4a: e010 b.n 8015f6e <UART_WaitOnFlagUntilTimeout+0x180>
while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status)
8015f4c: 68fb ldr r3, [r7, #12]
8015f4e: 681b ldr r3, [r3, #0]
8015f50: 69da ldr r2, [r3, #28]
8015f52: 68bb ldr r3, [r7, #8]
8015f54: 401a ands r2, r3
8015f56: 68bb ldr r3, [r7, #8]
8015f58: 429a cmp r2, r3
8015f5a: bf0c ite eq
8015f5c: 2301 moveq r3, #1
8015f5e: 2300 movne r3, #0
8015f60: b2db uxtb r3, r3
8015f62: 461a mov r2, r3
8015f64: 79fb ldrb r3, [r7, #7]
8015f66: 429a cmp r2, r3
8015f68: f43f af4a beq.w 8015e00 <UART_WaitOnFlagUntilTimeout+0x12>
}
}
}
}
return HAL_OK;
8015f6c: 2300 movs r3, #0
}
8015f6e: 4618 mov r0, r3
8015f70: 3770 adds r7, #112 ; 0x70
8015f72: 46bd mov sp, r7
8015f74: bd80 pop {r7, pc}
08015f76 <UART_EndRxTransfer>:
* @brief End ongoing Rx transfer on UART peripheral (following error detection or Reception completion).
* @param huart UART handle.
* @retval None
*/
static void UART_EndRxTransfer(UART_HandleTypeDef *huart)
{
8015f76: b480 push {r7}
8015f78: b095 sub sp, #84 ; 0x54
8015f7a: af00 add r7, sp, #0
8015f7c: 6078 str r0, [r7, #4]
/* Disable RXNE, PE and ERR (Frame error, noise error, overrun error) interrupts */
ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_RXNEIE | USART_CR1_PEIE));
8015f7e: 687b ldr r3, [r7, #4]
8015f80: 681b ldr r3, [r3, #0]
8015f82: 637b str r3, [r7, #52] ; 0x34
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015f84: 6b7b ldr r3, [r7, #52] ; 0x34
8015f86: e853 3f00 ldrex r3, [r3]
8015f8a: 633b str r3, [r7, #48] ; 0x30
return(result);
8015f8c: 6b3b ldr r3, [r7, #48] ; 0x30
8015f8e: f423 7390 bic.w r3, r3, #288 ; 0x120
8015f92: 64fb str r3, [r7, #76] ; 0x4c
8015f94: 687b ldr r3, [r7, #4]
8015f96: 681b ldr r3, [r3, #0]
8015f98: 461a mov r2, r3
8015f9a: 6cfb ldr r3, [r7, #76] ; 0x4c
8015f9c: 643b str r3, [r7, #64] ; 0x40
8015f9e: 63fa str r2, [r7, #60] ; 0x3c
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015fa0: 6bf9 ldr r1, [r7, #60] ; 0x3c
8015fa2: 6c3a ldr r2, [r7, #64] ; 0x40
8015fa4: e841 2300 strex r3, r2, [r1]
8015fa8: 63bb str r3, [r7, #56] ; 0x38
return(result);
8015faa: 6bbb ldr r3, [r7, #56] ; 0x38
8015fac: 2b00 cmp r3, #0
8015fae: d1e6 bne.n 8015f7e <UART_EndRxTransfer+0x8>
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
8015fb0: 687b ldr r3, [r7, #4]
8015fb2: 681b ldr r3, [r3, #0]
8015fb4: 3308 adds r3, #8
8015fb6: 623b str r3, [r7, #32]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015fb8: 6a3b ldr r3, [r7, #32]
8015fba: e853 3f00 ldrex r3, [r3]
8015fbe: 61fb str r3, [r7, #28]
return(result);
8015fc0: 69fb ldr r3, [r7, #28]
8015fc2: f023 0301 bic.w r3, r3, #1
8015fc6: 64bb str r3, [r7, #72] ; 0x48
8015fc8: 687b ldr r3, [r7, #4]
8015fca: 681b ldr r3, [r3, #0]
8015fcc: 3308 adds r3, #8
8015fce: 6cba ldr r2, [r7, #72] ; 0x48
8015fd0: 62fa str r2, [r7, #44] ; 0x2c
8015fd2: 62bb str r3, [r7, #40] ; 0x28
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015fd4: 6ab9 ldr r1, [r7, #40] ; 0x28
8015fd6: 6afa ldr r2, [r7, #44] ; 0x2c
8015fd8: e841 2300 strex r3, r2, [r1]
8015fdc: 627b str r3, [r7, #36] ; 0x24
return(result);
8015fde: 6a7b ldr r3, [r7, #36] ; 0x24
8015fe0: 2b00 cmp r3, #0
8015fe2: d1e5 bne.n 8015fb0 <UART_EndRxTransfer+0x3a>
/* In case of reception waiting for IDLE event, disable also the IDLE IE interrupt source */
if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE)
8015fe4: 687b ldr r3, [r7, #4]
8015fe6: 6e1b ldr r3, [r3, #96] ; 0x60
8015fe8: 2b01 cmp r3, #1
8015fea: d118 bne.n 801601e <UART_EndRxTransfer+0xa8>
{
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
8015fec: 687b ldr r3, [r7, #4]
8015fee: 681b ldr r3, [r3, #0]
8015ff0: 60fb str r3, [r7, #12]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015ff2: 68fb ldr r3, [r7, #12]
8015ff4: e853 3f00 ldrex r3, [r3]
8015ff8: 60bb str r3, [r7, #8]
return(result);
8015ffa: 68bb ldr r3, [r7, #8]
8015ffc: f023 0310 bic.w r3, r3, #16
8016000: 647b str r3, [r7, #68] ; 0x44
8016002: 687b ldr r3, [r7, #4]
8016004: 681b ldr r3, [r3, #0]
8016006: 461a mov r2, r3
8016008: 6c7b ldr r3, [r7, #68] ; 0x44
801600a: 61bb str r3, [r7, #24]
801600c: 617a str r2, [r7, #20]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
801600e: 6979 ldr r1, [r7, #20]
8016010: 69ba ldr r2, [r7, #24]
8016012: e841 2300 strex r3, r2, [r1]
8016016: 613b str r3, [r7, #16]
return(result);
8016018: 693b ldr r3, [r7, #16]
801601a: 2b00 cmp r3, #0
801601c: d1e6 bne.n 8015fec <UART_EndRxTransfer+0x76>
}
/* At end of Rx process, restore huart->RxState to Ready */
huart->RxState = HAL_UART_STATE_READY;
801601e: 687b ldr r3, [r7, #4]
8016020: 2220 movs r2, #32
8016022: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
8016024: 687b ldr r3, [r7, #4]
8016026: 2200 movs r2, #0
8016028: 661a str r2, [r3, #96] ; 0x60
/* Reset RxIsr function pointer */
huart->RxISR = NULL;
801602a: 687b ldr r3, [r7, #4]
801602c: 2200 movs r2, #0
801602e: 665a str r2, [r3, #100] ; 0x64
}
8016030: bf00 nop
8016032: 3754 adds r7, #84 ; 0x54
8016034: 46bd mov sp, r7
8016036: f85d 7b04 ldr.w r7, [sp], #4
801603a: 4770 bx lr
0801603c <UART_DMAAbortOnError>:
* (To be called at end of DMA Abort procedure following error occurrence).
* @param hdma DMA handle.
* @retval None
*/
static void UART_DMAAbortOnError(DMA_HandleTypeDef *hdma)
{
801603c: b580 push {r7, lr}
801603e: b084 sub sp, #16
8016040: af00 add r7, sp, #0
8016042: 6078 str r0, [r7, #4]
UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent);
8016044: 687b ldr r3, [r7, #4]
8016046: 6b9b ldr r3, [r3, #56] ; 0x38
8016048: 60fb str r3, [r7, #12]
huart->RxXferCount = 0U;
801604a: 68fb ldr r3, [r7, #12]
801604c: 2200 movs r2, #0
801604e: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
huart->TxXferCount = 0U;
8016052: 68fb ldr r3, [r7, #12]
8016054: 2200 movs r2, #0
8016056: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
/*Call registered error callback*/
huart->ErrorCallback(huart);
#else
/*Call legacy weak error callback*/
HAL_UART_ErrorCallback(huart);
801605a: 68f8 ldr r0, [r7, #12]
801605c: f7f9 ff32 bl 800fec4 <HAL_UART_ErrorCallback>
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
}
8016060: bf00 nop
8016062: 3710 adds r7, #16
8016064: 46bd mov sp, r7
8016066: bd80 pop {r7, pc}
08016068 <UART_DMATxAbortCallback>:
* Abort still ongoing for Rx DMA Handle.
* @param hdma DMA handle.
* @retval None
*/
static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma)
{
8016068: b580 push {r7, lr}
801606a: b084 sub sp, #16
801606c: af00 add r7, sp, #0
801606e: 6078 str r0, [r7, #4]
UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent);
8016070: 687b ldr r3, [r7, #4]
8016072: 6b9b ldr r3, [r3, #56] ; 0x38
8016074: 60fb str r3, [r7, #12]
huart->hdmatx->XferAbortCallback = NULL;
8016076: 68fb ldr r3, [r7, #12]
8016078: 6edb ldr r3, [r3, #108] ; 0x6c
801607a: 2200 movs r2, #0
801607c: 651a str r2, [r3, #80] ; 0x50
/* Check if an Abort process is still ongoing */
if (huart->hdmarx != NULL)
801607e: 68fb ldr r3, [r7, #12]
8016080: 6f1b ldr r3, [r3, #112] ; 0x70
8016082: 2b00 cmp r3, #0
8016084: d004 beq.n 8016090 <UART_DMATxAbortCallback+0x28>
{
if (huart->hdmarx->XferAbortCallback != NULL)
8016086: 68fb ldr r3, [r7, #12]
8016088: 6f1b ldr r3, [r3, #112] ; 0x70
801608a: 6d1b ldr r3, [r3, #80] ; 0x50
801608c: 2b00 cmp r3, #0
801608e: d11c bne.n 80160ca <UART_DMATxAbortCallback+0x62>
return;
}
}
/* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callback */
huart->TxXferCount = 0U;
8016090: 68fb ldr r3, [r7, #12]
8016092: 2200 movs r2, #0
8016094: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
huart->RxXferCount = 0U;
8016098: 68fb ldr r3, [r7, #12]
801609a: 2200 movs r2, #0
801609c: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
/* Reset errorCode */
huart->ErrorCode = HAL_UART_ERROR_NONE;
80160a0: 68fb ldr r3, [r7, #12]
80160a2: 2200 movs r2, #0
80160a4: f8c3 2080 str.w r2, [r3, #128] ; 0x80
/* Clear the Error flags in the ICR register */
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF);
80160a8: 68fb ldr r3, [r7, #12]
80160aa: 681b ldr r3, [r3, #0]
80160ac: 220f movs r2, #15
80160ae: 621a str r2, [r3, #32]
/* Restore huart->gState and huart->RxState to Ready */
huart->gState = HAL_UART_STATE_READY;
80160b0: 68fb ldr r3, [r7, #12]
80160b2: 2220 movs r2, #32
80160b4: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
80160b6: 68fb ldr r3, [r7, #12]
80160b8: 2220 movs r2, #32
80160ba: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
80160bc: 68fb ldr r3, [r7, #12]
80160be: 2200 movs r2, #0
80160c0: 661a str r2, [r3, #96] ; 0x60
#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
/* Call registered Abort complete callback */
huart->AbortCpltCallback(huart);
#else
/* Call legacy weak Abort complete callback */
HAL_UART_AbortCpltCallback(huart);
80160c2: 68f8 ldr r0, [r7, #12]
80160c4: f7ff fb28 bl 8015718 <HAL_UART_AbortCpltCallback>
80160c8: e000 b.n 80160cc <UART_DMATxAbortCallback+0x64>
return;
80160ca: bf00 nop
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
}
80160cc: 3710 adds r7, #16
80160ce: 46bd mov sp, r7
80160d0: bd80 pop {r7, pc}
080160d2 <UART_DMARxAbortCallback>:
* Abort still ongoing for Tx DMA Handle.
* @param hdma DMA handle.
* @retval None
*/
static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma)
{
80160d2: b580 push {r7, lr}
80160d4: b084 sub sp, #16
80160d6: af00 add r7, sp, #0
80160d8: 6078 str r0, [r7, #4]
UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent);
80160da: 687b ldr r3, [r7, #4]
80160dc: 6b9b ldr r3, [r3, #56] ; 0x38
80160de: 60fb str r3, [r7, #12]
huart->hdmarx->XferAbortCallback = NULL;
80160e0: 68fb ldr r3, [r7, #12]
80160e2: 6f1b ldr r3, [r3, #112] ; 0x70
80160e4: 2200 movs r2, #0
80160e6: 651a str r2, [r3, #80] ; 0x50
/* Check if an Abort process is still ongoing */
if (huart->hdmatx != NULL)
80160e8: 68fb ldr r3, [r7, #12]
80160ea: 6edb ldr r3, [r3, #108] ; 0x6c
80160ec: 2b00 cmp r3, #0
80160ee: d004 beq.n 80160fa <UART_DMARxAbortCallback+0x28>
{
if (huart->hdmatx->XferAbortCallback != NULL)
80160f0: 68fb ldr r3, [r7, #12]
80160f2: 6edb ldr r3, [r3, #108] ; 0x6c
80160f4: 6d1b ldr r3, [r3, #80] ; 0x50
80160f6: 2b00 cmp r3, #0
80160f8: d124 bne.n 8016144 <UART_DMARxAbortCallback+0x72>
return;
}
}
/* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callback */
huart->TxXferCount = 0U;
80160fa: 68fb ldr r3, [r7, #12]
80160fc: 2200 movs r2, #0
80160fe: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
huart->RxXferCount = 0U;
8016102: 68fb ldr r3, [r7, #12]
8016104: 2200 movs r2, #0
8016106: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
/* Reset errorCode */
huart->ErrorCode = HAL_UART_ERROR_NONE;
801610a: 68fb ldr r3, [r7, #12]
801610c: 2200 movs r2, #0
801610e: f8c3 2080 str.w r2, [r3, #128] ; 0x80
/* Clear the Error flags in the ICR register */
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF | UART_CLEAR_NEF | UART_CLEAR_PEF | UART_CLEAR_FEF);
8016112: 68fb ldr r3, [r7, #12]
8016114: 681b ldr r3, [r3, #0]
8016116: 220f movs r2, #15
8016118: 621a str r2, [r3, #32]
/* Discard the received data */
__HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
801611a: 68fb ldr r3, [r7, #12]
801611c: 681b ldr r3, [r3, #0]
801611e: 68fa ldr r2, [r7, #12]
8016120: 6812 ldr r2, [r2, #0]
8016122: 6992 ldr r2, [r2, #24]
8016124: f042 0208 orr.w r2, r2, #8
8016128: 619a str r2, [r3, #24]
/* Restore huart->gState and huart->RxState to Ready */
huart->gState = HAL_UART_STATE_READY;
801612a: 68fb ldr r3, [r7, #12]
801612c: 2220 movs r2, #32
801612e: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
8016130: 68fb ldr r3, [r7, #12]
8016132: 2220 movs r2, #32
8016134: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
8016136: 68fb ldr r3, [r7, #12]
8016138: 2200 movs r2, #0
801613a: 661a str r2, [r3, #96] ; 0x60
#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
/* Call registered Abort complete callback */
huart->AbortCpltCallback(huart);
#else
/* Call legacy weak Abort complete callback */
HAL_UART_AbortCpltCallback(huart);
801613c: 68f8 ldr r0, [r7, #12]
801613e: f7ff faeb bl 8015718 <HAL_UART_AbortCpltCallback>
8016142: e000 b.n 8016146 <UART_DMARxAbortCallback+0x74>
return;
8016144: bf00 nop
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
}
8016146: 3710 adds r7, #16
8016148: 46bd mov sp, r7
801614a: bd80 pop {r7, pc}
0801614c <UART_TxISR_8BIT>:
* interruptions have been enabled by HAL_UART_Transmit_IT().
* @param huart UART handle.
* @retval None
*/
static void UART_TxISR_8BIT(UART_HandleTypeDef *huart)
{
801614c: b480 push {r7}
801614e: b08f sub sp, #60 ; 0x3c
8016150: af00 add r7, sp, #0
8016152: 6078 str r0, [r7, #4]
/* Check that a Tx process is ongoing */
if (huart->gState == HAL_UART_STATE_BUSY_TX)
8016154: 687b ldr r3, [r7, #4]
8016156: 6f9b ldr r3, [r3, #120] ; 0x78
8016158: 2b21 cmp r3, #33 ; 0x21
801615a: d14c bne.n 80161f6 <UART_TxISR_8BIT+0xaa>
{
if (huart->TxXferCount == 0U)
801615c: 687b ldr r3, [r7, #4]
801615e: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8016162: b29b uxth r3, r3
8016164: 2b00 cmp r3, #0
8016166: d132 bne.n 80161ce <UART_TxISR_8BIT+0x82>
{
/* Disable the UART Transmit Data Register Empty Interrupt */
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE);
8016168: 687b ldr r3, [r7, #4]
801616a: 681b ldr r3, [r3, #0]
801616c: 623b str r3, [r7, #32]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
801616e: 6a3b ldr r3, [r7, #32]
8016170: e853 3f00 ldrex r3, [r3]
8016174: 61fb str r3, [r7, #28]
return(result);
8016176: 69fb ldr r3, [r7, #28]
8016178: f023 0380 bic.w r3, r3, #128 ; 0x80
801617c: 637b str r3, [r7, #52] ; 0x34
801617e: 687b ldr r3, [r7, #4]
8016180: 681b ldr r3, [r3, #0]
8016182: 461a mov r2, r3
8016184: 6b7b ldr r3, [r7, #52] ; 0x34
8016186: 62fb str r3, [r7, #44] ; 0x2c
8016188: 62ba str r2, [r7, #40] ; 0x28
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
801618a: 6ab9 ldr r1, [r7, #40] ; 0x28
801618c: 6afa ldr r2, [r7, #44] ; 0x2c
801618e: e841 2300 strex r3, r2, [r1]
8016192: 627b str r3, [r7, #36] ; 0x24
return(result);
8016194: 6a7b ldr r3, [r7, #36] ; 0x24
8016196: 2b00 cmp r3, #0
8016198: d1e6 bne.n 8016168 <UART_TxISR_8BIT+0x1c>
/* Enable the UART Transmit Complete Interrupt */
ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE);
801619a: 687b ldr r3, [r7, #4]
801619c: 681b ldr r3, [r3, #0]
801619e: 60fb str r3, [r7, #12]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
80161a0: 68fb ldr r3, [r7, #12]
80161a2: e853 3f00 ldrex r3, [r3]
80161a6: 60bb str r3, [r7, #8]
return(result);
80161a8: 68bb ldr r3, [r7, #8]
80161aa: f043 0340 orr.w r3, r3, #64 ; 0x40
80161ae: 633b str r3, [r7, #48] ; 0x30
80161b0: 687b ldr r3, [r7, #4]
80161b2: 681b ldr r3, [r3, #0]
80161b4: 461a mov r2, r3
80161b6: 6b3b ldr r3, [r7, #48] ; 0x30
80161b8: 61bb str r3, [r7, #24]
80161ba: 617a str r2, [r7, #20]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80161bc: 6979 ldr r1, [r7, #20]
80161be: 69ba ldr r2, [r7, #24]
80161c0: e841 2300 strex r3, r2, [r1]
80161c4: 613b str r3, [r7, #16]
return(result);
80161c6: 693b ldr r3, [r7, #16]
80161c8: 2b00 cmp r3, #0
80161ca: d1e6 bne.n 801619a <UART_TxISR_8BIT+0x4e>
huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF);
huart->pTxBuffPtr++;
huart->TxXferCount--;
}
}
}
80161cc: e013 b.n 80161f6 <UART_TxISR_8BIT+0xaa>
huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF);
80161ce: 687b ldr r3, [r7, #4]
80161d0: 681b ldr r3, [r3, #0]
80161d2: 687a ldr r2, [r7, #4]
80161d4: 6cd2 ldr r2, [r2, #76] ; 0x4c
80161d6: 7812 ldrb r2, [r2, #0]
80161d8: 629a str r2, [r3, #40] ; 0x28
huart->pTxBuffPtr++;
80161da: 687b ldr r3, [r7, #4]
80161dc: 6cdb ldr r3, [r3, #76] ; 0x4c
80161de: 1c5a adds r2, r3, #1
80161e0: 687b ldr r3, [r7, #4]
80161e2: 64da str r2, [r3, #76] ; 0x4c
huart->TxXferCount--;
80161e4: 687b ldr r3, [r7, #4]
80161e6: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
80161ea: b29b uxth r3, r3
80161ec: 3b01 subs r3, #1
80161ee: b29a uxth r2, r3
80161f0: 687b ldr r3, [r7, #4]
80161f2: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
}
80161f6: bf00 nop
80161f8: 373c adds r7, #60 ; 0x3c
80161fa: 46bd mov sp, r7
80161fc: f85d 7b04 ldr.w r7, [sp], #4
8016200: 4770 bx lr
08016202 <UART_TxISR_16BIT>:
* interruptions have been enabled by HAL_UART_Transmit_IT().
* @param huart UART handle.
* @retval None
*/
static void UART_TxISR_16BIT(UART_HandleTypeDef *huart)
{
8016202: b480 push {r7}
8016204: b091 sub sp, #68 ; 0x44
8016206: af00 add r7, sp, #0
8016208: 6078 str r0, [r7, #4]
const uint16_t *tmp;
/* Check that a Tx process is ongoing */
if (huart->gState == HAL_UART_STATE_BUSY_TX)
801620a: 687b ldr r3, [r7, #4]
801620c: 6f9b ldr r3, [r3, #120] ; 0x78
801620e: 2b21 cmp r3, #33 ; 0x21
8016210: d150 bne.n 80162b4 <UART_TxISR_16BIT+0xb2>
{
if (huart->TxXferCount == 0U)
8016212: 687b ldr r3, [r7, #4]
8016214: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8016218: b29b uxth r3, r3
801621a: 2b00 cmp r3, #0
801621c: d132 bne.n 8016284 <UART_TxISR_16BIT+0x82>
{
/* Disable the UART Transmit Data Register Empty Interrupt */
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE);
801621e: 687b ldr r3, [r7, #4]
8016220: 681b ldr r3, [r3, #0]
8016222: 627b str r3, [r7, #36] ; 0x24
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8016224: 6a7b ldr r3, [r7, #36] ; 0x24
8016226: e853 3f00 ldrex r3, [r3]
801622a: 623b str r3, [r7, #32]
return(result);
801622c: 6a3b ldr r3, [r7, #32]
801622e: f023 0380 bic.w r3, r3, #128 ; 0x80
8016232: 63fb str r3, [r7, #60] ; 0x3c
8016234: 687b ldr r3, [r7, #4]
8016236: 681b ldr r3, [r3, #0]
8016238: 461a mov r2, r3
801623a: 6bfb ldr r3, [r7, #60] ; 0x3c
801623c: 633b str r3, [r7, #48] ; 0x30
801623e: 62fa str r2, [r7, #44] ; 0x2c
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8016240: 6af9 ldr r1, [r7, #44] ; 0x2c
8016242: 6b3a ldr r2, [r7, #48] ; 0x30
8016244: e841 2300 strex r3, r2, [r1]
8016248: 62bb str r3, [r7, #40] ; 0x28
return(result);
801624a: 6abb ldr r3, [r7, #40] ; 0x28
801624c: 2b00 cmp r3, #0
801624e: d1e6 bne.n 801621e <UART_TxISR_16BIT+0x1c>
/* Enable the UART Transmit Complete Interrupt */
ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE);
8016250: 687b ldr r3, [r7, #4]
8016252: 681b ldr r3, [r3, #0]
8016254: 613b str r3, [r7, #16]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8016256: 693b ldr r3, [r7, #16]
8016258: e853 3f00 ldrex r3, [r3]
801625c: 60fb str r3, [r7, #12]
return(result);
801625e: 68fb ldr r3, [r7, #12]
8016260: f043 0340 orr.w r3, r3, #64 ; 0x40
8016264: 63bb str r3, [r7, #56] ; 0x38
8016266: 687b ldr r3, [r7, #4]
8016268: 681b ldr r3, [r3, #0]
801626a: 461a mov r2, r3
801626c: 6bbb ldr r3, [r7, #56] ; 0x38
801626e: 61fb str r3, [r7, #28]
8016270: 61ba str r2, [r7, #24]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8016272: 69b9 ldr r1, [r7, #24]
8016274: 69fa ldr r2, [r7, #28]
8016276: e841 2300 strex r3, r2, [r1]
801627a: 617b str r3, [r7, #20]
return(result);
801627c: 697b ldr r3, [r7, #20]
801627e: 2b00 cmp r3, #0
8016280: d1e6 bne.n 8016250 <UART_TxISR_16BIT+0x4e>
huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL);
huart->pTxBuffPtr += 2U;
huart->TxXferCount--;
}
}
}
8016282: e017 b.n 80162b4 <UART_TxISR_16BIT+0xb2>
tmp = (const uint16_t *) huart->pTxBuffPtr;
8016284: 687b ldr r3, [r7, #4]
8016286: 6cdb ldr r3, [r3, #76] ; 0x4c
8016288: 637b str r3, [r7, #52] ; 0x34
huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL);
801628a: 687b ldr r3, [r7, #4]
801628c: 681b ldr r3, [r3, #0]
801628e: 6b7a ldr r2, [r7, #52] ; 0x34
8016290: 8812 ldrh r2, [r2, #0]
8016292: f3c2 0208 ubfx r2, r2, #0, #9
8016296: 629a str r2, [r3, #40] ; 0x28
huart->pTxBuffPtr += 2U;
8016298: 687b ldr r3, [r7, #4]
801629a: 6cdb ldr r3, [r3, #76] ; 0x4c
801629c: 1c9a adds r2, r3, #2
801629e: 687b ldr r3, [r7, #4]
80162a0: 64da str r2, [r3, #76] ; 0x4c
huart->TxXferCount--;
80162a2: 687b ldr r3, [r7, #4]
80162a4: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
80162a8: b29b uxth r3, r3
80162aa: 3b01 subs r3, #1
80162ac: b29a uxth r2, r3
80162ae: 687b ldr r3, [r7, #4]
80162b0: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
}
80162b4: bf00 nop
80162b6: 3744 adds r7, #68 ; 0x44
80162b8: 46bd mov sp, r7
80162ba: f85d 7b04 ldr.w r7, [sp], #4
80162be: 4770 bx lr
080162c0 <UART_EndTransmit_IT>:
* @param huart pointer to a UART_HandleTypeDef structure that contains
* the configuration information for the specified UART module.
* @retval None
*/
static void UART_EndTransmit_IT(UART_HandleTypeDef *huart)
{
80162c0: b580 push {r7, lr}
80162c2: b088 sub sp, #32
80162c4: af00 add r7, sp, #0
80162c6: 6078 str r0, [r7, #4]
/* Disable the UART Transmit Complete Interrupt */
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE);
80162c8: 687b ldr r3, [r7, #4]
80162ca: 681b ldr r3, [r3, #0]
80162cc: 60fb str r3, [r7, #12]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
80162ce: 68fb ldr r3, [r7, #12]
80162d0: e853 3f00 ldrex r3, [r3]
80162d4: 60bb str r3, [r7, #8]
return(result);
80162d6: 68bb ldr r3, [r7, #8]
80162d8: f023 0340 bic.w r3, r3, #64 ; 0x40
80162dc: 61fb str r3, [r7, #28]
80162de: 687b ldr r3, [r7, #4]
80162e0: 681b ldr r3, [r3, #0]
80162e2: 461a mov r2, r3
80162e4: 69fb ldr r3, [r7, #28]
80162e6: 61bb str r3, [r7, #24]
80162e8: 617a str r2, [r7, #20]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80162ea: 6979 ldr r1, [r7, #20]
80162ec: 69ba ldr r2, [r7, #24]
80162ee: e841 2300 strex r3, r2, [r1]
80162f2: 613b str r3, [r7, #16]
return(result);
80162f4: 693b ldr r3, [r7, #16]
80162f6: 2b00 cmp r3, #0
80162f8: d1e6 bne.n 80162c8 <UART_EndTransmit_IT+0x8>
/* Tx process is ended, restore huart->gState to Ready */
huart->gState = HAL_UART_STATE_READY;
80162fa: 687b ldr r3, [r7, #4]
80162fc: 2220 movs r2, #32
80162fe: 679a str r2, [r3, #120] ; 0x78
/* Cleat TxISR function pointer */
huart->TxISR = NULL;
8016300: 687b ldr r3, [r7, #4]
8016302: 2200 movs r2, #0
8016304: 669a str r2, [r3, #104] ; 0x68
#if (USE_HAL_UART_REGISTER_CALLBACKS == 1)
/*Call registered Tx complete callback*/
huart->TxCpltCallback(huart);
#else
/*Call legacy weak Tx complete callback*/
HAL_UART_TxCpltCallback(huart);
8016306: 6878 ldr r0, [r7, #4]
8016308: f7f9 fdb6 bl 800fe78 <HAL_UART_TxCpltCallback>
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
}
801630c: bf00 nop
801630e: 3720 adds r7, #32
8016310: 46bd mov sp, r7
8016312: bd80 pop {r7, pc}
08016314 <Reset_Handler>:
.section .text.Reset_Handler
.weak Reset_Handler
.type Reset_Handler, %function
Reset_Handler:
ldr sp, =_estack /* set stack pointer */
8016314: f8df d034 ldr.w sp, [pc, #52] ; 801634c <LoopFillZerobss+0x14>
/* Copy the data segment initializers from flash to SRAM */
movs r1, #0
8016318: 2100 movs r1, #0
b LoopCopyDataInit
801631a: e003 b.n 8016324 <LoopCopyDataInit>
0801631c <CopyDataInit>:
CopyDataInit:
ldr r3, =_sidata
801631c: 4b0c ldr r3, [pc, #48] ; (8016350 <LoopFillZerobss+0x18>)
ldr r3, [r3, r1]
801631e: 585b ldr r3, [r3, r1]
str r3, [r0, r1]
8016320: 5043 str r3, [r0, r1]
adds r1, r1, #4
8016322: 3104 adds r1, #4
08016324 <LoopCopyDataInit>:
LoopCopyDataInit:
ldr r0, =_sdata
8016324: 480b ldr r0, [pc, #44] ; (8016354 <LoopFillZerobss+0x1c>)
ldr r3, =_edata
8016326: 4b0c ldr r3, [pc, #48] ; (8016358 <LoopFillZerobss+0x20>)
adds r2, r0, r1
8016328: 1842 adds r2, r0, r1
cmp r2, r3
801632a: 429a cmp r2, r3
bcc CopyDataInit
801632c: d3f6 bcc.n 801631c <CopyDataInit>
ldr r2, =_sbss
801632e: 4a0b ldr r2, [pc, #44] ; (801635c <LoopFillZerobss+0x24>)
b LoopFillZerobss
8016330: e002 b.n 8016338 <LoopFillZerobss>
08016332 <FillZerobss>:
/* Zero fill the bss segment. */
FillZerobss:
movs r3, #0
8016332: 2300 movs r3, #0
str r3, [r2], #4
8016334: f842 3b04 str.w r3, [r2], #4
08016338 <LoopFillZerobss>:
LoopFillZerobss:
ldr r3, = _ebss
8016338: 4b09 ldr r3, [pc, #36] ; (8016360 <LoopFillZerobss+0x28>)
cmp r2, r3
801633a: 429a cmp r2, r3
bcc FillZerobss
801633c: d3f9 bcc.n 8016332 <FillZerobss>
/* Call the clock system initialization function.*/
bl SystemInit
801633e: f7f9 fadd bl 800f8fc <SystemInit>
/* Call static constructors */
bl __libc_init_array
8016342: f000 f85f bl 8016404 <__libc_init_array>
/* Call the application's entry point.*/
bl main
8016346: f7ef fbcb bl 8005ae0 <main>
bx lr
801634a: 4770 bx lr
ldr sp, =_estack /* set stack pointer */
801634c: 20080000 .word 0x20080000
ldr r3, =_sidata
8016350: 0802fcb4 .word 0x0802fcb4
ldr r0, =_sdata
8016354: 20020000 .word 0x20020000
ldr r3, =_edata
8016358: 200209a8 .word 0x200209a8
ldr r2, =_sbss
801635c: 200209a8 .word 0x200209a8
ldr r3, = _ebss
8016360: 2006c6e4 .word 0x2006c6e4
08016364 <ADC_IRQHandler>:
* @retval None
*/
.section .text.Default_Handler,"ax",%progbits
Default_Handler:
Infinite_Loop:
b Infinite_Loop
8016364: e7fe b.n 8016364 <ADC_IRQHandler>
...
08016368 <modff>:
8016368: ee10 2a10 vmov r2, s0
801636c: f3c2 51c7 ubfx r1, r2, #23, #8
8016370: 397f subs r1, #127 ; 0x7f
8016372: 2916 cmp r1, #22
8016374: b510 push {r4, lr}
8016376: ee10 3a10 vmov r3, s0
801637a: dc0c bgt.n 8016396 <modff+0x2e>
801637c: 2900 cmp r1, #0
801637e: da05 bge.n 801638c <modff+0x24>
8016380: f002 4300 and.w r3, r2, #2147483648 ; 0x80000000
8016384: 6003 str r3, [r0, #0]
8016386: ee00 2a10 vmov s0, r2
801638a: bd10 pop {r4, pc}
801638c: 4c09 ldr r4, [pc, #36] ; (80163b4 <modff+0x4c>)
801638e: fa44 f101 asr.w r1, r4, r1
8016392: 420a tst r2, r1
8016394: d103 bne.n 801639e <modff+0x36>
8016396: 6002 str r2, [r0, #0]
8016398: f003 4200 and.w r2, r3, #2147483648 ; 0x80000000
801639c: e7f3 b.n 8016386 <modff+0x1e>
801639e: ea22 0301 bic.w r3, r2, r1
80163a2: ee07 3a10 vmov s14, r3
80163a6: ee70 7a47 vsub.f32 s15, s0, s14
80163aa: 6003 str r3, [r0, #0]
80163ac: ee17 2a90 vmov r2, s15
80163b0: e7e9 b.n 8016386 <modff+0x1e>
80163b2: bf00 nop
80163b4: 007fffff .word 0x007fffff
080163b8 <roundf>:
80163b8: ee10 0a10 vmov r0, s0
80163bc: f3c0 53c7 ubfx r3, r0, #23, #8
80163c0: f1a3 027f sub.w r2, r3, #127 ; 0x7f
80163c4: 2a16 cmp r2, #22
80163c6: dc15 bgt.n 80163f4 <roundf+0x3c>
80163c8: 2a00 cmp r2, #0
80163ca: da08 bge.n 80163de <roundf+0x26>
80163cc: 3201 adds r2, #1
80163ce: f000 4300 and.w r3, r0, #2147483648 ; 0x80000000
80163d2: d101 bne.n 80163d8 <roundf+0x20>
80163d4: f043 537e orr.w r3, r3, #1065353216 ; 0x3f800000
80163d8: ee00 3a10 vmov s0, r3
80163dc: 4770 bx lr
80163de: 4908 ldr r1, [pc, #32] ; (8016400 <roundf+0x48>)
80163e0: 4111 asrs r1, r2
80163e2: 4208 tst r0, r1
80163e4: d0fa beq.n 80163dc <roundf+0x24>
80163e6: f44f 0380 mov.w r3, #4194304 ; 0x400000
80163ea: 4113 asrs r3, r2
80163ec: 4403 add r3, r0
80163ee: ea23 0301 bic.w r3, r3, r1
80163f2: e7f1 b.n 80163d8 <roundf+0x20>
80163f4: 2a80 cmp r2, #128 ; 0x80
80163f6: d1f1 bne.n 80163dc <roundf+0x24>
80163f8: ee30 0a00 vadd.f32 s0, s0, s0
80163fc: 4770 bx lr
80163fe: bf00 nop
8016400: 007fffff .word 0x007fffff
08016404 <__libc_init_array>:
8016404: b570 push {r4, r5, r6, lr}
8016406: 4e0d ldr r6, [pc, #52] ; (801643c <__libc_init_array+0x38>)
8016408: 4c0d ldr r4, [pc, #52] ; (8016440 <__libc_init_array+0x3c>)
801640a: 1ba4 subs r4, r4, r6
801640c: 10a4 asrs r4, r4, #2
801640e: 2500 movs r5, #0
8016410: 42a5 cmp r5, r4
8016412: d109 bne.n 8016428 <__libc_init_array+0x24>
8016414: 4e0b ldr r6, [pc, #44] ; (8016444 <__libc_init_array+0x40>)
8016416: 4c0c ldr r4, [pc, #48] ; (8016448 <__libc_init_array+0x44>)
8016418: f000 f834 bl 8016484 <_init>
801641c: 1ba4 subs r4, r4, r6
801641e: 10a4 asrs r4, r4, #2
8016420: 2500 movs r5, #0
8016422: 42a5 cmp r5, r4
8016424: d105 bne.n 8016432 <__libc_init_array+0x2e>
8016426: bd70 pop {r4, r5, r6, pc}
8016428: f856 3025 ldr.w r3, [r6, r5, lsl #2]
801642c: 4798 blx r3
801642e: 3501 adds r5, #1
8016430: e7ee b.n 8016410 <__libc_init_array+0xc>
8016432: f856 3025 ldr.w r3, [r6, r5, lsl #2]
8016436: 4798 blx r3
8016438: 3501 adds r5, #1
801643a: e7f2 b.n 8016422 <__libc_init_array+0x1e>
801643c: 0802fcac .word 0x0802fcac
8016440: 0802fcac .word 0x0802fcac
8016444: 0802fcac .word 0x0802fcac
8016448: 0802fcb0 .word 0x0802fcb0
0801644c <memcpy>:
801644c: b510 push {r4, lr}
801644e: 1e43 subs r3, r0, #1
8016450: 440a add r2, r1
8016452: 4291 cmp r1, r2
8016454: d100 bne.n 8016458 <memcpy+0xc>
8016456: bd10 pop {r4, pc}
8016458: f811 4b01 ldrb.w r4, [r1], #1
801645c: f803 4f01 strb.w r4, [r3, #1]!
8016460: e7f7 b.n 8016452 <memcpy+0x6>
08016462 <memset>:
8016462: 4402 add r2, r0
8016464: 4603 mov r3, r0
8016466: 4293 cmp r3, r2
8016468: d100 bne.n 801646c <memset+0xa>
801646a: 4770 bx lr
801646c: f803 1b01 strb.w r1, [r3], #1
8016470: e7f9 b.n 8016466 <memset+0x4>
08016472 <strcpy>:
8016472: 4603 mov r3, r0
8016474: f811 2b01 ldrb.w r2, [r1], #1
8016478: f803 2b01 strb.w r2, [r3], #1
801647c: 2a00 cmp r2, #0
801647e: d1f9 bne.n 8016474 <strcpy+0x2>
8016480: 4770 bx lr
...
08016484 <_init>:
8016484: b5f8 push {r3, r4, r5, r6, r7, lr}
8016486: bf00 nop
8016488: bcf8 pop {r3, r4, r5, r6, r7}
801648a: bc08 pop {r3}
801648c: 469e mov lr, r3
801648e: 4770 bx lr
08016490 <_fini>:
8016490: b5f8 push {r3, r4, r5, r6, r7, lr}
8016492: bf00 nop
8016494: bcf8 pop {r3, r4, r5, r6, r7}
8016496: bc08 pop {r3}
8016498: 469e mov lr, r3
801649a: 4770 bx lr