F203/Debug/F203 VER 4.list

48261 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 0001631c 080001f8 080001f8 000101f8 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .rodata 00019808 08016514 08016514 00026514 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
3 .ARM 00000008 0802fd1c 0802fd1c 0003fd1c 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
4 .init_array 00000004 0802fd24 0802fd24 0003fd24 2**2
CONTENTS, ALLOC, LOAD, DATA
5 .fini_array 00000004 0802fd28 0802fd28 0003fd28 2**2
CONTENTS, ALLOC, LOAD, DATA
6 .data 000009a8 20020000 0802fd2c 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 0000ef70 00000000 00000000 00078010 2**0
CONTENTS, READONLY, DEBUGGING
17 .debug_str 00009231 00000000 00000000 00086f80 2**0
CONTENTS, READONLY, DEBUGGING
18 .comment 0000007c 00000000 00000000 000901b1 2**0
CONTENTS, READONLY
19 .debug_frame 00005c8c 00000000 00000000 00090230 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: 080164fc .word 0x080164fc
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: 080164fc .word 0x080164fc
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 fabf bl 8004ae4 <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 fb6d bl 8012c4c <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 fb4e bl 8012c1c <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 fb5d bl 8012c4c <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 fb58 bl 8012c4c <HAL_GPIO_WritePin>
HAL_Delay(300);
800059c: f44f 7096 mov.w r0, #300 ; 0x12c
80005a0: f011 f828 bl 80115f4 <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 fb7b bl 8011cf0 <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 fc30 bl 8005e64 <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 fce0 bl 8011fcc <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 fc27 bl 8005e64 <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: f012 f800 bl 8012688 <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 fe20 bl 80122f4 <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 ff69 bl 80125a8 <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 fd9d bl 801223c <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 fe0f bl 8012338 <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 fec0 bl 80164c4 <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 f9f2 bl 8012c4c <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 f9ec bl 8012c4c <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 f9e7 bl 8012c4c <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 f9e1 bl 8012c4c <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 f9db bl 8012c4c <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: f012 f80b bl 80128c8 <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 fffc bl 80128c8 <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 ffed bl 80128c8 <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 ffde bl 80128c8 <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 ffd2 bl 80128c8 <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 ffc4 bl 80128c8 <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 f980 bl 8012c4c <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 f97b bl 8012c4c <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 f975 bl 8012c4c <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 f95c bl 8012c4c <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 f957 bl 8012c4c <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 f952 bl 8012c4c <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 f921 bl 8012c1c <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 f92f bl 8012c4c <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 f92a bl 8012c4c <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 f925 bl 8012c4c <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 f920 bl 8012c4c <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 f903 bl 8012c1c <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 f90f bl 8012c4c <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 f90a bl 8012c4c <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 f8ed bl 8012c1c <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 f8f9 bl 8012c4c <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 f8f4 bl 8012c4c <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 f8d7 bl 8012c1c <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 f8e3 bl 8012c4c <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 fbd9 bl 801054c <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 fb74 bl 801054c <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 fb09 bl 801054c <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 fab1 bl 801054c <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 fa23 bl 801054c <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 f99b bl 801054c <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 f91f bl 801054c <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 f898 bl 801054c <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 ff4c bl 801054c <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 fef4 bl 801054c <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 fe91 bl 801054c <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 fe2c bl 801054c <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 f877 bl 8003a84 <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 fb5c bl 80164c4 <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 fea4 bl 8010ba8 <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 fb26 bl 80164c4 <memcpy>
if(menupos < Kpt_1)
8001e78: e1ce b.n 8002218 <keyIns+0x169c>
WriteChannel(Ch1);
8001e7a: 2000 movs r0, #0
8001e7c: f00e fb66 bl 801054c <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 fb02 bl 80164c4 <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 fe4a bl 8010ba8 <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 facc bl 80164c4 <memcpy>
if(menupos < Kpt_2)
8001f2c: e174 b.n 8002218 <keyIns+0x169c>
WriteChannel(Ch2);
8001f2e: 2001 movs r0, #1
8001f30: f00e fb0c bl 801054c <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 fab9 bl 80164c4 <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 fe01 bl 8010ba8 <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 fa83 bl 80164c4 <memcpy>
if(menupos < Kpt_3)
8001fbe: e12b b.n 8002218 <keyIns+0x169c>
WriteChannel(Ch3);
8001fc0: 2002 movs r0, #2
8001fc2: f00e fac3 bl 801054c <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 fa70 bl 80164c4 <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 fdb6 bl 8010ba8 <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 fa38 bl 80164c4 <memcpy>
break;
8002054: e10d b.n 8002272 <keyIns+0x16f6>
WriteChannel(Ch4);
8002056: 2003 movs r0, #3
8002058: f00e fa78 bl 801054c <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 feb9 bl 8010e30 <Calibr>
break;
80020be: e0d8 b.n 8002272 <keyIns+0x16f6>
CalibrOFF();
80020c0: f00f f930 bl 8011324 <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 fe86 bl 8010e30 <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 ffb6 bl 80110b4 <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 ff97 bl 80110b4 <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 ff85 bl 80110b4 <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 ff73 bl 80110b4 <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 ff61 bl 80110b4 <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 ff4f bl 80110b4 <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 f92f bl 801054c <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 f8da bl 801054c <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 f895 bl 801054c <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 f850 bl 801054c <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: f00e f800 bl 801054c <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 ffbb bl 801054c <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 ff76 bl 801054c <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 ff31 bl 801054c <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 feec bl 801054c <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 fe98 bl 801054c <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 fe53 bl 801054c <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 fe0e bl 801054c <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 fdc9 bl 801054c <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 fd85 bl 801054c <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 fd44 bl 801054c <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 fd09 bl 801054c <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 fcc5 bl 801054c <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 fc79 bl 801054c <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 fc45 bl 801054c <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: 4bb0 ldr r3, [pc, #704] ; (800315c <DoKeyUP+0x460>)
8002e9a: 681b ldr r3, [r3, #0]
8002e9c: 4ab0 ldr r2, [pc, #704] ; (8003160 <DoKeyUP+0x464>)
8002e9e: 015b lsls r3, r3, #5
8002ea0: 4413 add r3, r2
8002ea2: 3318 adds r3, #24
8002ea4: edd3 7a00 vldr s15, [r3]
8002ea8: ed9f 7aae vldr s14, [pc, #696] ; 8003164 <DoKeyUP+0x468>
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: 4ba9 ldr r3, [pc, #676] ; (800315c <DoKeyUP+0x460>)
8002eb8: 681b ldr r3, [r3, #0]
8002eba: 4aa9 ldr r2, [pc, #676] ; (8003160 <DoKeyUP+0x464>)
8002ebc: 015b lsls r3, r3, #5
8002ebe: 4413 add r3, r2
8002ec0: 3318 adds r3, #24
8002ec2: 4aa9 ldr r2, [pc, #676] ; (8003168 <DoKeyUP+0x46c>)
8002ec4: 601a str r2, [r3, #0]
s = 99999;
8002ec6: 4ba9 ldr r3, [pc, #676] ; (800316c <DoKeyUP+0x470>)
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: 4aa7 ldr r2, [pc, #668] ; (8003170 <DoKeyUP+0x474>)
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: 4ba4 ldr r3, [pc, #656] ; (8003170 <DoKeyUP+0x474>)
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: 4aa1 ldr r2, [pc, #644] ; (8003174 <DoKeyUP+0x478>)
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: 4b9d ldr r3, [pc, #628] ; (8003170 <DoKeyUP+0x474>)
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: 4a99 ldr r2, [pc, #612] ; (8003174 <DoKeyUP+0x478>)
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: 4b96 ldr r3, [pc, #600] ; (8003178 <DoKeyUP+0x47c>)
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: 4a91 ldr r2, [pc, #580] ; (8003170 <DoKeyUP+0x474>)
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: 4b8d ldr r3, [pc, #564] ; (8003174 <DoKeyUP+0x478>)
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: 4a8a ldr r2, [pc, #552] ; (8003178 <DoKeyUP+0x47c>)
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: 4b87 ldr r3, [pc, #540] ; (800317c <DoKeyUP+0x480>)
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: 4a81 ldr r2, [pc, #516] ; (8003170 <DoKeyUP+0x474>)
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: 4b7d ldr r3, [pc, #500] ; (8003174 <DoKeyUP+0x478>)
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: 4a7a ldr r2, [pc, #488] ; (8003178 <DoKeyUP+0x47c>)
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: 4b77 ldr r3, [pc, #476] ; (800317c <DoKeyUP+0x480>)
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: 4b73 ldr r3, [pc, #460] ; (8003180 <DoKeyUP+0x484>)
8002fb4: 781b ldrb r3, [r3, #0]
8002fb6: b2db uxtb r3, r3
8002fb8: 2b02 cmp r3, #2
8002fba: d00f beq.n 8002fdc <DoKeyUP+0x2e0>
8002fbc: 4b70 ldr r3, [pc, #448] ; (8003180 <DoKeyUP+0x484>)
8002fbe: 781b ldrb r3, [r3, #0]
8002fc0: b2db uxtb r3, r3
8002fc2: 2b0a cmp r3, #10
8002fc4: d00a beq.n 8002fdc <DoKeyUP+0x2e0>
8002fc6: 4b6e ldr r3, [pc, #440] ; (8003180 <DoKeyUP+0x484>)
8002fc8: 781b ldrb r3, [r3, #0]
8002fca: b2db uxtb r3, r3
8002fcc: 2b12 cmp r3, #18
8002fce: d005 beq.n 8002fdc <DoKeyUP+0x2e0>
8002fd0: 4b6b ldr r3, [pc, #428] ; (8003180 <DoKeyUP+0x484>)
8002fd2: 781b ldrb r3, [r3, #0]
8002fd4: b2db uxtb r3, r3
8002fd6: 2b1a cmp r3, #26
8002fd8: f040 80e2 bne.w 80031a0 <DoKeyUP+0x4a4>
{
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: 4b4f ldr r3, [pc, #316] ; (800315c <DoKeyUP+0x460>)
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: 4a4d ldr r2, [pc, #308] ; (8003160 <DoKeyUP+0x464>)
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: 4b47 ldr r3, [pc, #284] ; (800315c <DoKeyUP+0x460>)
800303e: 681b ldr r3, [r3, #0]
8003040: 4947 ldr r1, [pc, #284] ; (8003160 <DoKeyUP+0x464>)
8003042: 015a lsls r2, r3, #5
8003044: 440a add r2, r1
8003046: 3218 adds r2, #24
8003048: edd2 7a00 vldr s15, [r2]
800304c: ed9f 7a4d vldr s14, [pc, #308] ; 8003184 <DoKeyUP+0x488>
8003050: ee67 7a87 vmul.f32 s15, s15, s14
8003054: 4a42 ldr r2, [pc, #264] ; (8003160 <DoKeyUP+0x464>)
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: 4b3c ldr r3, [pc, #240] ; (800315c <DoKeyUP+0x460>)
800306a: 681b ldr r3, [r3, #0]
800306c: 493c ldr r1, [pc, #240] ; (8003160 <DoKeyUP+0x464>)
800306e: 015a lsls r2, r3, #5
8003070: 440a add r2, r1
8003072: 3218 adds r2, #24
8003074: edd2 7a00 vldr s15, [r2]
8003078: ed9f 7a43 vldr s14, [pc, #268] ; 8003188 <DoKeyUP+0x48c>
800307c: ee67 7a87 vmul.f32 s15, s15, s14
8003080: 4a37 ldr r2, [pc, #220] ; (8003160 <DoKeyUP+0x464>)
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: 4b31 ldr r3, [pc, #196] ; (800315c <DoKeyUP+0x460>)
8003096: 681b ldr r3, [r3, #0]
8003098: 4931 ldr r1, [pc, #196] ; (8003160 <DoKeyUP+0x464>)
800309a: 015a lsls r2, r3, #5
800309c: 440a add r2, r1
800309e: 3218 adds r2, #24
80030a0: edd2 7a00 vldr s15, [r2]
80030a4: ed9f 7a39 vldr s14, [pc, #228] ; 800318c <DoKeyUP+0x490>
80030a8: ee67 7a87 vmul.f32 s15, s15, s14
80030ac: 4a2c ldr r2, [pc, #176] ; (8003160 <DoKeyUP+0x464>)
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: 4b26 ldr r3, [pc, #152] ; (800315c <DoKeyUP+0x460>)
80030c2: 681b ldr r3, [r3, #0]
80030c4: 4926 ldr r1, [pc, #152] ; (8003160 <DoKeyUP+0x464>)
80030c6: 015a lsls r2, r3, #5
80030c8: 440a add r2, r1
80030ca: 3218 adds r2, #24
80030cc: edd2 7a00 vldr s15, [r2]
80030d0: ed9f 7a2f vldr s14, [pc, #188] ; 8003190 <DoKeyUP+0x494>
80030d4: ee67 7a87 vmul.f32 s15, s15, s14
80030d8: 4a21 ldr r2, [pc, #132] ; (8003160 <DoKeyUP+0x464>)
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.0010f) { //<2F><><EF><EE><EF><F0><E0><E2>
80030e4: 4b1d ldr r3, [pc, #116] ; (800315c <DoKeyUP+0x460>)
80030e6: 681b ldr r3, [r3, #0]
80030e8: 4a1d ldr r2, [pc, #116] ; (8003160 <DoKeyUP+0x464>)
80030ea: 015b lsls r3, r3, #5
80030ec: 4413 add r3, r2
80030ee: 3318 adds r3, #24
80030f0: edd3 7a00 vldr s15, [r3]
80030f4: ed9f 7a25 vldr s14, [pc, #148] ; 800318c <DoKeyUP+0x490>
80030f8: eef4 7ac7 vcmpe.f32 s15, s14
80030fc: eef1 fa10 vmrs APSR_nzcv, fpscr
8003100: d507 bpl.n 8003112 <DoKeyUP+0x416>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f;
8003102: 4b16 ldr r3, [pc, #88] ; (800315c <DoKeyUP+0x460>)
8003104: 681b ldr r3, [r3, #0]
8003106: 4a16 ldr r2, [pc, #88] ; (8003160 <DoKeyUP+0x464>)
8003108: 015b lsls r3, r3, #5
800310a: 4413 add r3, r2
800310c: 3318 adds r3, #24
800310e: 4a21 ldr r2, [pc, #132] ; (8003194 <DoKeyUP+0x498>)
8003110: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) {
8003112: 4b12 ldr r3, [pc, #72] ; (800315c <DoKeyUP+0x460>)
8003114: 681b ldr r3, [r3, #0]
8003116: 4a12 ldr r2, [pc, #72] ; (8003160 <DoKeyUP+0x464>)
8003118: 015b lsls r3, r3, #5
800311a: 4413 add r3, r2
800311c: 3318 adds r3, #24
800311e: edd3 7a00 vldr s15, [r3]
8003122: ed9f 7a1d vldr s14, [pc, #116] ; 8003198 <DoKeyUP+0x49c>
8003126: eef4 7ac7 vcmpe.f32 s15, s14
800312a: eef1 fa10 vmrs APSR_nzcv, fpscr
800312e: db07 blt.n 8003140 <DoKeyUP+0x444>
pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f;
8003130: 4b0a ldr r3, [pc, #40] ; (800315c <DoKeyUP+0x460>)
8003132: 681b ldr r3, [r3, #0]
8003134: 4a0a ldr r2, [pc, #40] ; (8003160 <DoKeyUP+0x464>)
8003136: 015b lsls r3, r3, #5
8003138: 4413 add r3, r2
800313a: 3318 adds r3, #24
800313c: 4a17 ldr r2, [pc, #92] ; (800319c <DoKeyUP+0x4a0>)
800313e: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
8003140: 4b06 ldr r3, [pc, #24] ; (800315c <DoKeyUP+0x460>)
8003142: 681b ldr r3, [r3, #0]
8003144: 4a06 ldr r2, [pc, #24] ; (8003160 <DoKeyUP+0x464>)
8003146: 015b lsls r3, r3, #5
8003148: 4413 add r3, r2
800314a: 3318 adds r3, #24
800314c: edd3 7a00 vldr s15, [r3]
8003150: eeb0 0a67 vmov.f32 s0, s15
8003154: f001 fb5a bl 800480c <VerifyGain>
8003158: f000 bc82 b.w 8003a60 <DoKeyUP+0xd64>
800315c: 2006ba68 .word 0x2006ba68
8003160: 2006bca8 .word 0x2006bca8
8003164: 47c35000 .word 0x47c35000
8003168: 47c34f80 .word 0x47c34f80
800316c: 0001869f .word 0x0001869f
8003170: d1b71759 .word 0xd1b71759
8003174: 10624dd3 .word 0x10624dd3
8003178: 51eb851f .word 0x51eb851f
800317c: cccccccd .word 0xcccccccd
8003180: 20020010 .word 0x20020010
8003184: 3dcccccd .word 0x3dcccccd
8003188: 3c23d70a .word 0x3c23d70a
800318c: 3a83126f .word 0x3a83126f
8003190: 38d1b717 .word 0x38d1b717
8003194: 3a83126f .word 0x3a83126f
8003198: 461c4000 .word 0x461c4000
800319c: 461c3c00 .word 0x461c3c00
}
else
if(menupos == Kikt_1 || menupos == Kikt_2 || menupos == Kikt_3 || menupos == Kikt_4)
80031a0: 4bab ldr r3, [pc, #684] ; (8003450 <DoKeyUP+0x754>)
80031a2: 781b ldrb r3, [r3, #0]
80031a4: b2db uxtb r3, r3
80031a6: 2b03 cmp r3, #3
80031a8: d00f beq.n 80031ca <DoKeyUP+0x4ce>
80031aa: 4ba9 ldr r3, [pc, #676] ; (8003450 <DoKeyUP+0x754>)
80031ac: 781b ldrb r3, [r3, #0]
80031ae: b2db uxtb r3, r3
80031b0: 2b0b cmp r3, #11
80031b2: d00a beq.n 80031ca <DoKeyUP+0x4ce>
80031b4: 4ba6 ldr r3, [pc, #664] ; (8003450 <DoKeyUP+0x754>)
80031b6: 781b ldrb r3, [r3, #0]
80031b8: b2db uxtb r3, r3
80031ba: 2b13 cmp r3, #19
80031bc: d005 beq.n 80031ca <DoKeyUP+0x4ce>
80031be: 4ba4 ldr r3, [pc, #656] ; (8003450 <DoKeyUP+0x754>)
80031c0: 781b ldrb r3, [r3, #0]
80031c2: b2db uxtb r3, r3
80031c4: 2b1b cmp r3, #27
80031c6: f040 80bf bne.w 8003348 <DoKeyUP+0x64c>
{
if(ikt < 9) {
80031ca: 697b ldr r3, [r7, #20]
80031cc: 2b08 cmp r3, #8
80031ce: d802 bhi.n 80031d6 <DoKeyUP+0x4da>
ikt++;
80031d0: 697b ldr r3, [r7, #20]
80031d2: 3301 adds r3, #1
80031d4: 617b str r3, [r7, #20]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
80031d6: 69bb ldr r3, [r7, #24]
80031d8: f242 7210 movw r2, #10000 ; 0x2710
80031dc: fb02 f203 mul.w r2, r2, r3
80031e0: 697b ldr r3, [r7, #20]
80031e2: f44f 717a mov.w r1, #1000 ; 0x3e8
80031e6: fb01 f303 mul.w r3, r1, r3
80031ea: 18d1 adds r1, r2, r3
80031ec: 68fa ldr r2, [r7, #12]
80031ee: 4613 mov r3, r2
80031f0: 009b lsls r3, r3, #2
80031f2: 4413 add r3, r2
80031f4: 005b lsls r3, r3, #1
80031f6: 4618 mov r0, r3
80031f8: 693b ldr r3, [r7, #16]
80031fa: 2264 movs r2, #100 ; 0x64
80031fc: fb02 f303 mul.w r3, r2, r3
8003200: 4403 add r3, r0
8003202: 18ca adds r2, r1, r3
8003204: 68bb ldr r3, [r7, #8]
8003206: 4413 add r3, r2
8003208: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
800320a: 4b92 ldr r3, [pc, #584] ; (8003454 <DoKeyUP+0x758>)
800320c: 681b ldr r3, [r3, #0]
800320e: 69fa ldr r2, [r7, #28]
8003210: ee07 2a90 vmov s15, r2
8003214: eef8 7a67 vcvt.f32.u32 s15, s15
8003218: 4a8f ldr r2, [pc, #572] ; (8003458 <DoKeyUP+0x75c>)
800321a: 015b lsls r3, r3, #5
800321c: 4413 add r3, r2
800321e: 3318 adds r3, #24
8003220: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8003224: 687b ldr r3, [r7, #4]
8003226: 2b01 cmp r3, #1
8003228: d112 bne.n 8003250 <DoKeyUP+0x554>
800322a: 4b8a ldr r3, [pc, #552] ; (8003454 <DoKeyUP+0x758>)
800322c: 681b ldr r3, [r3, #0]
800322e: 498a ldr r1, [pc, #552] ; (8003458 <DoKeyUP+0x75c>)
8003230: 015a lsls r2, r3, #5
8003232: 440a add r2, r1
8003234: 3218 adds r2, #24
8003236: edd2 7a00 vldr s15, [r2]
800323a: ed9f 7a88 vldr s14, [pc, #544] ; 800345c <DoKeyUP+0x760>
800323e: ee67 7a87 vmul.f32 s15, s15, s14
8003242: 4a85 ldr r2, [pc, #532] ; (8003458 <DoKeyUP+0x75c>)
8003244: 015b lsls r3, r3, #5
8003246: 4413 add r3, r2
8003248: 3318 adds r3, #24
800324a: edc3 7a00 vstr s15, [r3]
800324e: e040 b.n 80032d2 <DoKeyUP+0x5d6>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8003250: 687b ldr r3, [r7, #4]
8003252: 2b02 cmp r3, #2
8003254: d112 bne.n 800327c <DoKeyUP+0x580>
8003256: 4b7f ldr r3, [pc, #508] ; (8003454 <DoKeyUP+0x758>)
8003258: 681b ldr r3, [r3, #0]
800325a: 497f ldr r1, [pc, #508] ; (8003458 <DoKeyUP+0x75c>)
800325c: 015a lsls r2, r3, #5
800325e: 440a add r2, r1
8003260: 3218 adds r2, #24
8003262: edd2 7a00 vldr s15, [r2]
8003266: ed9f 7a7e vldr s14, [pc, #504] ; 8003460 <DoKeyUP+0x764>
800326a: ee67 7a87 vmul.f32 s15, s15, s14
800326e: 4a7a ldr r2, [pc, #488] ; (8003458 <DoKeyUP+0x75c>)
8003270: 015b lsls r3, r3, #5
8003272: 4413 add r3, r2
8003274: 3318 adds r3, #24
8003276: edc3 7a00 vstr s15, [r3]
800327a: e02a b.n 80032d2 <DoKeyUP+0x5d6>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
800327c: 687b ldr r3, [r7, #4]
800327e: 2b03 cmp r3, #3
8003280: d112 bne.n 80032a8 <DoKeyUP+0x5ac>
8003282: 4b74 ldr r3, [pc, #464] ; (8003454 <DoKeyUP+0x758>)
8003284: 681b ldr r3, [r3, #0]
8003286: 4974 ldr r1, [pc, #464] ; (8003458 <DoKeyUP+0x75c>)
8003288: 015a lsls r2, r3, #5
800328a: 440a add r2, r1
800328c: 3218 adds r2, #24
800328e: edd2 7a00 vldr s15, [r2]
8003292: ed9f 7a74 vldr s14, [pc, #464] ; 8003464 <DoKeyUP+0x768>
8003296: ee67 7a87 vmul.f32 s15, s15, s14
800329a: 4a6f ldr r2, [pc, #444] ; (8003458 <DoKeyUP+0x75c>)
800329c: 015b lsls r3, r3, #5
800329e: 4413 add r3, r2
80032a0: 3318 adds r3, #24
80032a2: edc3 7a00 vstr s15, [r3]
80032a6: e014 b.n 80032d2 <DoKeyUP+0x5d6>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
80032a8: 687b ldr r3, [r7, #4]
80032aa: 2b04 cmp r3, #4
80032ac: d111 bne.n 80032d2 <DoKeyUP+0x5d6>
80032ae: 4b69 ldr r3, [pc, #420] ; (8003454 <DoKeyUP+0x758>)
80032b0: 681b ldr r3, [r3, #0]
80032b2: 4969 ldr r1, [pc, #420] ; (8003458 <DoKeyUP+0x75c>)
80032b4: 015a lsls r2, r3, #5
80032b6: 440a add r2, r1
80032b8: 3218 adds r2, #24
80032ba: edd2 7a00 vldr s15, [r2]
80032be: ed9f 7a6a vldr s14, [pc, #424] ; 8003468 <DoKeyUP+0x76c>
80032c2: ee67 7a87 vmul.f32 s15, s15, s14
80032c6: 4a64 ldr r2, [pc, #400] ; (8003458 <DoKeyUP+0x75c>)
80032c8: 015b lsls r3, r3, #5
80032ca: 4413 add r3, r2
80032cc: 3318 adds r3, #24
80032ce: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //<2F><><EF><EE><EF><F0><E0><E2>
80032d2: 4b60 ldr r3, [pc, #384] ; (8003454 <DoKeyUP+0x758>)
80032d4: 681b ldr r3, [r3, #0]
80032d6: 4a60 ldr r2, [pc, #384] ; (8003458 <DoKeyUP+0x75c>)
80032d8: 015b lsls r3, r3, #5
80032da: 4413 add r3, r2
80032dc: 3318 adds r3, #24
80032de: edd3 7a00 vldr s15, [r3]
80032e2: ed9f 7a60 vldr s14, [pc, #384] ; 8003464 <DoKeyUP+0x768>
80032e6: eef4 7ac7 vcmpe.f32 s15, s14
80032ea: eef1 fa10 vmrs APSR_nzcv, fpscr
80032ee: d507 bpl.n 8003300 <DoKeyUP+0x604>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f;
80032f0: 4b58 ldr r3, [pc, #352] ; (8003454 <DoKeyUP+0x758>)
80032f2: 681b ldr r3, [r3, #0]
80032f4: 4a58 ldr r2, [pc, #352] ; (8003458 <DoKeyUP+0x75c>)
80032f6: 015b lsls r3, r3, #5
80032f8: 4413 add r3, r2
80032fa: 3318 adds r3, #24
80032fc: 4a5b ldr r2, [pc, #364] ; (800346c <DoKeyUP+0x770>)
80032fe: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) {
8003300: 4b54 ldr r3, [pc, #336] ; (8003454 <DoKeyUP+0x758>)
8003302: 681b ldr r3, [r3, #0]
8003304: 4a54 ldr r2, [pc, #336] ; (8003458 <DoKeyUP+0x75c>)
8003306: 015b lsls r3, r3, #5
8003308: 4413 add r3, r2
800330a: 3318 adds r3, #24
800330c: edd3 7a00 vldr s15, [r3]
8003310: ed9f 7a57 vldr s14, [pc, #348] ; 8003470 <DoKeyUP+0x774>
8003314: eef4 7ac7 vcmpe.f32 s15, s14
8003318: eef1 fa10 vmrs APSR_nzcv, fpscr
800331c: db07 blt.n 800332e <DoKeyUP+0x632>
pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f;
800331e: 4b4d ldr r3, [pc, #308] ; (8003454 <DoKeyUP+0x758>)
8003320: 681b ldr r3, [r3, #0]
8003322: 4a4d ldr r2, [pc, #308] ; (8003458 <DoKeyUP+0x75c>)
8003324: 015b lsls r3, r3, #5
8003326: 4413 add r3, r2
8003328: 3318 adds r3, #24
800332a: 4a52 ldr r2, [pc, #328] ; (8003474 <DoKeyUP+0x778>)
800332c: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
800332e: 4b49 ldr r3, [pc, #292] ; (8003454 <DoKeyUP+0x758>)
8003330: 681b ldr r3, [r3, #0]
8003332: 4a49 ldr r2, [pc, #292] ; (8003458 <DoKeyUP+0x75c>)
8003334: 015b lsls r3, r3, #5
8003336: 4413 add r3, r2
8003338: 3318 adds r3, #24
800333a: edd3 7a00 vldr s15, [r3]
800333e: eeb0 0a67 vmov.f32 s0, s15
8003342: f001 fa63 bl 800480c <VerifyGain>
8003346: e38b b.n 8003a60 <DoKeyUP+0xd64>
}
else
if(menupos == Kiks_1 || menupos == Kiks_2 || menupos == Kiks_3 || menupos == Kiks_4)
8003348: 4b41 ldr r3, [pc, #260] ; (8003450 <DoKeyUP+0x754>)
800334a: 781b ldrb r3, [r3, #0]
800334c: b2db uxtb r3, r3
800334e: 2b04 cmp r3, #4
8003350: d00f beq.n 8003372 <DoKeyUP+0x676>
8003352: 4b3f ldr r3, [pc, #252] ; (8003450 <DoKeyUP+0x754>)
8003354: 781b ldrb r3, [r3, #0]
8003356: b2db uxtb r3, r3
8003358: 2b0c cmp r3, #12
800335a: d00a beq.n 8003372 <DoKeyUP+0x676>
800335c: 4b3c ldr r3, [pc, #240] ; (8003450 <DoKeyUP+0x754>)
800335e: 781b ldrb r3, [r3, #0]
8003360: b2db uxtb r3, r3
8003362: 2b14 cmp r3, #20
8003364: d005 beq.n 8003372 <DoKeyUP+0x676>
8003366: 4b3a ldr r3, [pc, #232] ; (8003450 <DoKeyUP+0x754>)
8003368: 781b ldrb r3, [r3, #0]
800336a: b2db uxtb r3, r3
800336c: 2b1c cmp r3, #28
800336e: f040 80d3 bne.w 8003518 <DoKeyUP+0x81c>
{
if(iks < 9) {
8003372: 693b ldr r3, [r7, #16]
8003374: 2b08 cmp r3, #8
8003376: d802 bhi.n 800337e <DoKeyUP+0x682>
iks++;
8003378: 693b ldr r3, [r7, #16]
800337a: 3301 adds r3, #1
800337c: 613b str r3, [r7, #16]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
800337e: 69bb ldr r3, [r7, #24]
8003380: f242 7210 movw r2, #10000 ; 0x2710
8003384: fb02 f203 mul.w r2, r2, r3
8003388: 697b ldr r3, [r7, #20]
800338a: f44f 717a mov.w r1, #1000 ; 0x3e8
800338e: fb01 f303 mul.w r3, r1, r3
8003392: 18d1 adds r1, r2, r3
8003394: 68fa ldr r2, [r7, #12]
8003396: 4613 mov r3, r2
8003398: 009b lsls r3, r3, #2
800339a: 4413 add r3, r2
800339c: 005b lsls r3, r3, #1
800339e: 4618 mov r0, r3
80033a0: 693b ldr r3, [r7, #16]
80033a2: 2264 movs r2, #100 ; 0x64
80033a4: fb02 f303 mul.w r3, r2, r3
80033a8: 4403 add r3, r0
80033aa: 18ca adds r2, r1, r3
80033ac: 68bb ldr r3, [r7, #8]
80033ae: 4413 add r3, r2
80033b0: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
80033b2: 4b28 ldr r3, [pc, #160] ; (8003454 <DoKeyUP+0x758>)
80033b4: 681b ldr r3, [r3, #0]
80033b6: 69fa ldr r2, [r7, #28]
80033b8: ee07 2a90 vmov s15, r2
80033bc: eef8 7a67 vcvt.f32.u32 s15, s15
80033c0: 4a25 ldr r2, [pc, #148] ; (8003458 <DoKeyUP+0x75c>)
80033c2: 015b lsls r3, r3, #5
80033c4: 4413 add r3, r2
80033c6: 3318 adds r3, #24
80033c8: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
80033cc: 687b ldr r3, [r7, #4]
80033ce: 2b01 cmp r3, #1
80033d0: d112 bne.n 80033f8 <DoKeyUP+0x6fc>
80033d2: 4b20 ldr r3, [pc, #128] ; (8003454 <DoKeyUP+0x758>)
80033d4: 681b ldr r3, [r3, #0]
80033d6: 4920 ldr r1, [pc, #128] ; (8003458 <DoKeyUP+0x75c>)
80033d8: 015a lsls r2, r3, #5
80033da: 440a add r2, r1
80033dc: 3218 adds r2, #24
80033de: edd2 7a00 vldr s15, [r2]
80033e2: ed9f 7a1e vldr s14, [pc, #120] ; 800345c <DoKeyUP+0x760>
80033e6: ee67 7a87 vmul.f32 s15, s15, s14
80033ea: 4a1b ldr r2, [pc, #108] ; (8003458 <DoKeyUP+0x75c>)
80033ec: 015b lsls r3, r3, #5
80033ee: 4413 add r3, r2
80033f0: 3318 adds r3, #24
80033f2: edc3 7a00 vstr s15, [r3]
80033f6: e054 b.n 80034a2 <DoKeyUP+0x7a6>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
80033f8: 687b ldr r3, [r7, #4]
80033fa: 2b02 cmp r3, #2
80033fc: d112 bne.n 8003424 <DoKeyUP+0x728>
80033fe: 4b15 ldr r3, [pc, #84] ; (8003454 <DoKeyUP+0x758>)
8003400: 681b ldr r3, [r3, #0]
8003402: 4915 ldr r1, [pc, #84] ; (8003458 <DoKeyUP+0x75c>)
8003404: 015a lsls r2, r3, #5
8003406: 440a add r2, r1
8003408: 3218 adds r2, #24
800340a: edd2 7a00 vldr s15, [r2]
800340e: ed9f 7a14 vldr s14, [pc, #80] ; 8003460 <DoKeyUP+0x764>
8003412: ee67 7a87 vmul.f32 s15, s15, s14
8003416: 4a10 ldr r2, [pc, #64] ; (8003458 <DoKeyUP+0x75c>)
8003418: 015b lsls r3, r3, #5
800341a: 4413 add r3, r2
800341c: 3318 adds r3, #24
800341e: edc3 7a00 vstr s15, [r3]
8003422: e03e b.n 80034a2 <DoKeyUP+0x7a6>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8003424: 687b ldr r3, [r7, #4]
8003426: 2b03 cmp r3, #3
8003428: d126 bne.n 8003478 <DoKeyUP+0x77c>
800342a: 4b0a ldr r3, [pc, #40] ; (8003454 <DoKeyUP+0x758>)
800342c: 681b ldr r3, [r3, #0]
800342e: 490a ldr r1, [pc, #40] ; (8003458 <DoKeyUP+0x75c>)
8003430: 015a lsls r2, r3, #5
8003432: 440a add r2, r1
8003434: 3218 adds r2, #24
8003436: edd2 7a00 vldr s15, [r2]
800343a: ed9f 7a0a vldr s14, [pc, #40] ; 8003464 <DoKeyUP+0x768>
800343e: ee67 7a87 vmul.f32 s15, s15, s14
8003442: 4a05 ldr r2, [pc, #20] ; (8003458 <DoKeyUP+0x75c>)
8003444: 015b lsls r3, r3, #5
8003446: 4413 add r3, r2
8003448: 3318 adds r3, #24
800344a: edc3 7a00 vstr s15, [r3]
800344e: e028 b.n 80034a2 <DoKeyUP+0x7a6>
8003450: 20020010 .word 0x20020010
8003454: 2006ba68 .word 0x2006ba68
8003458: 2006bca8 .word 0x2006bca8
800345c: 3dcccccd .word 0x3dcccccd
8003460: 3c23d70a .word 0x3c23d70a
8003464: 3a83126f .word 0x3a83126f
8003468: 38d1b717 .word 0x38d1b717
800346c: 3a83126f .word 0x3a83126f
8003470: 461c4000 .word 0x461c4000
8003474: 461c3c00 .word 0x461c3c00
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8003478: 687b ldr r3, [r7, #4]
800347a: 2b04 cmp r3, #4
800347c: d111 bne.n 80034a2 <DoKeyUP+0x7a6>
800347e: 4b90 ldr r3, [pc, #576] ; (80036c0 <DoKeyUP+0x9c4>)
8003480: 681b ldr r3, [r3, #0]
8003482: 4990 ldr r1, [pc, #576] ; (80036c4 <DoKeyUP+0x9c8>)
8003484: 015a lsls r2, r3, #5
8003486: 440a add r2, r1
8003488: 3218 adds r2, #24
800348a: edd2 7a00 vldr s15, [r2]
800348e: ed9f 7a8e vldr s14, [pc, #568] ; 80036c8 <DoKeyUP+0x9cc>
8003492: ee67 7a87 vmul.f32 s15, s15, s14
8003496: 4a8b ldr r2, [pc, #556] ; (80036c4 <DoKeyUP+0x9c8>)
8003498: 015b lsls r3, r3, #5
800349a: 4413 add r3, r2
800349c: 3318 adds r3, #24
800349e: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //<2F><><EF><EE><EF><F0><E0><E2>
80034a2: 4b87 ldr r3, [pc, #540] ; (80036c0 <DoKeyUP+0x9c4>)
80034a4: 681b ldr r3, [r3, #0]
80034a6: 4a87 ldr r2, [pc, #540] ; (80036c4 <DoKeyUP+0x9c8>)
80034a8: 015b lsls r3, r3, #5
80034aa: 4413 add r3, r2
80034ac: 3318 adds r3, #24
80034ae: edd3 7a00 vldr s15, [r3]
80034b2: ed9f 7a86 vldr s14, [pc, #536] ; 80036cc <DoKeyUP+0x9d0>
80034b6: eef4 7ac7 vcmpe.f32 s15, s14
80034ba: eef1 fa10 vmrs APSR_nzcv, fpscr
80034be: d507 bpl.n 80034d0 <DoKeyUP+0x7d4>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f;
80034c0: 4b7f ldr r3, [pc, #508] ; (80036c0 <DoKeyUP+0x9c4>)
80034c2: 681b ldr r3, [r3, #0]
80034c4: 4a7f ldr r2, [pc, #508] ; (80036c4 <DoKeyUP+0x9c8>)
80034c6: 015b lsls r3, r3, #5
80034c8: 4413 add r3, r2
80034ca: 3318 adds r3, #24
80034cc: 4a80 ldr r2, [pc, #512] ; (80036d0 <DoKeyUP+0x9d4>)
80034ce: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) {
80034d0: 4b7b ldr r3, [pc, #492] ; (80036c0 <DoKeyUP+0x9c4>)
80034d2: 681b ldr r3, [r3, #0]
80034d4: 4a7b ldr r2, [pc, #492] ; (80036c4 <DoKeyUP+0x9c8>)
80034d6: 015b lsls r3, r3, #5
80034d8: 4413 add r3, r2
80034da: 3318 adds r3, #24
80034dc: edd3 7a00 vldr s15, [r3]
80034e0: ed9f 7a7c vldr s14, [pc, #496] ; 80036d4 <DoKeyUP+0x9d8>
80034e4: eef4 7ac7 vcmpe.f32 s15, s14
80034e8: eef1 fa10 vmrs APSR_nzcv, fpscr
80034ec: db07 blt.n 80034fe <DoKeyUP+0x802>
pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f;
80034ee: 4b74 ldr r3, [pc, #464] ; (80036c0 <DoKeyUP+0x9c4>)
80034f0: 681b ldr r3, [r3, #0]
80034f2: 4a74 ldr r2, [pc, #464] ; (80036c4 <DoKeyUP+0x9c8>)
80034f4: 015b lsls r3, r3, #5
80034f6: 4413 add r3, r2
80034f8: 3318 adds r3, #24
80034fa: 4a77 ldr r2, [pc, #476] ; (80036d8 <DoKeyUP+0x9dc>)
80034fc: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
80034fe: 4b70 ldr r3, [pc, #448] ; (80036c0 <DoKeyUP+0x9c4>)
8003500: 681b ldr r3, [r3, #0]
8003502: 4a70 ldr r2, [pc, #448] ; (80036c4 <DoKeyUP+0x9c8>)
8003504: 015b lsls r3, r3, #5
8003506: 4413 add r3, r2
8003508: 3318 adds r3, #24
800350a: edd3 7a00 vldr s15, [r3]
800350e: eeb0 0a67 vmov.f32 s0, s15
8003512: f001 f97b bl 800480c <VerifyGain>
8003516: e2a3 b.n 8003a60 <DoKeyUP+0xd64>
}
else
if(menupos == Kikd_1 || menupos == Kikd_2 || menupos == Kikd_3 || menupos == Kikd_4)
8003518: 4b70 ldr r3, [pc, #448] ; (80036dc <DoKeyUP+0x9e0>)
800351a: 781b ldrb r3, [r3, #0]
800351c: b2db uxtb r3, r3
800351e: 2b05 cmp r3, #5
8003520: d00f beq.n 8003542 <DoKeyUP+0x846>
8003522: 4b6e ldr r3, [pc, #440] ; (80036dc <DoKeyUP+0x9e0>)
8003524: 781b ldrb r3, [r3, #0]
8003526: b2db uxtb r3, r3
8003528: 2b0d cmp r3, #13
800352a: d00a beq.n 8003542 <DoKeyUP+0x846>
800352c: 4b6b ldr r3, [pc, #428] ; (80036dc <DoKeyUP+0x9e0>)
800352e: 781b ldrb r3, [r3, #0]
8003530: b2db uxtb r3, r3
8003532: 2b15 cmp r3, #21
8003534: d005 beq.n 8003542 <DoKeyUP+0x846>
8003536: 4b69 ldr r3, [pc, #420] ; (80036dc <DoKeyUP+0x9e0>)
8003538: 781b ldrb r3, [r3, #0]
800353a: b2db uxtb r3, r3
800353c: 2b1d cmp r3, #29
800353e: f040 80d3 bne.w 80036e8 <DoKeyUP+0x9ec>
{
if(ikd < 9) {
8003542: 68fb ldr r3, [r7, #12]
8003544: 2b08 cmp r3, #8
8003546: d802 bhi.n 800354e <DoKeyUP+0x852>
ikd++;
8003548: 68fb ldr r3, [r7, #12]
800354a: 3301 adds r3, #1
800354c: 60fb str r3, [r7, #12]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
800354e: 69bb ldr r3, [r7, #24]
8003550: f242 7210 movw r2, #10000 ; 0x2710
8003554: fb02 f203 mul.w r2, r2, r3
8003558: 697b ldr r3, [r7, #20]
800355a: f44f 717a mov.w r1, #1000 ; 0x3e8
800355e: fb01 f303 mul.w r3, r1, r3
8003562: 18d1 adds r1, r2, r3
8003564: 68fa ldr r2, [r7, #12]
8003566: 4613 mov r3, r2
8003568: 009b lsls r3, r3, #2
800356a: 4413 add r3, r2
800356c: 005b lsls r3, r3, #1
800356e: 4618 mov r0, r3
8003570: 693b ldr r3, [r7, #16]
8003572: 2264 movs r2, #100 ; 0x64
8003574: fb02 f303 mul.w r3, r2, r3
8003578: 4403 add r3, r0
800357a: 18ca adds r2, r1, r3
800357c: 68bb ldr r3, [r7, #8]
800357e: 4413 add r3, r2
8003580: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
8003582: 4b4f ldr r3, [pc, #316] ; (80036c0 <DoKeyUP+0x9c4>)
8003584: 681b ldr r3, [r3, #0]
8003586: 69fa ldr r2, [r7, #28]
8003588: ee07 2a90 vmov s15, r2
800358c: eef8 7a67 vcvt.f32.u32 s15, s15
8003590: 4a4c ldr r2, [pc, #304] ; (80036c4 <DoKeyUP+0x9c8>)
8003592: 015b lsls r3, r3, #5
8003594: 4413 add r3, r2
8003596: 3318 adds r3, #24
8003598: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
800359c: 687b ldr r3, [r7, #4]
800359e: 2b01 cmp r3, #1
80035a0: d112 bne.n 80035c8 <DoKeyUP+0x8cc>
80035a2: 4b47 ldr r3, [pc, #284] ; (80036c0 <DoKeyUP+0x9c4>)
80035a4: 681b ldr r3, [r3, #0]
80035a6: 4947 ldr r1, [pc, #284] ; (80036c4 <DoKeyUP+0x9c8>)
80035a8: 015a lsls r2, r3, #5
80035aa: 440a add r2, r1
80035ac: 3218 adds r2, #24
80035ae: edd2 7a00 vldr s15, [r2]
80035b2: ed9f 7a4b vldr s14, [pc, #300] ; 80036e0 <DoKeyUP+0x9e4>
80035b6: ee67 7a87 vmul.f32 s15, s15, s14
80035ba: 4a42 ldr r2, [pc, #264] ; (80036c4 <DoKeyUP+0x9c8>)
80035bc: 015b lsls r3, r3, #5
80035be: 4413 add r3, r2
80035c0: 3318 adds r3, #24
80035c2: edc3 7a00 vstr s15, [r3]
80035c6: e040 b.n 800364a <DoKeyUP+0x94e>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
80035c8: 687b ldr r3, [r7, #4]
80035ca: 2b02 cmp r3, #2
80035cc: d112 bne.n 80035f4 <DoKeyUP+0x8f8>
80035ce: 4b3c ldr r3, [pc, #240] ; (80036c0 <DoKeyUP+0x9c4>)
80035d0: 681b ldr r3, [r3, #0]
80035d2: 493c ldr r1, [pc, #240] ; (80036c4 <DoKeyUP+0x9c8>)
80035d4: 015a lsls r2, r3, #5
80035d6: 440a add r2, r1
80035d8: 3218 adds r2, #24
80035da: edd2 7a00 vldr s15, [r2]
80035de: ed9f 7a41 vldr s14, [pc, #260] ; 80036e4 <DoKeyUP+0x9e8>
80035e2: ee67 7a87 vmul.f32 s15, s15, s14
80035e6: 4a37 ldr r2, [pc, #220] ; (80036c4 <DoKeyUP+0x9c8>)
80035e8: 015b lsls r3, r3, #5
80035ea: 4413 add r3, r2
80035ec: 3318 adds r3, #24
80035ee: edc3 7a00 vstr s15, [r3]
80035f2: e02a b.n 800364a <DoKeyUP+0x94e>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
80035f4: 687b ldr r3, [r7, #4]
80035f6: 2b03 cmp r3, #3
80035f8: d112 bne.n 8003620 <DoKeyUP+0x924>
80035fa: 4b31 ldr r3, [pc, #196] ; (80036c0 <DoKeyUP+0x9c4>)
80035fc: 681b ldr r3, [r3, #0]
80035fe: 4931 ldr r1, [pc, #196] ; (80036c4 <DoKeyUP+0x9c8>)
8003600: 015a lsls r2, r3, #5
8003602: 440a add r2, r1
8003604: 3218 adds r2, #24
8003606: edd2 7a00 vldr s15, [r2]
800360a: ed9f 7a30 vldr s14, [pc, #192] ; 80036cc <DoKeyUP+0x9d0>
800360e: ee67 7a87 vmul.f32 s15, s15, s14
8003612: 4a2c ldr r2, [pc, #176] ; (80036c4 <DoKeyUP+0x9c8>)
8003614: 015b lsls r3, r3, #5
8003616: 4413 add r3, r2
8003618: 3318 adds r3, #24
800361a: edc3 7a00 vstr s15, [r3]
800361e: e014 b.n 800364a <DoKeyUP+0x94e>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8003620: 687b ldr r3, [r7, #4]
8003622: 2b04 cmp r3, #4
8003624: d111 bne.n 800364a <DoKeyUP+0x94e>
8003626: 4b26 ldr r3, [pc, #152] ; (80036c0 <DoKeyUP+0x9c4>)
8003628: 681b ldr r3, [r3, #0]
800362a: 4926 ldr r1, [pc, #152] ; (80036c4 <DoKeyUP+0x9c8>)
800362c: 015a lsls r2, r3, #5
800362e: 440a add r2, r1
8003630: 3218 adds r2, #24
8003632: edd2 7a00 vldr s15, [r2]
8003636: ed9f 7a24 vldr s14, [pc, #144] ; 80036c8 <DoKeyUP+0x9cc>
800363a: ee67 7a87 vmul.f32 s15, s15, s14
800363e: 4a21 ldr r2, [pc, #132] ; (80036c4 <DoKeyUP+0x9c8>)
8003640: 015b lsls r3, r3, #5
8003642: 4413 add r3, r2
8003644: 3318 adds r3, #24
8003646: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //<2F><><EF><EE><EF><F0><E0><E2>
800364a: 4b1d ldr r3, [pc, #116] ; (80036c0 <DoKeyUP+0x9c4>)
800364c: 681b ldr r3, [r3, #0]
800364e: 4a1d ldr r2, [pc, #116] ; (80036c4 <DoKeyUP+0x9c8>)
8003650: 015b lsls r3, r3, #5
8003652: 4413 add r3, r2
8003654: 3318 adds r3, #24
8003656: edd3 7a00 vldr s15, [r3]
800365a: ed9f 7a1c vldr s14, [pc, #112] ; 80036cc <DoKeyUP+0x9d0>
800365e: eef4 7ac7 vcmpe.f32 s15, s14
8003662: eef1 fa10 vmrs APSR_nzcv, fpscr
8003666: d507 bpl.n 8003678 <DoKeyUP+0x97c>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f;
8003668: 4b15 ldr r3, [pc, #84] ; (80036c0 <DoKeyUP+0x9c4>)
800366a: 681b ldr r3, [r3, #0]
800366c: 4a15 ldr r2, [pc, #84] ; (80036c4 <DoKeyUP+0x9c8>)
800366e: 015b lsls r3, r3, #5
8003670: 4413 add r3, r2
8003672: 3318 adds r3, #24
8003674: 4a16 ldr r2, [pc, #88] ; (80036d0 <DoKeyUP+0x9d4>)
8003676: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) {
8003678: 4b11 ldr r3, [pc, #68] ; (80036c0 <DoKeyUP+0x9c4>)
800367a: 681b ldr r3, [r3, #0]
800367c: 4a11 ldr r2, [pc, #68] ; (80036c4 <DoKeyUP+0x9c8>)
800367e: 015b lsls r3, r3, #5
8003680: 4413 add r3, r2
8003682: 3318 adds r3, #24
8003684: edd3 7a00 vldr s15, [r3]
8003688: ed9f 7a12 vldr s14, [pc, #72] ; 80036d4 <DoKeyUP+0x9d8>
800368c: eef4 7ac7 vcmpe.f32 s15, s14
8003690: eef1 fa10 vmrs APSR_nzcv, fpscr
8003694: db07 blt.n 80036a6 <DoKeyUP+0x9aa>
pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f;
8003696: 4b0a ldr r3, [pc, #40] ; (80036c0 <DoKeyUP+0x9c4>)
8003698: 681b ldr r3, [r3, #0]
800369a: 4a0a ldr r2, [pc, #40] ; (80036c4 <DoKeyUP+0x9c8>)
800369c: 015b lsls r3, r3, #5
800369e: 4413 add r3, r2
80036a0: 3318 adds r3, #24
80036a2: 4a0d ldr r2, [pc, #52] ; (80036d8 <DoKeyUP+0x9dc>)
80036a4: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
80036a6: 4b06 ldr r3, [pc, #24] ; (80036c0 <DoKeyUP+0x9c4>)
80036a8: 681b ldr r3, [r3, #0]
80036aa: 4a06 ldr r2, [pc, #24] ; (80036c4 <DoKeyUP+0x9c8>)
80036ac: 015b lsls r3, r3, #5
80036ae: 4413 add r3, r2
80036b0: 3318 adds r3, #24
80036b2: edd3 7a00 vldr s15, [r3]
80036b6: eeb0 0a67 vmov.f32 s0, s15
80036ba: f001 f8a7 bl 800480c <VerifyGain>
80036be: e1cf b.n 8003a60 <DoKeyUP+0xd64>
80036c0: 2006ba68 .word 0x2006ba68
80036c4: 2006bca8 .word 0x2006bca8
80036c8: 38d1b717 .word 0x38d1b717
80036cc: 3a83126f .word 0x3a83126f
80036d0: 3a83126f .word 0x3a83126f
80036d4: 461c4000 .word 0x461c4000
80036d8: 461c3c00 .word 0x461c3c00
80036dc: 20020010 .word 0x20020010
80036e0: 3dcccccd .word 0x3dcccccd
80036e4: 3c23d70a .word 0x3c23d70a
}
else
if(menupos == Kike_1 || menupos == Kike_2 || menupos == Kike_3 || menupos == Kike_4)
80036e8: 4bab ldr r3, [pc, #684] ; (8003998 <DoKeyUP+0xc9c>)
80036ea: 781b ldrb r3, [r3, #0]
80036ec: b2db uxtb r3, r3
80036ee: 2b06 cmp r3, #6
80036f0: d00f beq.n 8003712 <DoKeyUP+0xa16>
80036f2: 4ba9 ldr r3, [pc, #676] ; (8003998 <DoKeyUP+0xc9c>)
80036f4: 781b ldrb r3, [r3, #0]
80036f6: b2db uxtb r3, r3
80036f8: 2b0e cmp r3, #14
80036fa: d00a beq.n 8003712 <DoKeyUP+0xa16>
80036fc: 4ba6 ldr r3, [pc, #664] ; (8003998 <DoKeyUP+0xc9c>)
80036fe: 781b ldrb r3, [r3, #0]
8003700: b2db uxtb r3, r3
8003702: 2b16 cmp r3, #22
8003704: d005 beq.n 8003712 <DoKeyUP+0xa16>
8003706: 4ba4 ldr r3, [pc, #656] ; (8003998 <DoKeyUP+0xc9c>)
8003708: 781b ldrb r3, [r3, #0]
800370a: b2db uxtb r3, r3
800370c: 2b1e cmp r3, #30
800370e: f040 80bf bne.w 8003890 <DoKeyUP+0xb94>
{
if(ike < 9) {
8003712: 68bb ldr r3, [r7, #8]
8003714: 2b08 cmp r3, #8
8003716: d802 bhi.n 800371e <DoKeyUP+0xa22>
ike++;
8003718: 68bb ldr r3, [r7, #8]
800371a: 3301 adds r3, #1
800371c: 60bb str r3, [r7, #8]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
800371e: 69bb ldr r3, [r7, #24]
8003720: f242 7210 movw r2, #10000 ; 0x2710
8003724: fb02 f203 mul.w r2, r2, r3
8003728: 697b ldr r3, [r7, #20]
800372a: f44f 717a mov.w r1, #1000 ; 0x3e8
800372e: fb01 f303 mul.w r3, r1, r3
8003732: 18d1 adds r1, r2, r3
8003734: 68fa ldr r2, [r7, #12]
8003736: 4613 mov r3, r2
8003738: 009b lsls r3, r3, #2
800373a: 4413 add r3, r2
800373c: 005b lsls r3, r3, #1
800373e: 4618 mov r0, r3
8003740: 693b ldr r3, [r7, #16]
8003742: 2264 movs r2, #100 ; 0x64
8003744: fb02 f303 mul.w r3, r2, r3
8003748: 4403 add r3, r0
800374a: 18ca adds r2, r1, r3
800374c: 68bb ldr r3, [r7, #8]
800374e: 4413 add r3, r2
8003750: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
8003752: 4b92 ldr r3, [pc, #584] ; (800399c <DoKeyUP+0xca0>)
8003754: 681b ldr r3, [r3, #0]
8003756: 69fa ldr r2, [r7, #28]
8003758: ee07 2a90 vmov s15, r2
800375c: eef8 7a67 vcvt.f32.u32 s15, s15
8003760: 4a8f ldr r2, [pc, #572] ; (80039a0 <DoKeyUP+0xca4>)
8003762: 015b lsls r3, r3, #5
8003764: 4413 add r3, r2
8003766: 3318 adds r3, #24
8003768: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
800376c: 687b ldr r3, [r7, #4]
800376e: 2b01 cmp r3, #1
8003770: d112 bne.n 8003798 <DoKeyUP+0xa9c>
8003772: 4b8a ldr r3, [pc, #552] ; (800399c <DoKeyUP+0xca0>)
8003774: 681b ldr r3, [r3, #0]
8003776: 498a ldr r1, [pc, #552] ; (80039a0 <DoKeyUP+0xca4>)
8003778: 015a lsls r2, r3, #5
800377a: 440a add r2, r1
800377c: 3218 adds r2, #24
800377e: edd2 7a00 vldr s15, [r2]
8003782: ed9f 7a88 vldr s14, [pc, #544] ; 80039a4 <DoKeyUP+0xca8>
8003786: ee67 7a87 vmul.f32 s15, s15, s14
800378a: 4a85 ldr r2, [pc, #532] ; (80039a0 <DoKeyUP+0xca4>)
800378c: 015b lsls r3, r3, #5
800378e: 4413 add r3, r2
8003790: 3318 adds r3, #24
8003792: edc3 7a00 vstr s15, [r3]
8003796: e040 b.n 800381a <DoKeyUP+0xb1e>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8003798: 687b ldr r3, [r7, #4]
800379a: 2b02 cmp r3, #2
800379c: d112 bne.n 80037c4 <DoKeyUP+0xac8>
800379e: 4b7f ldr r3, [pc, #508] ; (800399c <DoKeyUP+0xca0>)
80037a0: 681b ldr r3, [r3, #0]
80037a2: 497f ldr r1, [pc, #508] ; (80039a0 <DoKeyUP+0xca4>)
80037a4: 015a lsls r2, r3, #5
80037a6: 440a add r2, r1
80037a8: 3218 adds r2, #24
80037aa: edd2 7a00 vldr s15, [r2]
80037ae: ed9f 7a7e vldr s14, [pc, #504] ; 80039a8 <DoKeyUP+0xcac>
80037b2: ee67 7a87 vmul.f32 s15, s15, s14
80037b6: 4a7a ldr r2, [pc, #488] ; (80039a0 <DoKeyUP+0xca4>)
80037b8: 015b lsls r3, r3, #5
80037ba: 4413 add r3, r2
80037bc: 3318 adds r3, #24
80037be: edc3 7a00 vstr s15, [r3]
80037c2: e02a b.n 800381a <DoKeyUP+0xb1e>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
80037c4: 687b ldr r3, [r7, #4]
80037c6: 2b03 cmp r3, #3
80037c8: d112 bne.n 80037f0 <DoKeyUP+0xaf4>
80037ca: 4b74 ldr r3, [pc, #464] ; (800399c <DoKeyUP+0xca0>)
80037cc: 681b ldr r3, [r3, #0]
80037ce: 4974 ldr r1, [pc, #464] ; (80039a0 <DoKeyUP+0xca4>)
80037d0: 015a lsls r2, r3, #5
80037d2: 440a add r2, r1
80037d4: 3218 adds r2, #24
80037d6: edd2 7a00 vldr s15, [r2]
80037da: ed9f 7a74 vldr s14, [pc, #464] ; 80039ac <DoKeyUP+0xcb0>
80037de: ee67 7a87 vmul.f32 s15, s15, s14
80037e2: 4a6f ldr r2, [pc, #444] ; (80039a0 <DoKeyUP+0xca4>)
80037e4: 015b lsls r3, r3, #5
80037e6: 4413 add r3, r2
80037e8: 3318 adds r3, #24
80037ea: edc3 7a00 vstr s15, [r3]
80037ee: e014 b.n 800381a <DoKeyUP+0xb1e>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
80037f0: 687b ldr r3, [r7, #4]
80037f2: 2b04 cmp r3, #4
80037f4: d111 bne.n 800381a <DoKeyUP+0xb1e>
80037f6: 4b69 ldr r3, [pc, #420] ; (800399c <DoKeyUP+0xca0>)
80037f8: 681b ldr r3, [r3, #0]
80037fa: 4969 ldr r1, [pc, #420] ; (80039a0 <DoKeyUP+0xca4>)
80037fc: 015a lsls r2, r3, #5
80037fe: 440a add r2, r1
8003800: 3218 adds r2, #24
8003802: edd2 7a00 vldr s15, [r2]
8003806: ed9f 7a6a vldr s14, [pc, #424] ; 80039b0 <DoKeyUP+0xcb4>
800380a: ee67 7a87 vmul.f32 s15, s15, s14
800380e: 4a64 ldr r2, [pc, #400] ; (80039a0 <DoKeyUP+0xca4>)
8003810: 015b lsls r3, r3, #5
8003812: 4413 add r3, r2
8003814: 3318 adds r3, #24
8003816: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //<2F><><EF><EE><EF><F0><E0><E2>
800381a: 4b60 ldr r3, [pc, #384] ; (800399c <DoKeyUP+0xca0>)
800381c: 681b ldr r3, [r3, #0]
800381e: 4a60 ldr r2, [pc, #384] ; (80039a0 <DoKeyUP+0xca4>)
8003820: 015b lsls r3, r3, #5
8003822: 4413 add r3, r2
8003824: 3318 adds r3, #24
8003826: edd3 7a00 vldr s15, [r3]
800382a: ed9f 7a60 vldr s14, [pc, #384] ; 80039ac <DoKeyUP+0xcb0>
800382e: eef4 7ac7 vcmpe.f32 s15, s14
8003832: eef1 fa10 vmrs APSR_nzcv, fpscr
8003836: d507 bpl.n 8003848 <DoKeyUP+0xb4c>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f;
8003838: 4b58 ldr r3, [pc, #352] ; (800399c <DoKeyUP+0xca0>)
800383a: 681b ldr r3, [r3, #0]
800383c: 4a58 ldr r2, [pc, #352] ; (80039a0 <DoKeyUP+0xca4>)
800383e: 015b lsls r3, r3, #5
8003840: 4413 add r3, r2
8003842: 3318 adds r3, #24
8003844: 4a5b ldr r2, [pc, #364] ; (80039b4 <DoKeyUP+0xcb8>)
8003846: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) {
8003848: 4b54 ldr r3, [pc, #336] ; (800399c <DoKeyUP+0xca0>)
800384a: 681b ldr r3, [r3, #0]
800384c: 4a54 ldr r2, [pc, #336] ; (80039a0 <DoKeyUP+0xca4>)
800384e: 015b lsls r3, r3, #5
8003850: 4413 add r3, r2
8003852: 3318 adds r3, #24
8003854: edd3 7a00 vldr s15, [r3]
8003858: ed9f 7a57 vldr s14, [pc, #348] ; 80039b8 <DoKeyUP+0xcbc>
800385c: eef4 7ac7 vcmpe.f32 s15, s14
8003860: eef1 fa10 vmrs APSR_nzcv, fpscr
8003864: db07 blt.n 8003876 <DoKeyUP+0xb7a>
pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f;
8003866: 4b4d ldr r3, [pc, #308] ; (800399c <DoKeyUP+0xca0>)
8003868: 681b ldr r3, [r3, #0]
800386a: 4a4d ldr r2, [pc, #308] ; (80039a0 <DoKeyUP+0xca4>)
800386c: 015b lsls r3, r3, #5
800386e: 4413 add r3, r2
8003870: 3318 adds r3, #24
8003872: 4a52 ldr r2, [pc, #328] ; (80039bc <DoKeyUP+0xcc0>)
8003874: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
8003876: 4b49 ldr r3, [pc, #292] ; (800399c <DoKeyUP+0xca0>)
8003878: 681b ldr r3, [r3, #0]
800387a: 4a49 ldr r2, [pc, #292] ; (80039a0 <DoKeyUP+0xca4>)
800387c: 015b lsls r3, r3, #5
800387e: 4413 add r3, r2
8003880: 3318 adds r3, #24
8003882: edd3 7a00 vldr s15, [r3]
8003886: eeb0 0a67 vmov.f32 s0, s15
800388a: f000 ffbf bl 800480c <VerifyGain>
800388e: e0e7 b.n 8003a60 <DoKeyUP+0xd64>
}
else
if(menupos == Kpt_1 || menupos == Kpt_2 || menupos == Kpt_3 || menupos == Kpt_4)
8003890: 4b41 ldr r3, [pc, #260] ; (8003998 <DoKeyUP+0xc9c>)
8003892: 781b ldrb r3, [r3, #0]
8003894: b2db uxtb r3, r3
8003896: 2b07 cmp r3, #7
8003898: d00f beq.n 80038ba <DoKeyUP+0xbbe>
800389a: 4b3f ldr r3, [pc, #252] ; (8003998 <DoKeyUP+0xc9c>)
800389c: 781b ldrb r3, [r3, #0]
800389e: b2db uxtb r3, r3
80038a0: 2b0f cmp r3, #15
80038a2: d00a beq.n 80038ba <DoKeyUP+0xbbe>
80038a4: 4b3c ldr r3, [pc, #240] ; (8003998 <DoKeyUP+0xc9c>)
80038a6: 781b ldrb r3, [r3, #0]
80038a8: b2db uxtb r3, r3
80038aa: 2b17 cmp r3, #23
80038ac: d005 beq.n 80038ba <DoKeyUP+0xbbe>
80038ae: 4b3a ldr r3, [pc, #232] ; (8003998 <DoKeyUP+0xc9c>)
80038b0: 781b ldrb r3, [r3, #0]
80038b2: b2db uxtb r3, r3
80038b4: 2b1f cmp r3, #31
80038b6: f040 80d3 bne.w 8003a60 <DoKeyUP+0xd64>
{
if(ipt) {
80038ba: 687b ldr r3, [r7, #4]
80038bc: 2b00 cmp r3, #0
80038be: d002 beq.n 80038c6 <DoKeyUP+0xbca>
ipt--;
80038c0: 687b ldr r3, [r7, #4]
80038c2: 3b01 subs r3, #1
80038c4: 607b str r3, [r7, #4]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
80038c6: 69bb ldr r3, [r7, #24]
80038c8: f242 7210 movw r2, #10000 ; 0x2710
80038cc: fb02 f203 mul.w r2, r2, r3
80038d0: 697b ldr r3, [r7, #20]
80038d2: f44f 717a mov.w r1, #1000 ; 0x3e8
80038d6: fb01 f303 mul.w r3, r1, r3
80038da: 18d1 adds r1, r2, r3
80038dc: 68fa ldr r2, [r7, #12]
80038de: 4613 mov r3, r2
80038e0: 009b lsls r3, r3, #2
80038e2: 4413 add r3, r2
80038e4: 005b lsls r3, r3, #1
80038e6: 4618 mov r0, r3
80038e8: 693b ldr r3, [r7, #16]
80038ea: 2264 movs r2, #100 ; 0x64
80038ec: fb02 f303 mul.w r3, r2, r3
80038f0: 4403 add r3, r0
80038f2: 18ca adds r2, r1, r3
80038f4: 68bb ldr r3, [r7, #8]
80038f6: 4413 add r3, r2
80038f8: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
80038fa: 4b28 ldr r3, [pc, #160] ; (800399c <DoKeyUP+0xca0>)
80038fc: 681b ldr r3, [r3, #0]
80038fe: 69fa ldr r2, [r7, #28]
8003900: ee07 2a90 vmov s15, r2
8003904: eef8 7a67 vcvt.f32.u32 s15, s15
8003908: 4a25 ldr r2, [pc, #148] ; (80039a0 <DoKeyUP+0xca4>)
800390a: 015b lsls r3, r3, #5
800390c: 4413 add r3, r2
800390e: 3318 adds r3, #24
8003910: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8003914: 687b ldr r3, [r7, #4]
8003916: 2b01 cmp r3, #1
8003918: d112 bne.n 8003940 <DoKeyUP+0xc44>
800391a: 4b20 ldr r3, [pc, #128] ; (800399c <DoKeyUP+0xca0>)
800391c: 681b ldr r3, [r3, #0]
800391e: 4920 ldr r1, [pc, #128] ; (80039a0 <DoKeyUP+0xca4>)
8003920: 015a lsls r2, r3, #5
8003922: 440a add r2, r1
8003924: 3218 adds r2, #24
8003926: edd2 7a00 vldr s15, [r2]
800392a: ed9f 7a1e vldr s14, [pc, #120] ; 80039a4 <DoKeyUP+0xca8>
800392e: ee67 7a87 vmul.f32 s15, s15, s14
8003932: 4a1b ldr r2, [pc, #108] ; (80039a0 <DoKeyUP+0xca4>)
8003934: 015b lsls r3, r3, #5
8003936: 4413 add r3, r2
8003938: 3318 adds r3, #24
800393a: edc3 7a00 vstr s15, [r3]
800393e: e054 b.n 80039ea <DoKeyUP+0xcee>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8003940: 687b ldr r3, [r7, #4]
8003942: 2b02 cmp r3, #2
8003944: d112 bne.n 800396c <DoKeyUP+0xc70>
8003946: 4b15 ldr r3, [pc, #84] ; (800399c <DoKeyUP+0xca0>)
8003948: 681b ldr r3, [r3, #0]
800394a: 4915 ldr r1, [pc, #84] ; (80039a0 <DoKeyUP+0xca4>)
800394c: 015a lsls r2, r3, #5
800394e: 440a add r2, r1
8003950: 3218 adds r2, #24
8003952: edd2 7a00 vldr s15, [r2]
8003956: ed9f 7a14 vldr s14, [pc, #80] ; 80039a8 <DoKeyUP+0xcac>
800395a: ee67 7a87 vmul.f32 s15, s15, s14
800395e: 4a10 ldr r2, [pc, #64] ; (80039a0 <DoKeyUP+0xca4>)
8003960: 015b lsls r3, r3, #5
8003962: 4413 add r3, r2
8003964: 3318 adds r3, #24
8003966: edc3 7a00 vstr s15, [r3]
800396a: e03e b.n 80039ea <DoKeyUP+0xcee>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
800396c: 687b ldr r3, [r7, #4]
800396e: 2b03 cmp r3, #3
8003970: d126 bne.n 80039c0 <DoKeyUP+0xcc4>
8003972: 4b0a ldr r3, [pc, #40] ; (800399c <DoKeyUP+0xca0>)
8003974: 681b ldr r3, [r3, #0]
8003976: 490a ldr r1, [pc, #40] ; (80039a0 <DoKeyUP+0xca4>)
8003978: 015a lsls r2, r3, #5
800397a: 440a add r2, r1
800397c: 3218 adds r2, #24
800397e: edd2 7a00 vldr s15, [r2]
8003982: ed9f 7a0a vldr s14, [pc, #40] ; 80039ac <DoKeyUP+0xcb0>
8003986: ee67 7a87 vmul.f32 s15, s15, s14
800398a: 4a05 ldr r2, [pc, #20] ; (80039a0 <DoKeyUP+0xca4>)
800398c: 015b lsls r3, r3, #5
800398e: 4413 add r3, r2
8003990: 3318 adds r3, #24
8003992: edc3 7a00 vstr s15, [r3]
8003996: e028 b.n 80039ea <DoKeyUP+0xcee>
8003998: 20020010 .word 0x20020010
800399c: 2006ba68 .word 0x2006ba68
80039a0: 2006bca8 .word 0x2006bca8
80039a4: 3dcccccd .word 0x3dcccccd
80039a8: 3c23d70a .word 0x3c23d70a
80039ac: 3a83126f .word 0x3a83126f
80039b0: 38d1b717 .word 0x38d1b717
80039b4: 3a83126f .word 0x3a83126f
80039b8: 461c4000 .word 0x461c4000
80039bc: 461c3c00 .word 0x461c3c00
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
80039c0: 687b ldr r3, [r7, #4]
80039c2: 2b04 cmp r3, #4
80039c4: d111 bne.n 80039ea <DoKeyUP+0xcee>
80039c6: 4b28 ldr r3, [pc, #160] ; (8003a68 <DoKeyUP+0xd6c>)
80039c8: 681b ldr r3, [r3, #0]
80039ca: 4928 ldr r1, [pc, #160] ; (8003a6c <DoKeyUP+0xd70>)
80039cc: 015a lsls r2, r3, #5
80039ce: 440a add r2, r1
80039d0: 3218 adds r2, #24
80039d2: edd2 7a00 vldr s15, [r2]
80039d6: ed9f 7a26 vldr s14, [pc, #152] ; 8003a70 <DoKeyUP+0xd74>
80039da: ee67 7a87 vmul.f32 s15, s15, s14
80039de: 4a23 ldr r2, [pc, #140] ; (8003a6c <DoKeyUP+0xd70>)
80039e0: 015b lsls r3, r3, #5
80039e2: 4413 add r3, r2
80039e4: 3318 adds r3, #24
80039e6: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //<2F><><EF><EE><EF><F0><E0><E2>
80039ea: 4b1f ldr r3, [pc, #124] ; (8003a68 <DoKeyUP+0xd6c>)
80039ec: 681b ldr r3, [r3, #0]
80039ee: 4a1f ldr r2, [pc, #124] ; (8003a6c <DoKeyUP+0xd70>)
80039f0: 015b lsls r3, r3, #5
80039f2: 4413 add r3, r2
80039f4: 3318 adds r3, #24
80039f6: edd3 7a00 vldr s15, [r3]
80039fa: ed9f 7a1e vldr s14, [pc, #120] ; 8003a74 <DoKeyUP+0xd78>
80039fe: eef4 7ac7 vcmpe.f32 s15, s14
8003a02: eef1 fa10 vmrs APSR_nzcv, fpscr
8003a06: d507 bpl.n 8003a18 <DoKeyUP+0xd1c>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f;
8003a08: 4b17 ldr r3, [pc, #92] ; (8003a68 <DoKeyUP+0xd6c>)
8003a0a: 681b ldr r3, [r3, #0]
8003a0c: 4a17 ldr r2, [pc, #92] ; (8003a6c <DoKeyUP+0xd70>)
8003a0e: 015b lsls r3, r3, #5
8003a10: 4413 add r3, r2
8003a12: 3318 adds r3, #24
8003a14: 4a18 ldr r2, [pc, #96] ; (8003a78 <DoKeyUP+0xd7c>)
8003a16: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) {
8003a18: 4b13 ldr r3, [pc, #76] ; (8003a68 <DoKeyUP+0xd6c>)
8003a1a: 681b ldr r3, [r3, #0]
8003a1c: 4a13 ldr r2, [pc, #76] ; (8003a6c <DoKeyUP+0xd70>)
8003a1e: 015b lsls r3, r3, #5
8003a20: 4413 add r3, r2
8003a22: 3318 adds r3, #24
8003a24: edd3 7a00 vldr s15, [r3]
8003a28: ed9f 7a14 vldr s14, [pc, #80] ; 8003a7c <DoKeyUP+0xd80>
8003a2c: eef4 7ac7 vcmpe.f32 s15, s14
8003a30: eef1 fa10 vmrs APSR_nzcv, fpscr
8003a34: db07 blt.n 8003a46 <DoKeyUP+0xd4a>
pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f;
8003a36: 4b0c ldr r3, [pc, #48] ; (8003a68 <DoKeyUP+0xd6c>)
8003a38: 681b ldr r3, [r3, #0]
8003a3a: 4a0c ldr r2, [pc, #48] ; (8003a6c <DoKeyUP+0xd70>)
8003a3c: 015b lsls r3, r3, #5
8003a3e: 4413 add r3, r2
8003a40: 3318 adds r3, #24
8003a42: 4a0f ldr r2, [pc, #60] ; (8003a80 <DoKeyUP+0xd84>)
8003a44: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
8003a46: 4b08 ldr r3, [pc, #32] ; (8003a68 <DoKeyUP+0xd6c>)
8003a48: 681b ldr r3, [r3, #0]
8003a4a: 4a08 ldr r2, [pc, #32] ; (8003a6c <DoKeyUP+0xd70>)
8003a4c: 015b lsls r3, r3, #5
8003a4e: 4413 add r3, r2
8003a50: 3318 adds r3, #24
8003a52: edd3 7a00 vldr s15, [r3]
8003a56: eeb0 0a67 vmov.f32 s0, s15
8003a5a: f000 fed7 bl 800480c <VerifyGain>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
}*/
}
8003a5e: e7ff b.n 8003a60 <DoKeyUP+0xd64>
8003a60: bf00 nop
8003a62: 3720 adds r7, #32
8003a64: 46bd mov sp, r7
8003a66: bd80 pop {r7, pc}
8003a68: 2006ba68 .word 0x2006ba68
8003a6c: 2006bca8 .word 0x2006bca8
8003a70: 38d1b717 .word 0x38d1b717
8003a74: 3a83126f .word 0x3a83126f
8003a78: 3a83126f .word 0x3a83126f
8003a7c: 461c4000 .word 0x461c4000
8003a80: 461c3c00 .word 0x461c3c00
08003a84 <DoKeyDN>:
void DoKeyDN(void)
{
8003a84: b580 push {r7, lr}
8003a86: b088 sub sp, #32
8003a88: af00 add r7, sp, #0
uint32_t s, ikdt, ikt, iks, ikd, ike, ipt;
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10.0f) {
8003a8a: 4b5f ldr r3, [pc, #380] ; (8003c08 <DoKeyDN+0x184>)
8003a8c: 681b ldr r3, [r3, #0]
8003a8e: 4a5f ldr r2, [pc, #380] ; (8003c0c <DoKeyDN+0x188>)
8003a90: 015b lsls r3, r3, #5
8003a92: 4413 add r3, r2
8003a94: 3318 adds r3, #24
8003a96: edd3 7a00 vldr s15, [r3]
8003a9a: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8003a9e: eef4 7ac7 vcmpe.f32 s15, s14
8003aa2: eef1 fa10 vmrs APSR_nzcv, fpscr
8003aa6: d517 bpl.n 8003ad8 <DoKeyDN+0x54>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10000.0f) + 0.5f);
8003aa8: 4b57 ldr r3, [pc, #348] ; (8003c08 <DoKeyDN+0x184>)
8003aaa: 681b ldr r3, [r3, #0]
8003aac: 4a57 ldr r2, [pc, #348] ; (8003c0c <DoKeyDN+0x188>)
8003aae: 015b lsls r3, r3, #5
8003ab0: 4413 add r3, r2
8003ab2: 3318 adds r3, #24
8003ab4: edd3 7a00 vldr s15, [r3]
8003ab8: ed9f 7a55 vldr s14, [pc, #340] ; 8003c10 <DoKeyDN+0x18c>
8003abc: ee67 7a87 vmul.f32 s15, s15, s14
8003ac0: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8003ac4: ee77 7a87 vadd.f32 s15, s15, s14
8003ac8: eefc 7ae7 vcvt.u32.f32 s15, s15
8003acc: ee17 3a90 vmov r3, s15
8003ad0: 61fb str r3, [r7, #28]
ipt = 4;
8003ad2: 2304 movs r3, #4
8003ad4: 607b str r3, [r7, #4]
8003ad6: e0be b.n 8003c56 <DoKeyDN+0x1d2>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100.0f) {
8003ad8: 4b4b ldr r3, [pc, #300] ; (8003c08 <DoKeyDN+0x184>)
8003ada: 681b ldr r3, [r3, #0]
8003adc: 4a4b ldr r2, [pc, #300] ; (8003c0c <DoKeyDN+0x188>)
8003ade: 015b lsls r3, r3, #5
8003ae0: 4413 add r3, r2
8003ae2: 3318 adds r3, #24
8003ae4: edd3 7a00 vldr s15, [r3]
8003ae8: ed9f 7a4a vldr s14, [pc, #296] ; 8003c14 <DoKeyDN+0x190>
8003aec: eef4 7ac7 vcmpe.f32 s15, s14
8003af0: eef1 fa10 vmrs APSR_nzcv, fpscr
8003af4: d517 bpl.n 8003b26 <DoKeyDN+0xa2>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 1000.0f) + 0.5f);
8003af6: 4b44 ldr r3, [pc, #272] ; (8003c08 <DoKeyDN+0x184>)
8003af8: 681b ldr r3, [r3, #0]
8003afa: 4a44 ldr r2, [pc, #272] ; (8003c0c <DoKeyDN+0x188>)
8003afc: 015b lsls r3, r3, #5
8003afe: 4413 add r3, r2
8003b00: 3318 adds r3, #24
8003b02: edd3 7a00 vldr s15, [r3]
8003b06: ed9f 7a44 vldr s14, [pc, #272] ; 8003c18 <DoKeyDN+0x194>
8003b0a: ee67 7a87 vmul.f32 s15, s15, s14
8003b0e: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8003b12: ee77 7a87 vadd.f32 s15, s15, s14
8003b16: eefc 7ae7 vcvt.u32.f32 s15, s15
8003b1a: ee17 3a90 vmov r3, s15
8003b1e: 61fb str r3, [r7, #28]
ipt = 3;
8003b20: 2303 movs r3, #3
8003b22: 607b str r3, [r7, #4]
8003b24: e097 b.n 8003c56 <DoKeyDN+0x1d2>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 1000.0f) {
8003b26: 4b38 ldr r3, [pc, #224] ; (8003c08 <DoKeyDN+0x184>)
8003b28: 681b ldr r3, [r3, #0]
8003b2a: 4a38 ldr r2, [pc, #224] ; (8003c0c <DoKeyDN+0x188>)
8003b2c: 015b lsls r3, r3, #5
8003b2e: 4413 add r3, r2
8003b30: 3318 adds r3, #24
8003b32: edd3 7a00 vldr s15, [r3]
8003b36: ed9f 7a38 vldr s14, [pc, #224] ; 8003c18 <DoKeyDN+0x194>
8003b3a: eef4 7ac7 vcmpe.f32 s15, s14
8003b3e: eef1 fa10 vmrs APSR_nzcv, fpscr
8003b42: d517 bpl.n 8003b74 <DoKeyDN+0xf0>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 100.0f) + 0.5f);
8003b44: 4b30 ldr r3, [pc, #192] ; (8003c08 <DoKeyDN+0x184>)
8003b46: 681b ldr r3, [r3, #0]
8003b48: 4a30 ldr r2, [pc, #192] ; (8003c0c <DoKeyDN+0x188>)
8003b4a: 015b lsls r3, r3, #5
8003b4c: 4413 add r3, r2
8003b4e: 3318 adds r3, #24
8003b50: edd3 7a00 vldr s15, [r3]
8003b54: ed9f 7a2f vldr s14, [pc, #188] ; 8003c14 <DoKeyDN+0x190>
8003b58: ee67 7a87 vmul.f32 s15, s15, s14
8003b5c: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8003b60: ee77 7a87 vadd.f32 s15, s15, s14
8003b64: eefc 7ae7 vcvt.u32.f32 s15, s15
8003b68: ee17 3a90 vmov r3, s15
8003b6c: 61fb str r3, [r7, #28]
ipt = 2;
8003b6e: 2302 movs r3, #2
8003b70: 607b str r3, [r7, #4]
8003b72: e070 b.n 8003c56 <DoKeyDN+0x1d2>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10000.0f) {
8003b74: 4b24 ldr r3, [pc, #144] ; (8003c08 <DoKeyDN+0x184>)
8003b76: 681b ldr r3, [r3, #0]
8003b78: 4a24 ldr r2, [pc, #144] ; (8003c0c <DoKeyDN+0x188>)
8003b7a: 015b lsls r3, r3, #5
8003b7c: 4413 add r3, r2
8003b7e: 3318 adds r3, #24
8003b80: edd3 7a00 vldr s15, [r3]
8003b84: ed9f 7a22 vldr s14, [pc, #136] ; 8003c10 <DoKeyDN+0x18c>
8003b88: eef4 7ac7 vcmpe.f32 s15, s14
8003b8c: eef1 fa10 vmrs APSR_nzcv, fpscr
8003b90: d517 bpl.n 8003bc2 <DoKeyDN+0x13e>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10.0f) + 0.5f);
8003b92: 4b1d ldr r3, [pc, #116] ; (8003c08 <DoKeyDN+0x184>)
8003b94: 681b ldr r3, [r3, #0]
8003b96: 4a1d ldr r2, [pc, #116] ; (8003c0c <DoKeyDN+0x188>)
8003b98: 015b lsls r3, r3, #5
8003b9a: 4413 add r3, r2
8003b9c: 3318 adds r3, #24
8003b9e: edd3 7a00 vldr s15, [r3]
8003ba2: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8003ba6: ee67 7a87 vmul.f32 s15, s15, s14
8003baa: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8003bae: ee77 7a87 vadd.f32 s15, s15, s14
8003bb2: eefc 7ae7 vcvt.u32.f32 s15, s15
8003bb6: ee17 3a90 vmov r3, s15
8003bba: 61fb str r3, [r7, #28]
ipt = 1;
8003bbc: 2301 movs r3, #1
8003bbe: 607b str r3, [r7, #4]
8003bc0: e049 b.n 8003c56 <DoKeyDN+0x1d2>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) {
8003bc2: 4b11 ldr r3, [pc, #68] ; (8003c08 <DoKeyDN+0x184>)
8003bc4: 681b ldr r3, [r3, #0]
8003bc6: 4a11 ldr r2, [pc, #68] ; (8003c0c <DoKeyDN+0x188>)
8003bc8: 015b lsls r3, r3, #5
8003bca: 4413 add r3, r2
8003bcc: 3318 adds r3, #24
8003bce: edd3 7a00 vldr s15, [r3]
8003bd2: ed9f 7a12 vldr s14, [pc, #72] ; 8003c1c <DoKeyDN+0x198>
8003bd6: eef4 7ac7 vcmpe.f32 s15, s14
8003bda: eef1 fa10 vmrs APSR_nzcv, fpscr
8003bde: d51f bpl.n 8003c20 <DoKeyDN+0x19c>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS) + 0.5f);
8003be0: 4b09 ldr r3, [pc, #36] ; (8003c08 <DoKeyDN+0x184>)
8003be2: 681b ldr r3, [r3, #0]
8003be4: 4a09 ldr r2, [pc, #36] ; (8003c0c <DoKeyDN+0x188>)
8003be6: 015b lsls r3, r3, #5
8003be8: 4413 add r3, r2
8003bea: 3318 adds r3, #24
8003bec: edd3 7a00 vldr s15, [r3]
8003bf0: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8003bf4: ee77 7a87 vadd.f32 s15, s15, s14
8003bf8: eefc 7ae7 vcvt.u32.f32 s15, s15
8003bfc: ee17 3a90 vmov r3, s15
8003c00: 61fb str r3, [r7, #28]
ipt = 0;
8003c02: 2300 movs r3, #0
8003c04: 607b str r3, [r7, #4]
8003c06: e026 b.n 8003c56 <DoKeyDN+0x1d2>
8003c08: 2006ba68 .word 0x2006ba68
8003c0c: 2006bca8 .word 0x2006bca8
8003c10: 461c4000 .word 0x461c4000
8003c14: 42c80000 .word 0x42c80000
8003c18: 447a0000 .word 0x447a0000
8003c1c: 47c35000 .word 0x47c35000
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
8003c20: 4bb0 ldr r3, [pc, #704] ; (8003ee4 <DoKeyDN+0x460>)
8003c22: 681b ldr r3, [r3, #0]
8003c24: 4ab0 ldr r2, [pc, #704] ; (8003ee8 <DoKeyDN+0x464>)
8003c26: 015b lsls r3, r3, #5
8003c28: 4413 add r3, r2
8003c2a: 3318 adds r3, #24
8003c2c: edd3 7a00 vldr s15, [r3]
8003c30: ed9f 7aae vldr s14, [pc, #696] ; 8003eec <DoKeyDN+0x468>
8003c34: eef4 7ac7 vcmpe.f32 s15, s14
8003c38: eef1 fa10 vmrs APSR_nzcv, fpscr
8003c3c: db0b blt.n 8003c56 <DoKeyDN+0x1d2>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
8003c3e: 4ba9 ldr r3, [pc, #676] ; (8003ee4 <DoKeyDN+0x460>)
8003c40: 681b ldr r3, [r3, #0]
8003c42: 4aa9 ldr r2, [pc, #676] ; (8003ee8 <DoKeyDN+0x464>)
8003c44: 015b lsls r3, r3, #5
8003c46: 4413 add r3, r2
8003c48: 3318 adds r3, #24
8003c4a: 4aa9 ldr r2, [pc, #676] ; (8003ef0 <DoKeyDN+0x46c>)
8003c4c: 601a str r2, [r3, #0]
s = 99999;
8003c4e: 4ba9 ldr r3, [pc, #676] ; (8003ef4 <DoKeyDN+0x470>)
8003c50: 61fb str r3, [r7, #28]
ipt = 0;
8003c52: 2300 movs r3, #0
8003c54: 607b str r3, [r7, #4]
}
ikdt = (s / 10000);
8003c56: 69fb ldr r3, [r7, #28]
8003c58: 4aa7 ldr r2, [pc, #668] ; (8003ef8 <DoKeyDN+0x474>)
8003c5a: fba2 2303 umull r2, r3, r2, r3
8003c5e: 0b5b lsrs r3, r3, #13
8003c60: 61bb str r3, [r7, #24]
ikt = (s % 10000 / 1000);
8003c62: 69fa ldr r2, [r7, #28]
8003c64: 4ba4 ldr r3, [pc, #656] ; (8003ef8 <DoKeyDN+0x474>)
8003c66: fba3 1302 umull r1, r3, r3, r2
8003c6a: 0b5b lsrs r3, r3, #13
8003c6c: f242 7110 movw r1, #10000 ; 0x2710
8003c70: fb01 f303 mul.w r3, r1, r3
8003c74: 1ad3 subs r3, r2, r3
8003c76: 4aa1 ldr r2, [pc, #644] ; (8003efc <DoKeyDN+0x478>)
8003c78: fba2 2303 umull r2, r3, r2, r3
8003c7c: 099b lsrs r3, r3, #6
8003c7e: 617b str r3, [r7, #20]
iks = (s % 10000 % 1000 / 100);
8003c80: 69fa ldr r2, [r7, #28]
8003c82: 4b9d ldr r3, [pc, #628] ; (8003ef8 <DoKeyDN+0x474>)
8003c84: fba3 1302 umull r1, r3, r3, r2
8003c88: 0b5b lsrs r3, r3, #13
8003c8a: f242 7110 movw r1, #10000 ; 0x2710
8003c8e: fb01 f303 mul.w r3, r1, r3
8003c92: 1ad3 subs r3, r2, r3
8003c94: 4a99 ldr r2, [pc, #612] ; (8003efc <DoKeyDN+0x478>)
8003c96: fba2 1203 umull r1, r2, r2, r3
8003c9a: 0992 lsrs r2, r2, #6
8003c9c: f44f 717a mov.w r1, #1000 ; 0x3e8
8003ca0: fb01 f202 mul.w r2, r1, r2
8003ca4: 1a9a subs r2, r3, r2
8003ca6: 4b96 ldr r3, [pc, #600] ; (8003f00 <DoKeyDN+0x47c>)
8003ca8: fba3 2302 umull r2, r3, r3, r2
8003cac: 095b lsrs r3, r3, #5
8003cae: 613b str r3, [r7, #16]
ikd = (s % 10000 % 1000 % 100 / 10);
8003cb0: 69fb ldr r3, [r7, #28]
8003cb2: 4a91 ldr r2, [pc, #580] ; (8003ef8 <DoKeyDN+0x474>)
8003cb4: fba2 1203 umull r1, r2, r2, r3
8003cb8: 0b52 lsrs r2, r2, #13
8003cba: f242 7110 movw r1, #10000 ; 0x2710
8003cbe: fb01 f202 mul.w r2, r1, r2
8003cc2: 1a9a subs r2, r3, r2
8003cc4: 4b8d ldr r3, [pc, #564] ; (8003efc <DoKeyDN+0x478>)
8003cc6: fba3 1302 umull r1, r3, r3, r2
8003cca: 099b lsrs r3, r3, #6
8003ccc: f44f 717a mov.w r1, #1000 ; 0x3e8
8003cd0: fb01 f303 mul.w r3, r1, r3
8003cd4: 1ad3 subs r3, r2, r3
8003cd6: 4a8a ldr r2, [pc, #552] ; (8003f00 <DoKeyDN+0x47c>)
8003cd8: fba2 1203 umull r1, r2, r2, r3
8003cdc: 0952 lsrs r2, r2, #5
8003cde: 2164 movs r1, #100 ; 0x64
8003ce0: fb01 f202 mul.w r2, r1, r2
8003ce4: 1a9a subs r2, r3, r2
8003ce6: 4b87 ldr r3, [pc, #540] ; (8003f04 <DoKeyDN+0x480>)
8003ce8: fba3 2302 umull r2, r3, r3, r2
8003cec: 08db lsrs r3, r3, #3
8003cee: 60fb str r3, [r7, #12]
ike = (s % 10000 % 1000 % 100 % 10);
8003cf0: 69fb ldr r3, [r7, #28]
8003cf2: 4a81 ldr r2, [pc, #516] ; (8003ef8 <DoKeyDN+0x474>)
8003cf4: fba2 1203 umull r1, r2, r2, r3
8003cf8: 0b52 lsrs r2, r2, #13
8003cfa: f242 7110 movw r1, #10000 ; 0x2710
8003cfe: fb01 f202 mul.w r2, r1, r2
8003d02: 1a9a subs r2, r3, r2
8003d04: 4b7d ldr r3, [pc, #500] ; (8003efc <DoKeyDN+0x478>)
8003d06: fba3 1302 umull r1, r3, r3, r2
8003d0a: 099b lsrs r3, r3, #6
8003d0c: f44f 717a mov.w r1, #1000 ; 0x3e8
8003d10: fb01 f303 mul.w r3, r1, r3
8003d14: 1ad3 subs r3, r2, r3
8003d16: 4a7a ldr r2, [pc, #488] ; (8003f00 <DoKeyDN+0x47c>)
8003d18: fba2 1203 umull r1, r2, r2, r3
8003d1c: 0952 lsrs r2, r2, #5
8003d1e: 2164 movs r1, #100 ; 0x64
8003d20: fb01 f202 mul.w r2, r1, r2
8003d24: 1a9a subs r2, r3, r2
8003d26: 4b77 ldr r3, [pc, #476] ; (8003f04 <DoKeyDN+0x480>)
8003d28: fba3 1302 umull r1, r3, r3, r2
8003d2c: 08d9 lsrs r1, r3, #3
8003d2e: 460b mov r3, r1
8003d30: 009b lsls r3, r3, #2
8003d32: 440b add r3, r1
8003d34: 005b lsls r3, r3, #1
8003d36: 1ad3 subs r3, r2, r3
8003d38: 60bb str r3, [r7, #8]
if(menupos == Kikdt_1 || menupos == Kikdt_2 || menupos == Kikdt_3 || menupos == Kikdt_4)
8003d3a: 4b73 ldr r3, [pc, #460] ; (8003f08 <DoKeyDN+0x484>)
8003d3c: 781b ldrb r3, [r3, #0]
8003d3e: b2db uxtb r3, r3
8003d40: 2b02 cmp r3, #2
8003d42: d00f beq.n 8003d64 <DoKeyDN+0x2e0>
8003d44: 4b70 ldr r3, [pc, #448] ; (8003f08 <DoKeyDN+0x484>)
8003d46: 781b ldrb r3, [r3, #0]
8003d48: b2db uxtb r3, r3
8003d4a: 2b0a cmp r3, #10
8003d4c: d00a beq.n 8003d64 <DoKeyDN+0x2e0>
8003d4e: 4b6e ldr r3, [pc, #440] ; (8003f08 <DoKeyDN+0x484>)
8003d50: 781b ldrb r3, [r3, #0]
8003d52: b2db uxtb r3, r3
8003d54: 2b12 cmp r3, #18
8003d56: d005 beq.n 8003d64 <DoKeyDN+0x2e0>
8003d58: 4b6b ldr r3, [pc, #428] ; (8003f08 <DoKeyDN+0x484>)
8003d5a: 781b ldrb r3, [r3, #0]
8003d5c: b2db uxtb r3, r3
8003d5e: 2b1a cmp r3, #26
8003d60: f040 80e2 bne.w 8003f28 <DoKeyDN+0x4a4>
{
if(ikdt) {
8003d64: 69bb ldr r3, [r7, #24]
8003d66: 2b00 cmp r3, #0
8003d68: d002 beq.n 8003d70 <DoKeyDN+0x2ec>
ikdt--;
8003d6a: 69bb ldr r3, [r7, #24]
8003d6c: 3b01 subs r3, #1
8003d6e: 61bb str r3, [r7, #24]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
8003d70: 69bb ldr r3, [r7, #24]
8003d72: f242 7210 movw r2, #10000 ; 0x2710
8003d76: fb02 f203 mul.w r2, r2, r3
8003d7a: 697b ldr r3, [r7, #20]
8003d7c: f44f 717a mov.w r1, #1000 ; 0x3e8
8003d80: fb01 f303 mul.w r3, r1, r3
8003d84: 18d1 adds r1, r2, r3
8003d86: 68fa ldr r2, [r7, #12]
8003d88: 4613 mov r3, r2
8003d8a: 009b lsls r3, r3, #2
8003d8c: 4413 add r3, r2
8003d8e: 005b lsls r3, r3, #1
8003d90: 4618 mov r0, r3
8003d92: 693b ldr r3, [r7, #16]
8003d94: 2264 movs r2, #100 ; 0x64
8003d96: fb02 f303 mul.w r3, r2, r3
8003d9a: 4403 add r3, r0
8003d9c: 18ca adds r2, r1, r3
8003d9e: 68bb ldr r3, [r7, #8]
8003da0: 4413 add r3, r2
8003da2: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
8003da4: 4b4f ldr r3, [pc, #316] ; (8003ee4 <DoKeyDN+0x460>)
8003da6: 681b ldr r3, [r3, #0]
8003da8: 69fa ldr r2, [r7, #28]
8003daa: ee07 2a90 vmov s15, r2
8003dae: eef8 7a67 vcvt.f32.u32 s15, s15
8003db2: 4a4d ldr r2, [pc, #308] ; (8003ee8 <DoKeyDN+0x464>)
8003db4: 015b lsls r3, r3, #5
8003db6: 4413 add r3, r2
8003db8: 3318 adds r3, #24
8003dba: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8003dbe: 687b ldr r3, [r7, #4]
8003dc0: 2b01 cmp r3, #1
8003dc2: d112 bne.n 8003dea <DoKeyDN+0x366>
8003dc4: 4b47 ldr r3, [pc, #284] ; (8003ee4 <DoKeyDN+0x460>)
8003dc6: 681b ldr r3, [r3, #0]
8003dc8: 4947 ldr r1, [pc, #284] ; (8003ee8 <DoKeyDN+0x464>)
8003dca: 015a lsls r2, r3, #5
8003dcc: 440a add r2, r1
8003dce: 3218 adds r2, #24
8003dd0: edd2 7a00 vldr s15, [r2]
8003dd4: ed9f 7a4d vldr s14, [pc, #308] ; 8003f0c <DoKeyDN+0x488>
8003dd8: ee67 7a87 vmul.f32 s15, s15, s14
8003ddc: 4a42 ldr r2, [pc, #264] ; (8003ee8 <DoKeyDN+0x464>)
8003dde: 015b lsls r3, r3, #5
8003de0: 4413 add r3, r2
8003de2: 3318 adds r3, #24
8003de4: edc3 7a00 vstr s15, [r3]
8003de8: e040 b.n 8003e6c <DoKeyDN+0x3e8>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8003dea: 687b ldr r3, [r7, #4]
8003dec: 2b02 cmp r3, #2
8003dee: d112 bne.n 8003e16 <DoKeyDN+0x392>
8003df0: 4b3c ldr r3, [pc, #240] ; (8003ee4 <DoKeyDN+0x460>)
8003df2: 681b ldr r3, [r3, #0]
8003df4: 493c ldr r1, [pc, #240] ; (8003ee8 <DoKeyDN+0x464>)
8003df6: 015a lsls r2, r3, #5
8003df8: 440a add r2, r1
8003dfa: 3218 adds r2, #24
8003dfc: edd2 7a00 vldr s15, [r2]
8003e00: ed9f 7a43 vldr s14, [pc, #268] ; 8003f10 <DoKeyDN+0x48c>
8003e04: ee67 7a87 vmul.f32 s15, s15, s14
8003e08: 4a37 ldr r2, [pc, #220] ; (8003ee8 <DoKeyDN+0x464>)
8003e0a: 015b lsls r3, r3, #5
8003e0c: 4413 add r3, r2
8003e0e: 3318 adds r3, #24
8003e10: edc3 7a00 vstr s15, [r3]
8003e14: e02a b.n 8003e6c <DoKeyDN+0x3e8>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8003e16: 687b ldr r3, [r7, #4]
8003e18: 2b03 cmp r3, #3
8003e1a: d112 bne.n 8003e42 <DoKeyDN+0x3be>
8003e1c: 4b31 ldr r3, [pc, #196] ; (8003ee4 <DoKeyDN+0x460>)
8003e1e: 681b ldr r3, [r3, #0]
8003e20: 4931 ldr r1, [pc, #196] ; (8003ee8 <DoKeyDN+0x464>)
8003e22: 015a lsls r2, r3, #5
8003e24: 440a add r2, r1
8003e26: 3218 adds r2, #24
8003e28: edd2 7a00 vldr s15, [r2]
8003e2c: ed9f 7a39 vldr s14, [pc, #228] ; 8003f14 <DoKeyDN+0x490>
8003e30: ee67 7a87 vmul.f32 s15, s15, s14
8003e34: 4a2c ldr r2, [pc, #176] ; (8003ee8 <DoKeyDN+0x464>)
8003e36: 015b lsls r3, r3, #5
8003e38: 4413 add r3, r2
8003e3a: 3318 adds r3, #24
8003e3c: edc3 7a00 vstr s15, [r3]
8003e40: e014 b.n 8003e6c <DoKeyDN+0x3e8>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8003e42: 687b ldr r3, [r7, #4]
8003e44: 2b04 cmp r3, #4
8003e46: d111 bne.n 8003e6c <DoKeyDN+0x3e8>
8003e48: 4b26 ldr r3, [pc, #152] ; (8003ee4 <DoKeyDN+0x460>)
8003e4a: 681b ldr r3, [r3, #0]
8003e4c: 4926 ldr r1, [pc, #152] ; (8003ee8 <DoKeyDN+0x464>)
8003e4e: 015a lsls r2, r3, #5
8003e50: 440a add r2, r1
8003e52: 3218 adds r2, #24
8003e54: edd2 7a00 vldr s15, [r2]
8003e58: ed9f 7a2f vldr s14, [pc, #188] ; 8003f18 <DoKeyDN+0x494>
8003e5c: ee67 7a87 vmul.f32 s15, s15, s14
8003e60: 4a21 ldr r2, [pc, #132] ; (8003ee8 <DoKeyDN+0x464>)
8003e62: 015b lsls r3, r3, #5
8003e64: 4413 add r3, r2
8003e66: 3318 adds r3, #24
8003e68: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //<2F><><EF><EE><EF><F0><E0><E2>
8003e6c: 4b1d ldr r3, [pc, #116] ; (8003ee4 <DoKeyDN+0x460>)
8003e6e: 681b ldr r3, [r3, #0]
8003e70: 4a1d ldr r2, [pc, #116] ; (8003ee8 <DoKeyDN+0x464>)
8003e72: 015b lsls r3, r3, #5
8003e74: 4413 add r3, r2
8003e76: 3318 adds r3, #24
8003e78: edd3 7a00 vldr s15, [r3]
8003e7c: ed9f 7a25 vldr s14, [pc, #148] ; 8003f14 <DoKeyDN+0x490>
8003e80: eef4 7ac7 vcmpe.f32 s15, s14
8003e84: eef1 fa10 vmrs APSR_nzcv, fpscr
8003e88: d507 bpl.n 8003e9a <DoKeyDN+0x416>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f;
8003e8a: 4b16 ldr r3, [pc, #88] ; (8003ee4 <DoKeyDN+0x460>)
8003e8c: 681b ldr r3, [r3, #0]
8003e8e: 4a16 ldr r2, [pc, #88] ; (8003ee8 <DoKeyDN+0x464>)
8003e90: 015b lsls r3, r3, #5
8003e92: 4413 add r3, r2
8003e94: 3318 adds r3, #24
8003e96: 4a21 ldr r2, [pc, #132] ; (8003f1c <DoKeyDN+0x498>)
8003e98: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) {
8003e9a: 4b12 ldr r3, [pc, #72] ; (8003ee4 <DoKeyDN+0x460>)
8003e9c: 681b ldr r3, [r3, #0]
8003e9e: 4a12 ldr r2, [pc, #72] ; (8003ee8 <DoKeyDN+0x464>)
8003ea0: 015b lsls r3, r3, #5
8003ea2: 4413 add r3, r2
8003ea4: 3318 adds r3, #24
8003ea6: edd3 7a00 vldr s15, [r3]
8003eaa: ed9f 7a1d vldr s14, [pc, #116] ; 8003f20 <DoKeyDN+0x49c>
8003eae: eef4 7ac7 vcmpe.f32 s15, s14
8003eb2: eef1 fa10 vmrs APSR_nzcv, fpscr
8003eb6: db07 blt.n 8003ec8 <DoKeyDN+0x444>
pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f;
8003eb8: 4b0a ldr r3, [pc, #40] ; (8003ee4 <DoKeyDN+0x460>)
8003eba: 681b ldr r3, [r3, #0]
8003ebc: 4a0a ldr r2, [pc, #40] ; (8003ee8 <DoKeyDN+0x464>)
8003ebe: 015b lsls r3, r3, #5
8003ec0: 4413 add r3, r2
8003ec2: 3318 adds r3, #24
8003ec4: 4a17 ldr r2, [pc, #92] ; (8003f24 <DoKeyDN+0x4a0>)
8003ec6: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
8003ec8: 4b06 ldr r3, [pc, #24] ; (8003ee4 <DoKeyDN+0x460>)
8003eca: 681b ldr r3, [r3, #0]
8003ecc: 4a06 ldr r2, [pc, #24] ; (8003ee8 <DoKeyDN+0x464>)
8003ece: 015b lsls r3, r3, #5
8003ed0: 4413 add r3, r2
8003ed2: 3318 adds r3, #24
8003ed4: edd3 7a00 vldr s15, [r3]
8003ed8: eeb0 0a67 vmov.f32 s0, s15
8003edc: f000 fc96 bl 800480c <VerifyGain>
8003ee0: f000 bc82 b.w 80047e8 <DoKeyDN+0xd64>
8003ee4: 2006ba68 .word 0x2006ba68
8003ee8: 2006bca8 .word 0x2006bca8
8003eec: 47c35000 .word 0x47c35000
8003ef0: 47c34f80 .word 0x47c34f80
8003ef4: 0001869f .word 0x0001869f
8003ef8: d1b71759 .word 0xd1b71759
8003efc: 10624dd3 .word 0x10624dd3
8003f00: 51eb851f .word 0x51eb851f
8003f04: cccccccd .word 0xcccccccd
8003f08: 20020010 .word 0x20020010
8003f0c: 3dcccccd .word 0x3dcccccd
8003f10: 3c23d70a .word 0x3c23d70a
8003f14: 3a83126f .word 0x3a83126f
8003f18: 38d1b717 .word 0x38d1b717
8003f1c: 3a83126f .word 0x3a83126f
8003f20: 461c4000 .word 0x461c4000
8003f24: 461c3c00 .word 0x461c3c00
}
else
if(menupos == Kikt_1 || menupos == Kikt_2 || menupos == Kikt_3 || menupos == Kikt_4)
8003f28: 4bab ldr r3, [pc, #684] ; (80041d8 <DoKeyDN+0x754>)
8003f2a: 781b ldrb r3, [r3, #0]
8003f2c: b2db uxtb r3, r3
8003f2e: 2b03 cmp r3, #3
8003f30: d00f beq.n 8003f52 <DoKeyDN+0x4ce>
8003f32: 4ba9 ldr r3, [pc, #676] ; (80041d8 <DoKeyDN+0x754>)
8003f34: 781b ldrb r3, [r3, #0]
8003f36: b2db uxtb r3, r3
8003f38: 2b0b cmp r3, #11
8003f3a: d00a beq.n 8003f52 <DoKeyDN+0x4ce>
8003f3c: 4ba6 ldr r3, [pc, #664] ; (80041d8 <DoKeyDN+0x754>)
8003f3e: 781b ldrb r3, [r3, #0]
8003f40: b2db uxtb r3, r3
8003f42: 2b13 cmp r3, #19
8003f44: d005 beq.n 8003f52 <DoKeyDN+0x4ce>
8003f46: 4ba4 ldr r3, [pc, #656] ; (80041d8 <DoKeyDN+0x754>)
8003f48: 781b ldrb r3, [r3, #0]
8003f4a: b2db uxtb r3, r3
8003f4c: 2b1b cmp r3, #27
8003f4e: f040 80bf bne.w 80040d0 <DoKeyDN+0x64c>
{
if(ikt) {
8003f52: 697b ldr r3, [r7, #20]
8003f54: 2b00 cmp r3, #0
8003f56: d002 beq.n 8003f5e <DoKeyDN+0x4da>
ikt--;
8003f58: 697b ldr r3, [r7, #20]
8003f5a: 3b01 subs r3, #1
8003f5c: 617b str r3, [r7, #20]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
8003f5e: 69bb ldr r3, [r7, #24]
8003f60: f242 7210 movw r2, #10000 ; 0x2710
8003f64: fb02 f203 mul.w r2, r2, r3
8003f68: 697b ldr r3, [r7, #20]
8003f6a: f44f 717a mov.w r1, #1000 ; 0x3e8
8003f6e: fb01 f303 mul.w r3, r1, r3
8003f72: 18d1 adds r1, r2, r3
8003f74: 68fa ldr r2, [r7, #12]
8003f76: 4613 mov r3, r2
8003f78: 009b lsls r3, r3, #2
8003f7a: 4413 add r3, r2
8003f7c: 005b lsls r3, r3, #1
8003f7e: 4618 mov r0, r3
8003f80: 693b ldr r3, [r7, #16]
8003f82: 2264 movs r2, #100 ; 0x64
8003f84: fb02 f303 mul.w r3, r2, r3
8003f88: 4403 add r3, r0
8003f8a: 18ca adds r2, r1, r3
8003f8c: 68bb ldr r3, [r7, #8]
8003f8e: 4413 add r3, r2
8003f90: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
8003f92: 4b92 ldr r3, [pc, #584] ; (80041dc <DoKeyDN+0x758>)
8003f94: 681b ldr r3, [r3, #0]
8003f96: 69fa ldr r2, [r7, #28]
8003f98: ee07 2a90 vmov s15, r2
8003f9c: eef8 7a67 vcvt.f32.u32 s15, s15
8003fa0: 4a8f ldr r2, [pc, #572] ; (80041e0 <DoKeyDN+0x75c>)
8003fa2: 015b lsls r3, r3, #5
8003fa4: 4413 add r3, r2
8003fa6: 3318 adds r3, #24
8003fa8: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8003fac: 687b ldr r3, [r7, #4]
8003fae: 2b01 cmp r3, #1
8003fb0: d112 bne.n 8003fd8 <DoKeyDN+0x554>
8003fb2: 4b8a ldr r3, [pc, #552] ; (80041dc <DoKeyDN+0x758>)
8003fb4: 681b ldr r3, [r3, #0]
8003fb6: 498a ldr r1, [pc, #552] ; (80041e0 <DoKeyDN+0x75c>)
8003fb8: 015a lsls r2, r3, #5
8003fba: 440a add r2, r1
8003fbc: 3218 adds r2, #24
8003fbe: edd2 7a00 vldr s15, [r2]
8003fc2: ed9f 7a88 vldr s14, [pc, #544] ; 80041e4 <DoKeyDN+0x760>
8003fc6: ee67 7a87 vmul.f32 s15, s15, s14
8003fca: 4a85 ldr r2, [pc, #532] ; (80041e0 <DoKeyDN+0x75c>)
8003fcc: 015b lsls r3, r3, #5
8003fce: 4413 add r3, r2
8003fd0: 3318 adds r3, #24
8003fd2: edc3 7a00 vstr s15, [r3]
8003fd6: e040 b.n 800405a <DoKeyDN+0x5d6>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8003fd8: 687b ldr r3, [r7, #4]
8003fda: 2b02 cmp r3, #2
8003fdc: d112 bne.n 8004004 <DoKeyDN+0x580>
8003fde: 4b7f ldr r3, [pc, #508] ; (80041dc <DoKeyDN+0x758>)
8003fe0: 681b ldr r3, [r3, #0]
8003fe2: 497f ldr r1, [pc, #508] ; (80041e0 <DoKeyDN+0x75c>)
8003fe4: 015a lsls r2, r3, #5
8003fe6: 440a add r2, r1
8003fe8: 3218 adds r2, #24
8003fea: edd2 7a00 vldr s15, [r2]
8003fee: ed9f 7a7e vldr s14, [pc, #504] ; 80041e8 <DoKeyDN+0x764>
8003ff2: ee67 7a87 vmul.f32 s15, s15, s14
8003ff6: 4a7a ldr r2, [pc, #488] ; (80041e0 <DoKeyDN+0x75c>)
8003ff8: 015b lsls r3, r3, #5
8003ffa: 4413 add r3, r2
8003ffc: 3318 adds r3, #24
8003ffe: edc3 7a00 vstr s15, [r3]
8004002: e02a b.n 800405a <DoKeyDN+0x5d6>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
8004004: 687b ldr r3, [r7, #4]
8004006: 2b03 cmp r3, #3
8004008: d112 bne.n 8004030 <DoKeyDN+0x5ac>
800400a: 4b74 ldr r3, [pc, #464] ; (80041dc <DoKeyDN+0x758>)
800400c: 681b ldr r3, [r3, #0]
800400e: 4974 ldr r1, [pc, #464] ; (80041e0 <DoKeyDN+0x75c>)
8004010: 015a lsls r2, r3, #5
8004012: 440a add r2, r1
8004014: 3218 adds r2, #24
8004016: edd2 7a00 vldr s15, [r2]
800401a: ed9f 7a74 vldr s14, [pc, #464] ; 80041ec <DoKeyDN+0x768>
800401e: ee67 7a87 vmul.f32 s15, s15, s14
8004022: 4a6f ldr r2, [pc, #444] ; (80041e0 <DoKeyDN+0x75c>)
8004024: 015b lsls r3, r3, #5
8004026: 4413 add r3, r2
8004028: 3318 adds r3, #24
800402a: edc3 7a00 vstr s15, [r3]
800402e: e014 b.n 800405a <DoKeyDN+0x5d6>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8004030: 687b ldr r3, [r7, #4]
8004032: 2b04 cmp r3, #4
8004034: d111 bne.n 800405a <DoKeyDN+0x5d6>
8004036: 4b69 ldr r3, [pc, #420] ; (80041dc <DoKeyDN+0x758>)
8004038: 681b ldr r3, [r3, #0]
800403a: 4969 ldr r1, [pc, #420] ; (80041e0 <DoKeyDN+0x75c>)
800403c: 015a lsls r2, r3, #5
800403e: 440a add r2, r1
8004040: 3218 adds r2, #24
8004042: edd2 7a00 vldr s15, [r2]
8004046: ed9f 7a6a vldr s14, [pc, #424] ; 80041f0 <DoKeyDN+0x76c>
800404a: ee67 7a87 vmul.f32 s15, s15, s14
800404e: 4a64 ldr r2, [pc, #400] ; (80041e0 <DoKeyDN+0x75c>)
8004050: 015b lsls r3, r3, #5
8004052: 4413 add r3, r2
8004054: 3318 adds r3, #24
8004056: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //<2F><><EF><EE><EF><F0><E0><E2>
800405a: 4b60 ldr r3, [pc, #384] ; (80041dc <DoKeyDN+0x758>)
800405c: 681b ldr r3, [r3, #0]
800405e: 4a60 ldr r2, [pc, #384] ; (80041e0 <DoKeyDN+0x75c>)
8004060: 015b lsls r3, r3, #5
8004062: 4413 add r3, r2
8004064: 3318 adds r3, #24
8004066: edd3 7a00 vldr s15, [r3]
800406a: ed9f 7a60 vldr s14, [pc, #384] ; 80041ec <DoKeyDN+0x768>
800406e: eef4 7ac7 vcmpe.f32 s15, s14
8004072: eef1 fa10 vmrs APSR_nzcv, fpscr
8004076: d507 bpl.n 8004088 <DoKeyDN+0x604>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f;
8004078: 4b58 ldr r3, [pc, #352] ; (80041dc <DoKeyDN+0x758>)
800407a: 681b ldr r3, [r3, #0]
800407c: 4a58 ldr r2, [pc, #352] ; (80041e0 <DoKeyDN+0x75c>)
800407e: 015b lsls r3, r3, #5
8004080: 4413 add r3, r2
8004082: 3318 adds r3, #24
8004084: 4a5b ldr r2, [pc, #364] ; (80041f4 <DoKeyDN+0x770>)
8004086: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) {
8004088: 4b54 ldr r3, [pc, #336] ; (80041dc <DoKeyDN+0x758>)
800408a: 681b ldr r3, [r3, #0]
800408c: 4a54 ldr r2, [pc, #336] ; (80041e0 <DoKeyDN+0x75c>)
800408e: 015b lsls r3, r3, #5
8004090: 4413 add r3, r2
8004092: 3318 adds r3, #24
8004094: edd3 7a00 vldr s15, [r3]
8004098: ed9f 7a57 vldr s14, [pc, #348] ; 80041f8 <DoKeyDN+0x774>
800409c: eef4 7ac7 vcmpe.f32 s15, s14
80040a0: eef1 fa10 vmrs APSR_nzcv, fpscr
80040a4: db07 blt.n 80040b6 <DoKeyDN+0x632>
pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f;
80040a6: 4b4d ldr r3, [pc, #308] ; (80041dc <DoKeyDN+0x758>)
80040a8: 681b ldr r3, [r3, #0]
80040aa: 4a4d ldr r2, [pc, #308] ; (80041e0 <DoKeyDN+0x75c>)
80040ac: 015b lsls r3, r3, #5
80040ae: 4413 add r3, r2
80040b0: 3318 adds r3, #24
80040b2: 4a52 ldr r2, [pc, #328] ; (80041fc <DoKeyDN+0x778>)
80040b4: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
80040b6: 4b49 ldr r3, [pc, #292] ; (80041dc <DoKeyDN+0x758>)
80040b8: 681b ldr r3, [r3, #0]
80040ba: 4a49 ldr r2, [pc, #292] ; (80041e0 <DoKeyDN+0x75c>)
80040bc: 015b lsls r3, r3, #5
80040be: 4413 add r3, r2
80040c0: 3318 adds r3, #24
80040c2: edd3 7a00 vldr s15, [r3]
80040c6: eeb0 0a67 vmov.f32 s0, s15
80040ca: f000 fb9f bl 800480c <VerifyGain>
80040ce: e38b b.n 80047e8 <DoKeyDN+0xd64>
}
else
if(menupos == Kiks_1 || menupos == Kiks_2 || menupos == Kiks_3 || menupos == Kiks_4)
80040d0: 4b41 ldr r3, [pc, #260] ; (80041d8 <DoKeyDN+0x754>)
80040d2: 781b ldrb r3, [r3, #0]
80040d4: b2db uxtb r3, r3
80040d6: 2b04 cmp r3, #4
80040d8: d00f beq.n 80040fa <DoKeyDN+0x676>
80040da: 4b3f ldr r3, [pc, #252] ; (80041d8 <DoKeyDN+0x754>)
80040dc: 781b ldrb r3, [r3, #0]
80040de: b2db uxtb r3, r3
80040e0: 2b0c cmp r3, #12
80040e2: d00a beq.n 80040fa <DoKeyDN+0x676>
80040e4: 4b3c ldr r3, [pc, #240] ; (80041d8 <DoKeyDN+0x754>)
80040e6: 781b ldrb r3, [r3, #0]
80040e8: b2db uxtb r3, r3
80040ea: 2b14 cmp r3, #20
80040ec: d005 beq.n 80040fa <DoKeyDN+0x676>
80040ee: 4b3a ldr r3, [pc, #232] ; (80041d8 <DoKeyDN+0x754>)
80040f0: 781b ldrb r3, [r3, #0]
80040f2: b2db uxtb r3, r3
80040f4: 2b1c cmp r3, #28
80040f6: f040 80d3 bne.w 80042a0 <DoKeyDN+0x81c>
{
if(iks) {
80040fa: 693b ldr r3, [r7, #16]
80040fc: 2b00 cmp r3, #0
80040fe: d002 beq.n 8004106 <DoKeyDN+0x682>
iks--;
8004100: 693b ldr r3, [r7, #16]
8004102: 3b01 subs r3, #1
8004104: 613b str r3, [r7, #16]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
8004106: 69bb ldr r3, [r7, #24]
8004108: f242 7210 movw r2, #10000 ; 0x2710
800410c: fb02 f203 mul.w r2, r2, r3
8004110: 697b ldr r3, [r7, #20]
8004112: f44f 717a mov.w r1, #1000 ; 0x3e8
8004116: fb01 f303 mul.w r3, r1, r3
800411a: 18d1 adds r1, r2, r3
800411c: 68fa ldr r2, [r7, #12]
800411e: 4613 mov r3, r2
8004120: 009b lsls r3, r3, #2
8004122: 4413 add r3, r2
8004124: 005b lsls r3, r3, #1
8004126: 4618 mov r0, r3
8004128: 693b ldr r3, [r7, #16]
800412a: 2264 movs r2, #100 ; 0x64
800412c: fb02 f303 mul.w r3, r2, r3
8004130: 4403 add r3, r0
8004132: 18ca adds r2, r1, r3
8004134: 68bb ldr r3, [r7, #8]
8004136: 4413 add r3, r2
8004138: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
800413a: 4b28 ldr r3, [pc, #160] ; (80041dc <DoKeyDN+0x758>)
800413c: 681b ldr r3, [r3, #0]
800413e: 69fa ldr r2, [r7, #28]
8004140: ee07 2a90 vmov s15, r2
8004144: eef8 7a67 vcvt.f32.u32 s15, s15
8004148: 4a25 ldr r2, [pc, #148] ; (80041e0 <DoKeyDN+0x75c>)
800414a: 015b lsls r3, r3, #5
800414c: 4413 add r3, r2
800414e: 3318 adds r3, #24
8004150: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8004154: 687b ldr r3, [r7, #4]
8004156: 2b01 cmp r3, #1
8004158: d112 bne.n 8004180 <DoKeyDN+0x6fc>
800415a: 4b20 ldr r3, [pc, #128] ; (80041dc <DoKeyDN+0x758>)
800415c: 681b ldr r3, [r3, #0]
800415e: 4920 ldr r1, [pc, #128] ; (80041e0 <DoKeyDN+0x75c>)
8004160: 015a lsls r2, r3, #5
8004162: 440a add r2, r1
8004164: 3218 adds r2, #24
8004166: edd2 7a00 vldr s15, [r2]
800416a: ed9f 7a1e vldr s14, [pc, #120] ; 80041e4 <DoKeyDN+0x760>
800416e: ee67 7a87 vmul.f32 s15, s15, s14
8004172: 4a1b ldr r2, [pc, #108] ; (80041e0 <DoKeyDN+0x75c>)
8004174: 015b lsls r3, r3, #5
8004176: 4413 add r3, r2
8004178: 3318 adds r3, #24
800417a: edc3 7a00 vstr s15, [r3]
800417e: e054 b.n 800422a <DoKeyDN+0x7a6>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8004180: 687b ldr r3, [r7, #4]
8004182: 2b02 cmp r3, #2
8004184: d112 bne.n 80041ac <DoKeyDN+0x728>
8004186: 4b15 ldr r3, [pc, #84] ; (80041dc <DoKeyDN+0x758>)
8004188: 681b ldr r3, [r3, #0]
800418a: 4915 ldr r1, [pc, #84] ; (80041e0 <DoKeyDN+0x75c>)
800418c: 015a lsls r2, r3, #5
800418e: 440a add r2, r1
8004190: 3218 adds r2, #24
8004192: edd2 7a00 vldr s15, [r2]
8004196: ed9f 7a14 vldr s14, [pc, #80] ; 80041e8 <DoKeyDN+0x764>
800419a: ee67 7a87 vmul.f32 s15, s15, s14
800419e: 4a10 ldr r2, [pc, #64] ; (80041e0 <DoKeyDN+0x75c>)
80041a0: 015b lsls r3, r3, #5
80041a2: 4413 add r3, r2
80041a4: 3318 adds r3, #24
80041a6: edc3 7a00 vstr s15, [r3]
80041aa: e03e b.n 800422a <DoKeyDN+0x7a6>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
80041ac: 687b ldr r3, [r7, #4]
80041ae: 2b03 cmp r3, #3
80041b0: d126 bne.n 8004200 <DoKeyDN+0x77c>
80041b2: 4b0a ldr r3, [pc, #40] ; (80041dc <DoKeyDN+0x758>)
80041b4: 681b ldr r3, [r3, #0]
80041b6: 490a ldr r1, [pc, #40] ; (80041e0 <DoKeyDN+0x75c>)
80041b8: 015a lsls r2, r3, #5
80041ba: 440a add r2, r1
80041bc: 3218 adds r2, #24
80041be: edd2 7a00 vldr s15, [r2]
80041c2: ed9f 7a0a vldr s14, [pc, #40] ; 80041ec <DoKeyDN+0x768>
80041c6: ee67 7a87 vmul.f32 s15, s15, s14
80041ca: 4a05 ldr r2, [pc, #20] ; (80041e0 <DoKeyDN+0x75c>)
80041cc: 015b lsls r3, r3, #5
80041ce: 4413 add r3, r2
80041d0: 3318 adds r3, #24
80041d2: edc3 7a00 vstr s15, [r3]
80041d6: e028 b.n 800422a <DoKeyDN+0x7a6>
80041d8: 20020010 .word 0x20020010
80041dc: 2006ba68 .word 0x2006ba68
80041e0: 2006bca8 .word 0x2006bca8
80041e4: 3dcccccd .word 0x3dcccccd
80041e8: 3c23d70a .word 0x3c23d70a
80041ec: 3a83126f .word 0x3a83126f
80041f0: 38d1b717 .word 0x38d1b717
80041f4: 3a83126f .word 0x3a83126f
80041f8: 461c4000 .word 0x461c4000
80041fc: 461c3c00 .word 0x461c3c00
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8004200: 687b ldr r3, [r7, #4]
8004202: 2b04 cmp r3, #4
8004204: d111 bne.n 800422a <DoKeyDN+0x7a6>
8004206: 4b90 ldr r3, [pc, #576] ; (8004448 <DoKeyDN+0x9c4>)
8004208: 681b ldr r3, [r3, #0]
800420a: 4990 ldr r1, [pc, #576] ; (800444c <DoKeyDN+0x9c8>)
800420c: 015a lsls r2, r3, #5
800420e: 440a add r2, r1
8004210: 3218 adds r2, #24
8004212: edd2 7a00 vldr s15, [r2]
8004216: ed9f 7a8e vldr s14, [pc, #568] ; 8004450 <DoKeyDN+0x9cc>
800421a: ee67 7a87 vmul.f32 s15, s15, s14
800421e: 4a8b ldr r2, [pc, #556] ; (800444c <DoKeyDN+0x9c8>)
8004220: 015b lsls r3, r3, #5
8004222: 4413 add r3, r2
8004224: 3318 adds r3, #24
8004226: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //<2F><><EF><EE><EF><F0><E0><E2>
800422a: 4b87 ldr r3, [pc, #540] ; (8004448 <DoKeyDN+0x9c4>)
800422c: 681b ldr r3, [r3, #0]
800422e: 4a87 ldr r2, [pc, #540] ; (800444c <DoKeyDN+0x9c8>)
8004230: 015b lsls r3, r3, #5
8004232: 4413 add r3, r2
8004234: 3318 adds r3, #24
8004236: edd3 7a00 vldr s15, [r3]
800423a: ed9f 7a86 vldr s14, [pc, #536] ; 8004454 <DoKeyDN+0x9d0>
800423e: eef4 7ac7 vcmpe.f32 s15, s14
8004242: eef1 fa10 vmrs APSR_nzcv, fpscr
8004246: d507 bpl.n 8004258 <DoKeyDN+0x7d4>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f;
8004248: 4b7f ldr r3, [pc, #508] ; (8004448 <DoKeyDN+0x9c4>)
800424a: 681b ldr r3, [r3, #0]
800424c: 4a7f ldr r2, [pc, #508] ; (800444c <DoKeyDN+0x9c8>)
800424e: 015b lsls r3, r3, #5
8004250: 4413 add r3, r2
8004252: 3318 adds r3, #24
8004254: 4a80 ldr r2, [pc, #512] ; (8004458 <DoKeyDN+0x9d4>)
8004256: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) {
8004258: 4b7b ldr r3, [pc, #492] ; (8004448 <DoKeyDN+0x9c4>)
800425a: 681b ldr r3, [r3, #0]
800425c: 4a7b ldr r2, [pc, #492] ; (800444c <DoKeyDN+0x9c8>)
800425e: 015b lsls r3, r3, #5
8004260: 4413 add r3, r2
8004262: 3318 adds r3, #24
8004264: edd3 7a00 vldr s15, [r3]
8004268: ed9f 7a7c vldr s14, [pc, #496] ; 800445c <DoKeyDN+0x9d8>
800426c: eef4 7ac7 vcmpe.f32 s15, s14
8004270: eef1 fa10 vmrs APSR_nzcv, fpscr
8004274: db07 blt.n 8004286 <DoKeyDN+0x802>
pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f;
8004276: 4b74 ldr r3, [pc, #464] ; (8004448 <DoKeyDN+0x9c4>)
8004278: 681b ldr r3, [r3, #0]
800427a: 4a74 ldr r2, [pc, #464] ; (800444c <DoKeyDN+0x9c8>)
800427c: 015b lsls r3, r3, #5
800427e: 4413 add r3, r2
8004280: 3318 adds r3, #24
8004282: 4a77 ldr r2, [pc, #476] ; (8004460 <DoKeyDN+0x9dc>)
8004284: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
8004286: 4b70 ldr r3, [pc, #448] ; (8004448 <DoKeyDN+0x9c4>)
8004288: 681b ldr r3, [r3, #0]
800428a: 4a70 ldr r2, [pc, #448] ; (800444c <DoKeyDN+0x9c8>)
800428c: 015b lsls r3, r3, #5
800428e: 4413 add r3, r2
8004290: 3318 adds r3, #24
8004292: edd3 7a00 vldr s15, [r3]
8004296: eeb0 0a67 vmov.f32 s0, s15
800429a: f000 fab7 bl 800480c <VerifyGain>
800429e: e2a3 b.n 80047e8 <DoKeyDN+0xd64>
}
else
if(menupos == Kikd_1 || menupos == Kikd_2 || menupos == Kikd_3 || menupos == Kikd_4)
80042a0: 4b70 ldr r3, [pc, #448] ; (8004464 <DoKeyDN+0x9e0>)
80042a2: 781b ldrb r3, [r3, #0]
80042a4: b2db uxtb r3, r3
80042a6: 2b05 cmp r3, #5
80042a8: d00f beq.n 80042ca <DoKeyDN+0x846>
80042aa: 4b6e ldr r3, [pc, #440] ; (8004464 <DoKeyDN+0x9e0>)
80042ac: 781b ldrb r3, [r3, #0]
80042ae: b2db uxtb r3, r3
80042b0: 2b0d cmp r3, #13
80042b2: d00a beq.n 80042ca <DoKeyDN+0x846>
80042b4: 4b6b ldr r3, [pc, #428] ; (8004464 <DoKeyDN+0x9e0>)
80042b6: 781b ldrb r3, [r3, #0]
80042b8: b2db uxtb r3, r3
80042ba: 2b15 cmp r3, #21
80042bc: d005 beq.n 80042ca <DoKeyDN+0x846>
80042be: 4b69 ldr r3, [pc, #420] ; (8004464 <DoKeyDN+0x9e0>)
80042c0: 781b ldrb r3, [r3, #0]
80042c2: b2db uxtb r3, r3
80042c4: 2b1d cmp r3, #29
80042c6: f040 80d3 bne.w 8004470 <DoKeyDN+0x9ec>
{
if(ikd) {
80042ca: 68fb ldr r3, [r7, #12]
80042cc: 2b00 cmp r3, #0
80042ce: d002 beq.n 80042d6 <DoKeyDN+0x852>
ikd--;
80042d0: 68fb ldr r3, [r7, #12]
80042d2: 3b01 subs r3, #1
80042d4: 60fb str r3, [r7, #12]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
80042d6: 69bb ldr r3, [r7, #24]
80042d8: f242 7210 movw r2, #10000 ; 0x2710
80042dc: fb02 f203 mul.w r2, r2, r3
80042e0: 697b ldr r3, [r7, #20]
80042e2: f44f 717a mov.w r1, #1000 ; 0x3e8
80042e6: fb01 f303 mul.w r3, r1, r3
80042ea: 18d1 adds r1, r2, r3
80042ec: 68fa ldr r2, [r7, #12]
80042ee: 4613 mov r3, r2
80042f0: 009b lsls r3, r3, #2
80042f2: 4413 add r3, r2
80042f4: 005b lsls r3, r3, #1
80042f6: 4618 mov r0, r3
80042f8: 693b ldr r3, [r7, #16]
80042fa: 2264 movs r2, #100 ; 0x64
80042fc: fb02 f303 mul.w r3, r2, r3
8004300: 4403 add r3, r0
8004302: 18ca adds r2, r1, r3
8004304: 68bb ldr r3, [r7, #8]
8004306: 4413 add r3, r2
8004308: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
800430a: 4b4f ldr r3, [pc, #316] ; (8004448 <DoKeyDN+0x9c4>)
800430c: 681b ldr r3, [r3, #0]
800430e: 69fa ldr r2, [r7, #28]
8004310: ee07 2a90 vmov s15, r2
8004314: eef8 7a67 vcvt.f32.u32 s15, s15
8004318: 4a4c ldr r2, [pc, #304] ; (800444c <DoKeyDN+0x9c8>)
800431a: 015b lsls r3, r3, #5
800431c: 4413 add r3, r2
800431e: 3318 adds r3, #24
8004320: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
8004324: 687b ldr r3, [r7, #4]
8004326: 2b01 cmp r3, #1
8004328: d112 bne.n 8004350 <DoKeyDN+0x8cc>
800432a: 4b47 ldr r3, [pc, #284] ; (8004448 <DoKeyDN+0x9c4>)
800432c: 681b ldr r3, [r3, #0]
800432e: 4947 ldr r1, [pc, #284] ; (800444c <DoKeyDN+0x9c8>)
8004330: 015a lsls r2, r3, #5
8004332: 440a add r2, r1
8004334: 3218 adds r2, #24
8004336: edd2 7a00 vldr s15, [r2]
800433a: ed9f 7a4b vldr s14, [pc, #300] ; 8004468 <DoKeyDN+0x9e4>
800433e: ee67 7a87 vmul.f32 s15, s15, s14
8004342: 4a42 ldr r2, [pc, #264] ; (800444c <DoKeyDN+0x9c8>)
8004344: 015b lsls r3, r3, #5
8004346: 4413 add r3, r2
8004348: 3318 adds r3, #24
800434a: edc3 7a00 vstr s15, [r3]
800434e: e040 b.n 80043d2 <DoKeyDN+0x94e>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8004350: 687b ldr r3, [r7, #4]
8004352: 2b02 cmp r3, #2
8004354: d112 bne.n 800437c <DoKeyDN+0x8f8>
8004356: 4b3c ldr r3, [pc, #240] ; (8004448 <DoKeyDN+0x9c4>)
8004358: 681b ldr r3, [r3, #0]
800435a: 493c ldr r1, [pc, #240] ; (800444c <DoKeyDN+0x9c8>)
800435c: 015a lsls r2, r3, #5
800435e: 440a add r2, r1
8004360: 3218 adds r2, #24
8004362: edd2 7a00 vldr s15, [r2]
8004366: ed9f 7a41 vldr s14, [pc, #260] ; 800446c <DoKeyDN+0x9e8>
800436a: ee67 7a87 vmul.f32 s15, s15, s14
800436e: 4a37 ldr r2, [pc, #220] ; (800444c <DoKeyDN+0x9c8>)
8004370: 015b lsls r3, r3, #5
8004372: 4413 add r3, r2
8004374: 3318 adds r3, #24
8004376: edc3 7a00 vstr s15, [r3]
800437a: e02a b.n 80043d2 <DoKeyDN+0x94e>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
800437c: 687b ldr r3, [r7, #4]
800437e: 2b03 cmp r3, #3
8004380: d112 bne.n 80043a8 <DoKeyDN+0x924>
8004382: 4b31 ldr r3, [pc, #196] ; (8004448 <DoKeyDN+0x9c4>)
8004384: 681b ldr r3, [r3, #0]
8004386: 4931 ldr r1, [pc, #196] ; (800444c <DoKeyDN+0x9c8>)
8004388: 015a lsls r2, r3, #5
800438a: 440a add r2, r1
800438c: 3218 adds r2, #24
800438e: edd2 7a00 vldr s15, [r2]
8004392: ed9f 7a30 vldr s14, [pc, #192] ; 8004454 <DoKeyDN+0x9d0>
8004396: ee67 7a87 vmul.f32 s15, s15, s14
800439a: 4a2c ldr r2, [pc, #176] ; (800444c <DoKeyDN+0x9c8>)
800439c: 015b lsls r3, r3, #5
800439e: 4413 add r3, r2
80043a0: 3318 adds r3, #24
80043a2: edc3 7a00 vstr s15, [r3]
80043a6: e014 b.n 80043d2 <DoKeyDN+0x94e>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
80043a8: 687b ldr r3, [r7, #4]
80043aa: 2b04 cmp r3, #4
80043ac: d111 bne.n 80043d2 <DoKeyDN+0x94e>
80043ae: 4b26 ldr r3, [pc, #152] ; (8004448 <DoKeyDN+0x9c4>)
80043b0: 681b ldr r3, [r3, #0]
80043b2: 4926 ldr r1, [pc, #152] ; (800444c <DoKeyDN+0x9c8>)
80043b4: 015a lsls r2, r3, #5
80043b6: 440a add r2, r1
80043b8: 3218 adds r2, #24
80043ba: edd2 7a00 vldr s15, [r2]
80043be: ed9f 7a24 vldr s14, [pc, #144] ; 8004450 <DoKeyDN+0x9cc>
80043c2: ee67 7a87 vmul.f32 s15, s15, s14
80043c6: 4a21 ldr r2, [pc, #132] ; (800444c <DoKeyDN+0x9c8>)
80043c8: 015b lsls r3, r3, #5
80043ca: 4413 add r3, r2
80043cc: 3318 adds r3, #24
80043ce: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //<2F><><EF><EE><EF><F0><E0><E2>
80043d2: 4b1d ldr r3, [pc, #116] ; (8004448 <DoKeyDN+0x9c4>)
80043d4: 681b ldr r3, [r3, #0]
80043d6: 4a1d ldr r2, [pc, #116] ; (800444c <DoKeyDN+0x9c8>)
80043d8: 015b lsls r3, r3, #5
80043da: 4413 add r3, r2
80043dc: 3318 adds r3, #24
80043de: edd3 7a00 vldr s15, [r3]
80043e2: ed9f 7a1c vldr s14, [pc, #112] ; 8004454 <DoKeyDN+0x9d0>
80043e6: eef4 7ac7 vcmpe.f32 s15, s14
80043ea: eef1 fa10 vmrs APSR_nzcv, fpscr
80043ee: d507 bpl.n 8004400 <DoKeyDN+0x97c>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f;
80043f0: 4b15 ldr r3, [pc, #84] ; (8004448 <DoKeyDN+0x9c4>)
80043f2: 681b ldr r3, [r3, #0]
80043f4: 4a15 ldr r2, [pc, #84] ; (800444c <DoKeyDN+0x9c8>)
80043f6: 015b lsls r3, r3, #5
80043f8: 4413 add r3, r2
80043fa: 3318 adds r3, #24
80043fc: 4a16 ldr r2, [pc, #88] ; (8004458 <DoKeyDN+0x9d4>)
80043fe: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) {
8004400: 4b11 ldr r3, [pc, #68] ; (8004448 <DoKeyDN+0x9c4>)
8004402: 681b ldr r3, [r3, #0]
8004404: 4a11 ldr r2, [pc, #68] ; (800444c <DoKeyDN+0x9c8>)
8004406: 015b lsls r3, r3, #5
8004408: 4413 add r3, r2
800440a: 3318 adds r3, #24
800440c: edd3 7a00 vldr s15, [r3]
8004410: ed9f 7a12 vldr s14, [pc, #72] ; 800445c <DoKeyDN+0x9d8>
8004414: eef4 7ac7 vcmpe.f32 s15, s14
8004418: eef1 fa10 vmrs APSR_nzcv, fpscr
800441c: db07 blt.n 800442e <DoKeyDN+0x9aa>
pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f;
800441e: 4b0a ldr r3, [pc, #40] ; (8004448 <DoKeyDN+0x9c4>)
8004420: 681b ldr r3, [r3, #0]
8004422: 4a0a ldr r2, [pc, #40] ; (800444c <DoKeyDN+0x9c8>)
8004424: 015b lsls r3, r3, #5
8004426: 4413 add r3, r2
8004428: 3318 adds r3, #24
800442a: 4a0d ldr r2, [pc, #52] ; (8004460 <DoKeyDN+0x9dc>)
800442c: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
800442e: 4b06 ldr r3, [pc, #24] ; (8004448 <DoKeyDN+0x9c4>)
8004430: 681b ldr r3, [r3, #0]
8004432: 4a06 ldr r2, [pc, #24] ; (800444c <DoKeyDN+0x9c8>)
8004434: 015b lsls r3, r3, #5
8004436: 4413 add r3, r2
8004438: 3318 adds r3, #24
800443a: edd3 7a00 vldr s15, [r3]
800443e: eeb0 0a67 vmov.f32 s0, s15
8004442: f000 f9e3 bl 800480c <VerifyGain>
8004446: e1cf b.n 80047e8 <DoKeyDN+0xd64>
8004448: 2006ba68 .word 0x2006ba68
800444c: 2006bca8 .word 0x2006bca8
8004450: 38d1b717 .word 0x38d1b717
8004454: 3a83126f .word 0x3a83126f
8004458: 3a83126f .word 0x3a83126f
800445c: 461c4000 .word 0x461c4000
8004460: 461c3c00 .word 0x461c3c00
8004464: 20020010 .word 0x20020010
8004468: 3dcccccd .word 0x3dcccccd
800446c: 3c23d70a .word 0x3c23d70a
}
else
if(menupos == Kike_1 || menupos == Kike_2 || menupos == Kike_3 || menupos == Kike_4)
8004470: 4bab ldr r3, [pc, #684] ; (8004720 <DoKeyDN+0xc9c>)
8004472: 781b ldrb r3, [r3, #0]
8004474: b2db uxtb r3, r3
8004476: 2b06 cmp r3, #6
8004478: d00f beq.n 800449a <DoKeyDN+0xa16>
800447a: 4ba9 ldr r3, [pc, #676] ; (8004720 <DoKeyDN+0xc9c>)
800447c: 781b ldrb r3, [r3, #0]
800447e: b2db uxtb r3, r3
8004480: 2b0e cmp r3, #14
8004482: d00a beq.n 800449a <DoKeyDN+0xa16>
8004484: 4ba6 ldr r3, [pc, #664] ; (8004720 <DoKeyDN+0xc9c>)
8004486: 781b ldrb r3, [r3, #0]
8004488: b2db uxtb r3, r3
800448a: 2b16 cmp r3, #22
800448c: d005 beq.n 800449a <DoKeyDN+0xa16>
800448e: 4ba4 ldr r3, [pc, #656] ; (8004720 <DoKeyDN+0xc9c>)
8004490: 781b ldrb r3, [r3, #0]
8004492: b2db uxtb r3, r3
8004494: 2b1e cmp r3, #30
8004496: f040 80bf bne.w 8004618 <DoKeyDN+0xb94>
{
if(ike) {
800449a: 68bb ldr r3, [r7, #8]
800449c: 2b00 cmp r3, #0
800449e: d002 beq.n 80044a6 <DoKeyDN+0xa22>
ike--;
80044a0: 68bb ldr r3, [r7, #8]
80044a2: 3b01 subs r3, #1
80044a4: 60bb str r3, [r7, #8]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
80044a6: 69bb ldr r3, [r7, #24]
80044a8: f242 7210 movw r2, #10000 ; 0x2710
80044ac: fb02 f203 mul.w r2, r2, r3
80044b0: 697b ldr r3, [r7, #20]
80044b2: f44f 717a mov.w r1, #1000 ; 0x3e8
80044b6: fb01 f303 mul.w r3, r1, r3
80044ba: 18d1 adds r1, r2, r3
80044bc: 68fa ldr r2, [r7, #12]
80044be: 4613 mov r3, r2
80044c0: 009b lsls r3, r3, #2
80044c2: 4413 add r3, r2
80044c4: 005b lsls r3, r3, #1
80044c6: 4618 mov r0, r3
80044c8: 693b ldr r3, [r7, #16]
80044ca: 2264 movs r2, #100 ; 0x64
80044cc: fb02 f303 mul.w r3, r2, r3
80044d0: 4403 add r3, r0
80044d2: 18ca adds r2, r1, r3
80044d4: 68bb ldr r3, [r7, #8]
80044d6: 4413 add r3, r2
80044d8: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
80044da: 4b92 ldr r3, [pc, #584] ; (8004724 <DoKeyDN+0xca0>)
80044dc: 681b ldr r3, [r3, #0]
80044de: 69fa ldr r2, [r7, #28]
80044e0: ee07 2a90 vmov s15, r2
80044e4: eef8 7a67 vcvt.f32.u32 s15, s15
80044e8: 4a8f ldr r2, [pc, #572] ; (8004728 <DoKeyDN+0xca4>)
80044ea: 015b lsls r3, r3, #5
80044ec: 4413 add r3, r2
80044ee: 3318 adds r3, #24
80044f0: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
80044f4: 687b ldr r3, [r7, #4]
80044f6: 2b01 cmp r3, #1
80044f8: d112 bne.n 8004520 <DoKeyDN+0xa9c>
80044fa: 4b8a ldr r3, [pc, #552] ; (8004724 <DoKeyDN+0xca0>)
80044fc: 681b ldr r3, [r3, #0]
80044fe: 498a ldr r1, [pc, #552] ; (8004728 <DoKeyDN+0xca4>)
8004500: 015a lsls r2, r3, #5
8004502: 440a add r2, r1
8004504: 3218 adds r2, #24
8004506: edd2 7a00 vldr s15, [r2]
800450a: ed9f 7a88 vldr s14, [pc, #544] ; 800472c <DoKeyDN+0xca8>
800450e: ee67 7a87 vmul.f32 s15, s15, s14
8004512: 4a85 ldr r2, [pc, #532] ; (8004728 <DoKeyDN+0xca4>)
8004514: 015b lsls r3, r3, #5
8004516: 4413 add r3, r2
8004518: 3318 adds r3, #24
800451a: edc3 7a00 vstr s15, [r3]
800451e: e040 b.n 80045a2 <DoKeyDN+0xb1e>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
8004520: 687b ldr r3, [r7, #4]
8004522: 2b02 cmp r3, #2
8004524: d112 bne.n 800454c <DoKeyDN+0xac8>
8004526: 4b7f ldr r3, [pc, #508] ; (8004724 <DoKeyDN+0xca0>)
8004528: 681b ldr r3, [r3, #0]
800452a: 497f ldr r1, [pc, #508] ; (8004728 <DoKeyDN+0xca4>)
800452c: 015a lsls r2, r3, #5
800452e: 440a add r2, r1
8004530: 3218 adds r2, #24
8004532: edd2 7a00 vldr s15, [r2]
8004536: ed9f 7a7e vldr s14, [pc, #504] ; 8004730 <DoKeyDN+0xcac>
800453a: ee67 7a87 vmul.f32 s15, s15, s14
800453e: 4a7a ldr r2, [pc, #488] ; (8004728 <DoKeyDN+0xca4>)
8004540: 015b lsls r3, r3, #5
8004542: 4413 add r3, r2
8004544: 3318 adds r3, #24
8004546: edc3 7a00 vstr s15, [r3]
800454a: e02a b.n 80045a2 <DoKeyDN+0xb1e>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
800454c: 687b ldr r3, [r7, #4]
800454e: 2b03 cmp r3, #3
8004550: d112 bne.n 8004578 <DoKeyDN+0xaf4>
8004552: 4b74 ldr r3, [pc, #464] ; (8004724 <DoKeyDN+0xca0>)
8004554: 681b ldr r3, [r3, #0]
8004556: 4974 ldr r1, [pc, #464] ; (8004728 <DoKeyDN+0xca4>)
8004558: 015a lsls r2, r3, #5
800455a: 440a add r2, r1
800455c: 3218 adds r2, #24
800455e: edd2 7a00 vldr s15, [r2]
8004562: ed9f 7a74 vldr s14, [pc, #464] ; 8004734 <DoKeyDN+0xcb0>
8004566: ee67 7a87 vmul.f32 s15, s15, s14
800456a: 4a6f ldr r2, [pc, #444] ; (8004728 <DoKeyDN+0xca4>)
800456c: 015b lsls r3, r3, #5
800456e: 4413 add r3, r2
8004570: 3318 adds r3, #24
8004572: edc3 7a00 vstr s15, [r3]
8004576: e014 b.n 80045a2 <DoKeyDN+0xb1e>
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8004578: 687b ldr r3, [r7, #4]
800457a: 2b04 cmp r3, #4
800457c: d111 bne.n 80045a2 <DoKeyDN+0xb1e>
800457e: 4b69 ldr r3, [pc, #420] ; (8004724 <DoKeyDN+0xca0>)
8004580: 681b ldr r3, [r3, #0]
8004582: 4969 ldr r1, [pc, #420] ; (8004728 <DoKeyDN+0xca4>)
8004584: 015a lsls r2, r3, #5
8004586: 440a add r2, r1
8004588: 3218 adds r2, #24
800458a: edd2 7a00 vldr s15, [r2]
800458e: ed9f 7a6a vldr s14, [pc, #424] ; 8004738 <DoKeyDN+0xcb4>
8004592: ee67 7a87 vmul.f32 s15, s15, s14
8004596: 4a64 ldr r2, [pc, #400] ; (8004728 <DoKeyDN+0xca4>)
8004598: 015b lsls r3, r3, #5
800459a: 4413 add r3, r2
800459c: 3318 adds r3, #24
800459e: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //<2F><><EF><EE><EF><F0><E0><E2>
80045a2: 4b60 ldr r3, [pc, #384] ; (8004724 <DoKeyDN+0xca0>)
80045a4: 681b ldr r3, [r3, #0]
80045a6: 4a60 ldr r2, [pc, #384] ; (8004728 <DoKeyDN+0xca4>)
80045a8: 015b lsls r3, r3, #5
80045aa: 4413 add r3, r2
80045ac: 3318 adds r3, #24
80045ae: edd3 7a00 vldr s15, [r3]
80045b2: ed9f 7a60 vldr s14, [pc, #384] ; 8004734 <DoKeyDN+0xcb0>
80045b6: eef4 7ac7 vcmpe.f32 s15, s14
80045ba: eef1 fa10 vmrs APSR_nzcv, fpscr
80045be: d507 bpl.n 80045d0 <DoKeyDN+0xb4c>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f;
80045c0: 4b58 ldr r3, [pc, #352] ; (8004724 <DoKeyDN+0xca0>)
80045c2: 681b ldr r3, [r3, #0]
80045c4: 4a58 ldr r2, [pc, #352] ; (8004728 <DoKeyDN+0xca4>)
80045c6: 015b lsls r3, r3, #5
80045c8: 4413 add r3, r2
80045ca: 3318 adds r3, #24
80045cc: 4a5b ldr r2, [pc, #364] ; (800473c <DoKeyDN+0xcb8>)
80045ce: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) {
80045d0: 4b54 ldr r3, [pc, #336] ; (8004724 <DoKeyDN+0xca0>)
80045d2: 681b ldr r3, [r3, #0]
80045d4: 4a54 ldr r2, [pc, #336] ; (8004728 <DoKeyDN+0xca4>)
80045d6: 015b lsls r3, r3, #5
80045d8: 4413 add r3, r2
80045da: 3318 adds r3, #24
80045dc: edd3 7a00 vldr s15, [r3]
80045e0: ed9f 7a57 vldr s14, [pc, #348] ; 8004740 <DoKeyDN+0xcbc>
80045e4: eef4 7ac7 vcmpe.f32 s15, s14
80045e8: eef1 fa10 vmrs APSR_nzcv, fpscr
80045ec: db07 blt.n 80045fe <DoKeyDN+0xb7a>
pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f;
80045ee: 4b4d ldr r3, [pc, #308] ; (8004724 <DoKeyDN+0xca0>)
80045f0: 681b ldr r3, [r3, #0]
80045f2: 4a4d ldr r2, [pc, #308] ; (8004728 <DoKeyDN+0xca4>)
80045f4: 015b lsls r3, r3, #5
80045f6: 4413 add r3, r2
80045f8: 3318 adds r3, #24
80045fa: 4a52 ldr r2, [pc, #328] ; (8004744 <DoKeyDN+0xcc0>)
80045fc: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
80045fe: 4b49 ldr r3, [pc, #292] ; (8004724 <DoKeyDN+0xca0>)
8004600: 681b ldr r3, [r3, #0]
8004602: 4a49 ldr r2, [pc, #292] ; (8004728 <DoKeyDN+0xca4>)
8004604: 015b lsls r3, r3, #5
8004606: 4413 add r3, r2
8004608: 3318 adds r3, #24
800460a: edd3 7a00 vldr s15, [r3]
800460e: eeb0 0a67 vmov.f32 s0, s15
8004612: f000 f8fb bl 800480c <VerifyGain>
8004616: e0e7 b.n 80047e8 <DoKeyDN+0xd64>
}
else
if(menupos == Kpt_1 || menupos == Kpt_2 || menupos == Kpt_3 || menupos == Kpt_4)
8004618: 4b41 ldr r3, [pc, #260] ; (8004720 <DoKeyDN+0xc9c>)
800461a: 781b ldrb r3, [r3, #0]
800461c: b2db uxtb r3, r3
800461e: 2b07 cmp r3, #7
8004620: d00f beq.n 8004642 <DoKeyDN+0xbbe>
8004622: 4b3f ldr r3, [pc, #252] ; (8004720 <DoKeyDN+0xc9c>)
8004624: 781b ldrb r3, [r3, #0]
8004626: b2db uxtb r3, r3
8004628: 2b0f cmp r3, #15
800462a: d00a beq.n 8004642 <DoKeyDN+0xbbe>
800462c: 4b3c ldr r3, [pc, #240] ; (8004720 <DoKeyDN+0xc9c>)
800462e: 781b ldrb r3, [r3, #0]
8004630: b2db uxtb r3, r3
8004632: 2b17 cmp r3, #23
8004634: d005 beq.n 8004642 <DoKeyDN+0xbbe>
8004636: 4b3a ldr r3, [pc, #232] ; (8004720 <DoKeyDN+0xc9c>)
8004638: 781b ldrb r3, [r3, #0]
800463a: b2db uxtb r3, r3
800463c: 2b1f cmp r3, #31
800463e: f040 80d3 bne.w 80047e8 <DoKeyDN+0xd64>
{
if(ipt < 4) {
8004642: 687b ldr r3, [r7, #4]
8004644: 2b03 cmp r3, #3
8004646: d802 bhi.n 800464e <DoKeyDN+0xbca>
ipt++;
8004648: 687b ldr r3, [r7, #4]
800464a: 3301 adds r3, #1
800464c: 607b str r3, [r7, #4]
}
s = (uint32_t) (ikdt * 10000 + ikt * 1000 + iks * 100 + ikd * 10 + ike);
800464e: 69bb ldr r3, [r7, #24]
8004650: f242 7210 movw r2, #10000 ; 0x2710
8004654: fb02 f203 mul.w r2, r2, r3
8004658: 697b ldr r3, [r7, #20]
800465a: f44f 717a mov.w r1, #1000 ; 0x3e8
800465e: fb01 f303 mul.w r3, r1, r3
8004662: 18d1 adds r1, r2, r3
8004664: 68fa ldr r2, [r7, #12]
8004666: 4613 mov r3, r2
8004668: 009b lsls r3, r3, #2
800466a: 4413 add r3, r2
800466c: 005b lsls r3, r3, #1
800466e: 4618 mov r0, r3
8004670: 693b ldr r3, [r7, #16]
8004672: 2264 movs r2, #100 ; 0x64
8004674: fb02 f303 mul.w r3, r2, r3
8004678: 4403 add r3, r0
800467a: 18ca adds r2, r1, r3
800467c: 68bb ldr r3, [r7, #8]
800467e: 4413 add r3, r2
8004680: 61fb str r3, [r7, #28]
pardata.amplif[ACTIVE_CHANNEL].SENS = (float32_t) s;
8004682: 4b28 ldr r3, [pc, #160] ; (8004724 <DoKeyDN+0xca0>)
8004684: 681b ldr r3, [r3, #0]
8004686: 69fa ldr r2, [r7, #28]
8004688: ee07 2a90 vmov s15, r2
800468c: eef8 7a67 vcvt.f32.u32 s15, s15
8004690: 4a25 ldr r2, [pc, #148] ; (8004728 <DoKeyDN+0xca4>)
8004692: 015b lsls r3, r3, #5
8004694: 4413 add r3, r2
8004696: 3318 adds r3, #24
8004698: edc3 7a00 vstr s15, [r3]
if(ipt == 1) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.1f;
800469c: 687b ldr r3, [r7, #4]
800469e: 2b01 cmp r3, #1
80046a0: d112 bne.n 80046c8 <DoKeyDN+0xc44>
80046a2: 4b20 ldr r3, [pc, #128] ; (8004724 <DoKeyDN+0xca0>)
80046a4: 681b ldr r3, [r3, #0]
80046a6: 4920 ldr r1, [pc, #128] ; (8004728 <DoKeyDN+0xca4>)
80046a8: 015a lsls r2, r3, #5
80046aa: 440a add r2, r1
80046ac: 3218 adds r2, #24
80046ae: edd2 7a00 vldr s15, [r2]
80046b2: ed9f 7a1e vldr s14, [pc, #120] ; 800472c <DoKeyDN+0xca8>
80046b6: ee67 7a87 vmul.f32 s15, s15, s14
80046ba: 4a1b ldr r2, [pc, #108] ; (8004728 <DoKeyDN+0xca4>)
80046bc: 015b lsls r3, r3, #5
80046be: 4413 add r3, r2
80046c0: 3318 adds r3, #24
80046c2: edc3 7a00 vstr s15, [r3]
80046c6: e054 b.n 8004772 <DoKeyDN+0xcee>
else if(ipt == 2) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.01f;
80046c8: 687b ldr r3, [r7, #4]
80046ca: 2b02 cmp r3, #2
80046cc: d112 bne.n 80046f4 <DoKeyDN+0xc70>
80046ce: 4b15 ldr r3, [pc, #84] ; (8004724 <DoKeyDN+0xca0>)
80046d0: 681b ldr r3, [r3, #0]
80046d2: 4915 ldr r1, [pc, #84] ; (8004728 <DoKeyDN+0xca4>)
80046d4: 015a lsls r2, r3, #5
80046d6: 440a add r2, r1
80046d8: 3218 adds r2, #24
80046da: edd2 7a00 vldr s15, [r2]
80046de: ed9f 7a14 vldr s14, [pc, #80] ; 8004730 <DoKeyDN+0xcac>
80046e2: ee67 7a87 vmul.f32 s15, s15, s14
80046e6: 4a10 ldr r2, [pc, #64] ; (8004728 <DoKeyDN+0xca4>)
80046e8: 015b lsls r3, r3, #5
80046ea: 4413 add r3, r2
80046ec: 3318 adds r3, #24
80046ee: edc3 7a00 vstr s15, [r3]
80046f2: e03e b.n 8004772 <DoKeyDN+0xcee>
else if(ipt == 3) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.001f;
80046f4: 687b ldr r3, [r7, #4]
80046f6: 2b03 cmp r3, #3
80046f8: d126 bne.n 8004748 <DoKeyDN+0xcc4>
80046fa: 4b0a ldr r3, [pc, #40] ; (8004724 <DoKeyDN+0xca0>)
80046fc: 681b ldr r3, [r3, #0]
80046fe: 490a ldr r1, [pc, #40] ; (8004728 <DoKeyDN+0xca4>)
8004700: 015a lsls r2, r3, #5
8004702: 440a add r2, r1
8004704: 3218 adds r2, #24
8004706: edd2 7a00 vldr s15, [r2]
800470a: ed9f 7a0a vldr s14, [pc, #40] ; 8004734 <DoKeyDN+0xcb0>
800470e: ee67 7a87 vmul.f32 s15, s15, s14
8004712: 4a05 ldr r2, [pc, #20] ; (8004728 <DoKeyDN+0xca4>)
8004714: 015b lsls r3, r3, #5
8004716: 4413 add r3, r2
8004718: 3318 adds r3, #24
800471a: edc3 7a00 vstr s15, [r3]
800471e: e028 b.n 8004772 <DoKeyDN+0xcee>
8004720: 20020010 .word 0x20020010
8004724: 2006ba68 .word 0x2006ba68
8004728: 2006bca8 .word 0x2006bca8
800472c: 3dcccccd .word 0x3dcccccd
8004730: 3c23d70a .word 0x3c23d70a
8004734: 3a83126f .word 0x3a83126f
8004738: 38d1b717 .word 0x38d1b717
800473c: 3a83126f .word 0x3a83126f
8004740: 461c4000 .word 0x461c4000
8004744: 461c3c00 .word 0x461c3c00
else if(ipt == 4) pardata.amplif[ACTIVE_CHANNEL].SENS *= 0.0001f;
8004748: 687b ldr r3, [r7, #4]
800474a: 2b04 cmp r3, #4
800474c: d111 bne.n 8004772 <DoKeyDN+0xcee>
800474e: 4b28 ldr r3, [pc, #160] ; (80047f0 <DoKeyDN+0xd6c>)
8004750: 681b ldr r3, [r3, #0]
8004752: 4928 ldr r1, [pc, #160] ; (80047f4 <DoKeyDN+0xd70>)
8004754: 015a lsls r2, r3, #5
8004756: 440a add r2, r1
8004758: 3218 adds r2, #24
800475a: edd2 7a00 vldr s15, [r2]
800475e: ed9f 7a26 vldr s14, [pc, #152] ; 80047f8 <DoKeyDN+0xd74>
8004762: ee67 7a87 vmul.f32 s15, s15, s14
8004766: 4a23 ldr r2, [pc, #140] ; (80047f4 <DoKeyDN+0xd70>)
8004768: 015b lsls r3, r3, #5
800476a: 4413 add r3, r2
800476c: 3318 adds r3, #24
800476e: edc3 7a00 vstr s15, [r3]
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 0.0010f) { //<2F><><EF><EE><EF><F0><E0><E2>
8004772: 4b1f ldr r3, [pc, #124] ; (80047f0 <DoKeyDN+0xd6c>)
8004774: 681b ldr r3, [r3, #0]
8004776: 4a1f ldr r2, [pc, #124] ; (80047f4 <DoKeyDN+0xd70>)
8004778: 015b lsls r3, r3, #5
800477a: 4413 add r3, r2
800477c: 3318 adds r3, #24
800477e: edd3 7a00 vldr s15, [r3]
8004782: ed9f 7a1e vldr s14, [pc, #120] ; 80047fc <DoKeyDN+0xd78>
8004786: eef4 7ac7 vcmpe.f32 s15, s14
800478a: eef1 fa10 vmrs APSR_nzcv, fpscr
800478e: d507 bpl.n 80047a0 <DoKeyDN+0xd1c>
pardata.amplif[ACTIVE_CHANNEL].SENS = 0.0010f;
8004790: 4b17 ldr r3, [pc, #92] ; (80047f0 <DoKeyDN+0xd6c>)
8004792: 681b ldr r3, [r3, #0]
8004794: 4a17 ldr r2, [pc, #92] ; (80047f4 <DoKeyDN+0xd70>)
8004796: 015b lsls r3, r3, #5
8004798: 4413 add r3, r2
800479a: 3318 adds r3, #24
800479c: 4a18 ldr r2, [pc, #96] ; (8004800 <DoKeyDN+0xd7c>)
800479e: 601a str r2, [r3, #0]
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 10000.0f) {
80047a0: 4b13 ldr r3, [pc, #76] ; (80047f0 <DoKeyDN+0xd6c>)
80047a2: 681b ldr r3, [r3, #0]
80047a4: 4a13 ldr r2, [pc, #76] ; (80047f4 <DoKeyDN+0xd70>)
80047a6: 015b lsls r3, r3, #5
80047a8: 4413 add r3, r2
80047aa: 3318 adds r3, #24
80047ac: edd3 7a00 vldr s15, [r3]
80047b0: ed9f 7a14 vldr s14, [pc, #80] ; 8004804 <DoKeyDN+0xd80>
80047b4: eef4 7ac7 vcmpe.f32 s15, s14
80047b8: eef1 fa10 vmrs APSR_nzcv, fpscr
80047bc: db07 blt.n 80047ce <DoKeyDN+0xd4a>
pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f;
80047be: 4b0c ldr r3, [pc, #48] ; (80047f0 <DoKeyDN+0xd6c>)
80047c0: 681b ldr r3, [r3, #0]
80047c2: 4a0c ldr r2, [pc, #48] ; (80047f4 <DoKeyDN+0xd70>)
80047c4: 015b lsls r3, r3, #5
80047c6: 4413 add r3, r2
80047c8: 3318 adds r3, #24
80047ca: 4a0f ldr r2, [pc, #60] ; (8004808 <DoKeyDN+0xd84>)
80047cc: 601a str r2, [r3, #0]
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
80047ce: 4b08 ldr r3, [pc, #32] ; (80047f0 <DoKeyDN+0xd6c>)
80047d0: 681b ldr r3, [r3, #0]
80047d2: 4a08 ldr r2, [pc, #32] ; (80047f4 <DoKeyDN+0xd70>)
80047d4: 015b lsls r3, r3, #5
80047d6: 4413 add r3, r2
80047d8: 3318 adds r3, #24
80047da: edd3 7a00 vldr s15, [r3]
80047de: eeb0 0a67 vmov.f32 s0, s15
80047e2: f000 f813 bl 800480c <VerifyGain>
pardata.amplif[ACTIVE_CHANNEL].SENS = 9999.0f;
}
VerifyGain(pardata.amplif[ACTIVE_CHANNEL].SENS);
}*/
}
80047e6: e7ff b.n 80047e8 <DoKeyDN+0xd64>
80047e8: bf00 nop
80047ea: 3720 adds r7, #32
80047ec: 46bd mov sp, r7
80047ee: bd80 pop {r7, pc}
80047f0: 2006ba68 .word 0x2006ba68
80047f4: 2006bca8 .word 0x2006bca8
80047f8: 38d1b717 .word 0x38d1b717
80047fc: 3a83126f .word 0x3a83126f
8004800: 3a83126f .word 0x3a83126f
8004804: 461c4000 .word 0x461c4000
8004808: 461c3c00 .word 0x461c3c00
0800480c <VerifyGain>:
void VerifyGain(float32_t sens)
{
800480c: b480 push {r7}
800480e: b083 sub sp, #12
8004810: af00 add r7, sp, #0
8004812: ed87 0a01 vstr s0, [r7, #4]
return; //!!!<21><><CE><F2><EA><EB><FE><F7>
8004816: bf00 nop
if(pardata.amplif[ACTIVE_CHANNEL].IKU > Ku0_1)
{
pardata.amplif[ACTIVE_CHANNEL].IKU = Ku0_1;
}
}
}
8004818: 370c adds r7, #12
800481a: 46bd mov sp, r7
800481c: f85d 7b04 ldr.w r7, [sp], #4
8004820: 4770 bx lr
...
08004824 <LTDC_Reset>:
}
void LTDC_Reset(void)
{
8004824: b580 push {r7, lr}
8004826: af00 add r7, sp, #0
HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_SET); HAL_Delay(100);
8004828: 2201 movs r2, #1
800482a: 2140 movs r1, #64 ; 0x40
800482c: 480b ldr r0, [pc, #44] ; (800485c <LTDC_Reset+0x38>)
800482e: f00e fa0d bl 8012c4c <HAL_GPIO_WritePin>
8004832: 2064 movs r0, #100 ; 0x64
8004834: f00c fede bl 80115f4 <HAL_Delay>
HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_RESET); HAL_Delay(100);
8004838: 2200 movs r2, #0
800483a: 2140 movs r1, #64 ; 0x40
800483c: 4807 ldr r0, [pc, #28] ; (800485c <LTDC_Reset+0x38>)
800483e: f00e fa05 bl 8012c4c <HAL_GPIO_WritePin>
8004842: 2064 movs r0, #100 ; 0x64
8004844: f00c fed6 bl 80115f4 <HAL_Delay>
HAL_GPIO_WritePin(RESET_GPIO_Port, RESET_Pin, GPIO_PIN_SET); HAL_Delay(100);
8004848: 2201 movs r2, #1
800484a: 2140 movs r1, #64 ; 0x40
800484c: 4803 ldr r0, [pc, #12] ; (800485c <LTDC_Reset+0x38>)
800484e: f00e f9fd bl 8012c4c <HAL_GPIO_WritePin>
8004852: 2064 movs r0, #100 ; 0x64
8004854: f00c fece bl 80115f4 <HAL_Delay>
}
8004858: bf00 nop
800485a: bd80 pop {r7, pc}
800485c: 40020c00 .word 0x40020c00
08004860 <MX_LTDC_Init>:
/* LTDC init function */
void MX_LTDC_Init(void)
{
8004860: b580 push {r7, lr}
8004862: b09c sub sp, #112 ; 0x70
8004864: af00 add r7, sp, #0
__IO uint32_t tickstart;
// SET_BIT(RCC->CR, RCC_CR_PLLSAION);
// HAL_Delay(100);
LTDC_Reset();
8004866: f7ff ffdd bl 8004824 <LTDC_Reset>
__HAL_RCC_PLLSAI_ENABLE();
800486a: 4a8c ldr r2, [pc, #560] ; (8004a9c <MX_LTDC_Init+0x23c>)
800486c: 4b8b ldr r3, [pc, #556] ; (8004a9c <MX_LTDC_Init+0x23c>)
800486e: 681b ldr r3, [r3, #0]
8004870: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
8004874: 6013 str r3, [r2, #0]
tickstart = HAL_GetTick();
8004876: f00c feb1 bl 80115dc <HAL_GetTick>
800487a: 4603 mov r3, r0
800487c: 607b str r3, [r7, #4]
while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET)
800487e: e008 b.n 8004892 <MX_LTDC_Init+0x32>
{
if((HAL_GetTick() - tickstart) >= PLLSAI_TIMEOUT_VALUE) {
8004880: f00c feac bl 80115dc <HAL_GetTick>
8004884: 4602 mov r2, r0
8004886: 687b ldr r3, [r7, #4]
8004888: 1ad3 subs r3, r2, r3
800488a: 2b63 cmp r3, #99 ; 0x63
800488c: d901 bls.n 8004892 <MX_LTDC_Init+0x32>
Error_Handler();
800488e: f001 fae9 bl 8005e64 <Error_Handler>
while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET)
8004892: 4b82 ldr r3, [pc, #520] ; (8004a9c <MX_LTDC_Init+0x23c>)
8004894: 681b ldr r3, [r3, #0]
8004896: f003 5300 and.w r3, r3, #536870912 ; 0x20000000
800489a: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000
800489e: d1ef bne.n 8004880 <MX_LTDC_Init+0x20>
}
}
hLtdcHandler.Instance = LTDC;
80048a0: 4b7f ldr r3, [pc, #508] ; (8004aa0 <MX_LTDC_Init+0x240>)
80048a2: 4a80 ldr r2, [pc, #512] ; (8004aa4 <MX_LTDC_Init+0x244>)
80048a4: 601a str r2, [r3, #0]
hLtdcHandler.Init.HSPolarity = LTDC_HSPOLARITY_AL;
80048a6: 4b7e ldr r3, [pc, #504] ; (8004aa0 <MX_LTDC_Init+0x240>)
80048a8: 2200 movs r2, #0
80048aa: 605a str r2, [r3, #4]
hLtdcHandler.Init.VSPolarity = LTDC_VSPOLARITY_AL;
80048ac: 4b7c ldr r3, [pc, #496] ; (8004aa0 <MX_LTDC_Init+0x240>)
80048ae: 2200 movs r2, #0
80048b0: 609a str r2, [r3, #8]
hLtdcHandler.Init.DEPolarity = LTDC_DEPOLARITY_AH;
80048b2: 4b7b ldr r3, [pc, #492] ; (8004aa0 <MX_LTDC_Init+0x240>)
80048b4: f04f 5200 mov.w r2, #536870912 ; 0x20000000
80048b8: 60da str r2, [r3, #12]
hLtdcHandler.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
80048ba: 4b79 ldr r3, [pc, #484] ; (8004aa0 <MX_LTDC_Init+0x240>)
80048bc: 2200 movs r2, #0
80048be: 611a str r2, [r3, #16]
hLtdcHandler.Init.HorizontalSync = 38;
80048c0: 4b77 ldr r3, [pc, #476] ; (8004aa0 <MX_LTDC_Init+0x240>)
80048c2: 2226 movs r2, #38 ; 0x26
80048c4: 615a str r2, [r3, #20]
hLtdcHandler.Init.VerticalSync = 4;
80048c6: 4b76 ldr r3, [pc, #472] ; (8004aa0 <MX_LTDC_Init+0x240>)
80048c8: 2204 movs r2, #4
80048ca: 619a str r2, [r3, #24]
hLtdcHandler.Init.AccumulatedHBP = 68;
80048cc: 4b74 ldr r3, [pc, #464] ; (8004aa0 <MX_LTDC_Init+0x240>)
80048ce: 2244 movs r2, #68 ; 0x44
80048d0: 61da str r2, [r3, #28]
hLtdcHandler.Init.AccumulatedVBP = 18;
80048d2: 4b73 ldr r3, [pc, #460] ; (8004aa0 <MX_LTDC_Init+0x240>)
80048d4: 2212 movs r2, #18
80048d6: 621a str r2, [r3, #32]
hLtdcHandler.Init.AccumulatedActiveW = 388;
80048d8: 4b71 ldr r3, [pc, #452] ; (8004aa0 <MX_LTDC_Init+0x240>)
80048da: f44f 72c2 mov.w r2, #388 ; 0x184
80048de: 625a str r2, [r3, #36] ; 0x24
hLtdcHandler.Init.AccumulatedActiveH = 262;
80048e0: 4b6f ldr r3, [pc, #444] ; (8004aa0 <MX_LTDC_Init+0x240>)
80048e2: f44f 7283 mov.w r2, #262 ; 0x106
80048e6: 629a str r2, [r3, #40] ; 0x28
hLtdcHandler.Init.TotalWidth = 408;
80048e8: 4b6d ldr r3, [pc, #436] ; (8004aa0 <MX_LTDC_Init+0x240>)
80048ea: f44f 72cc mov.w r2, #408 ; 0x198
80048ee: 62da str r2, [r3, #44] ; 0x2c
hLtdcHandler.Init.TotalHeigh = 263;
80048f0: 4b6b ldr r3, [pc, #428] ; (8004aa0 <MX_LTDC_Init+0x240>)
80048f2: f240 1207 movw r2, #263 ; 0x107
80048f6: 631a str r2, [r3, #48] ; 0x30
hLtdcHandler.Init.Backcolor.Blue = 0;
80048f8: 4b69 ldr r3, [pc, #420] ; (8004aa0 <MX_LTDC_Init+0x240>)
80048fa: 2200 movs r2, #0
80048fc: f883 2034 strb.w r2, [r3, #52] ; 0x34
hLtdcHandler.Init.Backcolor.Green = 0;
8004900: 4b67 ldr r3, [pc, #412] ; (8004aa0 <MX_LTDC_Init+0x240>)
8004902: 2200 movs r2, #0
8004904: f883 2035 strb.w r2, [r3, #53] ; 0x35
hLtdcHandler.Init.Backcolor.Red = 0;
8004908: 4b65 ldr r3, [pc, #404] ; (8004aa0 <MX_LTDC_Init+0x240>)
800490a: 2200 movs r2, #0
800490c: f883 2036 strb.w r2, [r3, #54] ; 0x36
if (HAL_LTDC_Init(&hLtdcHandler) != HAL_OK) {
8004910: 4863 ldr r0, [pc, #396] ; (8004aa0 <MX_LTDC_Init+0x240>)
8004912: f00e f9cd bl 8012cb0 <HAL_LTDC_Init>
8004916: 4603 mov r3, r0
8004918: 2b00 cmp r3, #0
800491a: d001 beq.n 8004920 <MX_LTDC_Init+0xc0>
Error_Handler();
800491c: f001 faa2 bl 8005e64 <Error_Handler>
}
pLayerCfg.WindowX0 = 0;
8004920: 2300 movs r3, #0
8004922: 63fb str r3, [r7, #60] ; 0x3c
pLayerCfg.WindowX1 = 320;
8004924: f44f 73a0 mov.w r3, #320 ; 0x140
8004928: 643b str r3, [r7, #64] ; 0x40
pLayerCfg.WindowY0 = 0;
800492a: 2300 movs r3, #0
800492c: 647b str r3, [r7, #68] ; 0x44
pLayerCfg.WindowY1 = 240;
800492e: 23f0 movs r3, #240 ; 0xf0
8004930: 64bb str r3, [r7, #72] ; 0x48
pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
8004932: 2302 movs r3, #2
8004934: 64fb str r3, [r7, #76] ; 0x4c
pLayerCfg.Alpha = 255;
8004936: 23ff movs r3, #255 ; 0xff
8004938: 653b str r3, [r7, #80] ; 0x50
pLayerCfg.Alpha0 = 0;
800493a: 2300 movs r3, #0
800493c: 657b str r3, [r7, #84] ; 0x54
pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
800493e: f44f 63c0 mov.w r3, #1536 ; 0x600
8004942: 65bb str r3, [r7, #88] ; 0x58
pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
8004944: 2307 movs r3, #7
8004946: 65fb str r3, [r7, #92] ; 0x5c
pLayerCfg.FBStartAdress = (uint32_t) &LAYER_1[0];
8004948: 4b57 ldr r3, [pc, #348] ; (8004aa8 <MX_LTDC_Init+0x248>)
800494a: 663b str r3, [r7, #96] ; 0x60
pLayerCfg.ImageWidth = 320;
800494c: f44f 73a0 mov.w r3, #320 ; 0x140
8004950: 667b str r3, [r7, #100] ; 0x64
pLayerCfg.ImageHeight = 240;
8004952: 23f0 movs r3, #240 ; 0xf0
8004954: 66bb str r3, [r7, #104] ; 0x68
pLayerCfg.Backcolor.Blue = 0;
8004956: 2300 movs r3, #0
8004958: f887 306c strb.w r3, [r7, #108] ; 0x6c
pLayerCfg.Backcolor.Green = 0;
800495c: 2300 movs r3, #0
800495e: f887 306d strb.w r3, [r7, #109] ; 0x6d
pLayerCfg.Backcolor.Red = 0;
8004962: 2300 movs r3, #0
8004964: f887 306e strb.w r3, [r7, #110] ; 0x6e
if(HAL_LTDC_ConfigLayer(&hLtdcHandler, &pLayerCfg, 0) != HAL_OK) {
8004968: f107 033c add.w r3, r7, #60 ; 0x3c
800496c: 2200 movs r2, #0
800496e: 4619 mov r1, r3
8004970: 484b ldr r0, [pc, #300] ; (8004aa0 <MX_LTDC_Init+0x240>)
8004972: f00e fb25 bl 8012fc0 <HAL_LTDC_ConfigLayer>
8004976: 4603 mov r3, r0
8004978: 2b00 cmp r3, #0
800497a: d001 beq.n 8004980 <MX_LTDC_Init+0x120>
Error_Handler();
800497c: f001 fa72 bl 8005e64 <Error_Handler>
}
pLayerCfg1.WindowX0 = 0;
8004980: 2300 movs r3, #0
8004982: 60bb str r3, [r7, #8]
pLayerCfg1.WindowX1 = 320;
8004984: f44f 73a0 mov.w r3, #320 ; 0x140
8004988: 60fb str r3, [r7, #12]
pLayerCfg1.WindowY0 = 0;
800498a: 2300 movs r3, #0
800498c: 613b str r3, [r7, #16]
pLayerCfg1.WindowY1 = 240;
800498e: 23f0 movs r3, #240 ; 0xf0
8004990: 617b str r3, [r7, #20]
pLayerCfg1.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
8004992: 2302 movs r3, #2
8004994: 61bb str r3, [r7, #24]
pLayerCfg1.Alpha = 255;
8004996: 23ff movs r3, #255 ; 0xff
8004998: 61fb str r3, [r7, #28]
pLayerCfg1.Alpha0 = 0;
800499a: 2300 movs r3, #0
800499c: 623b str r3, [r7, #32]
pLayerCfg1.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
800499e: f44f 63c0 mov.w r3, #1536 ; 0x600
80049a2: 627b str r3, [r7, #36] ; 0x24
pLayerCfg1.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
80049a4: 2307 movs r3, #7
80049a6: 62bb str r3, [r7, #40] ; 0x28
pLayerCfg1.FBStartAdress = (uint32_t) &LAYER_2[0];
80049a8: 4b40 ldr r3, [pc, #256] ; (8004aac <MX_LTDC_Init+0x24c>)
80049aa: 62fb str r3, [r7, #44] ; 0x2c
pLayerCfg1.ImageWidth = 320;
80049ac: f44f 73a0 mov.w r3, #320 ; 0x140
80049b0: 633b str r3, [r7, #48] ; 0x30
pLayerCfg1.ImageHeight = 240;
80049b2: 23f0 movs r3, #240 ; 0xf0
80049b4: 637b str r3, [r7, #52] ; 0x34
pLayerCfg1.Backcolor.Blue = 0;
80049b6: 2300 movs r3, #0
80049b8: f887 3038 strb.w r3, [r7, #56] ; 0x38
pLayerCfg1.Backcolor.Green = 0;
80049bc: 2300 movs r3, #0
80049be: f887 3039 strb.w r3, [r7, #57] ; 0x39
pLayerCfg1.Backcolor.Red = 0;
80049c2: 2300 movs r3, #0
80049c4: f887 303a strb.w r3, [r7, #58] ; 0x3a
if(HAL_LTDC_ConfigLayer(&hLtdcHandler, &pLayerCfg1, 1) != HAL_OK) {
80049c8: f107 0308 add.w r3, r7, #8
80049cc: 2201 movs r2, #1
80049ce: 4619 mov r1, r3
80049d0: 4833 ldr r0, [pc, #204] ; (8004aa0 <MX_LTDC_Init+0x240>)
80049d2: f00e faf5 bl 8012fc0 <HAL_LTDC_ConfigLayer>
80049d6: 4603 mov r3, r0
80049d8: 2b00 cmp r3, #0
80049da: d001 beq.n 80049e0 <MX_LTDC_Init+0x180>
Error_Handler();
80049dc: f001 fa42 bl 8005e64 <Error_Handler>
}
//HAL_LTDC_EnableCLUT(&hLtdcHandler, 0);
//HAL_LTDC_EnableCLUT(&hLtdcHandler, 1);
ActiveLayer = 1;
80049e0: 4b33 ldr r3, [pc, #204] ; (8004ab0 <MX_LTDC_Init+0x250>)
80049e2: 2201 movs r2, #1
80049e4: 601a str r2, [r3, #0]
RenderingLayer = 0;
80049e6: 4b33 ldr r3, [pc, #204] ; (8004ab4 <MX_LTDC_Init+0x254>)
80049e8: 2200 movs r2, #0
80049ea: 601a str r2, [r3, #0]
BSP_LCD_DisplayOff();
80049ec: f000 f87a bl 8004ae4 <BSP_LCD_DisplayOff>
BSP_LCD_SelectLayer(0);
80049f0: 2000 movs r0, #0
80049f2: f000 f961 bl 8004cb8 <BSP_LCD_SelectLayer>
BSP_LCD_Clear(0xFF000000);
80049f6: f04f 407f mov.w r0, #4278190080 ; 0xff000000
80049fa: f000 fa3f bl 8004e7c <BSP_LCD_Clear>
BSP_LCD_SelectLayer(1);
80049fe: 2001 movs r0, #1
8004a00: f000 f95a bl 8004cb8 <BSP_LCD_SelectLayer>
BSP_LCD_Clear(0xFF000000);
8004a04: f04f 407f mov.w r0, #4278190080 ; 0xff000000
8004a08: f000 fa38 bl 8004e7c <BSP_LCD_Clear>
BSP_LCD_SetLayerVisible(RenderingLayer, DISABLE);
8004a0c: 4b29 ldr r3, [pc, #164] ; (8004ab4 <MX_LTDC_Init+0x254>)
8004a0e: 681b ldr r3, [r3, #0]
8004a10: 2100 movs r1, #0
8004a12: 4618 mov r0, r3
8004a14: f000 f960 bl 8004cd8 <BSP_LCD_SetLayerVisible>
BSP_LCD_SetLayerVisible(ActiveLayer, DISABLE);
8004a18: 4b25 ldr r3, [pc, #148] ; (8004ab0 <MX_LTDC_Init+0x250>)
8004a1a: 681b ldr r3, [r3, #0]
8004a1c: 2100 movs r1, #0
8004a1e: 4618 mov r0, r3
8004a20: f000 f95a bl 8004cd8 <BSP_LCD_SetLayerVisible>
HAL_LTDC_Reload(&hLtdcHandler, LTDC_RELOAD_IMMEDIATE);
8004a24: 2101 movs r1, #1
8004a26: 481e ldr r0, [pc, #120] ; (8004aa0 <MX_LTDC_Init+0x240>)
8004a28: f00e fb40 bl 80130ac <HAL_LTDC_Reload>
DrawProp[0].BackColor = LCD_COLOR_BLACK;
8004a2c: 4b22 ldr r3, [pc, #136] ; (8004ab8 <MX_LTDC_Init+0x258>)
8004a2e: f04f 427f mov.w r2, #4278190080 ; 0xff000000
8004a32: 605a str r2, [r3, #4]
DrawProp[0].pFont = &Font17;
8004a34: 4b20 ldr r3, [pc, #128] ; (8004ab8 <MX_LTDC_Init+0x258>)
8004a36: 4a21 ldr r2, [pc, #132] ; (8004abc <MX_LTDC_Init+0x25c>)
8004a38: 609a str r2, [r3, #8]
DrawProp[0].TextColor = LCD_COLOR_WHITE;
8004a3a: 4b1f ldr r3, [pc, #124] ; (8004ab8 <MX_LTDC_Init+0x258>)
8004a3c: f04f 32ff mov.w r2, #4294967295
8004a40: 601a str r2, [r3, #0]
DrawProp[1].BackColor = LCD_COLOR_BLACK;
8004a42: 4b1d ldr r3, [pc, #116] ; (8004ab8 <MX_LTDC_Init+0x258>)
8004a44: f04f 427f mov.w r2, #4278190080 ; 0xff000000
8004a48: 611a str r2, [r3, #16]
DrawProp[1].pFont = &Font17;
8004a4a: 4b1b ldr r3, [pc, #108] ; (8004ab8 <MX_LTDC_Init+0x258>)
8004a4c: 4a1b ldr r2, [pc, #108] ; (8004abc <MX_LTDC_Init+0x25c>)
8004a4e: 615a str r2, [r3, #20]
DrawProp[1].TextColor = LCD_COLOR_WHITE;
8004a50: 4b19 ldr r3, [pc, #100] ; (8004ab8 <MX_LTDC_Init+0x258>)
8004a52: f04f 32ff mov.w r2, #4294967295
8004a56: 60da str r2, [r3, #12]
CurrentFont = &Font17;
8004a58: 4b19 ldr r3, [pc, #100] ; (8004ac0 <MX_LTDC_Init+0x260>)
8004a5a: 4a18 ldr r2, [pc, #96] ; (8004abc <MX_LTDC_Init+0x25c>)
8004a5c: 601a str r2, [r3, #0]
BSP_LCD_DisplayOn();
8004a5e: f000 f835 bl 8004acc <BSP_LCD_DisplayOn>
HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_SET); // BACKLIGHT IS OFF
8004a62: 2201 movs r2, #1
8004a64: f44f 7180 mov.w r1, #256 ; 0x100
8004a68: 4816 ldr r0, [pc, #88] ; (8004ac4 <MX_LTDC_Init+0x264>)
8004a6a: f00e f8ef bl 8012c4c <HAL_GPIO_WritePin>
RefreshScreen = true;
8004a6e: 4b16 ldr r3, [pc, #88] ; (8004ac8 <MX_LTDC_Init+0x268>)
8004a70: 2201 movs r2, #1
8004a72: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 255);
8004a74: 21ff movs r1, #255 ; 0xff
8004a76: 480a ldr r0, [pc, #40] ; (8004aa0 <MX_LTDC_Init+0x240>)
8004a78: f00e fae0 bl 801303c <HAL_LTDC_ProgramLineEvent>
while(RefreshScreen);
8004a7c: bf00 nop
8004a7e: 4b12 ldr r3, [pc, #72] ; (8004ac8 <MX_LTDC_Init+0x268>)
8004a80: 781b ldrb r3, [r3, #0]
8004a82: b2db uxtb r3, r3
8004a84: 2b00 cmp r3, #0
8004a86: d1fa bne.n 8004a7e <MX_LTDC_Init+0x21e>
BSP_LCD_SetLayerVisible(RenderingLayer, ENABLE);
8004a88: 4b0a ldr r3, [pc, #40] ; (8004ab4 <MX_LTDC_Init+0x254>)
8004a8a: 681b ldr r3, [r3, #0]
8004a8c: 2101 movs r1, #1
8004a8e: 4618 mov r0, r3
8004a90: f000 f922 bl 8004cd8 <BSP_LCD_SetLayerVisible>
}
8004a94: bf00 nop
8004a96: 3770 adds r7, #112 ; 0x70
8004a98: 46bd mov sp, r7
8004a9a: bd80 pop {r7, pc}
8004a9c: 40023800 .word 0x40023800
8004aa0: 2006c174 .word 0x2006c174
8004aa4: 40016800 .word 0x40016800
8004aa8: 200209ec .word 0x200209ec
8004aac: 200461ec .word 0x200461ec
8004ab0: 20020018 .word 0x20020018
8004ab4: 2006ba5c .word 0x2006ba5c
8004ab8: 2006ba44 .word 0x2006ba44
8004abc: 20020008 .word 0x20020008
8004ac0: 2006c170 .word 0x2006c170
8004ac4: 40020000 .word 0x40020000
8004ac8: 2006ba60 .word 0x2006ba60
08004acc <BSP_LCD_DisplayOn>:
void BSP_LCD_DisplayOn(void)
{
8004acc: b580 push {r7, lr}
8004ace: af00 add r7, sp, #0
//__HAL_LTDC_ENABLE(&hLtdcHandler);
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_SET); // DISPLAY_ON
8004ad0: 2201 movs r2, #1
8004ad2: f44f 6180 mov.w r1, #1024 ; 0x400
8004ad6: 4802 ldr r0, [pc, #8] ; (8004ae0 <BSP_LCD_DisplayOn+0x14>)
8004ad8: f00e f8b8 bl 8012c4c <HAL_GPIO_WritePin>
}
8004adc: bf00 nop
8004ade: bd80 pop {r7, pc}
8004ae0: 40021400 .word 0x40021400
08004ae4 <BSP_LCD_DisplayOff>:
/**
* @brief Disables the display.
* @retval None
*/
void BSP_LCD_DisplayOff(void)
{
8004ae4: b580 push {r7, lr}
8004ae6: af00 add r7, sp, #0
//__HAL_LTDC_DISABLE(&hLtdcHandler);
HAL_GPIO_WritePin(GPIOF, GPIO_PIN_10, GPIO_PIN_RESET); // DISPLAY_OFF
8004ae8: 2200 movs r2, #0
8004aea: f44f 6180 mov.w r1, #1024 ; 0x400
8004aee: 4802 ldr r0, [pc, #8] ; (8004af8 <BSP_LCD_DisplayOff+0x14>)
8004af0: f00e f8ac bl 8012c4c <HAL_GPIO_WritePin>
}
8004af4: bf00 nop
8004af6: bd80 pop {r7, pc}
8004af8: 40021400 .word 0x40021400
08004afc <HAL_LTDC_MspInit>:
void HAL_LTDC_MspInit(LTDC_HandleTypeDef* ltdcHandle)
{
8004afc: b580 push {r7, lr}
8004afe: b088 sub sp, #32
8004b00: af00 add r7, sp, #0
8004b02: 6078 str r0, [r7, #4]
GPIO_InitTypeDef GPIO_InitStruct;
if(ltdcHandle->Instance == LTDC)
8004b04: 687b ldr r3, [r7, #4]
8004b06: 681b ldr r3, [r3, #0]
8004b08: 4a4f ldr r2, [pc, #316] ; (8004c48 <HAL_LTDC_MspInit+0x14c>)
8004b0a: 4293 cmp r3, r2
8004b0c: f040 8097 bne.w 8004c3e <HAL_LTDC_MspInit+0x142>
{
__HAL_RCC_LTDC_CLK_ENABLE();
8004b10: 4a4e ldr r2, [pc, #312] ; (8004c4c <HAL_LTDC_MspInit+0x150>)
8004b12: 4b4e ldr r3, [pc, #312] ; (8004c4c <HAL_LTDC_MspInit+0x150>)
8004b14: 6c5b ldr r3, [r3, #68] ; 0x44
8004b16: f043 6380 orr.w r3, r3, #67108864 ; 0x4000000
8004b1a: 6453 str r3, [r2, #68] ; 0x44
8004b1c: 4b4b ldr r3, [pc, #300] ; (8004c4c <HAL_LTDC_MspInit+0x150>)
8004b1e: 6c5b ldr r3, [r3, #68] ; 0x44
8004b20: f003 6380 and.w r3, r3, #67108864 ; 0x4000000
8004b24: 60bb str r3, [r7, #8]
8004b26: 68bb ldr r3, [r7, #8]
PG7 ------> LTDC_CLK
PG10 ------> LTDC_G3
PG11 ------> LTDC_B3
PG12 ------> LTDC_B4 */
GPIO_InitStruct.Pin = GPIO_PIN_10;
8004b28: f44f 6380 mov.w r3, #1024 ; 0x400
8004b2c: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
8004b2e: 2301 movs r3, #1
8004b30: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004b32: 2300 movs r3, #0
8004b34: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004b36: 2303 movs r3, #3
8004b38: 61bb str r3, [r7, #24]
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
8004b3a: f107 030c add.w r3, r7, #12
8004b3e: 4619 mov r1, r3
8004b40: 4843 ldr r0, [pc, #268] ; (8004c50 <HAL_LTDC_MspInit+0x154>)
8004b42: f00d fec1 bl 80128c8 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_6 | GPIO_PIN_11 |GPIO_PIN_12;
8004b46: f641 0358 movw r3, #6232 ; 0x1858
8004b4a: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004b4c: 2302 movs r3, #2
8004b4e: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004b50: 2300 movs r3, #0
8004b52: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004b54: 2303 movs r3, #3
8004b56: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
8004b58: 230e movs r3, #14
8004b5a: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
8004b5c: f107 030c add.w r3, r7, #12
8004b60: 4619 mov r1, r3
8004b62: 483c ldr r0, [pc, #240] ; (8004c54 <HAL_LTDC_MspInit+0x158>)
8004b64: f00d feb0 bl 80128c8 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1;
8004b68: 2303 movs r3, #3
8004b6a: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004b6c: 2302 movs r3, #2
8004b6e: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004b70: 2300 movs r3, #0
8004b72: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004b74: 2303 movs r3, #3
8004b76: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF9_LTDC;
8004b78: 2309 movs r3, #9
8004b7a: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
8004b7c: f107 030c add.w r3, r7, #12
8004b80: 4619 mov r1, r3
8004b82: 4835 ldr r0, [pc, #212] ; (8004c58 <HAL_LTDC_MspInit+0x15c>)
8004b84: f00d fea0 bl 80128c8 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_8 | GPIO_PIN_9;
8004b88: f44f 6370 mov.w r3, #3840 ; 0xf00
8004b8c: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004b8e: 2302 movs r3, #2
8004b90: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004b92: 2300 movs r3, #0
8004b94: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004b96: 2303 movs r3, #3
8004b98: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
8004b9a: 230e movs r3, #14
8004b9c: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
8004b9e: f107 030c add.w r3, r7, #12
8004ba2: 4619 mov r1, r3
8004ba4: 482c ldr r0, [pc, #176] ; (8004c58 <HAL_LTDC_MspInit+0x15c>)
8004ba6: f00d fe8f bl 80128c8 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_11;
8004baa: f44f 630c mov.w r3, #2240 ; 0x8c0
8004bae: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004bb0: 2302 movs r3, #2
8004bb2: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004bb4: 2300 movs r3, #0
8004bb6: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004bb8: 2303 movs r3, #3
8004bba: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
8004bbc: 230e movs r3, #14
8004bbe: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
8004bc0: f107 030c add.w r3, r7, #12
8004bc4: 4619 mov r1, r3
8004bc6: 4825 ldr r0, [pc, #148] ; (8004c5c <HAL_LTDC_MspInit+0x160>)
8004bc8: f00d fe7e bl 80128c8 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_6 | GPIO_PIN_7;
8004bcc: 23c0 movs r3, #192 ; 0xc0
8004bce: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004bd0: 2302 movs r3, #2
8004bd2: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004bd4: 2300 movs r3, #0
8004bd6: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004bd8: 2303 movs r3, #3
8004bda: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
8004bdc: 230e movs r3, #14
8004bde: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
8004be0: f107 030c add.w r3, r7, #12
8004be4: 4619 mov r1, r3
8004be6: 481e ldr r0, [pc, #120] ; (8004c60 <HAL_LTDC_MspInit+0x164>)
8004be8: f00d fe6e bl 80128c8 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_3;
8004bec: 2308 movs r3, #8
8004bee: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004bf0: 2302 movs r3, #2
8004bf2: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004bf4: 2300 movs r3, #0
8004bf6: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004bf8: 2303 movs r3, #3
8004bfa: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF14_LTDC;
8004bfc: 230e movs r3, #14
8004bfe: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
8004c00: f107 030c add.w r3, r7, #12
8004c04: 4619 mov r1, r3
8004c06: 4817 ldr r0, [pc, #92] ; (8004c64 <HAL_LTDC_MspInit+0x168>)
8004c08: f00d fe5e bl 80128c8 <HAL_GPIO_Init>
GPIO_InitStruct.Pin = GPIO_PIN_10 | GPIO_PIN_12;
8004c0c: f44f 53a0 mov.w r3, #5120 ; 0x1400
8004c10: 60fb str r3, [r7, #12]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
8004c12: 2302 movs r3, #2
8004c14: 613b str r3, [r7, #16]
GPIO_InitStruct.Pull = GPIO_NOPULL;
8004c16: 2300 movs r3, #0
8004c18: 617b str r3, [r7, #20]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
8004c1a: 2303 movs r3, #3
8004c1c: 61bb str r3, [r7, #24]
GPIO_InitStruct.Alternate = GPIO_AF9_LTDC;
8004c1e: 2309 movs r3, #9
8004c20: 61fb str r3, [r7, #28]
HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
8004c22: f107 030c add.w r3, r7, #12
8004c26: 4619 mov r1, r3
8004c28: 480c ldr r0, [pc, #48] ; (8004c5c <HAL_LTDC_MspInit+0x160>)
8004c2a: f00d fe4d bl 80128c8 <HAL_GPIO_Init>
HAL_NVIC_SetPriority(LTDC_IRQn, 6, 0);
8004c2e: 2200 movs r2, #0
8004c30: 2106 movs r1, #6
8004c32: 2058 movs r0, #88 ; 0x58
8004c34: f00c fdfb bl 801182e <HAL_NVIC_SetPriority>
HAL_NVIC_EnableIRQ(LTDC_IRQn);
8004c38: 2058 movs r0, #88 ; 0x58
8004c3a: f00c fe14 bl 8011866 <HAL_NVIC_EnableIRQ>
}
}
8004c3e: bf00 nop
8004c40: 3720 adds r7, #32
8004c42: 46bd mov sp, r7
8004c44: bd80 pop {r7, pc}
8004c46: bf00 nop
8004c48: 40016800 .word 0x40016800
8004c4c: 40023800 .word 0x40023800
8004c50: 40021400 .word 0x40021400
8004c54: 40020000 .word 0x40020000
8004c58: 40020400 .word 0x40020400
8004c5c: 40021800 .word 0x40021800
8004c60: 40020800 .word 0x40020800
8004c64: 40020c00 .word 0x40020c00
08004c68 <BSP_LCD_GetXSize>:
HAL_NVIC_DisableIRQ(LTDC_IRQn);
}
}
uint32_t BSP_LCD_GetXSize(void)
{
8004c68: b480 push {r7}
8004c6a: af00 add r7, sp, #0
return hLtdcHandler.LayerCfg[ActiveLayer].ImageWidth;
8004c6c: 4b06 ldr r3, [pc, #24] ; (8004c88 <BSP_LCD_GetXSize+0x20>)
8004c6e: 681b ldr r3, [r3, #0]
8004c70: 4a06 ldr r2, [pc, #24] ; (8004c8c <BSP_LCD_GetXSize+0x24>)
8004c72: 2134 movs r1, #52 ; 0x34
8004c74: fb01 f303 mul.w r3, r1, r3
8004c78: 4413 add r3, r2
8004c7a: 3360 adds r3, #96 ; 0x60
8004c7c: 681b ldr r3, [r3, #0]
}
8004c7e: 4618 mov r0, r3
8004c80: 46bd mov sp, r7
8004c82: f85d 7b04 ldr.w r7, [sp], #4
8004c86: 4770 bx lr
8004c88: 20020018 .word 0x20020018
8004c8c: 2006c174 .word 0x2006c174
08004c90 <BSP_LCD_GetYSize>:
/**
* @brief Gets the LCD Y size.
* @retval Used LCD Y size
*/
uint32_t BSP_LCD_GetYSize(void)
{
8004c90: b480 push {r7}
8004c92: af00 add r7, sp, #0
return hLtdcHandler.LayerCfg[ActiveLayer].ImageHeight;
8004c94: 4b06 ldr r3, [pc, #24] ; (8004cb0 <BSP_LCD_GetYSize+0x20>)
8004c96: 681b ldr r3, [r3, #0]
8004c98: 4a06 ldr r2, [pc, #24] ; (8004cb4 <BSP_LCD_GetYSize+0x24>)
8004c9a: 2134 movs r1, #52 ; 0x34
8004c9c: fb01 f303 mul.w r3, r1, r3
8004ca0: 4413 add r3, r2
8004ca2: 3364 adds r3, #100 ; 0x64
8004ca4: 681b ldr r3, [r3, #0]
}
8004ca6: 4618 mov r0, r3
8004ca8: 46bd mov sp, r7
8004caa: f85d 7b04 ldr.w r7, [sp], #4
8004cae: 4770 bx lr
8004cb0: 20020018 .word 0x20020018
8004cb4: 2006c174 .word 0x2006c174
08004cb8 <BSP_LCD_SelectLayer>:
{
hLtdcHandler.LayerCfg[ActiveLayer].ImageHeight = imageHeightPixels;
}
void BSP_LCD_SelectLayer(uint32_t LayerIndex)
{
8004cb8: b480 push {r7}
8004cba: b083 sub sp, #12
8004cbc: af00 add r7, sp, #0
8004cbe: 6078 str r0, [r7, #4]
ActiveLayer = LayerIndex;
8004cc0: 4a04 ldr r2, [pc, #16] ; (8004cd4 <BSP_LCD_SelectLayer+0x1c>)
8004cc2: 687b ldr r3, [r7, #4]
8004cc4: 6013 str r3, [r2, #0]
}
8004cc6: bf00 nop
8004cc8: 370c adds r7, #12
8004cca: 46bd mov sp, r7
8004ccc: f85d 7b04 ldr.w r7, [sp], #4
8004cd0: 4770 bx lr
8004cd2: bf00 nop
8004cd4: 20020018 .word 0x20020018
08004cd8 <BSP_LCD_SetLayerVisible>:
* @arg ENABLE
* @arg DISABLE
* @retval None
*/
void BSP_LCD_SetLayerVisible(uint32_t LayerIndex, FunctionalState State)
{
8004cd8: b480 push {r7}
8004cda: b083 sub sp, #12
8004cdc: af00 add r7, sp, #0
8004cde: 6078 str r0, [r7, #4]
8004ce0: 460b mov r3, r1
8004ce2: 70fb strb r3, [r7, #3]
if(State == ENABLE)
8004ce4: 78fb ldrb r3, [r7, #3]
8004ce6: 2b01 cmp r3, #1
8004ce8: d113 bne.n 8004d12 <BSP_LCD_SetLayerVisible+0x3a>
__HAL_LTDC_LAYER_ENABLE(&hLtdcHandler, LayerIndex);
8004cea: 4b1a ldr r3, [pc, #104] ; (8004d54 <BSP_LCD_SetLayerVisible+0x7c>)
8004cec: 681b ldr r3, [r3, #0]
8004cee: 461a mov r2, r3
8004cf0: 687b ldr r3, [r7, #4]
8004cf2: 01db lsls r3, r3, #7
8004cf4: 4413 add r3, r2
8004cf6: 3384 adds r3, #132 ; 0x84
8004cf8: 461a mov r2, r3
8004cfa: 4b16 ldr r3, [pc, #88] ; (8004d54 <BSP_LCD_SetLayerVisible+0x7c>)
8004cfc: 681b ldr r3, [r3, #0]
8004cfe: 4619 mov r1, r3
8004d00: 687b ldr r3, [r7, #4]
8004d02: 01db lsls r3, r3, #7
8004d04: 440b add r3, r1
8004d06: 3384 adds r3, #132 ; 0x84
8004d08: 681b ldr r3, [r3, #0]
8004d0a: f043 0301 orr.w r3, r3, #1
8004d0e: 6013 str r3, [r2, #0]
8004d10: e012 b.n 8004d38 <BSP_LCD_SetLayerVisible+0x60>
else __HAL_LTDC_LAYER_DISABLE(&hLtdcHandler, LayerIndex);
8004d12: 4b10 ldr r3, [pc, #64] ; (8004d54 <BSP_LCD_SetLayerVisible+0x7c>)
8004d14: 681b ldr r3, [r3, #0]
8004d16: 461a mov r2, r3
8004d18: 687b ldr r3, [r7, #4]
8004d1a: 01db lsls r3, r3, #7
8004d1c: 4413 add r3, r2
8004d1e: 3384 adds r3, #132 ; 0x84
8004d20: 461a mov r2, r3
8004d22: 4b0c ldr r3, [pc, #48] ; (8004d54 <BSP_LCD_SetLayerVisible+0x7c>)
8004d24: 681b ldr r3, [r3, #0]
8004d26: 4619 mov r1, r3
8004d28: 687b ldr r3, [r7, #4]
8004d2a: 01db lsls r3, r3, #7
8004d2c: 440b add r3, r1
8004d2e: 3384 adds r3, #132 ; 0x84
8004d30: 681b ldr r3, [r3, #0]
8004d32: f023 0301 bic.w r3, r3, #1
8004d36: 6013 str r3, [r2, #0]
__HAL_LTDC_RELOAD_CONFIG(&hLtdcHandler);
8004d38: 4b06 ldr r3, [pc, #24] ; (8004d54 <BSP_LCD_SetLayerVisible+0x7c>)
8004d3a: 681b ldr r3, [r3, #0]
8004d3c: 4a05 ldr r2, [pc, #20] ; (8004d54 <BSP_LCD_SetLayerVisible+0x7c>)
8004d3e: 6812 ldr r2, [r2, #0]
8004d40: 6a52 ldr r2, [r2, #36] ; 0x24
8004d42: f042 0201 orr.w r2, r2, #1
8004d46: 625a str r2, [r3, #36] ; 0x24
}
8004d48: bf00 nop
8004d4a: 370c adds r7, #12
8004d4c: 46bd mov sp, r7
8004d4e: f85d 7b04 ldr.w r7, [sp], #4
8004d52: 4770 bx lr
8004d54: 2006c174 .word 0x2006c174
08004d58 <BSP_LCD_SetLayerVisible_NoReload>:
* @arg ENABLE
* @arg DISABLE
* @retval None
*/
void BSP_LCD_SetLayerVisible_NoReload(uint32_t LayerIndex, FunctionalState State)
{
8004d58: b480 push {r7}
8004d5a: b083 sub sp, #12
8004d5c: af00 add r7, sp, #0
8004d5e: 6078 str r0, [r7, #4]
8004d60: 460b mov r3, r1
8004d62: 70fb strb r3, [r7, #3]
if(State == ENABLE)
8004d64: 78fb ldrb r3, [r7, #3]
8004d66: 2b01 cmp r3, #1
8004d68: d113 bne.n 8004d92 <BSP_LCD_SetLayerVisible_NoReload+0x3a>
__HAL_LTDC_LAYER_ENABLE(&hLtdcHandler, LayerIndex);
8004d6a: 4b16 ldr r3, [pc, #88] ; (8004dc4 <BSP_LCD_SetLayerVisible_NoReload+0x6c>)
8004d6c: 681b ldr r3, [r3, #0]
8004d6e: 461a mov r2, r3
8004d70: 687b ldr r3, [r7, #4]
8004d72: 01db lsls r3, r3, #7
8004d74: 4413 add r3, r2
8004d76: 3384 adds r3, #132 ; 0x84
8004d78: 461a mov r2, r3
8004d7a: 4b12 ldr r3, [pc, #72] ; (8004dc4 <BSP_LCD_SetLayerVisible_NoReload+0x6c>)
8004d7c: 681b ldr r3, [r3, #0]
8004d7e: 4619 mov r1, r3
8004d80: 687b ldr r3, [r7, #4]
8004d82: 01db lsls r3, r3, #7
8004d84: 440b add r3, r1
8004d86: 3384 adds r3, #132 ; 0x84
8004d88: 681b ldr r3, [r3, #0]
8004d8a: f043 0301 orr.w r3, r3, #1
8004d8e: 6013 str r3, [r2, #0]
else __HAL_LTDC_LAYER_DISABLE(&hLtdcHandler, LayerIndex);
}
8004d90: e012 b.n 8004db8 <BSP_LCD_SetLayerVisible_NoReload+0x60>
else __HAL_LTDC_LAYER_DISABLE(&hLtdcHandler, LayerIndex);
8004d92: 4b0c ldr r3, [pc, #48] ; (8004dc4 <BSP_LCD_SetLayerVisible_NoReload+0x6c>)
8004d94: 681b ldr r3, [r3, #0]
8004d96: 461a mov r2, r3
8004d98: 687b ldr r3, [r7, #4]
8004d9a: 01db lsls r3, r3, #7
8004d9c: 4413 add r3, r2
8004d9e: 3384 adds r3, #132 ; 0x84
8004da0: 461a mov r2, r3
8004da2: 4b08 ldr r3, [pc, #32] ; (8004dc4 <BSP_LCD_SetLayerVisible_NoReload+0x6c>)
8004da4: 681b ldr r3, [r3, #0]
8004da6: 4619 mov r1, r3
8004da8: 687b ldr r3, [r7, #4]
8004daa: 01db lsls r3, r3, #7
8004dac: 440b add r3, r1
8004dae: 3384 adds r3, #132 ; 0x84
8004db0: 681b ldr r3, [r3, #0]
8004db2: f023 0301 bic.w r3, r3, #1
8004db6: 6013 str r3, [r2, #0]
}
8004db8: bf00 nop
8004dba: 370c adds r7, #12
8004dbc: 46bd mov sp, r7
8004dbe: f85d 7b04 ldr.w r7, [sp], #4
8004dc2: 4770 bx lr
8004dc4: 2006c174 .word 0x2006c174
08004dc8 <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)
{
8004dc8: b480 push {r7}
8004dca: b083 sub sp, #12
8004dcc: af00 add r7, sp, #0
8004dce: 6078 str r0, [r7, #4]
8004dd0: 6039 str r1, [r7, #0]
DrawProp[ActiveLayer].TextColor = ColorUp;
8004dd2: 4b0d ldr r3, [pc, #52] ; (8004e08 <LCD_SetColors+0x40>)
8004dd4: 681a ldr r2, [r3, #0]
8004dd6: 490d ldr r1, [pc, #52] ; (8004e0c <LCD_SetColors+0x44>)
8004dd8: 4613 mov r3, r2
8004dda: 005b lsls r3, r3, #1
8004ddc: 4413 add r3, r2
8004dde: 009b lsls r3, r3, #2
8004de0: 440b add r3, r1
8004de2: 687a ldr r2, [r7, #4]
8004de4: 601a str r2, [r3, #0]
DrawProp[ActiveLayer].BackColor = ColorDn;
8004de6: 4b08 ldr r3, [pc, #32] ; (8004e08 <LCD_SetColors+0x40>)
8004de8: 681a ldr r2, [r3, #0]
8004dea: 4908 ldr r1, [pc, #32] ; (8004e0c <LCD_SetColors+0x44>)
8004dec: 4613 mov r3, r2
8004dee: 005b lsls r3, r3, #1
8004df0: 4413 add r3, r2
8004df2: 009b lsls r3, r3, #2
8004df4: 440b add r3, r1
8004df6: 3304 adds r3, #4
8004df8: 683a ldr r2, [r7, #0]
8004dfa: 601a str r2, [r3, #0]
}
8004dfc: bf00 nop
8004dfe: 370c adds r7, #12
8004e00: 46bd mov sp, r7
8004e02: f85d 7b04 ldr.w r7, [sp], #4
8004e06: 4770 bx lr
8004e08: 20020018 .word 0x20020018
8004e0c: 2006ba44 .word 0x2006ba44
08004e10 <BSP_LCD_SetTextColor>:
void BSP_LCD_SetTextColor(uint32_t Color)
{
8004e10: b480 push {r7}
8004e12: b083 sub sp, #12
8004e14: af00 add r7, sp, #0
8004e16: 6078 str r0, [r7, #4]
DrawProp[ActiveLayer].TextColor = Color;
8004e18: 4b07 ldr r3, [pc, #28] ; (8004e38 <BSP_LCD_SetTextColor+0x28>)
8004e1a: 681a ldr r2, [r3, #0]
8004e1c: 4907 ldr r1, [pc, #28] ; (8004e3c <BSP_LCD_SetTextColor+0x2c>)
8004e1e: 4613 mov r3, r2
8004e20: 005b lsls r3, r3, #1
8004e22: 4413 add r3, r2
8004e24: 009b lsls r3, r3, #2
8004e26: 440b add r3, r1
8004e28: 687a ldr r2, [r7, #4]
8004e2a: 601a str r2, [r3, #0]
}
8004e2c: bf00 nop
8004e2e: 370c adds r7, #12
8004e30: 46bd mov sp, r7
8004e32: f85d 7b04 ldr.w r7, [sp], #4
8004e36: 4770 bx lr
8004e38: 20020018 .word 0x20020018
8004e3c: 2006ba44 .word 0x2006ba44
08004e40 <BSP_LCD_SetFont>:
* @brief Sets the LCD text font.
* @param fonts: Layer font to be used
* @retval None
*/
void BSP_LCD_SetFont(sFONT *fonts)
{
8004e40: b480 push {r7}
8004e42: b083 sub sp, #12
8004e44: af00 add r7, sp, #0
8004e46: 6078 str r0, [r7, #4]
DrawProp[ActiveLayer].pFont = fonts;
8004e48: 4b09 ldr r3, [pc, #36] ; (8004e70 <BSP_LCD_SetFont+0x30>)
8004e4a: 681a ldr r2, [r3, #0]
8004e4c: 4909 ldr r1, [pc, #36] ; (8004e74 <BSP_LCD_SetFont+0x34>)
8004e4e: 4613 mov r3, r2
8004e50: 005b lsls r3, r3, #1
8004e52: 4413 add r3, r2
8004e54: 009b lsls r3, r3, #2
8004e56: 440b add r3, r1
8004e58: 3308 adds r3, #8
8004e5a: 687a ldr r2, [r7, #4]
8004e5c: 601a str r2, [r3, #0]
CurrentFont = fonts;
8004e5e: 4a06 ldr r2, [pc, #24] ; (8004e78 <BSP_LCD_SetFont+0x38>)
8004e60: 687b ldr r3, [r7, #4]
8004e62: 6013 str r3, [r2, #0]
}
8004e64: bf00 nop
8004e66: 370c adds r7, #12
8004e68: 46bd mov sp, r7
8004e6a: f85d 7b04 ldr.w r7, [sp], #4
8004e6e: 4770 bx lr
8004e70: 20020018 .word 0x20020018
8004e74: 2006ba44 .word 0x2006ba44
8004e78: 2006c170 .word 0x2006c170
08004e7c <BSP_LCD_Clear>:
* @brief Clears the hole LCD.
* @param Color: Color of the background
* @retval None
*/
void BSP_LCD_Clear(uint32_t Color)
{
8004e7c: b5f0 push {r4, r5, r6, r7, lr}
8004e7e: b085 sub sp, #20
8004e80: af02 add r7, sp, #8
8004e82: 6078 str r0, [r7, #4]
LL_FillBuffer(ActiveLayer, (uint32_t *)(hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress), BSP_LCD_GetXSize(), BSP_LCD_GetYSize(), 0, Color);
8004e84: 4b0f ldr r3, [pc, #60] ; (8004ec4 <BSP_LCD_Clear+0x48>)
8004e86: 681c ldr r4, [r3, #0]
8004e88: 4b0e ldr r3, [pc, #56] ; (8004ec4 <BSP_LCD_Clear+0x48>)
8004e8a: 681b ldr r3, [r3, #0]
8004e8c: 4a0e ldr r2, [pc, #56] ; (8004ec8 <BSP_LCD_Clear+0x4c>)
8004e8e: 2134 movs r1, #52 ; 0x34
8004e90: fb01 f303 mul.w r3, r1, r3
8004e94: 4413 add r3, r2
8004e96: 335c adds r3, #92 ; 0x5c
8004e98: 681b ldr r3, [r3, #0]
8004e9a: 461d mov r5, r3
8004e9c: f7ff fee4 bl 8004c68 <BSP_LCD_GetXSize>
8004ea0: 4606 mov r6, r0
8004ea2: f7ff fef5 bl 8004c90 <BSP_LCD_GetYSize>
8004ea6: 4602 mov r2, r0
8004ea8: 687b ldr r3, [r7, #4]
8004eaa: 9301 str r3, [sp, #4]
8004eac: 2300 movs r3, #0
8004eae: 9300 str r3, [sp, #0]
8004eb0: 4613 mov r3, r2
8004eb2: 4632 mov r2, r6
8004eb4: 4629 mov r1, r5
8004eb6: 4620 mov r0, r4
8004eb8: f000 fd1a bl 80058f0 <LL_FillBuffer>
}
8004ebc: bf00 nop
8004ebe: 370c adds r7, #12
8004ec0: 46bd mov sp, r7
8004ec2: bdf0 pop {r4, r5, r6, r7, pc}
8004ec4: 20020018 .word 0x20020018
8004ec8: 2006c174 .word 0x2006c174
08004ecc <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)
{
8004ecc: b590 push {r4, r7, lr}
8004ece: b083 sub sp, #12
8004ed0: af00 add r7, sp, #0
8004ed2: 4603 mov r3, r0
8004ed4: 80fb strh r3, [r7, #6]
8004ed6: 460b mov r3, r1
8004ed8: 80bb strh r3, [r7, #4]
8004eda: 4613 mov r3, r2
8004edc: 70fb strb r3, [r7, #3]
DrawChar( Xpos, Ypos, &DrawProp[ActiveLayer].pFont->table[(Ascii - ' ') * DrawProp[ActiveLayer].pFont->Height * ((DrawProp[ActiveLayer].pFont->Width + 7) / 8)] );
8004ede: 4b1b ldr r3, [pc, #108] ; (8004f4c <BSP_LCD_DisplayChar+0x80>)
8004ee0: 681a ldr r2, [r3, #0]
8004ee2: 491b ldr r1, [pc, #108] ; (8004f50 <BSP_LCD_DisplayChar+0x84>)
8004ee4: 4613 mov r3, r2
8004ee6: 005b lsls r3, r3, #1
8004ee8: 4413 add r3, r2
8004eea: 009b lsls r3, r3, #2
8004eec: 440b add r3, r1
8004eee: 3308 adds r3, #8
8004ef0: 681b ldr r3, [r3, #0]
8004ef2: 6819 ldr r1, [r3, #0]
8004ef4: 78fb ldrb r3, [r7, #3]
8004ef6: f1a3 0020 sub.w r0, r3, #32
8004efa: 4b14 ldr r3, [pc, #80] ; (8004f4c <BSP_LCD_DisplayChar+0x80>)
8004efc: 681a ldr r2, [r3, #0]
8004efe: 4c14 ldr r4, [pc, #80] ; (8004f50 <BSP_LCD_DisplayChar+0x84>)
8004f00: 4613 mov r3, r2
8004f02: 005b lsls r3, r3, #1
8004f04: 4413 add r3, r2
8004f06: 009b lsls r3, r3, #2
8004f08: 4423 add r3, r4
8004f0a: 3308 adds r3, #8
8004f0c: 681b ldr r3, [r3, #0]
8004f0e: 88db ldrh r3, [r3, #6]
8004f10: fb03 f000 mul.w r0, r3, r0
8004f14: 4b0d ldr r3, [pc, #52] ; (8004f4c <BSP_LCD_DisplayChar+0x80>)
8004f16: 681a ldr r2, [r3, #0]
8004f18: 4c0d ldr r4, [pc, #52] ; (8004f50 <BSP_LCD_DisplayChar+0x84>)
8004f1a: 4613 mov r3, r2
8004f1c: 005b lsls r3, r3, #1
8004f1e: 4413 add r3, r2
8004f20: 009b lsls r3, r3, #2
8004f22: 4423 add r3, r4
8004f24: 3308 adds r3, #8
8004f26: 681b ldr r3, [r3, #0]
8004f28: 889b ldrh r3, [r3, #4]
8004f2a: 3307 adds r3, #7
8004f2c: 2b00 cmp r3, #0
8004f2e: da00 bge.n 8004f32 <BSP_LCD_DisplayChar+0x66>
8004f30: 3307 adds r3, #7
8004f32: 10db asrs r3, r3, #3
8004f34: fb03 f300 mul.w r3, r3, r0
8004f38: 18ca adds r2, r1, r3
8004f3a: 88b9 ldrh r1, [r7, #4]
8004f3c: 88fb ldrh r3, [r7, #6]
8004f3e: 4618 mov r0, r3
8004f40: f000 fc1e bl 8005780 <DrawChar>
}
8004f44: bf00 nop
8004f46: 370c adds r7, #12
8004f48: 46bd mov sp, r7
8004f4a: bd90 pop {r4, r7, pc}
8004f4c: 20020018 .word 0x20020018
8004f50: 2006ba44 .word 0x2006ba44
08004f54 <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)
{
8004f54: b5b0 push {r4, r5, r7, lr}
8004f56: b088 sub sp, #32
8004f58: af00 add r7, sp, #0
8004f5a: 60ba str r2, [r7, #8]
8004f5c: 461a mov r2, r3
8004f5e: 4603 mov r3, r0
8004f60: 81fb strh r3, [r7, #14]
8004f62: 460b mov r3, r1
8004f64: 81bb strh r3, [r7, #12]
8004f66: 4613 mov r3, r2
8004f68: 71fb strb r3, [r7, #7]
uint16_t ref_column = 1, i = 0, ll = 0;
8004f6a: 2301 movs r3, #1
8004f6c: 83fb strh r3, [r7, #30]
8004f6e: 2300 movs r3, #0
8004f70: 83bb strh r3, [r7, #28]
8004f72: 2300 movs r3, #0
8004f74: 827b strh r3, [r7, #18]
uint32_t size = 0;
8004f76: 2300 movs r3, #0
8004f78: 61bb str r3, [r7, #24]
uint8_t *ptr;
ptr = (uint8_t *) Text;
8004f7a: 68bb ldr r3, [r7, #8]
8004f7c: 617b str r3, [r7, #20]
/* Get the text size */
while (*ptr++) size++ ;
8004f7e: e002 b.n 8004f86 <BSP_LCD_DisplayStringAt+0x32>
8004f80: 69bb ldr r3, [r7, #24]
8004f82: 3301 adds r3, #1
8004f84: 61bb str r3, [r7, #24]
8004f86: 697b ldr r3, [r7, #20]
8004f88: 1c5a adds r2, r3, #1
8004f8a: 617a str r2, [r7, #20]
8004f8c: 781b ldrb r3, [r3, #0]
8004f8e: 2b00 cmp r3, #0
8004f90: d1f6 bne.n 8004f80 <BSP_LCD_DisplayStringAt+0x2c>
/* Characters number per line */
// xsize = (BSP_LCD_GetXSize() / DrawProp[ActiveLayer].pFont->Width);
switch (Mode)
8004f92: 79fb ldrb r3, [r7, #7]
8004f94: 2b02 cmp r3, #2
8004f96: d01d beq.n 8004fd4 <BSP_LCD_DisplayStringAt+0x80>
8004f98: 2b03 cmp r3, #3
8004f9a: d018 beq.n 8004fce <BSP_LCD_DisplayStringAt+0x7a>
8004f9c: 2b01 cmp r3, #1
8004f9e: d12e bne.n 8004ffe <BSP_LCD_DisplayStringAt+0xaa>
{
case CENTER_MODE:
{
ll = DrawProp[ActiveLayer].pFont->Width * size;
8004fa0: 4b44 ldr r3, [pc, #272] ; (80050b4 <BSP_LCD_DisplayStringAt+0x160>)
8004fa2: 681a ldr r2, [r3, #0]
8004fa4: 4944 ldr r1, [pc, #272] ; (80050b8 <BSP_LCD_DisplayStringAt+0x164>)
8004fa6: 4613 mov r3, r2
8004fa8: 005b lsls r3, r3, #1
8004faa: 4413 add r3, r2
8004fac: 009b lsls r3, r3, #2
8004fae: 440b add r3, r1
8004fb0: 3308 adds r3, #8
8004fb2: 681b ldr r3, [r3, #0]
8004fb4: 889a ldrh r2, [r3, #4]
8004fb6: 69bb ldr r3, [r7, #24]
8004fb8: b29b uxth r3, r3
8004fba: fb12 f303 smulbb r3, r2, r3
8004fbe: 827b strh r3, [r7, #18]
ref_column = Xpos - (ll >> 1);
8004fc0: 8a7b ldrh r3, [r7, #18]
8004fc2: 085b lsrs r3, r3, #1
8004fc4: b29b uxth r3, r3
8004fc6: 89fa ldrh r2, [r7, #14]
8004fc8: 1ad3 subs r3, r2, r3
8004fca: 83fb strh r3, [r7, #30]
//if((ref_column + ll > 319) || (ref_column > 319))
// ref_column = Xpos + ((xsize - size)* DrawProp[ActiveLayer].pFont->Width) / 2;
break;
8004fcc: e01a b.n 8005004 <BSP_LCD_DisplayStringAt+0xb0>
}
case LEFT_MODE:
{
ref_column = Xpos;
8004fce: 89fb ldrh r3, [r7, #14]
8004fd0: 83fb strh r3, [r7, #30]
break;
8004fd2: e017 b.n 8005004 <BSP_LCD_DisplayStringAt+0xb0>
}
case RIGHT_MODE:
{
ll = DrawProp[ActiveLayer].pFont->Width * size;
8004fd4: 4b37 ldr r3, [pc, #220] ; (80050b4 <BSP_LCD_DisplayStringAt+0x160>)
8004fd6: 681a ldr r2, [r3, #0]
8004fd8: 4937 ldr r1, [pc, #220] ; (80050b8 <BSP_LCD_DisplayStringAt+0x164>)
8004fda: 4613 mov r3, r2
8004fdc: 005b lsls r3, r3, #1
8004fde: 4413 add r3, r2
8004fe0: 009b lsls r3, r3, #2
8004fe2: 440b add r3, r1
8004fe4: 3308 adds r3, #8
8004fe6: 681b ldr r3, [r3, #0]
8004fe8: 889a ldrh r2, [r3, #4]
8004fea: 69bb ldr r3, [r7, #24]
8004fec: b29b uxth r3, r3
8004fee: fb12 f303 smulbb r3, r2, r3
8004ff2: 827b strh r3, [r7, #18]
ref_column = Xpos - ll;
8004ff4: 89fa ldrh r2, [r7, #14]
8004ff6: 8a7b ldrh r3, [r7, #18]
8004ff8: 1ad3 subs r3, r2, r3
8004ffa: 83fb strh r3, [r7, #30]
// ref_column = - Xpos + ((xsize - size)*DrawProp[ActiveLayer].pFont->Width);
break;
8004ffc: e002 b.n 8005004 <BSP_LCD_DisplayStringAt+0xb0>
}
default:
{
ref_column = Xpos;
8004ffe: 89fb ldrh r3, [r7, #14]
8005000: 83fb strh r3, [r7, #30]
break;
8005002: bf00 nop
}
}
/* Check that the Start column is located in the screen */
if ((ref_column < 1) || (ref_column >= 0x8000))
8005004: 8bfb ldrh r3, [r7, #30]
8005006: 2b00 cmp r3, #0
8005008: d003 beq.n 8005012 <BSP_LCD_DisplayStringAt+0xbe>
800500a: f9b7 301e ldrsh.w r3, [r7, #30]
800500e: 2b00 cmp r3, #0
8005010: da1d bge.n 800504e <BSP_LCD_DisplayStringAt+0xfa>
{
ref_column = 1;
8005012: 2301 movs r3, #1
8005014: 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))
8005016: e01a b.n 800504e <BSP_LCD_DisplayStringAt+0xfa>
{
/* Display one character on LCD */
BSP_LCD_DisplayChar(ref_column, Ypos, *Text);
8005018: 68bb ldr r3, [r7, #8]
800501a: 781a ldrb r2, [r3, #0]
800501c: 89b9 ldrh r1, [r7, #12]
800501e: 8bfb ldrh r3, [r7, #30]
8005020: 4618 mov r0, r3
8005022: f7ff ff53 bl 8004ecc <BSP_LCD_DisplayChar>
/* Decrement the column position by 16 */
ref_column += DrawProp[ActiveLayer].pFont->Width;
8005026: 4b23 ldr r3, [pc, #140] ; (80050b4 <BSP_LCD_DisplayStringAt+0x160>)
8005028: 681a ldr r2, [r3, #0]
800502a: 4923 ldr r1, [pc, #140] ; (80050b8 <BSP_LCD_DisplayStringAt+0x164>)
800502c: 4613 mov r3, r2
800502e: 005b lsls r3, r3, #1
8005030: 4413 add r3, r2
8005032: 009b lsls r3, r3, #2
8005034: 440b add r3, r1
8005036: 3308 adds r3, #8
8005038: 681b ldr r3, [r3, #0]
800503a: 889a ldrh r2, [r3, #4]
800503c: 8bfb ldrh r3, [r7, #30]
800503e: 4413 add r3, r2
8005040: 83fb strh r3, [r7, #30]
/* Point on the next character */
Text++;
8005042: 68bb ldr r3, [r7, #8]
8005044: 3301 adds r3, #1
8005046: 60bb str r3, [r7, #8]
i++;
8005048: 8bbb ldrh r3, [r7, #28]
800504a: 3301 adds r3, #1
800504c: 83bb strh r3, [r7, #28]
while ((*Text != 0) & (((BSP_LCD_GetXSize() - (i*DrawProp[ActiveLayer].pFont->Width)) & 0xFFFF) >= DrawProp[ActiveLayer].pFont->Width))
800504e: 68bb ldr r3, [r7, #8]
8005050: 781b ldrb r3, [r3, #0]
8005052: 2b00 cmp r3, #0
8005054: bf14 ite ne
8005056: 2301 movne r3, #1
8005058: 2300 moveq r3, #0
800505a: b2dc uxtb r4, r3
800505c: f7ff fe04 bl 8004c68 <BSP_LCD_GetXSize>
8005060: 4605 mov r5, r0
8005062: 8bb9 ldrh r1, [r7, #28]
8005064: 4b13 ldr r3, [pc, #76] ; (80050b4 <BSP_LCD_DisplayStringAt+0x160>)
8005066: 681a ldr r2, [r3, #0]
8005068: 4813 ldr r0, [pc, #76] ; (80050b8 <BSP_LCD_DisplayStringAt+0x164>)
800506a: 4613 mov r3, r2
800506c: 005b lsls r3, r3, #1
800506e: 4413 add r3, r2
8005070: 009b lsls r3, r3, #2
8005072: 4403 add r3, r0
8005074: 3308 adds r3, #8
8005076: 681b ldr r3, [r3, #0]
8005078: 889b ldrh r3, [r3, #4]
800507a: fb03 f301 mul.w r3, r3, r1
800507e: 1aeb subs r3, r5, r3
8005080: b299 uxth r1, r3
8005082: 4b0c ldr r3, [pc, #48] ; (80050b4 <BSP_LCD_DisplayStringAt+0x160>)
8005084: 681a ldr r2, [r3, #0]
8005086: 480c ldr r0, [pc, #48] ; (80050b8 <BSP_LCD_DisplayStringAt+0x164>)
8005088: 4613 mov r3, r2
800508a: 005b lsls r3, r3, #1
800508c: 4413 add r3, r2
800508e: 009b lsls r3, r3, #2
8005090: 4403 add r3, r0
8005092: 3308 adds r3, #8
8005094: 681b ldr r3, [r3, #0]
8005096: 889b ldrh r3, [r3, #4]
8005098: 4299 cmp r1, r3
800509a: bf2c ite cs
800509c: 2301 movcs r3, #1
800509e: 2300 movcc r3, #0
80050a0: b2db uxtb r3, r3
80050a2: 4023 ands r3, r4
80050a4: b2db uxtb r3, r3
80050a6: 2b00 cmp r3, #0
80050a8: d1b6 bne.n 8005018 <BSP_LCD_DisplayStringAt+0xc4>
}
}
80050aa: bf00 nop
80050ac: 3720 adds r7, #32
80050ae: 46bd mov sp, r7
80050b0: bdb0 pop {r4, r5, r7, pc}
80050b2: bf00 nop
80050b4: 20020018 .word 0x20020018
80050b8: 2006ba44 .word 0x2006ba44
080050bc <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)
{
80050bc: b5b0 push {r4, r5, r7, lr}
80050be: b086 sub sp, #24
80050c0: af02 add r7, sp, #8
80050c2: 4603 mov r3, r0
80050c4: 80fb strh r3, [r7, #6]
80050c6: 460b mov r3, r1
80050c8: 80bb strh r3, [r7, #4]
80050ca: 4613 mov r3, r2
80050cc: 807b strh r3, [r7, #2]
uint32_t Xaddress = 0;
80050ce: 2300 movs r3, #0
80050d0: 60fb str r3, [r7, #12]
/* Get the line address */
if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565)
80050d2: 4b26 ldr r3, [pc, #152] ; (800516c <BSP_LCD_DrawHLine+0xb0>)
80050d4: 681b ldr r3, [r3, #0]
80050d6: 4a26 ldr r2, [pc, #152] ; (8005170 <BSP_LCD_DrawHLine+0xb4>)
80050d8: 2134 movs r1, #52 ; 0x34
80050da: fb01 f303 mul.w r3, r1, r3
80050de: 4413 add r3, r2
80050e0: 3348 adds r3, #72 ; 0x48
80050e2: 681b ldr r3, [r3, #0]
80050e4: 2b02 cmp r3, #2
80050e6: d114 bne.n 8005112 <BSP_LCD_DrawHLine+0x56>
{ /* RGB565 format */
Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 2*(BSP_LCD_GetXSize()*Ypos + Xpos);
80050e8: 4b20 ldr r3, [pc, #128] ; (800516c <BSP_LCD_DrawHLine+0xb0>)
80050ea: 681b ldr r3, [r3, #0]
80050ec: 4a20 ldr r2, [pc, #128] ; (8005170 <BSP_LCD_DrawHLine+0xb4>)
80050ee: 2134 movs r1, #52 ; 0x34
80050f0: fb01 f303 mul.w r3, r1, r3
80050f4: 4413 add r3, r2
80050f6: 335c adds r3, #92 ; 0x5c
80050f8: 681c ldr r4, [r3, #0]
80050fa: f7ff fdb5 bl 8004c68 <BSP_LCD_GetXSize>
80050fe: 4602 mov r2, r0
8005100: 88bb ldrh r3, [r7, #4]
8005102: fb03 f202 mul.w r2, r3, r2
8005106: 88fb ldrh r3, [r7, #6]
8005108: 4413 add r3, r2
800510a: 005b lsls r3, r3, #1
800510c: 4423 add r3, r4
800510e: 60fb str r3, [r7, #12]
8005110: e013 b.n 800513a <BSP_LCD_DrawHLine+0x7e>
}
else
{ /* ARGB8888 format */
Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 4*(BSP_LCD_GetXSize()*Ypos + Xpos);
8005112: 4b16 ldr r3, [pc, #88] ; (800516c <BSP_LCD_DrawHLine+0xb0>)
8005114: 681b ldr r3, [r3, #0]
8005116: 4a16 ldr r2, [pc, #88] ; (8005170 <BSP_LCD_DrawHLine+0xb4>)
8005118: 2134 movs r1, #52 ; 0x34
800511a: fb01 f303 mul.w r3, r1, r3
800511e: 4413 add r3, r2
8005120: 335c adds r3, #92 ; 0x5c
8005122: 681c ldr r4, [r3, #0]
8005124: f7ff fda0 bl 8004c68 <BSP_LCD_GetXSize>
8005128: 4602 mov r2, r0
800512a: 88bb ldrh r3, [r7, #4]
800512c: fb03 f202 mul.w r2, r3, r2
8005130: 88fb ldrh r3, [r7, #6]
8005132: 4413 add r3, r2
8005134: 009b lsls r3, r3, #2
8005136: 4423 add r3, r4
8005138: 60fb str r3, [r7, #12]
}
/* Write line */
LL_FillBuffer(ActiveLayer, (uint32_t *)Xaddress, Length, 1, 0, DrawProp[ActiveLayer].TextColor);
800513a: 4b0c ldr r3, [pc, #48] ; (800516c <BSP_LCD_DrawHLine+0xb0>)
800513c: 6818 ldr r0, [r3, #0]
800513e: 68fc ldr r4, [r7, #12]
8005140: 887d ldrh r5, [r7, #2]
8005142: 4b0a ldr r3, [pc, #40] ; (800516c <BSP_LCD_DrawHLine+0xb0>)
8005144: 681a ldr r2, [r3, #0]
8005146: 490b ldr r1, [pc, #44] ; (8005174 <BSP_LCD_DrawHLine+0xb8>)
8005148: 4613 mov r3, r2
800514a: 005b lsls r3, r3, #1
800514c: 4413 add r3, r2
800514e: 009b lsls r3, r3, #2
8005150: 440b add r3, r1
8005152: 681b ldr r3, [r3, #0]
8005154: 9301 str r3, [sp, #4]
8005156: 2300 movs r3, #0
8005158: 9300 str r3, [sp, #0]
800515a: 2301 movs r3, #1
800515c: 462a mov r2, r5
800515e: 4621 mov r1, r4
8005160: f000 fbc6 bl 80058f0 <LL_FillBuffer>
}
8005164: bf00 nop
8005166: 3710 adds r7, #16
8005168: 46bd mov sp, r7
800516a: bdb0 pop {r4, r5, r7, pc}
800516c: 20020018 .word 0x20020018
8005170: 2006c174 .word 0x2006c174
8005174: 2006ba44 .word 0x2006ba44
08005178 <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)
{
8005178: b5f0 push {r4, r5, r6, r7, lr}
800517a: b087 sub sp, #28
800517c: af02 add r7, sp, #8
800517e: 4603 mov r3, r0
8005180: 80fb strh r3, [r7, #6]
8005182: 460b mov r3, r1
8005184: 80bb strh r3, [r7, #4]
8005186: 4613 mov r3, r2
8005188: 807b strh r3, [r7, #2]
uint32_t Xaddress = 0;
800518a: 2300 movs r3, #0
800518c: 60fb str r3, [r7, #12]
/* Get the line address */
if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565)
800518e: 4b28 ldr r3, [pc, #160] ; (8005230 <BSP_LCD_DrawVLine+0xb8>)
8005190: 681b ldr r3, [r3, #0]
8005192: 4a28 ldr r2, [pc, #160] ; (8005234 <BSP_LCD_DrawVLine+0xbc>)
8005194: 2134 movs r1, #52 ; 0x34
8005196: fb01 f303 mul.w r3, r1, r3
800519a: 4413 add r3, r2
800519c: 3348 adds r3, #72 ; 0x48
800519e: 681b ldr r3, [r3, #0]
80051a0: 2b02 cmp r3, #2
80051a2: d114 bne.n 80051ce <BSP_LCD_DrawVLine+0x56>
{ /* RGB565 format */
Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 2*(BSP_LCD_GetXSize()*Ypos + Xpos);
80051a4: 4b22 ldr r3, [pc, #136] ; (8005230 <BSP_LCD_DrawVLine+0xb8>)
80051a6: 681b ldr r3, [r3, #0]
80051a8: 4a22 ldr r2, [pc, #136] ; (8005234 <BSP_LCD_DrawVLine+0xbc>)
80051aa: 2134 movs r1, #52 ; 0x34
80051ac: fb01 f303 mul.w r3, r1, r3
80051b0: 4413 add r3, r2
80051b2: 335c adds r3, #92 ; 0x5c
80051b4: 681c ldr r4, [r3, #0]
80051b6: f7ff fd57 bl 8004c68 <BSP_LCD_GetXSize>
80051ba: 4602 mov r2, r0
80051bc: 88bb ldrh r3, [r7, #4]
80051be: fb03 f202 mul.w r2, r3, r2
80051c2: 88fb ldrh r3, [r7, #6]
80051c4: 4413 add r3, r2
80051c6: 005b lsls r3, r3, #1
80051c8: 4423 add r3, r4
80051ca: 60fb str r3, [r7, #12]
80051cc: e013 b.n 80051f6 <BSP_LCD_DrawVLine+0x7e>
}
else
{ /* ARGB8888 format */
Xaddress = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 4*(BSP_LCD_GetXSize()*Ypos + Xpos);
80051ce: 4b18 ldr r3, [pc, #96] ; (8005230 <BSP_LCD_DrawVLine+0xb8>)
80051d0: 681b ldr r3, [r3, #0]
80051d2: 4a18 ldr r2, [pc, #96] ; (8005234 <BSP_LCD_DrawVLine+0xbc>)
80051d4: 2134 movs r1, #52 ; 0x34
80051d6: fb01 f303 mul.w r3, r1, r3
80051da: 4413 add r3, r2
80051dc: 335c adds r3, #92 ; 0x5c
80051de: 681c ldr r4, [r3, #0]
80051e0: f7ff fd42 bl 8004c68 <BSP_LCD_GetXSize>
80051e4: 4602 mov r2, r0
80051e6: 88bb ldrh r3, [r7, #4]
80051e8: fb03 f202 mul.w r2, r3, r2
80051ec: 88fb ldrh r3, [r7, #6]
80051ee: 4413 add r3, r2
80051f0: 009b lsls r3, r3, #2
80051f2: 4423 add r3, r4
80051f4: 60fb str r3, [r7, #12]
}
/* Write line */
LL_FillBuffer(ActiveLayer, (uint32_t *)Xaddress, 1, Length, (BSP_LCD_GetXSize() - 1), DrawProp[ActiveLayer].TextColor);
80051f6: 4b0e ldr r3, [pc, #56] ; (8005230 <BSP_LCD_DrawVLine+0xb8>)
80051f8: 681c ldr r4, [r3, #0]
80051fa: 68fd ldr r5, [r7, #12]
80051fc: 887e ldrh r6, [r7, #2]
80051fe: f7ff fd33 bl 8004c68 <BSP_LCD_GetXSize>
8005202: 4603 mov r3, r0
8005204: 1e59 subs r1, r3, #1
8005206: 4b0a ldr r3, [pc, #40] ; (8005230 <BSP_LCD_DrawVLine+0xb8>)
8005208: 681a ldr r2, [r3, #0]
800520a: 480b ldr r0, [pc, #44] ; (8005238 <BSP_LCD_DrawVLine+0xc0>)
800520c: 4613 mov r3, r2
800520e: 005b lsls r3, r3, #1
8005210: 4413 add r3, r2
8005212: 009b lsls r3, r3, #2
8005214: 4403 add r3, r0
8005216: 681b ldr r3, [r3, #0]
8005218: 9301 str r3, [sp, #4]
800521a: 9100 str r1, [sp, #0]
800521c: 4633 mov r3, r6
800521e: 2201 movs r2, #1
8005220: 4629 mov r1, r5
8005222: 4620 mov r0, r4
8005224: f000 fb64 bl 80058f0 <LL_FillBuffer>
}
8005228: bf00 nop
800522a: 3714 adds r7, #20
800522c: 46bd mov sp, r7
800522e: bdf0 pop {r4, r5, r6, r7, pc}
8005230: 20020018 .word 0x20020018
8005234: 2006c174 .word 0x2006c174
8005238: 2006ba44 .word 0x2006ba44
0800523c <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)
{
800523c: b590 push {r4, r7, lr}
800523e: b083 sub sp, #12
8005240: af00 add r7, sp, #0
8005242: 4604 mov r4, r0
8005244: 4608 mov r0, r1
8005246: 4611 mov r1, r2
8005248: 461a mov r2, r3
800524a: 4623 mov r3, r4
800524c: 80fb strh r3, [r7, #6]
800524e: 4603 mov r3, r0
8005250: 80bb strh r3, [r7, #4]
8005252: 460b mov r3, r1
8005254: 807b strh r3, [r7, #2]
8005256: 4613 mov r3, r2
8005258: 803b strh r3, [r7, #0]
BSP_LCD_DrawHLine(Xpos, Ypos, Width);
800525a: 887a ldrh r2, [r7, #2]
800525c: 88b9 ldrh r1, [r7, #4]
800525e: 88fb ldrh r3, [r7, #6]
8005260: 4618 mov r0, r3
8005262: f7ff ff2b bl 80050bc <BSP_LCD_DrawHLine>
BSP_LCD_DrawVLine(Xpos, Ypos, Height);
8005266: 883a ldrh r2, [r7, #0]
8005268: 88b9 ldrh r1, [r7, #4]
800526a: 88fb ldrh r3, [r7, #6]
800526c: 4618 mov r0, r3
800526e: f7ff ff83 bl 8005178 <BSP_LCD_DrawVLine>
BSP_LCD_DrawHLine(Xpos, (Ypos + Height), Width);
8005272: 88ba ldrh r2, [r7, #4]
8005274: 883b ldrh r3, [r7, #0]
8005276: 4413 add r3, r2
8005278: b299 uxth r1, r3
800527a: 887a ldrh r2, [r7, #2]
800527c: 88fb ldrh r3, [r7, #6]
800527e: 4618 mov r0, r3
8005280: f7ff ff1c bl 80050bc <BSP_LCD_DrawHLine>
BSP_LCD_DrawVLine((Xpos + Width), Ypos, Height + 1);
8005284: 88fa ldrh r2, [r7, #6]
8005286: 887b ldrh r3, [r7, #2]
8005288: 4413 add r3, r2
800528a: b298 uxth r0, r3
800528c: 883b ldrh r3, [r7, #0]
800528e: 3301 adds r3, #1
8005290: b29a uxth r2, r3
8005292: 88bb ldrh r3, [r7, #4]
8005294: 4619 mov r1, r3
8005296: f7ff ff6f bl 8005178 <BSP_LCD_DrawVLine>
}
800529a: bf00 nop
800529c: 370c adds r7, #12
800529e: 46bd mov sp, r7
80052a0: bd90 pop {r4, r7, pc}
...
080052a4 <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)
{
80052a4: b590 push {r4, r7, lr}
80052a6: b087 sub sp, #28
80052a8: af00 add r7, sp, #0
80052aa: 4603 mov r3, r0
80052ac: 80fb strh r3, [r7, #6]
80052ae: 460b mov r3, r1
80052b0: 80bb strh r3, [r7, #4]
80052b2: 4613 mov r3, r2
80052b4: 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);
80052b6: 887b ldrh r3, [r7, #2]
80052b8: 005b lsls r3, r3, #1
80052ba: f1c3 0303 rsb r3, r3, #3
80052be: 617b str r3, [r7, #20]
current_x = 0;
80052c0: 2300 movs r3, #0
80052c2: 613b str r3, [r7, #16]
current_y = Radius;
80052c4: 887b ldrh r3, [r7, #2]
80052c6: 60fb str r3, [r7, #12]
while (current_x <= current_y)
80052c8: e0cf b.n 800546a <BSP_LCD_DrawCircle+0x1c6>
{
BSP_LCD_DrawPixel((Xpos + current_x), (Ypos - current_y), DrawProp[ActiveLayer].TextColor);
80052ca: 693b ldr r3, [r7, #16]
80052cc: b29a uxth r2, r3
80052ce: 88fb ldrh r3, [r7, #6]
80052d0: 4413 add r3, r2
80052d2: b298 uxth r0, r3
80052d4: 68fb ldr r3, [r7, #12]
80052d6: b29b uxth r3, r3
80052d8: 88ba ldrh r2, [r7, #4]
80052da: 1ad3 subs r3, r2, r3
80052dc: b29c uxth r4, r3
80052de: 4b67 ldr r3, [pc, #412] ; (800547c <BSP_LCD_DrawCircle+0x1d8>)
80052e0: 681a ldr r2, [r3, #0]
80052e2: 4967 ldr r1, [pc, #412] ; (8005480 <BSP_LCD_DrawCircle+0x1dc>)
80052e4: 4613 mov r3, r2
80052e6: 005b lsls r3, r3, #1
80052e8: 4413 add r3, r2
80052ea: 009b lsls r3, r3, #2
80052ec: 440b add r3, r1
80052ee: 681b ldr r3, [r3, #0]
80052f0: 461a mov r2, r3
80052f2: 4621 mov r1, r4
80052f4: f000 f8c6 bl 8005484 <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos - current_x), (Ypos - current_y), DrawProp[ActiveLayer].TextColor);
80052f8: 693b ldr r3, [r7, #16]
80052fa: b29b uxth r3, r3
80052fc: 88fa ldrh r2, [r7, #6]
80052fe: 1ad3 subs r3, r2, r3
8005300: b298 uxth r0, r3
8005302: 68fb ldr r3, [r7, #12]
8005304: b29b uxth r3, r3
8005306: 88ba ldrh r2, [r7, #4]
8005308: 1ad3 subs r3, r2, r3
800530a: b29c uxth r4, r3
800530c: 4b5b ldr r3, [pc, #364] ; (800547c <BSP_LCD_DrawCircle+0x1d8>)
800530e: 681a ldr r2, [r3, #0]
8005310: 495b ldr r1, [pc, #364] ; (8005480 <BSP_LCD_DrawCircle+0x1dc>)
8005312: 4613 mov r3, r2
8005314: 005b lsls r3, r3, #1
8005316: 4413 add r3, r2
8005318: 009b lsls r3, r3, #2
800531a: 440b add r3, r1
800531c: 681b ldr r3, [r3, #0]
800531e: 461a mov r2, r3
8005320: 4621 mov r1, r4
8005322: f000 f8af bl 8005484 <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos + current_y), (Ypos - current_x), DrawProp[ActiveLayer].TextColor);
8005326: 68fb ldr r3, [r7, #12]
8005328: b29a uxth r2, r3
800532a: 88fb ldrh r3, [r7, #6]
800532c: 4413 add r3, r2
800532e: b298 uxth r0, r3
8005330: 693b ldr r3, [r7, #16]
8005332: b29b uxth r3, r3
8005334: 88ba ldrh r2, [r7, #4]
8005336: 1ad3 subs r3, r2, r3
8005338: b29c uxth r4, r3
800533a: 4b50 ldr r3, [pc, #320] ; (800547c <BSP_LCD_DrawCircle+0x1d8>)
800533c: 681a ldr r2, [r3, #0]
800533e: 4950 ldr r1, [pc, #320] ; (8005480 <BSP_LCD_DrawCircle+0x1dc>)
8005340: 4613 mov r3, r2
8005342: 005b lsls r3, r3, #1
8005344: 4413 add r3, r2
8005346: 009b lsls r3, r3, #2
8005348: 440b add r3, r1
800534a: 681b ldr r3, [r3, #0]
800534c: 461a mov r2, r3
800534e: 4621 mov r1, r4
8005350: f000 f898 bl 8005484 <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos - current_y), (Ypos - current_x), DrawProp[ActiveLayer].TextColor);
8005354: 68fb ldr r3, [r7, #12]
8005356: b29b uxth r3, r3
8005358: 88fa ldrh r2, [r7, #6]
800535a: 1ad3 subs r3, r2, r3
800535c: b298 uxth r0, r3
800535e: 693b ldr r3, [r7, #16]
8005360: b29b uxth r3, r3
8005362: 88ba ldrh r2, [r7, #4]
8005364: 1ad3 subs r3, r2, r3
8005366: b29c uxth r4, r3
8005368: 4b44 ldr r3, [pc, #272] ; (800547c <BSP_LCD_DrawCircle+0x1d8>)
800536a: 681a ldr r2, [r3, #0]
800536c: 4944 ldr r1, [pc, #272] ; (8005480 <BSP_LCD_DrawCircle+0x1dc>)
800536e: 4613 mov r3, r2
8005370: 005b lsls r3, r3, #1
8005372: 4413 add r3, r2
8005374: 009b lsls r3, r3, #2
8005376: 440b add r3, r1
8005378: 681b ldr r3, [r3, #0]
800537a: 461a mov r2, r3
800537c: 4621 mov r1, r4
800537e: f000 f881 bl 8005484 <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos + current_x), (Ypos + current_y), DrawProp[ActiveLayer].TextColor);
8005382: 693b ldr r3, [r7, #16]
8005384: b29a uxth r2, r3
8005386: 88fb ldrh r3, [r7, #6]
8005388: 4413 add r3, r2
800538a: b298 uxth r0, r3
800538c: 68fb ldr r3, [r7, #12]
800538e: b29a uxth r2, r3
8005390: 88bb ldrh r3, [r7, #4]
8005392: 4413 add r3, r2
8005394: b29c uxth r4, r3
8005396: 4b39 ldr r3, [pc, #228] ; (800547c <BSP_LCD_DrawCircle+0x1d8>)
8005398: 681a ldr r2, [r3, #0]
800539a: 4939 ldr r1, [pc, #228] ; (8005480 <BSP_LCD_DrawCircle+0x1dc>)
800539c: 4613 mov r3, r2
800539e: 005b lsls r3, r3, #1
80053a0: 4413 add r3, r2
80053a2: 009b lsls r3, r3, #2
80053a4: 440b add r3, r1
80053a6: 681b ldr r3, [r3, #0]
80053a8: 461a mov r2, r3
80053aa: 4621 mov r1, r4
80053ac: f000 f86a bl 8005484 <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos - current_x), (Ypos + current_y), DrawProp[ActiveLayer].TextColor);
80053b0: 693b ldr r3, [r7, #16]
80053b2: b29b uxth r3, r3
80053b4: 88fa ldrh r2, [r7, #6]
80053b6: 1ad3 subs r3, r2, r3
80053b8: b298 uxth r0, r3
80053ba: 68fb ldr r3, [r7, #12]
80053bc: b29a uxth r2, r3
80053be: 88bb ldrh r3, [r7, #4]
80053c0: 4413 add r3, r2
80053c2: b29c uxth r4, r3
80053c4: 4b2d ldr r3, [pc, #180] ; (800547c <BSP_LCD_DrawCircle+0x1d8>)
80053c6: 681a ldr r2, [r3, #0]
80053c8: 492d ldr r1, [pc, #180] ; (8005480 <BSP_LCD_DrawCircle+0x1dc>)
80053ca: 4613 mov r3, r2
80053cc: 005b lsls r3, r3, #1
80053ce: 4413 add r3, r2
80053d0: 009b lsls r3, r3, #2
80053d2: 440b add r3, r1
80053d4: 681b ldr r3, [r3, #0]
80053d6: 461a mov r2, r3
80053d8: 4621 mov r1, r4
80053da: f000 f853 bl 8005484 <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos + current_y), (Ypos + current_x), DrawProp[ActiveLayer].TextColor);
80053de: 68fb ldr r3, [r7, #12]
80053e0: b29a uxth r2, r3
80053e2: 88fb ldrh r3, [r7, #6]
80053e4: 4413 add r3, r2
80053e6: b298 uxth r0, r3
80053e8: 693b ldr r3, [r7, #16]
80053ea: b29a uxth r2, r3
80053ec: 88bb ldrh r3, [r7, #4]
80053ee: 4413 add r3, r2
80053f0: b29c uxth r4, r3
80053f2: 4b22 ldr r3, [pc, #136] ; (800547c <BSP_LCD_DrawCircle+0x1d8>)
80053f4: 681a ldr r2, [r3, #0]
80053f6: 4922 ldr r1, [pc, #136] ; (8005480 <BSP_LCD_DrawCircle+0x1dc>)
80053f8: 4613 mov r3, r2
80053fa: 005b lsls r3, r3, #1
80053fc: 4413 add r3, r2
80053fe: 009b lsls r3, r3, #2
8005400: 440b add r3, r1
8005402: 681b ldr r3, [r3, #0]
8005404: 461a mov r2, r3
8005406: 4621 mov r1, r4
8005408: f000 f83c bl 8005484 <BSP_LCD_DrawPixel>
BSP_LCD_DrawPixel((Xpos - current_y), (Ypos + current_x), DrawProp[ActiveLayer].TextColor);
800540c: 68fb ldr r3, [r7, #12]
800540e: b29b uxth r3, r3
8005410: 88fa ldrh r2, [r7, #6]
8005412: 1ad3 subs r3, r2, r3
8005414: b298 uxth r0, r3
8005416: 693b ldr r3, [r7, #16]
8005418: b29a uxth r2, r3
800541a: 88bb ldrh r3, [r7, #4]
800541c: 4413 add r3, r2
800541e: b29c uxth r4, r3
8005420: 4b16 ldr r3, [pc, #88] ; (800547c <BSP_LCD_DrawCircle+0x1d8>)
8005422: 681a ldr r2, [r3, #0]
8005424: 4916 ldr r1, [pc, #88] ; (8005480 <BSP_LCD_DrawCircle+0x1dc>)
8005426: 4613 mov r3, r2
8005428: 005b lsls r3, r3, #1
800542a: 4413 add r3, r2
800542c: 009b lsls r3, r3, #2
800542e: 440b add r3, r1
8005430: 681b ldr r3, [r3, #0]
8005432: 461a mov r2, r3
8005434: 4621 mov r1, r4
8005436: f000 f825 bl 8005484 <BSP_LCD_DrawPixel>
if (decision < 0)
800543a: 697b ldr r3, [r7, #20]
800543c: 2b00 cmp r3, #0
800543e: da06 bge.n 800544e <BSP_LCD_DrawCircle+0x1aa>
{
decision += (current_x << 2) + 6;
8005440: 693b ldr r3, [r7, #16]
8005442: 009a lsls r2, r3, #2
8005444: 697b ldr r3, [r7, #20]
8005446: 4413 add r3, r2
8005448: 3306 adds r3, #6
800544a: 617b str r3, [r7, #20]
800544c: e00a b.n 8005464 <BSP_LCD_DrawCircle+0x1c0>
}
else
{
decision += ((current_x - current_y) << 2) + 10;
800544e: 693a ldr r2, [r7, #16]
8005450: 68fb ldr r3, [r7, #12]
8005452: 1ad3 subs r3, r2, r3
8005454: 009a lsls r2, r3, #2
8005456: 697b ldr r3, [r7, #20]
8005458: 4413 add r3, r2
800545a: 330a adds r3, #10
800545c: 617b str r3, [r7, #20]
current_y--;
800545e: 68fb ldr r3, [r7, #12]
8005460: 3b01 subs r3, #1
8005462: 60fb str r3, [r7, #12]
}
current_x++;
8005464: 693b ldr r3, [r7, #16]
8005466: 3301 adds r3, #1
8005468: 613b str r3, [r7, #16]
while (current_x <= current_y)
800546a: 693a ldr r2, [r7, #16]
800546c: 68fb ldr r3, [r7, #12]
800546e: 429a cmp r2, r3
8005470: f67f af2b bls.w 80052ca <BSP_LCD_DrawCircle+0x26>
}
}
8005474: bf00 nop
8005476: 371c adds r7, #28
8005478: 46bd mov sp, r7
800547a: bd90 pop {r4, r7, pc}
800547c: 20020018 .word 0x20020018
8005480: 2006ba44 .word 0x2006ba44
08005484 <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)
{
8005484: b5b0 push {r4, r5, r7, lr}
8005486: b082 sub sp, #8
8005488: af00 add r7, sp, #0
800548a: 4603 mov r3, r0
800548c: 603a str r2, [r7, #0]
800548e: 80fb strh r3, [r7, #6]
8005490: 460b mov r3, r1
8005492: 80bb strh r3, [r7, #4]
/* Write data value to all SDRAM memory */
if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565)
8005494: 4b2a ldr r3, [pc, #168] ; (8005540 <BSP_LCD_DrawPixel+0xbc>)
8005496: 681b ldr r3, [r3, #0]
8005498: 4a2a ldr r2, [pc, #168] ; (8005544 <BSP_LCD_DrawPixel+0xc0>)
800549a: 2134 movs r1, #52 ; 0x34
800549c: fb01 f303 mul.w r3, r1, r3
80054a0: 4413 add r3, r2
80054a2: 3348 adds r3, #72 ; 0x48
80054a4: 681b ldr r3, [r3, #0]
80054a6: 2b02 cmp r3, #2
80054a8: d12f bne.n 800550a <BSP_LCD_DrawPixel+0x86>
{ /* RGB565 format */
*(__IO uint16_t*) (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (2*(Ypos*BSP_LCD_GetXSize() + Xpos))) = COLOR24TO16(RGB_Code);
80054aa: 4b25 ldr r3, [pc, #148] ; (8005540 <BSP_LCD_DrawPixel+0xbc>)
80054ac: 681b ldr r3, [r3, #0]
80054ae: 4a25 ldr r2, [pc, #148] ; (8005544 <BSP_LCD_DrawPixel+0xc0>)
80054b0: 2134 movs r1, #52 ; 0x34
80054b2: fb01 f303 mul.w r3, r1, r3
80054b6: 4413 add r3, r2
80054b8: 335c adds r3, #92 ; 0x5c
80054ba: 681c ldr r4, [r3, #0]
80054bc: 88bd ldrh r5, [r7, #4]
80054be: f7ff fbd3 bl 8004c68 <BSP_LCD_GetXSize>
80054c2: 4603 mov r3, r0
80054c4: fb03 f205 mul.w r2, r3, r5
80054c8: 88fb ldrh r3, [r7, #6]
80054ca: 4413 add r3, r2
80054cc: 005b lsls r3, r3, #1
80054ce: 4423 add r3, r4
80054d0: 4619 mov r1, r3
80054d2: 683b ldr r3, [r7, #0]
80054d4: 0c1b lsrs r3, r3, #16
80054d6: b29b uxth r3, r3
80054d8: 021b lsls r3, r3, #8
80054da: b29a uxth r2, r3
80054dc: 4b1a ldr r3, [pc, #104] ; (8005548 <BSP_LCD_DrawPixel+0xc4>)
80054de: 4013 ands r3, r2
80054e0: b29a uxth r2, r3
80054e2: 683b ldr r3, [r7, #0]
80054e4: 0a1b lsrs r3, r3, #8
80054e6: b29b uxth r3, r3
80054e8: 00db lsls r3, r3, #3
80054ea: b29b uxth r3, r3
80054ec: f403 63fc and.w r3, r3, #2016 ; 0x7e0
80054f0: b29b uxth r3, r3
80054f2: 4313 orrs r3, r2
80054f4: b29a uxth r2, r3
80054f6: 683b ldr r3, [r7, #0]
80054f8: 08db lsrs r3, r3, #3
80054fa: b29b uxth r3, r3
80054fc: f003 031f and.w r3, r3, #31
8005500: b29b uxth r3, r3
8005502: 4313 orrs r3, r2
8005504: b29b uxth r3, r3
8005506: 800b strh r3, [r1, #0]
}
else
{ /* ARGB8888 format */
*(__IO uint32_t*) (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (4*(Ypos*BSP_LCD_GetXSize() + Xpos))) = RGB_Code;
}
}
8005508: e015 b.n 8005536 <BSP_LCD_DrawPixel+0xb2>
*(__IO uint32_t*) (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + (4*(Ypos*BSP_LCD_GetXSize() + Xpos))) = RGB_Code;
800550a: 4b0d ldr r3, [pc, #52] ; (8005540 <BSP_LCD_DrawPixel+0xbc>)
800550c: 681b ldr r3, [r3, #0]
800550e: 4a0d ldr r2, [pc, #52] ; (8005544 <BSP_LCD_DrawPixel+0xc0>)
8005510: 2134 movs r1, #52 ; 0x34
8005512: fb01 f303 mul.w r3, r1, r3
8005516: 4413 add r3, r2
8005518: 335c adds r3, #92 ; 0x5c
800551a: 681c ldr r4, [r3, #0]
800551c: 88bd ldrh r5, [r7, #4]
800551e: f7ff fba3 bl 8004c68 <BSP_LCD_GetXSize>
8005522: 4603 mov r3, r0
8005524: fb03 f205 mul.w r2, r3, r5
8005528: 88fb ldrh r3, [r7, #6]
800552a: 4413 add r3, r2
800552c: 009b lsls r3, r3, #2
800552e: 4423 add r3, r4
8005530: 461a mov r2, r3
8005532: 683b ldr r3, [r7, #0]
8005534: 6013 str r3, [r2, #0]
}
8005536: bf00 nop
8005538: 3708 adds r7, #8
800553a: 46bd mov sp, r7
800553c: bdb0 pop {r4, r5, r7, pc}
800553e: bf00 nop
8005540: 20020018 .word 0x20020018
8005544: 2006c174 .word 0x2006c174
8005548: fffff800 .word 0xfffff800
0800554c <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)
{
800554c: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
8005550: b086 sub sp, #24
8005552: af02 add r7, sp, #8
8005554: 4604 mov r4, r0
8005556: 4608 mov r0, r1
8005558: 4611 mov r1, r2
800555a: 461a mov r2, r3
800555c: 4623 mov r3, r4
800555e: 80fb strh r3, [r7, #6]
8005560: 4603 mov r3, r0
8005562: 80bb strh r3, [r7, #4]
8005564: 460b mov r3, r1
8005566: 807b strh r3, [r7, #2]
8005568: 4613 mov r3, r2
800556a: 803b strh r3, [r7, #0]
uint32_t x_address = 0;
800556c: 2300 movs r3, #0
800556e: 60fb str r3, [r7, #12]
/* Set the text color */
BSP_LCD_SetTextColor(DrawProp[ActiveLayer].TextColor);
8005570: 4b30 ldr r3, [pc, #192] ; (8005634 <BSP_LCD_FillRect+0xe8>)
8005572: 681a ldr r2, [r3, #0]
8005574: 4930 ldr r1, [pc, #192] ; (8005638 <BSP_LCD_FillRect+0xec>)
8005576: 4613 mov r3, r2
8005578: 005b lsls r3, r3, #1
800557a: 4413 add r3, r2
800557c: 009b lsls r3, r3, #2
800557e: 440b add r3, r1
8005580: 681b ldr r3, [r3, #0]
8005582: 4618 mov r0, r3
8005584: f7ff fc44 bl 8004e10 <BSP_LCD_SetTextColor>
/* Get the rectangle start address */
if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565)
8005588: 4b2a ldr r3, [pc, #168] ; (8005634 <BSP_LCD_FillRect+0xe8>)
800558a: 681b ldr r3, [r3, #0]
800558c: 4a2b ldr r2, [pc, #172] ; (800563c <BSP_LCD_FillRect+0xf0>)
800558e: 2134 movs r1, #52 ; 0x34
8005590: fb01 f303 mul.w r3, r1, r3
8005594: 4413 add r3, r2
8005596: 3348 adds r3, #72 ; 0x48
8005598: 681b ldr r3, [r3, #0]
800559a: 2b02 cmp r3, #2
800559c: d114 bne.n 80055c8 <BSP_LCD_FillRect+0x7c>
{ /* RGB565 format */
x_address = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 2*(BSP_LCD_GetXSize()*Ypos + Xpos);
800559e: 4b25 ldr r3, [pc, #148] ; (8005634 <BSP_LCD_FillRect+0xe8>)
80055a0: 681b ldr r3, [r3, #0]
80055a2: 4a26 ldr r2, [pc, #152] ; (800563c <BSP_LCD_FillRect+0xf0>)
80055a4: 2134 movs r1, #52 ; 0x34
80055a6: fb01 f303 mul.w r3, r1, r3
80055aa: 4413 add r3, r2
80055ac: 335c adds r3, #92 ; 0x5c
80055ae: 681c ldr r4, [r3, #0]
80055b0: f7ff fb5a bl 8004c68 <BSP_LCD_GetXSize>
80055b4: 4602 mov r2, r0
80055b6: 88bb ldrh r3, [r7, #4]
80055b8: fb03 f202 mul.w r2, r3, r2
80055bc: 88fb ldrh r3, [r7, #6]
80055be: 4413 add r3, r2
80055c0: 005b lsls r3, r3, #1
80055c2: 4423 add r3, r4
80055c4: 60fb str r3, [r7, #12]
80055c6: e013 b.n 80055f0 <BSP_LCD_FillRect+0xa4>
}
else
{ /* ARGB8888 format */
x_address = (hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress) + 4*(BSP_LCD_GetXSize()*Ypos + Xpos);
80055c8: 4b1a ldr r3, [pc, #104] ; (8005634 <BSP_LCD_FillRect+0xe8>)
80055ca: 681b ldr r3, [r3, #0]
80055cc: 4a1b ldr r2, [pc, #108] ; (800563c <BSP_LCD_FillRect+0xf0>)
80055ce: 2134 movs r1, #52 ; 0x34
80055d0: fb01 f303 mul.w r3, r1, r3
80055d4: 4413 add r3, r2
80055d6: 335c adds r3, #92 ; 0x5c
80055d8: 681c ldr r4, [r3, #0]
80055da: f7ff fb45 bl 8004c68 <BSP_LCD_GetXSize>
80055de: 4602 mov r2, r0
80055e0: 88bb ldrh r3, [r7, #4]
80055e2: fb03 f202 mul.w r2, r3, r2
80055e6: 88fb ldrh r3, [r7, #6]
80055e8: 4413 add r3, r2
80055ea: 009b lsls r3, r3, #2
80055ec: 4423 add r3, r4
80055ee: 60fb str r3, [r7, #12]
}
/* Fill the rectangle */
LL_FillBuffer(ActiveLayer, (uint32_t *)x_address, Width, Height, (BSP_LCD_GetXSize() - Width), DrawProp[ActiveLayer].TextColor);
80055f0: 4b10 ldr r3, [pc, #64] ; (8005634 <BSP_LCD_FillRect+0xe8>)
80055f2: 681c ldr r4, [r3, #0]
80055f4: 68fd ldr r5, [r7, #12]
80055f6: 887e ldrh r6, [r7, #2]
80055f8: f8b7 8000 ldrh.w r8, [r7]
80055fc: f7ff fb34 bl 8004c68 <BSP_LCD_GetXSize>
8005600: 4602 mov r2, r0
8005602: 887b ldrh r3, [r7, #2]
8005604: 1ad1 subs r1, r2, r3
8005606: 4b0b ldr r3, [pc, #44] ; (8005634 <BSP_LCD_FillRect+0xe8>)
8005608: 681a ldr r2, [r3, #0]
800560a: 480b ldr r0, [pc, #44] ; (8005638 <BSP_LCD_FillRect+0xec>)
800560c: 4613 mov r3, r2
800560e: 005b lsls r3, r3, #1
8005610: 4413 add r3, r2
8005612: 009b lsls r3, r3, #2
8005614: 4403 add r3, r0
8005616: 681b ldr r3, [r3, #0]
8005618: 9301 str r3, [sp, #4]
800561a: 9100 str r1, [sp, #0]
800561c: 4643 mov r3, r8
800561e: 4632 mov r2, r6
8005620: 4629 mov r1, r5
8005622: 4620 mov r0, r4
8005624: f000 f964 bl 80058f0 <LL_FillBuffer>
}
8005628: bf00 nop
800562a: 3710 adds r7, #16
800562c: 46bd mov sp, r7
800562e: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
8005632: bf00 nop
8005634: 20020018 .word 0x20020018
8005638: 2006ba44 .word 0x2006ba44
800563c: 2006c174 .word 0x2006c174
08005640 <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)
{
8005640: b580 push {r7, lr}
8005642: b086 sub sp, #24
8005644: af00 add r7, sp, #0
8005646: 4603 mov r3, r0
8005648: 80fb strh r3, [r7, #6]
800564a: 460b mov r3, r1
800564c: 80bb strh r3, [r7, #4]
800564e: 4613 mov r3, r2
8005650: 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);
8005652: 887b ldrh r3, [r7, #2]
8005654: 005b lsls r3, r3, #1
8005656: f1c3 0303 rsb r3, r3, #3
800565a: 617b str r3, [r7, #20]
current_x = 0;
800565c: 2300 movs r3, #0
800565e: 613b str r3, [r7, #16]
current_y = Radius;
8005660: 887b ldrh r3, [r7, #2]
8005662: 60fb str r3, [r7, #12]
BSP_LCD_SetTextColor(DrawProp[ActiveLayer].TextColor);
8005664: 4b44 ldr r3, [pc, #272] ; (8005778 <BSP_LCD_FillCircle+0x138>)
8005666: 681a ldr r2, [r3, #0]
8005668: 4944 ldr r1, [pc, #272] ; (800577c <BSP_LCD_FillCircle+0x13c>)
800566a: 4613 mov r3, r2
800566c: 005b lsls r3, r3, #1
800566e: 4413 add r3, r2
8005670: 009b lsls r3, r3, #2
8005672: 440b add r3, r1
8005674: 681b ldr r3, [r3, #0]
8005676: 4618 mov r0, r3
8005678: f7ff fbca bl 8004e10 <BSP_LCD_SetTextColor>
while (current_x <= current_y)
800567c: e061 b.n 8005742 <BSP_LCD_FillCircle+0x102>
{
if(current_y > 0)
800567e: 68fb ldr r3, [r7, #12]
8005680: 2b00 cmp r3, #0
8005682: d021 beq.n 80056c8 <BSP_LCD_FillCircle+0x88>
{
BSP_LCD_DrawHLine(Xpos - current_y, Ypos + current_x, 2*current_y);
8005684: 68fb ldr r3, [r7, #12]
8005686: b29b uxth r3, r3
8005688: 88fa ldrh r2, [r7, #6]
800568a: 1ad3 subs r3, r2, r3
800568c: b298 uxth r0, r3
800568e: 693b ldr r3, [r7, #16]
8005690: b29a uxth r2, r3
8005692: 88bb ldrh r3, [r7, #4]
8005694: 4413 add r3, r2
8005696: b299 uxth r1, r3
8005698: 68fb ldr r3, [r7, #12]
800569a: b29b uxth r3, r3
800569c: 005b lsls r3, r3, #1
800569e: b29b uxth r3, r3
80056a0: 461a mov r2, r3
80056a2: f7ff fd0b bl 80050bc <BSP_LCD_DrawHLine>
BSP_LCD_DrawHLine(Xpos - current_y, Ypos - current_x, 2*current_y);
80056a6: 68fb ldr r3, [r7, #12]
80056a8: b29b uxth r3, r3
80056aa: 88fa ldrh r2, [r7, #6]
80056ac: 1ad3 subs r3, r2, r3
80056ae: b298 uxth r0, r3
80056b0: 693b ldr r3, [r7, #16]
80056b2: b29b uxth r3, r3
80056b4: 88ba ldrh r2, [r7, #4]
80056b6: 1ad3 subs r3, r2, r3
80056b8: b299 uxth r1, r3
80056ba: 68fb ldr r3, [r7, #12]
80056bc: b29b uxth r3, r3
80056be: 005b lsls r3, r3, #1
80056c0: b29b uxth r3, r3
80056c2: 461a mov r2, r3
80056c4: f7ff fcfa bl 80050bc <BSP_LCD_DrawHLine>
}
if(current_x > 0)
80056c8: 693b ldr r3, [r7, #16]
80056ca: 2b00 cmp r3, #0
80056cc: d021 beq.n 8005712 <BSP_LCD_FillCircle+0xd2>
{
BSP_LCD_DrawHLine(Xpos - current_x, Ypos - current_y, 2*current_x);
80056ce: 693b ldr r3, [r7, #16]
80056d0: b29b uxth r3, r3
80056d2: 88fa ldrh r2, [r7, #6]
80056d4: 1ad3 subs r3, r2, r3
80056d6: b298 uxth r0, r3
80056d8: 68fb ldr r3, [r7, #12]
80056da: b29b uxth r3, r3
80056dc: 88ba ldrh r2, [r7, #4]
80056de: 1ad3 subs r3, r2, r3
80056e0: b299 uxth r1, r3
80056e2: 693b ldr r3, [r7, #16]
80056e4: b29b uxth r3, r3
80056e6: 005b lsls r3, r3, #1
80056e8: b29b uxth r3, r3
80056ea: 461a mov r2, r3
80056ec: f7ff fce6 bl 80050bc <BSP_LCD_DrawHLine>
BSP_LCD_DrawHLine(Xpos - current_x, Ypos + current_y, 2*current_x);
80056f0: 693b ldr r3, [r7, #16]
80056f2: b29b uxth r3, r3
80056f4: 88fa ldrh r2, [r7, #6]
80056f6: 1ad3 subs r3, r2, r3
80056f8: b298 uxth r0, r3
80056fa: 68fb ldr r3, [r7, #12]
80056fc: b29a uxth r2, r3
80056fe: 88bb ldrh r3, [r7, #4]
8005700: 4413 add r3, r2
8005702: b299 uxth r1, r3
8005704: 693b ldr r3, [r7, #16]
8005706: b29b uxth r3, r3
8005708: 005b lsls r3, r3, #1
800570a: b29b uxth r3, r3
800570c: 461a mov r2, r3
800570e: f7ff fcd5 bl 80050bc <BSP_LCD_DrawHLine>
}
if (decision < 0)
8005712: 697b ldr r3, [r7, #20]
8005714: 2b00 cmp r3, #0
8005716: da06 bge.n 8005726 <BSP_LCD_FillCircle+0xe6>
{
decision += (current_x << 2) + 6;
8005718: 693b ldr r3, [r7, #16]
800571a: 009a lsls r2, r3, #2
800571c: 697b ldr r3, [r7, #20]
800571e: 4413 add r3, r2
8005720: 3306 adds r3, #6
8005722: 617b str r3, [r7, #20]
8005724: e00a b.n 800573c <BSP_LCD_FillCircle+0xfc>
}
else
{
decision += ((current_x - current_y) << 2) + 10;
8005726: 693a ldr r2, [r7, #16]
8005728: 68fb ldr r3, [r7, #12]
800572a: 1ad3 subs r3, r2, r3
800572c: 009a lsls r2, r3, #2
800572e: 697b ldr r3, [r7, #20]
8005730: 4413 add r3, r2
8005732: 330a adds r3, #10
8005734: 617b str r3, [r7, #20]
current_y--;
8005736: 68fb ldr r3, [r7, #12]
8005738: 3b01 subs r3, #1
800573a: 60fb str r3, [r7, #12]
}
current_x++;
800573c: 693b ldr r3, [r7, #16]
800573e: 3301 adds r3, #1
8005740: 613b str r3, [r7, #16]
while (current_x <= current_y)
8005742: 693a ldr r2, [r7, #16]
8005744: 68fb ldr r3, [r7, #12]
8005746: 429a cmp r2, r3
8005748: d999 bls.n 800567e <BSP_LCD_FillCircle+0x3e>
}
BSP_LCD_SetTextColor(DrawProp[ActiveLayer].TextColor);
800574a: 4b0b ldr r3, [pc, #44] ; (8005778 <BSP_LCD_FillCircle+0x138>)
800574c: 681a ldr r2, [r3, #0]
800574e: 490b ldr r1, [pc, #44] ; (800577c <BSP_LCD_FillCircle+0x13c>)
8005750: 4613 mov r3, r2
8005752: 005b lsls r3, r3, #1
8005754: 4413 add r3, r2
8005756: 009b lsls r3, r3, #2
8005758: 440b add r3, r1
800575a: 681b ldr r3, [r3, #0]
800575c: 4618 mov r0, r3
800575e: f7ff fb57 bl 8004e10 <BSP_LCD_SetTextColor>
BSP_LCD_DrawCircle(Xpos, Ypos, Radius);
8005762: 887a ldrh r2, [r7, #2]
8005764: 88b9 ldrh r1, [r7, #4]
8005766: 88fb ldrh r3, [r7, #6]
8005768: 4618 mov r0, r3
800576a: f7ff fd9b bl 80052a4 <BSP_LCD_DrawCircle>
}
800576e: bf00 nop
8005770: 3718 adds r7, #24
8005772: 46bd mov sp, r7
8005774: bd80 pop {r7, pc}
8005776: bf00 nop
8005778: 20020018 .word 0x20020018
800577c: 2006ba44 .word 0x2006ba44
08005780 <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)
{
8005780: b580 push {r7, lr}
8005782: b088 sub sp, #32
8005784: af00 add r7, sp, #0
8005786: 4603 mov r3, r0
8005788: 603a str r2, [r7, #0]
800578a: 80fb strh r3, [r7, #6]
800578c: 460b mov r3, r1
800578e: 80bb strh r3, [r7, #4]
uint32_t i = 0, j = 0;
8005790: 2300 movs r3, #0
8005792: 61fb str r3, [r7, #28]
8005794: 2300 movs r3, #0
8005796: 61bb str r3, [r7, #24]
uint8_t offset;
uint8_t *pchar;
uint32_t line;
//uint16_t b;
height = DrawProp[ActiveLayer].pFont->Height;
8005798: 4b53 ldr r3, [pc, #332] ; (80058e8 <DrawChar+0x168>)
800579a: 681a ldr r2, [r3, #0]
800579c: 4953 ldr r1, [pc, #332] ; (80058ec <DrawChar+0x16c>)
800579e: 4613 mov r3, r2
80057a0: 005b lsls r3, r3, #1
80057a2: 4413 add r3, r2
80057a4: 009b lsls r3, r3, #2
80057a6: 440b add r3, r1
80057a8: 3308 adds r3, #8
80057aa: 681b ldr r3, [r3, #0]
80057ac: 88db ldrh r3, [r3, #6]
80057ae: 827b strh r3, [r7, #18]
width = DrawProp[ActiveLayer].pFont->Width;
80057b0: 4b4d ldr r3, [pc, #308] ; (80058e8 <DrawChar+0x168>)
80057b2: 681a ldr r2, [r3, #0]
80057b4: 494d ldr r1, [pc, #308] ; (80058ec <DrawChar+0x16c>)
80057b6: 4613 mov r3, r2
80057b8: 005b lsls r3, r3, #1
80057ba: 4413 add r3, r2
80057bc: 009b lsls r3, r3, #2
80057be: 440b add r3, r1
80057c0: 3308 adds r3, #8
80057c2: 681b ldr r3, [r3, #0]
80057c4: 889b ldrh r3, [r3, #4]
80057c6: 823b strh r3, [r7, #16]
offset = 8 *((width + 7)/8) - width ;
80057c8: 8a3b ldrh r3, [r7, #16]
80057ca: 3307 adds r3, #7
80057cc: 2b00 cmp r3, #0
80057ce: da00 bge.n 80057d2 <DrawChar+0x52>
80057d0: 3307 adds r3, #7
80057d2: 10db asrs r3, r3, #3
80057d4: b2db uxtb r3, r3
80057d6: 00db lsls r3, r3, #3
80057d8: b2da uxtb r2, r3
80057da: 8a3b ldrh r3, [r7, #16]
80057dc: b2db uxtb r3, r3
80057de: 1ad3 subs r3, r2, r3
80057e0: 73fb strb r3, [r7, #15]
for(i = 0; i < height; i++)
80057e2: 2300 movs r3, #0
80057e4: 61fb str r3, [r7, #28]
80057e6: e076 b.n 80058d6 <DrawChar+0x156>
{
pchar = ((uint8_t *)c + (width + 7)/8 * i);
80057e8: 8a3b ldrh r3, [r7, #16]
80057ea: 3307 adds r3, #7
80057ec: 2b00 cmp r3, #0
80057ee: da00 bge.n 80057f2 <DrawChar+0x72>
80057f0: 3307 adds r3, #7
80057f2: 10db asrs r3, r3, #3
80057f4: 461a mov r2, r3
80057f6: 69fb ldr r3, [r7, #28]
80057f8: fb03 f302 mul.w r3, r3, r2
80057fc: 683a ldr r2, [r7, #0]
80057fe: 4413 add r3, r2
8005800: 60bb str r3, [r7, #8]
switch(((width + 7)/8))
8005802: 8a3b ldrh r3, [r7, #16]
8005804: 3307 adds r3, #7
8005806: 2b00 cmp r3, #0
8005808: da00 bge.n 800580c <DrawChar+0x8c>
800580a: 3307 adds r3, #7
800580c: 10db asrs r3, r3, #3
800580e: 2b01 cmp r3, #1
8005810: d002 beq.n 8005818 <DrawChar+0x98>
8005812: 2b02 cmp r3, #2
8005814: d004 beq.n 8005820 <DrawChar+0xa0>
8005816: e00c b.n 8005832 <DrawChar+0xb2>
{
case 1:
line = pchar[0];
8005818: 68bb ldr r3, [r7, #8]
800581a: 781b ldrb r3, [r3, #0]
800581c: 617b str r3, [r7, #20]
break;
800581e: e016 b.n 800584e <DrawChar+0xce>
case 2:
line = (pchar[0]<< 8) | pchar[1];
8005820: 68bb ldr r3, [r7, #8]
8005822: 781b ldrb r3, [r3, #0]
8005824: 021b lsls r3, r3, #8
8005826: 68ba ldr r2, [r7, #8]
8005828: 3201 adds r2, #1
800582a: 7812 ldrb r2, [r2, #0]
800582c: 4313 orrs r3, r2
800582e: 617b str r3, [r7, #20]
break;
8005830: e00d b.n 800584e <DrawChar+0xce>
case 3:
default:
line = (pchar[0]<< 16) | (pchar[1]<< 8) | pchar[2];
8005832: 68bb ldr r3, [r7, #8]
8005834: 781b ldrb r3, [r3, #0]
8005836: 041a lsls r2, r3, #16
8005838: 68bb ldr r3, [r7, #8]
800583a: 3301 adds r3, #1
800583c: 781b ldrb r3, [r3, #0]
800583e: 021b lsls r3, r3, #8
8005840: 4313 orrs r3, r2
8005842: 68ba ldr r2, [r7, #8]
8005844: 3202 adds r2, #2
8005846: 7812 ldrb r2, [r2, #0]
8005848: 4313 orrs r3, r2
800584a: 617b str r3, [r7, #20]
break;
800584c: bf00 nop
}
for (j = 0; j < width; j++)
800584e: 2300 movs r3, #0
8005850: 61bb str r3, [r7, #24]
8005852: e036 b.n 80058c2 <DrawChar+0x142>
{
if(line & (1 << (width- j + offset- 1)))
8005854: 8a3a ldrh r2, [r7, #16]
8005856: 69bb ldr r3, [r7, #24]
8005858: 1ad2 subs r2, r2, r3
800585a: 7bfb ldrb r3, [r7, #15]
800585c: 4413 add r3, r2
800585e: 3b01 subs r3, #1
8005860: 2201 movs r2, #1
8005862: fa02 f303 lsl.w r3, r2, r3
8005866: 461a mov r2, r3
8005868: 697b ldr r3, [r7, #20]
800586a: 4013 ands r3, r2
800586c: 2b00 cmp r3, #0
800586e: d012 beq.n 8005896 <DrawChar+0x116>
{
BSP_LCD_DrawPixel((Xpos + j), Ypos, DrawProp[ActiveLayer].TextColor);
8005870: 69bb ldr r3, [r7, #24]
8005872: b29a uxth r2, r3
8005874: 88fb ldrh r3, [r7, #6]
8005876: 4413 add r3, r2
8005878: b298 uxth r0, r3
800587a: 4b1b ldr r3, [pc, #108] ; (80058e8 <DrawChar+0x168>)
800587c: 681a ldr r2, [r3, #0]
800587e: 491b ldr r1, [pc, #108] ; (80058ec <DrawChar+0x16c>)
8005880: 4613 mov r3, r2
8005882: 005b lsls r3, r3, #1
8005884: 4413 add r3, r2
8005886: 009b lsls r3, r3, #2
8005888: 440b add r3, r1
800588a: 681a ldr r2, [r3, #0]
800588c: 88bb ldrh r3, [r7, #4]
800588e: 4619 mov r1, r3
8005890: f7ff fdf8 bl 8005484 <BSP_LCD_DrawPixel>
8005894: e012 b.n 80058bc <DrawChar+0x13c>
}
else
{
BSP_LCD_DrawPixel((Xpos + j), Ypos, DrawProp[ActiveLayer].BackColor);
8005896: 69bb ldr r3, [r7, #24]
8005898: b29a uxth r2, r3
800589a: 88fb ldrh r3, [r7, #6]
800589c: 4413 add r3, r2
800589e: b298 uxth r0, r3
80058a0: 4b11 ldr r3, [pc, #68] ; (80058e8 <DrawChar+0x168>)
80058a2: 681a ldr r2, [r3, #0]
80058a4: 4911 ldr r1, [pc, #68] ; (80058ec <DrawChar+0x16c>)
80058a6: 4613 mov r3, r2
80058a8: 005b lsls r3, r3, #1
80058aa: 4413 add r3, r2
80058ac: 009b lsls r3, r3, #2
80058ae: 440b add r3, r1
80058b0: 3304 adds r3, #4
80058b2: 681a ldr r2, [r3, #0]
80058b4: 88bb ldrh r3, [r7, #4]
80058b6: 4619 mov r1, r3
80058b8: f7ff fde4 bl 8005484 <BSP_LCD_DrawPixel>
for (j = 0; j < width; j++)
80058bc: 69bb ldr r3, [r7, #24]
80058be: 3301 adds r3, #1
80058c0: 61bb str r3, [r7, #24]
80058c2: 8a3a ldrh r2, [r7, #16]
80058c4: 69bb ldr r3, [r7, #24]
80058c6: 429a cmp r2, r3
80058c8: d8c4 bhi.n 8005854 <DrawChar+0xd4>
}
}
Ypos++;
80058ca: 88bb ldrh r3, [r7, #4]
80058cc: 3301 adds r3, #1
80058ce: 80bb strh r3, [r7, #4]
for(i = 0; i < height; i++)
80058d0: 69fb ldr r3, [r7, #28]
80058d2: 3301 adds r3, #1
80058d4: 61fb str r3, [r7, #28]
80058d6: 8a7a ldrh r2, [r7, #18]
80058d8: 69fb ldr r3, [r7, #28]
80058da: 429a cmp r2, r3
80058dc: d884 bhi.n 80057e8 <DrawChar+0x68>
}
}
80058de: bf00 nop
80058e0: 3720 adds r7, #32
80058e2: 46bd mov sp, r7
80058e4: bd80 pop {r7, pc}
80058e6: bf00 nop
80058e8: 20020018 .word 0x20020018
80058ec: 2006ba44 .word 0x2006ba44
080058f0 <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)
{
80058f0: b580 push {r7, lr}
80058f2: b086 sub sp, #24
80058f4: af02 add r7, sp, #8
80058f6: 60f8 str r0, [r7, #12]
80058f8: 60b9 str r1, [r7, #8]
80058fa: 607a str r2, [r7, #4]
80058fc: 603b str r3, [r7, #0]
/* Register to memory mode with ARGB8888 as color Mode */
hDma2dHandler.Init.Mode = DMA2D_R2M;
80058fe: 4b1e ldr r3, [pc, #120] ; (8005978 <LL_FillBuffer+0x88>)
8005900: f44f 3240 mov.w r2, #196608 ; 0x30000
8005904: 605a str r2, [r3, #4]
if(hLtdcHandler.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB565)
8005906: 4b1d ldr r3, [pc, #116] ; (800597c <LL_FillBuffer+0x8c>)
8005908: 681b ldr r3, [r3, #0]
800590a: 4a1d ldr r2, [pc, #116] ; (8005980 <LL_FillBuffer+0x90>)
800590c: 2134 movs r1, #52 ; 0x34
800590e: fb01 f303 mul.w r3, r1, r3
8005912: 4413 add r3, r2
8005914: 3348 adds r3, #72 ; 0x48
8005916: 681b ldr r3, [r3, #0]
8005918: 2b02 cmp r3, #2
800591a: d103 bne.n 8005924 <LL_FillBuffer+0x34>
hDma2dHandler.Init.ColorMode = DMA2D_RGB565;
800591c: 4b16 ldr r3, [pc, #88] ; (8005978 <LL_FillBuffer+0x88>)
800591e: 2202 movs r2, #2
8005920: 609a str r2, [r3, #8]
8005922: e002 b.n 800592a <LL_FillBuffer+0x3a>
else hDma2dHandler.Init.ColorMode = DMA2D_ARGB8888;
8005924: 4b14 ldr r3, [pc, #80] ; (8005978 <LL_FillBuffer+0x88>)
8005926: 2200 movs r2, #0
8005928: 609a str r2, [r3, #8]
hDma2dHandler.Init.OutputOffset = OffLine;
800592a: 4a13 ldr r2, [pc, #76] ; (8005978 <LL_FillBuffer+0x88>)
800592c: 69bb ldr r3, [r7, #24]
800592e: 60d3 str r3, [r2, #12]
hDma2dHandler.Instance = DMA2D;
8005930: 4b11 ldr r3, [pc, #68] ; (8005978 <LL_FillBuffer+0x88>)
8005932: 4a14 ldr r2, [pc, #80] ; (8005984 <LL_FillBuffer+0x94>)
8005934: 601a str r2, [r3, #0]
if(HAL_DMA2D_Init(&hDma2dHandler) == HAL_OK)
8005936: 4810 ldr r0, [pc, #64] ; (8005978 <LL_FillBuffer+0x88>)
8005938: f00c f9da bl 8011cf0 <HAL_DMA2D_Init>
800593c: 4603 mov r3, r0
800593e: 2b00 cmp r3, #0
8005940: d115 bne.n 800596e <LL_FillBuffer+0x7e>
{
if(HAL_DMA2D_ConfigLayer(&hDma2dHandler, LayerIndex) == HAL_OK)
8005942: 68f9 ldr r1, [r7, #12]
8005944: 480c ldr r0, [pc, #48] ; (8005978 <LL_FillBuffer+0x88>)
8005946: f00c fb41 bl 8011fcc <HAL_DMA2D_ConfigLayer>
800594a: 4603 mov r3, r0
800594c: 2b00 cmp r3, #0
800594e: d10e bne.n 800596e <LL_FillBuffer+0x7e>
{
if (HAL_DMA2D_Start(&hDma2dHandler, ColorIndex, (uint32_t)pDst, xSize, ySize) == HAL_OK)
8005950: 68ba ldr r2, [r7, #8]
8005952: 683b ldr r3, [r7, #0]
8005954: 9300 str r3, [sp, #0]
8005956: 687b ldr r3, [r7, #4]
8005958: 69f9 ldr r1, [r7, #28]
800595a: 4807 ldr r0, [pc, #28] ; (8005978 <LL_FillBuffer+0x88>)
800595c: f00c fa22 bl 8011da4 <HAL_DMA2D_Start>
8005960: 4603 mov r3, r0
8005962: 2b00 cmp r3, #0
8005964: d103 bne.n 800596e <LL_FillBuffer+0x7e>
{
HAL_DMA2D_PollForTransfer(&hDma2dHandler, 30);
8005966: 211e movs r1, #30
8005968: 4803 ldr r0, [pc, #12] ; (8005978 <LL_FillBuffer+0x88>)
800596a: f00c fa46 bl 8011dfa <HAL_DMA2D_PollForTransfer>
}
}
}
}
800596e: bf00 nop
8005970: 3710 adds r7, #16
8005972: 46bd mov sp, r7
8005974: bd80 pop {r7, pc}
8005976: bf00 nop
8005978: 2006b9ec .word 0x2006b9ec
800597c: 20020018 .word 0x20020018
8005980: 2006c174 .word 0x2006c174
8005984: 4002b000 .word 0x4002b000
08005988 <DrawImage>:
}
}
void DrawImage(const GUI_BITMAP * pBM, uint16_t x0, uint16_t y0)
{
8005988: b580 push {r7, lr}
800598a: b088 sub sp, #32
800598c: af02 add r7, sp, #8
800598e: 6078 str r0, [r7, #4]
8005990: 460b mov r3, r1
8005992: 807b strh r3, [r7, #2]
8005994: 4613 mov r3, r2
8005996: 803b strh r3, [r7, #0]
//HAL_StatusTypeDef hal_status = HAL_OK;
uint32_t Xaddress = 0;
8005998: 2300 movs r3, #0
800599a: 617b str r3, [r7, #20]
uint8_t * p;
uint16_t xSize = pBM->XSize;
800599c: 687b ldr r3, [r7, #4]
800599e: 881b ldrh r3, [r3, #0]
80059a0: 827b strh r3, [r7, #18]
uint16_t ySize = pBM->YSize;
80059a2: 687b ldr r3, [r7, #4]
80059a4: 885b ldrh r3, [r3, #2]
80059a6: 823b strh r3, [r7, #16]
//uint16_t BytesPerLine = pBM->BytesPerLine;
p = (uint8_t *) pBM->pData;
80059a8: 687b ldr r3, [r7, #4]
80059aa: 689b ldr r3, [r3, #8]
80059ac: 60fb str r3, [r7, #12]
Xaddress = hLtdcHandler.LayerCfg[ActiveLayer].FBStartAdress + ((320 * y0 + x0) << 1);
80059ae: 4b39 ldr r3, [pc, #228] ; (8005a94 <DrawImage+0x10c>)
80059b0: 681b ldr r3, [r3, #0]
80059b2: 4a39 ldr r2, [pc, #228] ; (8005a98 <DrawImage+0x110>)
80059b4: 2134 movs r1, #52 ; 0x34
80059b6: fb01 f303 mul.w r3, r1, r3
80059ba: 4413 add r3, r2
80059bc: 335c adds r3, #92 ; 0x5c
80059be: 6819 ldr r1, [r3, #0]
80059c0: 883a ldrh r2, [r7, #0]
80059c2: 4613 mov r3, r2
80059c4: 009b lsls r3, r3, #2
80059c6: 4413 add r3, r2
80059c8: 019b lsls r3, r3, #6
80059ca: 461a mov r2, r3
80059cc: 887b ldrh r3, [r7, #2]
80059ce: 4413 add r3, r2
80059d0: 005b lsls r3, r3, #1
80059d2: 440b add r3, r1
80059d4: 617b str r3, [r7, #20]
hDma2dHandler.Init.Mode = DMA2D_M2M;
80059d6: 4b31 ldr r3, [pc, #196] ; (8005a9c <DrawImage+0x114>)
80059d8: 2200 movs r2, #0
80059da: 605a str r2, [r3, #4]
hDma2dHandler.Init.ColorMode = DMA2D_RGB565;
80059dc: 4b2f ldr r3, [pc, #188] ; (8005a9c <DrawImage+0x114>)
80059de: 2202 movs r2, #2
80059e0: 609a str r2, [r3, #8]
hDma2dHandler.Init.OutputOffset = 320 - xSize;
80059e2: 8a7b ldrh r3, [r7, #18]
80059e4: f5c3 73a0 rsb r3, r3, #320 ; 0x140
80059e8: 461a mov r2, r3
80059ea: 4b2c ldr r3, [pc, #176] ; (8005a9c <DrawImage+0x114>)
80059ec: 60da str r2, [r3, #12]
/* DMA2D Callbacks Configuration */
hDma2dHandler.XferCpltCallback = TransferComplete;
80059ee: 4b2b ldr r3, [pc, #172] ; (8005a9c <DrawImage+0x114>)
80059f0: 4a2b ldr r2, [pc, #172] ; (8005aa0 <DrawImage+0x118>)
80059f2: 619a str r2, [r3, #24]
hDma2dHandler.XferErrorCallback = TransferError;
80059f4: 4b29 ldr r3, [pc, #164] ; (8005a9c <DrawImage+0x114>)
80059f6: 4a2b ldr r2, [pc, #172] ; (8005aa4 <DrawImage+0x11c>)
80059f8: 61da str r2, [r3, #28]
/* Foreground layer Configuration : layer 1 */
hDma2dHandler.LayerCfg[ActiveLayer].AlphaMode = DMA2D_NO_MODIF_ALPHA;
80059fa: 4b26 ldr r3, [pc, #152] ; (8005a94 <DrawImage+0x10c>)
80059fc: 681a ldr r2, [r3, #0]
80059fe: 4927 ldr r1, [pc, #156] ; (8005a9c <DrawImage+0x114>)
8005a00: 4613 mov r3, r2
8005a02: 005b lsls r3, r3, #1
8005a04: 4413 add r3, r2
8005a06: 00db lsls r3, r3, #3
8005a08: 440b add r3, r1
8005a0a: 3328 adds r3, #40 ; 0x28
8005a0c: 2200 movs r2, #0
8005a0e: 601a str r2, [r3, #0]
hDma2dHandler.LayerCfg[ActiveLayer].InputAlpha = 255; /* Alpha fully opaque */
8005a10: 4b20 ldr r3, [pc, #128] ; (8005a94 <DrawImage+0x10c>)
8005a12: 681a ldr r2, [r3, #0]
8005a14: 4921 ldr r1, [pc, #132] ; (8005a9c <DrawImage+0x114>)
8005a16: 4613 mov r3, r2
8005a18: 005b lsls r3, r3, #1
8005a1a: 4413 add r3, r2
8005a1c: 00db lsls r3, r3, #3
8005a1e: 440b add r3, r1
8005a20: 332c adds r3, #44 ; 0x2c
8005a22: 22ff movs r2, #255 ; 0xff
8005a24: 601a str r2, [r3, #0]
hDma2dHandler.LayerCfg[ActiveLayer].InputColorMode = DMA2D_INPUT_RGB565; /* Layer 1 input format is ARGB8888 (32 bpp) */
8005a26: 4b1b ldr r3, [pc, #108] ; (8005a94 <DrawImage+0x10c>)
8005a28: 681a ldr r2, [r3, #0]
8005a2a: 491c ldr r1, [pc, #112] ; (8005a9c <DrawImage+0x114>)
8005a2c: 4613 mov r3, r2
8005a2e: 005b lsls r3, r3, #1
8005a30: 4413 add r3, r2
8005a32: 00db lsls r3, r3, #3
8005a34: 440b add r3, r1
8005a36: 3324 adds r3, #36 ; 0x24
8005a38: 2202 movs r2, #2
8005a3a: 601a str r2, [r3, #0]
hDma2dHandler.LayerCfg[ActiveLayer].InputOffset = 0; /* No offset in input */
8005a3c: 4b15 ldr r3, [pc, #84] ; (8005a94 <DrawImage+0x10c>)
8005a3e: 681a ldr r2, [r3, #0]
8005a40: 4916 ldr r1, [pc, #88] ; (8005a9c <DrawImage+0x114>)
8005a42: 4613 mov r3, r2
8005a44: 005b lsls r3, r3, #1
8005a46: 4413 add r3, r2
8005a48: 00db lsls r3, r3, #3
8005a4a: 440b add r3, r1
8005a4c: 3320 adds r3, #32
8005a4e: 2200 movs r2, #0
8005a50: 601a str r2, [r3, #0]
hDma2dHandler.Instance = DMA2D;
8005a52: 4b12 ldr r3, [pc, #72] ; (8005a9c <DrawImage+0x114>)
8005a54: 4a14 ldr r2, [pc, #80] ; (8005aa8 <DrawImage+0x120>)
8005a56: 601a str r2, [r3, #0]
/* DMA2D Initialization */
HAL_DMA2D_Init(&hDma2dHandler);
8005a58: 4810 ldr r0, [pc, #64] ; (8005a9c <DrawImage+0x114>)
8005a5a: f00c f949 bl 8011cf0 <HAL_DMA2D_Init>
HAL_DMA2D_ConfigLayer(&hDma2dHandler, ActiveLayer);
8005a5e: 4b0d ldr r3, [pc, #52] ; (8005a94 <DrawImage+0x10c>)
8005a60: 681b ldr r3, [r3, #0]
8005a62: 4619 mov r1, r3
8005a64: 480d ldr r0, [pc, #52] ; (8005a9c <DrawImage+0x114>)
8005a66: f00c fab1 bl 8011fcc <HAL_DMA2D_ConfigLayer>
DMA2D_TransferOk = 0;
8005a6a: 4b10 ldr r3, [pc, #64] ; (8005aac <DrawImage+0x124>)
8005a6c: 2200 movs r2, #0
8005a6e: 601a str r2, [r3, #0]
HAL_DMA2D_Start(&hDma2dHandler, (uint32_t) p, Xaddress, xSize, ySize);
8005a70: 68f9 ldr r1, [r7, #12]
8005a72: 8a7a ldrh r2, [r7, #18]
8005a74: 8a3b ldrh r3, [r7, #16]
8005a76: 9300 str r3, [sp, #0]
8005a78: 4613 mov r3, r2
8005a7a: 697a ldr r2, [r7, #20]
8005a7c: 4807 ldr r0, [pc, #28] ; (8005a9c <DrawImage+0x114>)
8005a7e: f00c f991 bl 8011da4 <HAL_DMA2D_Start>
HAL_DMA2D_PollForTransfer(&hDma2dHandler, 30);
8005a82: 211e movs r1, #30
8005a84: 4805 ldr r0, [pc, #20] ; (8005a9c <DrawImage+0x114>)
8005a86: f00c f9b8 bl 8011dfa <HAL_DMA2D_PollForTransfer>
//SCB_CleanInvalidateDCache();
}
8005a8a: bf00 nop
8005a8c: 3718 adds r7, #24
8005a8e: 46bd mov sp, r7
8005a90: bd80 pop {r7, pc}
8005a92: bf00 nop
8005a94: 20020018 .word 0x20020018
8005a98: 2006c174 .word 0x2006c174
8005a9c: 2006b9ec .word 0x2006b9ec
8005aa0: 08005ab1 .word 0x08005ab1
8005aa4: 08005ad1 .word 0x08005ad1
8005aa8: 4002b000 .word 0x4002b000
8005aac: 2002001c .word 0x2002001c
08005ab0 <TransferComplete>:
static void TransferComplete(DMA2D_HandleTypeDef *hdma2d)
{
8005ab0: b480 push {r7}
8005ab2: b083 sub sp, #12
8005ab4: af00 add r7, sp, #0
8005ab6: 6078 str r0, [r7, #4]
DMA2D_TransferOk = 1;
8005ab8: 4b04 ldr r3, [pc, #16] ; (8005acc <TransferComplete+0x1c>)
8005aba: 2201 movs r2, #1
8005abc: 601a str r2, [r3, #0]
}
8005abe: bf00 nop
8005ac0: 370c adds r7, #12
8005ac2: 46bd mov sp, r7
8005ac4: f85d 7b04 ldr.w r7, [sp], #4
8005ac8: 4770 bx lr
8005aca: bf00 nop
8005acc: 2002001c .word 0x2002001c
08005ad0 <TransferError>:
static void TransferError(DMA2D_HandleTypeDef *hdma2d)
{
8005ad0: b480 push {r7}
8005ad2: b083 sub sp, #12
8005ad4: af00 add r7, sp, #0
8005ad6: 6078 str r0, [r7, #4]
}
8005ad8: bf00 nop
8005ada: 370c adds r7, #12
8005adc: 46bd mov sp, r7
8005ade: f85d 7b04 ldr.w r7, [sp], #4
8005ae2: 4770 bx lr
08005ae4 <LCD_Refresh>:
void LCD_Refresh(void)
{
8005ae4: b580 push {r7, lr}
8005ae6: af00 add r7, sp, #0
ActiveLayer ^= 1;
8005ae8: 4b0e ldr r3, [pc, #56] ; (8005b24 <LCD_Refresh+0x40>)
8005aea: 681b ldr r3, [r3, #0]
8005aec: f083 0301 eor.w r3, r3, #1
8005af0: 4a0c ldr r2, [pc, #48] ; (8005b24 <LCD_Refresh+0x40>)
8005af2: 6013 str r3, [r2, #0]
RenderingLayer ^= 1;
8005af4: 4b0c ldr r3, [pc, #48] ; (8005b28 <LCD_Refresh+0x44>)
8005af6: 681b ldr r3, [r3, #0]
8005af8: f083 0301 eor.w r3, r3, #1
8005afc: 4a0a ldr r2, [pc, #40] ; (8005b28 <LCD_Refresh+0x44>)
8005afe: 6013 str r3, [r2, #0]
BSP_LCD_SetLayerVisible_NoReload(ActiveLayer, DISABLE);
8005b00: 4b08 ldr r3, [pc, #32] ; (8005b24 <LCD_Refresh+0x40>)
8005b02: 681b ldr r3, [r3, #0]
8005b04: 2100 movs r1, #0
8005b06: 4618 mov r0, r3
8005b08: f7ff f926 bl 8004d58 <BSP_LCD_SetLayerVisible_NoReload>
BSP_LCD_SetLayerVisible_NoReload(RenderingLayer, ENABLE);
8005b0c: 4b06 ldr r3, [pc, #24] ; (8005b28 <LCD_Refresh+0x44>)
8005b0e: 681b ldr r3, [r3, #0]
8005b10: 2101 movs r1, #1
8005b12: 4618 mov r0, r3
8005b14: f7ff f920 bl 8004d58 <BSP_LCD_SetLayerVisible_NoReload>
HAL_LTDC_Reload(&hLtdcHandler, LTDC_RELOAD_IMMEDIATE);
8005b18: 2101 movs r1, #1
8005b1a: 4804 ldr r0, [pc, #16] ; (8005b2c <LCD_Refresh+0x48>)
8005b1c: f00d fac6 bl 80130ac <HAL_LTDC_Reload>
//BSP_LCD_Reload(LCD_RELOAD_VERTICAL_BLANKING);
}
8005b20: bf00 nop
8005b22: bd80 pop {r7, pc}
8005b24: 20020018 .word 0x20020018
8005b28: 2006ba5c .word 0x2006ba5c
8005b2c: 2006c174 .word 0x2006c174
08005b30 <HAL_LTDC_LineEventCallback>:
void HAL_LTDC_LineEventCallback(LTDC_HandleTypeDef *hltdc)
{
8005b30: b580 push {r7, lr}
8005b32: b082 sub sp, #8
8005b34: af00 add r7, sp, #0
8005b36: 6078 str r0, [r7, #4]
if(RefreshScreen)
8005b38: 4b06 ldr r3, [pc, #24] ; (8005b54 <HAL_LTDC_LineEventCallback+0x24>)
8005b3a: 781b ldrb r3, [r3, #0]
8005b3c: b2db uxtb r3, r3
8005b3e: 2b00 cmp r3, #0
8005b40: d004 beq.n 8005b4c <HAL_LTDC_LineEventCallback+0x1c>
{
LCD_Refresh();
8005b42: f7ff ffcf bl 8005ae4 <LCD_Refresh>
RefreshScreen = false;
8005b46: 4b03 ldr r3, [pc, #12] ; (8005b54 <HAL_LTDC_LineEventCallback+0x24>)
8005b48: 2200 movs r2, #0
8005b4a: 701a strb r2, [r3, #0]
}
}
8005b4c: bf00 nop
8005b4e: 3708 adds r7, #8
8005b50: 46bd mov sp, r7
8005b52: bd80 pop {r7, pc}
8005b54: 2006ba60 .word 0x2006ba60
08005b58 <main>:
const char _VERSION[] = "VER 2.203.0\0";
volatile char _SERIAL_DRAW[10] = {'S', 'N', ' ', '2', '4', '0', '0', '3', 0, 0};
int main(void)
{
8005b58: b580 push {r7, lr}
8005b5a: b092 sub sp, #72 ; 0x48
8005b5c: af00 add r7, sp, #0
uint32_t cnt = 0, i, j, k, l;
8005b5e: 2300 movs r3, #0
8005b60: 63fb str r3, [r7, #60] ; 0x3c
float32_t f;
char str[50];
uint32_t keys = 0;
8005b62: 2300 movs r3, #0
8005b64: 63bb str r3, [r7, #56] ; 0x38
HAL_Init();
8005b66: f00b fcd9 bl 801151c <HAL_Init>
SystemClock_Config();
8005b6a: f000 f8df bl 8005d2c <SystemClock_Config>
MX_GPIO_Init();
8005b6e: f7fa fe13 bl 8000798 <MX_GPIO_Init>
initFlash();
8005b72: f7fa fd77 bl 8000664 <initFlash>
MX_DMA2D_Init();
8005b76: f7fa fd1d bl 80005b4 <MX_DMA2D_Init>
MX_TIM7_Init();
8005b7a: f009 ff0d bl 800f998 <MX_TIM7_Init>
MX_LTDC_Init();
8005b7e: f7fe fe6f bl 8004860 <MX_LTDC_Init>
initKeys();
8005b82: f7fa fefd bl 8000980 <initKeys>
/////////////////////////////// todo
CNT_CHANNELS = 4;
8005b86: 4b5e ldr r3, [pc, #376] ; (8005d00 <main+0x1a8>)
8005b88: 2204 movs r2, #4
8005b8a: 601a str r2, [r3, #0]
ACTIVE_CHANNEL = Ch1;
8005b8c: 4b5d ldr r3, [pc, #372] ; (8005d04 <main+0x1ac>)
8005b8e: 2200 movs r2, #0
8005b90: 601a str r2, [r3, #0]
menupos = Hp;
8005b92: 4b5d ldr r3, [pc, #372] ; (8005d08 <main+0x1b0>)
8005b94: 2200 movs r2, #0
8005b96: 701a strb r2, [r3, #0]
for(i = 0; i < 16; i++)
8005b98: 2300 movs r3, #0
8005b9a: 647b str r3, [r7, #68] ; 0x44
8005b9c: e05d b.n 8005c5a <main+0x102>
{
pardata.amplif[i].IIN = CHARGE;
8005b9e: 4a5b ldr r2, [pc, #364] ; (8005d0c <main+0x1b4>)
8005ba0: 6c7b ldr r3, [r7, #68] ; 0x44
8005ba2: 015b lsls r3, r3, #5
8005ba4: 4413 add r3, r2
8005ba6: 2200 movs r2, #0
8005ba8: 801a strh r2, [r3, #0]
pardata.amplif[i].IFV = Hp0_2;
8005baa: 4a58 ldr r2, [pc, #352] ; (8005d0c <main+0x1b4>)
8005bac: 6c7b ldr r3, [r7, #68] ; 0x44
8005bae: 015b lsls r3, r3, #5
8005bb0: 4413 add r3, r2
8005bb2: 3302 adds r3, #2
8005bb4: 2200 movs r2, #0
8005bb6: 801a strh r2, [r3, #0]
pardata.amplif[i].IFN = Lp100000;
8005bb8: 4a54 ldr r2, [pc, #336] ; (8005d0c <main+0x1b4>)
8005bba: 6c7b ldr r3, [r7, #68] ; 0x44
8005bbc: 015b lsls r3, r3, #5
8005bbe: 4413 add r3, r2
8005bc0: 3304 adds r3, #4
8005bc2: 2207 movs r2, #7
8005bc4: 801a strh r2, [r3, #0]
pardata.amplif[i].IKU = Ku1000;
8005bc6: 4a51 ldr r2, [pc, #324] ; (8005d0c <main+0x1b4>)
8005bc8: 6c7b ldr r3, [r7, #68] ; 0x44
8005bca: 015b lsls r3, r3, #5
8005bcc: 4413 add r3, r2
8005bce: 3306 adds r3, #6
8005bd0: 220c movs r2, #12
8005bd2: 801a strh r2, [r3, #0]
pardata.amplif[i].IKS = 0;
8005bd4: 4a4d ldr r2, [pc, #308] ; (8005d0c <main+0x1b4>)
8005bd6: 6c7b ldr r3, [r7, #68] ; 0x44
8005bd8: 015b lsls r3, r3, #5
8005bda: 4413 add r3, r2
8005bdc: 330c adds r3, #12
8005bde: 2200 movs r2, #0
8005be0: 801a strh r2, [r3, #0]
pardata.amplif[i].IKD = 0;
8005be2: 4a4a ldr r2, [pc, #296] ; (8005d0c <main+0x1b4>)
8005be4: 6c7b ldr r3, [r7, #68] ; 0x44
8005be6: 015b lsls r3, r3, #5
8005be8: 4413 add r3, r2
8005bea: 330a adds r3, #10
8005bec: 2200 movs r2, #0
8005bee: 801a strh r2, [r3, #0]
pardata.amplif[i].IKE = 1;
8005bf0: 4a46 ldr r2, [pc, #280] ; (8005d0c <main+0x1b4>)
8005bf2: 6c7b ldr r3, [r7, #68] ; 0x44
8005bf4: 015b lsls r3, r3, #5
8005bf6: 4413 add r3, r2
8005bf8: 3308 adds r3, #8
8005bfa: 2201 movs r2, #1
8005bfc: 801a strh r2, [r3, #0]
pardata.amplif[i].IPZ = 0;
8005bfe: 4a43 ldr r2, [pc, #268] ; (8005d0c <main+0x1b4>)
8005c00: 6c7b ldr r3, [r7, #68] ; 0x44
8005c02: 015b lsls r3, r3, #5
8005c04: 4413 add r3, r2
8005c06: 330e adds r3, #14
8005c08: 2200 movs r2, #0
8005c0a: 801a strh r2, [r3, #0]
pardata.amplif[i].OPZ = 0;
8005c0c: 4a3f ldr r2, [pc, #252] ; (8005d0c <main+0x1b4>)
8005c0e: 6c7b ldr r3, [r7, #68] ; 0x44
8005c10: 015b lsls r3, r3, #5
8005c12: 4413 add r3, r2
8005c14: 3310 adds r3, #16
8005c16: 2200 movs r2, #0
8005c18: 801a strh r2, [r3, #0]
pardata.amplif[i].VAL = Accel;
8005c1a: 4a3c ldr r2, [pc, #240] ; (8005d0c <main+0x1b4>)
8005c1c: 6c7b ldr r3, [r7, #68] ; 0x44
8005c1e: 015b lsls r3, r3, #5
8005c20: 4413 add r3, r2
8005c22: 3312 adds r3, #18
8005c24: 2200 movs r2, #0
8005c26: 801a strh r2, [r3, #0]
pardata.amplif[i].KCOND = 1.00f;
8005c28: 4a38 ldr r2, [pc, #224] ; (8005d0c <main+0x1b4>)
8005c2a: 6c7b ldr r3, [r7, #68] ; 0x44
8005c2c: 015b lsls r3, r3, #5
8005c2e: 4413 add r3, r2
8005c30: 3314 adds r3, #20
8005c32: f04f 527e mov.w r2, #1065353216 ; 0x3f800000
8005c36: 601a str r2, [r3, #0]
pardata.amplif[i].SENS = 10.00f;
8005c38: 4a34 ldr r2, [pc, #208] ; (8005d0c <main+0x1b4>)
8005c3a: 6c7b ldr r3, [r7, #68] ; 0x44
8005c3c: 015b lsls r3, r3, #5
8005c3e: 4413 add r3, r2
8005c40: 3318 adds r3, #24
8005c42: 4a33 ldr r2, [pc, #204] ; (8005d10 <main+0x1b8>)
8005c44: 601a str r2, [r3, #0]
pardata.amplif[i].ACCEL = 100.00f;
8005c46: 4a31 ldr r2, [pc, #196] ; (8005d0c <main+0x1b4>)
8005c48: 6c7b ldr r3, [r7, #68] ; 0x44
8005c4a: 015b lsls r3, r3, #5
8005c4c: 4413 add r3, r2
8005c4e: 331c adds r3, #28
8005c50: 4a30 ldr r2, [pc, #192] ; (8005d14 <main+0x1bc>)
8005c52: 601a str r2, [r3, #0]
for(i = 0; i < 16; i++)
8005c54: 6c7b ldr r3, [r7, #68] ; 0x44
8005c56: 3301 adds r3, #1
8005c58: 647b str r3, [r7, #68] ; 0x44
8005c5a: 6c7b ldr r3, [r7, #68] ; 0x44
8005c5c: 2b0f cmp r3, #15
8005c5e: d99e bls.n 8005b9e <main+0x46>
}
pardata.OWN = 18;
8005c60: 4b2a ldr r3, [pc, #168] ; (8005d0c <main+0x1b4>)
8005c62: 2212 movs r2, #18
8005c64: f8a3 2200 strh.w r2, [r3, #512] ; 0x200
pardata.BAUD = 7;
8005c68: 4b28 ldr r3, [pc, #160] ; (8005d0c <main+0x1b4>)
8005c6a: 2207 movs r2, #7
8005c6c: f8a3 2202 strh.w r2, [r3, #514] ; 0x202
pardata.INFB = 0;
8005c70: 4b26 ldr r3, [pc, #152] ; (8005d0c <main+0x1b4>)
8005c72: 2200 movs r2, #0
8005c74: f8a3 2204 strh.w r2, [r3, #516] ; 0x204
//pardata.LANG = RUS;
/////////////////////////////
MX_UART7_Init();
8005c78: f009 ffa8 bl 800fbcc <MX_UART7_Init>
EXTI_Config();
8005c7c: f000 f8f6 bl 8005e6c <EXTI_Config>
Logo();
8005c80: f000 f958 bl 8005f34 <Logo>
while(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET) {
8005c84: e001 b.n 8005c8a <main+0x132>
RedrawScreen();
8005c86: f000 f945 bl 8005f14 <RedrawScreen>
while(HAL_GPIO_ReadPin(OFF_GPIO_Port, OFF_Pin) == GPIO_PIN_SET) {
8005c8a: 2101 movs r1, #1
8005c8c: 4822 ldr r0, [pc, #136] ; (8005d18 <main+0x1c0>)
8005c8e: f00c ffc5 bl 8012c1c <HAL_GPIO_ReadPin>
8005c92: 4603 mov r3, r0
8005c94: 2b01 cmp r3, #1
8005c96: d0f6 beq.n 8005c86 <main+0x12e>
}
KeysIsReady = true;
8005c98: 4b20 ldr r3, [pc, #128] ; (8005d1c <main+0x1c4>)
8005c9a: 2201 movs r2, #1
8005c9c: 701a strb r2, [r3, #0]
for(k = 0; k < 30; k++)
8005c9e: 2300 movs r3, #0
8005ca0: 643b str r3, [r7, #64] ; 0x40
8005ca2: e00f b.n 8005cc4 <main+0x16c>
{
keys = kbhit();
8005ca4: f7fa fefa bl 8000a9c <kbhit>
8005ca8: 63b8 str r0, [r7, #56] ; 0x38
if((keys == KEY_UP) || (keys == (KEY_UP + KEY_OK)))
8005caa: 6bbb ldr r3, [r7, #56] ; 0x38
8005cac: 2b02 cmp r3, #2
8005cae: d002 beq.n 8005cb6 <main+0x15e>
8005cb0: 6bbb ldr r3, [r7, #56] ; 0x38
8005cb2: 2b22 cmp r3, #34 ; 0x22
8005cb4: d103 bne.n 8005cbe <main+0x166>
{
clbr = true;
8005cb6: 4b1a ldr r3, [pc, #104] ; (8005d20 <main+0x1c8>)
8005cb8: 2201 movs r2, #1
8005cba: 701a strb r2, [r3, #0]
break;
8005cbc: e005 b.n 8005cca <main+0x172>
for(k = 0; k < 30; k++)
8005cbe: 6c3b ldr r3, [r7, #64] ; 0x40
8005cc0: 3301 adds r3, #1
8005cc2: 643b str r3, [r7, #64] ; 0x40
8005cc4: 6c3b ldr r3, [r7, #64] ; 0x40
8005cc6: 2b1d cmp r3, #29
8005cc8: d9ec bls.n 8005ca4 <main+0x14c>
}
}
HAL_Delay(1000);
8005cca: f44f 707a mov.w r0, #1000 ; 0x3e8
8005cce: f00b fc91 bl 80115f4 <HAL_Delay>
AskChannels();
8005cd2: f00b fb59 bl 8011388 <AskChannels>
//menu = MAIN; //todo
timerAsk = msec1900;
8005cd6: 4b13 ldr r3, [pc, #76] ; (8005d24 <main+0x1cc>)
8005cd8: 22be movs r2, #190 ; 0xbe
8005cda: 801a strh r2, [r3, #0]
FlagAsk = 0;
8005cdc: 4b12 ldr r3, [pc, #72] ; (8005d28 <main+0x1d0>)
8005cde: 2200 movs r2, #0
8005ce0: 701a strb r2, [r3, #0]
while(1)
{
RedrawScreen();
8005ce2: f000 f917 bl 8005f14 <RedrawScreen>
keyIns();
8005ce6: f7fa ff49 bl 8000b7c <keyIns>
if(FlagAsk)
8005cea: 4b0f ldr r3, [pc, #60] ; (8005d28 <main+0x1d0>)
8005cec: 781b ldrb r3, [r3, #0]
8005cee: b2db uxtb r3, r3
8005cf0: 2b00 cmp r3, #0
8005cf2: d0f6 beq.n 8005ce2 <main+0x18a>
{
FlagAsk = 0;
8005cf4: 4b0c ldr r3, [pc, #48] ; (8005d28 <main+0x1d0>)
8005cf6: 2200 movs r2, #0
8005cf8: 701a strb r2, [r3, #0]
AskPeriodic();
8005cfa: f00b fbe1 bl 80114c0 <AskPeriodic>
RedrawScreen();
8005cfe: e7f0 b.n 8005ce2 <main+0x18a>
8005d00: 2006ba6c .word 0x2006ba6c
8005d04: 2006ba68 .word 0x2006ba68
8005d08: 20020010 .word 0x20020010
8005d0c: 2006bca8 .word 0x2006bca8
8005d10: 41200000 .word 0x41200000
8005d14: 42c80000 .word 0x42c80000
8005d18: 40020000 .word 0x40020000
8005d1c: 200209dc .word 0x200209dc
8005d20: 2006c21c .word 0x2006c21c
8005d24: 2002099e .word 0x2002099e
8005d28: 2006ba87 .word 0x2006ba87
08005d2c <SystemClock_Config>:
/**
* @brief System Clock Configuration
* @retval None
*/
void SystemClock_Config(void)
{
8005d2c: b580 push {r7, lr}
8005d2e: b0b8 sub sp, #224 ; 0xe0
8005d30: af00 add r7, sp, #0
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
8005d32: f107 03ac add.w r3, r7, #172 ; 0xac
8005d36: 2234 movs r2, #52 ; 0x34
8005d38: 2100 movs r1, #0
8005d3a: 4618 mov r0, r3
8005d3c: f010 fbcd bl 80164da <memset>
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
8005d40: f107 0398 add.w r3, r7, #152 ; 0x98
8005d44: 2200 movs r2, #0
8005d46: 601a str r2, [r3, #0]
8005d48: 605a str r2, [r3, #4]
8005d4a: 609a str r2, [r3, #8]
8005d4c: 60da str r2, [r3, #12]
8005d4e: 611a str r2, [r3, #16]
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
8005d50: f107 0308 add.w r3, r7, #8
8005d54: 2290 movs r2, #144 ; 0x90
8005d56: 2100 movs r1, #0
8005d58: 4618 mov r0, r3
8005d5a: f010 fbbe bl 80164da <memset>
__HAL_RCC_PWR_CLK_ENABLE();
8005d5e: 4a3f ldr r2, [pc, #252] ; (8005e5c <SystemClock_Config+0x130>)
8005d60: 4b3e ldr r3, [pc, #248] ; (8005e5c <SystemClock_Config+0x130>)
8005d62: 6c1b ldr r3, [r3, #64] ; 0x40
8005d64: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
8005d68: 6413 str r3, [r2, #64] ; 0x40
8005d6a: 4b3c ldr r3, [pc, #240] ; (8005e5c <SystemClock_Config+0x130>)
8005d6c: 6c1b ldr r3, [r3, #64] ; 0x40
8005d6e: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
8005d72: 607b str r3, [r7, #4]
8005d74: 687b ldr r3, [r7, #4]
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);
8005d76: 4a3a ldr r2, [pc, #232] ; (8005e60 <SystemClock_Config+0x134>)
8005d78: 4b39 ldr r3, [pc, #228] ; (8005e60 <SystemClock_Config+0x134>)
8005d7a: 681b ldr r3, [r3, #0]
8005d7c: f423 4340 bic.w r3, r3, #49152 ; 0xc000
8005d80: f443 4380 orr.w r3, r3, #16384 ; 0x4000
8005d84: 6013 str r3, [r2, #0]
8005d86: 4b36 ldr r3, [pc, #216] ; (8005e60 <SystemClock_Config+0x134>)
8005d88: 681b ldr r3, [r3, #0]
8005d8a: f403 4340 and.w r3, r3, #49152 ; 0xc000
8005d8e: 603b str r3, [r7, #0]
8005d90: 683b ldr r3, [r7, #0]
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
8005d92: 2302 movs r3, #2
8005d94: f8c7 30ac str.w r3, [r7, #172] ; 0xac
RCC_OscInitStruct.LSEState = RCC_LSE_BYPASS;
8005d98: 2305 movs r3, #5
8005d9a: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
8005d9e: 2301 movs r3, #1
8005da0: f8c7 30b8 str.w r3, [r7, #184] ; 0xb8
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
8005da4: 2310 movs r3, #16
8005da6: f8c7 30bc str.w r3, [r7, #188] ; 0xbc
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
8005daa: 2302 movs r3, #2
8005dac: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
8005db0: 2300 movs r3, #0
8005db2: f8c7 30c8 str.w r3, [r7, #200] ; 0xc8
RCC_OscInitStruct.PLL.PLLM = 16;
8005db6: 2310 movs r3, #16
8005db8: f8c7 30cc str.w r3, [r7, #204] ; 0xcc
RCC_OscInitStruct.PLL.PLLN = 432;
8005dbc: f44f 73d8 mov.w r3, #432 ; 0x1b0
8005dc0: f8c7 30d0 str.w r3, [r7, #208] ; 0xd0
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV8;
8005dc4: 2308 movs r3, #8
8005dc6: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4
RCC_OscInitStruct.PLL.PLLQ = 9;
8005dca: 2309 movs r3, #9
8005dcc: f8c7 30d8 str.w r3, [r7, #216] ; 0xd8
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
8005dd0: f107 03ac add.w r3, r7, #172 ; 0xac
8005dd4: 4618 mov r0, r3
8005dd6: f00d fb3b bl 8013450 <HAL_RCC_OscConfig>
8005dda: 4603 mov r3, r0
8005ddc: 2b00 cmp r3, #0
8005dde: d001 beq.n 8005de4 <SystemClock_Config+0xb8>
{
Error_Handler();
8005de0: f000 f840 bl 8005e64 <Error_Handler>
}
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
8005de4: 230f movs r3, #15
8005de6: f8c7 3098 str.w r3, [r7, #152] ; 0x98
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
8005dea: 2302 movs r3, #2
8005dec: f8c7 309c str.w r3, [r7, #156] ; 0x9c
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
8005df0: 2300 movs r3, #0
8005df2: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
8005df6: 2300 movs r3, #0
8005df8: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
8005dfc: 2300 movs r3, #0
8005dfe: f8c7 30a8 str.w r3, [r7, #168] ; 0xa8
if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
8005e02: f107 0398 add.w r3, r7, #152 ; 0x98
8005e06: 2101 movs r1, #1
8005e08: 4618 mov r0, r3
8005e0a: f00d fdcf bl 80139ac <HAL_RCC_ClockConfig>
8005e0e: 4603 mov r3, r0
8005e10: 2b00 cmp r3, #0
8005e12: d001 beq.n 8005e18 <SystemClock_Config+0xec>
{
Error_Handler();
8005e14: f000 f826 bl 8005e64 <Error_Handler>
}
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC |RCC_PERIPHCLK_UART7;
8005e18: f241 0308 movw r3, #4104 ; 0x1008
8005e1c: 60bb str r3, [r7, #8]
PeriphClkInitStruct.PLLSAI.PLLSAIN = 192;
8005e1e: 23c0 movs r3, #192 ; 0xc0
8005e20: 61fb str r3, [r7, #28]
PeriphClkInitStruct.PLLSAI.PLLSAIR = 4;
8005e22: 2304 movs r3, #4
8005e24: 627b str r3, [r7, #36] ; 0x24
PeriphClkInitStruct.PLLSAI.PLLSAIQ = 2;
8005e26: 2302 movs r3, #2
8005e28: 623b str r3, [r7, #32]
PeriphClkInitStruct.PLLSAI.PLLSAIP = RCC_PLLSAIP_DIV4;
8005e2a: 2301 movs r3, #1
8005e2c: 62bb str r3, [r7, #40] ; 0x28
PeriphClkInitStruct.PLLSAIDivQ = 1;
8005e2e: 2301 movs r3, #1
8005e30: 633b str r3, [r7, #48] ; 0x30
PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_2;
8005e32: 2300 movs r3, #0
8005e34: 637b str r3, [r7, #52] ; 0x34
PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
8005e36: f44f 7380 mov.w r3, #256 ; 0x100
8005e3a: 63bb str r3, [r7, #56] ; 0x38
PeriphClkInitStruct.Uart7ClockSelection = RCC_UART7CLKSOURCE_PCLK1;
8005e3c: 2300 movs r3, #0
8005e3e: 667b str r3, [r7, #100] ; 0x64
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
8005e40: f107 0308 add.w r3, r7, #8
8005e44: 4618 mov r0, r3
8005e46: f00d ff87 bl 8013d58 <HAL_RCCEx_PeriphCLKConfig>
8005e4a: 4603 mov r3, r0
8005e4c: 2b00 cmp r3, #0
8005e4e: d001 beq.n 8005e54 <SystemClock_Config+0x128>
{
Error_Handler();
8005e50: f000 f808 bl 8005e64 <Error_Handler>
PeriphClkInitStruct.Sdmmc1ClockSelection = RCC_SDMMC1CLKSOURCE_CLK48;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
Error_Handler();
}*/
}
8005e54: bf00 nop
8005e56: 37e0 adds r7, #224 ; 0xe0
8005e58: 46bd mov sp, r7
8005e5a: bd80 pop {r7, pc}
8005e5c: 40023800 .word 0x40023800
8005e60: 40007000 .word 0x40007000
08005e64 <Error_Handler>:
/**
* @brief This function is executed in case of error occurrence.
* @retval None
*/
void Error_Handler(void)
{
8005e64: b480 push {r7}
8005e66: af00 add r7, sp, #0
__ASM volatile ("cpsid i" : : : "memory");
8005e68: 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)
8005e6a: e7fe b.n 8005e6a <Error_Handler+0x6>
08005e6c <EXTI_Config>:
void EXTI_Config(void)
{
8005e6c: b580 push {r7, lr}
8005e6e: b086 sub sp, #24
8005e70: af00 add r7, sp, #0
GPIO_InitTypeDef EXTILineStruct;
__HAL_RCC_SYSCFG_CLK_ENABLE();
8005e72: 4a12 ldr r2, [pc, #72] ; (8005ebc <EXTI_Config+0x50>)
8005e74: 4b11 ldr r3, [pc, #68] ; (8005ebc <EXTI_Config+0x50>)
8005e76: 6c5b ldr r3, [r3, #68] ; 0x44
8005e78: f443 4380 orr.w r3, r3, #16384 ; 0x4000
8005e7c: 6453 str r3, [r2, #68] ; 0x44
8005e7e: 4b0f ldr r3, [pc, #60] ; (8005ebc <EXTI_Config+0x50>)
8005e80: 6c5b ldr r3, [r3, #68] ; 0x44
8005e82: f403 4380 and.w r3, r3, #16384 ; 0x4000
8005e86: 603b str r3, [r7, #0]
8005e88: 683b ldr r3, [r7, #0]
EXTILineStruct.Pin = GPIO_PIN_2;
8005e8a: 2304 movs r3, #4
8005e8c: 607b str r3, [r7, #4]
EXTILineStruct.Mode = GPIO_MODE_IT_RISING;
8005e8e: f44f 1388 mov.w r3, #1114112 ; 0x110000
8005e92: 60bb str r3, [r7, #8]
EXTILineStruct.Pull = GPIO_NOPULL;
8005e94: 2300 movs r3, #0
8005e96: 60fb str r3, [r7, #12]
HAL_GPIO_Init(GPIOC, &EXTILineStruct);
8005e98: 1d3b adds r3, r7, #4
8005e9a: 4619 mov r1, r3
8005e9c: 4808 ldr r0, [pc, #32] ; (8005ec0 <EXTI_Config+0x54>)
8005e9e: f00c fd13 bl 80128c8 <HAL_GPIO_Init>
HAL_NVIC_SetPriority(EXTI2_IRQn, 12, 0);
8005ea2: 2200 movs r2, #0
8005ea4: 210c movs r1, #12
8005ea6: 2008 movs r0, #8
8005ea8: f00b fcc1 bl 801182e <HAL_NVIC_SetPriority>
HAL_NVIC_EnableIRQ(EXTI2_IRQn);
8005eac: 2008 movs r0, #8
8005eae: f00b fcda bl 8011866 <HAL_NVIC_EnableIRQ>
}
8005eb2: bf00 nop
8005eb4: 3718 adds r7, #24
8005eb6: 46bd mov sp, r7
8005eb8: bd80 pop {r7, pc}
8005eba: bf00 nop
8005ebc: 40023800 .word 0x40023800
8005ec0: 40020800 .word 0x40020800
08005ec4 <HAL_GPIO_EXTI_Callback>:
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
8005ec4: b580 push {r7, lr}
8005ec6: b082 sub sp, #8
8005ec8: af00 add r7, sp, #0
8005eca: 4603 mov r3, r0
8005ecc: 80fb strh r3, [r7, #6]
if(GPIO_Pin == GPIO_PIN_2)
8005ece: 88fb ldrh r3, [r7, #6]
8005ed0: 2b04 cmp r3, #4
8005ed2: d114 bne.n 8005efe <HAL_GPIO_EXTI_Callback+0x3a>
{
__HAL_GPIO_EXTI_CLEAR_FLAG(GPIO_PIN_2);
8005ed4: 4b0c ldr r3, [pc, #48] ; (8005f08 <HAL_GPIO_EXTI_Callback+0x44>)
8005ed6: 2204 movs r2, #4
8005ed8: 615a str r2, [r3, #20]
if((RefreshScreen == false) && (screen == true))
8005eda: 4b0c ldr r3, [pc, #48] ; (8005f0c <HAL_GPIO_EXTI_Callback+0x48>)
8005edc: 781b ldrb r3, [r3, #0]
8005ede: b2db uxtb r3, r3
8005ee0: f083 0301 eor.w r3, r3, #1
8005ee4: b2db uxtb r3, r3
8005ee6: 2b00 cmp r3, #0
8005ee8: d009 beq.n 8005efe <HAL_GPIO_EXTI_Callback+0x3a>
8005eea: 4b09 ldr r3, [pc, #36] ; (8005f10 <HAL_GPIO_EXTI_Callback+0x4c>)
8005eec: 781b ldrb r3, [r3, #0]
8005eee: b2db uxtb r3, r3
8005ef0: 2b00 cmp r3, #0
8005ef2: d004 beq.n 8005efe <HAL_GPIO_EXTI_Callback+0x3a>
{
screen = false;
8005ef4: 4b06 ldr r3, [pc, #24] ; (8005f10 <HAL_GPIO_EXTI_Callback+0x4c>)
8005ef6: 2200 movs r2, #0
8005ef8: 701a strb r2, [r3, #0]
Display();
8005efa: f000 f8b9 bl 8006070 <Display>
}
//ReadChannel(Ch1);
}
}
8005efe: bf00 nop
8005f00: 3708 adds r7, #8
8005f02: 46bd mov sp, r7
8005f04: bd80 pop {r7, pc}
8005f06: bf00 nop
8005f08: 40013c00 .word 0x40013c00
8005f0c: 2006ba60 .word 0x2006ba60
8005f10: 20020030 .word 0x20020030
08005f14 <RedrawScreen>:
void RedrawScreen(void)
{
8005f14: b480 push {r7}
8005f16: af00 add r7, sp, #0
__HAL_GPIO_EXTI_GENERATE_SWIT(GPIO_PIN_2);
8005f18: 4a05 ldr r2, [pc, #20] ; (8005f30 <RedrawScreen+0x1c>)
8005f1a: 4b05 ldr r3, [pc, #20] ; (8005f30 <RedrawScreen+0x1c>)
8005f1c: 691b ldr r3, [r3, #16]
8005f1e: f043 0304 orr.w r3, r3, #4
8005f22: 6113 str r3, [r2, #16]
{
screen = false;
Display();
}*/
}
8005f24: bf00 nop
8005f26: 46bd mov sp, r7
8005f28: f85d 7b04 ldr.w r7, [sp], #4
8005f2c: 4770 bx lr
8005f2e: bf00 nop
8005f30: 40013c00 .word 0x40013c00
08005f34 <Logo>:
void Logo(void)
{
8005f34: b580 push {r7, lr}
8005f36: b082 sub sp, #8
8005f38: af00 add r7, sp, #0
uint32_t i;
uint32_t color = LCD_COLOR_BLACK; //0xFF212829;
8005f3a: f04f 437f mov.w r3, #4278190080 ; 0xff000000
8005f3e: 603b str r3, [r7, #0]
#ifdef DRAW_LOGO
BSP_LCD_DisplayOn();
8005f40: f7fe fdc4 bl 8004acc <BSP_LCD_DisplayOn>
HAL_NVIC_DisableIRQ(EXTI2_IRQn);
8005f44: 2008 movs r0, #8
8005f46: f00b fc9c bl 8011882 <HAL_NVIC_DisableIRQ>
//*********************************************************
BSP_LCD_SetFont(&Font12);
8005f4a: 4843 ldr r0, [pc, #268] ; (8006058 <Logo+0x124>)
8005f4c: f7fe ff78 bl 8004e40 <BSP_LCD_SetFont>
for(i = 0; i < 3; i++)
8005f50: 2300 movs r3, #0
8005f52: 607b str r3, [r7, #4]
8005f54: e032 b.n 8005fbc <Logo+0x88>
{
BSP_LCD_Clear(color);
8005f56: 6838 ldr r0, [r7, #0]
8005f58: f7fe ff90 bl 8004e7c <BSP_LCD_Clear>
DrawImage(&bmLOGO_NEW, 0, 54);
8005f5c: 2236 movs r2, #54 ; 0x36
8005f5e: 2100 movs r1, #0
8005f60: 483e ldr r0, [pc, #248] ; (800605c <Logo+0x128>)
8005f62: f7ff fd11 bl 8005988 <DrawImage>
RefreshScreen = true;
8005f66: 4b3e ldr r3, [pc, #248] ; (8006060 <Logo+0x12c>)
8005f68: 2201 movs r2, #1
8005f6a: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0);
8005f6c: 2100 movs r1, #0
8005f6e: 483d ldr r0, [pc, #244] ; (8006064 <Logo+0x130>)
8005f70: f00d f864 bl 801303c <HAL_LTDC_ProgramLineEvent>
while(RefreshScreen);
8005f74: bf00 nop
8005f76: 4b3a ldr r3, [pc, #232] ; (8006060 <Logo+0x12c>)
8005f78: 781b ldrb r3, [r3, #0]
8005f7a: b2db uxtb r3, r3
8005f7c: 2b00 cmp r3, #0
8005f7e: d1fa bne.n 8005f76 <Logo+0x42>
HAL_Delay(50);
8005f80: 2032 movs r0, #50 ; 0x32
8005f82: f00b fb37 bl 80115f4 <HAL_Delay>
BSP_LCD_Clear(color);
8005f86: 6838 ldr r0, [r7, #0]
8005f88: f7fe ff78 bl 8004e7c <BSP_LCD_Clear>
DrawImage(&bmLOGO_NEW, 0, 54);
8005f8c: 2236 movs r2, #54 ; 0x36
8005f8e: 2100 movs r1, #0
8005f90: 4832 ldr r0, [pc, #200] ; (800605c <Logo+0x128>)
8005f92: f7ff fcf9 bl 8005988 <DrawImage>
RefreshScreen = true;
8005f96: 4b32 ldr r3, [pc, #200] ; (8006060 <Logo+0x12c>)
8005f98: 2201 movs r2, #1
8005f9a: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0);
8005f9c: 2100 movs r1, #0
8005f9e: 4831 ldr r0, [pc, #196] ; (8006064 <Logo+0x130>)
8005fa0: f00d f84c bl 801303c <HAL_LTDC_ProgramLineEvent>
while(RefreshScreen);
8005fa4: bf00 nop
8005fa6: 4b2e ldr r3, [pc, #184] ; (8006060 <Logo+0x12c>)
8005fa8: 781b ldrb r3, [r3, #0]
8005faa: b2db uxtb r3, r3
8005fac: 2b00 cmp r3, #0
8005fae: d1fa bne.n 8005fa6 <Logo+0x72>
HAL_Delay(50);
8005fb0: 2032 movs r0, #50 ; 0x32
8005fb2: f00b fb1f bl 80115f4 <HAL_Delay>
for(i = 0; i < 3; i++)
8005fb6: 687b ldr r3, [r7, #4]
8005fb8: 3301 adds r3, #1
8005fba: 607b str r3, [r7, #4]
8005fbc: 687b ldr r3, [r7, #4]
8005fbe: 2b02 cmp r3, #2
8005fc0: d9c9 bls.n 8005f56 <Logo+0x22>
}
HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_RESET); // BACKLIGHT_ON
8005fc2: 2200 movs r2, #0
8005fc4: f44f 7180 mov.w r1, #256 ; 0x100
8005fc8: 4827 ldr r0, [pc, #156] ; (8006068 <Logo+0x134>)
8005fca: f00c fe3f bl 8012c4c <HAL_GPIO_WritePin>
//*********************************************************
BSP_LCD_Clear(color);
8005fce: 6838 ldr r0, [r7, #0]
8005fd0: f7fe ff54 bl 8004e7c <BSP_LCD_Clear>
DrawImage(&bmLOGO_NEW, 0, 54);
8005fd4: 2236 movs r2, #54 ; 0x36
8005fd6: 2100 movs r1, #0
8005fd8: 4820 ldr r0, [pc, #128] ; (800605c <Logo+0x128>)
8005fda: f7ff fcd5 bl 8005988 <DrawImage>
RefreshScreen = true;
8005fde: 4b20 ldr r3, [pc, #128] ; (8006060 <Logo+0x12c>)
8005fe0: 2201 movs r2, #1
8005fe2: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0);
8005fe4: 2100 movs r1, #0
8005fe6: 481f ldr r0, [pc, #124] ; (8006064 <Logo+0x130>)
8005fe8: f00d f828 bl 801303c <HAL_LTDC_ProgramLineEvent>
while(RefreshScreen);
8005fec: bf00 nop
8005fee: 4b1c ldr r3, [pc, #112] ; (8006060 <Logo+0x12c>)
8005ff0: 781b ldrb r3, [r3, #0]
8005ff2: b2db uxtb r3, r3
8005ff4: 2b00 cmp r3, #0
8005ff6: d1fa bne.n 8005fee <Logo+0xba>
HAL_Delay(50);
8005ff8: 2032 movs r0, #50 ; 0x32
8005ffa: f00b fafb bl 80115f4 <HAL_Delay>
BSP_LCD_Clear(color);
8005ffe: 6838 ldr r0, [r7, #0]
8006000: f7fe ff3c bl 8004e7c <BSP_LCD_Clear>
DrawImage(&bmLOGO_NEW, 0, 54);
8006004: 2236 movs r2, #54 ; 0x36
8006006: 2100 movs r1, #0
8006008: 4814 ldr r0, [pc, #80] ; (800605c <Logo+0x128>)
800600a: f7ff fcbd bl 8005988 <DrawImage>
RefreshScreen = true;
800600e: 4b14 ldr r3, [pc, #80] ; (8006060 <Logo+0x12c>)
8006010: 2201 movs r2, #1
8006012: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0);
8006014: 2100 movs r1, #0
8006016: 4813 ldr r0, [pc, #76] ; (8006064 <Logo+0x130>)
8006018: f00d f810 bl 801303c <HAL_LTDC_ProgramLineEvent>
while(RefreshScreen);
800601c: bf00 nop
800601e: 4b10 ldr r3, [pc, #64] ; (8006060 <Logo+0x12c>)
8006020: 781b ldrb r3, [r3, #0]
8006022: b2db uxtb r3, r3
8006024: 2b00 cmp r3, #0
8006026: d1fa bne.n 800601e <Logo+0xea>
HAL_Delay(50);
8006028: 2032 movs r0, #50 ; 0x32
800602a: f00b fae3 bl 80115f4 <HAL_Delay>
HAL_GPIO_WritePin(DISP_ON_GPIO_Port, DISP_ON_Pin, GPIO_PIN_RESET); // BACKLIGHT_ON
800602e: 2200 movs r2, #0
8006030: f44f 7180 mov.w r1, #256 ; 0x100
8006034: 480c ldr r0, [pc, #48] ; (8006068 <Logo+0x134>)
8006036: f00c fe09 bl 8012c4c <HAL_GPIO_WritePin>
HAL_Delay(500);
800603a: f44f 70fa mov.w r0, #500 ; 0x1f4
800603e: f00b fad9 bl 80115f4 <HAL_Delay>
menu = LOGO;
8006042: 4b0a ldr r3, [pc, #40] ; (800606c <Logo+0x138>)
8006044: 221e movs r2, #30
8006046: 701a strb r2, [r3, #0]
HAL_NVIC_EnableIRQ(EXTI2_IRQn);
8006048: 2008 movs r0, #8
800604a: f00b fc0c bl 8011866 <HAL_NVIC_EnableIRQ>
#endif
}
800604e: bf00 nop
8006050: 3708 adds r7, #8
8006052: 46bd mov sp, r7
8006054: bd80 pop {r7, pc}
8006056: bf00 nop
8006058: 20020000 .word 0x20020000
800605c: 0802fd10 .word 0x0802fd10
8006060: 2006ba60 .word 0x2006ba60
8006064: 2006c174 .word 0x2006c174
8006068: 40020000 .word 0x40020000
800606c: 200209d9 .word 0x200209d9
08006070 <Display>:
void Display(void)
{
8006070: b580 push {r7, lr}
8006072: f5ad 7d52 sub.w sp, sp, #840 ; 0x348
8006076: 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;
8006078: 2300 movs r3, #0
800607a: 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;
800607e: 2300 movs r3, #0
8006080: 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++;
8006084: 4bbd ldr r3, [pc, #756] ; (800637c <Display+0x30c>)
8006086: 681b ldr r3, [r3, #0]
8006088: 3301 adds r3, #1
800608a: 4abc ldr r2, [pc, #752] ; (800637c <Display+0x30c>)
800608c: 6013 str r3, [r2, #0]
if(blk > 1)
800608e: 4bbb ldr r3, [pc, #748] ; (800637c <Display+0x30c>)
8006090: 681b ldr r3, [r3, #0]
8006092: 2b01 cmp r3, #1
8006094: d905 bls.n 80060a2 <Display+0x32>
{
blk = 0;
8006096: 4bb9 ldr r3, [pc, #740] ; (800637c <Display+0x30c>)
8006098: 2200 movs r2, #0
800609a: 601a str r2, [r3, #0]
bll = true;
800609c: 2301 movs r3, #1
800609e: f887 333e strb.w r3, [r7, #830] ; 0x33e
}
blink++;
80060a2: 4bb7 ldr r3, [pc, #732] ; (8006380 <Display+0x310>)
80060a4: 681b ldr r3, [r3, #0]
80060a6: 3301 adds r3, #1
80060a8: 4ab5 ldr r2, [pc, #724] ; (8006380 <Display+0x310>)
80060aa: 6013 str r3, [r2, #0]
if(blink > 8)
80060ac: 4bb4 ldr r3, [pc, #720] ; (8006380 <Display+0x310>)
80060ae: 681b ldr r3, [r3, #0]
80060b0: 2b08 cmp r3, #8
80060b2: d905 bls.n 80060c0 <Display+0x50>
{
blink = 0;
80060b4: 4bb2 ldr r3, [pc, #712] ; (8006380 <Display+0x310>)
80060b6: 2200 movs r2, #0
80060b8: 601a str r2, [r3, #0]
bl = true;
80060ba: 2301 movs r3, #1
80060bc: f887 333f strb.w r3, [r7, #831] ; 0x33f
}
Redrawing = true;
80060c0: 4bb0 ldr r3, [pc, #704] ; (8006384 <Display+0x314>)
80060c2: 2201 movs r2, #1
80060c4: 701a strb r2, [r3, #0]
BSP_LCD_Clear(LCD_COLOR_BLACK);
80060c6: f04f 407f mov.w r0, #4278190080 ; 0xff000000
80060ca: f7fe fed7 bl 8004e7c <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)
80060ce: 4bae ldr r3, [pc, #696] ; (8006388 <Display+0x318>)
80060d0: 781b ldrb r3, [r3, #0]
80060d2: b2db uxtb r3, r3
80060d4: 2b4e cmp r3, #78 ; 0x4e
80060d6: f207 8480 bhi.w 800d9da <Display+0x796a>
80060da: a201 add r2, pc, #4 ; (adr r2, 80060e0 <Display+0x70>)
80060dc: f852 f023 ldr.w pc, [r2, r3, lsl #2]
80060e0: 0800cfc1 .word 0x0800cfc1
80060e4: 0800d39d .word 0x0800d39d
80060e8: 0800d4ad .word 0x0800d4ad
80060ec: 0800d4dd .word 0x0800d4dd
80060f0: 0800d569 .word 0x0800d569
80060f4: 0800d599 .word 0x0800d599
80060f8: 0800d5c9 .word 0x0800d5c9
80060fc: 0800d5f9 .word 0x0800d5f9
8006100: 0800d629 .word 0x0800d629
8006104: 0800d659 .word 0x0800d659
8006108: 0800d689 .word 0x0800d689
800610c: 0800d6b9 .word 0x0800d6b9
8006110: 0800d6e9 .word 0x0800d6e9
8006114: 0800d719 .word 0x0800d719
8006118: 0800d749 .word 0x0800d749
800611c: 0800d779 .word 0x0800d779
8006120: 0800d7a9 .word 0x0800d7a9
8006124: 0800d7d9 .word 0x0800d7d9
8006128: 0800d809 .word 0x0800d809
800612c: 0800d839 .word 0x0800d839
8006130: 0800d869 .word 0x0800d869
8006134: 0800d899 .word 0x0800d899
8006138: 0800d93d .word 0x0800d93d
800613c: 0800d96d .word 0x0800d96d
8006140: 0800d99d .word 0x0800d99d
8006144: 08006509 .word 0x08006509
8006148: 0800d9db .word 0x0800d9db
800614c: 0800d9db .word 0x0800d9db
8006150: 0800d9db .word 0x0800d9db
8006154: 0800d9db .word 0x0800d9db
8006158: 0800621d .word 0x0800621d
800615c: 0800d9db .word 0x0800d9db
8006160: 0800d9db .word 0x0800d9db
8006164: 0800d9db .word 0x0800d9db
8006168: 0800d9db .word 0x0800d9db
800616c: 0800d9db .word 0x0800d9db
8006170: 0800d9db .word 0x0800d9db
8006174: 0800d9db .word 0x0800d9db
8006178: 0800d9db .word 0x0800d9db
800617c: 0800d9db .word 0x0800d9db
8006180: 0800d9db .word 0x0800d9db
8006184: 0800d9db .word 0x0800d9db
8006188: 0800d9db .word 0x0800d9db
800618c: 0800680f .word 0x0800680f
8006190: 0800d9db .word 0x0800d9db
8006194: 0800d9db .word 0x0800d9db
8006198: 0800d9db .word 0x0800d9db
800619c: 0800d9db .word 0x0800d9db
80061a0: 0800d9db .word 0x0800d9db
80061a4: 0800d9db .word 0x0800d9db
80061a8: 0800d9db .word 0x0800d9db
80061ac: 0800d9db .word 0x0800d9db
80061b0: 0800d9db .word 0x0800d9db
80061b4: 0800d9db .word 0x0800d9db
80061b8: 0800d9db .word 0x0800d9db
80061bc: 0800d9db .word 0x0800d9db
80061c0: 0800d9db .word 0x0800d9db
80061c4: 0800d9db .word 0x0800d9db
80061c8: 0800d9db .word 0x0800d9db
80061cc: 0800d9db .word 0x0800d9db
80061d0: 0800d9db .word 0x0800d9db
80061d4: 0800d9db .word 0x0800d9db
80061d8: 0800d9db .word 0x0800d9db
80061dc: 0800d9db .word 0x0800d9db
80061e0: 0800d9db .word 0x0800d9db
80061e4: 0800d9db .word 0x0800d9db
80061e8: 0800d9db .word 0x0800d9db
80061ec: 0800d9db .word 0x0800d9db
80061f0: 0800d9db .word 0x0800d9db
80061f4: 0800d9db .word 0x0800d9db
80061f8: 0800d9db .word 0x0800d9db
80061fc: 0800d9db .word 0x0800d9db
8006200: 0800d9db .word 0x0800d9db
8006204: 0800d9db .word 0x0800d9db
8006208: 0800d9db .word 0x0800d9db
800620c: 0800d9db .word 0x0800d9db
8006210: 0800d9db .word 0x0800d9db
8006214: 0800d9db .word 0x0800d9db
8006218: 0800d9db .word 0x0800d9db
{
case LOGO:
//*********************************************************
DrawImage(&bmLOGO_NEW, 0, 54);
800621c: 2236 movs r2, #54 ; 0x36
800621e: 2100 movs r1, #0
8006220: 485a ldr r0, [pc, #360] ; (800638c <Display+0x31c>)
8006222: f7ff fbb1 bl 8005988 <DrawImage>
timesLOGO++;
8006226: 4b5a ldr r3, [pc, #360] ; (8006390 <Display+0x320>)
8006228: 681b ldr r3, [r3, #0]
800622a: 3301 adds r3, #1
800622c: 4a58 ldr r2, [pc, #352] ; (8006390 <Display+0x320>)
800622e: 6013 str r3, [r2, #0]
if(timesLOGO >= 2)
8006230: 4b57 ldr r3, [pc, #348] ; (8006390 <Display+0x320>)
8006232: 681b ldr r3, [r3, #0]
8006234: 2b01 cmp r3, #1
8006236: f247 83c9 bls.w 800d9cc <Display+0x795c>
{
LCD_SetColors(0xFFFFFFFF, 0);
800623a: 2100 movs r1, #0
800623c: f04f 30ff mov.w r0, #4294967295
8006240: f7fe fdc2 bl 8004dc8 <LCD_SetColors>
BSP_LCD_SetFont(&Font12);
8006244: 4853 ldr r0, [pc, #332] ; (8006394 <Display+0x324>)
8006246: f7fe fdfb bl 8004e40 <BSP_LCD_SetFont>
#ifdef A142
if(pardata.LANG == RUS)
800624a: 4b53 ldr r3, [pc, #332] ; (8006398 <Display+0x328>)
800624c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006250: b29b uxth r3, r3
8006252: 2b00 cmp r3, #0
8006254: d10c bne.n 8006270 <Display+0x200>
{
BSP_LCD_DisplayStringAt(165, 195, "<22>142", CENTER_MODE);
8006256: 2301 movs r3, #1
8006258: 4a50 ldr r2, [pc, #320] ; (800639c <Display+0x32c>)
800625a: 21c3 movs r1, #195 ; 0xc3
800625c: 20a5 movs r0, #165 ; 0xa5
800625e: f7fe fe79 bl 8004f54 <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);
8006262: 2301 movs r3, #1
8006264: 4a4e ldr r2, [pc, #312] ; (80063a0 <Display+0x330>)
8006266: 21ce movs r1, #206 ; 0xce
8006268: 20a5 movs r0, #165 ; 0xa5
800626a: f7fe fe73 bl 8004f54 <BSP_LCD_DisplayStringAt>
800626e: e005 b.n 800627c <Display+0x20c>
}
else
BSP_LCD_DisplayStringAt(165, 206, "Amplifier A142", CENTER_MODE);
8006270: 2301 movs r3, #1
8006272: 4a4c ldr r2, [pc, #304] ; (80063a4 <Display+0x334>)
8006274: 21ce movs r1, #206 ; 0xce
8006276: 20a5 movs r0, #165 ; 0xa5
8006278: f7fe fe6c bl 8004f54 <BSP_LCD_DisplayStringAt>
else
BSP_LCD_DisplayStringAt(165, 206, "Amplifier A148", CENTER_MODE);
#endif
#endif
BSP_LCD_DisplayStringAt(160, 224, (char *) _VERSION, CENTER_MODE);
800627c: 2301 movs r3, #1
800627e: 4a4a ldr r2, [pc, #296] ; (80063a8 <Display+0x338>)
8006280: 21e0 movs r1, #224 ; 0xe0
8006282: 20a0 movs r0, #160 ; 0xa0
8006284: f7fe fe66 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 4, (char *) _SERIAL_DRAW, CENTER_MODE);
8006288: 2301 movs r3, #1
800628a: 4a48 ldr r2, [pc, #288] ; (80063ac <Display+0x33c>)
800628c: 2104 movs r1, #4
800628e: 20a0 movs r0, #160 ; 0xa0
8006290: f7fe fe60 bl 8004f54 <BSP_LCD_DisplayStringAt>
memset(str, 0, sizeof(str));
8006294: f507 7307 add.w r3, r7, #540 ; 0x21c
8006298: 223c movs r2, #60 ; 0x3c
800629a: 2100 movs r1, #0
800629c: 4618 mov r0, r3
800629e: f010 f91c bl 80164da <memset>
l = 0;
80062a2: 2300 movs r3, #0
80062a4: f8c7 3324 str.w r3, [r7, #804] ; 0x324
if(ip_assigned)
80062a8: 4b41 ldr r3, [pc, #260] ; (80063b0 <Display+0x340>)
80062aa: 781b ldrb r3, [r3, #0]
80062ac: b2db uxtb r3, r3
80062ae: 2b00 cmp r3, #0
80062b0: f000 80f9 beq.w 80064a6 <Display+0x436>
{
for(j = 0; j < 4; j++)
80062b4: 2300 movs r3, #0
80062b6: f8c7 332c str.w r3, [r7, #812] ; 0x32c
80062ba: e0d9 b.n 8006470 <Display+0x400>
{
k = ip[j];
80062bc: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c
80062c0: 4a3c ldr r2, [pc, #240] ; (80063b4 <Display+0x344>)
80062c2: 5cd3 ldrb r3, [r2, r3]
80062c4: f8c7 3328 str.w r3, [r7, #808] ; 0x328
if(k < 10)
80062c8: f8d7 3328 ldr.w r3, [r7, #808] ; 0x328
80062cc: 2b09 cmp r3, #9
80062ce: d81b bhi.n 8006308 <Display+0x298>
{
str[l++] = (uint8_t) (k + 48);
80062d0: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324
80062d4: 1c5a adds r2, r3, #1
80062d6: f8c7 2324 str.w r2, [r7, #804] ; 0x324
80062da: f8d7 2328 ldr.w r2, [r7, #808] ; 0x328
80062de: b2d2 uxtb r2, r2
80062e0: 3230 adds r2, #48 ; 0x30
80062e2: b2d1 uxtb r1, r2
80062e4: f507 7207 add.w r2, r7, #540 ; 0x21c
80062e8: 54d1 strb r1, [r2, r3]
if(j < 3) {
80062ea: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c
80062ee: 2b02 cmp r3, #2
80062f0: f200 80b9 bhi.w 8006466 <Display+0x3f6>
str[l++] = '.';
80062f4: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324
80062f8: 1c5a adds r2, r3, #1
80062fa: f8c7 2324 str.w r2, [r7, #804] ; 0x324
80062fe: f507 7207 add.w r2, r7, #540 ; 0x21c
8006302: 212e movs r1, #46 ; 0x2e
8006304: 54d1 strb r1, [r2, r3]
8006306: e0ae b.n 8006466 <Display+0x3f6>
}
}
else
if(k < 100)
8006308: f8d7 3328 ldr.w r3, [r7, #808] ; 0x328
800630c: 2b63 cmp r3, #99 ; 0x63
800630e: d855 bhi.n 80063bc <Display+0x34c>
{
str[l++] = (uint8_t) ((k / 10) + 48);
8006310: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324
8006314: 1c5a adds r2, r3, #1
8006316: f8c7 2324 str.w r2, [r7, #804] ; 0x324
800631a: f8d7 2328 ldr.w r2, [r7, #808] ; 0x328
800631e: 4926 ldr r1, [pc, #152] ; (80063b8 <Display+0x348>)
8006320: fba1 1202 umull r1, r2, r1, r2
8006324: 08d2 lsrs r2, r2, #3
8006326: b2d2 uxtb r2, r2
8006328: 3230 adds r2, #48 ; 0x30
800632a: b2d1 uxtb r1, r2
800632c: f507 7207 add.w r2, r7, #540 ; 0x21c
8006330: 54d1 strb r1, [r2, r3]
str[l++] = (uint8_t) ((k % 10) + 48);
8006332: f8d7 1324 ldr.w r1, [r7, #804] ; 0x324
8006336: 1c4b adds r3, r1, #1
8006338: f8c7 3324 str.w r3, [r7, #804] ; 0x324
800633c: f8d7 0328 ldr.w r0, [r7, #808] ; 0x328
8006340: 4b1d ldr r3, [pc, #116] ; (80063b8 <Display+0x348>)
8006342: fba3 2300 umull r2, r3, r3, r0
8006346: 08da lsrs r2, r3, #3
8006348: 4613 mov r3, r2
800634a: 009b lsls r3, r3, #2
800634c: 4413 add r3, r2
800634e: 005b lsls r3, r3, #1
8006350: 1ac2 subs r2, r0, r3
8006352: b2d3 uxtb r3, r2
8006354: 3330 adds r3, #48 ; 0x30
8006356: b2da uxtb r2, r3
8006358: f507 7307 add.w r3, r7, #540 ; 0x21c
800635c: 545a strb r2, [r3, r1]
if(j < 3) {
800635e: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c
8006362: 2b02 cmp r3, #2
8006364: d87f bhi.n 8006466 <Display+0x3f6>
str[l++] = '.';
8006366: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324
800636a: 1c5a adds r2, r3, #1
800636c: f8c7 2324 str.w r2, [r7, #804] ; 0x324
8006370: f507 7207 add.w r2, r7, #540 ; 0x21c
8006374: 212e movs r1, #46 ; 0x2e
8006376: 54d1 strb r1, [r2, r3]
8006378: e075 b.n 8006466 <Display+0x3f6>
800637a: bf00 nop
800637c: 2006ba78 .word 0x2006ba78
8006380: 2006ba7c .word 0x2006ba7c
8006384: 2006ba74 .word 0x2006ba74
8006388: 200209d9 .word 0x200209d9
800638c: 0802fd10 .word 0x0802fd10
8006390: 2006ba70 .word 0x2006ba70
8006394: 20020000 .word 0x20020000
8006398: 2006bca8 .word 0x2006bca8
800639c: 080180f4 .word 0x080180f4
80063a0: 080180fc .word 0x080180fc
80063a4: 0801811c .word 0x0801811c
80063a8: 0801ae00 .word 0x0801ae00
80063ac: 20020020 .word 0x20020020
80063b0: 2006ba94 .word 0x2006ba94
80063b4: 2006ba8c .word 0x2006ba8c
80063b8: cccccccd .word 0xcccccccd
}
}
else
{
str[l++] = (uint8_t) ((k / 100) + 48);
80063bc: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324
80063c0: 1c5a adds r2, r3, #1
80063c2: f8c7 2324 str.w r2, [r7, #804] ; 0x324
80063c6: f8d7 2328 ldr.w r2, [r7, #808] ; 0x328
80063ca: 49ba ldr r1, [pc, #744] ; (80066b4 <Display+0x644>)
80063cc: fba1 1202 umull r1, r2, r1, r2
80063d0: 0952 lsrs r2, r2, #5
80063d2: b2d2 uxtb r2, r2
80063d4: 3230 adds r2, #48 ; 0x30
80063d6: b2d1 uxtb r1, r2
80063d8: f507 7207 add.w r2, r7, #540 ; 0x21c
80063dc: 54d1 strb r1, [r2, r3]
str[l++] = (uint8_t) ((k % 100 / 10) + 48);
80063de: f8d7 2324 ldr.w r2, [r7, #804] ; 0x324
80063e2: 1c53 adds r3, r2, #1
80063e4: f8c7 3324 str.w r3, [r7, #804] ; 0x324
80063e8: f8d7 1328 ldr.w r1, [r7, #808] ; 0x328
80063ec: 4bb1 ldr r3, [pc, #708] ; (80066b4 <Display+0x644>)
80063ee: fba3 0301 umull r0, r3, r3, r1
80063f2: 095b lsrs r3, r3, #5
80063f4: 2064 movs r0, #100 ; 0x64
80063f6: fb00 f303 mul.w r3, r0, r3
80063fa: 1acb subs r3, r1, r3
80063fc: 49ae ldr r1, [pc, #696] ; (80066b8 <Display+0x648>)
80063fe: fba1 1303 umull r1, r3, r1, r3
8006402: 08db lsrs r3, r3, #3
8006404: b2db uxtb r3, r3
8006406: 3330 adds r3, #48 ; 0x30
8006408: b2d9 uxtb r1, r3
800640a: f507 7307 add.w r3, r7, #540 ; 0x21c
800640e: 5499 strb r1, [r3, r2]
str[l++] = (uint8_t) ((k % 100 % 10) + 48);
8006410: f8d7 0324 ldr.w r0, [r7, #804] ; 0x324
8006414: 1c43 adds r3, r0, #1
8006416: f8c7 3324 str.w r3, [r7, #804] ; 0x324
800641a: f8d7 3328 ldr.w r3, [r7, #808] ; 0x328
800641e: 4aa5 ldr r2, [pc, #660] ; (80066b4 <Display+0x644>)
8006420: fba2 1203 umull r1, r2, r2, r3
8006424: 0952 lsrs r2, r2, #5
8006426: 2164 movs r1, #100 ; 0x64
8006428: fb01 f202 mul.w r2, r1, r2
800642c: 1a9a subs r2, r3, r2
800642e: 4ba2 ldr r3, [pc, #648] ; (80066b8 <Display+0x648>)
8006430: fba3 1302 umull r1, r3, r3, r2
8006434: 08d9 lsrs r1, r3, #3
8006436: 460b mov r3, r1
8006438: 009b lsls r3, r3, #2
800643a: 440b add r3, r1
800643c: 005b lsls r3, r3, #1
800643e: 1ad1 subs r1, r2, r3
8006440: b2cb uxtb r3, r1
8006442: 3330 adds r3, #48 ; 0x30
8006444: b2da uxtb r2, r3
8006446: f507 7307 add.w r3, r7, #540 ; 0x21c
800644a: 541a strb r2, [r3, r0]
if(j < 3) {
800644c: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c
8006450: 2b02 cmp r3, #2
8006452: d808 bhi.n 8006466 <Display+0x3f6>
str[l++] = '.';
8006454: f8d7 3324 ldr.w r3, [r7, #804] ; 0x324
8006458: 1c5a adds r2, r3, #1
800645a: f8c7 2324 str.w r2, [r7, #804] ; 0x324
800645e: f507 7207 add.w r2, r7, #540 ; 0x21c
8006462: 212e movs r1, #46 ; 0x2e
8006464: 54d1 strb r1, [r2, r3]
for(j = 0; j < 4; j++)
8006466: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c
800646a: 3301 adds r3, #1
800646c: f8c7 332c str.w r3, [r7, #812] ; 0x32c
8006470: f8d7 332c ldr.w r3, [r7, #812] ; 0x32c
8006474: 2b03 cmp r3, #3
8006476: f67f af21 bls.w 80062bc <Display+0x24c>
}
}
}
strcat(str, ":7000");
800647a: f507 7307 add.w r3, r7, #540 ; 0x21c
800647e: 4618 mov r0, r3
8006480: f7f9 feda bl 8000238 <strlen>
8006484: 4603 mov r3, r0
8006486: 461a mov r2, r3
8006488: f507 7307 add.w r3, r7, #540 ; 0x21c
800648c: 4413 add r3, r2
800648e: 4a8b ldr r2, [pc, #556] ; (80066bc <Display+0x64c>)
8006490: 6810 ldr r0, [r2, #0]
8006492: 6018 str r0, [r3, #0]
8006494: 8892 ldrh r2, [r2, #4]
8006496: 809a strh r2, [r3, #4]
BSP_LCD_DisplayStringAt(160, 24, str, CENTER_MODE);
8006498: f507 7207 add.w r2, r7, #540 ; 0x21c
800649c: 2301 movs r3, #1
800649e: 2118 movs r1, #24
80064a0: 20a0 movs r0, #160 ; 0xa0
80064a2: f7fe fd57 bl 8004f54 <BSP_LCD_DisplayStringAt>
/*if(CORRECTION == false) {
BSP_LCD_DisplayStringAt(0, 4, ".", LEFT_MODE);
}*/
DrawSpinner(300, 20);
80064a6: 2114 movs r1, #20
80064a8: f44f 7096 mov.w r0, #300 ; 0x12c
80064ac: f007 fdee bl 800e08c <DrawSpinner>
if(clbr)
80064b0: 4b83 ldr r3, [pc, #524] ; (80066c0 <Display+0x650>)
80064b2: 781b ldrb r3, [r3, #0]
80064b4: b2db uxtb r3, r3
80064b6: 2b00 cmp r3, #0
80064b8: d00b beq.n 80064d2 <Display+0x462>
{
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
80064ba: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80064be: f04f 30ff mov.w r0, #4294967295
80064c2: f7fe fc81 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 18, "<22><><C7><C0><CF><D3> <20><><CA><C0><CB><C8><C1><D0><CE><C2>", CENTER_MODE);
80064c6: 2301 movs r3, #1
80064c8: 4a7e ldr r2, [pc, #504] ; (80066c4 <Display+0x654>)
80064ca: 2112 movs r1, #18
80064cc: 20a0 movs r0, #160 ; 0xa0
80064ce: f7fe fd41 bl 8004f54 <BSP_LCD_DisplayStringAt>
}
if(ASK_COMPLETE)
80064d2: 4b7d ldr r3, [pc, #500] ; (80066c8 <Display+0x658>)
80064d4: 781b ldrb r3, [r3, #0]
80064d6: b2db uxtb r3, r3
80064d8: 2b00 cmp r3, #0
80064da: f007 8277 beq.w 800d9cc <Display+0x795c>
{
timesLOGO = 0;
80064de: 4b7b ldr r3, [pc, #492] ; (80066cc <Display+0x65c>)
80064e0: 2200 movs r2, #0
80064e2: 601a str r2, [r3, #0]
if(clbr)
80064e4: 4b76 ldr r3, [pc, #472] ; (80066c0 <Display+0x650>)
80064e6: 781b ldrb r3, [r3, #0]
80064e8: b2db uxtb r3, r3
80064ea: 2b00 cmp r3, #0
80064ec: d007 beq.n 80064fe <Display+0x48e>
{
menu = CALIBR_00;
80064ee: 4b78 ldr r3, [pc, #480] ; (80066d0 <Display+0x660>)
80064f0: 2201 movs r2, #1
80064f2: 701a strb r2, [r3, #0]
menupos = Ch1;
80064f4: 4b77 ldr r3, [pc, #476] ; (80066d4 <Display+0x664>)
80064f6: 2200 movs r2, #0
80064f8: 701a strb r2, [r3, #0]
}
else
menu = MAIN;
}
}
break;
80064fa: f007 ba67 b.w 800d9cc <Display+0x795c>
menu = MAIN;
80064fe: 4b74 ldr r3, [pc, #464] ; (80066d0 <Display+0x660>)
8006500: 2200 movs r2, #0
8006502: 701a strb r2, [r3, #0]
break;
8006504: f007 ba62 b.w 800d9cc <Display+0x795c>
case OPTIONS:
BSP_LCD_SetFont(&Font12);
8006508: 4873 ldr r0, [pc, #460] ; (80066d8 <Display+0x668>)
800650a: f7fe fc99 bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800650e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006512: f04f 30ff mov.w r0, #4294967295
8006516: f7fe fc57 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(55, 120, (char *) pOPTIONS[pardata.LANG][2], LEFT_MODE); //<2F><><DF><E7>
800651a: 4b70 ldr r3, [pc, #448] ; (80066dc <Display+0x66c>)
800651c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006520: b29b uxth r3, r3
8006522: 4a6f ldr r2, [pc, #444] ; (80066e0 <Display+0x670>)
8006524: 011b lsls r3, r3, #4
8006526: 4413 add r3, r2
8006528: 3308 adds r3, #8
800652a: 681a ldr r2, [r3, #0]
800652c: 2303 movs r3, #3
800652e: 2178 movs r1, #120 ; 0x78
8006530: 2037 movs r0, #55 ; 0x37
8006532: f7fe fd0f bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Back)
8006536: 4b67 ldr r3, [pc, #412] ; (80066d4 <Display+0x664>)
8006538: 781b ldrb r3, [r3, #0]
800653a: b2db uxtb r3, r3
800653c: 2bff cmp r3, #255 ; 0xff
800653e: d148 bne.n 80065d2 <Display+0x562>
{
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8006540: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006544: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8006548: f7fe fc3e bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(55, 80, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //<2F><><CD><E0><E7>
800654c: 4b63 ldr r3, [pc, #396] ; (80066dc <Display+0x66c>)
800654e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006552: b29b uxth r3, r3
8006554: 4a62 ldr r2, [pc, #392] ; (80066e0 <Display+0x670>)
8006556: 011b lsls r3, r3, #4
8006558: 4413 add r3, r2
800655a: 681a ldr r2, [r3, #0]
800655c: 2303 movs r3, #3
800655e: 2150 movs r1, #80 ; 0x50
8006560: 2037 movs r0, #55 ; 0x37
8006562: f7fe fcf7 bl 8004f54 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
8006566: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800656a: f04f 30ff mov.w r0, #4294967295
800656e: f7fe fc2b bl 8004dc8 <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>
8006572: 4b5a ldr r3, [pc, #360] ; (80066dc <Display+0x66c>)
8006574: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006578: b29b uxth r3, r3
800657a: 4a59 ldr r2, [pc, #356] ; (80066e0 <Display+0x670>)
800657c: 011b lsls r3, r3, #4
800657e: 4413 add r3, r2
8006580: 3304 adds r3, #4
8006582: 681a ldr r2, [r3, #0]
8006584: 2303 movs r3, #3
8006586: 2164 movs r1, #100 ; 0x64
8006588: 2037 movs r0, #55 ; 0x37
800658a: f7fe fce3 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(55, 140, (char *) pOPTIONS[pardata.LANG][3], LEFT_MODE); //Off
800658e: 4b53 ldr r3, [pc, #332] ; (80066dc <Display+0x66c>)
8006590: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006594: b29b uxth r3, r3
8006596: 4a52 ldr r2, [pc, #328] ; (80066e0 <Display+0x670>)
8006598: 011b lsls r3, r3, #4
800659a: 4413 add r3, r2
800659c: 330c adds r3, #12
800659e: 681a ldr r2, [r3, #0]
80065a0: 2303 movs r3, #3
80065a2: 218c movs r1, #140 ; 0x8c
80065a4: 2037 movs r0, #55 ; 0x37
80065a6: f7fe fcd5 bl 8004f54 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
80065aa: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80065ae: 484d ldr r0, [pc, #308] ; (80066e4 <Display+0x674>)
80065b0: f7fe fc0a bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //<2F><><DF><E7>
80065b4: 4b49 ldr r3, [pc, #292] ; (80066dc <Display+0x66c>)
80065b6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80065ba: b29b uxth r3, r3
80065bc: 461a mov r2, r3
80065be: 4b4a ldr r3, [pc, #296] ; (80066e8 <Display+0x678>)
80065c0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80065c4: 2301 movs r3, #1
80065c6: 2178 movs r1, #120 ; 0x78
80065c8: 20f0 movs r0, #240 ; 0xf0
80065ca: f7fe fcc3 bl 8004f54 <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;
80065ce: f007 b9ff b.w 800d9d0 <Display+0x7960>
if(menupos == Inputs)
80065d2: 4b40 ldr r3, [pc, #256] ; (80066d4 <Display+0x664>)
80065d4: 781b ldrb r3, [r3, #0]
80065d6: b2db uxtb r3, r3
80065d8: 2b00 cmp r3, #0
80065da: d148 bne.n 800666e <Display+0x5fe>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
80065dc: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80065e0: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
80065e4: f7fe fbf0 bl 8004dc8 <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>
80065e8: 4b3c ldr r3, [pc, #240] ; (80066dc <Display+0x66c>)
80065ea: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80065ee: b29b uxth r3, r3
80065f0: 4a3b ldr r2, [pc, #236] ; (80066e0 <Display+0x670>)
80065f2: 011b lsls r3, r3, #4
80065f4: 4413 add r3, r2
80065f6: 3304 adds r3, #4
80065f8: 681a ldr r2, [r3, #0]
80065fa: 2303 movs r3, #3
80065fc: 2164 movs r1, #100 ; 0x64
80065fe: 2037 movs r0, #55 ; 0x37
8006600: f7fe fca8 bl 8004f54 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
8006604: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006608: f04f 30ff mov.w r0, #4294967295
800660c: f7fe fbdc bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(55, 80, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //<2F><><CD><E0><E7>
8006610: 4b32 ldr r3, [pc, #200] ; (80066dc <Display+0x66c>)
8006612: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006616: b29b uxth r3, r3
8006618: 4a31 ldr r2, [pc, #196] ; (80066e0 <Display+0x670>)
800661a: 011b lsls r3, r3, #4
800661c: 4413 add r3, r2
800661e: 681a ldr r2, [r3, #0]
8006620: 2303 movs r3, #3
8006622: 2150 movs r1, #80 ; 0x50
8006624: 2037 movs r0, #55 ; 0x37
8006626: f7fe fc95 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(55, 140, (char *) pOPTIONS[pardata.LANG][3], LEFT_MODE); //Off
800662a: 4b2c ldr r3, [pc, #176] ; (80066dc <Display+0x66c>)
800662c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006630: b29b uxth r3, r3
8006632: 4a2b ldr r2, [pc, #172] ; (80066e0 <Display+0x670>)
8006634: 011b lsls r3, r3, #4
8006636: 4413 add r3, r2
8006638: 330c adds r3, #12
800663a: 681a ldr r2, [r3, #0]
800663c: 2303 movs r3, #3
800663e: 218c movs r1, #140 ; 0x8c
8006640: 2037 movs r0, #55 ; 0x37
8006642: f7fe fc87 bl 8004f54 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8006646: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800664a: 4826 ldr r0, [pc, #152] ; (80066e4 <Display+0x674>)
800664c: f7fe fbbc bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //<2F><><DF><E7>
8006650: 4b22 ldr r3, [pc, #136] ; (80066dc <Display+0x66c>)
8006652: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006656: b29b uxth r3, r3
8006658: 461a mov r2, r3
800665a: 4b23 ldr r3, [pc, #140] ; (80066e8 <Display+0x678>)
800665c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8006660: 2301 movs r3, #1
8006662: 2178 movs r1, #120 ; 0x78
8006664: 20f0 movs r0, #240 ; 0xf0
8006666: f7fe fc75 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800666a: f007 b9b1 b.w 800d9d0 <Display+0x7960>
if(menupos == Lang)
800666e: 4b19 ldr r3, [pc, #100] ; (80066d4 <Display+0x664>)
8006670: 781b ldrb r3, [r3, #0]
8006672: b2db uxtb r3, r3
8006674: 2b01 cmp r3, #1
8006676: d17b bne.n 8006770 <Display+0x700>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8006678: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800667c: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8006680: f7fe fba2 bl 8004dc8 <LCD_SetColors>
if(focused)
8006684: 4b19 ldr r3, [pc, #100] ; (80066ec <Display+0x67c>)
8006686: 781b ldrb r3, [r3, #0]
8006688: b2db uxtb r3, r3
800668a: 2b00 cmp r3, #0
800668c: d032 beq.n 80066f4 <Display+0x684>
if(blk)
800668e: 4b18 ldr r3, [pc, #96] ; (80066f0 <Display+0x680>)
8006690: 681b ldr r3, [r3, #0]
8006692: 2b00 cmp r3, #0
8006694: d03b beq.n 800670e <Display+0x69e>
BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //<2F><><DF><E7>
8006696: 4b11 ldr r3, [pc, #68] ; (80066dc <Display+0x66c>)
8006698: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800669c: b29b uxth r3, r3
800669e: 461a mov r2, r3
80066a0: 4b11 ldr r3, [pc, #68] ; (80066e8 <Display+0x678>)
80066a2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80066a6: 2301 movs r3, #1
80066a8: 2178 movs r1, #120 ; 0x78
80066aa: 20f0 movs r0, #240 ; 0xf0
80066ac: f7fe fc52 bl 8004f54 <BSP_LCD_DisplayStringAt>
80066b0: e02d b.n 800670e <Display+0x69e>
80066b2: bf00 nop
80066b4: 51eb851f .word 0x51eb851f
80066b8: cccccccd .word 0xcccccccd
80066bc: 0801812c .word 0x0801812c
80066c0: 2006c21c .word 0x2006c21c
80066c4: 08018134 .word 0x08018134
80066c8: 2006ba90 .word 0x2006ba90
80066cc: 2006ba70 .word 0x2006ba70
80066d0: 200209d9 .word 0x200209d9
80066d4: 20020010 .word 0x20020010
80066d8: 20020000 .word 0x20020000
80066dc: 2006bca8 .word 0x2006bca8
80066e0: 20020034 .word 0x20020034
80066e4: ffd8aa57 .word 0xffd8aa57
80066e8: 20020964 .word 0x20020964
80066ec: 200209e4 .word 0x200209e4
80066f0: 2006ba78 .word 0x2006ba78
BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //<2F><><DF><E7>
80066f4: 4b99 ldr r3, [pc, #612] ; (800695c <Display+0x8ec>)
80066f6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80066fa: b29b uxth r3, r3
80066fc: 461a mov r2, r3
80066fe: 4b98 ldr r3, [pc, #608] ; (8006960 <Display+0x8f0>)
8006700: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8006704: 2301 movs r3, #1
8006706: 2178 movs r1, #120 ; 0x78
8006708: 20f0 movs r0, #240 ; 0xf0
800670a: f7fe fc23 bl 8004f54 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800670e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006712: f04f 30ff mov.w r0, #4294967295
8006716: f7fe fb57 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(55, 80, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //<2F><><CD><E0><E7>
800671a: 4b90 ldr r3, [pc, #576] ; (800695c <Display+0x8ec>)
800671c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006720: b29b uxth r3, r3
8006722: 4a90 ldr r2, [pc, #576] ; (8006964 <Display+0x8f4>)
8006724: 011b lsls r3, r3, #4
8006726: 4413 add r3, r2
8006728: 681a ldr r2, [r3, #0]
800672a: 2303 movs r3, #3
800672c: 2150 movs r1, #80 ; 0x50
800672e: 2037 movs r0, #55 ; 0x37
8006730: f7fe fc10 bl 8004f54 <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>
8006734: 4b89 ldr r3, [pc, #548] ; (800695c <Display+0x8ec>)
8006736: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800673a: b29b uxth r3, r3
800673c: 4a89 ldr r2, [pc, #548] ; (8006964 <Display+0x8f4>)
800673e: 011b lsls r3, r3, #4
8006740: 4413 add r3, r2
8006742: 3304 adds r3, #4
8006744: 681a ldr r2, [r3, #0]
8006746: 2303 movs r3, #3
8006748: 2164 movs r1, #100 ; 0x64
800674a: 2037 movs r0, #55 ; 0x37
800674c: f7fe fc02 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(55, 140, (char *) pOPTIONS[pardata.LANG][3], LEFT_MODE); //Off
8006750: 4b82 ldr r3, [pc, #520] ; (800695c <Display+0x8ec>)
8006752: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8006756: b29b uxth r3, r3
8006758: 4a82 ldr r2, [pc, #520] ; (8006964 <Display+0x8f4>)
800675a: 011b lsls r3, r3, #4
800675c: 4413 add r3, r2
800675e: 330c adds r3, #12
8006760: 681a ldr r2, [r3, #0]
8006762: 2303 movs r3, #3
8006764: 218c movs r1, #140 ; 0x8c
8006766: 2037 movs r0, #55 ; 0x37
8006768: f7fe fbf4 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800676c: f007 b930 b.w 800d9d0 <Display+0x7960>
if(menupos == PowerOff)
8006770: 4b7d ldr r3, [pc, #500] ; (8006968 <Display+0x8f8>)
8006772: 781b ldrb r3, [r3, #0]
8006774: b2db uxtb r3, r3
8006776: 2b02 cmp r3, #2
8006778: f047 812a bne.w 800d9d0 <Display+0x7960>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800677c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8006780: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8006784: f7fe fb20 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(55, 140, (char *) pOPTIONS[pardata.LANG][3], LEFT_MODE); //Off
8006788: 4b74 ldr r3, [pc, #464] ; (800695c <Display+0x8ec>)
800678a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800678e: b29b uxth r3, r3
8006790: 4a74 ldr r2, [pc, #464] ; (8006964 <Display+0x8f4>)
8006792: 011b lsls r3, r3, #4
8006794: 4413 add r3, r2
8006796: 330c adds r3, #12
8006798: 681a ldr r2, [r3, #0]
800679a: 2303 movs r3, #3
800679c: 218c movs r1, #140 ; 0x8c
800679e: 2037 movs r0, #55 ; 0x37
80067a0: f7fe fbd8 bl 8004f54 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
80067a4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80067a8: f04f 30ff mov.w r0, #4294967295
80067ac: f7fe fb0c bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(55, 80, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //<2F><><CD><E0><E7>
80067b0: 4b6a ldr r3, [pc, #424] ; (800695c <Display+0x8ec>)
80067b2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80067b6: b29b uxth r3, r3
80067b8: 4a6a ldr r2, [pc, #424] ; (8006964 <Display+0x8f4>)
80067ba: 011b lsls r3, r3, #4
80067bc: 4413 add r3, r2
80067be: 681a ldr r2, [r3, #0]
80067c0: 2303 movs r3, #3
80067c2: 2150 movs r1, #80 ; 0x50
80067c4: 2037 movs r0, #55 ; 0x37
80067c6: f7fe fbc5 bl 8004f54 <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>
80067ca: 4b64 ldr r3, [pc, #400] ; (800695c <Display+0x8ec>)
80067cc: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80067d0: b29b uxth r3, r3
80067d2: 4a64 ldr r2, [pc, #400] ; (8006964 <Display+0x8f4>)
80067d4: 011b lsls r3, r3, #4
80067d6: 4413 add r3, r2
80067d8: 3304 adds r3, #4
80067da: 681a ldr r2, [r3, #0]
80067dc: 2303 movs r3, #3
80067de: 2164 movs r1, #100 ; 0x64
80067e0: 2037 movs r0, #55 ; 0x37
80067e2: f7fe fbb7 bl 8004f54 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
80067e6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80067ea: 4860 ldr r0, [pc, #384] ; (800696c <Display+0x8fc>)
80067ec: f7fe faec bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(240, 120, (char *) pLANG[pardata.LANG], CENTER_MODE); //<2F><><DF><E7>
80067f0: 4b5a ldr r3, [pc, #360] ; (800695c <Display+0x8ec>)
80067f2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80067f6: b29b uxth r3, r3
80067f8: 461a mov r2, r3
80067fa: 4b59 ldr r3, [pc, #356] ; (8006960 <Display+0x8f0>)
80067fc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8006800: 2301 movs r3, #1
8006802: 2178 movs r1, #120 ; 0x78
8006804: 20f0 movs r0, #240 ; 0xf0
8006806: f7fe fba5 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800680a: f007 b8e1 b.w 800d9d0 <Display+0x7960>
case SETTINGS: //todo
//////////////////////////////////////////////////////////////////////////////
if(pardata.amplif[Ch1].SENS <= 0.0f) {
800680e: 4b53 ldr r3, [pc, #332] ; (800695c <Display+0x8ec>)
8006810: edd3 7a06 vldr s15, [r3, #24]
8006814: eef5 7ac0 vcmpe.f32 s15, #0.0
8006818: eef1 fa10 vmrs APSR_nzcv, fpscr
800681c: d807 bhi.n 800682e <Display+0x7be>
pardata.amplif[Ch1].SENS = 1.0f;
800681e: 4b4f ldr r3, [pc, #316] ; (800695c <Display+0x8ec>)
8006820: f04f 527e mov.w r2, #1065353216 ; 0x3f800000
8006824: 619a str r2, [r3, #24]
s = 10000;
8006826: f242 7310 movw r3, #10000 ; 0x2710
800682a: f8c7 3344 str.w r3, [r7, #836] ; 0x344
}
if(pardata.amplif[Ch1].SENS < 10.0f) {
800682e: 4b4b ldr r3, [pc, #300] ; (800695c <Display+0x8ec>)
8006830: edd3 7a06 vldr s15, [r3, #24]
8006834: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8006838: eef4 7ac7 vcmpe.f32 s15, s14
800683c: eef1 fa10 vmrs APSR_nzcv, fpscr
8006840: d514 bpl.n 800686c <Display+0x7fc>
s = (uint32_t) ((pardata.amplif[Ch1].SENS * 10000.0f) + 0.5f);
8006842: 4b46 ldr r3, [pc, #280] ; (800695c <Display+0x8ec>)
8006844: edd3 7a06 vldr s15, [r3, #24]
8006848: ed9f 7a49 vldr s14, [pc, #292] ; 8006970 <Display+0x900>
800684c: ee67 7a87 vmul.f32 s15, s15, s14
8006850: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006854: ee77 7a87 vadd.f32 s15, s15, s14
8006858: eefc 7ae7 vcvt.u32.f32 s15, s15
800685c: ee17 3a90 vmov r3, s15
8006860: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt1 = 4;
8006864: 2304 movs r3, #4
8006866: f887 3318 strb.w r3, [r7, #792] ; 0x318
800686a: e09c b.n 80069a6 <Display+0x936>
}
else if(pardata.amplif[Ch1].SENS < 100.0f) {
800686c: 4b3b ldr r3, [pc, #236] ; (800695c <Display+0x8ec>)
800686e: edd3 7a06 vldr s15, [r3, #24]
8006872: ed9f 7a40 vldr s14, [pc, #256] ; 8006974 <Display+0x904>
8006876: eef4 7ac7 vcmpe.f32 s15, s14
800687a: eef1 fa10 vmrs APSR_nzcv, fpscr
800687e: d514 bpl.n 80068aa <Display+0x83a>
s = (uint32_t) ((pardata.amplif[Ch1].SENS * 1000.0f) + 0.5f);
8006880: 4b36 ldr r3, [pc, #216] ; (800695c <Display+0x8ec>)
8006882: edd3 7a06 vldr s15, [r3, #24]
8006886: ed9f 7a3c vldr s14, [pc, #240] ; 8006978 <Display+0x908>
800688a: ee67 7a87 vmul.f32 s15, s15, s14
800688e: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006892: ee77 7a87 vadd.f32 s15, s15, s14
8006896: eefc 7ae7 vcvt.u32.f32 s15, s15
800689a: ee17 3a90 vmov r3, s15
800689e: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt1 = 3;
80068a2: 2303 movs r3, #3
80068a4: f887 3318 strb.w r3, [r7, #792] ; 0x318
80068a8: e07d b.n 80069a6 <Display+0x936>
}
else if(pardata.amplif[Ch1].SENS < 1000.0f) {
80068aa: 4b2c ldr r3, [pc, #176] ; (800695c <Display+0x8ec>)
80068ac: edd3 7a06 vldr s15, [r3, #24]
80068b0: ed9f 7a31 vldr s14, [pc, #196] ; 8006978 <Display+0x908>
80068b4: eef4 7ac7 vcmpe.f32 s15, s14
80068b8: eef1 fa10 vmrs APSR_nzcv, fpscr
80068bc: d514 bpl.n 80068e8 <Display+0x878>
s = (uint32_t) ((pardata.amplif[Ch1].SENS * 100.0f) + 0.5f);
80068be: 4b27 ldr r3, [pc, #156] ; (800695c <Display+0x8ec>)
80068c0: edd3 7a06 vldr s15, [r3, #24]
80068c4: ed9f 7a2b vldr s14, [pc, #172] ; 8006974 <Display+0x904>
80068c8: ee67 7a87 vmul.f32 s15, s15, s14
80068cc: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
80068d0: ee77 7a87 vadd.f32 s15, s15, s14
80068d4: eefc 7ae7 vcvt.u32.f32 s15, s15
80068d8: ee17 3a90 vmov r3, s15
80068dc: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt1 = 2;
80068e0: 2302 movs r3, #2
80068e2: f887 3318 strb.w r3, [r7, #792] ; 0x318
80068e6: e05e b.n 80069a6 <Display+0x936>
}
else if(pardata.amplif[Ch1].SENS < 10000.0f) {
80068e8: 4b1c ldr r3, [pc, #112] ; (800695c <Display+0x8ec>)
80068ea: edd3 7a06 vldr s15, [r3, #24]
80068ee: ed9f 7a20 vldr s14, [pc, #128] ; 8006970 <Display+0x900>
80068f2: eef4 7ac7 vcmpe.f32 s15, s14
80068f6: eef1 fa10 vmrs APSR_nzcv, fpscr
80068fa: d514 bpl.n 8006926 <Display+0x8b6>
s = (uint32_t) ((pardata.amplif[Ch1].SENS * 10.0f) + 0.5f);
80068fc: 4b17 ldr r3, [pc, #92] ; (800695c <Display+0x8ec>)
80068fe: edd3 7a06 vldr s15, [r3, #24]
8006902: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8006906: ee67 7a87 vmul.f32 s15, s15, s14
800690a: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800690e: ee77 7a87 vadd.f32 s15, s15, s14
8006912: eefc 7ae7 vcvt.u32.f32 s15, s15
8006916: ee17 3a90 vmov r3, s15
800691a: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt1 = 1;
800691e: 2301 movs r3, #1
8006920: f887 3318 strb.w r3, [r7, #792] ; 0x318
8006924: e03f b.n 80069a6 <Display+0x936>
}
else if(pardata.amplif[Ch1].SENS < 100000.0f) {
8006926: 4b0d ldr r3, [pc, #52] ; (800695c <Display+0x8ec>)
8006928: edd3 7a06 vldr s15, [r3, #24]
800692c: ed9f 7a13 vldr s14, [pc, #76] ; 800697c <Display+0x90c>
8006930: eef4 7ac7 vcmpe.f32 s15, s14
8006934: eef1 fa10 vmrs APSR_nzcv, fpscr
8006938: d522 bpl.n 8006980 <Display+0x910>
s = (uint32_t) ((pardata.amplif[Ch1].SENS) + 0.5f);
800693a: 4b08 ldr r3, [pc, #32] ; (800695c <Display+0x8ec>)
800693c: edd3 7a06 vldr s15, [r3, #24]
8006940: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006944: ee77 7a87 vadd.f32 s15, s15, s14
8006948: eefc 7ae7 vcvt.u32.f32 s15, s15
800694c: ee17 3a90 vmov r3, s15
8006950: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt1 = 0;
8006954: 2300 movs r3, #0
8006956: f887 3318 strb.w r3, [r7, #792] ; 0x318
800695a: e024 b.n 80069a6 <Display+0x936>
800695c: 2006bca8 .word 0x2006bca8
8006960: 20020964 .word 0x20020964
8006964: 20020034 .word 0x20020034
8006968: 20020010 .word 0x20020010
800696c: ffd8aa57 .word 0xffd8aa57
8006970: 461c4000 .word 0x461c4000
8006974: 42c80000 .word 0x42c80000
8006978: 447a0000 .word 0x447a0000
800697c: 47c35000 .word 0x47c35000
}
else if(pardata.amplif[Ch1].SENS >= 100000.0f) {
8006980: 4bd8 ldr r3, [pc, #864] ; (8006ce4 <Display+0xc74>)
8006982: edd3 7a06 vldr s15, [r3, #24]
8006986: ed9f 7ad8 vldr s14, [pc, #864] ; 8006ce8 <Display+0xc78>
800698a: eef4 7ac7 vcmpe.f32 s15, s14
800698e: eef1 fa10 vmrs APSR_nzcv, fpscr
8006992: db08 blt.n 80069a6 <Display+0x936>
pardata.amplif[Ch1].SENS = 99999.0f;
8006994: 4bd3 ldr r3, [pc, #844] ; (8006ce4 <Display+0xc74>)
8006996: 4ad5 ldr r2, [pc, #852] ; (8006cec <Display+0xc7c>)
8006998: 619a str r2, [r3, #24]
s = 99999;
800699a: 4bd5 ldr r3, [pc, #852] ; (8006cf0 <Display+0xc80>)
800699c: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt1 = 0;
80069a0: 2300 movs r3, #0
80069a2: f887 3318 strb.w r3, [r7, #792] ; 0x318
}
idt1 = (s / 10000);
80069a6: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
80069aa: 4ad2 ldr r2, [pc, #840] ; (8006cf4 <Display+0xc84>)
80069ac: fba2 2303 umull r2, r3, r2, r3
80069b0: 0b5b lsrs r3, r3, #13
80069b2: b2db uxtb r3, r3
80069b4: f887 331f strb.w r3, [r7, #799] ; 0x31f
iet1 = (s % 10000 / 1000);
80069b8: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
80069bc: 4bcd ldr r3, [pc, #820] ; (8006cf4 <Display+0xc84>)
80069be: fba3 1302 umull r1, r3, r3, r2
80069c2: 0b5b lsrs r3, r3, #13
80069c4: f242 7110 movw r1, #10000 ; 0x2710
80069c8: fb01 f303 mul.w r3, r1, r3
80069cc: 1ad3 subs r3, r2, r3
80069ce: 4aca ldr r2, [pc, #808] ; (8006cf8 <Display+0xc88>)
80069d0: fba2 2303 umull r2, r3, r2, r3
80069d4: 099b lsrs r3, r3, #6
80069d6: b2db uxtb r3, r3
80069d8: f887 331e strb.w r3, [r7, #798] ; 0x31e
ies1 = (s % 10000 % 1000 / 100);
80069dc: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
80069e0: 4bc4 ldr r3, [pc, #784] ; (8006cf4 <Display+0xc84>)
80069e2: fba3 1302 umull r1, r3, r3, r2
80069e6: 0b5b lsrs r3, r3, #13
80069e8: f242 7110 movw r1, #10000 ; 0x2710
80069ec: fb01 f303 mul.w r3, r1, r3
80069f0: 1ad3 subs r3, r2, r3
80069f2: 4ac1 ldr r2, [pc, #772] ; (8006cf8 <Display+0xc88>)
80069f4: fba2 1203 umull r1, r2, r2, r3
80069f8: 0992 lsrs r2, r2, #6
80069fa: f44f 717a mov.w r1, #1000 ; 0x3e8
80069fe: fb01 f202 mul.w r2, r1, r2
8006a02: 1a9a subs r2, r3, r2
8006a04: 4bbd ldr r3, [pc, #756] ; (8006cfc <Display+0xc8c>)
8006a06: fba3 2302 umull r2, r3, r3, r2
8006a0a: 095b lsrs r3, r3, #5
8006a0c: b2db uxtb r3, r3
8006a0e: f887 331d strb.w r3, [r7, #797] ; 0x31d
ied1 = (s % 10000 % 1000 % 100 / 10);
8006a12: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
8006a16: 4ab7 ldr r2, [pc, #732] ; (8006cf4 <Display+0xc84>)
8006a18: fba2 1203 umull r1, r2, r2, r3
8006a1c: 0b52 lsrs r2, r2, #13
8006a1e: f242 7110 movw r1, #10000 ; 0x2710
8006a22: fb01 f202 mul.w r2, r1, r2
8006a26: 1a9a subs r2, r3, r2
8006a28: 4bb3 ldr r3, [pc, #716] ; (8006cf8 <Display+0xc88>)
8006a2a: fba3 1302 umull r1, r3, r3, r2
8006a2e: 099b lsrs r3, r3, #6
8006a30: f44f 717a mov.w r1, #1000 ; 0x3e8
8006a34: fb01 f303 mul.w r3, r1, r3
8006a38: 1ad3 subs r3, r2, r3
8006a3a: 4ab0 ldr r2, [pc, #704] ; (8006cfc <Display+0xc8c>)
8006a3c: fba2 1203 umull r1, r2, r2, r3
8006a40: 0952 lsrs r2, r2, #5
8006a42: 2164 movs r1, #100 ; 0x64
8006a44: fb01 f202 mul.w r2, r1, r2
8006a48: 1a9a subs r2, r3, r2
8006a4a: 4bad ldr r3, [pc, #692] ; (8006d00 <Display+0xc90>)
8006a4c: fba3 2302 umull r2, r3, r3, r2
8006a50: 08db lsrs r3, r3, #3
8006a52: b2db uxtb r3, r3
8006a54: f887 331c strb.w r3, [r7, #796] ; 0x31c
iee1 = (s % 10000 % 1000 % 100 % 10);
8006a58: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
8006a5c: 4aa5 ldr r2, [pc, #660] ; (8006cf4 <Display+0xc84>)
8006a5e: fba2 1203 umull r1, r2, r2, r3
8006a62: 0b52 lsrs r2, r2, #13
8006a64: f242 7110 movw r1, #10000 ; 0x2710
8006a68: fb01 f202 mul.w r2, r1, r2
8006a6c: 1a9a subs r2, r3, r2
8006a6e: 4ba2 ldr r3, [pc, #648] ; (8006cf8 <Display+0xc88>)
8006a70: fba3 1302 umull r1, r3, r3, r2
8006a74: 099b lsrs r3, r3, #6
8006a76: f44f 717a mov.w r1, #1000 ; 0x3e8
8006a7a: fb01 f303 mul.w r3, r1, r3
8006a7e: 1ad3 subs r3, r2, r3
8006a80: 4a9e ldr r2, [pc, #632] ; (8006cfc <Display+0xc8c>)
8006a82: fba2 1203 umull r1, r2, r2, r3
8006a86: 0952 lsrs r2, r2, #5
8006a88: 2164 movs r1, #100 ; 0x64
8006a8a: fb01 f202 mul.w r2, r1, r2
8006a8e: 1a9a subs r2, r3, r2
8006a90: 4b9b ldr r3, [pc, #620] ; (8006d00 <Display+0xc90>)
8006a92: fba3 1302 umull r1, r3, r3, r2
8006a96: 08d9 lsrs r1, r3, #3
8006a98: 460b mov r3, r1
8006a9a: 009b lsls r3, r3, #2
8006a9c: 440b add r3, r1
8006a9e: 005b lsls r3, r3, #1
8006aa0: 1ad1 subs r1, r2, r3
8006aa2: b2cb uxtb r3, r1
8006aa4: f887 331b strb.w r3, [r7, #795] ; 0x31b
p8 = str1;
8006aa8: f507 738e add.w r3, r7, #284 ; 0x11c
8006aac: f8c7 3340 str.w r3, [r7, #832] ; 0x340
if(pardata.amplif[Ch1].SENS < 10.0f) {
8006ab0: 4b8c ldr r3, [pc, #560] ; (8006ce4 <Display+0xc74>)
8006ab2: edd3 7a06 vldr s15, [r3, #24]
8006ab6: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8006aba: eef4 7ac7 vcmpe.f32 s15, s14
8006abe: eef1 fa10 vmrs APSR_nzcv, fpscr
8006ac2: d50b bpl.n 8006adc <Display+0xa6c>
p8 = FloatToASCII(pardata.amplif[Ch1].SENS, -4);
8006ac4: 4b87 ldr r3, [pc, #540] ; (8006ce4 <Display+0xc74>)
8006ac6: edd3 7a06 vldr s15, [r3, #24]
8006aca: f06f 0003 mvn.w r0, #3
8006ace: eeb0 0a67 vmov.f32 s0, s15
8006ad2: f008 fce5 bl 800f4a0 <FloatToASCII>
8006ad6: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8006ada: e055 b.n 8006b88 <Display+0xb18>
}
else if(pardata.amplif[Ch1].SENS < 100.0f) {
8006adc: 4b81 ldr r3, [pc, #516] ; (8006ce4 <Display+0xc74>)
8006ade: edd3 7a06 vldr s15, [r3, #24]
8006ae2: ed9f 7a88 vldr s14, [pc, #544] ; 8006d04 <Display+0xc94>
8006ae6: eef4 7ac7 vcmpe.f32 s15, s14
8006aea: eef1 fa10 vmrs APSR_nzcv, fpscr
8006aee: d50b bpl.n 8006b08 <Display+0xa98>
p8 = FloatToASCII(pardata.amplif[Ch1].SENS, -3);
8006af0: 4b7c ldr r3, [pc, #496] ; (8006ce4 <Display+0xc74>)
8006af2: edd3 7a06 vldr s15, [r3, #24]
8006af6: f06f 0002 mvn.w r0, #2
8006afa: eeb0 0a67 vmov.f32 s0, s15
8006afe: f008 fccf bl 800f4a0 <FloatToASCII>
8006b02: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8006b06: e03f b.n 8006b88 <Display+0xb18>
}
else if(pardata.amplif[Ch1].SENS < 1000.0f) {
8006b08: 4b76 ldr r3, [pc, #472] ; (8006ce4 <Display+0xc74>)
8006b0a: edd3 7a06 vldr s15, [r3, #24]
8006b0e: ed9f 7a7e vldr s14, [pc, #504] ; 8006d08 <Display+0xc98>
8006b12: eef4 7ac7 vcmpe.f32 s15, s14
8006b16: eef1 fa10 vmrs APSR_nzcv, fpscr
8006b1a: d50b bpl.n 8006b34 <Display+0xac4>
p8 = FloatToASCII(pardata.amplif[Ch1].SENS, -2);
8006b1c: 4b71 ldr r3, [pc, #452] ; (8006ce4 <Display+0xc74>)
8006b1e: edd3 7a06 vldr s15, [r3, #24]
8006b22: f06f 0001 mvn.w r0, #1
8006b26: eeb0 0a67 vmov.f32 s0, s15
8006b2a: f008 fcb9 bl 800f4a0 <FloatToASCII>
8006b2e: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8006b32: e029 b.n 8006b88 <Display+0xb18>
}
else if(pardata.amplif[Ch1].SENS < 10000.0f) {
8006b34: 4b6b ldr r3, [pc, #428] ; (8006ce4 <Display+0xc74>)
8006b36: edd3 7a06 vldr s15, [r3, #24]
8006b3a: ed9f 7a74 vldr s14, [pc, #464] ; 8006d0c <Display+0xc9c>
8006b3e: eef4 7ac7 vcmpe.f32 s15, s14
8006b42: eef1 fa10 vmrs APSR_nzcv, fpscr
8006b46: d50b bpl.n 8006b60 <Display+0xaf0>
p8 = FloatToASCII(pardata.amplif[Ch1].SENS, -1);
8006b48: 4b66 ldr r3, [pc, #408] ; (8006ce4 <Display+0xc74>)
8006b4a: edd3 7a06 vldr s15, [r3, #24]
8006b4e: f04f 30ff mov.w r0, #4294967295
8006b52: eeb0 0a67 vmov.f32 s0, s15
8006b56: f008 fca3 bl 800f4a0 <FloatToASCII>
8006b5a: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8006b5e: e013 b.n 8006b88 <Display+0xb18>
}
else if(pardata.amplif[Ch1].SENS < 100000.0f) {
8006b60: 4b60 ldr r3, [pc, #384] ; (8006ce4 <Display+0xc74>)
8006b62: edd3 7a06 vldr s15, [r3, #24]
8006b66: ed9f 7a60 vldr s14, [pc, #384] ; 8006ce8 <Display+0xc78>
8006b6a: eef4 7ac7 vcmpe.f32 s15, s14
8006b6e: eef1 fa10 vmrs APSR_nzcv, fpscr
8006b72: d509 bpl.n 8006b88 <Display+0xb18>
p8 = FloatToASCII(pardata.amplif[Ch1].SENS, 0);
8006b74: 4b5b ldr r3, [pc, #364] ; (8006ce4 <Display+0xc74>)
8006b76: edd3 7a06 vldr s15, [r3, #24]
8006b7a: 2000 movs r0, #0
8006b7c: eeb0 0a67 vmov.f32 s0, s15
8006b80: f008 fc8e bl 800f4a0 <FloatToASCII>
8006b84: f8c7 0340 str.w r0, [r7, #832] ; 0x340
}
strcpy((void *) str1, (void *) p8);
8006b88: f507 738e add.w r3, r7, #284 ; 0x11c
8006b8c: f8d7 1340 ldr.w r1, [r7, #832] ; 0x340
8006b90: 4618 mov r0, r3
8006b92: f00f fcaa bl 80164ea <strcpy>
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
if(pardata.amplif[Ch2].SENS <= 0.0f) {
8006b96: 4b53 ldr r3, [pc, #332] ; (8006ce4 <Display+0xc74>)
8006b98: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006b9c: eef5 7ac0 vcmpe.f32 s15, #0.0
8006ba0: eef1 fa10 vmrs APSR_nzcv, fpscr
8006ba4: d807 bhi.n 8006bb6 <Display+0xb46>
pardata.amplif[Ch2].SENS = 1.0f;
8006ba6: 4b4f ldr r3, [pc, #316] ; (8006ce4 <Display+0xc74>)
8006ba8: f04f 527e mov.w r2, #1065353216 ; 0x3f800000
8006bac: 639a str r2, [r3, #56] ; 0x38
s = 10000;
8006bae: f242 7310 movw r3, #10000 ; 0x2710
8006bb2: f8c7 3344 str.w r3, [r7, #836] ; 0x344
}
if(pardata.amplif[Ch2].SENS < 10.0f) {
8006bb6: 4b4b ldr r3, [pc, #300] ; (8006ce4 <Display+0xc74>)
8006bb8: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006bbc: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8006bc0: eef4 7ac7 vcmpe.f32 s15, s14
8006bc4: eef1 fa10 vmrs APSR_nzcv, fpscr
8006bc8: d514 bpl.n 8006bf4 <Display+0xb84>
s = (uint32_t) ((pardata.amplif[Ch2].SENS * 10000.0f) + 0.5f);
8006bca: 4b46 ldr r3, [pc, #280] ; (8006ce4 <Display+0xc74>)
8006bcc: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006bd0: ed9f 7a4e vldr s14, [pc, #312] ; 8006d0c <Display+0xc9c>
8006bd4: ee67 7a87 vmul.f32 s15, s15, s14
8006bd8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006bdc: ee77 7a87 vadd.f32 s15, s15, s14
8006be0: eefc 7ae7 vcvt.u32.f32 s15, s15
8006be4: ee17 3a90 vmov r3, s15
8006be8: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt2 = 4;
8006bec: 2304 movs r3, #4
8006bee: f887 3310 strb.w r3, [r7, #784] ; 0x310
8006bf2: e0a0 b.n 8006d36 <Display+0xcc6>
}
else if(pardata.amplif[Ch2].SENS < 100.0f) {
8006bf4: 4b3b ldr r3, [pc, #236] ; (8006ce4 <Display+0xc74>)
8006bf6: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006bfa: ed9f 7a42 vldr s14, [pc, #264] ; 8006d04 <Display+0xc94>
8006bfe: eef4 7ac7 vcmpe.f32 s15, s14
8006c02: eef1 fa10 vmrs APSR_nzcv, fpscr
8006c06: d514 bpl.n 8006c32 <Display+0xbc2>
s = (uint32_t) ((pardata.amplif[Ch2].SENS * 1000.0f) + 0.5f);
8006c08: 4b36 ldr r3, [pc, #216] ; (8006ce4 <Display+0xc74>)
8006c0a: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006c0e: ed9f 7a3e vldr s14, [pc, #248] ; 8006d08 <Display+0xc98>
8006c12: ee67 7a87 vmul.f32 s15, s15, s14
8006c16: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006c1a: ee77 7a87 vadd.f32 s15, s15, s14
8006c1e: eefc 7ae7 vcvt.u32.f32 s15, s15
8006c22: ee17 3a90 vmov r3, s15
8006c26: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt2 = 3;
8006c2a: 2303 movs r3, #3
8006c2c: f887 3310 strb.w r3, [r7, #784] ; 0x310
8006c30: e081 b.n 8006d36 <Display+0xcc6>
}
else if(pardata.amplif[Ch2].SENS < 1000.0f) {
8006c32: 4b2c ldr r3, [pc, #176] ; (8006ce4 <Display+0xc74>)
8006c34: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006c38: ed9f 7a33 vldr s14, [pc, #204] ; 8006d08 <Display+0xc98>
8006c3c: eef4 7ac7 vcmpe.f32 s15, s14
8006c40: eef1 fa10 vmrs APSR_nzcv, fpscr
8006c44: d514 bpl.n 8006c70 <Display+0xc00>
s = (uint32_t) ((pardata.amplif[Ch2].SENS * 100.0f) + 0.5f);
8006c46: 4b27 ldr r3, [pc, #156] ; (8006ce4 <Display+0xc74>)
8006c48: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006c4c: ed9f 7a2d vldr s14, [pc, #180] ; 8006d04 <Display+0xc94>
8006c50: ee67 7a87 vmul.f32 s15, s15, s14
8006c54: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006c58: ee77 7a87 vadd.f32 s15, s15, s14
8006c5c: eefc 7ae7 vcvt.u32.f32 s15, s15
8006c60: ee17 3a90 vmov r3, s15
8006c64: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt2 = 2;
8006c68: 2302 movs r3, #2
8006c6a: f887 3310 strb.w r3, [r7, #784] ; 0x310
8006c6e: e062 b.n 8006d36 <Display+0xcc6>
}
else if(pardata.amplif[Ch2].SENS < 10000.0f) {
8006c70: 4b1c ldr r3, [pc, #112] ; (8006ce4 <Display+0xc74>)
8006c72: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006c76: ed9f 7a25 vldr s14, [pc, #148] ; 8006d0c <Display+0xc9c>
8006c7a: eef4 7ac7 vcmpe.f32 s15, s14
8006c7e: eef1 fa10 vmrs APSR_nzcv, fpscr
8006c82: d514 bpl.n 8006cae <Display+0xc3e>
s = (uint32_t) ((pardata.amplif[Ch2].SENS * 10.0f) + 0.5f);
8006c84: 4b17 ldr r3, [pc, #92] ; (8006ce4 <Display+0xc74>)
8006c86: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006c8a: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8006c8e: ee67 7a87 vmul.f32 s15, s15, s14
8006c92: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006c96: ee77 7a87 vadd.f32 s15, s15, s14
8006c9a: eefc 7ae7 vcvt.u32.f32 s15, s15
8006c9e: ee17 3a90 vmov r3, s15
8006ca2: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt2 = 1;
8006ca6: 2301 movs r3, #1
8006ca8: f887 3310 strb.w r3, [r7, #784] ; 0x310
8006cac: e043 b.n 8006d36 <Display+0xcc6>
}
else if(pardata.amplif[Ch2].SENS < 100000.0f) {
8006cae: 4b0d ldr r3, [pc, #52] ; (8006ce4 <Display+0xc74>)
8006cb0: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006cb4: ed9f 7a0c vldr s14, [pc, #48] ; 8006ce8 <Display+0xc78>
8006cb8: eef4 7ac7 vcmpe.f32 s15, s14
8006cbc: eef1 fa10 vmrs APSR_nzcv, fpscr
8006cc0: d526 bpl.n 8006d10 <Display+0xca0>
s = (uint32_t) ((pardata.amplif[Ch2].SENS) + 0.5f);
8006cc2: 4b08 ldr r3, [pc, #32] ; (8006ce4 <Display+0xc74>)
8006cc4: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006cc8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006ccc: ee77 7a87 vadd.f32 s15, s15, s14
8006cd0: eefc 7ae7 vcvt.u32.f32 s15, s15
8006cd4: ee17 3a90 vmov r3, s15
8006cd8: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt2 = 0;
8006cdc: 2300 movs r3, #0
8006cde: f887 3310 strb.w r3, [r7, #784] ; 0x310
8006ce2: e028 b.n 8006d36 <Display+0xcc6>
8006ce4: 2006bca8 .word 0x2006bca8
8006ce8: 47c35000 .word 0x47c35000
8006cec: 47c34f80 .word 0x47c34f80
8006cf0: 0001869f .word 0x0001869f
8006cf4: d1b71759 .word 0xd1b71759
8006cf8: 10624dd3 .word 0x10624dd3
8006cfc: 51eb851f .word 0x51eb851f
8006d00: cccccccd .word 0xcccccccd
8006d04: 42c80000 .word 0x42c80000
8006d08: 447a0000 .word 0x447a0000
8006d0c: 461c4000 .word 0x461c4000
}
else if(pardata.amplif[Ch2].SENS >= 100000.0f) {
8006d10: 4bd8 ldr r3, [pc, #864] ; (8007074 <Display+0x1004>)
8006d12: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006d16: ed9f 7ad8 vldr s14, [pc, #864] ; 8007078 <Display+0x1008>
8006d1a: eef4 7ac7 vcmpe.f32 s15, s14
8006d1e: eef1 fa10 vmrs APSR_nzcv, fpscr
8006d22: db08 blt.n 8006d36 <Display+0xcc6>
pardata.amplif[Ch2].SENS = 99999.0f;
8006d24: 4bd3 ldr r3, [pc, #844] ; (8007074 <Display+0x1004>)
8006d26: 4ad5 ldr r2, [pc, #852] ; (800707c <Display+0x100c>)
8006d28: 639a str r2, [r3, #56] ; 0x38
s = 99999;
8006d2a: 4bd5 ldr r3, [pc, #852] ; (8007080 <Display+0x1010>)
8006d2c: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt2 = 0;
8006d30: 2300 movs r3, #0
8006d32: f887 3310 strb.w r3, [r7, #784] ; 0x310
}
idt2 = (s / 10000);
8006d36: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
8006d3a: 4ad2 ldr r2, [pc, #840] ; (8007084 <Display+0x1014>)
8006d3c: fba2 2303 umull r2, r3, r2, r3
8006d40: 0b5b lsrs r3, r3, #13
8006d42: b2db uxtb r3, r3
8006d44: f887 3317 strb.w r3, [r7, #791] ; 0x317
iet2 = (s % 10000 / 1000);
8006d48: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
8006d4c: 4bcd ldr r3, [pc, #820] ; (8007084 <Display+0x1014>)
8006d4e: fba3 1302 umull r1, r3, r3, r2
8006d52: 0b5b lsrs r3, r3, #13
8006d54: f242 7110 movw r1, #10000 ; 0x2710
8006d58: fb01 f303 mul.w r3, r1, r3
8006d5c: 1ad3 subs r3, r2, r3
8006d5e: 4aca ldr r2, [pc, #808] ; (8007088 <Display+0x1018>)
8006d60: fba2 2303 umull r2, r3, r2, r3
8006d64: 099b lsrs r3, r3, #6
8006d66: b2db uxtb r3, r3
8006d68: f887 3316 strb.w r3, [r7, #790] ; 0x316
ies2 = (s % 10000 % 1000 / 100);
8006d6c: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
8006d70: 4bc4 ldr r3, [pc, #784] ; (8007084 <Display+0x1014>)
8006d72: fba3 1302 umull r1, r3, r3, r2
8006d76: 0b5b lsrs r3, r3, #13
8006d78: f242 7110 movw r1, #10000 ; 0x2710
8006d7c: fb01 f303 mul.w r3, r1, r3
8006d80: 1ad3 subs r3, r2, r3
8006d82: 4ac1 ldr r2, [pc, #772] ; (8007088 <Display+0x1018>)
8006d84: fba2 1203 umull r1, r2, r2, r3
8006d88: 0992 lsrs r2, r2, #6
8006d8a: f44f 717a mov.w r1, #1000 ; 0x3e8
8006d8e: fb01 f202 mul.w r2, r1, r2
8006d92: 1a9a subs r2, r3, r2
8006d94: 4bbd ldr r3, [pc, #756] ; (800708c <Display+0x101c>)
8006d96: fba3 2302 umull r2, r3, r3, r2
8006d9a: 095b lsrs r3, r3, #5
8006d9c: b2db uxtb r3, r3
8006d9e: f887 3315 strb.w r3, [r7, #789] ; 0x315
ied2 = (s % 10000 % 1000 % 100 / 10);
8006da2: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
8006da6: 4ab7 ldr r2, [pc, #732] ; (8007084 <Display+0x1014>)
8006da8: fba2 1203 umull r1, r2, r2, r3
8006dac: 0b52 lsrs r2, r2, #13
8006dae: f242 7110 movw r1, #10000 ; 0x2710
8006db2: fb01 f202 mul.w r2, r1, r2
8006db6: 1a9a subs r2, r3, r2
8006db8: 4bb3 ldr r3, [pc, #716] ; (8007088 <Display+0x1018>)
8006dba: fba3 1302 umull r1, r3, r3, r2
8006dbe: 099b lsrs r3, r3, #6
8006dc0: f44f 717a mov.w r1, #1000 ; 0x3e8
8006dc4: fb01 f303 mul.w r3, r1, r3
8006dc8: 1ad3 subs r3, r2, r3
8006dca: 4ab0 ldr r2, [pc, #704] ; (800708c <Display+0x101c>)
8006dcc: fba2 1203 umull r1, r2, r2, r3
8006dd0: 0952 lsrs r2, r2, #5
8006dd2: 2164 movs r1, #100 ; 0x64
8006dd4: fb01 f202 mul.w r2, r1, r2
8006dd8: 1a9a subs r2, r3, r2
8006dda: 4bad ldr r3, [pc, #692] ; (8007090 <Display+0x1020>)
8006ddc: fba3 2302 umull r2, r3, r3, r2
8006de0: 08db lsrs r3, r3, #3
8006de2: b2db uxtb r3, r3
8006de4: f887 3314 strb.w r3, [r7, #788] ; 0x314
iee2 = (s % 10000 % 1000 % 100 % 10);
8006de8: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
8006dec: 4aa5 ldr r2, [pc, #660] ; (8007084 <Display+0x1014>)
8006dee: fba2 1203 umull r1, r2, r2, r3
8006df2: 0b52 lsrs r2, r2, #13
8006df4: f242 7110 movw r1, #10000 ; 0x2710
8006df8: fb01 f202 mul.w r2, r1, r2
8006dfc: 1a9a subs r2, r3, r2
8006dfe: 4ba2 ldr r3, [pc, #648] ; (8007088 <Display+0x1018>)
8006e00: fba3 1302 umull r1, r3, r3, r2
8006e04: 099b lsrs r3, r3, #6
8006e06: f44f 717a mov.w r1, #1000 ; 0x3e8
8006e0a: fb01 f303 mul.w r3, r1, r3
8006e0e: 1ad3 subs r3, r2, r3
8006e10: 4a9e ldr r2, [pc, #632] ; (800708c <Display+0x101c>)
8006e12: fba2 1203 umull r1, r2, r2, r3
8006e16: 0952 lsrs r2, r2, #5
8006e18: 2164 movs r1, #100 ; 0x64
8006e1a: fb01 f202 mul.w r2, r1, r2
8006e1e: 1a9a subs r2, r3, r2
8006e20: 4b9b ldr r3, [pc, #620] ; (8007090 <Display+0x1020>)
8006e22: fba3 1302 umull r1, r3, r3, r2
8006e26: 08d9 lsrs r1, r3, #3
8006e28: 460b mov r3, r1
8006e2a: 009b lsls r3, r3, #2
8006e2c: 440b add r3, r1
8006e2e: 005b lsls r3, r3, #1
8006e30: 1ad1 subs r1, r2, r3
8006e32: b2cb uxtb r3, r1
8006e34: f887 3313 strb.w r3, [r7, #787] ; 0x313
p8 = str2;
8006e38: f107 03e0 add.w r3, r7, #224 ; 0xe0
8006e3c: f8c7 3340 str.w r3, [r7, #832] ; 0x340
if(pardata.amplif[Ch2].SENS < 10.0f) {
8006e40: 4b8c ldr r3, [pc, #560] ; (8007074 <Display+0x1004>)
8006e42: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006e46: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8006e4a: eef4 7ac7 vcmpe.f32 s15, s14
8006e4e: eef1 fa10 vmrs APSR_nzcv, fpscr
8006e52: d50b bpl.n 8006e6c <Display+0xdfc>
p8 = FloatToASCII(pardata.amplif[Ch2].SENS, -4);
8006e54: 4b87 ldr r3, [pc, #540] ; (8007074 <Display+0x1004>)
8006e56: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006e5a: f06f 0003 mvn.w r0, #3
8006e5e: eeb0 0a67 vmov.f32 s0, s15
8006e62: f008 fb1d bl 800f4a0 <FloatToASCII>
8006e66: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8006e6a: e055 b.n 8006f18 <Display+0xea8>
}
else if(pardata.amplif[Ch2].SENS < 100.0f) {
8006e6c: 4b81 ldr r3, [pc, #516] ; (8007074 <Display+0x1004>)
8006e6e: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006e72: ed9f 7a88 vldr s14, [pc, #544] ; 8007094 <Display+0x1024>
8006e76: eef4 7ac7 vcmpe.f32 s15, s14
8006e7a: eef1 fa10 vmrs APSR_nzcv, fpscr
8006e7e: d50b bpl.n 8006e98 <Display+0xe28>
p8 = FloatToASCII(pardata.amplif[Ch2].SENS, -3);
8006e80: 4b7c ldr r3, [pc, #496] ; (8007074 <Display+0x1004>)
8006e82: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006e86: f06f 0002 mvn.w r0, #2
8006e8a: eeb0 0a67 vmov.f32 s0, s15
8006e8e: f008 fb07 bl 800f4a0 <FloatToASCII>
8006e92: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8006e96: e03f b.n 8006f18 <Display+0xea8>
}
else if(pardata.amplif[Ch2].SENS < 1000.0f) {
8006e98: 4b76 ldr r3, [pc, #472] ; (8007074 <Display+0x1004>)
8006e9a: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006e9e: ed9f 7a7e vldr s14, [pc, #504] ; 8007098 <Display+0x1028>
8006ea2: eef4 7ac7 vcmpe.f32 s15, s14
8006ea6: eef1 fa10 vmrs APSR_nzcv, fpscr
8006eaa: d50b bpl.n 8006ec4 <Display+0xe54>
p8 = FloatToASCII(pardata.amplif[Ch2].SENS, -2);
8006eac: 4b71 ldr r3, [pc, #452] ; (8007074 <Display+0x1004>)
8006eae: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006eb2: f06f 0001 mvn.w r0, #1
8006eb6: eeb0 0a67 vmov.f32 s0, s15
8006eba: f008 faf1 bl 800f4a0 <FloatToASCII>
8006ebe: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8006ec2: e029 b.n 8006f18 <Display+0xea8>
}
else if(pardata.amplif[Ch2].SENS < 10000.0f) {
8006ec4: 4b6b ldr r3, [pc, #428] ; (8007074 <Display+0x1004>)
8006ec6: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006eca: ed9f 7a74 vldr s14, [pc, #464] ; 800709c <Display+0x102c>
8006ece: eef4 7ac7 vcmpe.f32 s15, s14
8006ed2: eef1 fa10 vmrs APSR_nzcv, fpscr
8006ed6: d50b bpl.n 8006ef0 <Display+0xe80>
p8 = FloatToASCII(pardata.amplif[Ch2].SENS, -1);
8006ed8: 4b66 ldr r3, [pc, #408] ; (8007074 <Display+0x1004>)
8006eda: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006ede: f04f 30ff mov.w r0, #4294967295
8006ee2: eeb0 0a67 vmov.f32 s0, s15
8006ee6: f008 fadb bl 800f4a0 <FloatToASCII>
8006eea: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8006eee: e013 b.n 8006f18 <Display+0xea8>
}
else if(pardata.amplif[Ch2].SENS < 100000.0f) {
8006ef0: 4b60 ldr r3, [pc, #384] ; (8007074 <Display+0x1004>)
8006ef2: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006ef6: ed9f 7a60 vldr s14, [pc, #384] ; 8007078 <Display+0x1008>
8006efa: eef4 7ac7 vcmpe.f32 s15, s14
8006efe: eef1 fa10 vmrs APSR_nzcv, fpscr
8006f02: d509 bpl.n 8006f18 <Display+0xea8>
p8 = FloatToASCII(pardata.amplif[Ch2].SENS, 0);
8006f04: 4b5b ldr r3, [pc, #364] ; (8007074 <Display+0x1004>)
8006f06: edd3 7a0e vldr s15, [r3, #56] ; 0x38
8006f0a: 2000 movs r0, #0
8006f0c: eeb0 0a67 vmov.f32 s0, s15
8006f10: f008 fac6 bl 800f4a0 <FloatToASCII>
8006f14: f8c7 0340 str.w r0, [r7, #832] ; 0x340
}
strcpy((void *) str2, (void *) p8);
8006f18: f107 03e0 add.w r3, r7, #224 ; 0xe0
8006f1c: f8d7 1340 ldr.w r1, [r7, #832] ; 0x340
8006f20: 4618 mov r0, r3
8006f22: f00f fae2 bl 80164ea <strcpy>
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
if(pardata.amplif[Ch3].SENS <= 0.0f) {
8006f26: 4b53 ldr r3, [pc, #332] ; (8007074 <Display+0x1004>)
8006f28: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8006f2c: eef5 7ac0 vcmpe.f32 s15, #0.0
8006f30: eef1 fa10 vmrs APSR_nzcv, fpscr
8006f34: d807 bhi.n 8006f46 <Display+0xed6>
pardata.amplif[Ch3].SENS = 1.0f;
8006f36: 4b4f ldr r3, [pc, #316] ; (8007074 <Display+0x1004>)
8006f38: f04f 527e mov.w r2, #1065353216 ; 0x3f800000
8006f3c: 659a str r2, [r3, #88] ; 0x58
s = 10000;
8006f3e: f242 7310 movw r3, #10000 ; 0x2710
8006f42: f8c7 3344 str.w r3, [r7, #836] ; 0x344
}
if(pardata.amplif[Ch3].SENS < 10.0f) {
8006f46: 4b4b ldr r3, [pc, #300] ; (8007074 <Display+0x1004>)
8006f48: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8006f4c: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
8006f50: eef4 7ac7 vcmpe.f32 s15, s14
8006f54: eef1 fa10 vmrs APSR_nzcv, fpscr
8006f58: d514 bpl.n 8006f84 <Display+0xf14>
s = (uint32_t) ((pardata.amplif[Ch3].SENS * 10000.0f) + 0.5f);
8006f5a: 4b46 ldr r3, [pc, #280] ; (8007074 <Display+0x1004>)
8006f5c: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8006f60: ed9f 7a4e vldr s14, [pc, #312] ; 800709c <Display+0x102c>
8006f64: ee67 7a87 vmul.f32 s15, s15, s14
8006f68: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006f6c: ee77 7a87 vadd.f32 s15, s15, s14
8006f70: eefc 7ae7 vcvt.u32.f32 s15, s15
8006f74: ee17 3a90 vmov r3, s15
8006f78: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt3 = 4;
8006f7c: 2304 movs r3, #4
8006f7e: f887 3308 strb.w r3, [r7, #776] ; 0x308
8006f82: e0a0 b.n 80070c6 <Display+0x1056>
}
else if(pardata.amplif[Ch3].SENS < 100.0f) {
8006f84: 4b3b ldr r3, [pc, #236] ; (8007074 <Display+0x1004>)
8006f86: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8006f8a: ed9f 7a42 vldr s14, [pc, #264] ; 8007094 <Display+0x1024>
8006f8e: eef4 7ac7 vcmpe.f32 s15, s14
8006f92: eef1 fa10 vmrs APSR_nzcv, fpscr
8006f96: d514 bpl.n 8006fc2 <Display+0xf52>
s = (uint32_t) ((pardata.amplif[Ch3].SENS * 1000.0f) + 0.5f);
8006f98: 4b36 ldr r3, [pc, #216] ; (8007074 <Display+0x1004>)
8006f9a: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8006f9e: ed9f 7a3e vldr s14, [pc, #248] ; 8007098 <Display+0x1028>
8006fa2: ee67 7a87 vmul.f32 s15, s15, s14
8006fa6: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006faa: ee77 7a87 vadd.f32 s15, s15, s14
8006fae: eefc 7ae7 vcvt.u32.f32 s15, s15
8006fb2: ee17 3a90 vmov r3, s15
8006fb6: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt3 = 3;
8006fba: 2303 movs r3, #3
8006fbc: f887 3308 strb.w r3, [r7, #776] ; 0x308
8006fc0: e081 b.n 80070c6 <Display+0x1056>
}
else if(pardata.amplif[Ch3].SENS < 1000.0f) {
8006fc2: 4b2c ldr r3, [pc, #176] ; (8007074 <Display+0x1004>)
8006fc4: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8006fc8: ed9f 7a33 vldr s14, [pc, #204] ; 8007098 <Display+0x1028>
8006fcc: eef4 7ac7 vcmpe.f32 s15, s14
8006fd0: eef1 fa10 vmrs APSR_nzcv, fpscr
8006fd4: d514 bpl.n 8007000 <Display+0xf90>
s = (uint32_t) ((pardata.amplif[Ch3].SENS * 100.0f) + 0.5f);
8006fd6: 4b27 ldr r3, [pc, #156] ; (8007074 <Display+0x1004>)
8006fd8: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8006fdc: ed9f 7a2d vldr s14, [pc, #180] ; 8007094 <Display+0x1024>
8006fe0: ee67 7a87 vmul.f32 s15, s15, s14
8006fe4: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8006fe8: ee77 7a87 vadd.f32 s15, s15, s14
8006fec: eefc 7ae7 vcvt.u32.f32 s15, s15
8006ff0: ee17 3a90 vmov r3, s15
8006ff4: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt3 = 2;
8006ff8: 2302 movs r3, #2
8006ffa: f887 3308 strb.w r3, [r7, #776] ; 0x308
8006ffe: e062 b.n 80070c6 <Display+0x1056>
}
else if(pardata.amplif[Ch3].SENS < 10000.0f) {
8007000: 4b1c ldr r3, [pc, #112] ; (8007074 <Display+0x1004>)
8007002: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8007006: ed9f 7a25 vldr s14, [pc, #148] ; 800709c <Display+0x102c>
800700a: eef4 7ac7 vcmpe.f32 s15, s14
800700e: eef1 fa10 vmrs APSR_nzcv, fpscr
8007012: d514 bpl.n 800703e <Display+0xfce>
s = (uint32_t) ((pardata.amplif[Ch3].SENS * 10.0f) + 0.5f);
8007014: 4b17 ldr r3, [pc, #92] ; (8007074 <Display+0x1004>)
8007016: edd3 7a16 vldr s15, [r3, #88] ; 0x58
800701a: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800701e: ee67 7a87 vmul.f32 s15, s15, s14
8007022: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8007026: ee77 7a87 vadd.f32 s15, s15, s14
800702a: eefc 7ae7 vcvt.u32.f32 s15, s15
800702e: ee17 3a90 vmov r3, s15
8007032: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt3 = 1;
8007036: 2301 movs r3, #1
8007038: f887 3308 strb.w r3, [r7, #776] ; 0x308
800703c: e043 b.n 80070c6 <Display+0x1056>
}
else if(pardata.amplif[Ch3].SENS < 100000.0f) {
800703e: 4b0d ldr r3, [pc, #52] ; (8007074 <Display+0x1004>)
8007040: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8007044: ed9f 7a0c vldr s14, [pc, #48] ; 8007078 <Display+0x1008>
8007048: eef4 7ac7 vcmpe.f32 s15, s14
800704c: eef1 fa10 vmrs APSR_nzcv, fpscr
8007050: d526 bpl.n 80070a0 <Display+0x1030>
s = (uint32_t) ((pardata.amplif[Ch3].SENS) + 0.5f);
8007052: 4b08 ldr r3, [pc, #32] ; (8007074 <Display+0x1004>)
8007054: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8007058: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800705c: ee77 7a87 vadd.f32 s15, s15, s14
8007060: eefc 7ae7 vcvt.u32.f32 s15, s15
8007064: ee17 3a90 vmov r3, s15
8007068: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt3 = 0;
800706c: 2300 movs r3, #0
800706e: f887 3308 strb.w r3, [r7, #776] ; 0x308
8007072: e028 b.n 80070c6 <Display+0x1056>
8007074: 2006bca8 .word 0x2006bca8
8007078: 47c35000 .word 0x47c35000
800707c: 47c34f80 .word 0x47c34f80
8007080: 0001869f .word 0x0001869f
8007084: d1b71759 .word 0xd1b71759
8007088: 10624dd3 .word 0x10624dd3
800708c: 51eb851f .word 0x51eb851f
8007090: cccccccd .word 0xcccccccd
8007094: 42c80000 .word 0x42c80000
8007098: 447a0000 .word 0x447a0000
800709c: 461c4000 .word 0x461c4000
}
else if(pardata.amplif[Ch3].SENS >= 100000.0f) {
80070a0: 4bd8 ldr r3, [pc, #864] ; (8007404 <Display+0x1394>)
80070a2: edd3 7a16 vldr s15, [r3, #88] ; 0x58
80070a6: ed9f 7ad8 vldr s14, [pc, #864] ; 8007408 <Display+0x1398>
80070aa: eef4 7ac7 vcmpe.f32 s15, s14
80070ae: eef1 fa10 vmrs APSR_nzcv, fpscr
80070b2: db08 blt.n 80070c6 <Display+0x1056>
pardata.amplif[Ch3].SENS = 99999.0f;
80070b4: 4bd3 ldr r3, [pc, #844] ; (8007404 <Display+0x1394>)
80070b6: 4ad5 ldr r2, [pc, #852] ; (800740c <Display+0x139c>)
80070b8: 659a str r2, [r3, #88] ; 0x58
s = 99999;
80070ba: 4bd5 ldr r3, [pc, #852] ; (8007410 <Display+0x13a0>)
80070bc: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt3 = 0;
80070c0: 2300 movs r3, #0
80070c2: f887 3308 strb.w r3, [r7, #776] ; 0x308
}
idt3 = (s / 10000);
80070c6: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
80070ca: 4ad2 ldr r2, [pc, #840] ; (8007414 <Display+0x13a4>)
80070cc: fba2 2303 umull r2, r3, r2, r3
80070d0: 0b5b lsrs r3, r3, #13
80070d2: b2db uxtb r3, r3
80070d4: f887 330f strb.w r3, [r7, #783] ; 0x30f
iet3 = (s % 10000 / 1000);
80070d8: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
80070dc: 4bcd ldr r3, [pc, #820] ; (8007414 <Display+0x13a4>)
80070de: fba3 1302 umull r1, r3, r3, r2
80070e2: 0b5b lsrs r3, r3, #13
80070e4: f242 7110 movw r1, #10000 ; 0x2710
80070e8: fb01 f303 mul.w r3, r1, r3
80070ec: 1ad3 subs r3, r2, r3
80070ee: 4aca ldr r2, [pc, #808] ; (8007418 <Display+0x13a8>)
80070f0: fba2 2303 umull r2, r3, r2, r3
80070f4: 099b lsrs r3, r3, #6
80070f6: b2db uxtb r3, r3
80070f8: f887 330e strb.w r3, [r7, #782] ; 0x30e
ies3 = (s % 10000 % 1000 / 100);
80070fc: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
8007100: 4bc4 ldr r3, [pc, #784] ; (8007414 <Display+0x13a4>)
8007102: fba3 1302 umull r1, r3, r3, r2
8007106: 0b5b lsrs r3, r3, #13
8007108: f242 7110 movw r1, #10000 ; 0x2710
800710c: fb01 f303 mul.w r3, r1, r3
8007110: 1ad3 subs r3, r2, r3
8007112: 4ac1 ldr r2, [pc, #772] ; (8007418 <Display+0x13a8>)
8007114: fba2 1203 umull r1, r2, r2, r3
8007118: 0992 lsrs r2, r2, #6
800711a: f44f 717a mov.w r1, #1000 ; 0x3e8
800711e: fb01 f202 mul.w r2, r1, r2
8007122: 1a9a subs r2, r3, r2
8007124: 4bbd ldr r3, [pc, #756] ; (800741c <Display+0x13ac>)
8007126: fba3 2302 umull r2, r3, r3, r2
800712a: 095b lsrs r3, r3, #5
800712c: b2db uxtb r3, r3
800712e: f887 330d strb.w r3, [r7, #781] ; 0x30d
ied3 = (s % 10000 % 1000 % 100 / 10);
8007132: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
8007136: 4ab7 ldr r2, [pc, #732] ; (8007414 <Display+0x13a4>)
8007138: fba2 1203 umull r1, r2, r2, r3
800713c: 0b52 lsrs r2, r2, #13
800713e: f242 7110 movw r1, #10000 ; 0x2710
8007142: fb01 f202 mul.w r2, r1, r2
8007146: 1a9a subs r2, r3, r2
8007148: 4bb3 ldr r3, [pc, #716] ; (8007418 <Display+0x13a8>)
800714a: fba3 1302 umull r1, r3, r3, r2
800714e: 099b lsrs r3, r3, #6
8007150: f44f 717a mov.w r1, #1000 ; 0x3e8
8007154: fb01 f303 mul.w r3, r1, r3
8007158: 1ad3 subs r3, r2, r3
800715a: 4ab0 ldr r2, [pc, #704] ; (800741c <Display+0x13ac>)
800715c: fba2 1203 umull r1, r2, r2, r3
8007160: 0952 lsrs r2, r2, #5
8007162: 2164 movs r1, #100 ; 0x64
8007164: fb01 f202 mul.w r2, r1, r2
8007168: 1a9a subs r2, r3, r2
800716a: 4bad ldr r3, [pc, #692] ; (8007420 <Display+0x13b0>)
800716c: fba3 2302 umull r2, r3, r3, r2
8007170: 08db lsrs r3, r3, #3
8007172: b2db uxtb r3, r3
8007174: f887 330c strb.w r3, [r7, #780] ; 0x30c
iee3 = (s % 10000 % 1000 % 100 % 10);
8007178: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
800717c: 4aa5 ldr r2, [pc, #660] ; (8007414 <Display+0x13a4>)
800717e: fba2 1203 umull r1, r2, r2, r3
8007182: 0b52 lsrs r2, r2, #13
8007184: f242 7110 movw r1, #10000 ; 0x2710
8007188: fb01 f202 mul.w r2, r1, r2
800718c: 1a9a subs r2, r3, r2
800718e: 4ba2 ldr r3, [pc, #648] ; (8007418 <Display+0x13a8>)
8007190: fba3 1302 umull r1, r3, r3, r2
8007194: 099b lsrs r3, r3, #6
8007196: f44f 717a mov.w r1, #1000 ; 0x3e8
800719a: fb01 f303 mul.w r3, r1, r3
800719e: 1ad3 subs r3, r2, r3
80071a0: 4a9e ldr r2, [pc, #632] ; (800741c <Display+0x13ac>)
80071a2: fba2 1203 umull r1, r2, r2, r3
80071a6: 0952 lsrs r2, r2, #5
80071a8: 2164 movs r1, #100 ; 0x64
80071aa: fb01 f202 mul.w r2, r1, r2
80071ae: 1a9a subs r2, r3, r2
80071b0: 4b9b ldr r3, [pc, #620] ; (8007420 <Display+0x13b0>)
80071b2: fba3 1302 umull r1, r3, r3, r2
80071b6: 08d9 lsrs r1, r3, #3
80071b8: 460b mov r3, r1
80071ba: 009b lsls r3, r3, #2
80071bc: 440b add r3, r1
80071be: 005b lsls r3, r3, #1
80071c0: 1ad1 subs r1, r2, r3
80071c2: b2cb uxtb r3, r1
80071c4: f887 330b strb.w r3, [r7, #779] ; 0x30b
p8 = str3;
80071c8: f107 03a4 add.w r3, r7, #164 ; 0xa4
80071cc: f8c7 3340 str.w r3, [r7, #832] ; 0x340
if(pardata.amplif[Ch3].SENS < 10.0f) {
80071d0: 4b8c ldr r3, [pc, #560] ; (8007404 <Display+0x1394>)
80071d2: edd3 7a16 vldr s15, [r3, #88] ; 0x58
80071d6: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
80071da: eef4 7ac7 vcmpe.f32 s15, s14
80071de: eef1 fa10 vmrs APSR_nzcv, fpscr
80071e2: d50b bpl.n 80071fc <Display+0x118c>
p8 = FloatToASCII(pardata.amplif[Ch3].SENS, -4);
80071e4: 4b87 ldr r3, [pc, #540] ; (8007404 <Display+0x1394>)
80071e6: edd3 7a16 vldr s15, [r3, #88] ; 0x58
80071ea: f06f 0003 mvn.w r0, #3
80071ee: eeb0 0a67 vmov.f32 s0, s15
80071f2: f008 f955 bl 800f4a0 <FloatToASCII>
80071f6: f8c7 0340 str.w r0, [r7, #832] ; 0x340
80071fa: e055 b.n 80072a8 <Display+0x1238>
}
else if(pardata.amplif[Ch3].SENS < 100.0f) {
80071fc: 4b81 ldr r3, [pc, #516] ; (8007404 <Display+0x1394>)
80071fe: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8007202: ed9f 7a88 vldr s14, [pc, #544] ; 8007424 <Display+0x13b4>
8007206: eef4 7ac7 vcmpe.f32 s15, s14
800720a: eef1 fa10 vmrs APSR_nzcv, fpscr
800720e: d50b bpl.n 8007228 <Display+0x11b8>
p8 = FloatToASCII(pardata.amplif[Ch3].SENS, -3);
8007210: 4b7c ldr r3, [pc, #496] ; (8007404 <Display+0x1394>)
8007212: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8007216: f06f 0002 mvn.w r0, #2
800721a: eeb0 0a67 vmov.f32 s0, s15
800721e: f008 f93f bl 800f4a0 <FloatToASCII>
8007222: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8007226: e03f b.n 80072a8 <Display+0x1238>
}
else if(pardata.amplif[Ch3].SENS < 1000.0f) {
8007228: 4b76 ldr r3, [pc, #472] ; (8007404 <Display+0x1394>)
800722a: edd3 7a16 vldr s15, [r3, #88] ; 0x58
800722e: ed9f 7a7e vldr s14, [pc, #504] ; 8007428 <Display+0x13b8>
8007232: eef4 7ac7 vcmpe.f32 s15, s14
8007236: eef1 fa10 vmrs APSR_nzcv, fpscr
800723a: d50b bpl.n 8007254 <Display+0x11e4>
p8 = FloatToASCII(pardata.amplif[Ch3].SENS, -2);
800723c: 4b71 ldr r3, [pc, #452] ; (8007404 <Display+0x1394>)
800723e: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8007242: f06f 0001 mvn.w r0, #1
8007246: eeb0 0a67 vmov.f32 s0, s15
800724a: f008 f929 bl 800f4a0 <FloatToASCII>
800724e: f8c7 0340 str.w r0, [r7, #832] ; 0x340
8007252: e029 b.n 80072a8 <Display+0x1238>
}
else if(pardata.amplif[Ch3].SENS < 10000.0f) {
8007254: 4b6b ldr r3, [pc, #428] ; (8007404 <Display+0x1394>)
8007256: edd3 7a16 vldr s15, [r3, #88] ; 0x58
800725a: ed9f 7a74 vldr s14, [pc, #464] ; 800742c <Display+0x13bc>
800725e: eef4 7ac7 vcmpe.f32 s15, s14
8007262: eef1 fa10 vmrs APSR_nzcv, fpscr
8007266: d50b bpl.n 8007280 <Display+0x1210>
p8 = FloatToASCII(pardata.amplif[Ch3].SENS, -1);
8007268: 4b66 ldr r3, [pc, #408] ; (8007404 <Display+0x1394>)
800726a: edd3 7a16 vldr s15, [r3, #88] ; 0x58
800726e: f04f 30ff mov.w r0, #4294967295
8007272: eeb0 0a67 vmov.f32 s0, s15
8007276: f008 f913 bl 800f4a0 <FloatToASCII>
800727a: f8c7 0340 str.w r0, [r7, #832] ; 0x340
800727e: e013 b.n 80072a8 <Display+0x1238>
}
else if(pardata.amplif[Ch3].SENS < 100000.0f) {
8007280: 4b60 ldr r3, [pc, #384] ; (8007404 <Display+0x1394>)
8007282: edd3 7a16 vldr s15, [r3, #88] ; 0x58
8007286: ed9f 7a60 vldr s14, [pc, #384] ; 8007408 <Display+0x1398>
800728a: eef4 7ac7 vcmpe.f32 s15, s14
800728e: eef1 fa10 vmrs APSR_nzcv, fpscr
8007292: d509 bpl.n 80072a8 <Display+0x1238>
p8 = FloatToASCII(pardata.amplif[Ch3].SENS, 0);
8007294: 4b5b ldr r3, [pc, #364] ; (8007404 <Display+0x1394>)
8007296: edd3 7a16 vldr s15, [r3, #88] ; 0x58
800729a: 2000 movs r0, #0
800729c: eeb0 0a67 vmov.f32 s0, s15
80072a0: f008 f8fe bl 800f4a0 <FloatToASCII>
80072a4: f8c7 0340 str.w r0, [r7, #832] ; 0x340
}
strcpy((void *) str3, (void *) p8);
80072a8: f107 03a4 add.w r3, r7, #164 ; 0xa4
80072ac: f8d7 1340 ldr.w r1, [r7, #832] ; 0x340
80072b0: 4618 mov r0, r3
80072b2: f00f f91a bl 80164ea <strcpy>
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
if(pardata.amplif[Ch4].SENS <= 0.0f) {
80072b6: 4b53 ldr r3, [pc, #332] ; (8007404 <Display+0x1394>)
80072b8: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80072bc: eef5 7ac0 vcmpe.f32 s15, #0.0
80072c0: eef1 fa10 vmrs APSR_nzcv, fpscr
80072c4: d807 bhi.n 80072d6 <Display+0x1266>
pardata.amplif[Ch4].SENS = 1.0f;
80072c6: 4b4f ldr r3, [pc, #316] ; (8007404 <Display+0x1394>)
80072c8: f04f 527e mov.w r2, #1065353216 ; 0x3f800000
80072cc: 679a str r2, [r3, #120] ; 0x78
s = 10000;
80072ce: f242 7310 movw r3, #10000 ; 0x2710
80072d2: f8c7 3344 str.w r3, [r7, #836] ; 0x344
}
if(pardata.amplif[Ch4].SENS < 10.0f) {
80072d6: 4b4b ldr r3, [pc, #300] ; (8007404 <Display+0x1394>)
80072d8: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80072dc: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
80072e0: eef4 7ac7 vcmpe.f32 s15, s14
80072e4: eef1 fa10 vmrs APSR_nzcv, fpscr
80072e8: d514 bpl.n 8007314 <Display+0x12a4>
s = (uint32_t) ((pardata.amplif[Ch4].SENS * 10000.0f) + 0.5f);
80072ea: 4b46 ldr r3, [pc, #280] ; (8007404 <Display+0x1394>)
80072ec: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80072f0: ed9f 7a4e vldr s14, [pc, #312] ; 800742c <Display+0x13bc>
80072f4: ee67 7a87 vmul.f32 s15, s15, s14
80072f8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
80072fc: ee77 7a87 vadd.f32 s15, s15, s14
8007300: eefc 7ae7 vcvt.u32.f32 s15, s15
8007304: ee17 3a90 vmov r3, s15
8007308: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt4 = 4;
800730c: 2304 movs r3, #4
800730e: f887 3300 strb.w r3, [r7, #768] ; 0x300
8007312: e0a0 b.n 8007456 <Display+0x13e6>
}
else if(pardata.amplif[Ch4].SENS < 100.0f) {
8007314: 4b3b ldr r3, [pc, #236] ; (8007404 <Display+0x1394>)
8007316: edd3 7a1e vldr s15, [r3, #120] ; 0x78
800731a: ed9f 7a42 vldr s14, [pc, #264] ; 8007424 <Display+0x13b4>
800731e: eef4 7ac7 vcmpe.f32 s15, s14
8007322: eef1 fa10 vmrs APSR_nzcv, fpscr
8007326: d514 bpl.n 8007352 <Display+0x12e2>
s = (uint32_t) ((pardata.amplif[Ch4].SENS * 1000.0f) + 0.5f);
8007328: 4b36 ldr r3, [pc, #216] ; (8007404 <Display+0x1394>)
800732a: edd3 7a1e vldr s15, [r3, #120] ; 0x78
800732e: ed9f 7a3e vldr s14, [pc, #248] ; 8007428 <Display+0x13b8>
8007332: ee67 7a87 vmul.f32 s15, s15, s14
8007336: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800733a: ee77 7a87 vadd.f32 s15, s15, s14
800733e: eefc 7ae7 vcvt.u32.f32 s15, s15
8007342: ee17 3a90 vmov r3, s15
8007346: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt4 = 3;
800734a: 2303 movs r3, #3
800734c: f887 3300 strb.w r3, [r7, #768] ; 0x300
8007350: e081 b.n 8007456 <Display+0x13e6>
}
else if(pardata.amplif[Ch4].SENS < 1000.0f) {
8007352: 4b2c ldr r3, [pc, #176] ; (8007404 <Display+0x1394>)
8007354: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007358: ed9f 7a33 vldr s14, [pc, #204] ; 8007428 <Display+0x13b8>
800735c: eef4 7ac7 vcmpe.f32 s15, s14
8007360: eef1 fa10 vmrs APSR_nzcv, fpscr
8007364: d514 bpl.n 8007390 <Display+0x1320>
s = (uint32_t) ((pardata.amplif[Ch4].SENS * 100.0f) + 0.5f);
8007366: 4b27 ldr r3, [pc, #156] ; (8007404 <Display+0x1394>)
8007368: edd3 7a1e vldr s15, [r3, #120] ; 0x78
800736c: ed9f 7a2d vldr s14, [pc, #180] ; 8007424 <Display+0x13b4>
8007370: ee67 7a87 vmul.f32 s15, s15, s14
8007374: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
8007378: ee77 7a87 vadd.f32 s15, s15, s14
800737c: eefc 7ae7 vcvt.u32.f32 s15, s15
8007380: ee17 3a90 vmov r3, s15
8007384: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt4 = 2;
8007388: 2302 movs r3, #2
800738a: f887 3300 strb.w r3, [r7, #768] ; 0x300
800738e: e062 b.n 8007456 <Display+0x13e6>
}
else if(pardata.amplif[Ch4].SENS < 10000.0f) {
8007390: 4b1c ldr r3, [pc, #112] ; (8007404 <Display+0x1394>)
8007392: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007396: ed9f 7a25 vldr s14, [pc, #148] ; 800742c <Display+0x13bc>
800739a: eef4 7ac7 vcmpe.f32 s15, s14
800739e: eef1 fa10 vmrs APSR_nzcv, fpscr
80073a2: d514 bpl.n 80073ce <Display+0x135e>
s = (uint32_t) ((pardata.amplif[Ch4].SENS * 10.0f) + 0.5f);
80073a4: 4b17 ldr r3, [pc, #92] ; (8007404 <Display+0x1394>)
80073a6: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80073aa: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
80073ae: ee67 7a87 vmul.f32 s15, s15, s14
80073b2: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
80073b6: ee77 7a87 vadd.f32 s15, s15, s14
80073ba: eefc 7ae7 vcvt.u32.f32 s15, s15
80073be: ee17 3a90 vmov r3, s15
80073c2: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt4 = 1;
80073c6: 2301 movs r3, #1
80073c8: f887 3300 strb.w r3, [r7, #768] ; 0x300
80073cc: e043 b.n 8007456 <Display+0x13e6>
}
else if(pardata.amplif[Ch4].SENS < 100000.0f) {
80073ce: 4b0d ldr r3, [pc, #52] ; (8007404 <Display+0x1394>)
80073d0: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80073d4: ed9f 7a0c vldr s14, [pc, #48] ; 8007408 <Display+0x1398>
80073d8: eef4 7ac7 vcmpe.f32 s15, s14
80073dc: eef1 fa10 vmrs APSR_nzcv, fpscr
80073e0: d526 bpl.n 8007430 <Display+0x13c0>
s = (uint32_t) ((pardata.amplif[Ch4].SENS) + 0.5f);
80073e2: 4b08 ldr r3, [pc, #32] ; (8007404 <Display+0x1394>)
80073e4: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80073e8: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
80073ec: ee77 7a87 vadd.f32 s15, s15, s14
80073f0: eefc 7ae7 vcvt.u32.f32 s15, s15
80073f4: ee17 3a90 vmov r3, s15
80073f8: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt4 = 0;
80073fc: 2300 movs r3, #0
80073fe: f887 3300 strb.w r3, [r7, #768] ; 0x300
8007402: e028 b.n 8007456 <Display+0x13e6>
8007404: 2006bca8 .word 0x2006bca8
8007408: 47c35000 .word 0x47c35000
800740c: 47c34f80 .word 0x47c34f80
8007410: 0001869f .word 0x0001869f
8007414: d1b71759 .word 0xd1b71759
8007418: 10624dd3 .word 0x10624dd3
800741c: 51eb851f .word 0x51eb851f
8007420: cccccccd .word 0xcccccccd
8007424: 42c80000 .word 0x42c80000
8007428: 447a0000 .word 0x447a0000
800742c: 461c4000 .word 0x461c4000
}
else if(pardata.amplif[Ch4].SENS >= 100000.0f) {
8007430: 4bc9 ldr r3, [pc, #804] ; (8007758 <Display+0x16e8>)
8007432: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007436: ed9f 7ac9 vldr s14, [pc, #804] ; 800775c <Display+0x16ec>
800743a: eef4 7ac7 vcmpe.f32 s15, s14
800743e: eef1 fa10 vmrs APSR_nzcv, fpscr
8007442: db08 blt.n 8007456 <Display+0x13e6>
pardata.amplif[Ch4].SENS = 99999.0f;
8007444: 4bc4 ldr r3, [pc, #784] ; (8007758 <Display+0x16e8>)
8007446: 4ac6 ldr r2, [pc, #792] ; (8007760 <Display+0x16f0>)
8007448: 679a str r2, [r3, #120] ; 0x78
s = 99999;
800744a: 4bc6 ldr r3, [pc, #792] ; (8007764 <Display+0x16f4>)
800744c: f8c7 3344 str.w r3, [r7, #836] ; 0x344
ipt4 = 0;
8007450: 2300 movs r3, #0
8007452: f887 3300 strb.w r3, [r7, #768] ; 0x300
}
idt4 = (s / 10000);
8007456: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
800745a: 4ac3 ldr r2, [pc, #780] ; (8007768 <Display+0x16f8>)
800745c: fba2 2303 umull r2, r3, r2, r3
8007460: 0b5b lsrs r3, r3, #13
8007462: b2db uxtb r3, r3
8007464: f887 3307 strb.w r3, [r7, #775] ; 0x307
iet4 = (s % 10000 / 1000);
8007468: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
800746c: 4bbe ldr r3, [pc, #760] ; (8007768 <Display+0x16f8>)
800746e: fba3 1302 umull r1, r3, r3, r2
8007472: 0b5b lsrs r3, r3, #13
8007474: f242 7110 movw r1, #10000 ; 0x2710
8007478: fb01 f303 mul.w r3, r1, r3
800747c: 1ad3 subs r3, r2, r3
800747e: 4abb ldr r2, [pc, #748] ; (800776c <Display+0x16fc>)
8007480: fba2 2303 umull r2, r3, r2, r3
8007484: 099b lsrs r3, r3, #6
8007486: b2db uxtb r3, r3
8007488: f887 3306 strb.w r3, [r7, #774] ; 0x306
ies4 = (s % 10000 % 1000 / 100);
800748c: f8d7 2344 ldr.w r2, [r7, #836] ; 0x344
8007490: 4bb5 ldr r3, [pc, #724] ; (8007768 <Display+0x16f8>)
8007492: fba3 1302 umull r1, r3, r3, r2
8007496: 0b5b lsrs r3, r3, #13
8007498: f242 7110 movw r1, #10000 ; 0x2710
800749c: fb01 f303 mul.w r3, r1, r3
80074a0: 1ad3 subs r3, r2, r3
80074a2: 4ab2 ldr r2, [pc, #712] ; (800776c <Display+0x16fc>)
80074a4: fba2 1203 umull r1, r2, r2, r3
80074a8: 0992 lsrs r2, r2, #6
80074aa: f44f 717a mov.w r1, #1000 ; 0x3e8
80074ae: fb01 f202 mul.w r2, r1, r2
80074b2: 1a9a subs r2, r3, r2
80074b4: 4bae ldr r3, [pc, #696] ; (8007770 <Display+0x1700>)
80074b6: fba3 2302 umull r2, r3, r3, r2
80074ba: 095b lsrs r3, r3, #5
80074bc: b2db uxtb r3, r3
80074be: f887 3305 strb.w r3, [r7, #773] ; 0x305
ied4 = (s % 10000 % 1000 % 100 / 10);
80074c2: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
80074c6: 4aa8 ldr r2, [pc, #672] ; (8007768 <Display+0x16f8>)
80074c8: fba2 1203 umull r1, r2, r2, r3
80074cc: 0b52 lsrs r2, r2, #13
80074ce: f242 7110 movw r1, #10000 ; 0x2710
80074d2: fb01 f202 mul.w r2, r1, r2
80074d6: 1a9a subs r2, r3, r2
80074d8: 4ba4 ldr r3, [pc, #656] ; (800776c <Display+0x16fc>)
80074da: fba3 1302 umull r1, r3, r3, r2
80074de: 099b lsrs r3, r3, #6
80074e0: f44f 717a mov.w r1, #1000 ; 0x3e8
80074e4: fb01 f303 mul.w r3, r1, r3
80074e8: 1ad3 subs r3, r2, r3
80074ea: 4aa1 ldr r2, [pc, #644] ; (8007770 <Display+0x1700>)
80074ec: fba2 1203 umull r1, r2, r2, r3
80074f0: 0952 lsrs r2, r2, #5
80074f2: 2164 movs r1, #100 ; 0x64
80074f4: fb01 f202 mul.w r2, r1, r2
80074f8: 1a9a subs r2, r3, r2
80074fa: 4b9e ldr r3, [pc, #632] ; (8007774 <Display+0x1704>)
80074fc: fba3 2302 umull r2, r3, r3, r2
8007500: 08db lsrs r3, r3, #3
8007502: b2db uxtb r3, r3
8007504: f887 3304 strb.w r3, [r7, #772] ; 0x304
iee4 = (s % 10000 % 1000 % 100 % 10);
8007508: f8d7 3344 ldr.w r3, [r7, #836] ; 0x344
800750c: 4a96 ldr r2, [pc, #600] ; (8007768 <Display+0x16f8>)
800750e: fba2 1203 umull r1, r2, r2, r3
8007512: 0b52 lsrs r2, r2, #13
8007514: f242 7110 movw r1, #10000 ; 0x2710
8007518: fb01 f202 mul.w r2, r1, r2
800751c: 1a9a subs r2, r3, r2
800751e: 4b93 ldr r3, [pc, #588] ; (800776c <Display+0x16fc>)
8007520: fba3 1302 umull r1, r3, r3, r2
8007524: 099b lsrs r3, r3, #6
8007526: f44f 717a mov.w r1, #1000 ; 0x3e8
800752a: fb01 f303 mul.w r3, r1, r3
800752e: 1ad3 subs r3, r2, r3
8007530: 4a8f ldr r2, [pc, #572] ; (8007770 <Display+0x1700>)
8007532: fba2 1203 umull r1, r2, r2, r3
8007536: 0952 lsrs r2, r2, #5
8007538: 2164 movs r1, #100 ; 0x64
800753a: fb01 f202 mul.w r2, r1, r2
800753e: 1a9a subs r2, r3, r2
8007540: 4b8c ldr r3, [pc, #560] ; (8007774 <Display+0x1704>)
8007542: fba3 1302 umull r1, r3, r3, r2
8007546: 08d9 lsrs r1, r3, #3
8007548: 460b mov r3, r1
800754a: 009b lsls r3, r3, #2
800754c: 440b add r3, r1
800754e: 005b lsls r3, r3, #1
8007550: 1ad1 subs r1, r2, r3
8007552: b2cb uxtb r3, r1
8007554: f887 3303 strb.w r3, [r7, #771] ; 0x303
p8 = str4;
8007558: f107 0368 add.w r3, r7, #104 ; 0x68
800755c: f8c7 3340 str.w r3, [r7, #832] ; 0x340
if(pardata.amplif[Ch4].SENS < 10.0f) {
8007560: 4b7d ldr r3, [pc, #500] ; (8007758 <Display+0x16e8>)
8007562: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007566: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800756a: eef4 7ac7 vcmpe.f32 s15, s14
800756e: eef1 fa10 vmrs APSR_nzcv, fpscr
8007572: d50b bpl.n 800758c <Display+0x151c>
p8 = FloatToASCII(pardata.amplif[Ch4].SENS, -4);
8007574: 4b78 ldr r3, [pc, #480] ; (8007758 <Display+0x16e8>)
8007576: edd3 7a1e vldr s15, [r3, #120] ; 0x78
800757a: f06f 0003 mvn.w r0, #3
800757e: eeb0 0a67 vmov.f32 s0, s15
8007582: f007 ff8d bl 800f4a0 <FloatToASCII>
8007586: f8c7 0340 str.w r0, [r7, #832] ; 0x340
800758a: e055 b.n 8007638 <Display+0x15c8>
}
else if(pardata.amplif[Ch4].SENS < 100.0f) {
800758c: 4b72 ldr r3, [pc, #456] ; (8007758 <Display+0x16e8>)
800758e: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007592: ed9f 7a79 vldr s14, [pc, #484] ; 8007778 <Display+0x1708>
8007596: eef4 7ac7 vcmpe.f32 s15, s14
800759a: eef1 fa10 vmrs APSR_nzcv, fpscr
800759e: d50b bpl.n 80075b8 <Display+0x1548>
p8 = FloatToASCII(pardata.amplif[Ch4].SENS, -3);
80075a0: 4b6d ldr r3, [pc, #436] ; (8007758 <Display+0x16e8>)
80075a2: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80075a6: f06f 0002 mvn.w r0, #2
80075aa: eeb0 0a67 vmov.f32 s0, s15
80075ae: f007 ff77 bl 800f4a0 <FloatToASCII>
80075b2: f8c7 0340 str.w r0, [r7, #832] ; 0x340
80075b6: e03f b.n 8007638 <Display+0x15c8>
}
else if(pardata.amplif[Ch4].SENS < 1000.0f) {
80075b8: 4b67 ldr r3, [pc, #412] ; (8007758 <Display+0x16e8>)
80075ba: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80075be: ed9f 7a6f vldr s14, [pc, #444] ; 800777c <Display+0x170c>
80075c2: eef4 7ac7 vcmpe.f32 s15, s14
80075c6: eef1 fa10 vmrs APSR_nzcv, fpscr
80075ca: d50b bpl.n 80075e4 <Display+0x1574>
p8 = FloatToASCII(pardata.amplif[Ch4].SENS, -2);
80075cc: 4b62 ldr r3, [pc, #392] ; (8007758 <Display+0x16e8>)
80075ce: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80075d2: f06f 0001 mvn.w r0, #1
80075d6: eeb0 0a67 vmov.f32 s0, s15
80075da: f007 ff61 bl 800f4a0 <FloatToASCII>
80075de: f8c7 0340 str.w r0, [r7, #832] ; 0x340
80075e2: e029 b.n 8007638 <Display+0x15c8>
}
else if(pardata.amplif[Ch4].SENS < 10000.0f) {
80075e4: 4b5c ldr r3, [pc, #368] ; (8007758 <Display+0x16e8>)
80075e6: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80075ea: ed9f 7a65 vldr s14, [pc, #404] ; 8007780 <Display+0x1710>
80075ee: eef4 7ac7 vcmpe.f32 s15, s14
80075f2: eef1 fa10 vmrs APSR_nzcv, fpscr
80075f6: d50b bpl.n 8007610 <Display+0x15a0>
p8 = FloatToASCII(pardata.amplif[Ch4].SENS, -1);
80075f8: 4b57 ldr r3, [pc, #348] ; (8007758 <Display+0x16e8>)
80075fa: edd3 7a1e vldr s15, [r3, #120] ; 0x78
80075fe: f04f 30ff mov.w r0, #4294967295
8007602: eeb0 0a67 vmov.f32 s0, s15
8007606: f007 ff4b bl 800f4a0 <FloatToASCII>
800760a: f8c7 0340 str.w r0, [r7, #832] ; 0x340
800760e: e013 b.n 8007638 <Display+0x15c8>
}
else if(pardata.amplif[Ch4].SENS < 100000.0f) {
8007610: 4b51 ldr r3, [pc, #324] ; (8007758 <Display+0x16e8>)
8007612: edd3 7a1e vldr s15, [r3, #120] ; 0x78
8007616: ed9f 7a51 vldr s14, [pc, #324] ; 800775c <Display+0x16ec>
800761a: eef4 7ac7 vcmpe.f32 s15, s14
800761e: eef1 fa10 vmrs APSR_nzcv, fpscr
8007622: d509 bpl.n 8007638 <Display+0x15c8>
p8 = FloatToASCII(pardata.amplif[Ch4].SENS, 0);
8007624: 4b4c ldr r3, [pc, #304] ; (8007758 <Display+0x16e8>)
8007626: edd3 7a1e vldr s15, [r3, #120] ; 0x78
800762a: 2000 movs r0, #0
800762c: eeb0 0a67 vmov.f32 s0, s15
8007630: f007 ff36 bl 800f4a0 <FloatToASCII>
8007634: f8c7 0340 str.w r0, [r7, #832] ; 0x340
}
strcpy((void *) str4, (void *) p8);
8007638: f107 0368 add.w r3, r7, #104 ; 0x68
800763c: f8d7 1340 ldr.w r1, [r7, #832] ; 0x340
8007640: 4618 mov r0, r3
8007642: f00e ff52 bl 80164ea <strcpy>
//////////////////////////////////////////////////////////////////////////////
BSP_LCD_SetFont(&Font12);
8007646: 484f ldr r0, [pc, #316] ; (8007784 <Display+0x1714>)
8007648: f7fd fbfa bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800764c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007650: 484d ldr r0, [pc, #308] ; (8007788 <Display+0x1718>)
8007652: f7fd fbb9 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 5, "Sensitivity", CENTER_MODE);
8007656: 2301 movs r3, #1
8007658: 4a4c ldr r2, [pc, #304] ; (800778c <Display+0x171c>)
800765a: 2105 movs r1, #5
800765c: 20a0 movs r0, #160 ; 0xa0
800765e: f7fd fc79 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(240, 5, "Units", CENTER_MODE);
8007662: 2301 movs r3, #1
8007664: 4a4a ldr r2, [pc, #296] ; (8007790 <Display+0x1720>)
8007666: 2105 movs r1, #5
8007668: 20f0 movs r0, #240 ; 0xf0
800766a: f7fd fc73 bl 8004f54 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_ORANGE, LCD_COLOR_BLACK);
800766e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007672: 4848 ldr r0, [pc, #288] ; (8007794 <Display+0x1724>)
8007674: f7fd fba8 bl 8004dc8 <LCD_SetColors>
if(pardata.amplif[Ch1].IIN == CHARGE)
8007678: 4b37 ldr r3, [pc, #220] ; (8007758 <Display+0x16e8>)
800767a: 881b ldrh r3, [r3, #0]
800767c: b29b uxth r3, r3
800767e: 2b00 cmp r3, #0
8007680: d106 bne.n 8007690 <Display+0x1620>
BSP_LCD_DisplayStringAt(95, 60, "PE", LEFT_MODE);
8007682: 2303 movs r3, #3
8007684: 4a44 ldr r2, [pc, #272] ; (8007798 <Display+0x1728>)
8007686: 213c movs r1, #60 ; 0x3c
8007688: 205f movs r0, #95 ; 0x5f
800768a: f7fd fc63 bl 8004f54 <BSP_LCD_DisplayStringAt>
800768e: e005 b.n 800769c <Display+0x162c>
else BSP_LCD_DisplayStringAt(95, 60, "IEPE", LEFT_MODE);
8007690: 2303 movs r3, #3
8007692: 4a42 ldr r2, [pc, #264] ; (800779c <Display+0x172c>)
8007694: 213c movs r1, #60 ; 0x3c
8007696: 205f movs r0, #95 ; 0x5f
8007698: f7fd fc5c bl 8004f54 <BSP_LCD_DisplayStringAt>
if(pardata.amplif[Ch2].IIN == CHARGE)
800769c: 4b2e ldr r3, [pc, #184] ; (8007758 <Display+0x16e8>)
800769e: 8c1b ldrh r3, [r3, #32]
80076a0: b29b uxth r3, r3
80076a2: 2b00 cmp r3, #0
80076a4: d106 bne.n 80076b4 <Display+0x1644>
BSP_LCD_DisplayStringAt(95, 80, "PE", LEFT_MODE);
80076a6: 2303 movs r3, #3
80076a8: 4a3b ldr r2, [pc, #236] ; (8007798 <Display+0x1728>)
80076aa: 2150 movs r1, #80 ; 0x50
80076ac: 205f movs r0, #95 ; 0x5f
80076ae: f7fd fc51 bl 8004f54 <BSP_LCD_DisplayStringAt>
80076b2: e005 b.n 80076c0 <Display+0x1650>
else BSP_LCD_DisplayStringAt(95, 80, "IEPE", LEFT_MODE);
80076b4: 2303 movs r3, #3
80076b6: 4a39 ldr r2, [pc, #228] ; (800779c <Display+0x172c>)
80076b8: 2150 movs r1, #80 ; 0x50
80076ba: 205f movs r0, #95 ; 0x5f
80076bc: f7fd fc4a bl 8004f54 <BSP_LCD_DisplayStringAt>
if(pardata.amplif[Ch3].IIN == CHARGE)
80076c0: 4b25 ldr r3, [pc, #148] ; (8007758 <Display+0x16e8>)
80076c2: f8b3 3040 ldrh.w r3, [r3, #64] ; 0x40
80076c6: b29b uxth r3, r3
80076c8: 2b00 cmp r3, #0
80076ca: d106 bne.n 80076da <Display+0x166a>
BSP_LCD_DisplayStringAt(95, 100, "PE", LEFT_MODE);
80076cc: 2303 movs r3, #3
80076ce: 4a32 ldr r2, [pc, #200] ; (8007798 <Display+0x1728>)
80076d0: 2164 movs r1, #100 ; 0x64
80076d2: 205f movs r0, #95 ; 0x5f
80076d4: f7fd fc3e bl 8004f54 <BSP_LCD_DisplayStringAt>
80076d8: e005 b.n 80076e6 <Display+0x1676>
else BSP_LCD_DisplayStringAt(95, 100, "IEPE", LEFT_MODE);
80076da: 2303 movs r3, #3
80076dc: 4a2f ldr r2, [pc, #188] ; (800779c <Display+0x172c>)
80076de: 2164 movs r1, #100 ; 0x64
80076e0: 205f movs r0, #95 ; 0x5f
80076e2: f7fd fc37 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(pardata.amplif[Ch4].IIN == CHARGE)
80076e6: 4b1c ldr r3, [pc, #112] ; (8007758 <Display+0x16e8>)
80076e8: f8b3 3060 ldrh.w r3, [r3, #96] ; 0x60
80076ec: b29b uxth r3, r3
80076ee: 2b00 cmp r3, #0
80076f0: d106 bne.n 8007700 <Display+0x1690>
BSP_LCD_DisplayStringAt(95, 120, "PE", LEFT_MODE);
80076f2: 2303 movs r3, #3
80076f4: 4a28 ldr r2, [pc, #160] ; (8007798 <Display+0x1728>)
80076f6: 2178 movs r1, #120 ; 0x78
80076f8: 205f movs r0, #95 ; 0x5f
80076fa: f7fd fc2b bl 8004f54 <BSP_LCD_DisplayStringAt>
80076fe: e005 b.n 800770c <Display+0x169c>
else BSP_LCD_DisplayStringAt(95, 120, "IEPE", LEFT_MODE);
8007700: 2303 movs r3, #3
8007702: 4a26 ldr r2, [pc, #152] ; (800779c <Display+0x172c>)
8007704: 2178 movs r1, #120 ; 0x78
8007706: 205f movs r0, #95 ; 0x5f
8007708: f7fd fc24 bl 8004f54 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800770c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007710: f04f 30ff mov.w r0, #4294967295
8007714: f7fd fb58 bl 8004dc8 <LCD_SetColors>
if(pardata.LANG == RUS)
8007718: 4b0f ldr r3, [pc, #60] ; (8007758 <Display+0x16e8>)
800771a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800771e: b29b uxth r3, r3
8007720: 2b00 cmp r3, #0
8007722: d145 bne.n 80077b0 <Display+0x1740>
{
BSP_LCD_DisplayStringAt(20, 60, "<22><><CA><C0><CD> 1:", LEFT_MODE);
8007724: 2303 movs r3, #3
8007726: 4a1e ldr r2, [pc, #120] ; (80077a0 <Display+0x1730>)
8007728: 213c movs r1, #60 ; 0x3c
800772a: 2014 movs r0, #20
800772c: f7fd fc12 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(20, 80, "<22><><CA><C0><CD> 2:", LEFT_MODE);
8007730: 2303 movs r3, #3
8007732: 4a1c ldr r2, [pc, #112] ; (80077a4 <Display+0x1734>)
8007734: 2150 movs r1, #80 ; 0x50
8007736: 2014 movs r0, #20
8007738: f7fd fc0c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(20, 100, "<22><><CA><C0><CD> 3:", LEFT_MODE);
800773c: 2303 movs r3, #3
800773e: 4a1a ldr r2, [pc, #104] ; (80077a8 <Display+0x1738>)
8007740: 2164 movs r1, #100 ; 0x64
8007742: 2014 movs r0, #20
8007744: f7fd fc06 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(20, 120, "<22><><CA><C0><CD> 4:", LEFT_MODE);
8007748: 2303 movs r3, #3
800774a: 4a18 ldr r2, [pc, #96] ; (80077ac <Display+0x173c>)
800774c: 2178 movs r1, #120 ; 0x78
800774e: 2014 movs r0, #20
8007750: f7fd fc00 bl 8004f54 <BSP_LCD_DisplayStringAt>
8007754: e044 b.n 80077e0 <Display+0x1770>
8007756: bf00 nop
8007758: 2006bca8 .word 0x2006bca8
800775c: 47c35000 .word 0x47c35000
8007760: 47c34f80 .word 0x47c34f80
8007764: 0001869f .word 0x0001869f
8007768: d1b71759 .word 0xd1b71759
800776c: 10624dd3 .word 0x10624dd3
8007770: 51eb851f .word 0x51eb851f
8007774: cccccccd .word 0xcccccccd
8007778: 42c80000 .word 0x42c80000
800777c: 447a0000 .word 0x447a0000
8007780: 461c4000 .word 0x461c4000
8007784: 20020000 .word 0x20020000
8007788: ff808080 .word 0xff808080
800778c: 08018148 .word 0x08018148
8007790: 08018154 .word 0x08018154
8007794: ffffa500 .word 0xffffa500
8007798: 0801815c .word 0x0801815c
800779c: 08018160 .word 0x08018160
80077a0: 08018168 .word 0x08018168
80077a4: 08018174 .word 0x08018174
80077a8: 08018180 .word 0x08018180
80077ac: 0801818c .word 0x0801818c
}
else
{
BSP_LCD_DisplayStringAt(20, 60, "CHANNEL 1:", LEFT_MODE);
80077b0: 2303 movs r3, #3
80077b2: 4abe ldr r2, [pc, #760] ; (8007aac <Display+0x1a3c>)
80077b4: 213c movs r1, #60 ; 0x3c
80077b6: 2014 movs r0, #20
80077b8: f7fd fbcc bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(20, 80, "CHANNEL 2:", LEFT_MODE);
80077bc: 2303 movs r3, #3
80077be: 4abc ldr r2, [pc, #752] ; (8007ab0 <Display+0x1a40>)
80077c0: 2150 movs r1, #80 ; 0x50
80077c2: 2014 movs r0, #20
80077c4: f7fd fbc6 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(20, 100, "CHANNEL 3:", LEFT_MODE);
80077c8: 2303 movs r3, #3
80077ca: 4aba ldr r2, [pc, #744] ; (8007ab4 <Display+0x1a44>)
80077cc: 2164 movs r1, #100 ; 0x64
80077ce: 2014 movs r0, #20
80077d0: f7fd fbc0 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(20, 120, "CHANNEL 4:", LEFT_MODE);
80077d4: 2303 movs r3, #3
80077d6: 4ab8 ldr r2, [pc, #736] ; (8007ab8 <Display+0x1a48>)
80077d8: 2178 movs r1, #120 ; 0x78
80077da: 2014 movs r0, #20
80077dc: f7fd fbba bl 8004f54 <BSP_LCD_DisplayStringAt>
}
if(menupos != Back)
80077e0: 4bb6 ldr r3, [pc, #728] ; (8007abc <Display+0x1a4c>)
80077e2: 781b ldrb r3, [r3, #0]
80077e4: b2db uxtb r3, r3
80077e6: 2bff cmp r3, #255 ; 0xff
80077e8: d006 beq.n 80077f8 <Display+0x1788>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
80077ea: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80077ee: f04f 30ff mov.w r0, #4294967295
80077f2: f7fd fae9 bl 8004dc8 <LCD_SetColors>
80077f6: e005 b.n 8007804 <Display+0x1794>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
80077f8: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80077fc: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8007800: f7fd fae2 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(20, 40, (char *) pOPTIONS[pardata.LANG][0], LEFT_MODE); //<2F><><CD><E0><E7>
8007804: 4bae ldr r3, [pc, #696] ; (8007ac0 <Display+0x1a50>)
8007806: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800780a: b29b uxth r3, r3
800780c: 4aad ldr r2, [pc, #692] ; (8007ac4 <Display+0x1a54>)
800780e: 011b lsls r3, r3, #4
8007810: 4413 add r3, r2
8007812: 681a ldr r2, [r3, #0]
8007814: 2303 movs r3, #3
8007816: 2128 movs r1, #40 ; 0x28
8007818: 2014 movs r0, #20
800781a: f7fd fb9b bl 8004f54 <BSP_LCD_DisplayStringAt>
//todo
if(menupos == Back)
800781e: 4ba7 ldr r3, [pc, #668] ; (8007abc <Display+0x1a4c>)
8007820: 781b ldrb r3, [r3, #0]
8007822: b2db uxtb r3, r3
8007824: 2bff cmp r3, #255 ; 0xff
8007826: f040 8083 bne.w 8007930 <Display+0x18c0>
{
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800782a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800782e: 48a6 ldr r0, [pc, #664] ; (8007ac8 <Display+0x1a58>)
8007830: f7fd faca bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8007834: f507 728e add.w r2, r7, #284 ; 0x11c
8007838: 2303 movs r3, #3
800783a: 213c movs r1, #60 ; 0x3c
800783c: 208c movs r0, #140 ; 0x8c
800783e: f7fd fb89 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8007842: f107 02e0 add.w r2, r7, #224 ; 0xe0
8007846: 2303 movs r3, #3
8007848: 2150 movs r1, #80 ; 0x50
800784a: 208c movs r0, #140 ; 0x8c
800784c: f7fd fb82 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8007850: f107 02a4 add.w r2, r7, #164 ; 0xa4
8007854: 2303 movs r3, #3
8007856: 2164 movs r1, #100 ; 0x64
8007858: 208c movs r0, #140 ; 0x8c
800785a: f7fd fb7b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
800785e: f107 0268 add.w r2, r7, #104 ; 0x68
8007862: 2303 movs r3, #3
8007864: 2178 movs r1, #120 ; 0x78
8007866: 208c movs r0, #140 ; 0x8c
8007868: f7fd fb74 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
800786c: 4b94 ldr r3, [pc, #592] ; (8007ac0 <Display+0x1a50>)
800786e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007872: b29b uxth r3, r3
8007874: 4618 mov r0, r3
8007876: 4b92 ldr r3, [pc, #584] ; (8007ac0 <Display+0x1a50>)
8007878: 8a5b ldrh r3, [r3, #18]
800787a: b29b uxth r3, r3
800787c: 005b lsls r3, r3, #1
800787e: 4a90 ldr r2, [pc, #576] ; (8007ac0 <Display+0x1a50>)
8007880: 8812 ldrh r2, [r2, #0]
8007882: b292 uxth r2, r2
8007884: 4413 add r3, r2
8007886: 4991 ldr r1, [pc, #580] ; (8007acc <Display+0x1a5c>)
8007888: 0102 lsls r2, r0, #4
800788a: 4413 add r3, r2
800788c: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007890: 2303 movs r3, #3
8007892: 213c movs r1, #60 ; 0x3c
8007894: 20dc movs r0, #220 ; 0xdc
8007896: f7fd fb5d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
800789a: 4b89 ldr r3, [pc, #548] ; (8007ac0 <Display+0x1a50>)
800789c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80078a0: b29b uxth r3, r3
80078a2: 4618 mov r0, r3
80078a4: 4b86 ldr r3, [pc, #536] ; (8007ac0 <Display+0x1a50>)
80078a6: 8e5b ldrh r3, [r3, #50] ; 0x32
80078a8: b29b uxth r3, r3
80078aa: 005b lsls r3, r3, #1
80078ac: 4a84 ldr r2, [pc, #528] ; (8007ac0 <Display+0x1a50>)
80078ae: 8c12 ldrh r2, [r2, #32]
80078b0: b292 uxth r2, r2
80078b2: 4413 add r3, r2
80078b4: 4985 ldr r1, [pc, #532] ; (8007acc <Display+0x1a5c>)
80078b6: 0102 lsls r2, r0, #4
80078b8: 4413 add r3, r2
80078ba: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80078be: 2303 movs r3, #3
80078c0: 2150 movs r1, #80 ; 0x50
80078c2: 20dc movs r0, #220 ; 0xdc
80078c4: f7fd fb46 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
80078c8: 4b7d ldr r3, [pc, #500] ; (8007ac0 <Display+0x1a50>)
80078ca: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80078ce: b29b uxth r3, r3
80078d0: 4618 mov r0, r3
80078d2: 4b7b ldr r3, [pc, #492] ; (8007ac0 <Display+0x1a50>)
80078d4: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
80078d8: b29b uxth r3, r3
80078da: 005b lsls r3, r3, #1
80078dc: 4a78 ldr r2, [pc, #480] ; (8007ac0 <Display+0x1a50>)
80078de: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
80078e2: b292 uxth r2, r2
80078e4: 4413 add r3, r2
80078e6: 4979 ldr r1, [pc, #484] ; (8007acc <Display+0x1a5c>)
80078e8: 0102 lsls r2, r0, #4
80078ea: 4413 add r3, r2
80078ec: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80078f0: 2303 movs r3, #3
80078f2: 2164 movs r1, #100 ; 0x64
80078f4: 20dc movs r0, #220 ; 0xdc
80078f6: f7fd fb2d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
80078fa: 4b71 ldr r3, [pc, #452] ; (8007ac0 <Display+0x1a50>)
80078fc: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007900: b29b uxth r3, r3
8007902: 4618 mov r0, r3
8007904: 4b6e ldr r3, [pc, #440] ; (8007ac0 <Display+0x1a50>)
8007906: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
800790a: b29b uxth r3, r3
800790c: 005b lsls r3, r3, #1
800790e: 4a6c ldr r2, [pc, #432] ; (8007ac0 <Display+0x1a50>)
8007910: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
8007914: b292 uxth r2, r2
8007916: 4413 add r3, r2
8007918: 496c ldr r1, [pc, #432] ; (8007acc <Display+0x1a5c>)
800791a: 0102 lsls r2, r0, #4
800791c: 4413 add r3, r2
800791e: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007922: 2303 movs r3, #3
8007924: 2178 movs r1, #120 ; 0x78
8007926: 20dc movs r0, #220 ; 0xdc
8007928: f7fd fb14 bl 8004f54 <BSP_LCD_DisplayStringAt>
}
}
}
}
break;
800792c: f006 b852 b.w 800d9d4 <Display+0x7964>
if(menupos == Sens_1)
8007930: 4b62 ldr r3, [pc, #392] ; (8007abc <Display+0x1a4c>)
8007932: 781b ldrb r3, [r3, #0]
8007934: b2db uxtb r3, r3
8007936: 2b00 cmp r3, #0
8007938: f040 809a bne.w 8007a70 <Display+0x1a00>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800793c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007940: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8007944: f7fd fa40 bl 8004dc8 <LCD_SetColors>
if(focused)
8007948: 4b61 ldr r3, [pc, #388] ; (8007ad0 <Display+0x1a60>)
800794a: 781b ldrb r3, [r3, #0]
800794c: b2db uxtb r3, r3
800794e: 2b00 cmp r3, #0
8007950: d00b beq.n 800796a <Display+0x18fa>
if(blk)
8007952: 4b60 ldr r3, [pc, #384] ; (8007ad4 <Display+0x1a64>)
8007954: 681b ldr r3, [r3, #0]
8007956: 2b00 cmp r3, #0
8007958: d00e beq.n 8007978 <Display+0x1908>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
800795a: f507 728e add.w r2, r7, #284 ; 0x11c
800795e: 2303 movs r3, #3
8007960: 213c movs r1, #60 ; 0x3c
8007962: 208c movs r0, #140 ; 0x8c
8007964: f7fd faf6 bl 8004f54 <BSP_LCD_DisplayStringAt>
8007968: e006 b.n 8007978 <Display+0x1908>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
800796a: f507 728e add.w r2, r7, #284 ; 0x11c
800796e: 2303 movs r3, #3
8007970: 213c movs r1, #60 ; 0x3c
8007972: 208c movs r0, #140 ; 0x8c
8007974: f7fd faee bl 8004f54 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8007978: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800797c: 4852 ldr r0, [pc, #328] ; (8007ac8 <Display+0x1a58>)
800797e: f7fd fa23 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8007982: f107 02e0 add.w r2, r7, #224 ; 0xe0
8007986: 2303 movs r3, #3
8007988: 2150 movs r1, #80 ; 0x50
800798a: 208c movs r0, #140 ; 0x8c
800798c: f7fd fae2 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8007990: f107 02a4 add.w r2, r7, #164 ; 0xa4
8007994: 2303 movs r3, #3
8007996: 2164 movs r1, #100 ; 0x64
8007998: 208c movs r0, #140 ; 0x8c
800799a: f7fd fadb bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
800799e: f107 0268 add.w r2, r7, #104 ; 0x68
80079a2: 2303 movs r3, #3
80079a4: 2178 movs r1, #120 ; 0x78
80079a6: 208c movs r0, #140 ; 0x8c
80079a8: f7fd fad4 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
80079ac: 4b44 ldr r3, [pc, #272] ; (8007ac0 <Display+0x1a50>)
80079ae: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80079b2: b29b uxth r3, r3
80079b4: 4618 mov r0, r3
80079b6: 4b42 ldr r3, [pc, #264] ; (8007ac0 <Display+0x1a50>)
80079b8: 8a5b ldrh r3, [r3, #18]
80079ba: b29b uxth r3, r3
80079bc: 005b lsls r3, r3, #1
80079be: 4a40 ldr r2, [pc, #256] ; (8007ac0 <Display+0x1a50>)
80079c0: 8812 ldrh r2, [r2, #0]
80079c2: b292 uxth r2, r2
80079c4: 4413 add r3, r2
80079c6: 4941 ldr r1, [pc, #260] ; (8007acc <Display+0x1a5c>)
80079c8: 0102 lsls r2, r0, #4
80079ca: 4413 add r3, r2
80079cc: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80079d0: 2303 movs r3, #3
80079d2: 213c movs r1, #60 ; 0x3c
80079d4: 20dc movs r0, #220 ; 0xdc
80079d6: f7fd fabd bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
80079da: 4b39 ldr r3, [pc, #228] ; (8007ac0 <Display+0x1a50>)
80079dc: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80079e0: b29b uxth r3, r3
80079e2: 4618 mov r0, r3
80079e4: 4b36 ldr r3, [pc, #216] ; (8007ac0 <Display+0x1a50>)
80079e6: 8e5b ldrh r3, [r3, #50] ; 0x32
80079e8: b29b uxth r3, r3
80079ea: 005b lsls r3, r3, #1
80079ec: 4a34 ldr r2, [pc, #208] ; (8007ac0 <Display+0x1a50>)
80079ee: 8c12 ldrh r2, [r2, #32]
80079f0: b292 uxth r2, r2
80079f2: 4413 add r3, r2
80079f4: 4935 ldr r1, [pc, #212] ; (8007acc <Display+0x1a5c>)
80079f6: 0102 lsls r2, r0, #4
80079f8: 4413 add r3, r2
80079fa: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80079fe: 2303 movs r3, #3
8007a00: 2150 movs r1, #80 ; 0x50
8007a02: 20dc movs r0, #220 ; 0xdc
8007a04: f7fd faa6 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8007a08: 4b2d ldr r3, [pc, #180] ; (8007ac0 <Display+0x1a50>)
8007a0a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007a0e: b29b uxth r3, r3
8007a10: 4618 mov r0, r3
8007a12: 4b2b ldr r3, [pc, #172] ; (8007ac0 <Display+0x1a50>)
8007a14: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8007a18: b29b uxth r3, r3
8007a1a: 005b lsls r3, r3, #1
8007a1c: 4a28 ldr r2, [pc, #160] ; (8007ac0 <Display+0x1a50>)
8007a1e: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
8007a22: b292 uxth r2, r2
8007a24: 4413 add r3, r2
8007a26: 4929 ldr r1, [pc, #164] ; (8007acc <Display+0x1a5c>)
8007a28: 0102 lsls r2, r0, #4
8007a2a: 4413 add r3, r2
8007a2c: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007a30: 2303 movs r3, #3
8007a32: 2164 movs r1, #100 ; 0x64
8007a34: 20dc movs r0, #220 ; 0xdc
8007a36: f7fd fa8d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
8007a3a: 4b21 ldr r3, [pc, #132] ; (8007ac0 <Display+0x1a50>)
8007a3c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007a40: b29b uxth r3, r3
8007a42: 4618 mov r0, r3
8007a44: 4b1e ldr r3, [pc, #120] ; (8007ac0 <Display+0x1a50>)
8007a46: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8007a4a: b29b uxth r3, r3
8007a4c: 005b lsls r3, r3, #1
8007a4e: 4a1c ldr r2, [pc, #112] ; (8007ac0 <Display+0x1a50>)
8007a50: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
8007a54: b292 uxth r2, r2
8007a56: 4413 add r3, r2
8007a58: 491c ldr r1, [pc, #112] ; (8007acc <Display+0x1a5c>)
8007a5a: 0102 lsls r2, r0, #4
8007a5c: 4413 add r3, r2
8007a5e: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007a62: 2303 movs r3, #3
8007a64: 2178 movs r1, #120 ; 0x78
8007a66: 20dc movs r0, #220 ; 0xdc
8007a68: f7fd fa74 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
8007a6c: f005 bfb2 b.w 800d9d4 <Display+0x7964>
if(menupos == Sens_2)
8007a70: 4b12 ldr r3, [pc, #72] ; (8007abc <Display+0x1a4c>)
8007a72: 781b ldrb r3, [r3, #0]
8007a74: b2db uxtb r3, r3
8007a76: 2b08 cmp r3, #8
8007a78: f040 80b1 bne.w 8007bde <Display+0x1b6e>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8007a7c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007a80: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8007a84: f7fd f9a0 bl 8004dc8 <LCD_SetColors>
if(focused)
8007a88: 4b11 ldr r3, [pc, #68] ; (8007ad0 <Display+0x1a60>)
8007a8a: 781b ldrb r3, [r3, #0]
8007a8c: b2db uxtb r3, r3
8007a8e: 2b00 cmp r3, #0
8007a90: d022 beq.n 8007ad8 <Display+0x1a68>
if(blk)
8007a92: 4b10 ldr r3, [pc, #64] ; (8007ad4 <Display+0x1a64>)
8007a94: 681b ldr r3, [r3, #0]
8007a96: 2b00 cmp r3, #0
8007a98: d025 beq.n 8007ae6 <Display+0x1a76>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8007a9a: f107 02e0 add.w r2, r7, #224 ; 0xe0
8007a9e: 2303 movs r3, #3
8007aa0: 2150 movs r1, #80 ; 0x50
8007aa2: 208c movs r0, #140 ; 0x8c
8007aa4: f7fd fa56 bl 8004f54 <BSP_LCD_DisplayStringAt>
8007aa8: e01d b.n 8007ae6 <Display+0x1a76>
8007aaa: bf00 nop
8007aac: 08018198 .word 0x08018198
8007ab0: 080181a4 .word 0x080181a4
8007ab4: 080181b0 .word 0x080181b0
8007ab8: 080181bc .word 0x080181bc
8007abc: 20020010 .word 0x20020010
8007ac0: 2006bca8 .word 0x2006bca8
8007ac4: 20020034 .word 0x20020034
8007ac8: ffd8aa57 .word 0xffd8aa57
8007acc: 200200bc .word 0x200200bc
8007ad0: 200209e4 .word 0x200209e4
8007ad4: 2006ba78 .word 0x2006ba78
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8007ad8: f107 02e0 add.w r2, r7, #224 ; 0xe0
8007adc: 2303 movs r3, #3
8007ade: 2150 movs r1, #80 ; 0x50
8007ae0: 208c movs r0, #140 ; 0x8c
8007ae2: f7fd fa37 bl 8004f54 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8007ae6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007aea: 489b ldr r0, [pc, #620] ; (8007d58 <Display+0x1ce8>)
8007aec: f7fd f96c bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8007af0: f507 728e add.w r2, r7, #284 ; 0x11c
8007af4: 2303 movs r3, #3
8007af6: 213c movs r1, #60 ; 0x3c
8007af8: 208c movs r0, #140 ; 0x8c
8007afa: f7fd fa2b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8007afe: f107 02a4 add.w r2, r7, #164 ; 0xa4
8007b02: 2303 movs r3, #3
8007b04: 2164 movs r1, #100 ; 0x64
8007b06: 208c movs r0, #140 ; 0x8c
8007b08: f7fd fa24 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8007b0c: f107 0268 add.w r2, r7, #104 ; 0x68
8007b10: 2303 movs r3, #3
8007b12: 2178 movs r1, #120 ; 0x78
8007b14: 208c movs r0, #140 ; 0x8c
8007b16: f7fd fa1d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
8007b1a: 4b90 ldr r3, [pc, #576] ; (8007d5c <Display+0x1cec>)
8007b1c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007b20: b29b uxth r3, r3
8007b22: 4618 mov r0, r3
8007b24: 4b8d ldr r3, [pc, #564] ; (8007d5c <Display+0x1cec>)
8007b26: 8a5b ldrh r3, [r3, #18]
8007b28: b29b uxth r3, r3
8007b2a: 005b lsls r3, r3, #1
8007b2c: 4a8b ldr r2, [pc, #556] ; (8007d5c <Display+0x1cec>)
8007b2e: 8812 ldrh r2, [r2, #0]
8007b30: b292 uxth r2, r2
8007b32: 4413 add r3, r2
8007b34: 498a ldr r1, [pc, #552] ; (8007d60 <Display+0x1cf0>)
8007b36: 0102 lsls r2, r0, #4
8007b38: 4413 add r3, r2
8007b3a: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007b3e: 2303 movs r3, #3
8007b40: 213c movs r1, #60 ; 0x3c
8007b42: 20dc movs r0, #220 ; 0xdc
8007b44: f7fd fa06 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8007b48: 4b84 ldr r3, [pc, #528] ; (8007d5c <Display+0x1cec>)
8007b4a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007b4e: b29b uxth r3, r3
8007b50: 4618 mov r0, r3
8007b52: 4b82 ldr r3, [pc, #520] ; (8007d5c <Display+0x1cec>)
8007b54: 8e5b ldrh r3, [r3, #50] ; 0x32
8007b56: b29b uxth r3, r3
8007b58: 005b lsls r3, r3, #1
8007b5a: 4a80 ldr r2, [pc, #512] ; (8007d5c <Display+0x1cec>)
8007b5c: 8c12 ldrh r2, [r2, #32]
8007b5e: b292 uxth r2, r2
8007b60: 4413 add r3, r2
8007b62: 497f ldr r1, [pc, #508] ; (8007d60 <Display+0x1cf0>)
8007b64: 0102 lsls r2, r0, #4
8007b66: 4413 add r3, r2
8007b68: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007b6c: 2303 movs r3, #3
8007b6e: 2150 movs r1, #80 ; 0x50
8007b70: 20dc movs r0, #220 ; 0xdc
8007b72: f7fd f9ef bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8007b76: 4b79 ldr r3, [pc, #484] ; (8007d5c <Display+0x1cec>)
8007b78: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007b7c: b29b uxth r3, r3
8007b7e: 4618 mov r0, r3
8007b80: 4b76 ldr r3, [pc, #472] ; (8007d5c <Display+0x1cec>)
8007b82: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8007b86: b29b uxth r3, r3
8007b88: 005b lsls r3, r3, #1
8007b8a: 4a74 ldr r2, [pc, #464] ; (8007d5c <Display+0x1cec>)
8007b8c: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
8007b90: b292 uxth r2, r2
8007b92: 4413 add r3, r2
8007b94: 4972 ldr r1, [pc, #456] ; (8007d60 <Display+0x1cf0>)
8007b96: 0102 lsls r2, r0, #4
8007b98: 4413 add r3, r2
8007b9a: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007b9e: 2303 movs r3, #3
8007ba0: 2164 movs r1, #100 ; 0x64
8007ba2: 20dc movs r0, #220 ; 0xdc
8007ba4: f7fd f9d6 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
8007ba8: 4b6c ldr r3, [pc, #432] ; (8007d5c <Display+0x1cec>)
8007baa: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007bae: b29b uxth r3, r3
8007bb0: 4618 mov r0, r3
8007bb2: 4b6a ldr r3, [pc, #424] ; (8007d5c <Display+0x1cec>)
8007bb4: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8007bb8: b29b uxth r3, r3
8007bba: 005b lsls r3, r3, #1
8007bbc: 4a67 ldr r2, [pc, #412] ; (8007d5c <Display+0x1cec>)
8007bbe: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
8007bc2: b292 uxth r2, r2
8007bc4: 4413 add r3, r2
8007bc6: 4966 ldr r1, [pc, #408] ; (8007d60 <Display+0x1cf0>)
8007bc8: 0102 lsls r2, r0, #4
8007bca: 4413 add r3, r2
8007bcc: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007bd0: 2303 movs r3, #3
8007bd2: 2178 movs r1, #120 ; 0x78
8007bd4: 20dc movs r0, #220 ; 0xdc
8007bd6: f7fd f9bd bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
8007bda: f005 befb b.w 800d9d4 <Display+0x7964>
if(menupos == Sens_3)
8007bde: 4b61 ldr r3, [pc, #388] ; (8007d64 <Display+0x1cf4>)
8007be0: 781b ldrb r3, [r3, #0]
8007be2: b2db uxtb r3, r3
8007be4: 2b10 cmp r3, #16
8007be6: f040 809a bne.w 8007d1e <Display+0x1cae>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8007bea: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007bee: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8007bf2: f7fd f8e9 bl 8004dc8 <LCD_SetColors>
if(focused)
8007bf6: 4b5c ldr r3, [pc, #368] ; (8007d68 <Display+0x1cf8>)
8007bf8: 781b ldrb r3, [r3, #0]
8007bfa: b2db uxtb r3, r3
8007bfc: 2b00 cmp r3, #0
8007bfe: d00b beq.n 8007c18 <Display+0x1ba8>
if(blk)
8007c00: 4b5a ldr r3, [pc, #360] ; (8007d6c <Display+0x1cfc>)
8007c02: 681b ldr r3, [r3, #0]
8007c04: 2b00 cmp r3, #0
8007c06: d00e beq.n 8007c26 <Display+0x1bb6>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8007c08: f107 02a4 add.w r2, r7, #164 ; 0xa4
8007c0c: 2303 movs r3, #3
8007c0e: 2164 movs r1, #100 ; 0x64
8007c10: 208c movs r0, #140 ; 0x8c
8007c12: f7fd f99f bl 8004f54 <BSP_LCD_DisplayStringAt>
8007c16: e006 b.n 8007c26 <Display+0x1bb6>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8007c18: f107 02a4 add.w r2, r7, #164 ; 0xa4
8007c1c: 2303 movs r3, #3
8007c1e: 2164 movs r1, #100 ; 0x64
8007c20: 208c movs r0, #140 ; 0x8c
8007c22: f7fd f997 bl 8004f54 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8007c26: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007c2a: 484b ldr r0, [pc, #300] ; (8007d58 <Display+0x1ce8>)
8007c2c: f7fd f8cc bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8007c30: f507 728e add.w r2, r7, #284 ; 0x11c
8007c34: 2303 movs r3, #3
8007c36: 213c movs r1, #60 ; 0x3c
8007c38: 208c movs r0, #140 ; 0x8c
8007c3a: f7fd f98b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8007c3e: f107 02e0 add.w r2, r7, #224 ; 0xe0
8007c42: 2303 movs r3, #3
8007c44: 2150 movs r1, #80 ; 0x50
8007c46: 208c movs r0, #140 ; 0x8c
8007c48: f7fd f984 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8007c4c: f107 0268 add.w r2, r7, #104 ; 0x68
8007c50: 2303 movs r3, #3
8007c52: 2178 movs r1, #120 ; 0x78
8007c54: 208c movs r0, #140 ; 0x8c
8007c56: f7fd f97d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
8007c5a: 4b40 ldr r3, [pc, #256] ; (8007d5c <Display+0x1cec>)
8007c5c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007c60: b29b uxth r3, r3
8007c62: 4618 mov r0, r3
8007c64: 4b3d ldr r3, [pc, #244] ; (8007d5c <Display+0x1cec>)
8007c66: 8a5b ldrh r3, [r3, #18]
8007c68: b29b uxth r3, r3
8007c6a: 005b lsls r3, r3, #1
8007c6c: 4a3b ldr r2, [pc, #236] ; (8007d5c <Display+0x1cec>)
8007c6e: 8812 ldrh r2, [r2, #0]
8007c70: b292 uxth r2, r2
8007c72: 4413 add r3, r2
8007c74: 493a ldr r1, [pc, #232] ; (8007d60 <Display+0x1cf0>)
8007c76: 0102 lsls r2, r0, #4
8007c78: 4413 add r3, r2
8007c7a: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007c7e: 2303 movs r3, #3
8007c80: 213c movs r1, #60 ; 0x3c
8007c82: 20dc movs r0, #220 ; 0xdc
8007c84: f7fd f966 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8007c88: 4b34 ldr r3, [pc, #208] ; (8007d5c <Display+0x1cec>)
8007c8a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007c8e: b29b uxth r3, r3
8007c90: 4618 mov r0, r3
8007c92: 4b32 ldr r3, [pc, #200] ; (8007d5c <Display+0x1cec>)
8007c94: 8e5b ldrh r3, [r3, #50] ; 0x32
8007c96: b29b uxth r3, r3
8007c98: 005b lsls r3, r3, #1
8007c9a: 4a30 ldr r2, [pc, #192] ; (8007d5c <Display+0x1cec>)
8007c9c: 8c12 ldrh r2, [r2, #32]
8007c9e: b292 uxth r2, r2
8007ca0: 4413 add r3, r2
8007ca2: 492f ldr r1, [pc, #188] ; (8007d60 <Display+0x1cf0>)
8007ca4: 0102 lsls r2, r0, #4
8007ca6: 4413 add r3, r2
8007ca8: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007cac: 2303 movs r3, #3
8007cae: 2150 movs r1, #80 ; 0x50
8007cb0: 20dc movs r0, #220 ; 0xdc
8007cb2: f7fd f94f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8007cb6: 4b29 ldr r3, [pc, #164] ; (8007d5c <Display+0x1cec>)
8007cb8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007cbc: b29b uxth r3, r3
8007cbe: 4618 mov r0, r3
8007cc0: 4b26 ldr r3, [pc, #152] ; (8007d5c <Display+0x1cec>)
8007cc2: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8007cc6: b29b uxth r3, r3
8007cc8: 005b lsls r3, r3, #1
8007cca: 4a24 ldr r2, [pc, #144] ; (8007d5c <Display+0x1cec>)
8007ccc: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
8007cd0: b292 uxth r2, r2
8007cd2: 4413 add r3, r2
8007cd4: 4922 ldr r1, [pc, #136] ; (8007d60 <Display+0x1cf0>)
8007cd6: 0102 lsls r2, r0, #4
8007cd8: 4413 add r3, r2
8007cda: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007cde: 2303 movs r3, #3
8007ce0: 2164 movs r1, #100 ; 0x64
8007ce2: 20dc movs r0, #220 ; 0xdc
8007ce4: f7fd f936 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
8007ce8: 4b1c ldr r3, [pc, #112] ; (8007d5c <Display+0x1cec>)
8007cea: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007cee: b29b uxth r3, r3
8007cf0: 4618 mov r0, r3
8007cf2: 4b1a ldr r3, [pc, #104] ; (8007d5c <Display+0x1cec>)
8007cf4: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8007cf8: b29b uxth r3, r3
8007cfa: 005b lsls r3, r3, #1
8007cfc: 4a17 ldr r2, [pc, #92] ; (8007d5c <Display+0x1cec>)
8007cfe: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
8007d02: b292 uxth r2, r2
8007d04: 4413 add r3, r2
8007d06: 4916 ldr r1, [pc, #88] ; (8007d60 <Display+0x1cf0>)
8007d08: 0102 lsls r2, r0, #4
8007d0a: 4413 add r3, r2
8007d0c: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007d10: 2303 movs r3, #3
8007d12: 2178 movs r1, #120 ; 0x78
8007d14: 20dc movs r0, #220 ; 0xdc
8007d16: f7fd f91d bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
8007d1a: f005 be5b b.w 800d9d4 <Display+0x7964>
if(menupos == Sens_4)
8007d1e: 4b11 ldr r3, [pc, #68] ; (8007d64 <Display+0x1cf4>)
8007d20: 781b ldrb r3, [r3, #0]
8007d22: b2db uxtb r3, r3
8007d24: 2b18 cmp r3, #24
8007d26: f040 80a6 bne.w 8007e76 <Display+0x1e06>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8007d2a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007d2e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8007d32: f7fd f849 bl 8004dc8 <LCD_SetColors>
if(focused)
8007d36: 4b0c ldr r3, [pc, #48] ; (8007d68 <Display+0x1cf8>)
8007d38: 781b ldrb r3, [r3, #0]
8007d3a: b2db uxtb r3, r3
8007d3c: 2b00 cmp r3, #0
8007d3e: d017 beq.n 8007d70 <Display+0x1d00>
if(blk)
8007d40: 4b0a ldr r3, [pc, #40] ; (8007d6c <Display+0x1cfc>)
8007d42: 681b ldr r3, [r3, #0]
8007d44: 2b00 cmp r3, #0
8007d46: d01a beq.n 8007d7e <Display+0x1d0e>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8007d48: f107 0268 add.w r2, r7, #104 ; 0x68
8007d4c: 2303 movs r3, #3
8007d4e: 2178 movs r1, #120 ; 0x78
8007d50: 208c movs r0, #140 ; 0x8c
8007d52: f7fd f8ff bl 8004f54 <BSP_LCD_DisplayStringAt>
8007d56: e012 b.n 8007d7e <Display+0x1d0e>
8007d58: ffd8aa57 .word 0xffd8aa57
8007d5c: 2006bca8 .word 0x2006bca8
8007d60: 200200bc .word 0x200200bc
8007d64: 20020010 .word 0x20020010
8007d68: 200209e4 .word 0x200209e4
8007d6c: 2006ba78 .word 0x2006ba78
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8007d70: f107 0268 add.w r2, r7, #104 ; 0x68
8007d74: 2303 movs r3, #3
8007d76: 2178 movs r1, #120 ; 0x78
8007d78: 208c movs r0, #140 ; 0x8c
8007d7a: f7fd f8eb bl 8004f54 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8007d7e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007d82: 48ab ldr r0, [pc, #684] ; (8008030 <Display+0x1fc0>)
8007d84: f7fd f820 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8007d88: f507 728e add.w r2, r7, #284 ; 0x11c
8007d8c: 2303 movs r3, #3
8007d8e: 213c movs r1, #60 ; 0x3c
8007d90: 208c movs r0, #140 ; 0x8c
8007d92: f7fd f8df bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8007d96: f107 02e0 add.w r2, r7, #224 ; 0xe0
8007d9a: 2303 movs r3, #3
8007d9c: 2150 movs r1, #80 ; 0x50
8007d9e: 208c movs r0, #140 ; 0x8c
8007da0: f7fd f8d8 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8007da4: f107 02a4 add.w r2, r7, #164 ; 0xa4
8007da8: 2303 movs r3, #3
8007daa: 2164 movs r1, #100 ; 0x64
8007dac: 208c movs r0, #140 ; 0x8c
8007dae: f7fd f8d1 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
8007db2: 4ba0 ldr r3, [pc, #640] ; (8008034 <Display+0x1fc4>)
8007db4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007db8: b29b uxth r3, r3
8007dba: 4618 mov r0, r3
8007dbc: 4b9d ldr r3, [pc, #628] ; (8008034 <Display+0x1fc4>)
8007dbe: 8a5b ldrh r3, [r3, #18]
8007dc0: b29b uxth r3, r3
8007dc2: 005b lsls r3, r3, #1
8007dc4: 4a9b ldr r2, [pc, #620] ; (8008034 <Display+0x1fc4>)
8007dc6: 8812 ldrh r2, [r2, #0]
8007dc8: b292 uxth r2, r2
8007dca: 4413 add r3, r2
8007dcc: 499a ldr r1, [pc, #616] ; (8008038 <Display+0x1fc8>)
8007dce: 0102 lsls r2, r0, #4
8007dd0: 4413 add r3, r2
8007dd2: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007dd6: 2303 movs r3, #3
8007dd8: 213c movs r1, #60 ; 0x3c
8007dda: 20dc movs r0, #220 ; 0xdc
8007ddc: f7fd f8ba bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8007de0: 4b94 ldr r3, [pc, #592] ; (8008034 <Display+0x1fc4>)
8007de2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007de6: b29b uxth r3, r3
8007de8: 4618 mov r0, r3
8007dea: 4b92 ldr r3, [pc, #584] ; (8008034 <Display+0x1fc4>)
8007dec: 8e5b ldrh r3, [r3, #50] ; 0x32
8007dee: b29b uxth r3, r3
8007df0: 005b lsls r3, r3, #1
8007df2: 4a90 ldr r2, [pc, #576] ; (8008034 <Display+0x1fc4>)
8007df4: 8c12 ldrh r2, [r2, #32]
8007df6: b292 uxth r2, r2
8007df8: 4413 add r3, r2
8007dfa: 498f ldr r1, [pc, #572] ; (8008038 <Display+0x1fc8>)
8007dfc: 0102 lsls r2, r0, #4
8007dfe: 4413 add r3, r2
8007e00: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007e04: 2303 movs r3, #3
8007e06: 2150 movs r1, #80 ; 0x50
8007e08: 20dc movs r0, #220 ; 0xdc
8007e0a: f7fd f8a3 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8007e0e: 4b89 ldr r3, [pc, #548] ; (8008034 <Display+0x1fc4>)
8007e10: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007e14: b29b uxth r3, r3
8007e16: 4618 mov r0, r3
8007e18: 4b86 ldr r3, [pc, #536] ; (8008034 <Display+0x1fc4>)
8007e1a: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8007e1e: b29b uxth r3, r3
8007e20: 005b lsls r3, r3, #1
8007e22: 4a84 ldr r2, [pc, #528] ; (8008034 <Display+0x1fc4>)
8007e24: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
8007e28: b292 uxth r2, r2
8007e2a: 4413 add r3, r2
8007e2c: 4982 ldr r1, [pc, #520] ; (8008038 <Display+0x1fc8>)
8007e2e: 0102 lsls r2, r0, #4
8007e30: 4413 add r3, r2
8007e32: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007e36: 2303 movs r3, #3
8007e38: 2164 movs r1, #100 ; 0x64
8007e3a: 20dc movs r0, #220 ; 0xdc
8007e3c: f7fd f88a bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
8007e40: 4b7c ldr r3, [pc, #496] ; (8008034 <Display+0x1fc4>)
8007e42: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007e46: b29b uxth r3, r3
8007e48: 4618 mov r0, r3
8007e4a: 4b7a ldr r3, [pc, #488] ; (8008034 <Display+0x1fc4>)
8007e4c: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8007e50: b29b uxth r3, r3
8007e52: 005b lsls r3, r3, #1
8007e54: 4a77 ldr r2, [pc, #476] ; (8008034 <Display+0x1fc4>)
8007e56: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
8007e5a: b292 uxth r2, r2
8007e5c: 4413 add r3, r2
8007e5e: 4976 ldr r1, [pc, #472] ; (8008038 <Display+0x1fc8>)
8007e60: 0102 lsls r2, r0, #4
8007e62: 4413 add r3, r2
8007e64: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007e68: 2303 movs r3, #3
8007e6a: 2178 movs r1, #120 ; 0x78
8007e6c: 20dc movs r0, #220 ; 0xdc
8007e6e: f7fd f871 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
8007e72: f005 bdaf b.w 800d9d4 <Display+0x7964>
if(menupos == Val_1)
8007e76: 4b71 ldr r3, [pc, #452] ; (800803c <Display+0x1fcc>)
8007e78: 781b ldrb r3, [r3, #0]
8007e7a: b2db uxtb r3, r3
8007e7c: 2b01 cmp r3, #1
8007e7e: f040 80aa bne.w 8007fd6 <Display+0x1f66>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8007e82: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007e86: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8007e8a: f7fc ff9d bl 8004dc8 <LCD_SetColors>
if(focused)
8007e8e: 4b6c ldr r3, [pc, #432] ; (8008040 <Display+0x1fd0>)
8007e90: 781b ldrb r3, [r3, #0]
8007e92: b2db uxtb r3, r3
8007e94: 2b00 cmp r3, #0
8007e96: d01b beq.n 8007ed0 <Display+0x1e60>
if(blk)
8007e98: 4b6a ldr r3, [pc, #424] ; (8008044 <Display+0x1fd4>)
8007e9a: 681b ldr r3, [r3, #0]
8007e9c: 2b00 cmp r3, #0
8007e9e: d02e beq.n 8007efe <Display+0x1e8e>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
8007ea0: 4b64 ldr r3, [pc, #400] ; (8008034 <Display+0x1fc4>)
8007ea2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007ea6: b29b uxth r3, r3
8007ea8: 4618 mov r0, r3
8007eaa: 4b62 ldr r3, [pc, #392] ; (8008034 <Display+0x1fc4>)
8007eac: 8a5b ldrh r3, [r3, #18]
8007eae: b29b uxth r3, r3
8007eb0: 005b lsls r3, r3, #1
8007eb2: 4a60 ldr r2, [pc, #384] ; (8008034 <Display+0x1fc4>)
8007eb4: 8812 ldrh r2, [r2, #0]
8007eb6: b292 uxth r2, r2
8007eb8: 4413 add r3, r2
8007eba: 495f ldr r1, [pc, #380] ; (8008038 <Display+0x1fc8>)
8007ebc: 0102 lsls r2, r0, #4
8007ebe: 4413 add r3, r2
8007ec0: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007ec4: 2303 movs r3, #3
8007ec6: 213c movs r1, #60 ; 0x3c
8007ec8: 20dc movs r0, #220 ; 0xdc
8007eca: f7fd f843 bl 8004f54 <BSP_LCD_DisplayStringAt>
8007ece: e016 b.n 8007efe <Display+0x1e8e>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
8007ed0: 4b58 ldr r3, [pc, #352] ; (8008034 <Display+0x1fc4>)
8007ed2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007ed6: b29b uxth r3, r3
8007ed8: 4618 mov r0, r3
8007eda: 4b56 ldr r3, [pc, #344] ; (8008034 <Display+0x1fc4>)
8007edc: 8a5b ldrh r3, [r3, #18]
8007ede: b29b uxth r3, r3
8007ee0: 005b lsls r3, r3, #1
8007ee2: 4a54 ldr r2, [pc, #336] ; (8008034 <Display+0x1fc4>)
8007ee4: 8812 ldrh r2, [r2, #0]
8007ee6: b292 uxth r2, r2
8007ee8: 4413 add r3, r2
8007eea: 4953 ldr r1, [pc, #332] ; (8008038 <Display+0x1fc8>)
8007eec: 0102 lsls r2, r0, #4
8007eee: 4413 add r3, r2
8007ef0: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007ef4: 2303 movs r3, #3
8007ef6: 213c movs r1, #60 ; 0x3c
8007ef8: 20dc movs r0, #220 ; 0xdc
8007efa: f7fd f82b bl 8004f54 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8007efe: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007f02: 484b ldr r0, [pc, #300] ; (8008030 <Display+0x1fc0>)
8007f04: f7fc ff60 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8007f08: f507 728e add.w r2, r7, #284 ; 0x11c
8007f0c: 2303 movs r3, #3
8007f0e: 213c movs r1, #60 ; 0x3c
8007f10: 208c movs r0, #140 ; 0x8c
8007f12: f7fd f81f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8007f16: f107 02e0 add.w r2, r7, #224 ; 0xe0
8007f1a: 2303 movs r3, #3
8007f1c: 2150 movs r1, #80 ; 0x50
8007f1e: 208c movs r0, #140 ; 0x8c
8007f20: f7fd f818 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8007f24: f107 02a4 add.w r2, r7, #164 ; 0xa4
8007f28: 2303 movs r3, #3
8007f2a: 2164 movs r1, #100 ; 0x64
8007f2c: 208c movs r0, #140 ; 0x8c
8007f2e: f7fd f811 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8007f32: f107 0268 add.w r2, r7, #104 ; 0x68
8007f36: 2303 movs r3, #3
8007f38: 2178 movs r1, #120 ; 0x78
8007f3a: 208c movs r0, #140 ; 0x8c
8007f3c: f7fd f80a bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8007f40: 4b3c ldr r3, [pc, #240] ; (8008034 <Display+0x1fc4>)
8007f42: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007f46: b29b uxth r3, r3
8007f48: 4618 mov r0, r3
8007f4a: 4b3a ldr r3, [pc, #232] ; (8008034 <Display+0x1fc4>)
8007f4c: 8e5b ldrh r3, [r3, #50] ; 0x32
8007f4e: b29b uxth r3, r3
8007f50: 005b lsls r3, r3, #1
8007f52: 4a38 ldr r2, [pc, #224] ; (8008034 <Display+0x1fc4>)
8007f54: 8c12 ldrh r2, [r2, #32]
8007f56: b292 uxth r2, r2
8007f58: 4413 add r3, r2
8007f5a: 4937 ldr r1, [pc, #220] ; (8008038 <Display+0x1fc8>)
8007f5c: 0102 lsls r2, r0, #4
8007f5e: 4413 add r3, r2
8007f60: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007f64: 2303 movs r3, #3
8007f66: 2150 movs r1, #80 ; 0x50
8007f68: 20dc movs r0, #220 ; 0xdc
8007f6a: f7fc fff3 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8007f6e: 4b31 ldr r3, [pc, #196] ; (8008034 <Display+0x1fc4>)
8007f70: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007f74: b29b uxth r3, r3
8007f76: 4618 mov r0, r3
8007f78: 4b2e ldr r3, [pc, #184] ; (8008034 <Display+0x1fc4>)
8007f7a: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8007f7e: b29b uxth r3, r3
8007f80: 005b lsls r3, r3, #1
8007f82: 4a2c ldr r2, [pc, #176] ; (8008034 <Display+0x1fc4>)
8007f84: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
8007f88: b292 uxth r2, r2
8007f8a: 4413 add r3, r2
8007f8c: 492a ldr r1, [pc, #168] ; (8008038 <Display+0x1fc8>)
8007f8e: 0102 lsls r2, r0, #4
8007f90: 4413 add r3, r2
8007f92: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007f96: 2303 movs r3, #3
8007f98: 2164 movs r1, #100 ; 0x64
8007f9a: 20dc movs r0, #220 ; 0xdc
8007f9c: f7fc ffda bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
8007fa0: 4b24 ldr r3, [pc, #144] ; (8008034 <Display+0x1fc4>)
8007fa2: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8007fa6: b29b uxth r3, r3
8007fa8: 4618 mov r0, r3
8007faa: 4b22 ldr r3, [pc, #136] ; (8008034 <Display+0x1fc4>)
8007fac: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8007fb0: b29b uxth r3, r3
8007fb2: 005b lsls r3, r3, #1
8007fb4: 4a1f ldr r2, [pc, #124] ; (8008034 <Display+0x1fc4>)
8007fb6: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
8007fba: b292 uxth r2, r2
8007fbc: 4413 add r3, r2
8007fbe: 491e ldr r1, [pc, #120] ; (8008038 <Display+0x1fc8>)
8007fc0: 0102 lsls r2, r0, #4
8007fc2: 4413 add r3, r2
8007fc4: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8007fc8: 2303 movs r3, #3
8007fca: 2178 movs r1, #120 ; 0x78
8007fcc: 20dc movs r0, #220 ; 0xdc
8007fce: f7fc ffc1 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
8007fd2: f005 bcff b.w 800d9d4 <Display+0x7964>
if(menupos == Val_2)
8007fd6: 4b19 ldr r3, [pc, #100] ; (800803c <Display+0x1fcc>)
8007fd8: 781b ldrb r3, [r3, #0]
8007fda: b2db uxtb r3, r3
8007fdc: 2b09 cmp r3, #9
8007fde: f040 80b6 bne.w 800814e <Display+0x20de>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8007fe2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8007fe6: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8007fea: f7fc feed bl 8004dc8 <LCD_SetColors>
if(focused)
8007fee: 4b14 ldr r3, [pc, #80] ; (8008040 <Display+0x1fd0>)
8007ff0: 781b ldrb r3, [r3, #0]
8007ff2: b2db uxtb r3, r3
8007ff4: 2b00 cmp r3, #0
8007ff6: d027 beq.n 8008048 <Display+0x1fd8>
if(blk)
8007ff8: 4b12 ldr r3, [pc, #72] ; (8008044 <Display+0x1fd4>)
8007ffa: 681b ldr r3, [r3, #0]
8007ffc: 2b00 cmp r3, #0
8007ffe: d03a beq.n 8008076 <Display+0x2006>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8008000: 4b0c ldr r3, [pc, #48] ; (8008034 <Display+0x1fc4>)
8008002: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008006: b29b uxth r3, r3
8008008: 4618 mov r0, r3
800800a: 4b0a ldr r3, [pc, #40] ; (8008034 <Display+0x1fc4>)
800800c: 8e5b ldrh r3, [r3, #50] ; 0x32
800800e: b29b uxth r3, r3
8008010: 005b lsls r3, r3, #1
8008012: 4a08 ldr r2, [pc, #32] ; (8008034 <Display+0x1fc4>)
8008014: 8c12 ldrh r2, [r2, #32]
8008016: b292 uxth r2, r2
8008018: 4413 add r3, r2
800801a: 4907 ldr r1, [pc, #28] ; (8008038 <Display+0x1fc8>)
800801c: 0102 lsls r2, r0, #4
800801e: 4413 add r3, r2
8008020: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008024: 2303 movs r3, #3
8008026: 2150 movs r1, #80 ; 0x50
8008028: 20dc movs r0, #220 ; 0xdc
800802a: f7fc ff93 bl 8004f54 <BSP_LCD_DisplayStringAt>
800802e: e022 b.n 8008076 <Display+0x2006>
8008030: ffd8aa57 .word 0xffd8aa57
8008034: 2006bca8 .word 0x2006bca8
8008038: 200200bc .word 0x200200bc
800803c: 20020010 .word 0x20020010
8008040: 200209e4 .word 0x200209e4
8008044: 2006ba78 .word 0x2006ba78
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8008048: 4bb1 ldr r3, [pc, #708] ; (8008310 <Display+0x22a0>)
800804a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800804e: b29b uxth r3, r3
8008050: 4618 mov r0, r3
8008052: 4baf ldr r3, [pc, #700] ; (8008310 <Display+0x22a0>)
8008054: 8e5b ldrh r3, [r3, #50] ; 0x32
8008056: b29b uxth r3, r3
8008058: 005b lsls r3, r3, #1
800805a: 4aad ldr r2, [pc, #692] ; (8008310 <Display+0x22a0>)
800805c: 8c12 ldrh r2, [r2, #32]
800805e: b292 uxth r2, r2
8008060: 4413 add r3, r2
8008062: 49ac ldr r1, [pc, #688] ; (8008314 <Display+0x22a4>)
8008064: 0102 lsls r2, r0, #4
8008066: 4413 add r3, r2
8008068: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800806c: 2303 movs r3, #3
800806e: 2150 movs r1, #80 ; 0x50
8008070: 20dc movs r0, #220 ; 0xdc
8008072: f7fc ff6f bl 8004f54 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8008076: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800807a: 48a7 ldr r0, [pc, #668] ; (8008318 <Display+0x22a8>)
800807c: f7fc fea4 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8008080: f507 728e add.w r2, r7, #284 ; 0x11c
8008084: 2303 movs r3, #3
8008086: 213c movs r1, #60 ; 0x3c
8008088: 208c movs r0, #140 ; 0x8c
800808a: f7fc ff63 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
800808e: f107 02e0 add.w r2, r7, #224 ; 0xe0
8008092: 2303 movs r3, #3
8008094: 2150 movs r1, #80 ; 0x50
8008096: 208c movs r0, #140 ; 0x8c
8008098: f7fc ff5c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
800809c: f107 02a4 add.w r2, r7, #164 ; 0xa4
80080a0: 2303 movs r3, #3
80080a2: 2164 movs r1, #100 ; 0x64
80080a4: 208c movs r0, #140 ; 0x8c
80080a6: f7fc ff55 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
80080aa: f107 0268 add.w r2, r7, #104 ; 0x68
80080ae: 2303 movs r3, #3
80080b0: 2178 movs r1, #120 ; 0x78
80080b2: 208c movs r0, #140 ; 0x8c
80080b4: f7fc ff4e bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
80080b8: 4b95 ldr r3, [pc, #596] ; (8008310 <Display+0x22a0>)
80080ba: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80080be: b29b uxth r3, r3
80080c0: 4618 mov r0, r3
80080c2: 4b93 ldr r3, [pc, #588] ; (8008310 <Display+0x22a0>)
80080c4: 8a5b ldrh r3, [r3, #18]
80080c6: b29b uxth r3, r3
80080c8: 005b lsls r3, r3, #1
80080ca: 4a91 ldr r2, [pc, #580] ; (8008310 <Display+0x22a0>)
80080cc: 8812 ldrh r2, [r2, #0]
80080ce: b292 uxth r2, r2
80080d0: 4413 add r3, r2
80080d2: 4990 ldr r1, [pc, #576] ; (8008314 <Display+0x22a4>)
80080d4: 0102 lsls r2, r0, #4
80080d6: 4413 add r3, r2
80080d8: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80080dc: 2303 movs r3, #3
80080de: 213c movs r1, #60 ; 0x3c
80080e0: 20dc movs r0, #220 ; 0xdc
80080e2: f7fc ff37 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
80080e6: 4b8a ldr r3, [pc, #552] ; (8008310 <Display+0x22a0>)
80080e8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80080ec: b29b uxth r3, r3
80080ee: 4618 mov r0, r3
80080f0: 4b87 ldr r3, [pc, #540] ; (8008310 <Display+0x22a0>)
80080f2: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
80080f6: b29b uxth r3, r3
80080f8: 005b lsls r3, r3, #1
80080fa: 4a85 ldr r2, [pc, #532] ; (8008310 <Display+0x22a0>)
80080fc: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
8008100: b292 uxth r2, r2
8008102: 4413 add r3, r2
8008104: 4983 ldr r1, [pc, #524] ; (8008314 <Display+0x22a4>)
8008106: 0102 lsls r2, r0, #4
8008108: 4413 add r3, r2
800810a: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800810e: 2303 movs r3, #3
8008110: 2164 movs r1, #100 ; 0x64
8008112: 20dc movs r0, #220 ; 0xdc
8008114: f7fc ff1e bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
8008118: 4b7d ldr r3, [pc, #500] ; (8008310 <Display+0x22a0>)
800811a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800811e: b29b uxth r3, r3
8008120: 4618 mov r0, r3
8008122: 4b7b ldr r3, [pc, #492] ; (8008310 <Display+0x22a0>)
8008124: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8008128: b29b uxth r3, r3
800812a: 005b lsls r3, r3, #1
800812c: 4a78 ldr r2, [pc, #480] ; (8008310 <Display+0x22a0>)
800812e: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
8008132: b292 uxth r2, r2
8008134: 4413 add r3, r2
8008136: 4977 ldr r1, [pc, #476] ; (8008314 <Display+0x22a4>)
8008138: 0102 lsls r2, r0, #4
800813a: 4413 add r3, r2
800813c: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008140: 2303 movs r3, #3
8008142: 2178 movs r1, #120 ; 0x78
8008144: 20dc movs r0, #220 ; 0xdc
8008146: f7fc ff05 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800814a: f005 bc43 b.w 800d9d4 <Display+0x7964>
if(menupos == Val_3)
800814e: 4b73 ldr r3, [pc, #460] ; (800831c <Display+0x22ac>)
8008150: 781b ldrb r3, [r3, #0]
8008152: b2db uxtb r3, r3
8008154: 2b11 cmp r3, #17
8008156: f040 80ac bne.w 80082b2 <Display+0x2242>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800815a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800815e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8008162: f7fc fe31 bl 8004dc8 <LCD_SetColors>
if(focused)
8008166: 4b6e ldr r3, [pc, #440] ; (8008320 <Display+0x22b0>)
8008168: 781b ldrb r3, [r3, #0]
800816a: b2db uxtb r3, r3
800816c: 2b00 cmp r3, #0
800816e: d01d beq.n 80081ac <Display+0x213c>
if(blk)
8008170: 4b6c ldr r3, [pc, #432] ; (8008324 <Display+0x22b4>)
8008172: 681b ldr r3, [r3, #0]
8008174: 2b00 cmp r3, #0
8008176: d032 beq.n 80081de <Display+0x216e>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8008178: 4b65 ldr r3, [pc, #404] ; (8008310 <Display+0x22a0>)
800817a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800817e: b29b uxth r3, r3
8008180: 4618 mov r0, r3
8008182: 4b63 ldr r3, [pc, #396] ; (8008310 <Display+0x22a0>)
8008184: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8008188: b29b uxth r3, r3
800818a: 005b lsls r3, r3, #1
800818c: 4a60 ldr r2, [pc, #384] ; (8008310 <Display+0x22a0>)
800818e: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
8008192: b292 uxth r2, r2
8008194: 4413 add r3, r2
8008196: 495f ldr r1, [pc, #380] ; (8008314 <Display+0x22a4>)
8008198: 0102 lsls r2, r0, #4
800819a: 4413 add r3, r2
800819c: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80081a0: 2303 movs r3, #3
80081a2: 2164 movs r1, #100 ; 0x64
80081a4: 20dc movs r0, #220 ; 0xdc
80081a6: f7fc fed5 bl 8004f54 <BSP_LCD_DisplayStringAt>
80081aa: e018 b.n 80081de <Display+0x216e>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
80081ac: 4b58 ldr r3, [pc, #352] ; (8008310 <Display+0x22a0>)
80081ae: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80081b2: b29b uxth r3, r3
80081b4: 4618 mov r0, r3
80081b6: 4b56 ldr r3, [pc, #344] ; (8008310 <Display+0x22a0>)
80081b8: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
80081bc: b29b uxth r3, r3
80081be: 005b lsls r3, r3, #1
80081c0: 4a53 ldr r2, [pc, #332] ; (8008310 <Display+0x22a0>)
80081c2: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
80081c6: b292 uxth r2, r2
80081c8: 4413 add r3, r2
80081ca: 4952 ldr r1, [pc, #328] ; (8008314 <Display+0x22a4>)
80081cc: 0102 lsls r2, r0, #4
80081ce: 4413 add r3, r2
80081d0: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80081d4: 2303 movs r3, #3
80081d6: 2164 movs r1, #100 ; 0x64
80081d8: 20dc movs r0, #220 ; 0xdc
80081da: f7fc febb bl 8004f54 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
80081de: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80081e2: 484d ldr r0, [pc, #308] ; (8008318 <Display+0x22a8>)
80081e4: f7fc fdf0 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
80081e8: f507 728e add.w r2, r7, #284 ; 0x11c
80081ec: 2303 movs r3, #3
80081ee: 213c movs r1, #60 ; 0x3c
80081f0: 208c movs r0, #140 ; 0x8c
80081f2: f7fc feaf bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
80081f6: f107 02e0 add.w r2, r7, #224 ; 0xe0
80081fa: 2303 movs r3, #3
80081fc: 2150 movs r1, #80 ; 0x50
80081fe: 208c movs r0, #140 ; 0x8c
8008200: f7fc fea8 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8008204: f107 02a4 add.w r2, r7, #164 ; 0xa4
8008208: 2303 movs r3, #3
800820a: 2164 movs r1, #100 ; 0x64
800820c: 208c movs r0, #140 ; 0x8c
800820e: f7fc fea1 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8008212: f107 0268 add.w r2, r7, #104 ; 0x68
8008216: 2303 movs r3, #3
8008218: 2178 movs r1, #120 ; 0x78
800821a: 208c movs r0, #140 ; 0x8c
800821c: f7fc fe9a bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
8008220: 4b3b ldr r3, [pc, #236] ; (8008310 <Display+0x22a0>)
8008222: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008226: b29b uxth r3, r3
8008228: 4618 mov r0, r3
800822a: 4b39 ldr r3, [pc, #228] ; (8008310 <Display+0x22a0>)
800822c: 8a5b ldrh r3, [r3, #18]
800822e: b29b uxth r3, r3
8008230: 005b lsls r3, r3, #1
8008232: 4a37 ldr r2, [pc, #220] ; (8008310 <Display+0x22a0>)
8008234: 8812 ldrh r2, [r2, #0]
8008236: b292 uxth r2, r2
8008238: 4413 add r3, r2
800823a: 4936 ldr r1, [pc, #216] ; (8008314 <Display+0x22a4>)
800823c: 0102 lsls r2, r0, #4
800823e: 4413 add r3, r2
8008240: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008244: 2303 movs r3, #3
8008246: 213c movs r1, #60 ; 0x3c
8008248: 20dc movs r0, #220 ; 0xdc
800824a: f7fc fe83 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
800824e: 4b30 ldr r3, [pc, #192] ; (8008310 <Display+0x22a0>)
8008250: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008254: b29b uxth r3, r3
8008256: 4618 mov r0, r3
8008258: 4b2d ldr r3, [pc, #180] ; (8008310 <Display+0x22a0>)
800825a: 8e5b ldrh r3, [r3, #50] ; 0x32
800825c: b29b uxth r3, r3
800825e: 005b lsls r3, r3, #1
8008260: 4a2b ldr r2, [pc, #172] ; (8008310 <Display+0x22a0>)
8008262: 8c12 ldrh r2, [r2, #32]
8008264: b292 uxth r2, r2
8008266: 4413 add r3, r2
8008268: 492a ldr r1, [pc, #168] ; (8008314 <Display+0x22a4>)
800826a: 0102 lsls r2, r0, #4
800826c: 4413 add r3, r2
800826e: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008272: 2303 movs r3, #3
8008274: 2150 movs r1, #80 ; 0x50
8008276: 20dc movs r0, #220 ; 0xdc
8008278: f7fc fe6c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
800827c: 4b24 ldr r3, [pc, #144] ; (8008310 <Display+0x22a0>)
800827e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
8008282: b29b uxth r3, r3
8008284: 4618 mov r0, r3
8008286: 4b22 ldr r3, [pc, #136] ; (8008310 <Display+0x22a0>)
8008288: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
800828c: b29b uxth r3, r3
800828e: 005b lsls r3, r3, #1
8008290: 4a1f ldr r2, [pc, #124] ; (8008310 <Display+0x22a0>)
8008292: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
8008296: b292 uxth r2, r2
8008298: 4413 add r3, r2
800829a: 491e ldr r1, [pc, #120] ; (8008314 <Display+0x22a4>)
800829c: 0102 lsls r2, r0, #4
800829e: 4413 add r3, r2
80082a0: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80082a4: 2303 movs r3, #3
80082a6: 2178 movs r1, #120 ; 0x78
80082a8: 20dc movs r0, #220 ; 0xdc
80082aa: f7fc fe53 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
80082ae: f005 bb91 b.w 800d9d4 <Display+0x7964>
if(menupos == Val_4)
80082b2: 4b1a ldr r3, [pc, #104] ; (800831c <Display+0x22ac>)
80082b4: 781b ldrb r3, [r3, #0]
80082b6: b2db uxtb r3, r3
80082b8: 2b19 cmp r3, #25
80082ba: f040 80b8 bne.w 800842e <Display+0x23be>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
80082be: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80082c2: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
80082c6: f7fc fd7f bl 8004dc8 <LCD_SetColors>
if(focused)
80082ca: 4b15 ldr r3, [pc, #84] ; (8008320 <Display+0x22b0>)
80082cc: 781b ldrb r3, [r3, #0]
80082ce: b2db uxtb r3, r3
80082d0: 2b00 cmp r3, #0
80082d2: d029 beq.n 8008328 <Display+0x22b8>
if(blk)
80082d4: 4b13 ldr r3, [pc, #76] ; (8008324 <Display+0x22b4>)
80082d6: 681b ldr r3, [r3, #0]
80082d8: 2b00 cmp r3, #0
80082da: d03e beq.n 800835a <Display+0x22ea>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
80082dc: 4b0c ldr r3, [pc, #48] ; (8008310 <Display+0x22a0>)
80082de: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80082e2: b29b uxth r3, r3
80082e4: 4618 mov r0, r3
80082e6: 4b0a ldr r3, [pc, #40] ; (8008310 <Display+0x22a0>)
80082e8: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
80082ec: b29b uxth r3, r3
80082ee: 005b lsls r3, r3, #1
80082f0: 4a07 ldr r2, [pc, #28] ; (8008310 <Display+0x22a0>)
80082f2: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
80082f6: b292 uxth r2, r2
80082f8: 4413 add r3, r2
80082fa: 4906 ldr r1, [pc, #24] ; (8008314 <Display+0x22a4>)
80082fc: 0102 lsls r2, r0, #4
80082fe: 4413 add r3, r2
8008300: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008304: 2303 movs r3, #3
8008306: 2178 movs r1, #120 ; 0x78
8008308: 20dc movs r0, #220 ; 0xdc
800830a: f7fc fe23 bl 8004f54 <BSP_LCD_DisplayStringAt>
800830e: e024 b.n 800835a <Display+0x22ea>
8008310: 2006bca8 .word 0x2006bca8
8008314: 200200bc .word 0x200200bc
8008318: ffd8aa57 .word 0xffd8aa57
800831c: 20020010 .word 0x20020010
8008320: 200209e4 .word 0x200209e4
8008324: 2006ba78 .word 0x2006ba78
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
8008328: 4bb0 ldr r3, [pc, #704] ; (80085ec <Display+0x257c>)
800832a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800832e: b29b uxth r3, r3
8008330: 4618 mov r0, r3
8008332: 4bae ldr r3, [pc, #696] ; (80085ec <Display+0x257c>)
8008334: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
8008338: b29b uxth r3, r3
800833a: 005b lsls r3, r3, #1
800833c: 4aab ldr r2, [pc, #684] ; (80085ec <Display+0x257c>)
800833e: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
8008342: b292 uxth r2, r2
8008344: 4413 add r3, r2
8008346: 49aa ldr r1, [pc, #680] ; (80085f0 <Display+0x2580>)
8008348: 0102 lsls r2, r0, #4
800834a: 4413 add r3, r2
800834c: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008350: 2303 movs r3, #3
8008352: 2178 movs r1, #120 ; 0x78
8008354: 20dc movs r0, #220 ; 0xdc
8008356: f7fc fdfd bl 8004f54 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800835a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800835e: 48a5 ldr r0, [pc, #660] ; (80085f4 <Display+0x2584>)
8008360: f7fc fd32 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
8008364: f507 728e add.w r2, r7, #284 ; 0x11c
8008368: 2303 movs r3, #3
800836a: 213c movs r1, #60 ; 0x3c
800836c: 208c movs r0, #140 ; 0x8c
800836e: f7fc fdf1 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
8008372: f107 02e0 add.w r2, r7, #224 ; 0xe0
8008376: 2303 movs r3, #3
8008378: 2150 movs r1, #80 ; 0x50
800837a: 208c movs r0, #140 ; 0x8c
800837c: f7fc fdea bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8008380: f107 02a4 add.w r2, r7, #164 ; 0xa4
8008384: 2303 movs r3, #3
8008386: 2164 movs r1, #100 ; 0x64
8008388: 208c movs r0, #140 ; 0x8c
800838a: f7fc fde3 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
800838e: f107 0268 add.w r2, r7, #104 ; 0x68
8008392: 2303 movs r3, #3
8008394: 2178 movs r1, #120 ; 0x78
8008396: 208c movs r0, #140 ; 0x8c
8008398: f7fc fddc bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
800839c: 4b93 ldr r3, [pc, #588] ; (80085ec <Display+0x257c>)
800839e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80083a2: b29b uxth r3, r3
80083a4: 4618 mov r0, r3
80083a6: 4b91 ldr r3, [pc, #580] ; (80085ec <Display+0x257c>)
80083a8: 8a5b ldrh r3, [r3, #18]
80083aa: b29b uxth r3, r3
80083ac: 005b lsls r3, r3, #1
80083ae: 4a8f ldr r2, [pc, #572] ; (80085ec <Display+0x257c>)
80083b0: 8812 ldrh r2, [r2, #0]
80083b2: b292 uxth r2, r2
80083b4: 4413 add r3, r2
80083b6: 498e ldr r1, [pc, #568] ; (80085f0 <Display+0x2580>)
80083b8: 0102 lsls r2, r0, #4
80083ba: 4413 add r3, r2
80083bc: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80083c0: 2303 movs r3, #3
80083c2: 213c movs r1, #60 ; 0x3c
80083c4: 20dc movs r0, #220 ; 0xdc
80083c6: f7fc fdc5 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
80083ca: 4b88 ldr r3, [pc, #544] ; (80085ec <Display+0x257c>)
80083cc: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80083d0: b29b uxth r3, r3
80083d2: 4618 mov r0, r3
80083d4: 4b85 ldr r3, [pc, #532] ; (80085ec <Display+0x257c>)
80083d6: 8e5b ldrh r3, [r3, #50] ; 0x32
80083d8: b29b uxth r3, r3
80083da: 005b lsls r3, r3, #1
80083dc: 4a83 ldr r2, [pc, #524] ; (80085ec <Display+0x257c>)
80083de: 8c12 ldrh r2, [r2, #32]
80083e0: b292 uxth r2, r2
80083e2: 4413 add r3, r2
80083e4: 4982 ldr r1, [pc, #520] ; (80085f0 <Display+0x2580>)
80083e6: 0102 lsls r2, r0, #4
80083e8: 4413 add r3, r2
80083ea: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80083ee: 2303 movs r3, #3
80083f0: 2150 movs r1, #80 ; 0x50
80083f2: 20dc movs r0, #220 ; 0xdc
80083f4: f7fc fdae bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
80083f8: 4b7c ldr r3, [pc, #496] ; (80085ec <Display+0x257c>)
80083fa: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80083fe: b29b uxth r3, r3
8008400: 4618 mov r0, r3
8008402: 4b7a ldr r3, [pc, #488] ; (80085ec <Display+0x257c>)
8008404: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8008408: b29b uxth r3, r3
800840a: 005b lsls r3, r3, #1
800840c: 4a77 ldr r2, [pc, #476] ; (80085ec <Display+0x257c>)
800840e: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
8008412: b292 uxth r2, r2
8008414: 4413 add r3, r2
8008416: 4976 ldr r1, [pc, #472] ; (80085f0 <Display+0x2580>)
8008418: 0102 lsls r2, r0, #4
800841a: 4413 add r3, r2
800841c: f851 2023 ldr.w r2, [r1, r3, lsl #2]
8008420: 2303 movs r3, #3
8008422: 2164 movs r1, #100 ; 0x64
8008424: 20dc movs r0, #220 ; 0xdc
8008426: f7fc fd95 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800842a: f005 bad3 b.w 800d9d4 <Display+0x7964>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800842e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008432: 4870 ldr r0, [pc, #448] ; (80085f4 <Display+0x2584>)
8008434: f7fc fcc8 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(220, 60, (char *) pVAL[pardata.LANG][pardata.amplif[Ch1].VAL * 2 + pardata.amplif[Ch1].IIN], LEFT_MODE);
8008438: 4b6c ldr r3, [pc, #432] ; (80085ec <Display+0x257c>)
800843a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800843e: b29b uxth r3, r3
8008440: 4618 mov r0, r3
8008442: 4b6a ldr r3, [pc, #424] ; (80085ec <Display+0x257c>)
8008444: 8a5b ldrh r3, [r3, #18]
8008446: b29b uxth r3, r3
8008448: 005b lsls r3, r3, #1
800844a: 4a68 ldr r2, [pc, #416] ; (80085ec <Display+0x257c>)
800844c: 8812 ldrh r2, [r2, #0]
800844e: b292 uxth r2, r2
8008450: 4413 add r3, r2
8008452: 4967 ldr r1, [pc, #412] ; (80085f0 <Display+0x2580>)
8008454: 0102 lsls r2, r0, #4
8008456: 4413 add r3, r2
8008458: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800845c: 2303 movs r3, #3
800845e: 213c movs r1, #60 ; 0x3c
8008460: 20dc movs r0, #220 ; 0xdc
8008462: f7fc fd77 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 80, (char *) pVAL[pardata.LANG][pardata.amplif[Ch2].VAL * 2 + pardata.amplif[Ch2].IIN], LEFT_MODE);
8008466: 4b61 ldr r3, [pc, #388] ; (80085ec <Display+0x257c>)
8008468: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800846c: b29b uxth r3, r3
800846e: 4618 mov r0, r3
8008470: 4b5e ldr r3, [pc, #376] ; (80085ec <Display+0x257c>)
8008472: 8e5b ldrh r3, [r3, #50] ; 0x32
8008474: b29b uxth r3, r3
8008476: 005b lsls r3, r3, #1
8008478: 4a5c ldr r2, [pc, #368] ; (80085ec <Display+0x257c>)
800847a: 8c12 ldrh r2, [r2, #32]
800847c: b292 uxth r2, r2
800847e: 4413 add r3, r2
8008480: 495b ldr r1, [pc, #364] ; (80085f0 <Display+0x2580>)
8008482: 0102 lsls r2, r0, #4
8008484: 4413 add r3, r2
8008486: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800848a: 2303 movs r3, #3
800848c: 2150 movs r1, #80 ; 0x50
800848e: 20dc movs r0, #220 ; 0xdc
8008490: f7fc fd60 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 100, (char *) pVAL[pardata.LANG][pardata.amplif[Ch3].VAL * 2 + pardata.amplif[Ch3].IIN], LEFT_MODE);
8008494: 4b55 ldr r3, [pc, #340] ; (80085ec <Display+0x257c>)
8008496: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800849a: b29b uxth r3, r3
800849c: 4618 mov r0, r3
800849e: 4b53 ldr r3, [pc, #332] ; (80085ec <Display+0x257c>)
80084a0: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
80084a4: b29b uxth r3, r3
80084a6: 005b lsls r3, r3, #1
80084a8: 4a50 ldr r2, [pc, #320] ; (80085ec <Display+0x257c>)
80084aa: f8b2 2040 ldrh.w r2, [r2, #64] ; 0x40
80084ae: b292 uxth r2, r2
80084b0: 4413 add r3, r2
80084b2: 494f ldr r1, [pc, #316] ; (80085f0 <Display+0x2580>)
80084b4: 0102 lsls r2, r0, #4
80084b6: 4413 add r3, r2
80084b8: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80084bc: 2303 movs r3, #3
80084be: 2164 movs r1, #100 ; 0x64
80084c0: 20dc movs r0, #220 ; 0xdc
80084c2: f7fc fd47 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(220, 120, (char *) pVAL[pardata.LANG][pardata.amplif[Ch4].VAL * 2 + pardata.amplif[Ch4].IIN], LEFT_MODE);
80084c6: 4b49 ldr r3, [pc, #292] ; (80085ec <Display+0x257c>)
80084c8: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
80084cc: b29b uxth r3, r3
80084ce: 4618 mov r0, r3
80084d0: 4b46 ldr r3, [pc, #280] ; (80085ec <Display+0x257c>)
80084d2: f8b3 3072 ldrh.w r3, [r3, #114] ; 0x72
80084d6: b29b uxth r3, r3
80084d8: 005b lsls r3, r3, #1
80084da: 4a44 ldr r2, [pc, #272] ; (80085ec <Display+0x257c>)
80084dc: f8b2 2060 ldrh.w r2, [r2, #96] ; 0x60
80084e0: b292 uxth r2, r2
80084e2: 4413 add r3, r2
80084e4: 4942 ldr r1, [pc, #264] ; (80085f0 <Display+0x2580>)
80084e6: 0102 lsls r2, r0, #4
80084e8: 4413 add r3, r2
80084ea: f851 2023 ldr.w r2, [r1, r3, lsl #2]
80084ee: 2303 movs r3, #3
80084f0: 2178 movs r1, #120 ; 0x78
80084f2: 20dc movs r0, #220 ; 0xdc
80084f4: f7fc fd2e bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos >= Kikdt_1 && menupos <= Kpt_1)
80084f8: 4b3f ldr r3, [pc, #252] ; (80085f8 <Display+0x2588>)
80084fa: 781b ldrb r3, [r3, #0]
80084fc: b2db uxtb r3, r3
80084fe: 2b01 cmp r3, #1
8008500: f241 8152 bls.w 80097a8 <Display+0x3738>
8008504: 4b3c ldr r3, [pc, #240] ; (80085f8 <Display+0x2588>)
8008506: 781b ldrb r3, [r3, #0]
8008508: b2db uxtb r3, r3
800850a: 2b07 cmp r3, #7
800850c: f201 814c bhi.w 80097a8 <Display+0x3738>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
8008510: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008514: 4837 ldr r0, [pc, #220] ; (80085f4 <Display+0x2584>)
8008516: f7fc fc57 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
800851a: f107 02e0 add.w r2, r7, #224 ; 0xe0
800851e: 2303 movs r3, #3
8008520: 2150 movs r1, #80 ; 0x50
8008522: 208c movs r0, #140 ; 0x8c
8008524: f7fc fd16 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
8008528: f107 02a4 add.w r2, r7, #164 ; 0xa4
800852c: 2303 movs r3, #3
800852e: 2164 movs r1, #100 ; 0x64
8008530: 208c movs r0, #140 ; 0x8c
8008532: f7fc fd0f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
8008536: f107 0268 add.w r2, r7, #104 ; 0x68
800853a: 2303 movs r3, #3
800853c: 2178 movs r1, #120 ; 0x78
800853e: 208c movs r0, #140 ; 0x8c
8008540: f7fc fd08 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008544: 4b2c ldr r3, [pc, #176] ; (80085f8 <Display+0x2588>)
8008546: 781b ldrb r3, [r3, #0]
8008548: b2db uxtb r3, r3
800854a: 2b02 cmp r3, #2
800854c: f040 814f bne.w 80087ee <Display+0x277e>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8008550: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008554: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8008558: f7fc fc36 bl 8004dc8 <LCD_SetColors>
if(blk)
800855c: 4b27 ldr r3, [pc, #156] ; (80085fc <Display+0x258c>)
800855e: 681b ldr r3, [r3, #0]
8008560: 2b00 cmp r3, #0
8008562: d00b beq.n 800857c <Display+0x250c>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008564: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008568: b2db uxtb r3, r3
800856a: 461a mov r2, r3
800856c: 4b24 ldr r3, [pc, #144] ; (8008600 <Display+0x2590>)
800856e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008572: 2303 movs r3, #3
8008574: 213c movs r1, #60 ; 0x3c
8008576: 208c movs r0, #140 ; 0x8c
8008578: f7fc fcec bl 8004f54 <BSP_LCD_DisplayStringAt>
if(!ipt1)
800857c: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008580: b2db uxtb r3, r3
8008582: 2b00 cmp r3, #0
8008584: d13e bne.n 8008604 <Display+0x2594>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008586: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
800858a: b2db uxtb r3, r3
800858c: 461a mov r2, r3
800858e: 4b1c ldr r3, [pc, #112] ; (8008600 <Display+0x2590>)
8008590: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008594: 2303 movs r3, #3
8008596: 213c movs r1, #60 ; 0x3c
8008598: 2093 movs r0, #147 ; 0x93
800859a: f7fc fcdb bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
800859e: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80085a2: b2db uxtb r3, r3
80085a4: 461a mov r2, r3
80085a6: 4b16 ldr r3, [pc, #88] ; (8008600 <Display+0x2590>)
80085a8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80085ac: 2303 movs r3, #3
80085ae: 213c movs r1, #60 ; 0x3c
80085b0: 209a movs r0, #154 ; 0x9a
80085b2: f7fc fccf bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
80085b6: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80085ba: b2db uxtb r3, r3
80085bc: 461a mov r2, r3
80085be: 4b10 ldr r3, [pc, #64] ; (8008600 <Display+0x2590>)
80085c0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80085c4: 2303 movs r3, #3
80085c6: 213c movs r1, #60 ; 0x3c
80085c8: 20a1 movs r0, #161 ; 0xa1
80085ca: f7fc fcc3 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE);
80085ce: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80085d2: b2db uxtb r3, r3
80085d4: 461a mov r2, r3
80085d6: 4b0a ldr r3, [pc, #40] ; (8008600 <Display+0x2590>)
80085d8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80085dc: 2303 movs r3, #3
80085de: 213c movs r1, #60 ; 0x3c
80085e0: 20a8 movs r0, #168 ; 0xa8
80085e2: f7fc fcb7 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80085e6: f004 bce2 b.w 800cfae <Display+0x6f3e>
80085ea: bf00 nop
80085ec: 2006bca8 .word 0x2006bca8
80085f0: 200200bc .word 0x200200bc
80085f4: ffd8aa57 .word 0xffd8aa57
80085f8: 20020010 .word 0x20020010
80085fc: 2006ba78 .word 0x2006ba78
8008600: 2002096c .word 0x2002096c
if(ipt1 == 1)
8008604: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008608: b2db uxtb r3, r3
800860a: 2b01 cmp r3, #1
800860c: d137 bne.n 800867e <Display+0x260e>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
800860e: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008612: b2db uxtb r3, r3
8008614: 461a mov r2, r3
8008616: 4bc6 ldr r3, [pc, #792] ; (8008930 <Display+0x28c0>)
8008618: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800861c: 2303 movs r3, #3
800861e: 213c movs r1, #60 ; 0x3c
8008620: 2093 movs r0, #147 ; 0x93
8008622: f7fc fc97 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008626: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
800862a: b2db uxtb r3, r3
800862c: 461a mov r2, r3
800862e: 4bc0 ldr r3, [pc, #768] ; (8008930 <Display+0x28c0>)
8008630: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008634: 2303 movs r3, #3
8008636: 213c movs r1, #60 ; 0x3c
8008638: 209a movs r0, #154 ; 0x9a
800863a: f7fc fc8b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
800863e: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008642: b2db uxtb r3, r3
8008644: 461a mov r2, r3
8008646: 4bba ldr r3, [pc, #744] ; (8008930 <Display+0x28c0>)
8008648: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800864c: 2303 movs r3, #3
800864e: 213c movs r1, #60 ; 0x3c
8008650: 20a1 movs r0, #161 ; 0xa1
8008652: f7fc fc7f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE);
8008656: 2303 movs r3, #3
8008658: 4ab6 ldr r2, [pc, #728] ; (8008934 <Display+0x28c4>)
800865a: 213c movs r1, #60 ; 0x3c
800865c: 20a8 movs r0, #168 ; 0xa8
800865e: f7fc fc79 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008662: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008666: b2db uxtb r3, r3
8008668: 461a mov r2, r3
800866a: 4bb1 ldr r3, [pc, #708] ; (8008930 <Display+0x28c0>)
800866c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008670: 2303 movs r3, #3
8008672: 213c movs r1, #60 ; 0x3c
8008674: 20af movs r0, #175 ; 0xaf
8008676: f7fc fc6d bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
800867a: f004 bc98 b.w 800cfae <Display+0x6f3e>
if(ipt1 == 2)
800867e: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008682: b2db uxtb r3, r3
8008684: 2b02 cmp r3, #2
8008686: d137 bne.n 80086f8 <Display+0x2688>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008688: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
800868c: b2db uxtb r3, r3
800868e: 461a mov r2, r3
8008690: 4ba7 ldr r3, [pc, #668] ; (8008930 <Display+0x28c0>)
8008692: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008696: 2303 movs r3, #3
8008698: 213c movs r1, #60 ; 0x3c
800869a: 2093 movs r0, #147 ; 0x93
800869c: f7fc fc5a bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
80086a0: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80086a4: b2db uxtb r3, r3
80086a6: 461a mov r2, r3
80086a8: 4ba1 ldr r3, [pc, #644] ; (8008930 <Display+0x28c0>)
80086aa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80086ae: 2303 movs r3, #3
80086b0: 213c movs r1, #60 ; 0x3c
80086b2: 209a movs r0, #154 ; 0x9a
80086b4: f7fc fc4e bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE);
80086b8: 2303 movs r3, #3
80086ba: 4a9e ldr r2, [pc, #632] ; (8008934 <Display+0x28c4>)
80086bc: 213c movs r1, #60 ; 0x3c
80086be: 20a1 movs r0, #161 ; 0xa1
80086c0: f7fc fc48 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
80086c4: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80086c8: b2db uxtb r3, r3
80086ca: 461a mov r2, r3
80086cc: 4b98 ldr r3, [pc, #608] ; (8008930 <Display+0x28c0>)
80086ce: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80086d2: 2303 movs r3, #3
80086d4: 213c movs r1, #60 ; 0x3c
80086d6: 20a8 movs r0, #168 ; 0xa8
80086d8: f7fc fc3c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
80086dc: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80086e0: b2db uxtb r3, r3
80086e2: 461a mov r2, r3
80086e4: 4b92 ldr r3, [pc, #584] ; (8008930 <Display+0x28c0>)
80086e6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80086ea: 2303 movs r3, #3
80086ec: 213c movs r1, #60 ; 0x3c
80086ee: 20af movs r0, #175 ; 0xaf
80086f0: f7fc fc30 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80086f4: f004 bc5b b.w 800cfae <Display+0x6f3e>
if(ipt1 == 3)
80086f8: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
80086fc: b2db uxtb r3, r3
80086fe: 2b03 cmp r3, #3
8008700: d137 bne.n 8008772 <Display+0x2702>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008702: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008706: b2db uxtb r3, r3
8008708: 461a mov r2, r3
800870a: 4b89 ldr r3, [pc, #548] ; (8008930 <Display+0x28c0>)
800870c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008710: 2303 movs r3, #3
8008712: 213c movs r1, #60 ; 0x3c
8008714: 2093 movs r0, #147 ; 0x93
8008716: f7fc fc1d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE);
800871a: 2303 movs r3, #3
800871c: 4a85 ldr r2, [pc, #532] ; (8008934 <Display+0x28c4>)
800871e: 213c movs r1, #60 ; 0x3c
8008720: 209a movs r0, #154 ; 0x9a
8008722: f7fc fc17 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008726: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
800872a: b2db uxtb r3, r3
800872c: 461a mov r2, r3
800872e: 4b80 ldr r3, [pc, #512] ; (8008930 <Display+0x28c0>)
8008730: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008734: 2303 movs r3, #3
8008736: 213c movs r1, #60 ; 0x3c
8008738: 20a1 movs r0, #161 ; 0xa1
800873a: f7fc fc0b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
800873e: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008742: b2db uxtb r3, r3
8008744: 461a mov r2, r3
8008746: 4b7a ldr r3, [pc, #488] ; (8008930 <Display+0x28c0>)
8008748: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800874c: 2303 movs r3, #3
800874e: 213c movs r1, #60 ; 0x3c
8008750: 20a8 movs r0, #168 ; 0xa8
8008752: f7fc fbff bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008756: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
800875a: b2db uxtb r3, r3
800875c: 461a mov r2, r3
800875e: 4b74 ldr r3, [pc, #464] ; (8008930 <Display+0x28c0>)
8008760: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008764: 2303 movs r3, #3
8008766: 213c movs r1, #60 ; 0x3c
8008768: 20af movs r0, #175 ; 0xaf
800876a: f7fc fbf3 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
800876e: f004 bc1e b.w 800cfae <Display+0x6f3e>
if(ipt1 == 4)
8008772: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008776: b2db uxtb r3, r3
8008778: 2b04 cmp r3, #4
800877a: f044 8418 bne.w 800cfae <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE);
800877e: 2303 movs r3, #3
8008780: 4a6c ldr r2, [pc, #432] ; (8008934 <Display+0x28c4>)
8008782: 213c movs r1, #60 ; 0x3c
8008784: 2093 movs r0, #147 ; 0x93
8008786: f7fc fbe5 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE);
800878a: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
800878e: b2db uxtb r3, r3
8008790: 461a mov r2, r3
8008792: 4b67 ldr r3, [pc, #412] ; (8008930 <Display+0x28c0>)
8008794: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008798: 2303 movs r3, #3
800879a: 213c movs r1, #60 ; 0x3c
800879c: 209a movs r0, #154 ; 0x9a
800879e: f7fc fbd9 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
80087a2: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80087a6: b2db uxtb r3, r3
80087a8: 461a mov r2, r3
80087aa: 4b61 ldr r3, [pc, #388] ; (8008930 <Display+0x28c0>)
80087ac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80087b0: 2303 movs r3, #3
80087b2: 213c movs r1, #60 ; 0x3c
80087b4: 20a1 movs r0, #161 ; 0xa1
80087b6: f7fc fbcd bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
80087ba: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80087be: b2db uxtb r3, r3
80087c0: 461a mov r2, r3
80087c2: 4b5b ldr r3, [pc, #364] ; (8008930 <Display+0x28c0>)
80087c4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80087c8: 2303 movs r3, #3
80087ca: 213c movs r1, #60 ; 0x3c
80087cc: 20a8 movs r0, #168 ; 0xa8
80087ce: f7fc fbc1 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
80087d2: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80087d6: b2db uxtb r3, r3
80087d8: 461a mov r2, r3
80087da: 4b55 ldr r3, [pc, #340] ; (8008930 <Display+0x28c0>)
80087dc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80087e0: 2303 movs r3, #3
80087e2: 213c movs r1, #60 ; 0x3c
80087e4: 20af movs r0, #175 ; 0xaf
80087e6: f7fc fbb5 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80087ea: f004 bbe0 b.w 800cfae <Display+0x6f3e>
if(menupos == Kikt_1)
80087ee: 4b52 ldr r3, [pc, #328] ; (8008938 <Display+0x28c8>)
80087f0: 781b ldrb r3, [r3, #0]
80087f2: b2db uxtb r3, r3
80087f4: 2b03 cmp r3, #3
80087f6: f040 818b bne.w 8008b10 <Display+0x2aa0>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
80087fa: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80087fe: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8008802: f7fc fae1 bl 8004dc8 <LCD_SetColors>
if(!ipt1)
8008806: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
800880a: b2db uxtb r3, r3
800880c: 2b00 cmp r3, #0
800880e: d141 bne.n 8008894 <Display+0x2824>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008810: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008814: b2db uxtb r3, r3
8008816: 461a mov r2, r3
8008818: 4b45 ldr r3, [pc, #276] ; (8008930 <Display+0x28c0>)
800881a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800881e: 2303 movs r3, #3
8008820: 213c movs r1, #60 ; 0x3c
8008822: 208c movs r0, #140 ; 0x8c
8008824: f7fc fb96 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8008828: 4b44 ldr r3, [pc, #272] ; (800893c <Display+0x28cc>)
800882a: 681b ldr r3, [r3, #0]
800882c: 2b00 cmp r3, #0
800882e: d00b beq.n 8008848 <Display+0x27d8>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008830: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008834: b2db uxtb r3, r3
8008836: 461a mov r2, r3
8008838: 4b3d ldr r3, [pc, #244] ; (8008930 <Display+0x28c0>)
800883a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800883e: 2303 movs r3, #3
8008840: 213c movs r1, #60 ; 0x3c
8008842: 2093 movs r0, #147 ; 0x93
8008844: f7fc fb86 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008848: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
800884c: b2db uxtb r3, r3
800884e: 461a mov r2, r3
8008850: 4b37 ldr r3, [pc, #220] ; (8008930 <Display+0x28c0>)
8008852: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008856: 2303 movs r3, #3
8008858: 213c movs r1, #60 ; 0x3c
800885a: 209a movs r0, #154 ; 0x9a
800885c: f7fc fb7a bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008860: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008864: b2db uxtb r3, r3
8008866: 461a mov r2, r3
8008868: 4b31 ldr r3, [pc, #196] ; (8008930 <Display+0x28c0>)
800886a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800886e: 2303 movs r3, #3
8008870: 213c movs r1, #60 ; 0x3c
8008872: 20a1 movs r0, #161 ; 0xa1
8008874: f7fc fb6e bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008878: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
800887c: b2db uxtb r3, r3
800887e: 461a mov r2, r3
8008880: 4b2b ldr r3, [pc, #172] ; (8008930 <Display+0x28c0>)
8008882: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008886: 2303 movs r3, #3
8008888: 213c movs r1, #60 ; 0x3c
800888a: 20a8 movs r0, #168 ; 0xa8
800888c: f7fc fb62 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008890: f004 bb8d b.w 800cfae <Display+0x6f3e>
if(ipt1 == 1)
8008894: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008898: b2db uxtb r3, r3
800889a: 2b01 cmp r3, #1
800889c: d150 bne.n 8008940 <Display+0x28d0>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
800889e: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
80088a2: b2db uxtb r3, r3
80088a4: 461a mov r2, r3
80088a6: 4b22 ldr r3, [pc, #136] ; (8008930 <Display+0x28c0>)
80088a8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80088ac: 2303 movs r3, #3
80088ae: 213c movs r1, #60 ; 0x3c
80088b0: 208c movs r0, #140 ; 0x8c
80088b2: f7fc fb4f bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
80088b6: 4b21 ldr r3, [pc, #132] ; (800893c <Display+0x28cc>)
80088b8: 681b ldr r3, [r3, #0]
80088ba: 2b00 cmp r3, #0
80088bc: d00b beq.n 80088d6 <Display+0x2866>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
80088be: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
80088c2: b2db uxtb r3, r3
80088c4: 461a mov r2, r3
80088c6: 4b1a ldr r3, [pc, #104] ; (8008930 <Display+0x28c0>)
80088c8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80088cc: 2303 movs r3, #3
80088ce: 213c movs r1, #60 ; 0x3c
80088d0: 2093 movs r0, #147 ; 0x93
80088d2: f7fc fb3f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
80088d6: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80088da: b2db uxtb r3, r3
80088dc: 461a mov r2, r3
80088de: 4b14 ldr r3, [pc, #80] ; (8008930 <Display+0x28c0>)
80088e0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80088e4: 2303 movs r3, #3
80088e6: 213c movs r1, #60 ; 0x3c
80088e8: 209a movs r0, #154 ; 0x9a
80088ea: f7fc fb33 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
80088ee: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80088f2: b2db uxtb r3, r3
80088f4: 461a mov r2, r3
80088f6: 4b0e ldr r3, [pc, #56] ; (8008930 <Display+0x28c0>)
80088f8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80088fc: 2303 movs r3, #3
80088fe: 213c movs r1, #60 ; 0x3c
8008900: 20a1 movs r0, #161 ; 0xa1
8008902: f7fc fb27 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE);
8008906: 2303 movs r3, #3
8008908: 4a0a ldr r2, [pc, #40] ; (8008934 <Display+0x28c4>)
800890a: 213c movs r1, #60 ; 0x3c
800890c: 20a8 movs r0, #168 ; 0xa8
800890e: f7fc fb21 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008912: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008916: b2db uxtb r3, r3
8008918: 461a mov r2, r3
800891a: 4b05 ldr r3, [pc, #20] ; (8008930 <Display+0x28c0>)
800891c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008920: 2303 movs r3, #3
8008922: 213c movs r1, #60 ; 0x3c
8008924: 20af movs r0, #175 ; 0xaf
8008926: f7fc fb15 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
800892a: f004 bb40 b.w 800cfae <Display+0x6f3e>
800892e: bf00 nop
8008930: 2002096c .word 0x2002096c
8008934: 080181c8 .word 0x080181c8
8008938: 20020010 .word 0x20020010
800893c: 2006ba78 .word 0x2006ba78
if(ipt1 == 2)
8008940: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008944: b2db uxtb r3, r3
8008946: 2b02 cmp r3, #2
8008948: d147 bne.n 80089da <Display+0x296a>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
800894a: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
800894e: b2db uxtb r3, r3
8008950: 461a mov r2, r3
8008952: 4bbf ldr r3, [pc, #764] ; (8008c50 <Display+0x2be0>)
8008954: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008958: 2303 movs r3, #3
800895a: 213c movs r1, #60 ; 0x3c
800895c: 208c movs r0, #140 ; 0x8c
800895e: f7fc faf9 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8008962: 4bbc ldr r3, [pc, #752] ; (8008c54 <Display+0x2be4>)
8008964: 681b ldr r3, [r3, #0]
8008966: 2b00 cmp r3, #0
8008968: d00b beq.n 8008982 <Display+0x2912>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
800896a: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
800896e: b2db uxtb r3, r3
8008970: 461a mov r2, r3
8008972: 4bb7 ldr r3, [pc, #732] ; (8008c50 <Display+0x2be0>)
8008974: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008978: 2303 movs r3, #3
800897a: 213c movs r1, #60 ; 0x3c
800897c: 2093 movs r0, #147 ; 0x93
800897e: f7fc fae9 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008982: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008986: b2db uxtb r3, r3
8008988: 461a mov r2, r3
800898a: 4bb1 ldr r3, [pc, #708] ; (8008c50 <Display+0x2be0>)
800898c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008990: 2303 movs r3, #3
8008992: 213c movs r1, #60 ; 0x3c
8008994: 209a movs r0, #154 ; 0x9a
8008996: f7fc fadd bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE);
800899a: 2303 movs r3, #3
800899c: 4aae ldr r2, [pc, #696] ; (8008c58 <Display+0x2be8>)
800899e: 213c movs r1, #60 ; 0x3c
80089a0: 20a1 movs r0, #161 ; 0xa1
80089a2: f7fc fad7 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
80089a6: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80089aa: b2db uxtb r3, r3
80089ac: 461a mov r2, r3
80089ae: 4ba8 ldr r3, [pc, #672] ; (8008c50 <Display+0x2be0>)
80089b0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80089b4: 2303 movs r3, #3
80089b6: 213c movs r1, #60 ; 0x3c
80089b8: 20a8 movs r0, #168 ; 0xa8
80089ba: f7fc facb bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
80089be: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80089c2: b2db uxtb r3, r3
80089c4: 461a mov r2, r3
80089c6: 4ba2 ldr r3, [pc, #648] ; (8008c50 <Display+0x2be0>)
80089c8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80089cc: 2303 movs r3, #3
80089ce: 213c movs r1, #60 ; 0x3c
80089d0: 20af movs r0, #175 ; 0xaf
80089d2: f7fc fabf bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80089d6: f004 baea b.w 800cfae <Display+0x6f3e>
if(ipt1 == 3)
80089da: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
80089de: b2db uxtb r3, r3
80089e0: 2b03 cmp r3, #3
80089e2: d147 bne.n 8008a74 <Display+0x2a04>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
80089e4: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
80089e8: b2db uxtb r3, r3
80089ea: 461a mov r2, r3
80089ec: 4b98 ldr r3, [pc, #608] ; (8008c50 <Display+0x2be0>)
80089ee: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80089f2: 2303 movs r3, #3
80089f4: 213c movs r1, #60 ; 0x3c
80089f6: 208c movs r0, #140 ; 0x8c
80089f8: f7fc faac bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
80089fc: 4b95 ldr r3, [pc, #596] ; (8008c54 <Display+0x2be4>)
80089fe: 681b ldr r3, [r3, #0]
8008a00: 2b00 cmp r3, #0
8008a02: d00b beq.n 8008a1c <Display+0x29ac>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008a04: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008a08: b2db uxtb r3, r3
8008a0a: 461a mov r2, r3
8008a0c: 4b90 ldr r3, [pc, #576] ; (8008c50 <Display+0x2be0>)
8008a0e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008a12: 2303 movs r3, #3
8008a14: 213c movs r1, #60 ; 0x3c
8008a16: 2093 movs r0, #147 ; 0x93
8008a18: f7fc fa9c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE);
8008a1c: 2303 movs r3, #3
8008a1e: 4a8e ldr r2, [pc, #568] ; (8008c58 <Display+0x2be8>)
8008a20: 213c movs r1, #60 ; 0x3c
8008a22: 209a movs r0, #154 ; 0x9a
8008a24: f7fc fa96 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008a28: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008a2c: b2db uxtb r3, r3
8008a2e: 461a mov r2, r3
8008a30: 4b87 ldr r3, [pc, #540] ; (8008c50 <Display+0x2be0>)
8008a32: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008a36: 2303 movs r3, #3
8008a38: 213c movs r1, #60 ; 0x3c
8008a3a: 20a1 movs r0, #161 ; 0xa1
8008a3c: f7fc fa8a bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008a40: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008a44: b2db uxtb r3, r3
8008a46: 461a mov r2, r3
8008a48: 4b81 ldr r3, [pc, #516] ; (8008c50 <Display+0x2be0>)
8008a4a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008a4e: 2303 movs r3, #3
8008a50: 213c movs r1, #60 ; 0x3c
8008a52: 20a8 movs r0, #168 ; 0xa8
8008a54: f7fc fa7e bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008a58: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008a5c: b2db uxtb r3, r3
8008a5e: 461a mov r2, r3
8008a60: 4b7b ldr r3, [pc, #492] ; (8008c50 <Display+0x2be0>)
8008a62: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008a66: 2303 movs r3, #3
8008a68: 213c movs r1, #60 ; 0x3c
8008a6a: 20af movs r0, #175 ; 0xaf
8008a6c: f7fc fa72 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008a70: f004 ba9d b.w 800cfae <Display+0x6f3e>
if(ipt1 == 4)
8008a74: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008a78: b2db uxtb r3, r3
8008a7a: 2b04 cmp r3, #4
8008a7c: f044 8297 bne.w 800cfae <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008a80: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008a84: b2db uxtb r3, r3
8008a86: 461a mov r2, r3
8008a88: 4b71 ldr r3, [pc, #452] ; (8008c50 <Display+0x2be0>)
8008a8a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008a8e: 2303 movs r3, #3
8008a90: 213c movs r1, #60 ; 0x3c
8008a92: 208c movs r0, #140 ; 0x8c
8008a94: f7fc fa5e bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE);
8008a98: 2303 movs r3, #3
8008a9a: 4a6f ldr r2, [pc, #444] ; (8008c58 <Display+0x2be8>)
8008a9c: 213c movs r1, #60 ; 0x3c
8008a9e: 2093 movs r0, #147 ; 0x93
8008aa0: f7fc fa58 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8008aa4: 4b6b ldr r3, [pc, #428] ; (8008c54 <Display+0x2be4>)
8008aa6: 681b ldr r3, [r3, #0]
8008aa8: 2b00 cmp r3, #0
8008aaa: d00b beq.n 8008ac4 <Display+0x2a54>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008aac: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008ab0: b2db uxtb r3, r3
8008ab2: 461a mov r2, r3
8008ab4: 4b66 ldr r3, [pc, #408] ; (8008c50 <Display+0x2be0>)
8008ab6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008aba: 2303 movs r3, #3
8008abc: 213c movs r1, #60 ; 0x3c
8008abe: 209a movs r0, #154 ; 0x9a
8008ac0: f7fc fa48 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008ac4: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008ac8: b2db uxtb r3, r3
8008aca: 461a mov r2, r3
8008acc: 4b60 ldr r3, [pc, #384] ; (8008c50 <Display+0x2be0>)
8008ace: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008ad2: 2303 movs r3, #3
8008ad4: 213c movs r1, #60 ; 0x3c
8008ad6: 20a1 movs r0, #161 ; 0xa1
8008ad8: f7fc fa3c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008adc: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008ae0: b2db uxtb r3, r3
8008ae2: 461a mov r2, r3
8008ae4: 4b5a ldr r3, [pc, #360] ; (8008c50 <Display+0x2be0>)
8008ae6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008aea: 2303 movs r3, #3
8008aec: 213c movs r1, #60 ; 0x3c
8008aee: 20a8 movs r0, #168 ; 0xa8
8008af0: f7fc fa30 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008af4: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008af8: b2db uxtb r3, r3
8008afa: 461a mov r2, r3
8008afc: 4b54 ldr r3, [pc, #336] ; (8008c50 <Display+0x2be0>)
8008afe: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008b02: 2303 movs r3, #3
8008b04: 213c movs r1, #60 ; 0x3c
8008b06: 20af movs r0, #175 ; 0xaf
8008b08: f7fc fa24 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008b0c: f004 ba4f b.w 800cfae <Display+0x6f3e>
if(menupos == Kiks_1)
8008b10: 4b52 ldr r3, [pc, #328] ; (8008c5c <Display+0x2bec>)
8008b12: 781b ldrb r3, [r3, #0]
8008b14: b2db uxtb r3, r3
8008b16: 2b04 cmp r3, #4
8008b18: f040 818a bne.w 8008e30 <Display+0x2dc0>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8008b1c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008b20: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8008b24: f7fc f950 bl 8004dc8 <LCD_SetColors>
if(!ipt1)
8008b28: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008b2c: b2db uxtb r3, r3
8008b2e: 2b00 cmp r3, #0
8008b30: d141 bne.n 8008bb6 <Display+0x2b46>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008b32: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008b36: b2db uxtb r3, r3
8008b38: 461a mov r2, r3
8008b3a: 4b45 ldr r3, [pc, #276] ; (8008c50 <Display+0x2be0>)
8008b3c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008b40: 2303 movs r3, #3
8008b42: 213c movs r1, #60 ; 0x3c
8008b44: 208c movs r0, #140 ; 0x8c
8008b46: f7fc fa05 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008b4a: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008b4e: b2db uxtb r3, r3
8008b50: 461a mov r2, r3
8008b52: 4b3f ldr r3, [pc, #252] ; (8008c50 <Display+0x2be0>)
8008b54: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008b58: 2303 movs r3, #3
8008b5a: 213c movs r1, #60 ; 0x3c
8008b5c: 2093 movs r0, #147 ; 0x93
8008b5e: f7fc f9f9 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8008b62: 4b3c ldr r3, [pc, #240] ; (8008c54 <Display+0x2be4>)
8008b64: 681b ldr r3, [r3, #0]
8008b66: 2b00 cmp r3, #0
8008b68: d00b beq.n 8008b82 <Display+0x2b12>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008b6a: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008b6e: b2db uxtb r3, r3
8008b70: 461a mov r2, r3
8008b72: 4b37 ldr r3, [pc, #220] ; (8008c50 <Display+0x2be0>)
8008b74: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008b78: 2303 movs r3, #3
8008b7a: 213c movs r1, #60 ; 0x3c
8008b7c: 209a movs r0, #154 ; 0x9a
8008b7e: f7fc f9e9 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008b82: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008b86: b2db uxtb r3, r3
8008b88: 461a mov r2, r3
8008b8a: 4b31 ldr r3, [pc, #196] ; (8008c50 <Display+0x2be0>)
8008b8c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008b90: 2303 movs r3, #3
8008b92: 213c movs r1, #60 ; 0x3c
8008b94: 20a1 movs r0, #161 ; 0xa1
8008b96: f7fc f9dd bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008b9a: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008b9e: b2db uxtb r3, r3
8008ba0: 461a mov r2, r3
8008ba2: 4b2b ldr r3, [pc, #172] ; (8008c50 <Display+0x2be0>)
8008ba4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008ba8: 2303 movs r3, #3
8008baa: 213c movs r1, #60 ; 0x3c
8008bac: 20a8 movs r0, #168 ; 0xa8
8008bae: f7fc f9d1 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008bb2: f004 b9fc b.w 800cfae <Display+0x6f3e>
if(ipt1 == 1)
8008bb6: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008bba: b2db uxtb r3, r3
8008bbc: 2b01 cmp r3, #1
8008bbe: d14f bne.n 8008c60 <Display+0x2bf0>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008bc0: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008bc4: b2db uxtb r3, r3
8008bc6: 461a mov r2, r3
8008bc8: 4b21 ldr r3, [pc, #132] ; (8008c50 <Display+0x2be0>)
8008bca: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008bce: 2303 movs r3, #3
8008bd0: 213c movs r1, #60 ; 0x3c
8008bd2: 208c movs r0, #140 ; 0x8c
8008bd4: f7fc f9be bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008bd8: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008bdc: b2db uxtb r3, r3
8008bde: 461a mov r2, r3
8008be0: 4b1b ldr r3, [pc, #108] ; (8008c50 <Display+0x2be0>)
8008be2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008be6: 2303 movs r3, #3
8008be8: 213c movs r1, #60 ; 0x3c
8008bea: 2093 movs r0, #147 ; 0x93
8008bec: f7fc f9b2 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8008bf0: 4b18 ldr r3, [pc, #96] ; (8008c54 <Display+0x2be4>)
8008bf2: 681b ldr r3, [r3, #0]
8008bf4: 2b00 cmp r3, #0
8008bf6: d00b beq.n 8008c10 <Display+0x2ba0>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008bf8: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008bfc: b2db uxtb r3, r3
8008bfe: 461a mov r2, r3
8008c00: 4b13 ldr r3, [pc, #76] ; (8008c50 <Display+0x2be0>)
8008c02: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008c06: 2303 movs r3, #3
8008c08: 213c movs r1, #60 ; 0x3c
8008c0a: 209a movs r0, #154 ; 0x9a
8008c0c: f7fc f9a2 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008c10: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008c14: b2db uxtb r3, r3
8008c16: 461a mov r2, r3
8008c18: 4b0d ldr r3, [pc, #52] ; (8008c50 <Display+0x2be0>)
8008c1a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008c1e: 2303 movs r3, #3
8008c20: 213c movs r1, #60 ; 0x3c
8008c22: 20a1 movs r0, #161 ; 0xa1
8008c24: f7fc f996 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE);
8008c28: 2303 movs r3, #3
8008c2a: 4a0b ldr r2, [pc, #44] ; (8008c58 <Display+0x2be8>)
8008c2c: 213c movs r1, #60 ; 0x3c
8008c2e: 20a8 movs r0, #168 ; 0xa8
8008c30: f7fc f990 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008c34: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008c38: b2db uxtb r3, r3
8008c3a: 461a mov r2, r3
8008c3c: 4b04 ldr r3, [pc, #16] ; (8008c50 <Display+0x2be0>)
8008c3e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008c42: 2303 movs r3, #3
8008c44: 213c movs r1, #60 ; 0x3c
8008c46: 20af movs r0, #175 ; 0xaf
8008c48: f7fc f984 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008c4c: f004 b9af b.w 800cfae <Display+0x6f3e>
8008c50: 2002096c .word 0x2002096c
8008c54: 2006ba78 .word 0x2006ba78
8008c58: 080181c8 .word 0x080181c8
8008c5c: 20020010 .word 0x20020010
if(ipt1 == 2)
8008c60: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008c64: b2db uxtb r3, r3
8008c66: 2b02 cmp r3, #2
8008c68: d147 bne.n 8008cfa <Display+0x2c8a>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008c6a: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008c6e: b2db uxtb r3, r3
8008c70: 461a mov r2, r3
8008c72: 4bbf ldr r3, [pc, #764] ; (8008f70 <Display+0x2f00>)
8008c74: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008c78: 2303 movs r3, #3
8008c7a: 213c movs r1, #60 ; 0x3c
8008c7c: 208c movs r0, #140 ; 0x8c
8008c7e: f7fc f969 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008c82: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008c86: b2db uxtb r3, r3
8008c88: 461a mov r2, r3
8008c8a: 4bb9 ldr r3, [pc, #740] ; (8008f70 <Display+0x2f00>)
8008c8c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008c90: 2303 movs r3, #3
8008c92: 213c movs r1, #60 ; 0x3c
8008c94: 2093 movs r0, #147 ; 0x93
8008c96: f7fc f95d bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8008c9a: 4bb6 ldr r3, [pc, #728] ; (8008f74 <Display+0x2f04>)
8008c9c: 681b ldr r3, [r3, #0]
8008c9e: 2b00 cmp r3, #0
8008ca0: d00b beq.n 8008cba <Display+0x2c4a>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008ca2: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008ca6: b2db uxtb r3, r3
8008ca8: 461a mov r2, r3
8008caa: 4bb1 ldr r3, [pc, #708] ; (8008f70 <Display+0x2f00>)
8008cac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008cb0: 2303 movs r3, #3
8008cb2: 213c movs r1, #60 ; 0x3c
8008cb4: 209a movs r0, #154 ; 0x9a
8008cb6: f7fc f94d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE);
8008cba: 2303 movs r3, #3
8008cbc: 4aae ldr r2, [pc, #696] ; (8008f78 <Display+0x2f08>)
8008cbe: 213c movs r1, #60 ; 0x3c
8008cc0: 20a1 movs r0, #161 ; 0xa1
8008cc2: f7fc f947 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008cc6: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008cca: b2db uxtb r3, r3
8008ccc: 461a mov r2, r3
8008cce: 4ba8 ldr r3, [pc, #672] ; (8008f70 <Display+0x2f00>)
8008cd0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008cd4: 2303 movs r3, #3
8008cd6: 213c movs r1, #60 ; 0x3c
8008cd8: 20a8 movs r0, #168 ; 0xa8
8008cda: f7fc f93b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008cde: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008ce2: b2db uxtb r3, r3
8008ce4: 461a mov r2, r3
8008ce6: 4ba2 ldr r3, [pc, #648] ; (8008f70 <Display+0x2f00>)
8008ce8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008cec: 2303 movs r3, #3
8008cee: 213c movs r1, #60 ; 0x3c
8008cf0: 20af movs r0, #175 ; 0xaf
8008cf2: f7fc f92f bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008cf6: f004 b95a b.w 800cfae <Display+0x6f3e>
if(ipt1 == 3)
8008cfa: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008cfe: b2db uxtb r3, r3
8008d00: 2b03 cmp r3, #3
8008d02: d147 bne.n 8008d94 <Display+0x2d24>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008d04: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008d08: b2db uxtb r3, r3
8008d0a: 461a mov r2, r3
8008d0c: 4b98 ldr r3, [pc, #608] ; (8008f70 <Display+0x2f00>)
8008d0e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008d12: 2303 movs r3, #3
8008d14: 213c movs r1, #60 ; 0x3c
8008d16: 208c movs r0, #140 ; 0x8c
8008d18: f7fc f91c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008d1c: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008d20: b2db uxtb r3, r3
8008d22: 461a mov r2, r3
8008d24: 4b92 ldr r3, [pc, #584] ; (8008f70 <Display+0x2f00>)
8008d26: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008d2a: 2303 movs r3, #3
8008d2c: 213c movs r1, #60 ; 0x3c
8008d2e: 2093 movs r0, #147 ; 0x93
8008d30: f7fc f910 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE);
8008d34: 2303 movs r3, #3
8008d36: 4a90 ldr r2, [pc, #576] ; (8008f78 <Display+0x2f08>)
8008d38: 213c movs r1, #60 ; 0x3c
8008d3a: 209a movs r0, #154 ; 0x9a
8008d3c: f7fc f90a bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8008d40: 4b8c ldr r3, [pc, #560] ; (8008f74 <Display+0x2f04>)
8008d42: 681b ldr r3, [r3, #0]
8008d44: 2b00 cmp r3, #0
8008d46: d00b beq.n 8008d60 <Display+0x2cf0>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008d48: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008d4c: b2db uxtb r3, r3
8008d4e: 461a mov r2, r3
8008d50: 4b87 ldr r3, [pc, #540] ; (8008f70 <Display+0x2f00>)
8008d52: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008d56: 2303 movs r3, #3
8008d58: 213c movs r1, #60 ; 0x3c
8008d5a: 20a1 movs r0, #161 ; 0xa1
8008d5c: f7fc f8fa bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008d60: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008d64: b2db uxtb r3, r3
8008d66: 461a mov r2, r3
8008d68: 4b81 ldr r3, [pc, #516] ; (8008f70 <Display+0x2f00>)
8008d6a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008d6e: 2303 movs r3, #3
8008d70: 213c movs r1, #60 ; 0x3c
8008d72: 20a8 movs r0, #168 ; 0xa8
8008d74: f7fc f8ee bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008d78: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008d7c: b2db uxtb r3, r3
8008d7e: 461a mov r2, r3
8008d80: 4b7b ldr r3, [pc, #492] ; (8008f70 <Display+0x2f00>)
8008d82: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008d86: 2303 movs r3, #3
8008d88: 213c movs r1, #60 ; 0x3c
8008d8a: 20af movs r0, #175 ; 0xaf
8008d8c: f7fc f8e2 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008d90: f004 b90d b.w 800cfae <Display+0x6f3e>
if(ipt1 == 4)
8008d94: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008d98: b2db uxtb r3, r3
8008d9a: 2b04 cmp r3, #4
8008d9c: f044 8107 bne.w 800cfae <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008da0: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008da4: b2db uxtb r3, r3
8008da6: 461a mov r2, r3
8008da8: 4b71 ldr r3, [pc, #452] ; (8008f70 <Display+0x2f00>)
8008daa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008dae: 2303 movs r3, #3
8008db0: 213c movs r1, #60 ; 0x3c
8008db2: 208c movs r0, #140 ; 0x8c
8008db4: f7fc f8ce bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE);
8008db8: 2303 movs r3, #3
8008dba: 4a6f ldr r2, [pc, #444] ; (8008f78 <Display+0x2f08>)
8008dbc: 213c movs r1, #60 ; 0x3c
8008dbe: 2093 movs r0, #147 ; 0x93
8008dc0: f7fc f8c8 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008dc4: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008dc8: b2db uxtb r3, r3
8008dca: 461a mov r2, r3
8008dcc: 4b68 ldr r3, [pc, #416] ; (8008f70 <Display+0x2f00>)
8008dce: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008dd2: 2303 movs r3, #3
8008dd4: 213c movs r1, #60 ; 0x3c
8008dd6: 209a movs r0, #154 ; 0x9a
8008dd8: f7fc f8bc bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8008ddc: 4b65 ldr r3, [pc, #404] ; (8008f74 <Display+0x2f04>)
8008dde: 681b ldr r3, [r3, #0]
8008de0: 2b00 cmp r3, #0
8008de2: d00b beq.n 8008dfc <Display+0x2d8c>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008de4: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008de8: b2db uxtb r3, r3
8008dea: 461a mov r2, r3
8008dec: 4b60 ldr r3, [pc, #384] ; (8008f70 <Display+0x2f00>)
8008dee: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008df2: 2303 movs r3, #3
8008df4: 213c movs r1, #60 ; 0x3c
8008df6: 20a1 movs r0, #161 ; 0xa1
8008df8: f7fc f8ac bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008dfc: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008e00: b2db uxtb r3, r3
8008e02: 461a mov r2, r3
8008e04: 4b5a ldr r3, [pc, #360] ; (8008f70 <Display+0x2f00>)
8008e06: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008e0a: 2303 movs r3, #3
8008e0c: 213c movs r1, #60 ; 0x3c
8008e0e: 20a8 movs r0, #168 ; 0xa8
8008e10: f7fc f8a0 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008e14: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008e18: b2db uxtb r3, r3
8008e1a: 461a mov r2, r3
8008e1c: 4b54 ldr r3, [pc, #336] ; (8008f70 <Display+0x2f00>)
8008e1e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008e22: 2303 movs r3, #3
8008e24: 213c movs r1, #60 ; 0x3c
8008e26: 20af movs r0, #175 ; 0xaf
8008e28: f7fc f894 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008e2c: f004 b8bf b.w 800cfae <Display+0x6f3e>
if(menupos == Kikd_1)
8008e30: 4b52 ldr r3, [pc, #328] ; (8008f7c <Display+0x2f0c>)
8008e32: 781b ldrb r3, [r3, #0]
8008e34: b2db uxtb r3, r3
8008e36: 2b05 cmp r3, #5
8008e38: f040 818a bne.w 8009150 <Display+0x30e0>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8008e3c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8008e40: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8008e44: f7fb ffc0 bl 8004dc8 <LCD_SetColors>
if(!ipt1)
8008e48: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008e4c: b2db uxtb r3, r3
8008e4e: 2b00 cmp r3, #0
8008e50: d141 bne.n 8008ed6 <Display+0x2e66>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008e52: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008e56: b2db uxtb r3, r3
8008e58: 461a mov r2, r3
8008e5a: 4b45 ldr r3, [pc, #276] ; (8008f70 <Display+0x2f00>)
8008e5c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008e60: 2303 movs r3, #3
8008e62: 213c movs r1, #60 ; 0x3c
8008e64: 208c movs r0, #140 ; 0x8c
8008e66: f7fc f875 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008e6a: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008e6e: b2db uxtb r3, r3
8008e70: 461a mov r2, r3
8008e72: 4b3f ldr r3, [pc, #252] ; (8008f70 <Display+0x2f00>)
8008e74: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008e78: 2303 movs r3, #3
8008e7a: 213c movs r1, #60 ; 0x3c
8008e7c: 2093 movs r0, #147 ; 0x93
8008e7e: f7fc f869 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008e82: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008e86: b2db uxtb r3, r3
8008e88: 461a mov r2, r3
8008e8a: 4b39 ldr r3, [pc, #228] ; (8008f70 <Display+0x2f00>)
8008e8c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008e90: 2303 movs r3, #3
8008e92: 213c movs r1, #60 ; 0x3c
8008e94: 209a movs r0, #154 ; 0x9a
8008e96: f7fc f85d bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8008e9a: 4b36 ldr r3, [pc, #216] ; (8008f74 <Display+0x2f04>)
8008e9c: 681b ldr r3, [r3, #0]
8008e9e: 2b00 cmp r3, #0
8008ea0: d00b beq.n 8008eba <Display+0x2e4a>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008ea2: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008ea6: b2db uxtb r3, r3
8008ea8: 461a mov r2, r3
8008eaa: 4b31 ldr r3, [pc, #196] ; (8008f70 <Display+0x2f00>)
8008eac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008eb0: 2303 movs r3, #3
8008eb2: 213c movs r1, #60 ; 0x3c
8008eb4: 20a1 movs r0, #161 ; 0xa1
8008eb6: f7fc f84d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008eba: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008ebe: b2db uxtb r3, r3
8008ec0: 461a mov r2, r3
8008ec2: 4b2b ldr r3, [pc, #172] ; (8008f70 <Display+0x2f00>)
8008ec4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008ec8: 2303 movs r3, #3
8008eca: 213c movs r1, #60 ; 0x3c
8008ecc: 20a8 movs r0, #168 ; 0xa8
8008ece: f7fc f841 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008ed2: f004 b86c b.w 800cfae <Display+0x6f3e>
if(ipt1 == 1)
8008ed6: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008eda: b2db uxtb r3, r3
8008edc: 2b01 cmp r3, #1
8008ede: d14f bne.n 8008f80 <Display+0x2f10>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008ee0: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008ee4: b2db uxtb r3, r3
8008ee6: 461a mov r2, r3
8008ee8: 4b21 ldr r3, [pc, #132] ; (8008f70 <Display+0x2f00>)
8008eea: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008eee: 2303 movs r3, #3
8008ef0: 213c movs r1, #60 ; 0x3c
8008ef2: 208c movs r0, #140 ; 0x8c
8008ef4: f7fc f82e bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008ef8: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008efc: b2db uxtb r3, r3
8008efe: 461a mov r2, r3
8008f00: 4b1b ldr r3, [pc, #108] ; (8008f70 <Display+0x2f00>)
8008f02: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008f06: 2303 movs r3, #3
8008f08: 213c movs r1, #60 ; 0x3c
8008f0a: 2093 movs r0, #147 ; 0x93
8008f0c: f7fc f822 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008f10: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008f14: b2db uxtb r3, r3
8008f16: 461a mov r2, r3
8008f18: 4b15 ldr r3, [pc, #84] ; (8008f70 <Display+0x2f00>)
8008f1a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008f1e: 2303 movs r3, #3
8008f20: 213c movs r1, #60 ; 0x3c
8008f22: 209a movs r0, #154 ; 0x9a
8008f24: f7fc f816 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8008f28: 4b12 ldr r3, [pc, #72] ; (8008f74 <Display+0x2f04>)
8008f2a: 681b ldr r3, [r3, #0]
8008f2c: 2b00 cmp r3, #0
8008f2e: d00b beq.n 8008f48 <Display+0x2ed8>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008f30: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008f34: b2db uxtb r3, r3
8008f36: 461a mov r2, r3
8008f38: 4b0d ldr r3, [pc, #52] ; (8008f70 <Display+0x2f00>)
8008f3a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008f3e: 2303 movs r3, #3
8008f40: 213c movs r1, #60 ; 0x3c
8008f42: 20a1 movs r0, #161 ; 0xa1
8008f44: f7fc f806 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE);
8008f48: 2303 movs r3, #3
8008f4a: 4a0b ldr r2, [pc, #44] ; (8008f78 <Display+0x2f08>)
8008f4c: 213c movs r1, #60 ; 0x3c
8008f4e: 20a8 movs r0, #168 ; 0xa8
8008f50: f7fc f800 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008f54: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8008f58: b2db uxtb r3, r3
8008f5a: 461a mov r2, r3
8008f5c: 4b04 ldr r3, [pc, #16] ; (8008f70 <Display+0x2f00>)
8008f5e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008f62: 2303 movs r3, #3
8008f64: 213c movs r1, #60 ; 0x3c
8008f66: 20af movs r0, #175 ; 0xaf
8008f68: f7fb fff4 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8008f6c: f004 b81f b.w 800cfae <Display+0x6f3e>
8008f70: 2002096c .word 0x2002096c
8008f74: 2006ba78 .word 0x2006ba78
8008f78: 080181c8 .word 0x080181c8
8008f7c: 20020010 .word 0x20020010
if(ipt1 == 2)
8008f80: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8008f84: b2db uxtb r3, r3
8008f86: 2b02 cmp r3, #2
8008f88: d147 bne.n 800901a <Display+0x2faa>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8008f8a: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8008f8e: b2db uxtb r3, r3
8008f90: 461a mov r2, r3
8008f92: 4bc0 ldr r3, [pc, #768] ; (8009294 <Display+0x3224>)
8008f94: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008f98: 2303 movs r3, #3
8008f9a: 213c movs r1, #60 ; 0x3c
8008f9c: 208c movs r0, #140 ; 0x8c
8008f9e: f7fb ffd9 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8008fa2: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8008fa6: b2db uxtb r3, r3
8008fa8: 461a mov r2, r3
8008faa: 4bba ldr r3, [pc, #744] ; (8009294 <Display+0x3224>)
8008fac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008fb0: 2303 movs r3, #3
8008fb2: 213c movs r1, #60 ; 0x3c
8008fb4: 2093 movs r0, #147 ; 0x93
8008fb6: f7fb ffcd bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8008fba: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8008fbe: b2db uxtb r3, r3
8008fc0: 461a mov r2, r3
8008fc2: 4bb4 ldr r3, [pc, #720] ; (8009294 <Display+0x3224>)
8008fc4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008fc8: 2303 movs r3, #3
8008fca: 213c movs r1, #60 ; 0x3c
8008fcc: 209a movs r0, #154 ; 0x9a
8008fce: f7fb ffc1 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE);
8008fd2: 2303 movs r3, #3
8008fd4: 4ab0 ldr r2, [pc, #704] ; (8009298 <Display+0x3228>)
8008fd6: 213c movs r1, #60 ; 0x3c
8008fd8: 20a1 movs r0, #161 ; 0xa1
8008fda: f7fb ffbb bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8008fde: 4baf ldr r3, [pc, #700] ; (800929c <Display+0x322c>)
8008fe0: 681b ldr r3, [r3, #0]
8008fe2: 2b00 cmp r3, #0
8008fe4: d00b beq.n 8008ffe <Display+0x2f8e>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8008fe6: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8008fea: b2db uxtb r3, r3
8008fec: 461a mov r2, r3
8008fee: 4ba9 ldr r3, [pc, #676] ; (8009294 <Display+0x3224>)
8008ff0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8008ff4: 2303 movs r3, #3
8008ff6: 213c movs r1, #60 ; 0x3c
8008ff8: 20a8 movs r0, #168 ; 0xa8
8008ffa: f7fb ffab bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8008ffe: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8009002: b2db uxtb r3, r3
8009004: 461a mov r2, r3
8009006: 4ba3 ldr r3, [pc, #652] ; (8009294 <Display+0x3224>)
8009008: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800900c: 2303 movs r3, #3
800900e: 213c movs r1, #60 ; 0x3c
8009010: 20af movs r0, #175 ; 0xaf
8009012: f7fb ff9f bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8009016: f003 bfca b.w 800cfae <Display+0x6f3e>
if(ipt1 == 3)
800901a: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
800901e: b2db uxtb r3, r3
8009020: 2b03 cmp r3, #3
8009022: d147 bne.n 80090b4 <Display+0x3044>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8009024: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8009028: b2db uxtb r3, r3
800902a: 461a mov r2, r3
800902c: 4b99 ldr r3, [pc, #612] ; (8009294 <Display+0x3224>)
800902e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009032: 2303 movs r3, #3
8009034: 213c movs r1, #60 ; 0x3c
8009036: 208c movs r0, #140 ; 0x8c
8009038: f7fb ff8c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
800903c: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8009040: b2db uxtb r3, r3
8009042: 461a mov r2, r3
8009044: 4b93 ldr r3, [pc, #588] ; (8009294 <Display+0x3224>)
8009046: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800904a: 2303 movs r3, #3
800904c: 213c movs r1, #60 ; 0x3c
800904e: 2093 movs r0, #147 ; 0x93
8009050: f7fb ff80 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE);
8009054: 2303 movs r3, #3
8009056: 4a90 ldr r2, [pc, #576] ; (8009298 <Display+0x3228>)
8009058: 213c movs r1, #60 ; 0x3c
800905a: 209a movs r0, #154 ; 0x9a
800905c: f7fb ff7a bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8009060: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8009064: b2db uxtb r3, r3
8009066: 461a mov r2, r3
8009068: 4b8a ldr r3, [pc, #552] ; (8009294 <Display+0x3224>)
800906a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800906e: 2303 movs r3, #3
8009070: 213c movs r1, #60 ; 0x3c
8009072: 20a1 movs r0, #161 ; 0xa1
8009074: f7fb ff6e bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8009078: 4b88 ldr r3, [pc, #544] ; (800929c <Display+0x322c>)
800907a: 681b ldr r3, [r3, #0]
800907c: 2b00 cmp r3, #0
800907e: d00b beq.n 8009098 <Display+0x3028>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8009080: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8009084: b2db uxtb r3, r3
8009086: 461a mov r2, r3
8009088: 4b82 ldr r3, [pc, #520] ; (8009294 <Display+0x3224>)
800908a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800908e: 2303 movs r3, #3
8009090: 213c movs r1, #60 ; 0x3c
8009092: 20a8 movs r0, #168 ; 0xa8
8009094: f7fb ff5e bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009098: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
800909c: b2db uxtb r3, r3
800909e: 461a mov r2, r3
80090a0: 4b7c ldr r3, [pc, #496] ; (8009294 <Display+0x3224>)
80090a2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80090a6: 2303 movs r3, #3
80090a8: 213c movs r1, #60 ; 0x3c
80090aa: 20af movs r0, #175 ; 0xaf
80090ac: f7fb ff52 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80090b0: f003 bf7d b.w 800cfae <Display+0x6f3e>
if(ipt1 == 4)
80090b4: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
80090b8: b2db uxtb r3, r3
80090ba: 2b04 cmp r3, #4
80090bc: f043 8777 bne.w 800cfae <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
80090c0: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
80090c4: b2db uxtb r3, r3
80090c6: 461a mov r2, r3
80090c8: 4b72 ldr r3, [pc, #456] ; (8009294 <Display+0x3224>)
80090ca: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80090ce: 2303 movs r3, #3
80090d0: 213c movs r1, #60 ; 0x3c
80090d2: 208c movs r0, #140 ; 0x8c
80090d4: f7fb ff3e bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE);
80090d8: 2303 movs r3, #3
80090da: 4a6f ldr r2, [pc, #444] ; (8009298 <Display+0x3228>)
80090dc: 213c movs r1, #60 ; 0x3c
80090de: 2093 movs r0, #147 ; 0x93
80090e0: f7fb ff38 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE);
80090e4: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
80090e8: b2db uxtb r3, r3
80090ea: 461a mov r2, r3
80090ec: 4b69 ldr r3, [pc, #420] ; (8009294 <Display+0x3224>)
80090ee: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80090f2: 2303 movs r3, #3
80090f4: 213c movs r1, #60 ; 0x3c
80090f6: 209a movs r0, #154 ; 0x9a
80090f8: f7fb ff2c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
80090fc: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8009100: b2db uxtb r3, r3
8009102: 461a mov r2, r3
8009104: 4b63 ldr r3, [pc, #396] ; (8009294 <Display+0x3224>)
8009106: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800910a: 2303 movs r3, #3
800910c: 213c movs r1, #60 ; 0x3c
800910e: 20a1 movs r0, #161 ; 0xa1
8009110: f7fb ff20 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8009114: 4b61 ldr r3, [pc, #388] ; (800929c <Display+0x322c>)
8009116: 681b ldr r3, [r3, #0]
8009118: 2b00 cmp r3, #0
800911a: d00b beq.n 8009134 <Display+0x30c4>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
800911c: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8009120: b2db uxtb r3, r3
8009122: 461a mov r2, r3
8009124: 4b5b ldr r3, [pc, #364] ; (8009294 <Display+0x3224>)
8009126: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800912a: 2303 movs r3, #3
800912c: 213c movs r1, #60 ; 0x3c
800912e: 20a8 movs r0, #168 ; 0xa8
8009130: f7fb ff10 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009134: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8009138: b2db uxtb r3, r3
800913a: 461a mov r2, r3
800913c: 4b55 ldr r3, [pc, #340] ; (8009294 <Display+0x3224>)
800913e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009142: 2303 movs r3, #3
8009144: 213c movs r1, #60 ; 0x3c
8009146: 20af movs r0, #175 ; 0xaf
8009148: f7fb ff04 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
800914c: f003 bf2f b.w 800cfae <Display+0x6f3e>
if(menupos == Kike_1)
8009150: 4b53 ldr r3, [pc, #332] ; (80092a0 <Display+0x3230>)
8009152: 781b ldrb r3, [r3, #0]
8009154: b2db uxtb r3, r3
8009156: 2b06 cmp r3, #6
8009158: f040 818f bne.w 800947a <Display+0x340a>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800915c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8009160: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8009164: f7fb fe30 bl 8004dc8 <LCD_SetColors>
if(!ipt1)
8009168: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
800916c: b2db uxtb r3, r3
800916e: 2b00 cmp r3, #0
8009170: d142 bne.n 80091f8 <Display+0x3188>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8009172: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8009176: b2db uxtb r3, r3
8009178: 461a mov r2, r3
800917a: 4b46 ldr r3, [pc, #280] ; (8009294 <Display+0x3224>)
800917c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009180: 2303 movs r3, #3
8009182: 213c movs r1, #60 ; 0x3c
8009184: 208c movs r0, #140 ; 0x8c
8009186: f7fb fee5 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
800918a: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
800918e: b2db uxtb r3, r3
8009190: 461a mov r2, r3
8009192: 4b40 ldr r3, [pc, #256] ; (8009294 <Display+0x3224>)
8009194: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009198: 2303 movs r3, #3
800919a: 213c movs r1, #60 ; 0x3c
800919c: 2093 movs r0, #147 ; 0x93
800919e: f7fb fed9 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
80091a2: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80091a6: b2db uxtb r3, r3
80091a8: 461a mov r2, r3
80091aa: 4b3a ldr r3, [pc, #232] ; (8009294 <Display+0x3224>)
80091ac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80091b0: 2303 movs r3, #3
80091b2: 213c movs r1, #60 ; 0x3c
80091b4: 209a movs r0, #154 ; 0x9a
80091b6: f7fb fecd bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
80091ba: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80091be: b2db uxtb r3, r3
80091c0: 461a mov r2, r3
80091c2: 4b34 ldr r3, [pc, #208] ; (8009294 <Display+0x3224>)
80091c4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80091c8: 2303 movs r3, #3
80091ca: 213c movs r1, #60 ; 0x3c
80091cc: 20a1 movs r0, #161 ; 0xa1
80091ce: f7fb fec1 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
80091d2: 4b32 ldr r3, [pc, #200] ; (800929c <Display+0x322c>)
80091d4: 681b ldr r3, [r3, #0]
80091d6: 2b00 cmp r3, #0
80091d8: f003 86e9 beq.w 800cfae <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE);
80091dc: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80091e0: b2db uxtb r3, r3
80091e2: 461a mov r2, r3
80091e4: 4b2b ldr r3, [pc, #172] ; (8009294 <Display+0x3224>)
80091e6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80091ea: 2303 movs r3, #3
80091ec: 213c movs r1, #60 ; 0x3c
80091ee: 20a8 movs r0, #168 ; 0xa8
80091f0: f7fb feb0 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80091f4: f003 bedb b.w 800cfae <Display+0x6f3e>
if(ipt1 == 1)
80091f8: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
80091fc: b2db uxtb r3, r3
80091fe: 2b01 cmp r3, #1
8009200: d150 bne.n 80092a4 <Display+0x3234>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8009202: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8009206: b2db uxtb r3, r3
8009208: 461a mov r2, r3
800920a: 4b22 ldr r3, [pc, #136] ; (8009294 <Display+0x3224>)
800920c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009210: 2303 movs r3, #3
8009212: 213c movs r1, #60 ; 0x3c
8009214: 208c movs r0, #140 ; 0x8c
8009216: f7fb fe9d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
800921a: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
800921e: b2db uxtb r3, r3
8009220: 461a mov r2, r3
8009222: 4b1c ldr r3, [pc, #112] ; (8009294 <Display+0x3224>)
8009224: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009228: 2303 movs r3, #3
800922a: 213c movs r1, #60 ; 0x3c
800922c: 2093 movs r0, #147 ; 0x93
800922e: f7fb fe91 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8009232: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8009236: b2db uxtb r3, r3
8009238: 461a mov r2, r3
800923a: 4b16 ldr r3, [pc, #88] ; (8009294 <Display+0x3224>)
800923c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009240: 2303 movs r3, #3
8009242: 213c movs r1, #60 ; 0x3c
8009244: 209a movs r0, #154 ; 0x9a
8009246: f7fb fe85 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
800924a: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
800924e: b2db uxtb r3, r3
8009250: 461a mov r2, r3
8009252: 4b10 ldr r3, [pc, #64] ; (8009294 <Display+0x3224>)
8009254: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009258: 2303 movs r3, #3
800925a: 213c movs r1, #60 ; 0x3c
800925c: 20a1 movs r0, #161 ; 0xa1
800925e: f7fb fe79 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE);
8009262: 2303 movs r3, #3
8009264: 4a0c ldr r2, [pc, #48] ; (8009298 <Display+0x3228>)
8009266: 213c movs r1, #60 ; 0x3c
8009268: 20a8 movs r0, #168 ; 0xa8
800926a: f7fb fe73 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800926e: 4b0b ldr r3, [pc, #44] ; (800929c <Display+0x322c>)
8009270: 681b ldr r3, [r3, #0]
8009272: 2b00 cmp r3, #0
8009274: f003 869b beq.w 800cfae <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009278: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
800927c: b2db uxtb r3, r3
800927e: 461a mov r2, r3
8009280: 4b04 ldr r3, [pc, #16] ; (8009294 <Display+0x3224>)
8009282: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009286: 2303 movs r3, #3
8009288: 213c movs r1, #60 ; 0x3c
800928a: 20af movs r0, #175 ; 0xaf
800928c: f7fb fe62 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8009290: f003 be8d b.w 800cfae <Display+0x6f3e>
8009294: 2002096c .word 0x2002096c
8009298: 080181c8 .word 0x080181c8
800929c: 2006ba78 .word 0x2006ba78
80092a0: 20020010 .word 0x20020010
if(ipt1 == 2)
80092a4: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
80092a8: b2db uxtb r3, r3
80092aa: 2b02 cmp r3, #2
80092ac: d148 bne.n 8009340 <Display+0x32d0>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
80092ae: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
80092b2: b2db uxtb r3, r3
80092b4: 461a mov r2, r3
80092b6: 4bc4 ldr r3, [pc, #784] ; (80095c8 <Display+0x3558>)
80092b8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80092bc: 2303 movs r3, #3
80092be: 213c movs r1, #60 ; 0x3c
80092c0: 208c movs r0, #140 ; 0x8c
80092c2: f7fb fe47 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
80092c6: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
80092ca: b2db uxtb r3, r3
80092cc: 461a mov r2, r3
80092ce: 4bbe ldr r3, [pc, #760] ; (80095c8 <Display+0x3558>)
80092d0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80092d4: 2303 movs r3, #3
80092d6: 213c movs r1, #60 ; 0x3c
80092d8: 2093 movs r0, #147 ; 0x93
80092da: f7fb fe3b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
80092de: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80092e2: b2db uxtb r3, r3
80092e4: 461a mov r2, r3
80092e6: 4bb8 ldr r3, [pc, #736] ; (80095c8 <Display+0x3558>)
80092e8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80092ec: 2303 movs r3, #3
80092ee: 213c movs r1, #60 ; 0x3c
80092f0: 209a movs r0, #154 ; 0x9a
80092f2: f7fb fe2f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE);
80092f6: 2303 movs r3, #3
80092f8: 4ab4 ldr r2, [pc, #720] ; (80095cc <Display+0x355c>)
80092fa: 213c movs r1, #60 ; 0x3c
80092fc: 20a1 movs r0, #161 ; 0xa1
80092fe: f7fb fe29 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8009302: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8009306: b2db uxtb r3, r3
8009308: 461a mov r2, r3
800930a: 4baf ldr r3, [pc, #700] ; (80095c8 <Display+0x3558>)
800930c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009310: 2303 movs r3, #3
8009312: 213c movs r1, #60 ; 0x3c
8009314: 20a8 movs r0, #168 ; 0xa8
8009316: f7fb fe1d bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800931a: 4bad ldr r3, [pc, #692] ; (80095d0 <Display+0x3560>)
800931c: 681b ldr r3, [r3, #0]
800931e: 2b00 cmp r3, #0
8009320: f003 8645 beq.w 800cfae <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009324: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8009328: b2db uxtb r3, r3
800932a: 461a mov r2, r3
800932c: 4ba6 ldr r3, [pc, #664] ; (80095c8 <Display+0x3558>)
800932e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009332: 2303 movs r3, #3
8009334: 213c movs r1, #60 ; 0x3c
8009336: 20af movs r0, #175 ; 0xaf
8009338: f7fb fe0c bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
800933c: f003 be37 b.w 800cfae <Display+0x6f3e>
if(ipt1 == 3)
8009340: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8009344: b2db uxtb r3, r3
8009346: 2b03 cmp r3, #3
8009348: d148 bne.n 80093dc <Display+0x336c>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
800934a: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
800934e: b2db uxtb r3, r3
8009350: 461a mov r2, r3
8009352: 4b9d ldr r3, [pc, #628] ; (80095c8 <Display+0x3558>)
8009354: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009358: 2303 movs r3, #3
800935a: 213c movs r1, #60 ; 0x3c
800935c: 208c movs r0, #140 ; 0x8c
800935e: f7fb fdf9 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8009362: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8009366: b2db uxtb r3, r3
8009368: 461a mov r2, r3
800936a: 4b97 ldr r3, [pc, #604] ; (80095c8 <Display+0x3558>)
800936c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009370: 2303 movs r3, #3
8009372: 213c movs r1, #60 ; 0x3c
8009374: 2093 movs r0, #147 ; 0x93
8009376: f7fb fded bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE);
800937a: 2303 movs r3, #3
800937c: 4a93 ldr r2, [pc, #588] ; (80095cc <Display+0x355c>)
800937e: 213c movs r1, #60 ; 0x3c
8009380: 209a movs r0, #154 ; 0x9a
8009382: f7fb fde7 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8009386: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
800938a: b2db uxtb r3, r3
800938c: 461a mov r2, r3
800938e: 4b8e ldr r3, [pc, #568] ; (80095c8 <Display+0x3558>)
8009390: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009394: 2303 movs r3, #3
8009396: 213c movs r1, #60 ; 0x3c
8009398: 20a1 movs r0, #161 ; 0xa1
800939a: f7fb fddb bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
800939e: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80093a2: b2db uxtb r3, r3
80093a4: 461a mov r2, r3
80093a6: 4b88 ldr r3, [pc, #544] ; (80095c8 <Display+0x3558>)
80093a8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80093ac: 2303 movs r3, #3
80093ae: 213c movs r1, #60 ; 0x3c
80093b0: 20a8 movs r0, #168 ; 0xa8
80093b2: f7fb fdcf bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
80093b6: 4b86 ldr r3, [pc, #536] ; (80095d0 <Display+0x3560>)
80093b8: 681b ldr r3, [r3, #0]
80093ba: 2b00 cmp r3, #0
80093bc: f003 85f7 beq.w 800cfae <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
80093c0: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80093c4: b2db uxtb r3, r3
80093c6: 461a mov r2, r3
80093c8: 4b7f ldr r3, [pc, #508] ; (80095c8 <Display+0x3558>)
80093ca: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80093ce: 2303 movs r3, #3
80093d0: 213c movs r1, #60 ; 0x3c
80093d2: 20af movs r0, #175 ; 0xaf
80093d4: f7fb fdbe bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80093d8: f003 bde9 b.w 800cfae <Display+0x6f3e>
if(ipt1 == 4)
80093dc: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
80093e0: b2db uxtb r3, r3
80093e2: 2b04 cmp r3, #4
80093e4: f043 85e3 bne.w 800cfae <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
80093e8: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
80093ec: b2db uxtb r3, r3
80093ee: 461a mov r2, r3
80093f0: 4b75 ldr r3, [pc, #468] ; (80095c8 <Display+0x3558>)
80093f2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80093f6: 2303 movs r3, #3
80093f8: 213c movs r1, #60 ; 0x3c
80093fa: 208c movs r0, #140 ; 0x8c
80093fc: f7fb fdaa bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE);
8009400: 2303 movs r3, #3
8009402: 4a72 ldr r2, [pc, #456] ; (80095cc <Display+0x355c>)
8009404: 213c movs r1, #60 ; 0x3c
8009406: 2093 movs r0, #147 ; 0x93
8009408: f7fb fda4 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE);
800940c: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8009410: b2db uxtb r3, r3
8009412: 461a mov r2, r3
8009414: 4b6c ldr r3, [pc, #432] ; (80095c8 <Display+0x3558>)
8009416: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800941a: 2303 movs r3, #3
800941c: 213c movs r1, #60 ; 0x3c
800941e: 209a movs r0, #154 ; 0x9a
8009420: f7fb fd98 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
8009424: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8009428: b2db uxtb r3, r3
800942a: 461a mov r2, r3
800942c: 4b66 ldr r3, [pc, #408] ; (80095c8 <Display+0x3558>)
800942e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009432: 2303 movs r3, #3
8009434: 213c movs r1, #60 ; 0x3c
8009436: 20a1 movs r0, #161 ; 0xa1
8009438: f7fb fd8c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
800943c: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8009440: b2db uxtb r3, r3
8009442: 461a mov r2, r3
8009444: 4b60 ldr r3, [pc, #384] ; (80095c8 <Display+0x3558>)
8009446: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800944a: 2303 movs r3, #3
800944c: 213c movs r1, #60 ; 0x3c
800944e: 20a8 movs r0, #168 ; 0xa8
8009450: f7fb fd80 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8009454: 4b5e ldr r3, [pc, #376] ; (80095d0 <Display+0x3560>)
8009456: 681b ldr r3, [r3, #0]
8009458: 2b00 cmp r3, #0
800945a: f003 85a8 beq.w 800cfae <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
800945e: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8009462: b2db uxtb r3, r3
8009464: 461a mov r2, r3
8009466: 4b58 ldr r3, [pc, #352] ; (80095c8 <Display+0x3558>)
8009468: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800946c: 2303 movs r3, #3
800946e: 213c movs r1, #60 ; 0x3c
8009470: 20af movs r0, #175 ; 0xaf
8009472: f7fb fd6f bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8009476: f003 bd9a b.w 800cfae <Display+0x6f3e>
if(menupos == Kpt_1)
800947a: 4b56 ldr r3, [pc, #344] ; (80095d4 <Display+0x3564>)
800947c: 781b ldrb r3, [r3, #0]
800947e: b2db uxtb r3, r3
8009480: 2b07 cmp r3, #7
8009482: f043 8594 bne.w 800cfae <Display+0x6f3e>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8009486: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800948a: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800948e: f7fb fc9b bl 8004dc8 <LCD_SetColors>
if(!ipt1)
8009492: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8009496: b2db uxtb r3, r3
8009498: 2b00 cmp r3, #0
800949a: d148 bne.n 800952e <Display+0x34be>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
800949c: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
80094a0: b2db uxtb r3, r3
80094a2: 461a mov r2, r3
80094a4: 4b48 ldr r3, [pc, #288] ; (80095c8 <Display+0x3558>)
80094a6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80094aa: 2303 movs r3, #3
80094ac: 213c movs r1, #60 ; 0x3c
80094ae: 208c movs r0, #140 ; 0x8c
80094b0: f7fb fd50 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
80094b4: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
80094b8: b2db uxtb r3, r3
80094ba: 461a mov r2, r3
80094bc: 4b42 ldr r3, [pc, #264] ; (80095c8 <Display+0x3558>)
80094be: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80094c2: 2303 movs r3, #3
80094c4: 213c movs r1, #60 ; 0x3c
80094c6: 2093 movs r0, #147 ; 0x93
80094c8: f7fb fd44 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
80094cc: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80094d0: b2db uxtb r3, r3
80094d2: 461a mov r2, r3
80094d4: 4b3c ldr r3, [pc, #240] ; (80095c8 <Display+0x3558>)
80094d6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80094da: 2303 movs r3, #3
80094dc: 213c movs r1, #60 ; 0x3c
80094de: 209a movs r0, #154 ; 0x9a
80094e0: f7fb fd38 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
80094e4: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80094e8: b2db uxtb r3, r3
80094ea: 461a mov r2, r3
80094ec: 4b36 ldr r3, [pc, #216] ; (80095c8 <Display+0x3558>)
80094ee: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80094f2: 2303 movs r3, #3
80094f4: 213c movs r1, #60 ; 0x3c
80094f6: 20a1 movs r0, #161 ; 0xa1
80094f8: f7fb fd2c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[iee1], LEFT_MODE);
80094fc: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8009500: b2db uxtb r3, r3
8009502: 461a mov r2, r3
8009504: 4b30 ldr r3, [pc, #192] ; (80095c8 <Display+0x3558>)
8009506: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800950a: 2303 movs r3, #3
800950c: 213c movs r1, #60 ; 0x3c
800950e: 20a8 movs r0, #168 ; 0xa8
8009510: f7fb fd20 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8009514: 4b2e ldr r3, [pc, #184] ; (80095d0 <Display+0x3560>)
8009516: 681b ldr r3, [r3, #0]
8009518: 2b00 cmp r3, #0
800951a: f003 8548 beq.w 800cfae <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140+35, 60, ".", LEFT_MODE);
800951e: 2303 movs r3, #3
8009520: 4a2a ldr r2, [pc, #168] ; (80095cc <Display+0x355c>)
8009522: 213c movs r1, #60 ; 0x3c
8009524: 20af movs r0, #175 ; 0xaf
8009526: f7fb fd15 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
800952a: f003 bd40 b.w 800cfae <Display+0x6f3e>
if(ipt1 == 1)
800952e: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8009532: b2db uxtb r3, r3
8009534: 2b01 cmp r3, #1
8009536: d14f bne.n 80095d8 <Display+0x3568>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8009538: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
800953c: b2db uxtb r3, r3
800953e: 461a mov r2, r3
8009540: 4b21 ldr r3, [pc, #132] ; (80095c8 <Display+0x3558>)
8009542: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009546: 2303 movs r3, #3
8009548: 213c movs r1, #60 ; 0x3c
800954a: 208c movs r0, #140 ; 0x8c
800954c: f7fb fd02 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8009550: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8009554: b2db uxtb r3, r3
8009556: 461a mov r2, r3
8009558: 4b1b ldr r3, [pc, #108] ; (80095c8 <Display+0x3558>)
800955a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800955e: 2303 movs r3, #3
8009560: 213c movs r1, #60 ; 0x3c
8009562: 2093 movs r0, #147 ; 0x93
8009564: f7fb fcf6 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8009568: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
800956c: b2db uxtb r3, r3
800956e: 461a mov r2, r3
8009570: 4b15 ldr r3, [pc, #84] ; (80095c8 <Display+0x3558>)
8009572: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009576: 2303 movs r3, #3
8009578: 213c movs r1, #60 ; 0x3c
800957a: 209a movs r0, #154 ; 0x9a
800957c: f7fb fcea bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ied1], LEFT_MODE);
8009580: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8009584: b2db uxtb r3, r3
8009586: 461a mov r2, r3
8009588: 4b0f ldr r3, [pc, #60] ; (80095c8 <Display+0x3558>)
800958a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800958e: 2303 movs r3, #3
8009590: 213c movs r1, #60 ; 0x3c
8009592: 20a1 movs r0, #161 ; 0xa1
8009594: f7fb fcde bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8009598: 4b0d ldr r3, [pc, #52] ; (80095d0 <Display+0x3560>)
800959a: 681b ldr r3, [r3, #0]
800959c: 2b00 cmp r3, #0
800959e: d005 beq.n 80095ac <Display+0x353c>
BSP_LCD_DisplayStringAt(140+28, 60, ".", LEFT_MODE);
80095a0: 2303 movs r3, #3
80095a2: 4a0a ldr r2, [pc, #40] ; (80095cc <Display+0x355c>)
80095a4: 213c movs r1, #60 ; 0x3c
80095a6: 20a8 movs r0, #168 ; 0xa8
80095a8: f7fb fcd4 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
80095ac: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80095b0: b2db uxtb r3, r3
80095b2: 461a mov r2, r3
80095b4: 4b04 ldr r3, [pc, #16] ; (80095c8 <Display+0x3558>)
80095b6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80095ba: 2303 movs r3, #3
80095bc: 213c movs r1, #60 ; 0x3c
80095be: 20af movs r0, #175 ; 0xaf
80095c0: f7fb fcc8 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80095c4: f003 bcf3 b.w 800cfae <Display+0x6f3e>
80095c8: 2002096c .word 0x2002096c
80095cc: 080181c8 .word 0x080181c8
80095d0: 2006ba78 .word 0x2006ba78
80095d4: 20020010 .word 0x20020010
if(ipt1 == 2)
80095d8: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
80095dc: b2db uxtb r3, r3
80095de: 2b02 cmp r3, #2
80095e0: d147 bne.n 8009672 <Display+0x3602>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
80095e2: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
80095e6: b2db uxtb r3, r3
80095e8: 461a mov r2, r3
80095ea: 4bca ldr r3, [pc, #808] ; (8009914 <Display+0x38a4>)
80095ec: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80095f0: 2303 movs r3, #3
80095f2: 213c movs r1, #60 ; 0x3c
80095f4: 208c movs r0, #140 ; 0x8c
80095f6: f7fb fcad bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
80095fa: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
80095fe: b2db uxtb r3, r3
8009600: 461a mov r2, r3
8009602: 4bc4 ldr r3, [pc, #784] ; (8009914 <Display+0x38a4>)
8009604: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009608: 2303 movs r3, #3
800960a: 213c movs r1, #60 ; 0x3c
800960c: 2093 movs r0, #147 ; 0x93
800960e: f7fb fca1 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[ies1], LEFT_MODE);
8009612: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8009616: b2db uxtb r3, r3
8009618: 461a mov r2, r3
800961a: 4bbe ldr r3, [pc, #760] ; (8009914 <Display+0x38a4>)
800961c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009620: 2303 movs r3, #3
8009622: 213c movs r1, #60 ; 0x3c
8009624: 209a movs r0, #154 ; 0x9a
8009626: f7fb fc95 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800962a: 4bbb ldr r3, [pc, #748] ; (8009918 <Display+0x38a8>)
800962c: 681b ldr r3, [r3, #0]
800962e: 2b00 cmp r3, #0
8009630: d005 beq.n 800963e <Display+0x35ce>
BSP_LCD_DisplayStringAt(140+21, 60, ".", LEFT_MODE);
8009632: 2303 movs r3, #3
8009634: 4ab9 ldr r2, [pc, #740] ; (800991c <Display+0x38ac>)
8009636: 213c movs r1, #60 ; 0x3c
8009638: 20a1 movs r0, #161 ; 0xa1
800963a: f7fb fc8b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
800963e: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8009642: b2db uxtb r3, r3
8009644: 461a mov r2, r3
8009646: 4bb3 ldr r3, [pc, #716] ; (8009914 <Display+0x38a4>)
8009648: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800964c: 2303 movs r3, #3
800964e: 213c movs r1, #60 ; 0x3c
8009650: 20a8 movs r0, #168 ; 0xa8
8009652: f7fb fc7f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
8009656: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
800965a: b2db uxtb r3, r3
800965c: 461a mov r2, r3
800965e: 4bad ldr r3, [pc, #692] ; (8009914 <Display+0x38a4>)
8009660: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009664: 2303 movs r3, #3
8009666: 213c movs r1, #60 ; 0x3c
8009668: 20af movs r0, #175 ; 0xaf
800966a: f7fb fc73 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
800966e: f003 bc9e b.w 800cfae <Display+0x6f3e>
if(ipt1 == 3)
8009672: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8009676: b2db uxtb r3, r3
8009678: 2b03 cmp r3, #3
800967a: d147 bne.n 800970c <Display+0x369c>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
800967c: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
8009680: b2db uxtb r3, r3
8009682: 461a mov r2, r3
8009684: 4ba3 ldr r3, [pc, #652] ; (8009914 <Display+0x38a4>)
8009686: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800968a: 2303 movs r3, #3
800968c: 213c movs r1, #60 ; 0x3c
800968e: 208c movs r0, #140 ; 0x8c
8009690: f7fb fc60 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 60, (char *) pNUMS[iet1], LEFT_MODE);
8009694: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8009698: b2db uxtb r3, r3
800969a: 461a mov r2, r3
800969c: 4b9d ldr r3, [pc, #628] ; (8009914 <Display+0x38a4>)
800969e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80096a2: 2303 movs r3, #3
80096a4: 213c movs r1, #60 ; 0x3c
80096a6: 2093 movs r0, #147 ; 0x93
80096a8: f7fb fc54 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
80096ac: 4b9a ldr r3, [pc, #616] ; (8009918 <Display+0x38a8>)
80096ae: 681b ldr r3, [r3, #0]
80096b0: 2b00 cmp r3, #0
80096b2: d005 beq.n 80096c0 <Display+0x3650>
BSP_LCD_DisplayStringAt(140+14, 60, ".", LEFT_MODE);
80096b4: 2303 movs r3, #3
80096b6: 4a99 ldr r2, [pc, #612] ; (800991c <Display+0x38ac>)
80096b8: 213c movs r1, #60 ; 0x3c
80096ba: 209a movs r0, #154 ; 0x9a
80096bc: f7fb fc4a bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
80096c0: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
80096c4: b2db uxtb r3, r3
80096c6: 461a mov r2, r3
80096c8: 4b92 ldr r3, [pc, #584] ; (8009914 <Display+0x38a4>)
80096ca: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80096ce: 2303 movs r3, #3
80096d0: 213c movs r1, #60 ; 0x3c
80096d2: 20a1 movs r0, #161 ; 0xa1
80096d4: f7fb fc3e bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
80096d8: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
80096dc: b2db uxtb r3, r3
80096de: 461a mov r2, r3
80096e0: 4b8c ldr r3, [pc, #560] ; (8009914 <Display+0x38a4>)
80096e2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80096e6: 2303 movs r3, #3
80096e8: 213c movs r1, #60 ; 0x3c
80096ea: 20a8 movs r0, #168 ; 0xa8
80096ec: f7fb fc32 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
80096f0: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
80096f4: b2db uxtb r3, r3
80096f6: 461a mov r2, r3
80096f8: 4b86 ldr r3, [pc, #536] ; (8009914 <Display+0x38a4>)
80096fa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80096fe: 2303 movs r3, #3
8009700: 213c movs r1, #60 ; 0x3c
8009702: 20af movs r0, #175 ; 0xaf
8009704: f7fb fc26 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
8009708: f003 bc51 b.w 800cfae <Display+0x6f3e>
if(ipt1 == 4)
800970c: f897 3318 ldrb.w r3, [r7, #792] ; 0x318
8009710: b2db uxtb r3, r3
8009712: 2b04 cmp r3, #4
8009714: f043 844b bne.w 800cfae <Display+0x6f3e>
BSP_LCD_DisplayStringAt(140, 60, (char *) pNUMS[idt1], LEFT_MODE);
8009718: f897 331f ldrb.w r3, [r7, #799] ; 0x31f
800971c: b2db uxtb r3, r3
800971e: 461a mov r2, r3
8009720: 4b7c ldr r3, [pc, #496] ; (8009914 <Display+0x38a4>)
8009722: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009726: 2303 movs r3, #3
8009728: 213c movs r1, #60 ; 0x3c
800972a: 208c movs r0, #140 ; 0x8c
800972c: f7fb fc12 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8009730: 4b79 ldr r3, [pc, #484] ; (8009918 <Display+0x38a8>)
8009732: 681b ldr r3, [r3, #0]
8009734: 2b00 cmp r3, #0
8009736: d005 beq.n 8009744 <Display+0x36d4>
BSP_LCD_DisplayStringAt(140+7, 60, ".", LEFT_MODE);
8009738: 2303 movs r3, #3
800973a: 4a78 ldr r2, [pc, #480] ; (800991c <Display+0x38ac>)
800973c: 213c movs r1, #60 ; 0x3c
800973e: 2093 movs r0, #147 ; 0x93
8009740: f7fb fc08 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 60, (char *) pNUMS[iet1], LEFT_MODE);
8009744: f897 331e ldrb.w r3, [r7, #798] ; 0x31e
8009748: b2db uxtb r3, r3
800974a: 461a mov r2, r3
800974c: 4b71 ldr r3, [pc, #452] ; (8009914 <Display+0x38a4>)
800974e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009752: 2303 movs r3, #3
8009754: 213c movs r1, #60 ; 0x3c
8009756: 209a movs r0, #154 ; 0x9a
8009758: f7fb fbfc bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 60, (char *) pNUMS[ies1], LEFT_MODE);
800975c: f897 331d ldrb.w r3, [r7, #797] ; 0x31d
8009760: b2db uxtb r3, r3
8009762: 461a mov r2, r3
8009764: 4b6b ldr r3, [pc, #428] ; (8009914 <Display+0x38a4>)
8009766: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800976a: 2303 movs r3, #3
800976c: 213c movs r1, #60 ; 0x3c
800976e: 20a1 movs r0, #161 ; 0xa1
8009770: f7fb fbf0 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 60, (char *) pNUMS[ied1], LEFT_MODE);
8009774: f897 331c ldrb.w r3, [r7, #796] ; 0x31c
8009778: b2db uxtb r3, r3
800977a: 461a mov r2, r3
800977c: 4b65 ldr r3, [pc, #404] ; (8009914 <Display+0x38a4>)
800977e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009782: 2303 movs r3, #3
8009784: 213c movs r1, #60 ; 0x3c
8009786: 20a8 movs r0, #168 ; 0xa8
8009788: f7fb fbe4 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 60, (char *) pNUMS[iee1], LEFT_MODE);
800978c: f897 331b ldrb.w r3, [r7, #795] ; 0x31b
8009790: b2db uxtb r3, r3
8009792: 461a mov r2, r3
8009794: 4b5f ldr r3, [pc, #380] ; (8009914 <Display+0x38a4>)
8009796: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800979a: 2303 movs r3, #3
800979c: 213c movs r1, #60 ; 0x3c
800979e: 20af movs r0, #175 ; 0xaf
80097a0: f7fb fbd8 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_1)
80097a4: f003 bc03 b.w 800cfae <Display+0x6f3e>
if(menupos >= Kikdt_2 && menupos <= Kpt_2)
80097a8: 4b5d ldr r3, [pc, #372] ; (8009920 <Display+0x38b0>)
80097aa: 781b ldrb r3, [r3, #0]
80097ac: b2db uxtb r3, r3
80097ae: 2b09 cmp r3, #9
80097b0: f241 8151 bls.w 800aa56 <Display+0x49e6>
80097b4: 4b5a ldr r3, [pc, #360] ; (8009920 <Display+0x38b0>)
80097b6: 781b ldrb r3, [r3, #0]
80097b8: b2db uxtb r3, r3
80097ba: 2b0f cmp r3, #15
80097bc: f201 814b bhi.w 800aa56 <Display+0x49e6>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
80097c0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
80097c4: 4857 ldr r0, [pc, #348] ; (8009924 <Display+0x38b4>)
80097c6: f7fb faff bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
80097ca: f507 728e add.w r2, r7, #284 ; 0x11c
80097ce: 2303 movs r3, #3
80097d0: 213c movs r1, #60 ; 0x3c
80097d2: 208c movs r0, #140 ; 0x8c
80097d4: f7fb fbbe bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
80097d8: f107 02a4 add.w r2, r7, #164 ; 0xa4
80097dc: 2303 movs r3, #3
80097de: 2164 movs r1, #100 ; 0x64
80097e0: 208c movs r0, #140 ; 0x8c
80097e2: f7fb fbb7 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
80097e6: f107 0268 add.w r2, r7, #104 ; 0x68
80097ea: 2303 movs r3, #3
80097ec: 2178 movs r1, #120 ; 0x78
80097ee: 208c movs r0, #140 ; 0x8c
80097f0: f7fb fbb0 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
80097f4: 4b4a ldr r3, [pc, #296] ; (8009920 <Display+0x38b0>)
80097f6: 781b ldrb r3, [r3, #0]
80097f8: b2db uxtb r3, r3
80097fa: 2b0a cmp r3, #10
80097fc: f040 814c bne.w 8009a98 <Display+0x3a28>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8009800: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8009804: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8009808: f7fb fade bl 8004dc8 <LCD_SetColors>
if(blk)
800980c: 4b42 ldr r3, [pc, #264] ; (8009918 <Display+0x38a8>)
800980e: 681b ldr r3, [r3, #0]
8009810: 2b00 cmp r3, #0
8009812: d00b beq.n 800982c <Display+0x37bc>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009814: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009818: b2db uxtb r3, r3
800981a: 461a mov r2, r3
800981c: 4b3d ldr r3, [pc, #244] ; (8009914 <Display+0x38a4>)
800981e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009822: 2303 movs r3, #3
8009824: 2150 movs r1, #80 ; 0x50
8009826: 208c movs r0, #140 ; 0x8c
8009828: f7fb fb94 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(!ipt2)
800982c: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009830: b2db uxtb r3, r3
8009832: 2b00 cmp r3, #0
8009834: d131 bne.n 800989a <Display+0x382a>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009836: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800983a: b2db uxtb r3, r3
800983c: 461a mov r2, r3
800983e: 4b35 ldr r3, [pc, #212] ; (8009914 <Display+0x38a4>)
8009840: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009844: 2303 movs r3, #3
8009846: 2150 movs r1, #80 ; 0x50
8009848: 2093 movs r0, #147 ; 0x93
800984a: f7fb fb83 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800984e: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009852: b2db uxtb r3, r3
8009854: 461a mov r2, r3
8009856: 4b2f ldr r3, [pc, #188] ; (8009914 <Display+0x38a4>)
8009858: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800985c: 2303 movs r3, #3
800985e: 2150 movs r1, #80 ; 0x50
8009860: 209a movs r0, #154 ; 0x9a
8009862: f7fb fb77 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009866: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800986a: b2db uxtb r3, r3
800986c: 461a mov r2, r3
800986e: 4b29 ldr r3, [pc, #164] ; (8009914 <Display+0x38a4>)
8009870: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009874: 2303 movs r3, #3
8009876: 2150 movs r1, #80 ; 0x50
8009878: 20a1 movs r0, #161 ; 0xa1
800987a: f7fb fb6b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE);
800987e: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009882: b2db uxtb r3, r3
8009884: 461a mov r2, r3
8009886: 4b23 ldr r3, [pc, #140] ; (8009914 <Display+0x38a4>)
8009888: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800988c: 2303 movs r3, #3
800988e: 2150 movs r1, #80 ; 0x50
8009890: 20a8 movs r0, #168 ; 0xa8
8009892: f7fb fb5f bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009896: f003 bb8d b.w 800cfb4 <Display+0x6f44>
if(ipt2 == 1)
800989a: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800989e: b2db uxtb r3, r3
80098a0: 2b01 cmp r3, #1
80098a2: d141 bne.n 8009928 <Display+0x38b8>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
80098a4: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
80098a8: b2db uxtb r3, r3
80098aa: 461a mov r2, r3
80098ac: 4b19 ldr r3, [pc, #100] ; (8009914 <Display+0x38a4>)
80098ae: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80098b2: 2303 movs r3, #3
80098b4: 2150 movs r1, #80 ; 0x50
80098b6: 2093 movs r0, #147 ; 0x93
80098b8: f7fb fb4c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
80098bc: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
80098c0: b2db uxtb r3, r3
80098c2: 461a mov r2, r3
80098c4: 4b13 ldr r3, [pc, #76] ; (8009914 <Display+0x38a4>)
80098c6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80098ca: 2303 movs r3, #3
80098cc: 2150 movs r1, #80 ; 0x50
80098ce: 209a movs r0, #154 ; 0x9a
80098d0: f7fb fb40 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
80098d4: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
80098d8: b2db uxtb r3, r3
80098da: 461a mov r2, r3
80098dc: 4b0d ldr r3, [pc, #52] ; (8009914 <Display+0x38a4>)
80098de: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80098e2: 2303 movs r3, #3
80098e4: 2150 movs r1, #80 ; 0x50
80098e6: 20a1 movs r0, #161 ; 0xa1
80098e8: f7fb fb34 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE);
80098ec: 2303 movs r3, #3
80098ee: 4a0b ldr r2, [pc, #44] ; (800991c <Display+0x38ac>)
80098f0: 2150 movs r1, #80 ; 0x50
80098f2: 20a8 movs r0, #168 ; 0xa8
80098f4: f7fb fb2e bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
80098f8: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
80098fc: b2db uxtb r3, r3
80098fe: 461a mov r2, r3
8009900: 4b04 ldr r3, [pc, #16] ; (8009914 <Display+0x38a4>)
8009902: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009906: 2303 movs r3, #3
8009908: 2150 movs r1, #80 ; 0x50
800990a: 20af movs r0, #175 ; 0xaf
800990c: f7fb fb22 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009910: f003 bb50 b.w 800cfb4 <Display+0x6f44>
8009914: 2002096c .word 0x2002096c
8009918: 2006ba78 .word 0x2006ba78
800991c: 080181c8 .word 0x080181c8
8009920: 20020010 .word 0x20020010
8009924: ffd8aa57 .word 0xffd8aa57
if(ipt2 == 2)
8009928: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800992c: b2db uxtb r3, r3
800992e: 2b02 cmp r3, #2
8009930: d137 bne.n 80099a2 <Display+0x3932>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009932: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009936: b2db uxtb r3, r3
8009938: 461a mov r2, r3
800993a: 4bce ldr r3, [pc, #824] ; (8009c74 <Display+0x3c04>)
800993c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009940: 2303 movs r3, #3
8009942: 2150 movs r1, #80 ; 0x50
8009944: 2093 movs r0, #147 ; 0x93
8009946: f7fb fb05 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800994a: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800994e: b2db uxtb r3, r3
8009950: 461a mov r2, r3
8009952: 4bc8 ldr r3, [pc, #800] ; (8009c74 <Display+0x3c04>)
8009954: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009958: 2303 movs r3, #3
800995a: 2150 movs r1, #80 ; 0x50
800995c: 209a movs r0, #154 ; 0x9a
800995e: f7fb faf9 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE);
8009962: 2303 movs r3, #3
8009964: 4ac4 ldr r2, [pc, #784] ; (8009c78 <Display+0x3c08>)
8009966: 2150 movs r1, #80 ; 0x50
8009968: 20a1 movs r0, #161 ; 0xa1
800996a: f7fb faf3 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800996e: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009972: b2db uxtb r3, r3
8009974: 461a mov r2, r3
8009976: 4bbf ldr r3, [pc, #764] ; (8009c74 <Display+0x3c04>)
8009978: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800997c: 2303 movs r3, #3
800997e: 2150 movs r1, #80 ; 0x50
8009980: 20a8 movs r0, #168 ; 0xa8
8009982: f7fb fae7 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009986: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800998a: b2db uxtb r3, r3
800998c: 461a mov r2, r3
800998e: 4bb9 ldr r3, [pc, #740] ; (8009c74 <Display+0x3c04>)
8009990: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009994: 2303 movs r3, #3
8009996: 2150 movs r1, #80 ; 0x50
8009998: 20af movs r0, #175 ; 0xaf
800999a: f7fb fadb bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800999e: f003 bb09 b.w 800cfb4 <Display+0x6f44>
if(ipt2 == 3)
80099a2: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
80099a6: b2db uxtb r3, r3
80099a8: 2b03 cmp r3, #3
80099aa: d137 bne.n 8009a1c <Display+0x39ac>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
80099ac: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
80099b0: b2db uxtb r3, r3
80099b2: 461a mov r2, r3
80099b4: 4baf ldr r3, [pc, #700] ; (8009c74 <Display+0x3c04>)
80099b6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80099ba: 2303 movs r3, #3
80099bc: 2150 movs r1, #80 ; 0x50
80099be: 2093 movs r0, #147 ; 0x93
80099c0: f7fb fac8 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE);
80099c4: 2303 movs r3, #3
80099c6: 4aac ldr r2, [pc, #688] ; (8009c78 <Display+0x3c08>)
80099c8: 2150 movs r1, #80 ; 0x50
80099ca: 209a movs r0, #154 ; 0x9a
80099cc: f7fb fac2 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
80099d0: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
80099d4: b2db uxtb r3, r3
80099d6: 461a mov r2, r3
80099d8: 4ba6 ldr r3, [pc, #664] ; (8009c74 <Display+0x3c04>)
80099da: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80099de: 2303 movs r3, #3
80099e0: 2150 movs r1, #80 ; 0x50
80099e2: 20a1 movs r0, #161 ; 0xa1
80099e4: f7fb fab6 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
80099e8: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
80099ec: b2db uxtb r3, r3
80099ee: 461a mov r2, r3
80099f0: 4ba0 ldr r3, [pc, #640] ; (8009c74 <Display+0x3c04>)
80099f2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
80099f6: 2303 movs r3, #3
80099f8: 2150 movs r1, #80 ; 0x50
80099fa: 20a8 movs r0, #168 ; 0xa8
80099fc: f7fb faaa bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009a00: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009a04: b2db uxtb r3, r3
8009a06: 461a mov r2, r3
8009a08: 4b9a ldr r3, [pc, #616] ; (8009c74 <Display+0x3c04>)
8009a0a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009a0e: 2303 movs r3, #3
8009a10: 2150 movs r1, #80 ; 0x50
8009a12: 20af movs r0, #175 ; 0xaf
8009a14: f7fb fa9e bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009a18: f003 bacc b.w 800cfb4 <Display+0x6f44>
if(ipt2 == 4)
8009a1c: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009a20: b2db uxtb r3, r3
8009a22: 2b04 cmp r3, #4
8009a24: f043 82c6 bne.w 800cfb4 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE);
8009a28: 2303 movs r3, #3
8009a2a: 4a93 ldr r2, [pc, #588] ; (8009c78 <Display+0x3c08>)
8009a2c: 2150 movs r1, #80 ; 0x50
8009a2e: 2093 movs r0, #147 ; 0x93
8009a30: f7fb fa90 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009a34: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009a38: b2db uxtb r3, r3
8009a3a: 461a mov r2, r3
8009a3c: 4b8d ldr r3, [pc, #564] ; (8009c74 <Display+0x3c04>)
8009a3e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009a42: 2303 movs r3, #3
8009a44: 2150 movs r1, #80 ; 0x50
8009a46: 209a movs r0, #154 ; 0x9a
8009a48: f7fb fa84 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009a4c: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009a50: b2db uxtb r3, r3
8009a52: 461a mov r2, r3
8009a54: 4b87 ldr r3, [pc, #540] ; (8009c74 <Display+0x3c04>)
8009a56: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009a5a: 2303 movs r3, #3
8009a5c: 2150 movs r1, #80 ; 0x50
8009a5e: 20a1 movs r0, #161 ; 0xa1
8009a60: f7fb fa78 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009a64: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009a68: b2db uxtb r3, r3
8009a6a: 461a mov r2, r3
8009a6c: 4b81 ldr r3, [pc, #516] ; (8009c74 <Display+0x3c04>)
8009a6e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009a72: 2303 movs r3, #3
8009a74: 2150 movs r1, #80 ; 0x50
8009a76: 20a8 movs r0, #168 ; 0xa8
8009a78: f7fb fa6c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009a7c: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009a80: b2db uxtb r3, r3
8009a82: 461a mov r2, r3
8009a84: 4b7b ldr r3, [pc, #492] ; (8009c74 <Display+0x3c04>)
8009a86: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009a8a: 2303 movs r3, #3
8009a8c: 2150 movs r1, #80 ; 0x50
8009a8e: 20af movs r0, #175 ; 0xaf
8009a90: f7fb fa60 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009a94: f003 ba8e b.w 800cfb4 <Display+0x6f44>
if(menupos == Kikt_2)
8009a98: 4b78 ldr r3, [pc, #480] ; (8009c7c <Display+0x3c0c>)
8009a9a: 781b ldrb r3, [r3, #0]
8009a9c: b2db uxtb r3, r3
8009a9e: 2b0b cmp r3, #11
8009aa0: f040 818b bne.w 8009dba <Display+0x3d4a>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8009aa4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8009aa8: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8009aac: f7fb f98c bl 8004dc8 <LCD_SetColors>
if(!ipt2)
8009ab0: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009ab4: b2db uxtb r3, r3
8009ab6: 2b00 cmp r3, #0
8009ab8: d141 bne.n 8009b3e <Display+0x3ace>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009aba: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009abe: b2db uxtb r3, r3
8009ac0: 461a mov r2, r3
8009ac2: 4b6c ldr r3, [pc, #432] ; (8009c74 <Display+0x3c04>)
8009ac4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009ac8: 2303 movs r3, #3
8009aca: 2150 movs r1, #80 ; 0x50
8009acc: 208c movs r0, #140 ; 0x8c
8009ace: f7fb fa41 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8009ad2: 4b6b ldr r3, [pc, #428] ; (8009c80 <Display+0x3c10>)
8009ad4: 681b ldr r3, [r3, #0]
8009ad6: 2b00 cmp r3, #0
8009ad8: d00b beq.n 8009af2 <Display+0x3a82>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009ada: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009ade: b2db uxtb r3, r3
8009ae0: 461a mov r2, r3
8009ae2: 4b64 ldr r3, [pc, #400] ; (8009c74 <Display+0x3c04>)
8009ae4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009ae8: 2303 movs r3, #3
8009aea: 2150 movs r1, #80 ; 0x50
8009aec: 2093 movs r0, #147 ; 0x93
8009aee: f7fb fa31 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009af2: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009af6: b2db uxtb r3, r3
8009af8: 461a mov r2, r3
8009afa: 4b5e ldr r3, [pc, #376] ; (8009c74 <Display+0x3c04>)
8009afc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009b00: 2303 movs r3, #3
8009b02: 2150 movs r1, #80 ; 0x50
8009b04: 209a movs r0, #154 ; 0x9a
8009b06: f7fb fa25 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009b0a: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009b0e: b2db uxtb r3, r3
8009b10: 461a mov r2, r3
8009b12: 4b58 ldr r3, [pc, #352] ; (8009c74 <Display+0x3c04>)
8009b14: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009b18: 2303 movs r3, #3
8009b1a: 2150 movs r1, #80 ; 0x50
8009b1c: 20a1 movs r0, #161 ; 0xa1
8009b1e: f7fb fa19 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009b22: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009b26: b2db uxtb r3, r3
8009b28: 461a mov r2, r3
8009b2a: 4b52 ldr r3, [pc, #328] ; (8009c74 <Display+0x3c04>)
8009b2c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009b30: 2303 movs r3, #3
8009b32: 2150 movs r1, #80 ; 0x50
8009b34: 20a8 movs r0, #168 ; 0xa8
8009b36: f7fb fa0d bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009b3a: f003 ba3b b.w 800cfb4 <Display+0x6f44>
if(ipt2 == 1)
8009b3e: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009b42: b2db uxtb r3, r3
8009b44: 2b01 cmp r3, #1
8009b46: d147 bne.n 8009bd8 <Display+0x3b68>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009b48: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009b4c: b2db uxtb r3, r3
8009b4e: 461a mov r2, r3
8009b50: 4b48 ldr r3, [pc, #288] ; (8009c74 <Display+0x3c04>)
8009b52: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009b56: 2303 movs r3, #3
8009b58: 2150 movs r1, #80 ; 0x50
8009b5a: 208c movs r0, #140 ; 0x8c
8009b5c: f7fb f9fa bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8009b60: 4b47 ldr r3, [pc, #284] ; (8009c80 <Display+0x3c10>)
8009b62: 681b ldr r3, [r3, #0]
8009b64: 2b00 cmp r3, #0
8009b66: d00b beq.n 8009b80 <Display+0x3b10>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009b68: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009b6c: b2db uxtb r3, r3
8009b6e: 461a mov r2, r3
8009b70: 4b40 ldr r3, [pc, #256] ; (8009c74 <Display+0x3c04>)
8009b72: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009b76: 2303 movs r3, #3
8009b78: 2150 movs r1, #80 ; 0x50
8009b7a: 2093 movs r0, #147 ; 0x93
8009b7c: f7fb f9ea bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009b80: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009b84: b2db uxtb r3, r3
8009b86: 461a mov r2, r3
8009b88: 4b3a ldr r3, [pc, #232] ; (8009c74 <Display+0x3c04>)
8009b8a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009b8e: 2303 movs r3, #3
8009b90: 2150 movs r1, #80 ; 0x50
8009b92: 209a movs r0, #154 ; 0x9a
8009b94: f7fb f9de bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009b98: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009b9c: b2db uxtb r3, r3
8009b9e: 461a mov r2, r3
8009ba0: 4b34 ldr r3, [pc, #208] ; (8009c74 <Display+0x3c04>)
8009ba2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009ba6: 2303 movs r3, #3
8009ba8: 2150 movs r1, #80 ; 0x50
8009baa: 20a1 movs r0, #161 ; 0xa1
8009bac: f7fb f9d2 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE);
8009bb0: 2303 movs r3, #3
8009bb2: 4a31 ldr r2, [pc, #196] ; (8009c78 <Display+0x3c08>)
8009bb4: 2150 movs r1, #80 ; 0x50
8009bb6: 20a8 movs r0, #168 ; 0xa8
8009bb8: f7fb f9cc bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009bbc: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009bc0: b2db uxtb r3, r3
8009bc2: 461a mov r2, r3
8009bc4: 4b2b ldr r3, [pc, #172] ; (8009c74 <Display+0x3c04>)
8009bc6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009bca: 2303 movs r3, #3
8009bcc: 2150 movs r1, #80 ; 0x50
8009bce: 20af movs r0, #175 ; 0xaf
8009bd0: f7fb f9c0 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009bd4: f003 b9ee b.w 800cfb4 <Display+0x6f44>
if(ipt2 == 2)
8009bd8: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009bdc: b2db uxtb r3, r3
8009bde: 2b02 cmp r3, #2
8009be0: d150 bne.n 8009c84 <Display+0x3c14>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009be2: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009be6: b2db uxtb r3, r3
8009be8: 461a mov r2, r3
8009bea: 4b22 ldr r3, [pc, #136] ; (8009c74 <Display+0x3c04>)
8009bec: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009bf0: 2303 movs r3, #3
8009bf2: 2150 movs r1, #80 ; 0x50
8009bf4: 208c movs r0, #140 ; 0x8c
8009bf6: f7fb f9ad bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8009bfa: 4b21 ldr r3, [pc, #132] ; (8009c80 <Display+0x3c10>)
8009bfc: 681b ldr r3, [r3, #0]
8009bfe: 2b00 cmp r3, #0
8009c00: d00b beq.n 8009c1a <Display+0x3baa>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009c02: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009c06: b2db uxtb r3, r3
8009c08: 461a mov r2, r3
8009c0a: 4b1a ldr r3, [pc, #104] ; (8009c74 <Display+0x3c04>)
8009c0c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009c10: 2303 movs r3, #3
8009c12: 2150 movs r1, #80 ; 0x50
8009c14: 2093 movs r0, #147 ; 0x93
8009c16: f7fb f99d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009c1a: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009c1e: b2db uxtb r3, r3
8009c20: 461a mov r2, r3
8009c22: 4b14 ldr r3, [pc, #80] ; (8009c74 <Display+0x3c04>)
8009c24: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009c28: 2303 movs r3, #3
8009c2a: 2150 movs r1, #80 ; 0x50
8009c2c: 209a movs r0, #154 ; 0x9a
8009c2e: f7fb f991 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE);
8009c32: 2303 movs r3, #3
8009c34: 4a10 ldr r2, [pc, #64] ; (8009c78 <Display+0x3c08>)
8009c36: 2150 movs r1, #80 ; 0x50
8009c38: 20a1 movs r0, #161 ; 0xa1
8009c3a: f7fb f98b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009c3e: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009c42: b2db uxtb r3, r3
8009c44: 461a mov r2, r3
8009c46: 4b0b ldr r3, [pc, #44] ; (8009c74 <Display+0x3c04>)
8009c48: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009c4c: 2303 movs r3, #3
8009c4e: 2150 movs r1, #80 ; 0x50
8009c50: 20a8 movs r0, #168 ; 0xa8
8009c52: f7fb f97f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009c56: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009c5a: b2db uxtb r3, r3
8009c5c: 461a mov r2, r3
8009c5e: 4b05 ldr r3, [pc, #20] ; (8009c74 <Display+0x3c04>)
8009c60: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009c64: 2303 movs r3, #3
8009c66: 2150 movs r1, #80 ; 0x50
8009c68: 20af movs r0, #175 ; 0xaf
8009c6a: f7fb f973 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009c6e: f003 b9a1 b.w 800cfb4 <Display+0x6f44>
8009c72: bf00 nop
8009c74: 2002096c .word 0x2002096c
8009c78: 080181c8 .word 0x080181c8
8009c7c: 20020010 .word 0x20020010
8009c80: 2006ba78 .word 0x2006ba78
if(ipt2 == 3)
8009c84: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009c88: b2db uxtb r3, r3
8009c8a: 2b03 cmp r3, #3
8009c8c: d147 bne.n 8009d1e <Display+0x3cae>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009c8e: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009c92: b2db uxtb r3, r3
8009c94: 461a mov r2, r3
8009c96: 4bbf ldr r3, [pc, #764] ; (8009f94 <Display+0x3f24>)
8009c98: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009c9c: 2303 movs r3, #3
8009c9e: 2150 movs r1, #80 ; 0x50
8009ca0: 208c movs r0, #140 ; 0x8c
8009ca2: f7fb f957 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8009ca6: 4bbc ldr r3, [pc, #752] ; (8009f98 <Display+0x3f28>)
8009ca8: 681b ldr r3, [r3, #0]
8009caa: 2b00 cmp r3, #0
8009cac: d00b beq.n 8009cc6 <Display+0x3c56>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009cae: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009cb2: b2db uxtb r3, r3
8009cb4: 461a mov r2, r3
8009cb6: 4bb7 ldr r3, [pc, #732] ; (8009f94 <Display+0x3f24>)
8009cb8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009cbc: 2303 movs r3, #3
8009cbe: 2150 movs r1, #80 ; 0x50
8009cc0: 2093 movs r0, #147 ; 0x93
8009cc2: f7fb f947 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE);
8009cc6: 2303 movs r3, #3
8009cc8: 4ab4 ldr r2, [pc, #720] ; (8009f9c <Display+0x3f2c>)
8009cca: 2150 movs r1, #80 ; 0x50
8009ccc: 209a movs r0, #154 ; 0x9a
8009cce: f7fb f941 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009cd2: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009cd6: b2db uxtb r3, r3
8009cd8: 461a mov r2, r3
8009cda: 4bae ldr r3, [pc, #696] ; (8009f94 <Display+0x3f24>)
8009cdc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009ce0: 2303 movs r3, #3
8009ce2: 2150 movs r1, #80 ; 0x50
8009ce4: 20a1 movs r0, #161 ; 0xa1
8009ce6: f7fb f935 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009cea: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009cee: b2db uxtb r3, r3
8009cf0: 461a mov r2, r3
8009cf2: 4ba8 ldr r3, [pc, #672] ; (8009f94 <Display+0x3f24>)
8009cf4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009cf8: 2303 movs r3, #3
8009cfa: 2150 movs r1, #80 ; 0x50
8009cfc: 20a8 movs r0, #168 ; 0xa8
8009cfe: f7fb f929 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009d02: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009d06: b2db uxtb r3, r3
8009d08: 461a mov r2, r3
8009d0a: 4ba2 ldr r3, [pc, #648] ; (8009f94 <Display+0x3f24>)
8009d0c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009d10: 2303 movs r3, #3
8009d12: 2150 movs r1, #80 ; 0x50
8009d14: 20af movs r0, #175 ; 0xaf
8009d16: f7fb f91d bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009d1a: f003 b94b b.w 800cfb4 <Display+0x6f44>
if(ipt2 == 4)
8009d1e: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009d22: b2db uxtb r3, r3
8009d24: 2b04 cmp r3, #4
8009d26: f043 8145 bne.w 800cfb4 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009d2a: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009d2e: b2db uxtb r3, r3
8009d30: 461a mov r2, r3
8009d32: 4b98 ldr r3, [pc, #608] ; (8009f94 <Display+0x3f24>)
8009d34: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009d38: 2303 movs r3, #3
8009d3a: 2150 movs r1, #80 ; 0x50
8009d3c: 208c movs r0, #140 ; 0x8c
8009d3e: f7fb f909 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE);
8009d42: 2303 movs r3, #3
8009d44: 4a95 ldr r2, [pc, #596] ; (8009f9c <Display+0x3f2c>)
8009d46: 2150 movs r1, #80 ; 0x50
8009d48: 2093 movs r0, #147 ; 0x93
8009d4a: f7fb f903 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8009d4e: 4b92 ldr r3, [pc, #584] ; (8009f98 <Display+0x3f28>)
8009d50: 681b ldr r3, [r3, #0]
8009d52: 2b00 cmp r3, #0
8009d54: d00b beq.n 8009d6e <Display+0x3cfe>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009d56: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009d5a: b2db uxtb r3, r3
8009d5c: 461a mov r2, r3
8009d5e: 4b8d ldr r3, [pc, #564] ; (8009f94 <Display+0x3f24>)
8009d60: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009d64: 2303 movs r3, #3
8009d66: 2150 movs r1, #80 ; 0x50
8009d68: 209a movs r0, #154 ; 0x9a
8009d6a: f7fb f8f3 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009d6e: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009d72: b2db uxtb r3, r3
8009d74: 461a mov r2, r3
8009d76: 4b87 ldr r3, [pc, #540] ; (8009f94 <Display+0x3f24>)
8009d78: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009d7c: 2303 movs r3, #3
8009d7e: 2150 movs r1, #80 ; 0x50
8009d80: 20a1 movs r0, #161 ; 0xa1
8009d82: f7fb f8e7 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009d86: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009d8a: b2db uxtb r3, r3
8009d8c: 461a mov r2, r3
8009d8e: 4b81 ldr r3, [pc, #516] ; (8009f94 <Display+0x3f24>)
8009d90: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009d94: 2303 movs r3, #3
8009d96: 2150 movs r1, #80 ; 0x50
8009d98: 20a8 movs r0, #168 ; 0xa8
8009d9a: f7fb f8db bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009d9e: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009da2: b2db uxtb r3, r3
8009da4: 461a mov r2, r3
8009da6: 4b7b ldr r3, [pc, #492] ; (8009f94 <Display+0x3f24>)
8009da8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009dac: 2303 movs r3, #3
8009dae: 2150 movs r1, #80 ; 0x50
8009db0: 20af movs r0, #175 ; 0xaf
8009db2: f7fb f8cf bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009db6: f003 b8fd b.w 800cfb4 <Display+0x6f44>
if(menupos == Kiks_2)
8009dba: 4b79 ldr r3, [pc, #484] ; (8009fa0 <Display+0x3f30>)
8009dbc: 781b ldrb r3, [r3, #0]
8009dbe: b2db uxtb r3, r3
8009dc0: 2b0c cmp r3, #12
8009dc2: f040 818a bne.w 800a0da <Display+0x406a>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
8009dc6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
8009dca: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
8009dce: f7fa fffb bl 8004dc8 <LCD_SetColors>
if(!ipt2)
8009dd2: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009dd6: b2db uxtb r3, r3
8009dd8: 2b00 cmp r3, #0
8009dda: d141 bne.n 8009e60 <Display+0x3df0>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009ddc: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009de0: b2db uxtb r3, r3
8009de2: 461a mov r2, r3
8009de4: 4b6b ldr r3, [pc, #428] ; (8009f94 <Display+0x3f24>)
8009de6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009dea: 2303 movs r3, #3
8009dec: 2150 movs r1, #80 ; 0x50
8009dee: 208c movs r0, #140 ; 0x8c
8009df0: f7fb f8b0 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009df4: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009df8: b2db uxtb r3, r3
8009dfa: 461a mov r2, r3
8009dfc: 4b65 ldr r3, [pc, #404] ; (8009f94 <Display+0x3f24>)
8009dfe: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009e02: 2303 movs r3, #3
8009e04: 2150 movs r1, #80 ; 0x50
8009e06: 2093 movs r0, #147 ; 0x93
8009e08: f7fb f8a4 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8009e0c: 4b62 ldr r3, [pc, #392] ; (8009f98 <Display+0x3f28>)
8009e0e: 681b ldr r3, [r3, #0]
8009e10: 2b00 cmp r3, #0
8009e12: d00b beq.n 8009e2c <Display+0x3dbc>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009e14: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009e18: b2db uxtb r3, r3
8009e1a: 461a mov r2, r3
8009e1c: 4b5d ldr r3, [pc, #372] ; (8009f94 <Display+0x3f24>)
8009e1e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009e22: 2303 movs r3, #3
8009e24: 2150 movs r1, #80 ; 0x50
8009e26: 209a movs r0, #154 ; 0x9a
8009e28: f7fb f894 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009e2c: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009e30: b2db uxtb r3, r3
8009e32: 461a mov r2, r3
8009e34: 4b57 ldr r3, [pc, #348] ; (8009f94 <Display+0x3f24>)
8009e36: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009e3a: 2303 movs r3, #3
8009e3c: 2150 movs r1, #80 ; 0x50
8009e3e: 20a1 movs r0, #161 ; 0xa1
8009e40: f7fb f888 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009e44: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009e48: b2db uxtb r3, r3
8009e4a: 461a mov r2, r3
8009e4c: 4b51 ldr r3, [pc, #324] ; (8009f94 <Display+0x3f24>)
8009e4e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009e52: 2303 movs r3, #3
8009e54: 2150 movs r1, #80 ; 0x50
8009e56: 20a8 movs r0, #168 ; 0xa8
8009e58: f7fb f87c bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009e5c: f003 b8aa b.w 800cfb4 <Display+0x6f44>
if(ipt2 == 1)
8009e60: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009e64: b2db uxtb r3, r3
8009e66: 2b01 cmp r3, #1
8009e68: d147 bne.n 8009efa <Display+0x3e8a>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009e6a: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009e6e: b2db uxtb r3, r3
8009e70: 461a mov r2, r3
8009e72: 4b48 ldr r3, [pc, #288] ; (8009f94 <Display+0x3f24>)
8009e74: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009e78: 2303 movs r3, #3
8009e7a: 2150 movs r1, #80 ; 0x50
8009e7c: 208c movs r0, #140 ; 0x8c
8009e7e: f7fb f869 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009e82: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009e86: b2db uxtb r3, r3
8009e88: 461a mov r2, r3
8009e8a: 4b42 ldr r3, [pc, #264] ; (8009f94 <Display+0x3f24>)
8009e8c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009e90: 2303 movs r3, #3
8009e92: 2150 movs r1, #80 ; 0x50
8009e94: 2093 movs r0, #147 ; 0x93
8009e96: f7fb f85d bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8009e9a: 4b3f ldr r3, [pc, #252] ; (8009f98 <Display+0x3f28>)
8009e9c: 681b ldr r3, [r3, #0]
8009e9e: 2b00 cmp r3, #0
8009ea0: d00b beq.n 8009eba <Display+0x3e4a>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009ea2: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009ea6: b2db uxtb r3, r3
8009ea8: 461a mov r2, r3
8009eaa: 4b3a ldr r3, [pc, #232] ; (8009f94 <Display+0x3f24>)
8009eac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009eb0: 2303 movs r3, #3
8009eb2: 2150 movs r1, #80 ; 0x50
8009eb4: 209a movs r0, #154 ; 0x9a
8009eb6: f7fb f84d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009eba: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009ebe: b2db uxtb r3, r3
8009ec0: 461a mov r2, r3
8009ec2: 4b34 ldr r3, [pc, #208] ; (8009f94 <Display+0x3f24>)
8009ec4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009ec8: 2303 movs r3, #3
8009eca: 2150 movs r1, #80 ; 0x50
8009ecc: 20a1 movs r0, #161 ; 0xa1
8009ece: f7fb f841 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE);
8009ed2: 2303 movs r3, #3
8009ed4: 4a31 ldr r2, [pc, #196] ; (8009f9c <Display+0x3f2c>)
8009ed6: 2150 movs r1, #80 ; 0x50
8009ed8: 20a8 movs r0, #168 ; 0xa8
8009eda: f7fb f83b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009ede: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009ee2: b2db uxtb r3, r3
8009ee4: 461a mov r2, r3
8009ee6: 4b2b ldr r3, [pc, #172] ; (8009f94 <Display+0x3f24>)
8009ee8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009eec: 2303 movs r3, #3
8009eee: 2150 movs r1, #80 ; 0x50
8009ef0: 20af movs r0, #175 ; 0xaf
8009ef2: f7fb f82f bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009ef6: f003 b85d b.w 800cfb4 <Display+0x6f44>
if(ipt2 == 2)
8009efa: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009efe: b2db uxtb r3, r3
8009f00: 2b02 cmp r3, #2
8009f02: d14f bne.n 8009fa4 <Display+0x3f34>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009f04: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009f08: b2db uxtb r3, r3
8009f0a: 461a mov r2, r3
8009f0c: 4b21 ldr r3, [pc, #132] ; (8009f94 <Display+0x3f24>)
8009f0e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009f12: 2303 movs r3, #3
8009f14: 2150 movs r1, #80 ; 0x50
8009f16: 208c movs r0, #140 ; 0x8c
8009f18: f7fb f81c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009f1c: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009f20: b2db uxtb r3, r3
8009f22: 461a mov r2, r3
8009f24: 4b1b ldr r3, [pc, #108] ; (8009f94 <Display+0x3f24>)
8009f26: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009f2a: 2303 movs r3, #3
8009f2c: 2150 movs r1, #80 ; 0x50
8009f2e: 2093 movs r0, #147 ; 0x93
8009f30: f7fb f810 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8009f34: 4b18 ldr r3, [pc, #96] ; (8009f98 <Display+0x3f28>)
8009f36: 681b ldr r3, [r3, #0]
8009f38: 2b00 cmp r3, #0
8009f3a: d00b beq.n 8009f54 <Display+0x3ee4>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009f3c: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009f40: b2db uxtb r3, r3
8009f42: 461a mov r2, r3
8009f44: 4b13 ldr r3, [pc, #76] ; (8009f94 <Display+0x3f24>)
8009f46: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009f4a: 2303 movs r3, #3
8009f4c: 2150 movs r1, #80 ; 0x50
8009f4e: 209a movs r0, #154 ; 0x9a
8009f50: f7fb f800 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE);
8009f54: 2303 movs r3, #3
8009f56: 4a11 ldr r2, [pc, #68] ; (8009f9c <Display+0x3f2c>)
8009f58: 2150 movs r1, #80 ; 0x50
8009f5a: 20a1 movs r0, #161 ; 0xa1
8009f5c: f7fa fffa bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
8009f60: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
8009f64: b2db uxtb r3, r3
8009f66: 461a mov r2, r3
8009f68: 4b0a ldr r3, [pc, #40] ; (8009f94 <Display+0x3f24>)
8009f6a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009f6e: 2303 movs r3, #3
8009f70: 2150 movs r1, #80 ; 0x50
8009f72: 20a8 movs r0, #168 ; 0xa8
8009f74: f7fa ffee bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
8009f78: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
8009f7c: b2db uxtb r3, r3
8009f7e: 461a mov r2, r3
8009f80: 4b04 ldr r3, [pc, #16] ; (8009f94 <Display+0x3f24>)
8009f82: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009f86: 2303 movs r3, #3
8009f88: 2150 movs r1, #80 ; 0x50
8009f8a: 20af movs r0, #175 ; 0xaf
8009f8c: f7fa ffe2 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
8009f90: f003 b810 b.w 800cfb4 <Display+0x6f44>
8009f94: 2002096c .word 0x2002096c
8009f98: 2006ba78 .word 0x2006ba78
8009f9c: 080181c8 .word 0x080181c8
8009fa0: 20020010 .word 0x20020010
if(ipt2 == 3)
8009fa4: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
8009fa8: b2db uxtb r3, r3
8009faa: 2b03 cmp r3, #3
8009fac: d147 bne.n 800a03e <Display+0x3fce>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
8009fae: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
8009fb2: b2db uxtb r3, r3
8009fb4: 461a mov r2, r3
8009fb6: 4bbf ldr r3, [pc, #764] ; (800a2b4 <Display+0x4244>)
8009fb8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009fbc: 2303 movs r3, #3
8009fbe: 2150 movs r1, #80 ; 0x50
8009fc0: 208c movs r0, #140 ; 0x8c
8009fc2: f7fa ffc7 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
8009fc6: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
8009fca: b2db uxtb r3, r3
8009fcc: 461a mov r2, r3
8009fce: 4bb9 ldr r3, [pc, #740] ; (800a2b4 <Display+0x4244>)
8009fd0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
8009fd4: 2303 movs r3, #3
8009fd6: 2150 movs r1, #80 ; 0x50
8009fd8: 2093 movs r0, #147 ; 0x93
8009fda: f7fa ffbb bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE);
8009fde: 2303 movs r3, #3
8009fe0: 4ab5 ldr r2, [pc, #724] ; (800a2b8 <Display+0x4248>)
8009fe2: 2150 movs r1, #80 ; 0x50
8009fe4: 209a movs r0, #154 ; 0x9a
8009fe6: f7fa ffb5 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
8009fea: 4bb4 ldr r3, [pc, #720] ; (800a2bc <Display+0x424c>)
8009fec: 681b ldr r3, [r3, #0]
8009fee: 2b00 cmp r3, #0
8009ff0: d00b beq.n 800a00a <Display+0x3f9a>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
8009ff2: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
8009ff6: b2db uxtb r3, r3
8009ff8: 461a mov r2, r3
8009ffa: 4bae ldr r3, [pc, #696] ; (800a2b4 <Display+0x4244>)
8009ffc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a000: 2303 movs r3, #3
800a002: 2150 movs r1, #80 ; 0x50
800a004: 20a1 movs r0, #161 ; 0xa1
800a006: f7fa ffa5 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a00a: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a00e: b2db uxtb r3, r3
800a010: 461a mov r2, r3
800a012: 4ba8 ldr r3, [pc, #672] ; (800a2b4 <Display+0x4244>)
800a014: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a018: 2303 movs r3, #3
800a01a: 2150 movs r1, #80 ; 0x50
800a01c: 20a8 movs r0, #168 ; 0xa8
800a01e: f7fa ff99 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a022: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a026: b2db uxtb r3, r3
800a028: 461a mov r2, r3
800a02a: 4ba2 ldr r3, [pc, #648] ; (800a2b4 <Display+0x4244>)
800a02c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a030: 2303 movs r3, #3
800a032: 2150 movs r1, #80 ; 0x50
800a034: 20af movs r0, #175 ; 0xaf
800a036: f7fa ff8d bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a03a: f002 bfbb b.w 800cfb4 <Display+0x6f44>
if(ipt2 == 4)
800a03e: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a042: b2db uxtb r3, r3
800a044: 2b04 cmp r3, #4
800a046: f042 87b5 bne.w 800cfb4 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a04a: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a04e: b2db uxtb r3, r3
800a050: 461a mov r2, r3
800a052: 4b98 ldr r3, [pc, #608] ; (800a2b4 <Display+0x4244>)
800a054: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a058: 2303 movs r3, #3
800a05a: 2150 movs r1, #80 ; 0x50
800a05c: 208c movs r0, #140 ; 0x8c
800a05e: f7fa ff79 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE);
800a062: 2303 movs r3, #3
800a064: 4a94 ldr r2, [pc, #592] ; (800a2b8 <Display+0x4248>)
800a066: 2150 movs r1, #80 ; 0x50
800a068: 2093 movs r0, #147 ; 0x93
800a06a: f7fa ff73 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a06e: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a072: b2db uxtb r3, r3
800a074: 461a mov r2, r3
800a076: 4b8f ldr r3, [pc, #572] ; (800a2b4 <Display+0x4244>)
800a078: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a07c: 2303 movs r3, #3
800a07e: 2150 movs r1, #80 ; 0x50
800a080: 209a movs r0, #154 ; 0x9a
800a082: f7fa ff67 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800a086: 4b8d ldr r3, [pc, #564] ; (800a2bc <Display+0x424c>)
800a088: 681b ldr r3, [r3, #0]
800a08a: 2b00 cmp r3, #0
800a08c: d00b beq.n 800a0a6 <Display+0x4036>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a08e: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a092: b2db uxtb r3, r3
800a094: 461a mov r2, r3
800a096: 4b87 ldr r3, [pc, #540] ; (800a2b4 <Display+0x4244>)
800a098: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a09c: 2303 movs r3, #3
800a09e: 2150 movs r1, #80 ; 0x50
800a0a0: 20a1 movs r0, #161 ; 0xa1
800a0a2: f7fa ff57 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a0a6: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a0aa: b2db uxtb r3, r3
800a0ac: 461a mov r2, r3
800a0ae: 4b81 ldr r3, [pc, #516] ; (800a2b4 <Display+0x4244>)
800a0b0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a0b4: 2303 movs r3, #3
800a0b6: 2150 movs r1, #80 ; 0x50
800a0b8: 20a8 movs r0, #168 ; 0xa8
800a0ba: f7fa ff4b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a0be: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a0c2: b2db uxtb r3, r3
800a0c4: 461a mov r2, r3
800a0c6: 4b7b ldr r3, [pc, #492] ; (800a2b4 <Display+0x4244>)
800a0c8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a0cc: 2303 movs r3, #3
800a0ce: 2150 movs r1, #80 ; 0x50
800a0d0: 20af movs r0, #175 ; 0xaf
800a0d2: f7fa ff3f bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a0d6: f002 bf6d b.w 800cfb4 <Display+0x6f44>
if(menupos == Kikd_2)
800a0da: 4b79 ldr r3, [pc, #484] ; (800a2c0 <Display+0x4250>)
800a0dc: 781b ldrb r3, [r3, #0]
800a0de: b2db uxtb r3, r3
800a0e0: 2b0d cmp r3, #13
800a0e2: f040 818a bne.w 800a3fa <Display+0x438a>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800a0e6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800a0ea: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800a0ee: f7fa fe6b bl 8004dc8 <LCD_SetColors>
if(!ipt2)
800a0f2: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a0f6: b2db uxtb r3, r3
800a0f8: 2b00 cmp r3, #0
800a0fa: d141 bne.n 800a180 <Display+0x4110>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a0fc: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a100: b2db uxtb r3, r3
800a102: 461a mov r2, r3
800a104: 4b6b ldr r3, [pc, #428] ; (800a2b4 <Display+0x4244>)
800a106: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a10a: 2303 movs r3, #3
800a10c: 2150 movs r1, #80 ; 0x50
800a10e: 208c movs r0, #140 ; 0x8c
800a110: f7fa ff20 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a114: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a118: b2db uxtb r3, r3
800a11a: 461a mov r2, r3
800a11c: 4b65 ldr r3, [pc, #404] ; (800a2b4 <Display+0x4244>)
800a11e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a122: 2303 movs r3, #3
800a124: 2150 movs r1, #80 ; 0x50
800a126: 2093 movs r0, #147 ; 0x93
800a128: f7fa ff14 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a12c: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a130: b2db uxtb r3, r3
800a132: 461a mov r2, r3
800a134: 4b5f ldr r3, [pc, #380] ; (800a2b4 <Display+0x4244>)
800a136: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a13a: 2303 movs r3, #3
800a13c: 2150 movs r1, #80 ; 0x50
800a13e: 209a movs r0, #154 ; 0x9a
800a140: f7fa ff08 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800a144: 4b5d ldr r3, [pc, #372] ; (800a2bc <Display+0x424c>)
800a146: 681b ldr r3, [r3, #0]
800a148: 2b00 cmp r3, #0
800a14a: d00b beq.n 800a164 <Display+0x40f4>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a14c: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a150: b2db uxtb r3, r3
800a152: 461a mov r2, r3
800a154: 4b57 ldr r3, [pc, #348] ; (800a2b4 <Display+0x4244>)
800a156: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a15a: 2303 movs r3, #3
800a15c: 2150 movs r1, #80 ; 0x50
800a15e: 20a1 movs r0, #161 ; 0xa1
800a160: f7fa fef8 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a164: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a168: b2db uxtb r3, r3
800a16a: 461a mov r2, r3
800a16c: 4b51 ldr r3, [pc, #324] ; (800a2b4 <Display+0x4244>)
800a16e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a172: 2303 movs r3, #3
800a174: 2150 movs r1, #80 ; 0x50
800a176: 20a8 movs r0, #168 ; 0xa8
800a178: f7fa feec bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a17c: f002 bf1a b.w 800cfb4 <Display+0x6f44>
if(ipt2 == 1)
800a180: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a184: b2db uxtb r3, r3
800a186: 2b01 cmp r3, #1
800a188: d147 bne.n 800a21a <Display+0x41aa>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a18a: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a18e: b2db uxtb r3, r3
800a190: 461a mov r2, r3
800a192: 4b48 ldr r3, [pc, #288] ; (800a2b4 <Display+0x4244>)
800a194: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a198: 2303 movs r3, #3
800a19a: 2150 movs r1, #80 ; 0x50
800a19c: 208c movs r0, #140 ; 0x8c
800a19e: f7fa fed9 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a1a2: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a1a6: b2db uxtb r3, r3
800a1a8: 461a mov r2, r3
800a1aa: 4b42 ldr r3, [pc, #264] ; (800a2b4 <Display+0x4244>)
800a1ac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a1b0: 2303 movs r3, #3
800a1b2: 2150 movs r1, #80 ; 0x50
800a1b4: 2093 movs r0, #147 ; 0x93
800a1b6: f7fa fecd bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a1ba: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a1be: b2db uxtb r3, r3
800a1c0: 461a mov r2, r3
800a1c2: 4b3c ldr r3, [pc, #240] ; (800a2b4 <Display+0x4244>)
800a1c4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a1c8: 2303 movs r3, #3
800a1ca: 2150 movs r1, #80 ; 0x50
800a1cc: 209a movs r0, #154 ; 0x9a
800a1ce: f7fa fec1 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800a1d2: 4b3a ldr r3, [pc, #232] ; (800a2bc <Display+0x424c>)
800a1d4: 681b ldr r3, [r3, #0]
800a1d6: 2b00 cmp r3, #0
800a1d8: d00b beq.n 800a1f2 <Display+0x4182>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a1da: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a1de: b2db uxtb r3, r3
800a1e0: 461a mov r2, r3
800a1e2: 4b34 ldr r3, [pc, #208] ; (800a2b4 <Display+0x4244>)
800a1e4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a1e8: 2303 movs r3, #3
800a1ea: 2150 movs r1, #80 ; 0x50
800a1ec: 20a1 movs r0, #161 ; 0xa1
800a1ee: f7fa feb1 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE);
800a1f2: 2303 movs r3, #3
800a1f4: 4a30 ldr r2, [pc, #192] ; (800a2b8 <Display+0x4248>)
800a1f6: 2150 movs r1, #80 ; 0x50
800a1f8: 20a8 movs r0, #168 ; 0xa8
800a1fa: f7fa feab bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a1fe: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a202: b2db uxtb r3, r3
800a204: 461a mov r2, r3
800a206: 4b2b ldr r3, [pc, #172] ; (800a2b4 <Display+0x4244>)
800a208: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a20c: 2303 movs r3, #3
800a20e: 2150 movs r1, #80 ; 0x50
800a210: 20af movs r0, #175 ; 0xaf
800a212: f7fa fe9f bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a216: f002 becd b.w 800cfb4 <Display+0x6f44>
if(ipt2 == 2)
800a21a: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a21e: b2db uxtb r3, r3
800a220: 2b02 cmp r3, #2
800a222: d14f bne.n 800a2c4 <Display+0x4254>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a224: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a228: b2db uxtb r3, r3
800a22a: 461a mov r2, r3
800a22c: 4b21 ldr r3, [pc, #132] ; (800a2b4 <Display+0x4244>)
800a22e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a232: 2303 movs r3, #3
800a234: 2150 movs r1, #80 ; 0x50
800a236: 208c movs r0, #140 ; 0x8c
800a238: f7fa fe8c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a23c: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a240: b2db uxtb r3, r3
800a242: 461a mov r2, r3
800a244: 4b1b ldr r3, [pc, #108] ; (800a2b4 <Display+0x4244>)
800a246: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a24a: 2303 movs r3, #3
800a24c: 2150 movs r1, #80 ; 0x50
800a24e: 2093 movs r0, #147 ; 0x93
800a250: f7fa fe80 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a254: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a258: b2db uxtb r3, r3
800a25a: 461a mov r2, r3
800a25c: 4b15 ldr r3, [pc, #84] ; (800a2b4 <Display+0x4244>)
800a25e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a262: 2303 movs r3, #3
800a264: 2150 movs r1, #80 ; 0x50
800a266: 209a movs r0, #154 ; 0x9a
800a268: f7fa fe74 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE);
800a26c: 2303 movs r3, #3
800a26e: 4a12 ldr r2, [pc, #72] ; (800a2b8 <Display+0x4248>)
800a270: 2150 movs r1, #80 ; 0x50
800a272: 20a1 movs r0, #161 ; 0xa1
800a274: f7fa fe6e bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800a278: 4b10 ldr r3, [pc, #64] ; (800a2bc <Display+0x424c>)
800a27a: 681b ldr r3, [r3, #0]
800a27c: 2b00 cmp r3, #0
800a27e: d00b beq.n 800a298 <Display+0x4228>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a280: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a284: b2db uxtb r3, r3
800a286: 461a mov r2, r3
800a288: 4b0a ldr r3, [pc, #40] ; (800a2b4 <Display+0x4244>)
800a28a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a28e: 2303 movs r3, #3
800a290: 2150 movs r1, #80 ; 0x50
800a292: 20a8 movs r0, #168 ; 0xa8
800a294: f7fa fe5e bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a298: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a29c: b2db uxtb r3, r3
800a29e: 461a mov r2, r3
800a2a0: 4b04 ldr r3, [pc, #16] ; (800a2b4 <Display+0x4244>)
800a2a2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a2a6: 2303 movs r3, #3
800a2a8: 2150 movs r1, #80 ; 0x50
800a2aa: 20af movs r0, #175 ; 0xaf
800a2ac: f7fa fe52 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a2b0: f002 be80 b.w 800cfb4 <Display+0x6f44>
800a2b4: 2002096c .word 0x2002096c
800a2b8: 080181c8 .word 0x080181c8
800a2bc: 2006ba78 .word 0x2006ba78
800a2c0: 20020010 .word 0x20020010
if(ipt2 == 3)
800a2c4: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a2c8: b2db uxtb r3, r3
800a2ca: 2b03 cmp r3, #3
800a2cc: d147 bne.n 800a35e <Display+0x42ee>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a2ce: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a2d2: b2db uxtb r3, r3
800a2d4: 461a mov r2, r3
800a2d6: 4bc1 ldr r3, [pc, #772] ; (800a5dc <Display+0x456c>)
800a2d8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a2dc: 2303 movs r3, #3
800a2de: 2150 movs r1, #80 ; 0x50
800a2e0: 208c movs r0, #140 ; 0x8c
800a2e2: f7fa fe37 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a2e6: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a2ea: b2db uxtb r3, r3
800a2ec: 461a mov r2, r3
800a2ee: 4bbb ldr r3, [pc, #748] ; (800a5dc <Display+0x456c>)
800a2f0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a2f4: 2303 movs r3, #3
800a2f6: 2150 movs r1, #80 ; 0x50
800a2f8: 2093 movs r0, #147 ; 0x93
800a2fa: f7fa fe2b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE);
800a2fe: 2303 movs r3, #3
800a300: 4ab7 ldr r2, [pc, #732] ; (800a5e0 <Display+0x4570>)
800a302: 2150 movs r1, #80 ; 0x50
800a304: 209a movs r0, #154 ; 0x9a
800a306: f7fa fe25 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a30a: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a30e: b2db uxtb r3, r3
800a310: 461a mov r2, r3
800a312: 4bb2 ldr r3, [pc, #712] ; (800a5dc <Display+0x456c>)
800a314: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a318: 2303 movs r3, #3
800a31a: 2150 movs r1, #80 ; 0x50
800a31c: 20a1 movs r0, #161 ; 0xa1
800a31e: f7fa fe19 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800a322: 4bb0 ldr r3, [pc, #704] ; (800a5e4 <Display+0x4574>)
800a324: 681b ldr r3, [r3, #0]
800a326: 2b00 cmp r3, #0
800a328: d00b beq.n 800a342 <Display+0x42d2>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a32a: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a32e: b2db uxtb r3, r3
800a330: 461a mov r2, r3
800a332: 4baa ldr r3, [pc, #680] ; (800a5dc <Display+0x456c>)
800a334: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a338: 2303 movs r3, #3
800a33a: 2150 movs r1, #80 ; 0x50
800a33c: 20a8 movs r0, #168 ; 0xa8
800a33e: f7fa fe09 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a342: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a346: b2db uxtb r3, r3
800a348: 461a mov r2, r3
800a34a: 4ba4 ldr r3, [pc, #656] ; (800a5dc <Display+0x456c>)
800a34c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a350: 2303 movs r3, #3
800a352: 2150 movs r1, #80 ; 0x50
800a354: 20af movs r0, #175 ; 0xaf
800a356: f7fa fdfd bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a35a: f002 be2b b.w 800cfb4 <Display+0x6f44>
if(ipt2 == 4)
800a35e: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a362: b2db uxtb r3, r3
800a364: 2b04 cmp r3, #4
800a366: f042 8625 bne.w 800cfb4 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a36a: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a36e: b2db uxtb r3, r3
800a370: 461a mov r2, r3
800a372: 4b9a ldr r3, [pc, #616] ; (800a5dc <Display+0x456c>)
800a374: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a378: 2303 movs r3, #3
800a37a: 2150 movs r1, #80 ; 0x50
800a37c: 208c movs r0, #140 ; 0x8c
800a37e: f7fa fde9 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE);
800a382: 2303 movs r3, #3
800a384: 4a96 ldr r2, [pc, #600] ; (800a5e0 <Display+0x4570>)
800a386: 2150 movs r1, #80 ; 0x50
800a388: 2093 movs r0, #147 ; 0x93
800a38a: f7fa fde3 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a38e: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a392: b2db uxtb r3, r3
800a394: 461a mov r2, r3
800a396: 4b91 ldr r3, [pc, #580] ; (800a5dc <Display+0x456c>)
800a398: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a39c: 2303 movs r3, #3
800a39e: 2150 movs r1, #80 ; 0x50
800a3a0: 209a movs r0, #154 ; 0x9a
800a3a2: f7fa fdd7 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a3a6: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a3aa: b2db uxtb r3, r3
800a3ac: 461a mov r2, r3
800a3ae: 4b8b ldr r3, [pc, #556] ; (800a5dc <Display+0x456c>)
800a3b0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a3b4: 2303 movs r3, #3
800a3b6: 2150 movs r1, #80 ; 0x50
800a3b8: 20a1 movs r0, #161 ; 0xa1
800a3ba: f7fa fdcb bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800a3be: 4b89 ldr r3, [pc, #548] ; (800a5e4 <Display+0x4574>)
800a3c0: 681b ldr r3, [r3, #0]
800a3c2: 2b00 cmp r3, #0
800a3c4: d00b beq.n 800a3de <Display+0x436e>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a3c6: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a3ca: b2db uxtb r3, r3
800a3cc: 461a mov r2, r3
800a3ce: 4b83 ldr r3, [pc, #524] ; (800a5dc <Display+0x456c>)
800a3d0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a3d4: 2303 movs r3, #3
800a3d6: 2150 movs r1, #80 ; 0x50
800a3d8: 20a8 movs r0, #168 ; 0xa8
800a3da: f7fa fdbb bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a3de: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a3e2: b2db uxtb r3, r3
800a3e4: 461a mov r2, r3
800a3e6: 4b7d ldr r3, [pc, #500] ; (800a5dc <Display+0x456c>)
800a3e8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a3ec: 2303 movs r3, #3
800a3ee: 2150 movs r1, #80 ; 0x50
800a3f0: 20af movs r0, #175 ; 0xaf
800a3f2: f7fa fdaf bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a3f6: f002 bddd b.w 800cfb4 <Display+0x6f44>
if(menupos == Kike_2)
800a3fa: 4b7b ldr r3, [pc, #492] ; (800a5e8 <Display+0x4578>)
800a3fc: 781b ldrb r3, [r3, #0]
800a3fe: b2db uxtb r3, r3
800a400: 2b0e cmp r3, #14
800a402: f040 8190 bne.w 800a726 <Display+0x46b6>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800a406: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800a40a: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800a40e: f7fa fcdb bl 8004dc8 <LCD_SetColors>
if(!ipt2)
800a412: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a416: b2db uxtb r3, r3
800a418: 2b00 cmp r3, #0
800a41a: d142 bne.n 800a4a2 <Display+0x4432>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a41c: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a420: b2db uxtb r3, r3
800a422: 461a mov r2, r3
800a424: 4b6d ldr r3, [pc, #436] ; (800a5dc <Display+0x456c>)
800a426: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a42a: 2303 movs r3, #3
800a42c: 2150 movs r1, #80 ; 0x50
800a42e: 208c movs r0, #140 ; 0x8c
800a430: f7fa fd90 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a434: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a438: b2db uxtb r3, r3
800a43a: 461a mov r2, r3
800a43c: 4b67 ldr r3, [pc, #412] ; (800a5dc <Display+0x456c>)
800a43e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a442: 2303 movs r3, #3
800a444: 2150 movs r1, #80 ; 0x50
800a446: 2093 movs r0, #147 ; 0x93
800a448: f7fa fd84 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a44c: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a450: b2db uxtb r3, r3
800a452: 461a mov r2, r3
800a454: 4b61 ldr r3, [pc, #388] ; (800a5dc <Display+0x456c>)
800a456: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a45a: 2303 movs r3, #3
800a45c: 2150 movs r1, #80 ; 0x50
800a45e: 209a movs r0, #154 ; 0x9a
800a460: f7fa fd78 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a464: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a468: b2db uxtb r3, r3
800a46a: 461a mov r2, r3
800a46c: 4b5b ldr r3, [pc, #364] ; (800a5dc <Display+0x456c>)
800a46e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a472: 2303 movs r3, #3
800a474: 2150 movs r1, #80 ; 0x50
800a476: 20a1 movs r0, #161 ; 0xa1
800a478: f7fa fd6c bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800a47c: 4b59 ldr r3, [pc, #356] ; (800a5e4 <Display+0x4574>)
800a47e: 681b ldr r3, [r3, #0]
800a480: 2b00 cmp r3, #0
800a482: f002 8597 beq.w 800cfb4 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a486: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a48a: b2db uxtb r3, r3
800a48c: 461a mov r2, r3
800a48e: 4b53 ldr r3, [pc, #332] ; (800a5dc <Display+0x456c>)
800a490: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a494: 2303 movs r3, #3
800a496: 2150 movs r1, #80 ; 0x50
800a498: 20a8 movs r0, #168 ; 0xa8
800a49a: f7fa fd5b bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a49e: f002 bd89 b.w 800cfb4 <Display+0x6f44>
if(ipt2 == 1)
800a4a2: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a4a6: b2db uxtb r3, r3
800a4a8: 2b01 cmp r3, #1
800a4aa: d148 bne.n 800a53e <Display+0x44ce>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a4ac: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a4b0: b2db uxtb r3, r3
800a4b2: 461a mov r2, r3
800a4b4: 4b49 ldr r3, [pc, #292] ; (800a5dc <Display+0x456c>)
800a4b6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a4ba: 2303 movs r3, #3
800a4bc: 2150 movs r1, #80 ; 0x50
800a4be: 208c movs r0, #140 ; 0x8c
800a4c0: f7fa fd48 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a4c4: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a4c8: b2db uxtb r3, r3
800a4ca: 461a mov r2, r3
800a4cc: 4b43 ldr r3, [pc, #268] ; (800a5dc <Display+0x456c>)
800a4ce: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a4d2: 2303 movs r3, #3
800a4d4: 2150 movs r1, #80 ; 0x50
800a4d6: 2093 movs r0, #147 ; 0x93
800a4d8: f7fa fd3c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a4dc: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a4e0: b2db uxtb r3, r3
800a4e2: 461a mov r2, r3
800a4e4: 4b3d ldr r3, [pc, #244] ; (800a5dc <Display+0x456c>)
800a4e6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a4ea: 2303 movs r3, #3
800a4ec: 2150 movs r1, #80 ; 0x50
800a4ee: 209a movs r0, #154 ; 0x9a
800a4f0: f7fa fd30 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a4f4: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a4f8: b2db uxtb r3, r3
800a4fa: 461a mov r2, r3
800a4fc: 4b37 ldr r3, [pc, #220] ; (800a5dc <Display+0x456c>)
800a4fe: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a502: 2303 movs r3, #3
800a504: 2150 movs r1, #80 ; 0x50
800a506: 20a1 movs r0, #161 ; 0xa1
800a508: f7fa fd24 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE);
800a50c: 2303 movs r3, #3
800a50e: 4a34 ldr r2, [pc, #208] ; (800a5e0 <Display+0x4570>)
800a510: 2150 movs r1, #80 ; 0x50
800a512: 20a8 movs r0, #168 ; 0xa8
800a514: f7fa fd1e bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800a518: 4b32 ldr r3, [pc, #200] ; (800a5e4 <Display+0x4574>)
800a51a: 681b ldr r3, [r3, #0]
800a51c: 2b00 cmp r3, #0
800a51e: f002 8549 beq.w 800cfb4 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a522: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a526: b2db uxtb r3, r3
800a528: 461a mov r2, r3
800a52a: 4b2c ldr r3, [pc, #176] ; (800a5dc <Display+0x456c>)
800a52c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a530: 2303 movs r3, #3
800a532: 2150 movs r1, #80 ; 0x50
800a534: 20af movs r0, #175 ; 0xaf
800a536: f7fa fd0d bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a53a: f002 bd3b b.w 800cfb4 <Display+0x6f44>
if(ipt2 == 2)
800a53e: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a542: b2db uxtb r3, r3
800a544: 2b02 cmp r3, #2
800a546: d151 bne.n 800a5ec <Display+0x457c>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a548: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a54c: b2db uxtb r3, r3
800a54e: 461a mov r2, r3
800a550: 4b22 ldr r3, [pc, #136] ; (800a5dc <Display+0x456c>)
800a552: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a556: 2303 movs r3, #3
800a558: 2150 movs r1, #80 ; 0x50
800a55a: 208c movs r0, #140 ; 0x8c
800a55c: f7fa fcfa bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a560: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a564: b2db uxtb r3, r3
800a566: 461a mov r2, r3
800a568: 4b1c ldr r3, [pc, #112] ; (800a5dc <Display+0x456c>)
800a56a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a56e: 2303 movs r3, #3
800a570: 2150 movs r1, #80 ; 0x50
800a572: 2093 movs r0, #147 ; 0x93
800a574: f7fa fcee bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a578: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a57c: b2db uxtb r3, r3
800a57e: 461a mov r2, r3
800a580: 4b16 ldr r3, [pc, #88] ; (800a5dc <Display+0x456c>)
800a582: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a586: 2303 movs r3, #3
800a588: 2150 movs r1, #80 ; 0x50
800a58a: 209a movs r0, #154 ; 0x9a
800a58c: f7fa fce2 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE);
800a590: 2303 movs r3, #3
800a592: 4a13 ldr r2, [pc, #76] ; (800a5e0 <Display+0x4570>)
800a594: 2150 movs r1, #80 ; 0x50
800a596: 20a1 movs r0, #161 ; 0xa1
800a598: f7fa fcdc bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a59c: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a5a0: b2db uxtb r3, r3
800a5a2: 461a mov r2, r3
800a5a4: 4b0d ldr r3, [pc, #52] ; (800a5dc <Display+0x456c>)
800a5a6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a5aa: 2303 movs r3, #3
800a5ac: 2150 movs r1, #80 ; 0x50
800a5ae: 20a8 movs r0, #168 ; 0xa8
800a5b0: f7fa fcd0 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800a5b4: 4b0b ldr r3, [pc, #44] ; (800a5e4 <Display+0x4574>)
800a5b6: 681b ldr r3, [r3, #0]
800a5b8: 2b00 cmp r3, #0
800a5ba: f002 84fb beq.w 800cfb4 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a5be: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a5c2: b2db uxtb r3, r3
800a5c4: 461a mov r2, r3
800a5c6: 4b05 ldr r3, [pc, #20] ; (800a5dc <Display+0x456c>)
800a5c8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a5cc: 2303 movs r3, #3
800a5ce: 2150 movs r1, #80 ; 0x50
800a5d0: 20af movs r0, #175 ; 0xaf
800a5d2: f7fa fcbf bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a5d6: f002 bced b.w 800cfb4 <Display+0x6f44>
800a5da: bf00 nop
800a5dc: 2002096c .word 0x2002096c
800a5e0: 080181c8 .word 0x080181c8
800a5e4: 2006ba78 .word 0x2006ba78
800a5e8: 20020010 .word 0x20020010
if(ipt2 == 3)
800a5ec: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a5f0: b2db uxtb r3, r3
800a5f2: 2b03 cmp r3, #3
800a5f4: d148 bne.n 800a688 <Display+0x4618>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a5f6: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a5fa: b2db uxtb r3, r3
800a5fc: 461a mov r2, r3
800a5fe: 4bc4 ldr r3, [pc, #784] ; (800a910 <Display+0x48a0>)
800a600: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a604: 2303 movs r3, #3
800a606: 2150 movs r1, #80 ; 0x50
800a608: 208c movs r0, #140 ; 0x8c
800a60a: f7fa fca3 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a60e: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a612: b2db uxtb r3, r3
800a614: 461a mov r2, r3
800a616: 4bbe ldr r3, [pc, #760] ; (800a910 <Display+0x48a0>)
800a618: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a61c: 2303 movs r3, #3
800a61e: 2150 movs r1, #80 ; 0x50
800a620: 2093 movs r0, #147 ; 0x93
800a622: f7fa fc97 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE);
800a626: 2303 movs r3, #3
800a628: 4aba ldr r2, [pc, #744] ; (800a914 <Display+0x48a4>)
800a62a: 2150 movs r1, #80 ; 0x50
800a62c: 209a movs r0, #154 ; 0x9a
800a62e: f7fa fc91 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a632: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a636: b2db uxtb r3, r3
800a638: 461a mov r2, r3
800a63a: 4bb5 ldr r3, [pc, #724] ; (800a910 <Display+0x48a0>)
800a63c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a640: 2303 movs r3, #3
800a642: 2150 movs r1, #80 ; 0x50
800a644: 20a1 movs r0, #161 ; 0xa1
800a646: f7fa fc85 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a64a: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a64e: b2db uxtb r3, r3
800a650: 461a mov r2, r3
800a652: 4baf ldr r3, [pc, #700] ; (800a910 <Display+0x48a0>)
800a654: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a658: 2303 movs r3, #3
800a65a: 2150 movs r1, #80 ; 0x50
800a65c: 20a8 movs r0, #168 ; 0xa8
800a65e: f7fa fc79 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800a662: 4bad ldr r3, [pc, #692] ; (800a918 <Display+0x48a8>)
800a664: 681b ldr r3, [r3, #0]
800a666: 2b00 cmp r3, #0
800a668: f002 84a4 beq.w 800cfb4 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a66c: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a670: b2db uxtb r3, r3
800a672: 461a mov r2, r3
800a674: 4ba6 ldr r3, [pc, #664] ; (800a910 <Display+0x48a0>)
800a676: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a67a: 2303 movs r3, #3
800a67c: 2150 movs r1, #80 ; 0x50
800a67e: 20af movs r0, #175 ; 0xaf
800a680: f7fa fc68 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a684: f002 bc96 b.w 800cfb4 <Display+0x6f44>
if(ipt2 == 4)
800a688: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a68c: b2db uxtb r3, r3
800a68e: 2b04 cmp r3, #4
800a690: f042 8490 bne.w 800cfb4 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a694: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a698: b2db uxtb r3, r3
800a69a: 461a mov r2, r3
800a69c: 4b9c ldr r3, [pc, #624] ; (800a910 <Display+0x48a0>)
800a69e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a6a2: 2303 movs r3, #3
800a6a4: 2150 movs r1, #80 ; 0x50
800a6a6: 208c movs r0, #140 ; 0x8c
800a6a8: f7fa fc54 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE);
800a6ac: 2303 movs r3, #3
800a6ae: 4a99 ldr r2, [pc, #612] ; (800a914 <Display+0x48a4>)
800a6b0: 2150 movs r1, #80 ; 0x50
800a6b2: 2093 movs r0, #147 ; 0x93
800a6b4: f7fa fc4e bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a6b8: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a6bc: b2db uxtb r3, r3
800a6be: 461a mov r2, r3
800a6c0: 4b93 ldr r3, [pc, #588] ; (800a910 <Display+0x48a0>)
800a6c2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a6c6: 2303 movs r3, #3
800a6c8: 2150 movs r1, #80 ; 0x50
800a6ca: 209a movs r0, #154 ; 0x9a
800a6cc: f7fa fc42 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a6d0: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a6d4: b2db uxtb r3, r3
800a6d6: 461a mov r2, r3
800a6d8: 4b8d ldr r3, [pc, #564] ; (800a910 <Display+0x48a0>)
800a6da: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a6de: 2303 movs r3, #3
800a6e0: 2150 movs r1, #80 ; 0x50
800a6e2: 20a1 movs r0, #161 ; 0xa1
800a6e4: f7fa fc36 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a6e8: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a6ec: b2db uxtb r3, r3
800a6ee: 461a mov r2, r3
800a6f0: 4b87 ldr r3, [pc, #540] ; (800a910 <Display+0x48a0>)
800a6f2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a6f6: 2303 movs r3, #3
800a6f8: 2150 movs r1, #80 ; 0x50
800a6fa: 20a8 movs r0, #168 ; 0xa8
800a6fc: f7fa fc2a bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800a700: 4b85 ldr r3, [pc, #532] ; (800a918 <Display+0x48a8>)
800a702: 681b ldr r3, [r3, #0]
800a704: 2b00 cmp r3, #0
800a706: f002 8455 beq.w 800cfb4 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a70a: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a70e: b2db uxtb r3, r3
800a710: 461a mov r2, r3
800a712: 4b7f ldr r3, [pc, #508] ; (800a910 <Display+0x48a0>)
800a714: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a718: 2303 movs r3, #3
800a71a: 2150 movs r1, #80 ; 0x50
800a71c: 20af movs r0, #175 ; 0xaf
800a71e: f7fa fc19 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a722: f002 bc47 b.w 800cfb4 <Display+0x6f44>
if(menupos == Kpt_2)
800a726: 4b7d ldr r3, [pc, #500] ; (800a91c <Display+0x48ac>)
800a728: 781b ldrb r3, [r3, #0]
800a72a: b2db uxtb r3, r3
800a72c: 2b0f cmp r3, #15
800a72e: f042 8441 bne.w 800cfb4 <Display+0x6f44>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800a732: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800a736: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800a73a: f7fa fb45 bl 8004dc8 <LCD_SetColors>
if(!ipt2)
800a73e: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a742: b2db uxtb r3, r3
800a744: 2b00 cmp r3, #0
800a746: d148 bne.n 800a7da <Display+0x476a>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a748: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a74c: b2db uxtb r3, r3
800a74e: 461a mov r2, r3
800a750: 4b6f ldr r3, [pc, #444] ; (800a910 <Display+0x48a0>)
800a752: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a756: 2303 movs r3, #3
800a758: 2150 movs r1, #80 ; 0x50
800a75a: 208c movs r0, #140 ; 0x8c
800a75c: f7fa fbfa bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a760: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a764: b2db uxtb r3, r3
800a766: 461a mov r2, r3
800a768: 4b69 ldr r3, [pc, #420] ; (800a910 <Display+0x48a0>)
800a76a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a76e: 2303 movs r3, #3
800a770: 2150 movs r1, #80 ; 0x50
800a772: 2093 movs r0, #147 ; 0x93
800a774: f7fa fbee bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a778: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a77c: b2db uxtb r3, r3
800a77e: 461a mov r2, r3
800a780: 4b63 ldr r3, [pc, #396] ; (800a910 <Display+0x48a0>)
800a782: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a786: 2303 movs r3, #3
800a788: 2150 movs r1, #80 ; 0x50
800a78a: 209a movs r0, #154 ; 0x9a
800a78c: f7fa fbe2 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a790: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a794: b2db uxtb r3, r3
800a796: 461a mov r2, r3
800a798: 4b5d ldr r3, [pc, #372] ; (800a910 <Display+0x48a0>)
800a79a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a79e: 2303 movs r3, #3
800a7a0: 2150 movs r1, #80 ; 0x50
800a7a2: 20a1 movs r0, #161 ; 0xa1
800a7a4: f7fa fbd6 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a7a8: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a7ac: b2db uxtb r3, r3
800a7ae: 461a mov r2, r3
800a7b0: 4b57 ldr r3, [pc, #348] ; (800a910 <Display+0x48a0>)
800a7b2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a7b6: 2303 movs r3, #3
800a7b8: 2150 movs r1, #80 ; 0x50
800a7ba: 20a8 movs r0, #168 ; 0xa8
800a7bc: f7fa fbca bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800a7c0: 4b55 ldr r3, [pc, #340] ; (800a918 <Display+0x48a8>)
800a7c2: 681b ldr r3, [r3, #0]
800a7c4: 2b00 cmp r3, #0
800a7c6: f002 83f5 beq.w 800cfb4 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140+35, 80, ".", LEFT_MODE);
800a7ca: 2303 movs r3, #3
800a7cc: 4a51 ldr r2, [pc, #324] ; (800a914 <Display+0x48a4>)
800a7ce: 2150 movs r1, #80 ; 0x50
800a7d0: 20af movs r0, #175 ; 0xaf
800a7d2: f7fa fbbf bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a7d6: f002 bbed b.w 800cfb4 <Display+0x6f44>
if(ipt2 == 1)
800a7da: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a7de: b2db uxtb r3, r3
800a7e0: 2b01 cmp r3, #1
800a7e2: d147 bne.n 800a874 <Display+0x4804>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a7e4: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a7e8: b2db uxtb r3, r3
800a7ea: 461a mov r2, r3
800a7ec: 4b48 ldr r3, [pc, #288] ; (800a910 <Display+0x48a0>)
800a7ee: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a7f2: 2303 movs r3, #3
800a7f4: 2150 movs r1, #80 ; 0x50
800a7f6: 208c movs r0, #140 ; 0x8c
800a7f8: f7fa fbac bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a7fc: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a800: b2db uxtb r3, r3
800a802: 461a mov r2, r3
800a804: 4b42 ldr r3, [pc, #264] ; (800a910 <Display+0x48a0>)
800a806: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a80a: 2303 movs r3, #3
800a80c: 2150 movs r1, #80 ; 0x50
800a80e: 2093 movs r0, #147 ; 0x93
800a810: f7fa fba0 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a814: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a818: b2db uxtb r3, r3
800a81a: 461a mov r2, r3
800a81c: 4b3c ldr r3, [pc, #240] ; (800a910 <Display+0x48a0>)
800a81e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a822: 2303 movs r3, #3
800a824: 2150 movs r1, #80 ; 0x50
800a826: 209a movs r0, #154 ; 0x9a
800a828: f7fa fb94 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a82c: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a830: b2db uxtb r3, r3
800a832: 461a mov r2, r3
800a834: 4b36 ldr r3, [pc, #216] ; (800a910 <Display+0x48a0>)
800a836: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a83a: 2303 movs r3, #3
800a83c: 2150 movs r1, #80 ; 0x50
800a83e: 20a1 movs r0, #161 ; 0xa1
800a840: f7fa fb88 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800a844: 4b34 ldr r3, [pc, #208] ; (800a918 <Display+0x48a8>)
800a846: 681b ldr r3, [r3, #0]
800a848: 2b00 cmp r3, #0
800a84a: d005 beq.n 800a858 <Display+0x47e8>
BSP_LCD_DisplayStringAt(140+28, 80, ".", LEFT_MODE);
800a84c: 2303 movs r3, #3
800a84e: 4a31 ldr r2, [pc, #196] ; (800a914 <Display+0x48a4>)
800a850: 2150 movs r1, #80 ; 0x50
800a852: 20a8 movs r0, #168 ; 0xa8
800a854: f7fa fb7e bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a858: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a85c: b2db uxtb r3, r3
800a85e: 461a mov r2, r3
800a860: 4b2b ldr r3, [pc, #172] ; (800a910 <Display+0x48a0>)
800a862: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a866: 2303 movs r3, #3
800a868: 2150 movs r1, #80 ; 0x50
800a86a: 20af movs r0, #175 ; 0xaf
800a86c: f7fa fb72 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a870: f002 bba0 b.w 800cfb4 <Display+0x6f44>
if(ipt2 == 2)
800a874: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a878: b2db uxtb r3, r3
800a87a: 2b02 cmp r3, #2
800a87c: d150 bne.n 800a920 <Display+0x48b0>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a87e: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a882: b2db uxtb r3, r3
800a884: 461a mov r2, r3
800a886: 4b22 ldr r3, [pc, #136] ; (800a910 <Display+0x48a0>)
800a888: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a88c: 2303 movs r3, #3
800a88e: 2150 movs r1, #80 ; 0x50
800a890: 208c movs r0, #140 ; 0x8c
800a892: f7fa fb5f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a896: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a89a: b2db uxtb r3, r3
800a89c: 461a mov r2, r3
800a89e: 4b1c ldr r3, [pc, #112] ; (800a910 <Display+0x48a0>)
800a8a0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a8a4: 2303 movs r3, #3
800a8a6: 2150 movs r1, #80 ; 0x50
800a8a8: 2093 movs r0, #147 ; 0x93
800a8aa: f7fa fb53 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a8ae: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a8b2: b2db uxtb r3, r3
800a8b4: 461a mov r2, r3
800a8b6: 4b16 ldr r3, [pc, #88] ; (800a910 <Display+0x48a0>)
800a8b8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a8bc: 2303 movs r3, #3
800a8be: 2150 movs r1, #80 ; 0x50
800a8c0: 209a movs r0, #154 ; 0x9a
800a8c2: f7fa fb47 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800a8c6: 4b14 ldr r3, [pc, #80] ; (800a918 <Display+0x48a8>)
800a8c8: 681b ldr r3, [r3, #0]
800a8ca: 2b00 cmp r3, #0
800a8cc: d005 beq.n 800a8da <Display+0x486a>
BSP_LCD_DisplayStringAt(140+21, 80, ".", LEFT_MODE);
800a8ce: 2303 movs r3, #3
800a8d0: 4a10 ldr r2, [pc, #64] ; (800a914 <Display+0x48a4>)
800a8d2: 2150 movs r1, #80 ; 0x50
800a8d4: 20a1 movs r0, #161 ; 0xa1
800a8d6: f7fa fb3d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a8da: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a8de: b2db uxtb r3, r3
800a8e0: 461a mov r2, r3
800a8e2: 4b0b ldr r3, [pc, #44] ; (800a910 <Display+0x48a0>)
800a8e4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a8e8: 2303 movs r3, #3
800a8ea: 2150 movs r1, #80 ; 0x50
800a8ec: 20a8 movs r0, #168 ; 0xa8
800a8ee: f7fa fb31 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a8f2: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a8f6: b2db uxtb r3, r3
800a8f8: 461a mov r2, r3
800a8fa: 4b05 ldr r3, [pc, #20] ; (800a910 <Display+0x48a0>)
800a8fc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a900: 2303 movs r3, #3
800a902: 2150 movs r1, #80 ; 0x50
800a904: 20af movs r0, #175 ; 0xaf
800a906: f7fa fb25 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a90a: f002 bb53 b.w 800cfb4 <Display+0x6f44>
800a90e: bf00 nop
800a910: 2002096c .word 0x2002096c
800a914: 080181c8 .word 0x080181c8
800a918: 2006ba78 .word 0x2006ba78
800a91c: 20020010 .word 0x20020010
if(ipt2 == 3)
800a920: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a924: b2db uxtb r3, r3
800a926: 2b03 cmp r3, #3
800a928: d147 bne.n 800a9ba <Display+0x494a>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a92a: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a92e: b2db uxtb r3, r3
800a930: 461a mov r2, r3
800a932: 4bc2 ldr r3, [pc, #776] ; (800ac3c <Display+0x4bcc>)
800a934: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a938: 2303 movs r3, #3
800a93a: 2150 movs r1, #80 ; 0x50
800a93c: 208c movs r0, #140 ; 0x8c
800a93e: f7fa fb09 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a942: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a946: b2db uxtb r3, r3
800a948: 461a mov r2, r3
800a94a: 4bbc ldr r3, [pc, #752] ; (800ac3c <Display+0x4bcc>)
800a94c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a950: 2303 movs r3, #3
800a952: 2150 movs r1, #80 ; 0x50
800a954: 2093 movs r0, #147 ; 0x93
800a956: f7fa fafd bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800a95a: 4bb9 ldr r3, [pc, #740] ; (800ac40 <Display+0x4bd0>)
800a95c: 681b ldr r3, [r3, #0]
800a95e: 2b00 cmp r3, #0
800a960: d005 beq.n 800a96e <Display+0x48fe>
BSP_LCD_DisplayStringAt(140+14, 80, ".", LEFT_MODE);
800a962: 2303 movs r3, #3
800a964: 4ab7 ldr r2, [pc, #732] ; (800ac44 <Display+0x4bd4>)
800a966: 2150 movs r1, #80 ; 0x50
800a968: 209a movs r0, #154 ; 0x9a
800a96a: f7fa faf3 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800a96e: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800a972: b2db uxtb r3, r3
800a974: 461a mov r2, r3
800a976: 4bb1 ldr r3, [pc, #708] ; (800ac3c <Display+0x4bcc>)
800a978: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a97c: 2303 movs r3, #3
800a97e: 2150 movs r1, #80 ; 0x50
800a980: 20a1 movs r0, #161 ; 0xa1
800a982: f7fa fae7 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800a986: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800a98a: b2db uxtb r3, r3
800a98c: 461a mov r2, r3
800a98e: 4bab ldr r3, [pc, #684] ; (800ac3c <Display+0x4bcc>)
800a990: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a994: 2303 movs r3, #3
800a996: 2150 movs r1, #80 ; 0x50
800a998: 20a8 movs r0, #168 ; 0xa8
800a99a: f7fa fadb bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800a99e: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800a9a2: b2db uxtb r3, r3
800a9a4: 461a mov r2, r3
800a9a6: 4ba5 ldr r3, [pc, #660] ; (800ac3c <Display+0x4bcc>)
800a9a8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a9ac: 2303 movs r3, #3
800a9ae: 2150 movs r1, #80 ; 0x50
800a9b0: 20af movs r0, #175 ; 0xaf
800a9b2: f7fa facf bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800a9b6: f002 bafd b.w 800cfb4 <Display+0x6f44>
if(ipt2 == 4)
800a9ba: f897 3310 ldrb.w r3, [r7, #784] ; 0x310
800a9be: b2db uxtb r3, r3
800a9c0: 2b04 cmp r3, #4
800a9c2: f042 82f7 bne.w 800cfb4 <Display+0x6f44>
BSP_LCD_DisplayStringAt(140, 80, (char *) pNUMS[idt2], LEFT_MODE);
800a9c6: f897 3317 ldrb.w r3, [r7, #791] ; 0x317
800a9ca: b2db uxtb r3, r3
800a9cc: 461a mov r2, r3
800a9ce: 4b9b ldr r3, [pc, #620] ; (800ac3c <Display+0x4bcc>)
800a9d0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800a9d4: 2303 movs r3, #3
800a9d6: 2150 movs r1, #80 ; 0x50
800a9d8: 208c movs r0, #140 ; 0x8c
800a9da: f7fa fabb bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800a9de: 4b98 ldr r3, [pc, #608] ; (800ac40 <Display+0x4bd0>)
800a9e0: 681b ldr r3, [r3, #0]
800a9e2: 2b00 cmp r3, #0
800a9e4: d005 beq.n 800a9f2 <Display+0x4982>
BSP_LCD_DisplayStringAt(140+7, 80, ".", LEFT_MODE);
800a9e6: 2303 movs r3, #3
800a9e8: 4a96 ldr r2, [pc, #600] ; (800ac44 <Display+0x4bd4>)
800a9ea: 2150 movs r1, #80 ; 0x50
800a9ec: 2093 movs r0, #147 ; 0x93
800a9ee: f7fa fab1 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 80, (char *) pNUMS[iet2], LEFT_MODE);
800a9f2: f897 3316 ldrb.w r3, [r7, #790] ; 0x316
800a9f6: b2db uxtb r3, r3
800a9f8: 461a mov r2, r3
800a9fa: 4b90 ldr r3, [pc, #576] ; (800ac3c <Display+0x4bcc>)
800a9fc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aa00: 2303 movs r3, #3
800aa02: 2150 movs r1, #80 ; 0x50
800aa04: 209a movs r0, #154 ; 0x9a
800aa06: f7fa faa5 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 80, (char *) pNUMS[ies2], LEFT_MODE);
800aa0a: f897 3315 ldrb.w r3, [r7, #789] ; 0x315
800aa0e: b2db uxtb r3, r3
800aa10: 461a mov r2, r3
800aa12: 4b8a ldr r3, [pc, #552] ; (800ac3c <Display+0x4bcc>)
800aa14: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aa18: 2303 movs r3, #3
800aa1a: 2150 movs r1, #80 ; 0x50
800aa1c: 20a1 movs r0, #161 ; 0xa1
800aa1e: f7fa fa99 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 80, (char *) pNUMS[ied2], LEFT_MODE);
800aa22: f897 3314 ldrb.w r3, [r7, #788] ; 0x314
800aa26: b2db uxtb r3, r3
800aa28: 461a mov r2, r3
800aa2a: 4b84 ldr r3, [pc, #528] ; (800ac3c <Display+0x4bcc>)
800aa2c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aa30: 2303 movs r3, #3
800aa32: 2150 movs r1, #80 ; 0x50
800aa34: 20a8 movs r0, #168 ; 0xa8
800aa36: f7fa fa8d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 80, (char *) pNUMS[iee2], LEFT_MODE);
800aa3a: f897 3313 ldrb.w r3, [r7, #787] ; 0x313
800aa3e: b2db uxtb r3, r3
800aa40: 461a mov r2, r3
800aa42: 4b7e ldr r3, [pc, #504] ; (800ac3c <Display+0x4bcc>)
800aa44: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aa48: 2303 movs r3, #3
800aa4a: 2150 movs r1, #80 ; 0x50
800aa4c: 20af movs r0, #175 ; 0xaf
800aa4e: f7fa fa81 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_2)
800aa52: f002 baaf b.w 800cfb4 <Display+0x6f44>
if(menupos >= Kikdt_3 && menupos <= Kpt_3)
800aa56: 4b7c ldr r3, [pc, #496] ; (800ac48 <Display+0x4bd8>)
800aa58: 781b ldrb r3, [r3, #0]
800aa5a: b2db uxtb r3, r3
800aa5c: 2b11 cmp r3, #17
800aa5e: f241 8150 bls.w 800bd02 <Display+0x5c92>
800aa62: 4b79 ldr r3, [pc, #484] ; (800ac48 <Display+0x4bd8>)
800aa64: 781b ldrb r3, [r3, #0]
800aa66: b2db uxtb r3, r3
800aa68: 2b17 cmp r3, #23
800aa6a: f201 814a bhi.w 800bd02 <Display+0x5c92>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800aa6e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800aa72: 4876 ldr r0, [pc, #472] ; (800ac4c <Display+0x4bdc>)
800aa74: f7fa f9a8 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
800aa78: f507 728e add.w r2, r7, #284 ; 0x11c
800aa7c: 2303 movs r3, #3
800aa7e: 213c movs r1, #60 ; 0x3c
800aa80: 208c movs r0, #140 ; 0x8c
800aa82: f7fa fa67 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
800aa86: f107 02e0 add.w r2, r7, #224 ; 0xe0
800aa8a: 2303 movs r3, #3
800aa8c: 2150 movs r1, #80 ; 0x50
800aa8e: 208c movs r0, #140 ; 0x8c
800aa90: f7fa fa60 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 120, str4, LEFT_MODE);
800aa94: f107 0268 add.w r2, r7, #104 ; 0x68
800aa98: 2303 movs r3, #3
800aa9a: 2178 movs r1, #120 ; 0x78
800aa9c: 208c movs r0, #140 ; 0x8c
800aa9e: f7fa fa59 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800aaa2: 4b69 ldr r3, [pc, #420] ; (800ac48 <Display+0x4bd8>)
800aaa4: 781b ldrb r3, [r3, #0]
800aaa6: b2db uxtb r3, r3
800aaa8: 2b12 cmp r3, #18
800aaaa: f040 814c bne.w 800ad46 <Display+0x4cd6>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800aaae: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800aab2: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800aab6: f7fa f987 bl 8004dc8 <LCD_SetColors>
if(blk)
800aaba: 4b61 ldr r3, [pc, #388] ; (800ac40 <Display+0x4bd0>)
800aabc: 681b ldr r3, [r3, #0]
800aabe: 2b00 cmp r3, #0
800aac0: d00b beq.n 800aada <Display+0x4a6a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800aac2: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800aac6: b2db uxtb r3, r3
800aac8: 461a mov r2, r3
800aaca: 4b5c ldr r3, [pc, #368] ; (800ac3c <Display+0x4bcc>)
800aacc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aad0: 2303 movs r3, #3
800aad2: 2164 movs r1, #100 ; 0x64
800aad4: 208c movs r0, #140 ; 0x8c
800aad6: f7fa fa3d bl 8004f54 <BSP_LCD_DisplayStringAt>
if(!ipt3)
800aada: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800aade: b2db uxtb r3, r3
800aae0: 2b00 cmp r3, #0
800aae2: d131 bne.n 800ab48 <Display+0x4ad8>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800aae4: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800aae8: b2db uxtb r3, r3
800aaea: 461a mov r2, r3
800aaec: 4b53 ldr r3, [pc, #332] ; (800ac3c <Display+0x4bcc>)
800aaee: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aaf2: 2303 movs r3, #3
800aaf4: 2164 movs r1, #100 ; 0x64
800aaf6: 2093 movs r0, #147 ; 0x93
800aaf8: f7fa fa2c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800aafc: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800ab00: b2db uxtb r3, r3
800ab02: 461a mov r2, r3
800ab04: 4b4d ldr r3, [pc, #308] ; (800ac3c <Display+0x4bcc>)
800ab06: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ab0a: 2303 movs r3, #3
800ab0c: 2164 movs r1, #100 ; 0x64
800ab0e: 209a movs r0, #154 ; 0x9a
800ab10: f7fa fa20 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800ab14: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800ab18: b2db uxtb r3, r3
800ab1a: 461a mov r2, r3
800ab1c: 4b47 ldr r3, [pc, #284] ; (800ac3c <Display+0x4bcc>)
800ab1e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ab22: 2303 movs r3, #3
800ab24: 2164 movs r1, #100 ; 0x64
800ab26: 20a1 movs r0, #161 ; 0xa1
800ab28: f7fa fa14 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE);
800ab2c: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800ab30: b2db uxtb r3, r3
800ab32: 461a mov r2, r3
800ab34: 4b41 ldr r3, [pc, #260] ; (800ac3c <Display+0x4bcc>)
800ab36: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ab3a: 2303 movs r3, #3
800ab3c: 2164 movs r1, #100 ; 0x64
800ab3e: 20a8 movs r0, #168 ; 0xa8
800ab40: f7fa fa08 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800ab44: f002 ba39 b.w 800cfba <Display+0x6f4a>
if(ipt3 == 1)
800ab48: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800ab4c: b2db uxtb r3, r3
800ab4e: 2b01 cmp r3, #1
800ab50: d137 bne.n 800abc2 <Display+0x4b52>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800ab52: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800ab56: b2db uxtb r3, r3
800ab58: 461a mov r2, r3
800ab5a: 4b38 ldr r3, [pc, #224] ; (800ac3c <Display+0x4bcc>)
800ab5c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ab60: 2303 movs r3, #3
800ab62: 2164 movs r1, #100 ; 0x64
800ab64: 2093 movs r0, #147 ; 0x93
800ab66: f7fa f9f5 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800ab6a: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800ab6e: b2db uxtb r3, r3
800ab70: 461a mov r2, r3
800ab72: 4b32 ldr r3, [pc, #200] ; (800ac3c <Display+0x4bcc>)
800ab74: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ab78: 2303 movs r3, #3
800ab7a: 2164 movs r1, #100 ; 0x64
800ab7c: 209a movs r0, #154 ; 0x9a
800ab7e: f7fa f9e9 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800ab82: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800ab86: b2db uxtb r3, r3
800ab88: 461a mov r2, r3
800ab8a: 4b2c ldr r3, [pc, #176] ; (800ac3c <Display+0x4bcc>)
800ab8c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ab90: 2303 movs r3, #3
800ab92: 2164 movs r1, #100 ; 0x64
800ab94: 20a1 movs r0, #161 ; 0xa1
800ab96: f7fa f9dd bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE);
800ab9a: 2303 movs r3, #3
800ab9c: 4a29 ldr r2, [pc, #164] ; (800ac44 <Display+0x4bd4>)
800ab9e: 2164 movs r1, #100 ; 0x64
800aba0: 20a8 movs r0, #168 ; 0xa8
800aba2: f7fa f9d7 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800aba6: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800abaa: b2db uxtb r3, r3
800abac: 461a mov r2, r3
800abae: 4b23 ldr r3, [pc, #140] ; (800ac3c <Display+0x4bcc>)
800abb0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800abb4: 2303 movs r3, #3
800abb6: 2164 movs r1, #100 ; 0x64
800abb8: 20af movs r0, #175 ; 0xaf
800abba: f7fa f9cb bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800abbe: f002 b9fc b.w 800cfba <Display+0x6f4a>
if(ipt3 == 2)
800abc2: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800abc6: b2db uxtb r3, r3
800abc8: 2b02 cmp r3, #2
800abca: d141 bne.n 800ac50 <Display+0x4be0>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800abcc: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800abd0: b2db uxtb r3, r3
800abd2: 461a mov r2, r3
800abd4: 4b19 ldr r3, [pc, #100] ; (800ac3c <Display+0x4bcc>)
800abd6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800abda: 2303 movs r3, #3
800abdc: 2164 movs r1, #100 ; 0x64
800abde: 2093 movs r0, #147 ; 0x93
800abe0: f7fa f9b8 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800abe4: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800abe8: b2db uxtb r3, r3
800abea: 461a mov r2, r3
800abec: 4b13 ldr r3, [pc, #76] ; (800ac3c <Display+0x4bcc>)
800abee: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800abf2: 2303 movs r3, #3
800abf4: 2164 movs r1, #100 ; 0x64
800abf6: 209a movs r0, #154 ; 0x9a
800abf8: f7fa f9ac bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE);
800abfc: 2303 movs r3, #3
800abfe: 4a11 ldr r2, [pc, #68] ; (800ac44 <Display+0x4bd4>)
800ac00: 2164 movs r1, #100 ; 0x64
800ac02: 20a1 movs r0, #161 ; 0xa1
800ac04: f7fa f9a6 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800ac08: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800ac0c: b2db uxtb r3, r3
800ac0e: 461a mov r2, r3
800ac10: 4b0a ldr r3, [pc, #40] ; (800ac3c <Display+0x4bcc>)
800ac12: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ac16: 2303 movs r3, #3
800ac18: 2164 movs r1, #100 ; 0x64
800ac1a: 20a8 movs r0, #168 ; 0xa8
800ac1c: f7fa f99a bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800ac20: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800ac24: b2db uxtb r3, r3
800ac26: 461a mov r2, r3
800ac28: 4b04 ldr r3, [pc, #16] ; (800ac3c <Display+0x4bcc>)
800ac2a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ac2e: 2303 movs r3, #3
800ac30: 2164 movs r1, #100 ; 0x64
800ac32: 20af movs r0, #175 ; 0xaf
800ac34: f7fa f98e bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800ac38: f002 b9bf b.w 800cfba <Display+0x6f4a>
800ac3c: 2002096c .word 0x2002096c
800ac40: 2006ba78 .word 0x2006ba78
800ac44: 080181c8 .word 0x080181c8
800ac48: 20020010 .word 0x20020010
800ac4c: ffd8aa57 .word 0xffd8aa57
if(ipt3 == 3)
800ac50: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800ac54: b2db uxtb r3, r3
800ac56: 2b03 cmp r3, #3
800ac58: d137 bne.n 800acca <Display+0x4c5a>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800ac5a: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800ac5e: b2db uxtb r3, r3
800ac60: 461a mov r2, r3
800ac62: 4baf ldr r3, [pc, #700] ; (800af20 <Display+0x4eb0>)
800ac64: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ac68: 2303 movs r3, #3
800ac6a: 2164 movs r1, #100 ; 0x64
800ac6c: 2093 movs r0, #147 ; 0x93
800ac6e: f7fa f971 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE);
800ac72: 2303 movs r3, #3
800ac74: 4aab ldr r2, [pc, #684] ; (800af24 <Display+0x4eb4>)
800ac76: 2164 movs r1, #100 ; 0x64
800ac78: 209a movs r0, #154 ; 0x9a
800ac7a: f7fa f96b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800ac7e: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800ac82: b2db uxtb r3, r3
800ac84: 461a mov r2, r3
800ac86: 4ba6 ldr r3, [pc, #664] ; (800af20 <Display+0x4eb0>)
800ac88: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ac8c: 2303 movs r3, #3
800ac8e: 2164 movs r1, #100 ; 0x64
800ac90: 20a1 movs r0, #161 ; 0xa1
800ac92: f7fa f95f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800ac96: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800ac9a: b2db uxtb r3, r3
800ac9c: 461a mov r2, r3
800ac9e: 4ba0 ldr r3, [pc, #640] ; (800af20 <Display+0x4eb0>)
800aca0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aca4: 2303 movs r3, #3
800aca6: 2164 movs r1, #100 ; 0x64
800aca8: 20a8 movs r0, #168 ; 0xa8
800acaa: f7fa f953 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800acae: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800acb2: b2db uxtb r3, r3
800acb4: 461a mov r2, r3
800acb6: 4b9a ldr r3, [pc, #616] ; (800af20 <Display+0x4eb0>)
800acb8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800acbc: 2303 movs r3, #3
800acbe: 2164 movs r1, #100 ; 0x64
800acc0: 20af movs r0, #175 ; 0xaf
800acc2: f7fa f947 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800acc6: f002 b978 b.w 800cfba <Display+0x6f4a>
if(ipt3 == 4)
800acca: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800acce: b2db uxtb r3, r3
800acd0: 2b04 cmp r3, #4
800acd2: f042 8172 bne.w 800cfba <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE);
800acd6: 2303 movs r3, #3
800acd8: 4a92 ldr r2, [pc, #584] ; (800af24 <Display+0x4eb4>)
800acda: 2164 movs r1, #100 ; 0x64
800acdc: 2093 movs r0, #147 ; 0x93
800acde: f7fa f939 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE);
800ace2: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800ace6: b2db uxtb r3, r3
800ace8: 461a mov r2, r3
800acea: 4b8d ldr r3, [pc, #564] ; (800af20 <Display+0x4eb0>)
800acec: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800acf0: 2303 movs r3, #3
800acf2: 2164 movs r1, #100 ; 0x64
800acf4: 209a movs r0, #154 ; 0x9a
800acf6: f7fa f92d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800acfa: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800acfe: b2db uxtb r3, r3
800ad00: 461a mov r2, r3
800ad02: 4b87 ldr r3, [pc, #540] ; (800af20 <Display+0x4eb0>)
800ad04: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ad08: 2303 movs r3, #3
800ad0a: 2164 movs r1, #100 ; 0x64
800ad0c: 20a1 movs r0, #161 ; 0xa1
800ad0e: f7fa f921 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800ad12: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800ad16: b2db uxtb r3, r3
800ad18: 461a mov r2, r3
800ad1a: 4b81 ldr r3, [pc, #516] ; (800af20 <Display+0x4eb0>)
800ad1c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ad20: 2303 movs r3, #3
800ad22: 2164 movs r1, #100 ; 0x64
800ad24: 20a8 movs r0, #168 ; 0xa8
800ad26: f7fa f915 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800ad2a: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800ad2e: b2db uxtb r3, r3
800ad30: 461a mov r2, r3
800ad32: 4b7b ldr r3, [pc, #492] ; (800af20 <Display+0x4eb0>)
800ad34: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ad38: 2303 movs r3, #3
800ad3a: 2164 movs r1, #100 ; 0x64
800ad3c: 20af movs r0, #175 ; 0xaf
800ad3e: f7fa f909 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800ad42: f002 b93a b.w 800cfba <Display+0x6f4a>
if(menupos == Kikt_3)
800ad46: 4b78 ldr r3, [pc, #480] ; (800af28 <Display+0x4eb8>)
800ad48: 781b ldrb r3, [r3, #0]
800ad4a: b2db uxtb r3, r3
800ad4c: 2b13 cmp r3, #19
800ad4e: f040 818a bne.w 800b066 <Display+0x4ff6>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800ad52: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800ad56: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800ad5a: f7fa f835 bl 8004dc8 <LCD_SetColors>
if(!ipt3)
800ad5e: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800ad62: b2db uxtb r3, r3
800ad64: 2b00 cmp r3, #0
800ad66: d141 bne.n 800adec <Display+0x4d7c>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800ad68: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800ad6c: b2db uxtb r3, r3
800ad6e: 461a mov r2, r3
800ad70: 4b6b ldr r3, [pc, #428] ; (800af20 <Display+0x4eb0>)
800ad72: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ad76: 2303 movs r3, #3
800ad78: 2164 movs r1, #100 ; 0x64
800ad7a: 208c movs r0, #140 ; 0x8c
800ad7c: f7fa f8ea bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800ad80: 4b6a ldr r3, [pc, #424] ; (800af2c <Display+0x4ebc>)
800ad82: 681b ldr r3, [r3, #0]
800ad84: 2b00 cmp r3, #0
800ad86: d00b beq.n 800ada0 <Display+0x4d30>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800ad88: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800ad8c: b2db uxtb r3, r3
800ad8e: 461a mov r2, r3
800ad90: 4b63 ldr r3, [pc, #396] ; (800af20 <Display+0x4eb0>)
800ad92: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ad96: 2303 movs r3, #3
800ad98: 2164 movs r1, #100 ; 0x64
800ad9a: 2093 movs r0, #147 ; 0x93
800ad9c: f7fa f8da bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800ada0: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800ada4: b2db uxtb r3, r3
800ada6: 461a mov r2, r3
800ada8: 4b5d ldr r3, [pc, #372] ; (800af20 <Display+0x4eb0>)
800adaa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800adae: 2303 movs r3, #3
800adb0: 2164 movs r1, #100 ; 0x64
800adb2: 209a movs r0, #154 ; 0x9a
800adb4: f7fa f8ce bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800adb8: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800adbc: b2db uxtb r3, r3
800adbe: 461a mov r2, r3
800adc0: 4b57 ldr r3, [pc, #348] ; (800af20 <Display+0x4eb0>)
800adc2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800adc6: 2303 movs r3, #3
800adc8: 2164 movs r1, #100 ; 0x64
800adca: 20a1 movs r0, #161 ; 0xa1
800adcc: f7fa f8c2 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE);
800add0: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800add4: b2db uxtb r3, r3
800add6: 461a mov r2, r3
800add8: 4b51 ldr r3, [pc, #324] ; (800af20 <Display+0x4eb0>)
800adda: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800adde: 2303 movs r3, #3
800ade0: 2164 movs r1, #100 ; 0x64
800ade2: 20a8 movs r0, #168 ; 0xa8
800ade4: f7fa f8b6 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800ade8: f002 b8e7 b.w 800cfba <Display+0x6f4a>
if(ipt3 == 1)
800adec: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800adf0: b2db uxtb r3, r3
800adf2: 2b01 cmp r3, #1
800adf4: d147 bne.n 800ae86 <Display+0x4e16>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800adf6: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800adfa: b2db uxtb r3, r3
800adfc: 461a mov r2, r3
800adfe: 4b48 ldr r3, [pc, #288] ; (800af20 <Display+0x4eb0>)
800ae00: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ae04: 2303 movs r3, #3
800ae06: 2164 movs r1, #100 ; 0x64
800ae08: 208c movs r0, #140 ; 0x8c
800ae0a: f7fa f8a3 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800ae0e: 4b47 ldr r3, [pc, #284] ; (800af2c <Display+0x4ebc>)
800ae10: 681b ldr r3, [r3, #0]
800ae12: 2b00 cmp r3, #0
800ae14: d00b beq.n 800ae2e <Display+0x4dbe>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800ae16: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800ae1a: b2db uxtb r3, r3
800ae1c: 461a mov r2, r3
800ae1e: 4b40 ldr r3, [pc, #256] ; (800af20 <Display+0x4eb0>)
800ae20: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ae24: 2303 movs r3, #3
800ae26: 2164 movs r1, #100 ; 0x64
800ae28: 2093 movs r0, #147 ; 0x93
800ae2a: f7fa f893 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800ae2e: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800ae32: b2db uxtb r3, r3
800ae34: 461a mov r2, r3
800ae36: 4b3a ldr r3, [pc, #232] ; (800af20 <Display+0x4eb0>)
800ae38: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ae3c: 2303 movs r3, #3
800ae3e: 2164 movs r1, #100 ; 0x64
800ae40: 209a movs r0, #154 ; 0x9a
800ae42: f7fa f887 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800ae46: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800ae4a: b2db uxtb r3, r3
800ae4c: 461a mov r2, r3
800ae4e: 4b34 ldr r3, [pc, #208] ; (800af20 <Display+0x4eb0>)
800ae50: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ae54: 2303 movs r3, #3
800ae56: 2164 movs r1, #100 ; 0x64
800ae58: 20a1 movs r0, #161 ; 0xa1
800ae5a: f7fa f87b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE);
800ae5e: 2303 movs r3, #3
800ae60: 4a30 ldr r2, [pc, #192] ; (800af24 <Display+0x4eb4>)
800ae62: 2164 movs r1, #100 ; 0x64
800ae64: 20a8 movs r0, #168 ; 0xa8
800ae66: f7fa f875 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800ae6a: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800ae6e: b2db uxtb r3, r3
800ae70: 461a mov r2, r3
800ae72: 4b2b ldr r3, [pc, #172] ; (800af20 <Display+0x4eb0>)
800ae74: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ae78: 2303 movs r3, #3
800ae7a: 2164 movs r1, #100 ; 0x64
800ae7c: 20af movs r0, #175 ; 0xaf
800ae7e: f7fa f869 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800ae82: f002 b89a b.w 800cfba <Display+0x6f4a>
if(ipt3 == 2)
800ae86: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800ae8a: b2db uxtb r3, r3
800ae8c: 2b02 cmp r3, #2
800ae8e: d14f bne.n 800af30 <Display+0x4ec0>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800ae90: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800ae94: b2db uxtb r3, r3
800ae96: 461a mov r2, r3
800ae98: 4b21 ldr r3, [pc, #132] ; (800af20 <Display+0x4eb0>)
800ae9a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ae9e: 2303 movs r3, #3
800aea0: 2164 movs r1, #100 ; 0x64
800aea2: 208c movs r0, #140 ; 0x8c
800aea4: f7fa f856 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800aea8: 4b20 ldr r3, [pc, #128] ; (800af2c <Display+0x4ebc>)
800aeaa: 681b ldr r3, [r3, #0]
800aeac: 2b00 cmp r3, #0
800aeae: d00b beq.n 800aec8 <Display+0x4e58>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800aeb0: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800aeb4: b2db uxtb r3, r3
800aeb6: 461a mov r2, r3
800aeb8: 4b19 ldr r3, [pc, #100] ; (800af20 <Display+0x4eb0>)
800aeba: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aebe: 2303 movs r3, #3
800aec0: 2164 movs r1, #100 ; 0x64
800aec2: 2093 movs r0, #147 ; 0x93
800aec4: f7fa f846 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800aec8: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800aecc: b2db uxtb r3, r3
800aece: 461a mov r2, r3
800aed0: 4b13 ldr r3, [pc, #76] ; (800af20 <Display+0x4eb0>)
800aed2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aed6: 2303 movs r3, #3
800aed8: 2164 movs r1, #100 ; 0x64
800aeda: 209a movs r0, #154 ; 0x9a
800aedc: f7fa f83a bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE);
800aee0: 2303 movs r3, #3
800aee2: 4a10 ldr r2, [pc, #64] ; (800af24 <Display+0x4eb4>)
800aee4: 2164 movs r1, #100 ; 0x64
800aee6: 20a1 movs r0, #161 ; 0xa1
800aee8: f7fa f834 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800aeec: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800aef0: b2db uxtb r3, r3
800aef2: 461a mov r2, r3
800aef4: 4b0a ldr r3, [pc, #40] ; (800af20 <Display+0x4eb0>)
800aef6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800aefa: 2303 movs r3, #3
800aefc: 2164 movs r1, #100 ; 0x64
800aefe: 20a8 movs r0, #168 ; 0xa8
800af00: f7fa f828 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800af04: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800af08: b2db uxtb r3, r3
800af0a: 461a mov r2, r3
800af0c: 4b04 ldr r3, [pc, #16] ; (800af20 <Display+0x4eb0>)
800af0e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800af12: 2303 movs r3, #3
800af14: 2164 movs r1, #100 ; 0x64
800af16: 20af movs r0, #175 ; 0xaf
800af18: f7fa f81c bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800af1c: f002 b84d b.w 800cfba <Display+0x6f4a>
800af20: 2002096c .word 0x2002096c
800af24: 080181c8 .word 0x080181c8
800af28: 20020010 .word 0x20020010
800af2c: 2006ba78 .word 0x2006ba78
if(ipt3 == 3)
800af30: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800af34: b2db uxtb r3, r3
800af36: 2b03 cmp r3, #3
800af38: d147 bne.n 800afca <Display+0x4f5a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800af3a: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800af3e: b2db uxtb r3, r3
800af40: 461a mov r2, r3
800af42: 4bbf ldr r3, [pc, #764] ; (800b240 <Display+0x51d0>)
800af44: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800af48: 2303 movs r3, #3
800af4a: 2164 movs r1, #100 ; 0x64
800af4c: 208c movs r0, #140 ; 0x8c
800af4e: f7fa f801 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800af52: 4bbc ldr r3, [pc, #752] ; (800b244 <Display+0x51d4>)
800af54: 681b ldr r3, [r3, #0]
800af56: 2b00 cmp r3, #0
800af58: d00b beq.n 800af72 <Display+0x4f02>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800af5a: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800af5e: b2db uxtb r3, r3
800af60: 461a mov r2, r3
800af62: 4bb7 ldr r3, [pc, #732] ; (800b240 <Display+0x51d0>)
800af64: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800af68: 2303 movs r3, #3
800af6a: 2164 movs r1, #100 ; 0x64
800af6c: 2093 movs r0, #147 ; 0x93
800af6e: f7f9 fff1 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE);
800af72: 2303 movs r3, #3
800af74: 4ab4 ldr r2, [pc, #720] ; (800b248 <Display+0x51d8>)
800af76: 2164 movs r1, #100 ; 0x64
800af78: 209a movs r0, #154 ; 0x9a
800af7a: f7f9 ffeb bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800af7e: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800af82: b2db uxtb r3, r3
800af84: 461a mov r2, r3
800af86: 4bae ldr r3, [pc, #696] ; (800b240 <Display+0x51d0>)
800af88: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800af8c: 2303 movs r3, #3
800af8e: 2164 movs r1, #100 ; 0x64
800af90: 20a1 movs r0, #161 ; 0xa1
800af92: f7f9 ffdf bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800af96: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800af9a: b2db uxtb r3, r3
800af9c: 461a mov r2, r3
800af9e: 4ba8 ldr r3, [pc, #672] ; (800b240 <Display+0x51d0>)
800afa0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800afa4: 2303 movs r3, #3
800afa6: 2164 movs r1, #100 ; 0x64
800afa8: 20a8 movs r0, #168 ; 0xa8
800afaa: f7f9 ffd3 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800afae: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800afb2: b2db uxtb r3, r3
800afb4: 461a mov r2, r3
800afb6: 4ba2 ldr r3, [pc, #648] ; (800b240 <Display+0x51d0>)
800afb8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800afbc: 2303 movs r3, #3
800afbe: 2164 movs r1, #100 ; 0x64
800afc0: 20af movs r0, #175 ; 0xaf
800afc2: f7f9 ffc7 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800afc6: f001 bff8 b.w 800cfba <Display+0x6f4a>
if(ipt3 == 4)
800afca: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800afce: b2db uxtb r3, r3
800afd0: 2b04 cmp r3, #4
800afd2: f041 87f2 bne.w 800cfba <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800afd6: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800afda: b2db uxtb r3, r3
800afdc: 461a mov r2, r3
800afde: 4b98 ldr r3, [pc, #608] ; (800b240 <Display+0x51d0>)
800afe0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800afe4: 2303 movs r3, #3
800afe6: 2164 movs r1, #100 ; 0x64
800afe8: 208c movs r0, #140 ; 0x8c
800afea: f7f9 ffb3 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE);
800afee: 2303 movs r3, #3
800aff0: 4a95 ldr r2, [pc, #596] ; (800b248 <Display+0x51d8>)
800aff2: 2164 movs r1, #100 ; 0x64
800aff4: 2093 movs r0, #147 ; 0x93
800aff6: f7f9 ffad bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800affa: 4b92 ldr r3, [pc, #584] ; (800b244 <Display+0x51d4>)
800affc: 681b ldr r3, [r3, #0]
800affe: 2b00 cmp r3, #0
800b000: d00b beq.n 800b01a <Display+0x4faa>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b002: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b006: b2db uxtb r3, r3
800b008: 461a mov r2, r3
800b00a: 4b8d ldr r3, [pc, #564] ; (800b240 <Display+0x51d0>)
800b00c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b010: 2303 movs r3, #3
800b012: 2164 movs r1, #100 ; 0x64
800b014: 209a movs r0, #154 ; 0x9a
800b016: f7f9 ff9d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b01a: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b01e: b2db uxtb r3, r3
800b020: 461a mov r2, r3
800b022: 4b87 ldr r3, [pc, #540] ; (800b240 <Display+0x51d0>)
800b024: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b028: 2303 movs r3, #3
800b02a: 2164 movs r1, #100 ; 0x64
800b02c: 20a1 movs r0, #161 ; 0xa1
800b02e: f7f9 ff91 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b032: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b036: b2db uxtb r3, r3
800b038: 461a mov r2, r3
800b03a: 4b81 ldr r3, [pc, #516] ; (800b240 <Display+0x51d0>)
800b03c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b040: 2303 movs r3, #3
800b042: 2164 movs r1, #100 ; 0x64
800b044: 20a8 movs r0, #168 ; 0xa8
800b046: f7f9 ff85 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b04a: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b04e: b2db uxtb r3, r3
800b050: 461a mov r2, r3
800b052: 4b7b ldr r3, [pc, #492] ; (800b240 <Display+0x51d0>)
800b054: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b058: 2303 movs r3, #3
800b05a: 2164 movs r1, #100 ; 0x64
800b05c: 20af movs r0, #175 ; 0xaf
800b05e: f7f9 ff79 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b062: f001 bfaa b.w 800cfba <Display+0x6f4a>
if(menupos == Kiks_3)
800b066: 4b79 ldr r3, [pc, #484] ; (800b24c <Display+0x51dc>)
800b068: 781b ldrb r3, [r3, #0]
800b06a: b2db uxtb r3, r3
800b06c: 2b14 cmp r3, #20
800b06e: f040 818a bne.w 800b386 <Display+0x5316>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800b072: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b076: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800b07a: f7f9 fea5 bl 8004dc8 <LCD_SetColors>
if(!ipt3)
800b07e: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b082: b2db uxtb r3, r3
800b084: 2b00 cmp r3, #0
800b086: d141 bne.n 800b10c <Display+0x509c>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b088: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b08c: b2db uxtb r3, r3
800b08e: 461a mov r2, r3
800b090: 4b6b ldr r3, [pc, #428] ; (800b240 <Display+0x51d0>)
800b092: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b096: 2303 movs r3, #3
800b098: 2164 movs r1, #100 ; 0x64
800b09a: 208c movs r0, #140 ; 0x8c
800b09c: f7f9 ff5a bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b0a0: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b0a4: b2db uxtb r3, r3
800b0a6: 461a mov r2, r3
800b0a8: 4b65 ldr r3, [pc, #404] ; (800b240 <Display+0x51d0>)
800b0aa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b0ae: 2303 movs r3, #3
800b0b0: 2164 movs r1, #100 ; 0x64
800b0b2: 2093 movs r0, #147 ; 0x93
800b0b4: f7f9 ff4e bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800b0b8: 4b62 ldr r3, [pc, #392] ; (800b244 <Display+0x51d4>)
800b0ba: 681b ldr r3, [r3, #0]
800b0bc: 2b00 cmp r3, #0
800b0be: d00b beq.n 800b0d8 <Display+0x5068>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b0c0: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b0c4: b2db uxtb r3, r3
800b0c6: 461a mov r2, r3
800b0c8: 4b5d ldr r3, [pc, #372] ; (800b240 <Display+0x51d0>)
800b0ca: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b0ce: 2303 movs r3, #3
800b0d0: 2164 movs r1, #100 ; 0x64
800b0d2: 209a movs r0, #154 ; 0x9a
800b0d4: f7f9 ff3e bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b0d8: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b0dc: b2db uxtb r3, r3
800b0de: 461a mov r2, r3
800b0e0: 4b57 ldr r3, [pc, #348] ; (800b240 <Display+0x51d0>)
800b0e2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b0e6: 2303 movs r3, #3
800b0e8: 2164 movs r1, #100 ; 0x64
800b0ea: 20a1 movs r0, #161 ; 0xa1
800b0ec: f7f9 ff32 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b0f0: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b0f4: b2db uxtb r3, r3
800b0f6: 461a mov r2, r3
800b0f8: 4b51 ldr r3, [pc, #324] ; (800b240 <Display+0x51d0>)
800b0fa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b0fe: 2303 movs r3, #3
800b100: 2164 movs r1, #100 ; 0x64
800b102: 20a8 movs r0, #168 ; 0xa8
800b104: f7f9 ff26 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b108: f001 bf57 b.w 800cfba <Display+0x6f4a>
if(ipt3 == 1)
800b10c: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b110: b2db uxtb r3, r3
800b112: 2b01 cmp r3, #1
800b114: d147 bne.n 800b1a6 <Display+0x5136>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b116: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b11a: b2db uxtb r3, r3
800b11c: 461a mov r2, r3
800b11e: 4b48 ldr r3, [pc, #288] ; (800b240 <Display+0x51d0>)
800b120: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b124: 2303 movs r3, #3
800b126: 2164 movs r1, #100 ; 0x64
800b128: 208c movs r0, #140 ; 0x8c
800b12a: f7f9 ff13 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b12e: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b132: b2db uxtb r3, r3
800b134: 461a mov r2, r3
800b136: 4b42 ldr r3, [pc, #264] ; (800b240 <Display+0x51d0>)
800b138: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b13c: 2303 movs r3, #3
800b13e: 2164 movs r1, #100 ; 0x64
800b140: 2093 movs r0, #147 ; 0x93
800b142: f7f9 ff07 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800b146: 4b3f ldr r3, [pc, #252] ; (800b244 <Display+0x51d4>)
800b148: 681b ldr r3, [r3, #0]
800b14a: 2b00 cmp r3, #0
800b14c: d00b beq.n 800b166 <Display+0x50f6>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b14e: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b152: b2db uxtb r3, r3
800b154: 461a mov r2, r3
800b156: 4b3a ldr r3, [pc, #232] ; (800b240 <Display+0x51d0>)
800b158: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b15c: 2303 movs r3, #3
800b15e: 2164 movs r1, #100 ; 0x64
800b160: 209a movs r0, #154 ; 0x9a
800b162: f7f9 fef7 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b166: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b16a: b2db uxtb r3, r3
800b16c: 461a mov r2, r3
800b16e: 4b34 ldr r3, [pc, #208] ; (800b240 <Display+0x51d0>)
800b170: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b174: 2303 movs r3, #3
800b176: 2164 movs r1, #100 ; 0x64
800b178: 20a1 movs r0, #161 ; 0xa1
800b17a: f7f9 feeb bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE);
800b17e: 2303 movs r3, #3
800b180: 4a31 ldr r2, [pc, #196] ; (800b248 <Display+0x51d8>)
800b182: 2164 movs r1, #100 ; 0x64
800b184: 20a8 movs r0, #168 ; 0xa8
800b186: f7f9 fee5 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b18a: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b18e: b2db uxtb r3, r3
800b190: 461a mov r2, r3
800b192: 4b2b ldr r3, [pc, #172] ; (800b240 <Display+0x51d0>)
800b194: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b198: 2303 movs r3, #3
800b19a: 2164 movs r1, #100 ; 0x64
800b19c: 20af movs r0, #175 ; 0xaf
800b19e: f7f9 fed9 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b1a2: f001 bf0a b.w 800cfba <Display+0x6f4a>
if(ipt3 == 2)
800b1a6: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b1aa: b2db uxtb r3, r3
800b1ac: 2b02 cmp r3, #2
800b1ae: d14f bne.n 800b250 <Display+0x51e0>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b1b0: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b1b4: b2db uxtb r3, r3
800b1b6: 461a mov r2, r3
800b1b8: 4b21 ldr r3, [pc, #132] ; (800b240 <Display+0x51d0>)
800b1ba: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b1be: 2303 movs r3, #3
800b1c0: 2164 movs r1, #100 ; 0x64
800b1c2: 208c movs r0, #140 ; 0x8c
800b1c4: f7f9 fec6 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b1c8: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b1cc: b2db uxtb r3, r3
800b1ce: 461a mov r2, r3
800b1d0: 4b1b ldr r3, [pc, #108] ; (800b240 <Display+0x51d0>)
800b1d2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b1d6: 2303 movs r3, #3
800b1d8: 2164 movs r1, #100 ; 0x64
800b1da: 2093 movs r0, #147 ; 0x93
800b1dc: f7f9 feba bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800b1e0: 4b18 ldr r3, [pc, #96] ; (800b244 <Display+0x51d4>)
800b1e2: 681b ldr r3, [r3, #0]
800b1e4: 2b00 cmp r3, #0
800b1e6: d00b beq.n 800b200 <Display+0x5190>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b1e8: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b1ec: b2db uxtb r3, r3
800b1ee: 461a mov r2, r3
800b1f0: 4b13 ldr r3, [pc, #76] ; (800b240 <Display+0x51d0>)
800b1f2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b1f6: 2303 movs r3, #3
800b1f8: 2164 movs r1, #100 ; 0x64
800b1fa: 209a movs r0, #154 ; 0x9a
800b1fc: f7f9 feaa bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE);
800b200: 2303 movs r3, #3
800b202: 4a11 ldr r2, [pc, #68] ; (800b248 <Display+0x51d8>)
800b204: 2164 movs r1, #100 ; 0x64
800b206: 20a1 movs r0, #161 ; 0xa1
800b208: f7f9 fea4 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b20c: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b210: b2db uxtb r3, r3
800b212: 461a mov r2, r3
800b214: 4b0a ldr r3, [pc, #40] ; (800b240 <Display+0x51d0>)
800b216: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b21a: 2303 movs r3, #3
800b21c: 2164 movs r1, #100 ; 0x64
800b21e: 20a8 movs r0, #168 ; 0xa8
800b220: f7f9 fe98 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b224: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b228: b2db uxtb r3, r3
800b22a: 461a mov r2, r3
800b22c: 4b04 ldr r3, [pc, #16] ; (800b240 <Display+0x51d0>)
800b22e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b232: 2303 movs r3, #3
800b234: 2164 movs r1, #100 ; 0x64
800b236: 20af movs r0, #175 ; 0xaf
800b238: f7f9 fe8c bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b23c: f001 bebd b.w 800cfba <Display+0x6f4a>
800b240: 2002096c .word 0x2002096c
800b244: 2006ba78 .word 0x2006ba78
800b248: 080181c8 .word 0x080181c8
800b24c: 20020010 .word 0x20020010
if(ipt3 == 3)
800b250: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b254: b2db uxtb r3, r3
800b256: 2b03 cmp r3, #3
800b258: d147 bne.n 800b2ea <Display+0x527a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b25a: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b25e: b2db uxtb r3, r3
800b260: 461a mov r2, r3
800b262: 4bbf ldr r3, [pc, #764] ; (800b560 <Display+0x54f0>)
800b264: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b268: 2303 movs r3, #3
800b26a: 2164 movs r1, #100 ; 0x64
800b26c: 208c movs r0, #140 ; 0x8c
800b26e: f7f9 fe71 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b272: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b276: b2db uxtb r3, r3
800b278: 461a mov r2, r3
800b27a: 4bb9 ldr r3, [pc, #740] ; (800b560 <Display+0x54f0>)
800b27c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b280: 2303 movs r3, #3
800b282: 2164 movs r1, #100 ; 0x64
800b284: 2093 movs r0, #147 ; 0x93
800b286: f7f9 fe65 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE);
800b28a: 2303 movs r3, #3
800b28c: 4ab5 ldr r2, [pc, #724] ; (800b564 <Display+0x54f4>)
800b28e: 2164 movs r1, #100 ; 0x64
800b290: 209a movs r0, #154 ; 0x9a
800b292: f7f9 fe5f bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800b296: 4bb4 ldr r3, [pc, #720] ; (800b568 <Display+0x54f8>)
800b298: 681b ldr r3, [r3, #0]
800b29a: 2b00 cmp r3, #0
800b29c: d00b beq.n 800b2b6 <Display+0x5246>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b29e: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b2a2: b2db uxtb r3, r3
800b2a4: 461a mov r2, r3
800b2a6: 4bae ldr r3, [pc, #696] ; (800b560 <Display+0x54f0>)
800b2a8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b2ac: 2303 movs r3, #3
800b2ae: 2164 movs r1, #100 ; 0x64
800b2b0: 20a1 movs r0, #161 ; 0xa1
800b2b2: f7f9 fe4f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b2b6: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b2ba: b2db uxtb r3, r3
800b2bc: 461a mov r2, r3
800b2be: 4ba8 ldr r3, [pc, #672] ; (800b560 <Display+0x54f0>)
800b2c0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b2c4: 2303 movs r3, #3
800b2c6: 2164 movs r1, #100 ; 0x64
800b2c8: 20a8 movs r0, #168 ; 0xa8
800b2ca: f7f9 fe43 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b2ce: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b2d2: b2db uxtb r3, r3
800b2d4: 461a mov r2, r3
800b2d6: 4ba2 ldr r3, [pc, #648] ; (800b560 <Display+0x54f0>)
800b2d8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b2dc: 2303 movs r3, #3
800b2de: 2164 movs r1, #100 ; 0x64
800b2e0: 20af movs r0, #175 ; 0xaf
800b2e2: f7f9 fe37 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b2e6: f001 be68 b.w 800cfba <Display+0x6f4a>
if(ipt3 == 4)
800b2ea: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b2ee: b2db uxtb r3, r3
800b2f0: 2b04 cmp r3, #4
800b2f2: f041 8662 bne.w 800cfba <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b2f6: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b2fa: b2db uxtb r3, r3
800b2fc: 461a mov r2, r3
800b2fe: 4b98 ldr r3, [pc, #608] ; (800b560 <Display+0x54f0>)
800b300: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b304: 2303 movs r3, #3
800b306: 2164 movs r1, #100 ; 0x64
800b308: 208c movs r0, #140 ; 0x8c
800b30a: f7f9 fe23 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE);
800b30e: 2303 movs r3, #3
800b310: 4a94 ldr r2, [pc, #592] ; (800b564 <Display+0x54f4>)
800b312: 2164 movs r1, #100 ; 0x64
800b314: 2093 movs r0, #147 ; 0x93
800b316: f7f9 fe1d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b31a: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b31e: b2db uxtb r3, r3
800b320: 461a mov r2, r3
800b322: 4b8f ldr r3, [pc, #572] ; (800b560 <Display+0x54f0>)
800b324: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b328: 2303 movs r3, #3
800b32a: 2164 movs r1, #100 ; 0x64
800b32c: 209a movs r0, #154 ; 0x9a
800b32e: f7f9 fe11 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800b332: 4b8d ldr r3, [pc, #564] ; (800b568 <Display+0x54f8>)
800b334: 681b ldr r3, [r3, #0]
800b336: 2b00 cmp r3, #0
800b338: d00b beq.n 800b352 <Display+0x52e2>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b33a: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b33e: b2db uxtb r3, r3
800b340: 461a mov r2, r3
800b342: 4b87 ldr r3, [pc, #540] ; (800b560 <Display+0x54f0>)
800b344: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b348: 2303 movs r3, #3
800b34a: 2164 movs r1, #100 ; 0x64
800b34c: 20a1 movs r0, #161 ; 0xa1
800b34e: f7f9 fe01 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b352: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b356: b2db uxtb r3, r3
800b358: 461a mov r2, r3
800b35a: 4b81 ldr r3, [pc, #516] ; (800b560 <Display+0x54f0>)
800b35c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b360: 2303 movs r3, #3
800b362: 2164 movs r1, #100 ; 0x64
800b364: 20a8 movs r0, #168 ; 0xa8
800b366: f7f9 fdf5 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b36a: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b36e: b2db uxtb r3, r3
800b370: 461a mov r2, r3
800b372: 4b7b ldr r3, [pc, #492] ; (800b560 <Display+0x54f0>)
800b374: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b378: 2303 movs r3, #3
800b37a: 2164 movs r1, #100 ; 0x64
800b37c: 20af movs r0, #175 ; 0xaf
800b37e: f7f9 fde9 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b382: f001 be1a b.w 800cfba <Display+0x6f4a>
if(menupos == Kikd_3)
800b386: 4b79 ldr r3, [pc, #484] ; (800b56c <Display+0x54fc>)
800b388: 781b ldrb r3, [r3, #0]
800b38a: b2db uxtb r3, r3
800b38c: 2b15 cmp r3, #21
800b38e: f040 818a bne.w 800b6a6 <Display+0x5636>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800b392: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b396: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800b39a: f7f9 fd15 bl 8004dc8 <LCD_SetColors>
if(!ipt3)
800b39e: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b3a2: b2db uxtb r3, r3
800b3a4: 2b00 cmp r3, #0
800b3a6: d141 bne.n 800b42c <Display+0x53bc>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b3a8: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b3ac: b2db uxtb r3, r3
800b3ae: 461a mov r2, r3
800b3b0: 4b6b ldr r3, [pc, #428] ; (800b560 <Display+0x54f0>)
800b3b2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b3b6: 2303 movs r3, #3
800b3b8: 2164 movs r1, #100 ; 0x64
800b3ba: 208c movs r0, #140 ; 0x8c
800b3bc: f7f9 fdca bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b3c0: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b3c4: b2db uxtb r3, r3
800b3c6: 461a mov r2, r3
800b3c8: 4b65 ldr r3, [pc, #404] ; (800b560 <Display+0x54f0>)
800b3ca: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b3ce: 2303 movs r3, #3
800b3d0: 2164 movs r1, #100 ; 0x64
800b3d2: 2093 movs r0, #147 ; 0x93
800b3d4: f7f9 fdbe bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b3d8: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b3dc: b2db uxtb r3, r3
800b3de: 461a mov r2, r3
800b3e0: 4b5f ldr r3, [pc, #380] ; (800b560 <Display+0x54f0>)
800b3e2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b3e6: 2303 movs r3, #3
800b3e8: 2164 movs r1, #100 ; 0x64
800b3ea: 209a movs r0, #154 ; 0x9a
800b3ec: f7f9 fdb2 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800b3f0: 4b5d ldr r3, [pc, #372] ; (800b568 <Display+0x54f8>)
800b3f2: 681b ldr r3, [r3, #0]
800b3f4: 2b00 cmp r3, #0
800b3f6: d00b beq.n 800b410 <Display+0x53a0>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b3f8: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b3fc: b2db uxtb r3, r3
800b3fe: 461a mov r2, r3
800b400: 4b57 ldr r3, [pc, #348] ; (800b560 <Display+0x54f0>)
800b402: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b406: 2303 movs r3, #3
800b408: 2164 movs r1, #100 ; 0x64
800b40a: 20a1 movs r0, #161 ; 0xa1
800b40c: f7f9 fda2 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b410: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b414: b2db uxtb r3, r3
800b416: 461a mov r2, r3
800b418: 4b51 ldr r3, [pc, #324] ; (800b560 <Display+0x54f0>)
800b41a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b41e: 2303 movs r3, #3
800b420: 2164 movs r1, #100 ; 0x64
800b422: 20a8 movs r0, #168 ; 0xa8
800b424: f7f9 fd96 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b428: f001 bdc7 b.w 800cfba <Display+0x6f4a>
if(ipt3 == 1)
800b42c: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b430: b2db uxtb r3, r3
800b432: 2b01 cmp r3, #1
800b434: d147 bne.n 800b4c6 <Display+0x5456>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b436: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b43a: b2db uxtb r3, r3
800b43c: 461a mov r2, r3
800b43e: 4b48 ldr r3, [pc, #288] ; (800b560 <Display+0x54f0>)
800b440: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b444: 2303 movs r3, #3
800b446: 2164 movs r1, #100 ; 0x64
800b448: 208c movs r0, #140 ; 0x8c
800b44a: f7f9 fd83 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b44e: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b452: b2db uxtb r3, r3
800b454: 461a mov r2, r3
800b456: 4b42 ldr r3, [pc, #264] ; (800b560 <Display+0x54f0>)
800b458: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b45c: 2303 movs r3, #3
800b45e: 2164 movs r1, #100 ; 0x64
800b460: 2093 movs r0, #147 ; 0x93
800b462: f7f9 fd77 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b466: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b46a: b2db uxtb r3, r3
800b46c: 461a mov r2, r3
800b46e: 4b3c ldr r3, [pc, #240] ; (800b560 <Display+0x54f0>)
800b470: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b474: 2303 movs r3, #3
800b476: 2164 movs r1, #100 ; 0x64
800b478: 209a movs r0, #154 ; 0x9a
800b47a: f7f9 fd6b bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800b47e: 4b3a ldr r3, [pc, #232] ; (800b568 <Display+0x54f8>)
800b480: 681b ldr r3, [r3, #0]
800b482: 2b00 cmp r3, #0
800b484: d00b beq.n 800b49e <Display+0x542e>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b486: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b48a: b2db uxtb r3, r3
800b48c: 461a mov r2, r3
800b48e: 4b34 ldr r3, [pc, #208] ; (800b560 <Display+0x54f0>)
800b490: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b494: 2303 movs r3, #3
800b496: 2164 movs r1, #100 ; 0x64
800b498: 20a1 movs r0, #161 ; 0xa1
800b49a: f7f9 fd5b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE);
800b49e: 2303 movs r3, #3
800b4a0: 4a30 ldr r2, [pc, #192] ; (800b564 <Display+0x54f4>)
800b4a2: 2164 movs r1, #100 ; 0x64
800b4a4: 20a8 movs r0, #168 ; 0xa8
800b4a6: f7f9 fd55 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b4aa: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b4ae: b2db uxtb r3, r3
800b4b0: 461a mov r2, r3
800b4b2: 4b2b ldr r3, [pc, #172] ; (800b560 <Display+0x54f0>)
800b4b4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b4b8: 2303 movs r3, #3
800b4ba: 2164 movs r1, #100 ; 0x64
800b4bc: 20af movs r0, #175 ; 0xaf
800b4be: f7f9 fd49 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b4c2: f001 bd7a b.w 800cfba <Display+0x6f4a>
if(ipt3 == 2)
800b4c6: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b4ca: b2db uxtb r3, r3
800b4cc: 2b02 cmp r3, #2
800b4ce: d14f bne.n 800b570 <Display+0x5500>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b4d0: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b4d4: b2db uxtb r3, r3
800b4d6: 461a mov r2, r3
800b4d8: 4b21 ldr r3, [pc, #132] ; (800b560 <Display+0x54f0>)
800b4da: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b4de: 2303 movs r3, #3
800b4e0: 2164 movs r1, #100 ; 0x64
800b4e2: 208c movs r0, #140 ; 0x8c
800b4e4: f7f9 fd36 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b4e8: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b4ec: b2db uxtb r3, r3
800b4ee: 461a mov r2, r3
800b4f0: 4b1b ldr r3, [pc, #108] ; (800b560 <Display+0x54f0>)
800b4f2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b4f6: 2303 movs r3, #3
800b4f8: 2164 movs r1, #100 ; 0x64
800b4fa: 2093 movs r0, #147 ; 0x93
800b4fc: f7f9 fd2a bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b500: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b504: b2db uxtb r3, r3
800b506: 461a mov r2, r3
800b508: 4b15 ldr r3, [pc, #84] ; (800b560 <Display+0x54f0>)
800b50a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b50e: 2303 movs r3, #3
800b510: 2164 movs r1, #100 ; 0x64
800b512: 209a movs r0, #154 ; 0x9a
800b514: f7f9 fd1e bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE);
800b518: 2303 movs r3, #3
800b51a: 4a12 ldr r2, [pc, #72] ; (800b564 <Display+0x54f4>)
800b51c: 2164 movs r1, #100 ; 0x64
800b51e: 20a1 movs r0, #161 ; 0xa1
800b520: f7f9 fd18 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800b524: 4b10 ldr r3, [pc, #64] ; (800b568 <Display+0x54f8>)
800b526: 681b ldr r3, [r3, #0]
800b528: 2b00 cmp r3, #0
800b52a: d00b beq.n 800b544 <Display+0x54d4>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b52c: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b530: b2db uxtb r3, r3
800b532: 461a mov r2, r3
800b534: 4b0a ldr r3, [pc, #40] ; (800b560 <Display+0x54f0>)
800b536: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b53a: 2303 movs r3, #3
800b53c: 2164 movs r1, #100 ; 0x64
800b53e: 20a8 movs r0, #168 ; 0xa8
800b540: f7f9 fd08 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b544: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b548: b2db uxtb r3, r3
800b54a: 461a mov r2, r3
800b54c: 4b04 ldr r3, [pc, #16] ; (800b560 <Display+0x54f0>)
800b54e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b552: 2303 movs r3, #3
800b554: 2164 movs r1, #100 ; 0x64
800b556: 20af movs r0, #175 ; 0xaf
800b558: f7f9 fcfc bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b55c: f001 bd2d b.w 800cfba <Display+0x6f4a>
800b560: 2002096c .word 0x2002096c
800b564: 080181c8 .word 0x080181c8
800b568: 2006ba78 .word 0x2006ba78
800b56c: 20020010 .word 0x20020010
if(ipt3 == 3)
800b570: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b574: b2db uxtb r3, r3
800b576: 2b03 cmp r3, #3
800b578: d147 bne.n 800b60a <Display+0x559a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b57a: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b57e: b2db uxtb r3, r3
800b580: 461a mov r2, r3
800b582: 4bc1 ldr r3, [pc, #772] ; (800b888 <Display+0x5818>)
800b584: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b588: 2303 movs r3, #3
800b58a: 2164 movs r1, #100 ; 0x64
800b58c: 208c movs r0, #140 ; 0x8c
800b58e: f7f9 fce1 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b592: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b596: b2db uxtb r3, r3
800b598: 461a mov r2, r3
800b59a: 4bbb ldr r3, [pc, #748] ; (800b888 <Display+0x5818>)
800b59c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b5a0: 2303 movs r3, #3
800b5a2: 2164 movs r1, #100 ; 0x64
800b5a4: 2093 movs r0, #147 ; 0x93
800b5a6: f7f9 fcd5 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE);
800b5aa: 2303 movs r3, #3
800b5ac: 4ab7 ldr r2, [pc, #732] ; (800b88c <Display+0x581c>)
800b5ae: 2164 movs r1, #100 ; 0x64
800b5b0: 209a movs r0, #154 ; 0x9a
800b5b2: f7f9 fccf bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b5b6: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b5ba: b2db uxtb r3, r3
800b5bc: 461a mov r2, r3
800b5be: 4bb2 ldr r3, [pc, #712] ; (800b888 <Display+0x5818>)
800b5c0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b5c4: 2303 movs r3, #3
800b5c6: 2164 movs r1, #100 ; 0x64
800b5c8: 20a1 movs r0, #161 ; 0xa1
800b5ca: f7f9 fcc3 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800b5ce: 4bb0 ldr r3, [pc, #704] ; (800b890 <Display+0x5820>)
800b5d0: 681b ldr r3, [r3, #0]
800b5d2: 2b00 cmp r3, #0
800b5d4: d00b beq.n 800b5ee <Display+0x557e>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b5d6: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b5da: b2db uxtb r3, r3
800b5dc: 461a mov r2, r3
800b5de: 4baa ldr r3, [pc, #680] ; (800b888 <Display+0x5818>)
800b5e0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b5e4: 2303 movs r3, #3
800b5e6: 2164 movs r1, #100 ; 0x64
800b5e8: 20a8 movs r0, #168 ; 0xa8
800b5ea: f7f9 fcb3 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b5ee: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b5f2: b2db uxtb r3, r3
800b5f4: 461a mov r2, r3
800b5f6: 4ba4 ldr r3, [pc, #656] ; (800b888 <Display+0x5818>)
800b5f8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b5fc: 2303 movs r3, #3
800b5fe: 2164 movs r1, #100 ; 0x64
800b600: 20af movs r0, #175 ; 0xaf
800b602: f7f9 fca7 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b606: f001 bcd8 b.w 800cfba <Display+0x6f4a>
if(ipt3 == 4)
800b60a: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b60e: b2db uxtb r3, r3
800b610: 2b04 cmp r3, #4
800b612: f041 84d2 bne.w 800cfba <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b616: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b61a: b2db uxtb r3, r3
800b61c: 461a mov r2, r3
800b61e: 4b9a ldr r3, [pc, #616] ; (800b888 <Display+0x5818>)
800b620: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b624: 2303 movs r3, #3
800b626: 2164 movs r1, #100 ; 0x64
800b628: 208c movs r0, #140 ; 0x8c
800b62a: f7f9 fc93 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE);
800b62e: 2303 movs r3, #3
800b630: 4a96 ldr r2, [pc, #600] ; (800b88c <Display+0x581c>)
800b632: 2164 movs r1, #100 ; 0x64
800b634: 2093 movs r0, #147 ; 0x93
800b636: f7f9 fc8d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b63a: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b63e: b2db uxtb r3, r3
800b640: 461a mov r2, r3
800b642: 4b91 ldr r3, [pc, #580] ; (800b888 <Display+0x5818>)
800b644: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b648: 2303 movs r3, #3
800b64a: 2164 movs r1, #100 ; 0x64
800b64c: 209a movs r0, #154 ; 0x9a
800b64e: f7f9 fc81 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b652: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b656: b2db uxtb r3, r3
800b658: 461a mov r2, r3
800b65a: 4b8b ldr r3, [pc, #556] ; (800b888 <Display+0x5818>)
800b65c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b660: 2303 movs r3, #3
800b662: 2164 movs r1, #100 ; 0x64
800b664: 20a1 movs r0, #161 ; 0xa1
800b666: f7f9 fc75 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800b66a: 4b89 ldr r3, [pc, #548] ; (800b890 <Display+0x5820>)
800b66c: 681b ldr r3, [r3, #0]
800b66e: 2b00 cmp r3, #0
800b670: d00b beq.n 800b68a <Display+0x561a>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b672: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b676: b2db uxtb r3, r3
800b678: 461a mov r2, r3
800b67a: 4b83 ldr r3, [pc, #524] ; (800b888 <Display+0x5818>)
800b67c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b680: 2303 movs r3, #3
800b682: 2164 movs r1, #100 ; 0x64
800b684: 20a8 movs r0, #168 ; 0xa8
800b686: f7f9 fc65 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b68a: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b68e: b2db uxtb r3, r3
800b690: 461a mov r2, r3
800b692: 4b7d ldr r3, [pc, #500] ; (800b888 <Display+0x5818>)
800b694: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b698: 2303 movs r3, #3
800b69a: 2164 movs r1, #100 ; 0x64
800b69c: 20af movs r0, #175 ; 0xaf
800b69e: f7f9 fc59 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b6a2: f001 bc8a b.w 800cfba <Display+0x6f4a>
if(menupos == Kike_3)
800b6a6: 4b7b ldr r3, [pc, #492] ; (800b894 <Display+0x5824>)
800b6a8: 781b ldrb r3, [r3, #0]
800b6aa: b2db uxtb r3, r3
800b6ac: 2b16 cmp r3, #22
800b6ae: f040 8190 bne.w 800b9d2 <Display+0x5962>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800b6b2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b6b6: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800b6ba: f7f9 fb85 bl 8004dc8 <LCD_SetColors>
if(!ipt3)
800b6be: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b6c2: b2db uxtb r3, r3
800b6c4: 2b00 cmp r3, #0
800b6c6: d142 bne.n 800b74e <Display+0x56de>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b6c8: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b6cc: b2db uxtb r3, r3
800b6ce: 461a mov r2, r3
800b6d0: 4b6d ldr r3, [pc, #436] ; (800b888 <Display+0x5818>)
800b6d2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b6d6: 2303 movs r3, #3
800b6d8: 2164 movs r1, #100 ; 0x64
800b6da: 208c movs r0, #140 ; 0x8c
800b6dc: f7f9 fc3a bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b6e0: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b6e4: b2db uxtb r3, r3
800b6e6: 461a mov r2, r3
800b6e8: 4b67 ldr r3, [pc, #412] ; (800b888 <Display+0x5818>)
800b6ea: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b6ee: 2303 movs r3, #3
800b6f0: 2164 movs r1, #100 ; 0x64
800b6f2: 2093 movs r0, #147 ; 0x93
800b6f4: f7f9 fc2e bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b6f8: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b6fc: b2db uxtb r3, r3
800b6fe: 461a mov r2, r3
800b700: 4b61 ldr r3, [pc, #388] ; (800b888 <Display+0x5818>)
800b702: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b706: 2303 movs r3, #3
800b708: 2164 movs r1, #100 ; 0x64
800b70a: 209a movs r0, #154 ; 0x9a
800b70c: f7f9 fc22 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b710: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b714: b2db uxtb r3, r3
800b716: 461a mov r2, r3
800b718: 4b5b ldr r3, [pc, #364] ; (800b888 <Display+0x5818>)
800b71a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b71e: 2303 movs r3, #3
800b720: 2164 movs r1, #100 ; 0x64
800b722: 20a1 movs r0, #161 ; 0xa1
800b724: f7f9 fc16 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800b728: 4b59 ldr r3, [pc, #356] ; (800b890 <Display+0x5820>)
800b72a: 681b ldr r3, [r3, #0]
800b72c: 2b00 cmp r3, #0
800b72e: f001 8444 beq.w 800cfba <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b732: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b736: b2db uxtb r3, r3
800b738: 461a mov r2, r3
800b73a: 4b53 ldr r3, [pc, #332] ; (800b888 <Display+0x5818>)
800b73c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b740: 2303 movs r3, #3
800b742: 2164 movs r1, #100 ; 0x64
800b744: 20a8 movs r0, #168 ; 0xa8
800b746: f7f9 fc05 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b74a: f001 bc36 b.w 800cfba <Display+0x6f4a>
if(ipt3 == 1)
800b74e: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b752: b2db uxtb r3, r3
800b754: 2b01 cmp r3, #1
800b756: d148 bne.n 800b7ea <Display+0x577a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b758: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b75c: b2db uxtb r3, r3
800b75e: 461a mov r2, r3
800b760: 4b49 ldr r3, [pc, #292] ; (800b888 <Display+0x5818>)
800b762: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b766: 2303 movs r3, #3
800b768: 2164 movs r1, #100 ; 0x64
800b76a: 208c movs r0, #140 ; 0x8c
800b76c: f7f9 fbf2 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b770: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b774: b2db uxtb r3, r3
800b776: 461a mov r2, r3
800b778: 4b43 ldr r3, [pc, #268] ; (800b888 <Display+0x5818>)
800b77a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b77e: 2303 movs r3, #3
800b780: 2164 movs r1, #100 ; 0x64
800b782: 2093 movs r0, #147 ; 0x93
800b784: f7f9 fbe6 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b788: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b78c: b2db uxtb r3, r3
800b78e: 461a mov r2, r3
800b790: 4b3d ldr r3, [pc, #244] ; (800b888 <Display+0x5818>)
800b792: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b796: 2303 movs r3, #3
800b798: 2164 movs r1, #100 ; 0x64
800b79a: 209a movs r0, #154 ; 0x9a
800b79c: f7f9 fbda bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b7a0: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b7a4: b2db uxtb r3, r3
800b7a6: 461a mov r2, r3
800b7a8: 4b37 ldr r3, [pc, #220] ; (800b888 <Display+0x5818>)
800b7aa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b7ae: 2303 movs r3, #3
800b7b0: 2164 movs r1, #100 ; 0x64
800b7b2: 20a1 movs r0, #161 ; 0xa1
800b7b4: f7f9 fbce bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE);
800b7b8: 2303 movs r3, #3
800b7ba: 4a34 ldr r2, [pc, #208] ; (800b88c <Display+0x581c>)
800b7bc: 2164 movs r1, #100 ; 0x64
800b7be: 20a8 movs r0, #168 ; 0xa8
800b7c0: f7f9 fbc8 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800b7c4: 4b32 ldr r3, [pc, #200] ; (800b890 <Display+0x5820>)
800b7c6: 681b ldr r3, [r3, #0]
800b7c8: 2b00 cmp r3, #0
800b7ca: f001 83f6 beq.w 800cfba <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b7ce: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b7d2: b2db uxtb r3, r3
800b7d4: 461a mov r2, r3
800b7d6: 4b2c ldr r3, [pc, #176] ; (800b888 <Display+0x5818>)
800b7d8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b7dc: 2303 movs r3, #3
800b7de: 2164 movs r1, #100 ; 0x64
800b7e0: 20af movs r0, #175 ; 0xaf
800b7e2: f7f9 fbb7 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b7e6: f001 bbe8 b.w 800cfba <Display+0x6f4a>
if(ipt3 == 2)
800b7ea: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b7ee: b2db uxtb r3, r3
800b7f0: 2b02 cmp r3, #2
800b7f2: d151 bne.n 800b898 <Display+0x5828>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b7f4: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b7f8: b2db uxtb r3, r3
800b7fa: 461a mov r2, r3
800b7fc: 4b22 ldr r3, [pc, #136] ; (800b888 <Display+0x5818>)
800b7fe: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b802: 2303 movs r3, #3
800b804: 2164 movs r1, #100 ; 0x64
800b806: 208c movs r0, #140 ; 0x8c
800b808: f7f9 fba4 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b80c: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b810: b2db uxtb r3, r3
800b812: 461a mov r2, r3
800b814: 4b1c ldr r3, [pc, #112] ; (800b888 <Display+0x5818>)
800b816: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b81a: 2303 movs r3, #3
800b81c: 2164 movs r1, #100 ; 0x64
800b81e: 2093 movs r0, #147 ; 0x93
800b820: f7f9 fb98 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b824: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b828: b2db uxtb r3, r3
800b82a: 461a mov r2, r3
800b82c: 4b16 ldr r3, [pc, #88] ; (800b888 <Display+0x5818>)
800b82e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b832: 2303 movs r3, #3
800b834: 2164 movs r1, #100 ; 0x64
800b836: 209a movs r0, #154 ; 0x9a
800b838: f7f9 fb8c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE);
800b83c: 2303 movs r3, #3
800b83e: 4a13 ldr r2, [pc, #76] ; (800b88c <Display+0x581c>)
800b840: 2164 movs r1, #100 ; 0x64
800b842: 20a1 movs r0, #161 ; 0xa1
800b844: f7f9 fb86 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b848: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b84c: b2db uxtb r3, r3
800b84e: 461a mov r2, r3
800b850: 4b0d ldr r3, [pc, #52] ; (800b888 <Display+0x5818>)
800b852: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b856: 2303 movs r3, #3
800b858: 2164 movs r1, #100 ; 0x64
800b85a: 20a8 movs r0, #168 ; 0xa8
800b85c: f7f9 fb7a bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800b860: 4b0b ldr r3, [pc, #44] ; (800b890 <Display+0x5820>)
800b862: 681b ldr r3, [r3, #0]
800b864: 2b00 cmp r3, #0
800b866: f001 83a8 beq.w 800cfba <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b86a: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b86e: b2db uxtb r3, r3
800b870: 461a mov r2, r3
800b872: 4b05 ldr r3, [pc, #20] ; (800b888 <Display+0x5818>)
800b874: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b878: 2303 movs r3, #3
800b87a: 2164 movs r1, #100 ; 0x64
800b87c: 20af movs r0, #175 ; 0xaf
800b87e: f7f9 fb69 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b882: f001 bb9a b.w 800cfba <Display+0x6f4a>
800b886: bf00 nop
800b888: 2002096c .word 0x2002096c
800b88c: 080181c8 .word 0x080181c8
800b890: 2006ba78 .word 0x2006ba78
800b894: 20020010 .word 0x20020010
if(ipt3 == 3)
800b898: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b89c: b2db uxtb r3, r3
800b89e: 2b03 cmp r3, #3
800b8a0: d148 bne.n 800b934 <Display+0x58c4>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b8a2: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b8a6: b2db uxtb r3, r3
800b8a8: 461a mov r2, r3
800b8aa: 4bc4 ldr r3, [pc, #784] ; (800bbbc <Display+0x5b4c>)
800b8ac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b8b0: 2303 movs r3, #3
800b8b2: 2164 movs r1, #100 ; 0x64
800b8b4: 208c movs r0, #140 ; 0x8c
800b8b6: f7f9 fb4d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b8ba: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b8be: b2db uxtb r3, r3
800b8c0: 461a mov r2, r3
800b8c2: 4bbe ldr r3, [pc, #760] ; (800bbbc <Display+0x5b4c>)
800b8c4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b8c8: 2303 movs r3, #3
800b8ca: 2164 movs r1, #100 ; 0x64
800b8cc: 2093 movs r0, #147 ; 0x93
800b8ce: f7f9 fb41 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE);
800b8d2: 2303 movs r3, #3
800b8d4: 4aba ldr r2, [pc, #744] ; (800bbc0 <Display+0x5b50>)
800b8d6: 2164 movs r1, #100 ; 0x64
800b8d8: 209a movs r0, #154 ; 0x9a
800b8da: f7f9 fb3b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b8de: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b8e2: b2db uxtb r3, r3
800b8e4: 461a mov r2, r3
800b8e6: 4bb5 ldr r3, [pc, #724] ; (800bbbc <Display+0x5b4c>)
800b8e8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b8ec: 2303 movs r3, #3
800b8ee: 2164 movs r1, #100 ; 0x64
800b8f0: 20a1 movs r0, #161 ; 0xa1
800b8f2: f7f9 fb2f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b8f6: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b8fa: b2db uxtb r3, r3
800b8fc: 461a mov r2, r3
800b8fe: 4baf ldr r3, [pc, #700] ; (800bbbc <Display+0x5b4c>)
800b900: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b904: 2303 movs r3, #3
800b906: 2164 movs r1, #100 ; 0x64
800b908: 20a8 movs r0, #168 ; 0xa8
800b90a: f7f9 fb23 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800b90e: 4bad ldr r3, [pc, #692] ; (800bbc4 <Display+0x5b54>)
800b910: 681b ldr r3, [r3, #0]
800b912: 2b00 cmp r3, #0
800b914: f001 8351 beq.w 800cfba <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b918: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b91c: b2db uxtb r3, r3
800b91e: 461a mov r2, r3
800b920: 4ba6 ldr r3, [pc, #664] ; (800bbbc <Display+0x5b4c>)
800b922: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b926: 2303 movs r3, #3
800b928: 2164 movs r1, #100 ; 0x64
800b92a: 20af movs r0, #175 ; 0xaf
800b92c: f7f9 fb12 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b930: f001 bb43 b.w 800cfba <Display+0x6f4a>
if(ipt3 == 4)
800b934: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b938: b2db uxtb r3, r3
800b93a: 2b04 cmp r3, #4
800b93c: f041 833d bne.w 800cfba <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b940: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b944: b2db uxtb r3, r3
800b946: 461a mov r2, r3
800b948: 4b9c ldr r3, [pc, #624] ; (800bbbc <Display+0x5b4c>)
800b94a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b94e: 2303 movs r3, #3
800b950: 2164 movs r1, #100 ; 0x64
800b952: 208c movs r0, #140 ; 0x8c
800b954: f7f9 fafe bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE);
800b958: 2303 movs r3, #3
800b95a: 4a99 ldr r2, [pc, #612] ; (800bbc0 <Display+0x5b50>)
800b95c: 2164 movs r1, #100 ; 0x64
800b95e: 2093 movs r0, #147 ; 0x93
800b960: f7f9 faf8 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE);
800b964: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800b968: b2db uxtb r3, r3
800b96a: 461a mov r2, r3
800b96c: 4b93 ldr r3, [pc, #588] ; (800bbbc <Display+0x5b4c>)
800b96e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b972: 2303 movs r3, #3
800b974: 2164 movs r1, #100 ; 0x64
800b976: 209a movs r0, #154 ; 0x9a
800b978: f7f9 faec bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800b97c: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800b980: b2db uxtb r3, r3
800b982: 461a mov r2, r3
800b984: 4b8d ldr r3, [pc, #564] ; (800bbbc <Display+0x5b4c>)
800b986: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b98a: 2303 movs r3, #3
800b98c: 2164 movs r1, #100 ; 0x64
800b98e: 20a1 movs r0, #161 ; 0xa1
800b990: f7f9 fae0 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800b994: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800b998: b2db uxtb r3, r3
800b99a: 461a mov r2, r3
800b99c: 4b87 ldr r3, [pc, #540] ; (800bbbc <Display+0x5b4c>)
800b99e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b9a2: 2303 movs r3, #3
800b9a4: 2164 movs r1, #100 ; 0x64
800b9a6: 20a8 movs r0, #168 ; 0xa8
800b9a8: f7f9 fad4 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800b9ac: 4b85 ldr r3, [pc, #532] ; (800bbc4 <Display+0x5b54>)
800b9ae: 681b ldr r3, [r3, #0]
800b9b0: 2b00 cmp r3, #0
800b9b2: f001 8302 beq.w 800cfba <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800b9b6: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800b9ba: b2db uxtb r3, r3
800b9bc: 461a mov r2, r3
800b9be: 4b7f ldr r3, [pc, #508] ; (800bbbc <Display+0x5b4c>)
800b9c0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800b9c4: 2303 movs r3, #3
800b9c6: 2164 movs r1, #100 ; 0x64
800b9c8: 20af movs r0, #175 ; 0xaf
800b9ca: f7f9 fac3 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800b9ce: f001 baf4 b.w 800cfba <Display+0x6f4a>
if(menupos == Kpt_3)
800b9d2: 4b7d ldr r3, [pc, #500] ; (800bbc8 <Display+0x5b58>)
800b9d4: 781b ldrb r3, [r3, #0]
800b9d6: b2db uxtb r3, r3
800b9d8: 2b17 cmp r3, #23
800b9da: f041 82ee bne.w 800cfba <Display+0x6f4a>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800b9de: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800b9e2: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800b9e6: f7f9 f9ef bl 8004dc8 <LCD_SetColors>
if(!ipt3)
800b9ea: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800b9ee: b2db uxtb r3, r3
800b9f0: 2b00 cmp r3, #0
800b9f2: d148 bne.n 800ba86 <Display+0x5a16>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800b9f4: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800b9f8: b2db uxtb r3, r3
800b9fa: 461a mov r2, r3
800b9fc: 4b6f ldr r3, [pc, #444] ; (800bbbc <Display+0x5b4c>)
800b9fe: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ba02: 2303 movs r3, #3
800ba04: 2164 movs r1, #100 ; 0x64
800ba06: 208c movs r0, #140 ; 0x8c
800ba08: f7f9 faa4 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800ba0c: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800ba10: b2db uxtb r3, r3
800ba12: 461a mov r2, r3
800ba14: 4b69 ldr r3, [pc, #420] ; (800bbbc <Display+0x5b4c>)
800ba16: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ba1a: 2303 movs r3, #3
800ba1c: 2164 movs r1, #100 ; 0x64
800ba1e: 2093 movs r0, #147 ; 0x93
800ba20: f7f9 fa98 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800ba24: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800ba28: b2db uxtb r3, r3
800ba2a: 461a mov r2, r3
800ba2c: 4b63 ldr r3, [pc, #396] ; (800bbbc <Display+0x5b4c>)
800ba2e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ba32: 2303 movs r3, #3
800ba34: 2164 movs r1, #100 ; 0x64
800ba36: 209a movs r0, #154 ; 0x9a
800ba38: f7f9 fa8c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800ba3c: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800ba40: b2db uxtb r3, r3
800ba42: 461a mov r2, r3
800ba44: 4b5d ldr r3, [pc, #372] ; (800bbbc <Display+0x5b4c>)
800ba46: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ba4a: 2303 movs r3, #3
800ba4c: 2164 movs r1, #100 ; 0x64
800ba4e: 20a1 movs r0, #161 ; 0xa1
800ba50: f7f9 fa80 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[iee3], LEFT_MODE);
800ba54: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800ba58: b2db uxtb r3, r3
800ba5a: 461a mov r2, r3
800ba5c: 4b57 ldr r3, [pc, #348] ; (800bbbc <Display+0x5b4c>)
800ba5e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ba62: 2303 movs r3, #3
800ba64: 2164 movs r1, #100 ; 0x64
800ba66: 20a8 movs r0, #168 ; 0xa8
800ba68: f7f9 fa74 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800ba6c: 4b55 ldr r3, [pc, #340] ; (800bbc4 <Display+0x5b54>)
800ba6e: 681b ldr r3, [r3, #0]
800ba70: 2b00 cmp r3, #0
800ba72: f001 82a2 beq.w 800cfba <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140+35, 100, ".", LEFT_MODE);
800ba76: 2303 movs r3, #3
800ba78: 4a51 ldr r2, [pc, #324] ; (800bbc0 <Display+0x5b50>)
800ba7a: 2164 movs r1, #100 ; 0x64
800ba7c: 20af movs r0, #175 ; 0xaf
800ba7e: f7f9 fa69 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800ba82: f001 ba9a b.w 800cfba <Display+0x6f4a>
if(ipt3 == 1)
800ba86: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800ba8a: b2db uxtb r3, r3
800ba8c: 2b01 cmp r3, #1
800ba8e: d147 bne.n 800bb20 <Display+0x5ab0>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800ba90: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800ba94: b2db uxtb r3, r3
800ba96: 461a mov r2, r3
800ba98: 4b48 ldr r3, [pc, #288] ; (800bbbc <Display+0x5b4c>)
800ba9a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ba9e: 2303 movs r3, #3
800baa0: 2164 movs r1, #100 ; 0x64
800baa2: 208c movs r0, #140 ; 0x8c
800baa4: f7f9 fa56 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800baa8: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800baac: b2db uxtb r3, r3
800baae: 461a mov r2, r3
800bab0: 4b42 ldr r3, [pc, #264] ; (800bbbc <Display+0x5b4c>)
800bab2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bab6: 2303 movs r3, #3
800bab8: 2164 movs r1, #100 ; 0x64
800baba: 2093 movs r0, #147 ; 0x93
800babc: f7f9 fa4a bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800bac0: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800bac4: b2db uxtb r3, r3
800bac6: 461a mov r2, r3
800bac8: 4b3c ldr r3, [pc, #240] ; (800bbbc <Display+0x5b4c>)
800baca: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bace: 2303 movs r3, #3
800bad0: 2164 movs r1, #100 ; 0x64
800bad2: 209a movs r0, #154 ; 0x9a
800bad4: f7f9 fa3e bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ied3], LEFT_MODE);
800bad8: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800badc: b2db uxtb r3, r3
800bade: 461a mov r2, r3
800bae0: 4b36 ldr r3, [pc, #216] ; (800bbbc <Display+0x5b4c>)
800bae2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bae6: 2303 movs r3, #3
800bae8: 2164 movs r1, #100 ; 0x64
800baea: 20a1 movs r0, #161 ; 0xa1
800baec: f7f9 fa32 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800baf0: 4b34 ldr r3, [pc, #208] ; (800bbc4 <Display+0x5b54>)
800baf2: 681b ldr r3, [r3, #0]
800baf4: 2b00 cmp r3, #0
800baf6: d005 beq.n 800bb04 <Display+0x5a94>
BSP_LCD_DisplayStringAt(140+28, 100, ".", LEFT_MODE);
800baf8: 2303 movs r3, #3
800bafa: 4a31 ldr r2, [pc, #196] ; (800bbc0 <Display+0x5b50>)
800bafc: 2164 movs r1, #100 ; 0x64
800bafe: 20a8 movs r0, #168 ; 0xa8
800bb00: f7f9 fa28 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800bb04: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800bb08: b2db uxtb r3, r3
800bb0a: 461a mov r2, r3
800bb0c: 4b2b ldr r3, [pc, #172] ; (800bbbc <Display+0x5b4c>)
800bb0e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bb12: 2303 movs r3, #3
800bb14: 2164 movs r1, #100 ; 0x64
800bb16: 20af movs r0, #175 ; 0xaf
800bb18: f7f9 fa1c bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800bb1c: f001 ba4d b.w 800cfba <Display+0x6f4a>
if(ipt3 == 2)
800bb20: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800bb24: b2db uxtb r3, r3
800bb26: 2b02 cmp r3, #2
800bb28: d150 bne.n 800bbcc <Display+0x5b5c>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800bb2a: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800bb2e: b2db uxtb r3, r3
800bb30: 461a mov r2, r3
800bb32: 4b22 ldr r3, [pc, #136] ; (800bbbc <Display+0x5b4c>)
800bb34: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bb38: 2303 movs r3, #3
800bb3a: 2164 movs r1, #100 ; 0x64
800bb3c: 208c movs r0, #140 ; 0x8c
800bb3e: f7f9 fa09 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800bb42: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800bb46: b2db uxtb r3, r3
800bb48: 461a mov r2, r3
800bb4a: 4b1c ldr r3, [pc, #112] ; (800bbbc <Display+0x5b4c>)
800bb4c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bb50: 2303 movs r3, #3
800bb52: 2164 movs r1, #100 ; 0x64
800bb54: 2093 movs r0, #147 ; 0x93
800bb56: f7f9 f9fd bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[ies3], LEFT_MODE);
800bb5a: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800bb5e: b2db uxtb r3, r3
800bb60: 461a mov r2, r3
800bb62: 4b16 ldr r3, [pc, #88] ; (800bbbc <Display+0x5b4c>)
800bb64: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bb68: 2303 movs r3, #3
800bb6a: 2164 movs r1, #100 ; 0x64
800bb6c: 209a movs r0, #154 ; 0x9a
800bb6e: f7f9 f9f1 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800bb72: 4b14 ldr r3, [pc, #80] ; (800bbc4 <Display+0x5b54>)
800bb74: 681b ldr r3, [r3, #0]
800bb76: 2b00 cmp r3, #0
800bb78: d005 beq.n 800bb86 <Display+0x5b16>
BSP_LCD_DisplayStringAt(140+21, 100, ".", LEFT_MODE);
800bb7a: 2303 movs r3, #3
800bb7c: 4a10 ldr r2, [pc, #64] ; (800bbc0 <Display+0x5b50>)
800bb7e: 2164 movs r1, #100 ; 0x64
800bb80: 20a1 movs r0, #161 ; 0xa1
800bb82: f7f9 f9e7 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800bb86: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800bb8a: b2db uxtb r3, r3
800bb8c: 461a mov r2, r3
800bb8e: 4b0b ldr r3, [pc, #44] ; (800bbbc <Display+0x5b4c>)
800bb90: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bb94: 2303 movs r3, #3
800bb96: 2164 movs r1, #100 ; 0x64
800bb98: 20a8 movs r0, #168 ; 0xa8
800bb9a: f7f9 f9db bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800bb9e: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800bba2: b2db uxtb r3, r3
800bba4: 461a mov r2, r3
800bba6: 4b05 ldr r3, [pc, #20] ; (800bbbc <Display+0x5b4c>)
800bba8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bbac: 2303 movs r3, #3
800bbae: 2164 movs r1, #100 ; 0x64
800bbb0: 20af movs r0, #175 ; 0xaf
800bbb2: f7f9 f9cf bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800bbb6: f001 ba00 b.w 800cfba <Display+0x6f4a>
800bbba: bf00 nop
800bbbc: 2002096c .word 0x2002096c
800bbc0: 080181c8 .word 0x080181c8
800bbc4: 2006ba78 .word 0x2006ba78
800bbc8: 20020010 .word 0x20020010
if(ipt3 == 3)
800bbcc: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800bbd0: b2db uxtb r3, r3
800bbd2: 2b03 cmp r3, #3
800bbd4: d147 bne.n 800bc66 <Display+0x5bf6>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800bbd6: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800bbda: b2db uxtb r3, r3
800bbdc: 461a mov r2, r3
800bbde: 4bc2 ldr r3, [pc, #776] ; (800bee8 <Display+0x5e78>)
800bbe0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bbe4: 2303 movs r3, #3
800bbe6: 2164 movs r1, #100 ; 0x64
800bbe8: 208c movs r0, #140 ; 0x8c
800bbea: f7f9 f9b3 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 100, (char *) pNUMS[iet3], LEFT_MODE);
800bbee: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800bbf2: b2db uxtb r3, r3
800bbf4: 461a mov r2, r3
800bbf6: 4bbc ldr r3, [pc, #752] ; (800bee8 <Display+0x5e78>)
800bbf8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bbfc: 2303 movs r3, #3
800bbfe: 2164 movs r1, #100 ; 0x64
800bc00: 2093 movs r0, #147 ; 0x93
800bc02: f7f9 f9a7 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800bc06: 4bb9 ldr r3, [pc, #740] ; (800beec <Display+0x5e7c>)
800bc08: 681b ldr r3, [r3, #0]
800bc0a: 2b00 cmp r3, #0
800bc0c: d005 beq.n 800bc1a <Display+0x5baa>
BSP_LCD_DisplayStringAt(140+14, 100, ".", LEFT_MODE);
800bc0e: 2303 movs r3, #3
800bc10: 4ab7 ldr r2, [pc, #732] ; (800bef0 <Display+0x5e80>)
800bc12: 2164 movs r1, #100 ; 0x64
800bc14: 209a movs r0, #154 ; 0x9a
800bc16: f7f9 f99d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800bc1a: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800bc1e: b2db uxtb r3, r3
800bc20: 461a mov r2, r3
800bc22: 4bb1 ldr r3, [pc, #708] ; (800bee8 <Display+0x5e78>)
800bc24: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bc28: 2303 movs r3, #3
800bc2a: 2164 movs r1, #100 ; 0x64
800bc2c: 20a1 movs r0, #161 ; 0xa1
800bc2e: f7f9 f991 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800bc32: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800bc36: b2db uxtb r3, r3
800bc38: 461a mov r2, r3
800bc3a: 4bab ldr r3, [pc, #684] ; (800bee8 <Display+0x5e78>)
800bc3c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bc40: 2303 movs r3, #3
800bc42: 2164 movs r1, #100 ; 0x64
800bc44: 20a8 movs r0, #168 ; 0xa8
800bc46: f7f9 f985 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800bc4a: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800bc4e: b2db uxtb r3, r3
800bc50: 461a mov r2, r3
800bc52: 4ba5 ldr r3, [pc, #660] ; (800bee8 <Display+0x5e78>)
800bc54: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bc58: 2303 movs r3, #3
800bc5a: 2164 movs r1, #100 ; 0x64
800bc5c: 20af movs r0, #175 ; 0xaf
800bc5e: f7f9 f979 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800bc62: f001 b9aa b.w 800cfba <Display+0x6f4a>
if(ipt3 == 4)
800bc66: f897 3308 ldrb.w r3, [r7, #776] ; 0x308
800bc6a: b2db uxtb r3, r3
800bc6c: 2b04 cmp r3, #4
800bc6e: f041 81a4 bne.w 800cfba <Display+0x6f4a>
BSP_LCD_DisplayStringAt(140, 100, (char *) pNUMS[idt3], LEFT_MODE);
800bc72: f897 330f ldrb.w r3, [r7, #783] ; 0x30f
800bc76: b2db uxtb r3, r3
800bc78: 461a mov r2, r3
800bc7a: 4b9b ldr r3, [pc, #620] ; (800bee8 <Display+0x5e78>)
800bc7c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bc80: 2303 movs r3, #3
800bc82: 2164 movs r1, #100 ; 0x64
800bc84: 208c movs r0, #140 ; 0x8c
800bc86: f7f9 f965 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800bc8a: 4b98 ldr r3, [pc, #608] ; (800beec <Display+0x5e7c>)
800bc8c: 681b ldr r3, [r3, #0]
800bc8e: 2b00 cmp r3, #0
800bc90: d005 beq.n 800bc9e <Display+0x5c2e>
BSP_LCD_DisplayStringAt(140+7, 100, ".", LEFT_MODE);
800bc92: 2303 movs r3, #3
800bc94: 4a96 ldr r2, [pc, #600] ; (800bef0 <Display+0x5e80>)
800bc96: 2164 movs r1, #100 ; 0x64
800bc98: 2093 movs r0, #147 ; 0x93
800bc9a: f7f9 f95b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 100, (char *) pNUMS[iet3], LEFT_MODE);
800bc9e: f897 330e ldrb.w r3, [r7, #782] ; 0x30e
800bca2: b2db uxtb r3, r3
800bca4: 461a mov r2, r3
800bca6: 4b90 ldr r3, [pc, #576] ; (800bee8 <Display+0x5e78>)
800bca8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bcac: 2303 movs r3, #3
800bcae: 2164 movs r1, #100 ; 0x64
800bcb0: 209a movs r0, #154 ; 0x9a
800bcb2: f7f9 f94f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 100, (char *) pNUMS[ies3], LEFT_MODE);
800bcb6: f897 330d ldrb.w r3, [r7, #781] ; 0x30d
800bcba: b2db uxtb r3, r3
800bcbc: 461a mov r2, r3
800bcbe: 4b8a ldr r3, [pc, #552] ; (800bee8 <Display+0x5e78>)
800bcc0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bcc4: 2303 movs r3, #3
800bcc6: 2164 movs r1, #100 ; 0x64
800bcc8: 20a1 movs r0, #161 ; 0xa1
800bcca: f7f9 f943 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 100, (char *) pNUMS[ied3], LEFT_MODE);
800bcce: f897 330c ldrb.w r3, [r7, #780] ; 0x30c
800bcd2: b2db uxtb r3, r3
800bcd4: 461a mov r2, r3
800bcd6: 4b84 ldr r3, [pc, #528] ; (800bee8 <Display+0x5e78>)
800bcd8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bcdc: 2303 movs r3, #3
800bcde: 2164 movs r1, #100 ; 0x64
800bce0: 20a8 movs r0, #168 ; 0xa8
800bce2: f7f9 f937 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 100, (char *) pNUMS[iee3], LEFT_MODE);
800bce6: f897 330b ldrb.w r3, [r7, #779] ; 0x30b
800bcea: b2db uxtb r3, r3
800bcec: 461a mov r2, r3
800bcee: 4b7e ldr r3, [pc, #504] ; (800bee8 <Display+0x5e78>)
800bcf0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bcf4: 2303 movs r3, #3
800bcf6: 2164 movs r1, #100 ; 0x64
800bcf8: 20af movs r0, #175 ; 0xaf
800bcfa: f7f9 f92b bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_3)
800bcfe: f001 b95c b.w 800cfba <Display+0x6f4a>
if(menupos >= Kikdt_4 && menupos <= Kpt_4)
800bd02: 4b7c ldr r3, [pc, #496] ; (800bef4 <Display+0x5e84>)
800bd04: 781b ldrb r3, [r3, #0]
800bd06: b2db uxtb r3, r3
800bd08: 2b19 cmp r3, #25
800bd0a: f241 8663 bls.w 800d9d4 <Display+0x7964>
800bd0e: 4b79 ldr r3, [pc, #484] ; (800bef4 <Display+0x5e84>)
800bd10: 781b ldrb r3, [r3, #0]
800bd12: b2db uxtb r3, r3
800bd14: 2b1f cmp r3, #31
800bd16: f201 865d bhi.w 800d9d4 <Display+0x7964>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800bd1a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800bd1e: 4876 ldr r0, [pc, #472] ; (800bef8 <Display+0x5e88>)
800bd20: f7f9 f852 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(140, 60, str1, LEFT_MODE);
800bd24: f507 728e add.w r2, r7, #284 ; 0x11c
800bd28: 2303 movs r3, #3
800bd2a: 213c movs r1, #60 ; 0x3c
800bd2c: 208c movs r0, #140 ; 0x8c
800bd2e: f7f9 f911 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 80, str2, LEFT_MODE);
800bd32: f107 02e0 add.w r2, r7, #224 ; 0xe0
800bd36: 2303 movs r3, #3
800bd38: 2150 movs r1, #80 ; 0x50
800bd3a: 208c movs r0, #140 ; 0x8c
800bd3c: f7f9 f90a bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140, 100, str3, LEFT_MODE);
800bd40: f107 02a4 add.w r2, r7, #164 ; 0xa4
800bd44: 2303 movs r3, #3
800bd46: 2164 movs r1, #100 ; 0x64
800bd48: 208c movs r0, #140 ; 0x8c
800bd4a: f7f9 f903 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Kikdt_4)
800bd4e: 4b69 ldr r3, [pc, #420] ; (800bef4 <Display+0x5e84>)
800bd50: 781b ldrb r3, [r3, #0]
800bd52: b2db uxtb r3, r3
800bd54: 2b1a cmp r3, #26
800bd56: f040 814c bne.w 800bff2 <Display+0x5f82>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800bd5a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800bd5e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800bd62: f7f9 f831 bl 8004dc8 <LCD_SetColors>
if(blk)
800bd66: 4b61 ldr r3, [pc, #388] ; (800beec <Display+0x5e7c>)
800bd68: 681b ldr r3, [r3, #0]
800bd6a: 2b00 cmp r3, #0
800bd6c: d00b beq.n 800bd86 <Display+0x5d16>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800bd6e: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800bd72: b2db uxtb r3, r3
800bd74: 461a mov r2, r3
800bd76: 4b5c ldr r3, [pc, #368] ; (800bee8 <Display+0x5e78>)
800bd78: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bd7c: 2303 movs r3, #3
800bd7e: 2178 movs r1, #120 ; 0x78
800bd80: 208c movs r0, #140 ; 0x8c
800bd82: f7f9 f8e7 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(!ipt4)
800bd86: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800bd8a: b2db uxtb r3, r3
800bd8c: 2b00 cmp r3, #0
800bd8e: d131 bne.n 800bdf4 <Display+0x5d84>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800bd90: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800bd94: b2db uxtb r3, r3
800bd96: 461a mov r2, r3
800bd98: 4b53 ldr r3, [pc, #332] ; (800bee8 <Display+0x5e78>)
800bd9a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bd9e: 2303 movs r3, #3
800bda0: 2178 movs r1, #120 ; 0x78
800bda2: 2093 movs r0, #147 ; 0x93
800bda4: f7f9 f8d6 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800bda8: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800bdac: b2db uxtb r3, r3
800bdae: 461a mov r2, r3
800bdb0: 4b4d ldr r3, [pc, #308] ; (800bee8 <Display+0x5e78>)
800bdb2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bdb6: 2303 movs r3, #3
800bdb8: 2178 movs r1, #120 ; 0x78
800bdba: 209a movs r0, #154 ; 0x9a
800bdbc: f7f9 f8ca bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800bdc0: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800bdc4: b2db uxtb r3, r3
800bdc6: 461a mov r2, r3
800bdc8: 4b47 ldr r3, [pc, #284] ; (800bee8 <Display+0x5e78>)
800bdca: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bdce: 2303 movs r3, #3
800bdd0: 2178 movs r1, #120 ; 0x78
800bdd2: 20a1 movs r0, #161 ; 0xa1
800bdd4: f7f9 f8be bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE);
800bdd8: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800bddc: b2db uxtb r3, r3
800bdde: 461a mov r2, r3
800bde0: 4b41 ldr r3, [pc, #260] ; (800bee8 <Display+0x5e78>)
800bde2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bde6: 2303 movs r3, #3
800bde8: 2178 movs r1, #120 ; 0x78
800bdea: 20a8 movs r0, #168 ; 0xa8
800bdec: f7f9 f8b2 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800bdf0: f001 bdf0 b.w 800d9d4 <Display+0x7964>
if(ipt4 == 1)
800bdf4: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800bdf8: b2db uxtb r3, r3
800bdfa: 2b01 cmp r3, #1
800bdfc: d137 bne.n 800be6e <Display+0x5dfe>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800bdfe: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800be02: b2db uxtb r3, r3
800be04: 461a mov r2, r3
800be06: 4b38 ldr r3, [pc, #224] ; (800bee8 <Display+0x5e78>)
800be08: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800be0c: 2303 movs r3, #3
800be0e: 2178 movs r1, #120 ; 0x78
800be10: 2093 movs r0, #147 ; 0x93
800be12: f7f9 f89f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800be16: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800be1a: b2db uxtb r3, r3
800be1c: 461a mov r2, r3
800be1e: 4b32 ldr r3, [pc, #200] ; (800bee8 <Display+0x5e78>)
800be20: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800be24: 2303 movs r3, #3
800be26: 2178 movs r1, #120 ; 0x78
800be28: 209a movs r0, #154 ; 0x9a
800be2a: f7f9 f893 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800be2e: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800be32: b2db uxtb r3, r3
800be34: 461a mov r2, r3
800be36: 4b2c ldr r3, [pc, #176] ; (800bee8 <Display+0x5e78>)
800be38: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800be3c: 2303 movs r3, #3
800be3e: 2178 movs r1, #120 ; 0x78
800be40: 20a1 movs r0, #161 ; 0xa1
800be42: f7f9 f887 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE);
800be46: 2303 movs r3, #3
800be48: 4a29 ldr r2, [pc, #164] ; (800bef0 <Display+0x5e80>)
800be4a: 2178 movs r1, #120 ; 0x78
800be4c: 20a8 movs r0, #168 ; 0xa8
800be4e: f7f9 f881 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800be52: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800be56: b2db uxtb r3, r3
800be58: 461a mov r2, r3
800be5a: 4b23 ldr r3, [pc, #140] ; (800bee8 <Display+0x5e78>)
800be5c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800be60: 2303 movs r3, #3
800be62: 2178 movs r1, #120 ; 0x78
800be64: 20af movs r0, #175 ; 0xaf
800be66: f7f9 f875 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800be6a: f001 bdb3 b.w 800d9d4 <Display+0x7964>
if(ipt4 == 2)
800be6e: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800be72: b2db uxtb r3, r3
800be74: 2b02 cmp r3, #2
800be76: d141 bne.n 800befc <Display+0x5e8c>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800be78: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800be7c: b2db uxtb r3, r3
800be7e: 461a mov r2, r3
800be80: 4b19 ldr r3, [pc, #100] ; (800bee8 <Display+0x5e78>)
800be82: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800be86: 2303 movs r3, #3
800be88: 2178 movs r1, #120 ; 0x78
800be8a: 2093 movs r0, #147 ; 0x93
800be8c: f7f9 f862 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800be90: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800be94: b2db uxtb r3, r3
800be96: 461a mov r2, r3
800be98: 4b13 ldr r3, [pc, #76] ; (800bee8 <Display+0x5e78>)
800be9a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800be9e: 2303 movs r3, #3
800bea0: 2178 movs r1, #120 ; 0x78
800bea2: 209a movs r0, #154 ; 0x9a
800bea4: f7f9 f856 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE);
800bea8: 2303 movs r3, #3
800beaa: 4a11 ldr r2, [pc, #68] ; (800bef0 <Display+0x5e80>)
800beac: 2178 movs r1, #120 ; 0x78
800beae: 20a1 movs r0, #161 ; 0xa1
800beb0: f7f9 f850 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800beb4: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800beb8: b2db uxtb r3, r3
800beba: 461a mov r2, r3
800bebc: 4b0a ldr r3, [pc, #40] ; (800bee8 <Display+0x5e78>)
800bebe: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bec2: 2303 movs r3, #3
800bec4: 2178 movs r1, #120 ; 0x78
800bec6: 20a8 movs r0, #168 ; 0xa8
800bec8: f7f9 f844 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800becc: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800bed0: b2db uxtb r3, r3
800bed2: 461a mov r2, r3
800bed4: 4b04 ldr r3, [pc, #16] ; (800bee8 <Display+0x5e78>)
800bed6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800beda: 2303 movs r3, #3
800bedc: 2178 movs r1, #120 ; 0x78
800bede: 20af movs r0, #175 ; 0xaf
800bee0: f7f9 f838 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800bee4: f001 bd76 b.w 800d9d4 <Display+0x7964>
800bee8: 2002096c .word 0x2002096c
800beec: 2006ba78 .word 0x2006ba78
800bef0: 080181c8 .word 0x080181c8
800bef4: 20020010 .word 0x20020010
800bef8: ffd8aa57 .word 0xffd8aa57
if(ipt4 == 3)
800befc: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800bf00: b2db uxtb r3, r3
800bf02: 2b03 cmp r3, #3
800bf04: d137 bne.n 800bf76 <Display+0x5f06>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800bf06: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800bf0a: b2db uxtb r3, r3
800bf0c: 461a mov r2, r3
800bf0e: 4baf ldr r3, [pc, #700] ; (800c1cc <Display+0x615c>)
800bf10: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bf14: 2303 movs r3, #3
800bf16: 2178 movs r1, #120 ; 0x78
800bf18: 2093 movs r0, #147 ; 0x93
800bf1a: f7f9 f81b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE);
800bf1e: 2303 movs r3, #3
800bf20: 4aab ldr r2, [pc, #684] ; (800c1d0 <Display+0x6160>)
800bf22: 2178 movs r1, #120 ; 0x78
800bf24: 209a movs r0, #154 ; 0x9a
800bf26: f7f9 f815 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800bf2a: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800bf2e: b2db uxtb r3, r3
800bf30: 461a mov r2, r3
800bf32: 4ba6 ldr r3, [pc, #664] ; (800c1cc <Display+0x615c>)
800bf34: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bf38: 2303 movs r3, #3
800bf3a: 2178 movs r1, #120 ; 0x78
800bf3c: 20a1 movs r0, #161 ; 0xa1
800bf3e: f7f9 f809 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800bf42: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800bf46: b2db uxtb r3, r3
800bf48: 461a mov r2, r3
800bf4a: 4ba0 ldr r3, [pc, #640] ; (800c1cc <Display+0x615c>)
800bf4c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bf50: 2303 movs r3, #3
800bf52: 2178 movs r1, #120 ; 0x78
800bf54: 20a8 movs r0, #168 ; 0xa8
800bf56: f7f8 fffd bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800bf5a: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800bf5e: b2db uxtb r3, r3
800bf60: 461a mov r2, r3
800bf62: 4b9a ldr r3, [pc, #616] ; (800c1cc <Display+0x615c>)
800bf64: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bf68: 2303 movs r3, #3
800bf6a: 2178 movs r1, #120 ; 0x78
800bf6c: 20af movs r0, #175 ; 0xaf
800bf6e: f7f8 fff1 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800bf72: f001 bd2f b.w 800d9d4 <Display+0x7964>
if(ipt4 == 4)
800bf76: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800bf7a: b2db uxtb r3, r3
800bf7c: 2b04 cmp r3, #4
800bf7e: f041 8529 bne.w 800d9d4 <Display+0x7964>
BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE);
800bf82: 2303 movs r3, #3
800bf84: 4a92 ldr r2, [pc, #584] ; (800c1d0 <Display+0x6160>)
800bf86: 2178 movs r1, #120 ; 0x78
800bf88: 2093 movs r0, #147 ; 0x93
800bf8a: f7f8 ffe3 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE);
800bf8e: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800bf92: b2db uxtb r3, r3
800bf94: 461a mov r2, r3
800bf96: 4b8d ldr r3, [pc, #564] ; (800c1cc <Display+0x615c>)
800bf98: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bf9c: 2303 movs r3, #3
800bf9e: 2178 movs r1, #120 ; 0x78
800bfa0: 209a movs r0, #154 ; 0x9a
800bfa2: f7f8 ffd7 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800bfa6: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800bfaa: b2db uxtb r3, r3
800bfac: 461a mov r2, r3
800bfae: 4b87 ldr r3, [pc, #540] ; (800c1cc <Display+0x615c>)
800bfb0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bfb4: 2303 movs r3, #3
800bfb6: 2178 movs r1, #120 ; 0x78
800bfb8: 20a1 movs r0, #161 ; 0xa1
800bfba: f7f8 ffcb bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800bfbe: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800bfc2: b2db uxtb r3, r3
800bfc4: 461a mov r2, r3
800bfc6: 4b81 ldr r3, [pc, #516] ; (800c1cc <Display+0x615c>)
800bfc8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bfcc: 2303 movs r3, #3
800bfce: 2178 movs r1, #120 ; 0x78
800bfd0: 20a8 movs r0, #168 ; 0xa8
800bfd2: f7f8 ffbf bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800bfd6: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800bfda: b2db uxtb r3, r3
800bfdc: 461a mov r2, r3
800bfde: 4b7b ldr r3, [pc, #492] ; (800c1cc <Display+0x615c>)
800bfe0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800bfe4: 2303 movs r3, #3
800bfe6: 2178 movs r1, #120 ; 0x78
800bfe8: 20af movs r0, #175 ; 0xaf
800bfea: f7f8 ffb3 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800bfee: f001 bcf1 b.w 800d9d4 <Display+0x7964>
if(menupos == Kikt_4)
800bff2: 4b78 ldr r3, [pc, #480] ; (800c1d4 <Display+0x6164>)
800bff4: 781b ldrb r3, [r3, #0]
800bff6: b2db uxtb r3, r3
800bff8: 2b1b cmp r3, #27
800bffa: f040 818a bne.w 800c312 <Display+0x62a2>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800bffe: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800c002: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800c006: f7f8 fedf bl 8004dc8 <LCD_SetColors>
if(!ipt4)
800c00a: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c00e: b2db uxtb r3, r3
800c010: 2b00 cmp r3, #0
800c012: d141 bne.n 800c098 <Display+0x6028>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c014: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c018: b2db uxtb r3, r3
800c01a: 461a mov r2, r3
800c01c: 4b6b ldr r3, [pc, #428] ; (800c1cc <Display+0x615c>)
800c01e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c022: 2303 movs r3, #3
800c024: 2178 movs r1, #120 ; 0x78
800c026: 208c movs r0, #140 ; 0x8c
800c028: f7f8 ff94 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800c02c: 4b6a ldr r3, [pc, #424] ; (800c1d8 <Display+0x6168>)
800c02e: 681b ldr r3, [r3, #0]
800c030: 2b00 cmp r3, #0
800c032: d00b beq.n 800c04c <Display+0x5fdc>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c034: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c038: b2db uxtb r3, r3
800c03a: 461a mov r2, r3
800c03c: 4b63 ldr r3, [pc, #396] ; (800c1cc <Display+0x615c>)
800c03e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c042: 2303 movs r3, #3
800c044: 2178 movs r1, #120 ; 0x78
800c046: 2093 movs r0, #147 ; 0x93
800c048: f7f8 ff84 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c04c: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c050: b2db uxtb r3, r3
800c052: 461a mov r2, r3
800c054: 4b5d ldr r3, [pc, #372] ; (800c1cc <Display+0x615c>)
800c056: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c05a: 2303 movs r3, #3
800c05c: 2178 movs r1, #120 ; 0x78
800c05e: 209a movs r0, #154 ; 0x9a
800c060: f7f8 ff78 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c064: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c068: b2db uxtb r3, r3
800c06a: 461a mov r2, r3
800c06c: 4b57 ldr r3, [pc, #348] ; (800c1cc <Display+0x615c>)
800c06e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c072: 2303 movs r3, #3
800c074: 2178 movs r1, #120 ; 0x78
800c076: 20a1 movs r0, #161 ; 0xa1
800c078: f7f8 ff6c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c07c: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c080: b2db uxtb r3, r3
800c082: 461a mov r2, r3
800c084: 4b51 ldr r3, [pc, #324] ; (800c1cc <Display+0x615c>)
800c086: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c08a: 2303 movs r3, #3
800c08c: 2178 movs r1, #120 ; 0x78
800c08e: 20a8 movs r0, #168 ; 0xa8
800c090: f7f8 ff60 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800c094: f001 bc9e b.w 800d9d4 <Display+0x7964>
if(ipt4 == 1)
800c098: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c09c: b2db uxtb r3, r3
800c09e: 2b01 cmp r3, #1
800c0a0: d147 bne.n 800c132 <Display+0x60c2>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c0a2: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c0a6: b2db uxtb r3, r3
800c0a8: 461a mov r2, r3
800c0aa: 4b48 ldr r3, [pc, #288] ; (800c1cc <Display+0x615c>)
800c0ac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c0b0: 2303 movs r3, #3
800c0b2: 2178 movs r1, #120 ; 0x78
800c0b4: 208c movs r0, #140 ; 0x8c
800c0b6: f7f8 ff4d bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800c0ba: 4b47 ldr r3, [pc, #284] ; (800c1d8 <Display+0x6168>)
800c0bc: 681b ldr r3, [r3, #0]
800c0be: 2b00 cmp r3, #0
800c0c0: d00b beq.n 800c0da <Display+0x606a>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c0c2: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c0c6: b2db uxtb r3, r3
800c0c8: 461a mov r2, r3
800c0ca: 4b40 ldr r3, [pc, #256] ; (800c1cc <Display+0x615c>)
800c0cc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c0d0: 2303 movs r3, #3
800c0d2: 2178 movs r1, #120 ; 0x78
800c0d4: 2093 movs r0, #147 ; 0x93
800c0d6: f7f8 ff3d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c0da: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c0de: b2db uxtb r3, r3
800c0e0: 461a mov r2, r3
800c0e2: 4b3a ldr r3, [pc, #232] ; (800c1cc <Display+0x615c>)
800c0e4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c0e8: 2303 movs r3, #3
800c0ea: 2178 movs r1, #120 ; 0x78
800c0ec: 209a movs r0, #154 ; 0x9a
800c0ee: f7f8 ff31 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c0f2: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c0f6: b2db uxtb r3, r3
800c0f8: 461a mov r2, r3
800c0fa: 4b34 ldr r3, [pc, #208] ; (800c1cc <Display+0x615c>)
800c0fc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c100: 2303 movs r3, #3
800c102: 2178 movs r1, #120 ; 0x78
800c104: 20a1 movs r0, #161 ; 0xa1
800c106: f7f8 ff25 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE);
800c10a: 2303 movs r3, #3
800c10c: 4a30 ldr r2, [pc, #192] ; (800c1d0 <Display+0x6160>)
800c10e: 2178 movs r1, #120 ; 0x78
800c110: 20a8 movs r0, #168 ; 0xa8
800c112: f7f8 ff1f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c116: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c11a: b2db uxtb r3, r3
800c11c: 461a mov r2, r3
800c11e: 4b2b ldr r3, [pc, #172] ; (800c1cc <Display+0x615c>)
800c120: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c124: 2303 movs r3, #3
800c126: 2178 movs r1, #120 ; 0x78
800c128: 20af movs r0, #175 ; 0xaf
800c12a: f7f8 ff13 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800c12e: f001 bc51 b.w 800d9d4 <Display+0x7964>
if(ipt4 == 2)
800c132: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c136: b2db uxtb r3, r3
800c138: 2b02 cmp r3, #2
800c13a: d14f bne.n 800c1dc <Display+0x616c>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c13c: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c140: b2db uxtb r3, r3
800c142: 461a mov r2, r3
800c144: 4b21 ldr r3, [pc, #132] ; (800c1cc <Display+0x615c>)
800c146: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c14a: 2303 movs r3, #3
800c14c: 2178 movs r1, #120 ; 0x78
800c14e: 208c movs r0, #140 ; 0x8c
800c150: f7f8 ff00 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800c154: 4b20 ldr r3, [pc, #128] ; (800c1d8 <Display+0x6168>)
800c156: 681b ldr r3, [r3, #0]
800c158: 2b00 cmp r3, #0
800c15a: d00b beq.n 800c174 <Display+0x6104>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c15c: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c160: b2db uxtb r3, r3
800c162: 461a mov r2, r3
800c164: 4b19 ldr r3, [pc, #100] ; (800c1cc <Display+0x615c>)
800c166: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c16a: 2303 movs r3, #3
800c16c: 2178 movs r1, #120 ; 0x78
800c16e: 2093 movs r0, #147 ; 0x93
800c170: f7f8 fef0 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c174: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c178: b2db uxtb r3, r3
800c17a: 461a mov r2, r3
800c17c: 4b13 ldr r3, [pc, #76] ; (800c1cc <Display+0x615c>)
800c17e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c182: 2303 movs r3, #3
800c184: 2178 movs r1, #120 ; 0x78
800c186: 209a movs r0, #154 ; 0x9a
800c188: f7f8 fee4 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE);
800c18c: 2303 movs r3, #3
800c18e: 4a10 ldr r2, [pc, #64] ; (800c1d0 <Display+0x6160>)
800c190: 2178 movs r1, #120 ; 0x78
800c192: 20a1 movs r0, #161 ; 0xa1
800c194: f7f8 fede bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c198: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c19c: b2db uxtb r3, r3
800c19e: 461a mov r2, r3
800c1a0: 4b0a ldr r3, [pc, #40] ; (800c1cc <Display+0x615c>)
800c1a2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c1a6: 2303 movs r3, #3
800c1a8: 2178 movs r1, #120 ; 0x78
800c1aa: 20a8 movs r0, #168 ; 0xa8
800c1ac: f7f8 fed2 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c1b0: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c1b4: b2db uxtb r3, r3
800c1b6: 461a mov r2, r3
800c1b8: 4b04 ldr r3, [pc, #16] ; (800c1cc <Display+0x615c>)
800c1ba: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c1be: 2303 movs r3, #3
800c1c0: 2178 movs r1, #120 ; 0x78
800c1c2: 20af movs r0, #175 ; 0xaf
800c1c4: f7f8 fec6 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800c1c8: f001 bc04 b.w 800d9d4 <Display+0x7964>
800c1cc: 2002096c .word 0x2002096c
800c1d0: 080181c8 .word 0x080181c8
800c1d4: 20020010 .word 0x20020010
800c1d8: 2006ba78 .word 0x2006ba78
if(ipt4 == 3)
800c1dc: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c1e0: b2db uxtb r3, r3
800c1e2: 2b03 cmp r3, #3
800c1e4: d147 bne.n 800c276 <Display+0x6206>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c1e6: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c1ea: b2db uxtb r3, r3
800c1ec: 461a mov r2, r3
800c1ee: 4bbf ldr r3, [pc, #764] ; (800c4ec <Display+0x647c>)
800c1f0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c1f4: 2303 movs r3, #3
800c1f6: 2178 movs r1, #120 ; 0x78
800c1f8: 208c movs r0, #140 ; 0x8c
800c1fa: f7f8 feab bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800c1fe: 4bbc ldr r3, [pc, #752] ; (800c4f0 <Display+0x6480>)
800c200: 681b ldr r3, [r3, #0]
800c202: 2b00 cmp r3, #0
800c204: d00b beq.n 800c21e <Display+0x61ae>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c206: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c20a: b2db uxtb r3, r3
800c20c: 461a mov r2, r3
800c20e: 4bb7 ldr r3, [pc, #732] ; (800c4ec <Display+0x647c>)
800c210: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c214: 2303 movs r3, #3
800c216: 2178 movs r1, #120 ; 0x78
800c218: 2093 movs r0, #147 ; 0x93
800c21a: f7f8 fe9b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE);
800c21e: 2303 movs r3, #3
800c220: 4ab4 ldr r2, [pc, #720] ; (800c4f4 <Display+0x6484>)
800c222: 2178 movs r1, #120 ; 0x78
800c224: 209a movs r0, #154 ; 0x9a
800c226: f7f8 fe95 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c22a: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c22e: b2db uxtb r3, r3
800c230: 461a mov r2, r3
800c232: 4bae ldr r3, [pc, #696] ; (800c4ec <Display+0x647c>)
800c234: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c238: 2303 movs r3, #3
800c23a: 2178 movs r1, #120 ; 0x78
800c23c: 20a1 movs r0, #161 ; 0xa1
800c23e: f7f8 fe89 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c242: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c246: b2db uxtb r3, r3
800c248: 461a mov r2, r3
800c24a: 4ba8 ldr r3, [pc, #672] ; (800c4ec <Display+0x647c>)
800c24c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c250: 2303 movs r3, #3
800c252: 2178 movs r1, #120 ; 0x78
800c254: 20a8 movs r0, #168 ; 0xa8
800c256: f7f8 fe7d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c25a: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c25e: b2db uxtb r3, r3
800c260: 461a mov r2, r3
800c262: 4ba2 ldr r3, [pc, #648] ; (800c4ec <Display+0x647c>)
800c264: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c268: 2303 movs r3, #3
800c26a: 2178 movs r1, #120 ; 0x78
800c26c: 20af movs r0, #175 ; 0xaf
800c26e: f7f8 fe71 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800c272: f001 bbaf b.w 800d9d4 <Display+0x7964>
if(ipt4 == 4)
800c276: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c27a: b2db uxtb r3, r3
800c27c: 2b04 cmp r3, #4
800c27e: f041 83a9 bne.w 800d9d4 <Display+0x7964>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c282: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c286: b2db uxtb r3, r3
800c288: 461a mov r2, r3
800c28a: 4b98 ldr r3, [pc, #608] ; (800c4ec <Display+0x647c>)
800c28c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c290: 2303 movs r3, #3
800c292: 2178 movs r1, #120 ; 0x78
800c294: 208c movs r0, #140 ; 0x8c
800c296: f7f8 fe5d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE);
800c29a: 2303 movs r3, #3
800c29c: 4a95 ldr r2, [pc, #596] ; (800c4f4 <Display+0x6484>)
800c29e: 2178 movs r1, #120 ; 0x78
800c2a0: 2093 movs r0, #147 ; 0x93
800c2a2: f7f8 fe57 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800c2a6: 4b92 ldr r3, [pc, #584] ; (800c4f0 <Display+0x6480>)
800c2a8: 681b ldr r3, [r3, #0]
800c2aa: 2b00 cmp r3, #0
800c2ac: d00b beq.n 800c2c6 <Display+0x6256>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c2ae: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c2b2: b2db uxtb r3, r3
800c2b4: 461a mov r2, r3
800c2b6: 4b8d ldr r3, [pc, #564] ; (800c4ec <Display+0x647c>)
800c2b8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c2bc: 2303 movs r3, #3
800c2be: 2178 movs r1, #120 ; 0x78
800c2c0: 209a movs r0, #154 ; 0x9a
800c2c2: f7f8 fe47 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c2c6: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c2ca: b2db uxtb r3, r3
800c2cc: 461a mov r2, r3
800c2ce: 4b87 ldr r3, [pc, #540] ; (800c4ec <Display+0x647c>)
800c2d0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c2d4: 2303 movs r3, #3
800c2d6: 2178 movs r1, #120 ; 0x78
800c2d8: 20a1 movs r0, #161 ; 0xa1
800c2da: f7f8 fe3b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c2de: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c2e2: b2db uxtb r3, r3
800c2e4: 461a mov r2, r3
800c2e6: 4b81 ldr r3, [pc, #516] ; (800c4ec <Display+0x647c>)
800c2e8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c2ec: 2303 movs r3, #3
800c2ee: 2178 movs r1, #120 ; 0x78
800c2f0: 20a8 movs r0, #168 ; 0xa8
800c2f2: f7f8 fe2f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c2f6: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c2fa: b2db uxtb r3, r3
800c2fc: 461a mov r2, r3
800c2fe: 4b7b ldr r3, [pc, #492] ; (800c4ec <Display+0x647c>)
800c300: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c304: 2303 movs r3, #3
800c306: 2178 movs r1, #120 ; 0x78
800c308: 20af movs r0, #175 ; 0xaf
800c30a: f7f8 fe23 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800c30e: f001 bb61 b.w 800d9d4 <Display+0x7964>
if(menupos == Kiks_4)
800c312: 4b79 ldr r3, [pc, #484] ; (800c4f8 <Display+0x6488>)
800c314: 781b ldrb r3, [r3, #0]
800c316: b2db uxtb r3, r3
800c318: 2b1c cmp r3, #28
800c31a: f040 818a bne.w 800c632 <Display+0x65c2>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800c31e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800c322: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800c326: f7f8 fd4f bl 8004dc8 <LCD_SetColors>
if(!ipt4)
800c32a: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c32e: b2db uxtb r3, r3
800c330: 2b00 cmp r3, #0
800c332: d141 bne.n 800c3b8 <Display+0x6348>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c334: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c338: b2db uxtb r3, r3
800c33a: 461a mov r2, r3
800c33c: 4b6b ldr r3, [pc, #428] ; (800c4ec <Display+0x647c>)
800c33e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c342: 2303 movs r3, #3
800c344: 2178 movs r1, #120 ; 0x78
800c346: 208c movs r0, #140 ; 0x8c
800c348: f7f8 fe04 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c34c: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c350: b2db uxtb r3, r3
800c352: 461a mov r2, r3
800c354: 4b65 ldr r3, [pc, #404] ; (800c4ec <Display+0x647c>)
800c356: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c35a: 2303 movs r3, #3
800c35c: 2178 movs r1, #120 ; 0x78
800c35e: 2093 movs r0, #147 ; 0x93
800c360: f7f8 fdf8 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800c364: 4b62 ldr r3, [pc, #392] ; (800c4f0 <Display+0x6480>)
800c366: 681b ldr r3, [r3, #0]
800c368: 2b00 cmp r3, #0
800c36a: d00b beq.n 800c384 <Display+0x6314>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c36c: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c370: b2db uxtb r3, r3
800c372: 461a mov r2, r3
800c374: 4b5d ldr r3, [pc, #372] ; (800c4ec <Display+0x647c>)
800c376: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c37a: 2303 movs r3, #3
800c37c: 2178 movs r1, #120 ; 0x78
800c37e: 209a movs r0, #154 ; 0x9a
800c380: f7f8 fde8 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c384: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c388: b2db uxtb r3, r3
800c38a: 461a mov r2, r3
800c38c: 4b57 ldr r3, [pc, #348] ; (800c4ec <Display+0x647c>)
800c38e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c392: 2303 movs r3, #3
800c394: 2178 movs r1, #120 ; 0x78
800c396: 20a1 movs r0, #161 ; 0xa1
800c398: f7f8 fddc bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c39c: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c3a0: b2db uxtb r3, r3
800c3a2: 461a mov r2, r3
800c3a4: 4b51 ldr r3, [pc, #324] ; (800c4ec <Display+0x647c>)
800c3a6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c3aa: 2303 movs r3, #3
800c3ac: 2178 movs r1, #120 ; 0x78
800c3ae: 20a8 movs r0, #168 ; 0xa8
800c3b0: f7f8 fdd0 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800c3b4: f001 bb0e b.w 800d9d4 <Display+0x7964>
if(ipt4 == 1)
800c3b8: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c3bc: b2db uxtb r3, r3
800c3be: 2b01 cmp r3, #1
800c3c0: d147 bne.n 800c452 <Display+0x63e2>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c3c2: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c3c6: b2db uxtb r3, r3
800c3c8: 461a mov r2, r3
800c3ca: 4b48 ldr r3, [pc, #288] ; (800c4ec <Display+0x647c>)
800c3cc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c3d0: 2303 movs r3, #3
800c3d2: 2178 movs r1, #120 ; 0x78
800c3d4: 208c movs r0, #140 ; 0x8c
800c3d6: f7f8 fdbd bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c3da: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c3de: b2db uxtb r3, r3
800c3e0: 461a mov r2, r3
800c3e2: 4b42 ldr r3, [pc, #264] ; (800c4ec <Display+0x647c>)
800c3e4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c3e8: 2303 movs r3, #3
800c3ea: 2178 movs r1, #120 ; 0x78
800c3ec: 2093 movs r0, #147 ; 0x93
800c3ee: f7f8 fdb1 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800c3f2: 4b3f ldr r3, [pc, #252] ; (800c4f0 <Display+0x6480>)
800c3f4: 681b ldr r3, [r3, #0]
800c3f6: 2b00 cmp r3, #0
800c3f8: d00b beq.n 800c412 <Display+0x63a2>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c3fa: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c3fe: b2db uxtb r3, r3
800c400: 461a mov r2, r3
800c402: 4b3a ldr r3, [pc, #232] ; (800c4ec <Display+0x647c>)
800c404: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c408: 2303 movs r3, #3
800c40a: 2178 movs r1, #120 ; 0x78
800c40c: 209a movs r0, #154 ; 0x9a
800c40e: f7f8 fda1 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c412: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c416: b2db uxtb r3, r3
800c418: 461a mov r2, r3
800c41a: 4b34 ldr r3, [pc, #208] ; (800c4ec <Display+0x647c>)
800c41c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c420: 2303 movs r3, #3
800c422: 2178 movs r1, #120 ; 0x78
800c424: 20a1 movs r0, #161 ; 0xa1
800c426: f7f8 fd95 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE);
800c42a: 2303 movs r3, #3
800c42c: 4a31 ldr r2, [pc, #196] ; (800c4f4 <Display+0x6484>)
800c42e: 2178 movs r1, #120 ; 0x78
800c430: 20a8 movs r0, #168 ; 0xa8
800c432: f7f8 fd8f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c436: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c43a: b2db uxtb r3, r3
800c43c: 461a mov r2, r3
800c43e: 4b2b ldr r3, [pc, #172] ; (800c4ec <Display+0x647c>)
800c440: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c444: 2303 movs r3, #3
800c446: 2178 movs r1, #120 ; 0x78
800c448: 20af movs r0, #175 ; 0xaf
800c44a: f7f8 fd83 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800c44e: f001 bac1 b.w 800d9d4 <Display+0x7964>
if(ipt4 == 2)
800c452: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c456: b2db uxtb r3, r3
800c458: 2b02 cmp r3, #2
800c45a: d14f bne.n 800c4fc <Display+0x648c>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c45c: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c460: b2db uxtb r3, r3
800c462: 461a mov r2, r3
800c464: 4b21 ldr r3, [pc, #132] ; (800c4ec <Display+0x647c>)
800c466: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c46a: 2303 movs r3, #3
800c46c: 2178 movs r1, #120 ; 0x78
800c46e: 208c movs r0, #140 ; 0x8c
800c470: f7f8 fd70 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c474: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c478: b2db uxtb r3, r3
800c47a: 461a mov r2, r3
800c47c: 4b1b ldr r3, [pc, #108] ; (800c4ec <Display+0x647c>)
800c47e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c482: 2303 movs r3, #3
800c484: 2178 movs r1, #120 ; 0x78
800c486: 2093 movs r0, #147 ; 0x93
800c488: f7f8 fd64 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800c48c: 4b18 ldr r3, [pc, #96] ; (800c4f0 <Display+0x6480>)
800c48e: 681b ldr r3, [r3, #0]
800c490: 2b00 cmp r3, #0
800c492: d00b beq.n 800c4ac <Display+0x643c>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c494: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c498: b2db uxtb r3, r3
800c49a: 461a mov r2, r3
800c49c: 4b13 ldr r3, [pc, #76] ; (800c4ec <Display+0x647c>)
800c49e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c4a2: 2303 movs r3, #3
800c4a4: 2178 movs r1, #120 ; 0x78
800c4a6: 209a movs r0, #154 ; 0x9a
800c4a8: f7f8 fd54 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE);
800c4ac: 2303 movs r3, #3
800c4ae: 4a11 ldr r2, [pc, #68] ; (800c4f4 <Display+0x6484>)
800c4b0: 2178 movs r1, #120 ; 0x78
800c4b2: 20a1 movs r0, #161 ; 0xa1
800c4b4: f7f8 fd4e bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c4b8: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c4bc: b2db uxtb r3, r3
800c4be: 461a mov r2, r3
800c4c0: 4b0a ldr r3, [pc, #40] ; (800c4ec <Display+0x647c>)
800c4c2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c4c6: 2303 movs r3, #3
800c4c8: 2178 movs r1, #120 ; 0x78
800c4ca: 20a8 movs r0, #168 ; 0xa8
800c4cc: f7f8 fd42 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c4d0: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c4d4: b2db uxtb r3, r3
800c4d6: 461a mov r2, r3
800c4d8: 4b04 ldr r3, [pc, #16] ; (800c4ec <Display+0x647c>)
800c4da: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c4de: 2303 movs r3, #3
800c4e0: 2178 movs r1, #120 ; 0x78
800c4e2: 20af movs r0, #175 ; 0xaf
800c4e4: f7f8 fd36 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800c4e8: f001 ba74 b.w 800d9d4 <Display+0x7964>
800c4ec: 2002096c .word 0x2002096c
800c4f0: 2006ba78 .word 0x2006ba78
800c4f4: 080181c8 .word 0x080181c8
800c4f8: 20020010 .word 0x20020010
if(ipt4 == 3)
800c4fc: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c500: b2db uxtb r3, r3
800c502: 2b03 cmp r3, #3
800c504: d147 bne.n 800c596 <Display+0x6526>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c506: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c50a: b2db uxtb r3, r3
800c50c: 461a mov r2, r3
800c50e: 4bbf ldr r3, [pc, #764] ; (800c80c <Display+0x679c>)
800c510: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c514: 2303 movs r3, #3
800c516: 2178 movs r1, #120 ; 0x78
800c518: 208c movs r0, #140 ; 0x8c
800c51a: f7f8 fd1b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c51e: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c522: b2db uxtb r3, r3
800c524: 461a mov r2, r3
800c526: 4bb9 ldr r3, [pc, #740] ; (800c80c <Display+0x679c>)
800c528: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c52c: 2303 movs r3, #3
800c52e: 2178 movs r1, #120 ; 0x78
800c530: 2093 movs r0, #147 ; 0x93
800c532: f7f8 fd0f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE);
800c536: 2303 movs r3, #3
800c538: 4ab5 ldr r2, [pc, #724] ; (800c810 <Display+0x67a0>)
800c53a: 2178 movs r1, #120 ; 0x78
800c53c: 209a movs r0, #154 ; 0x9a
800c53e: f7f8 fd09 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800c542: 4bb4 ldr r3, [pc, #720] ; (800c814 <Display+0x67a4>)
800c544: 681b ldr r3, [r3, #0]
800c546: 2b00 cmp r3, #0
800c548: d00b beq.n 800c562 <Display+0x64f2>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c54a: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c54e: b2db uxtb r3, r3
800c550: 461a mov r2, r3
800c552: 4bae ldr r3, [pc, #696] ; (800c80c <Display+0x679c>)
800c554: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c558: 2303 movs r3, #3
800c55a: 2178 movs r1, #120 ; 0x78
800c55c: 20a1 movs r0, #161 ; 0xa1
800c55e: f7f8 fcf9 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c562: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c566: b2db uxtb r3, r3
800c568: 461a mov r2, r3
800c56a: 4ba8 ldr r3, [pc, #672] ; (800c80c <Display+0x679c>)
800c56c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c570: 2303 movs r3, #3
800c572: 2178 movs r1, #120 ; 0x78
800c574: 20a8 movs r0, #168 ; 0xa8
800c576: f7f8 fced bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c57a: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c57e: b2db uxtb r3, r3
800c580: 461a mov r2, r3
800c582: 4ba2 ldr r3, [pc, #648] ; (800c80c <Display+0x679c>)
800c584: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c588: 2303 movs r3, #3
800c58a: 2178 movs r1, #120 ; 0x78
800c58c: 20af movs r0, #175 ; 0xaf
800c58e: f7f8 fce1 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800c592: f001 ba1f b.w 800d9d4 <Display+0x7964>
if(ipt4 == 4)
800c596: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c59a: b2db uxtb r3, r3
800c59c: 2b04 cmp r3, #4
800c59e: f041 8219 bne.w 800d9d4 <Display+0x7964>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c5a2: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c5a6: b2db uxtb r3, r3
800c5a8: 461a mov r2, r3
800c5aa: 4b98 ldr r3, [pc, #608] ; (800c80c <Display+0x679c>)
800c5ac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c5b0: 2303 movs r3, #3
800c5b2: 2178 movs r1, #120 ; 0x78
800c5b4: 208c movs r0, #140 ; 0x8c
800c5b6: f7f8 fccd bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE);
800c5ba: 2303 movs r3, #3
800c5bc: 4a94 ldr r2, [pc, #592] ; (800c810 <Display+0x67a0>)
800c5be: 2178 movs r1, #120 ; 0x78
800c5c0: 2093 movs r0, #147 ; 0x93
800c5c2: f7f8 fcc7 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c5c6: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c5ca: b2db uxtb r3, r3
800c5cc: 461a mov r2, r3
800c5ce: 4b8f ldr r3, [pc, #572] ; (800c80c <Display+0x679c>)
800c5d0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c5d4: 2303 movs r3, #3
800c5d6: 2178 movs r1, #120 ; 0x78
800c5d8: 209a movs r0, #154 ; 0x9a
800c5da: f7f8 fcbb bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800c5de: 4b8d ldr r3, [pc, #564] ; (800c814 <Display+0x67a4>)
800c5e0: 681b ldr r3, [r3, #0]
800c5e2: 2b00 cmp r3, #0
800c5e4: d00b beq.n 800c5fe <Display+0x658e>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c5e6: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c5ea: b2db uxtb r3, r3
800c5ec: 461a mov r2, r3
800c5ee: 4b87 ldr r3, [pc, #540] ; (800c80c <Display+0x679c>)
800c5f0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c5f4: 2303 movs r3, #3
800c5f6: 2178 movs r1, #120 ; 0x78
800c5f8: 20a1 movs r0, #161 ; 0xa1
800c5fa: f7f8 fcab bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c5fe: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c602: b2db uxtb r3, r3
800c604: 461a mov r2, r3
800c606: 4b81 ldr r3, [pc, #516] ; (800c80c <Display+0x679c>)
800c608: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c60c: 2303 movs r3, #3
800c60e: 2178 movs r1, #120 ; 0x78
800c610: 20a8 movs r0, #168 ; 0xa8
800c612: f7f8 fc9f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c616: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c61a: b2db uxtb r3, r3
800c61c: 461a mov r2, r3
800c61e: 4b7b ldr r3, [pc, #492] ; (800c80c <Display+0x679c>)
800c620: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c624: 2303 movs r3, #3
800c626: 2178 movs r1, #120 ; 0x78
800c628: 20af movs r0, #175 ; 0xaf
800c62a: f7f8 fc93 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800c62e: f001 b9d1 b.w 800d9d4 <Display+0x7964>
if(menupos == Kikd_4)
800c632: 4b79 ldr r3, [pc, #484] ; (800c818 <Display+0x67a8>)
800c634: 781b ldrb r3, [r3, #0]
800c636: b2db uxtb r3, r3
800c638: 2b1d cmp r3, #29
800c63a: f040 818a bne.w 800c952 <Display+0x68e2>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800c63e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800c642: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800c646: f7f8 fbbf bl 8004dc8 <LCD_SetColors>
if(!ipt4)
800c64a: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c64e: b2db uxtb r3, r3
800c650: 2b00 cmp r3, #0
800c652: d141 bne.n 800c6d8 <Display+0x6668>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c654: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c658: b2db uxtb r3, r3
800c65a: 461a mov r2, r3
800c65c: 4b6b ldr r3, [pc, #428] ; (800c80c <Display+0x679c>)
800c65e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c662: 2303 movs r3, #3
800c664: 2178 movs r1, #120 ; 0x78
800c666: 208c movs r0, #140 ; 0x8c
800c668: f7f8 fc74 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c66c: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c670: b2db uxtb r3, r3
800c672: 461a mov r2, r3
800c674: 4b65 ldr r3, [pc, #404] ; (800c80c <Display+0x679c>)
800c676: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c67a: 2303 movs r3, #3
800c67c: 2178 movs r1, #120 ; 0x78
800c67e: 2093 movs r0, #147 ; 0x93
800c680: f7f8 fc68 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c684: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c688: b2db uxtb r3, r3
800c68a: 461a mov r2, r3
800c68c: 4b5f ldr r3, [pc, #380] ; (800c80c <Display+0x679c>)
800c68e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c692: 2303 movs r3, #3
800c694: 2178 movs r1, #120 ; 0x78
800c696: 209a movs r0, #154 ; 0x9a
800c698: f7f8 fc5c bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800c69c: 4b5d ldr r3, [pc, #372] ; (800c814 <Display+0x67a4>)
800c69e: 681b ldr r3, [r3, #0]
800c6a0: 2b00 cmp r3, #0
800c6a2: d00b beq.n 800c6bc <Display+0x664c>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c6a4: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c6a8: b2db uxtb r3, r3
800c6aa: 461a mov r2, r3
800c6ac: 4b57 ldr r3, [pc, #348] ; (800c80c <Display+0x679c>)
800c6ae: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c6b2: 2303 movs r3, #3
800c6b4: 2178 movs r1, #120 ; 0x78
800c6b6: 20a1 movs r0, #161 ; 0xa1
800c6b8: f7f8 fc4c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c6bc: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c6c0: b2db uxtb r3, r3
800c6c2: 461a mov r2, r3
800c6c4: 4b51 ldr r3, [pc, #324] ; (800c80c <Display+0x679c>)
800c6c6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c6ca: 2303 movs r3, #3
800c6cc: 2178 movs r1, #120 ; 0x78
800c6ce: 20a8 movs r0, #168 ; 0xa8
800c6d0: f7f8 fc40 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800c6d4: f001 b97e b.w 800d9d4 <Display+0x7964>
if(ipt4 == 1)
800c6d8: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c6dc: b2db uxtb r3, r3
800c6de: 2b01 cmp r3, #1
800c6e0: d147 bne.n 800c772 <Display+0x6702>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c6e2: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c6e6: b2db uxtb r3, r3
800c6e8: 461a mov r2, r3
800c6ea: 4b48 ldr r3, [pc, #288] ; (800c80c <Display+0x679c>)
800c6ec: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c6f0: 2303 movs r3, #3
800c6f2: 2178 movs r1, #120 ; 0x78
800c6f4: 208c movs r0, #140 ; 0x8c
800c6f6: f7f8 fc2d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c6fa: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c6fe: b2db uxtb r3, r3
800c700: 461a mov r2, r3
800c702: 4b42 ldr r3, [pc, #264] ; (800c80c <Display+0x679c>)
800c704: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c708: 2303 movs r3, #3
800c70a: 2178 movs r1, #120 ; 0x78
800c70c: 2093 movs r0, #147 ; 0x93
800c70e: f7f8 fc21 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c712: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c716: b2db uxtb r3, r3
800c718: 461a mov r2, r3
800c71a: 4b3c ldr r3, [pc, #240] ; (800c80c <Display+0x679c>)
800c71c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c720: 2303 movs r3, #3
800c722: 2178 movs r1, #120 ; 0x78
800c724: 209a movs r0, #154 ; 0x9a
800c726: f7f8 fc15 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800c72a: 4b3a ldr r3, [pc, #232] ; (800c814 <Display+0x67a4>)
800c72c: 681b ldr r3, [r3, #0]
800c72e: 2b00 cmp r3, #0
800c730: d00b beq.n 800c74a <Display+0x66da>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c732: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c736: b2db uxtb r3, r3
800c738: 461a mov r2, r3
800c73a: 4b34 ldr r3, [pc, #208] ; (800c80c <Display+0x679c>)
800c73c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c740: 2303 movs r3, #3
800c742: 2178 movs r1, #120 ; 0x78
800c744: 20a1 movs r0, #161 ; 0xa1
800c746: f7f8 fc05 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE);
800c74a: 2303 movs r3, #3
800c74c: 4a30 ldr r2, [pc, #192] ; (800c810 <Display+0x67a0>)
800c74e: 2178 movs r1, #120 ; 0x78
800c750: 20a8 movs r0, #168 ; 0xa8
800c752: f7f8 fbff bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c756: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c75a: b2db uxtb r3, r3
800c75c: 461a mov r2, r3
800c75e: 4b2b ldr r3, [pc, #172] ; (800c80c <Display+0x679c>)
800c760: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c764: 2303 movs r3, #3
800c766: 2178 movs r1, #120 ; 0x78
800c768: 20af movs r0, #175 ; 0xaf
800c76a: f7f8 fbf3 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800c76e: f001 b931 b.w 800d9d4 <Display+0x7964>
if(ipt4 == 2)
800c772: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c776: b2db uxtb r3, r3
800c778: 2b02 cmp r3, #2
800c77a: d14f bne.n 800c81c <Display+0x67ac>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c77c: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c780: b2db uxtb r3, r3
800c782: 461a mov r2, r3
800c784: 4b21 ldr r3, [pc, #132] ; (800c80c <Display+0x679c>)
800c786: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c78a: 2303 movs r3, #3
800c78c: 2178 movs r1, #120 ; 0x78
800c78e: 208c movs r0, #140 ; 0x8c
800c790: f7f8 fbe0 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c794: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c798: b2db uxtb r3, r3
800c79a: 461a mov r2, r3
800c79c: 4b1b ldr r3, [pc, #108] ; (800c80c <Display+0x679c>)
800c79e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c7a2: 2303 movs r3, #3
800c7a4: 2178 movs r1, #120 ; 0x78
800c7a6: 2093 movs r0, #147 ; 0x93
800c7a8: f7f8 fbd4 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c7ac: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c7b0: b2db uxtb r3, r3
800c7b2: 461a mov r2, r3
800c7b4: 4b15 ldr r3, [pc, #84] ; (800c80c <Display+0x679c>)
800c7b6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c7ba: 2303 movs r3, #3
800c7bc: 2178 movs r1, #120 ; 0x78
800c7be: 209a movs r0, #154 ; 0x9a
800c7c0: f7f8 fbc8 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE);
800c7c4: 2303 movs r3, #3
800c7c6: 4a12 ldr r2, [pc, #72] ; (800c810 <Display+0x67a0>)
800c7c8: 2178 movs r1, #120 ; 0x78
800c7ca: 20a1 movs r0, #161 ; 0xa1
800c7cc: f7f8 fbc2 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800c7d0: 4b10 ldr r3, [pc, #64] ; (800c814 <Display+0x67a4>)
800c7d2: 681b ldr r3, [r3, #0]
800c7d4: 2b00 cmp r3, #0
800c7d6: d00b beq.n 800c7f0 <Display+0x6780>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c7d8: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c7dc: b2db uxtb r3, r3
800c7de: 461a mov r2, r3
800c7e0: 4b0a ldr r3, [pc, #40] ; (800c80c <Display+0x679c>)
800c7e2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c7e6: 2303 movs r3, #3
800c7e8: 2178 movs r1, #120 ; 0x78
800c7ea: 20a8 movs r0, #168 ; 0xa8
800c7ec: f7f8 fbb2 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c7f0: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c7f4: b2db uxtb r3, r3
800c7f6: 461a mov r2, r3
800c7f8: 4b04 ldr r3, [pc, #16] ; (800c80c <Display+0x679c>)
800c7fa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c7fe: 2303 movs r3, #3
800c800: 2178 movs r1, #120 ; 0x78
800c802: 20af movs r0, #175 ; 0xaf
800c804: f7f8 fba6 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800c808: f001 b8e4 b.w 800d9d4 <Display+0x7964>
800c80c: 2002096c .word 0x2002096c
800c810: 080181c8 .word 0x080181c8
800c814: 2006ba78 .word 0x2006ba78
800c818: 20020010 .word 0x20020010
if(ipt4 == 3)
800c81c: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c820: b2db uxtb r3, r3
800c822: 2b03 cmp r3, #3
800c824: d147 bne.n 800c8b6 <Display+0x6846>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c826: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c82a: b2db uxtb r3, r3
800c82c: 461a mov r2, r3
800c82e: 4bc1 ldr r3, [pc, #772] ; (800cb34 <Display+0x6ac4>)
800c830: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c834: 2303 movs r3, #3
800c836: 2178 movs r1, #120 ; 0x78
800c838: 208c movs r0, #140 ; 0x8c
800c83a: f7f8 fb8b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c83e: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c842: b2db uxtb r3, r3
800c844: 461a mov r2, r3
800c846: 4bbb ldr r3, [pc, #748] ; (800cb34 <Display+0x6ac4>)
800c848: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c84c: 2303 movs r3, #3
800c84e: 2178 movs r1, #120 ; 0x78
800c850: 2093 movs r0, #147 ; 0x93
800c852: f7f8 fb7f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE);
800c856: 2303 movs r3, #3
800c858: 4ab7 ldr r2, [pc, #732] ; (800cb38 <Display+0x6ac8>)
800c85a: 2178 movs r1, #120 ; 0x78
800c85c: 209a movs r0, #154 ; 0x9a
800c85e: f7f8 fb79 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c862: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c866: b2db uxtb r3, r3
800c868: 461a mov r2, r3
800c86a: 4bb2 ldr r3, [pc, #712] ; (800cb34 <Display+0x6ac4>)
800c86c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c870: 2303 movs r3, #3
800c872: 2178 movs r1, #120 ; 0x78
800c874: 20a1 movs r0, #161 ; 0xa1
800c876: f7f8 fb6d bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800c87a: 4bb0 ldr r3, [pc, #704] ; (800cb3c <Display+0x6acc>)
800c87c: 681b ldr r3, [r3, #0]
800c87e: 2b00 cmp r3, #0
800c880: d00b beq.n 800c89a <Display+0x682a>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c882: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c886: b2db uxtb r3, r3
800c888: 461a mov r2, r3
800c88a: 4baa ldr r3, [pc, #680] ; (800cb34 <Display+0x6ac4>)
800c88c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c890: 2303 movs r3, #3
800c892: 2178 movs r1, #120 ; 0x78
800c894: 20a8 movs r0, #168 ; 0xa8
800c896: f7f8 fb5d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c89a: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c89e: b2db uxtb r3, r3
800c8a0: 461a mov r2, r3
800c8a2: 4ba4 ldr r3, [pc, #656] ; (800cb34 <Display+0x6ac4>)
800c8a4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c8a8: 2303 movs r3, #3
800c8aa: 2178 movs r1, #120 ; 0x78
800c8ac: 20af movs r0, #175 ; 0xaf
800c8ae: f7f8 fb51 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800c8b2: f001 b88f b.w 800d9d4 <Display+0x7964>
if(ipt4 == 4)
800c8b6: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c8ba: b2db uxtb r3, r3
800c8bc: 2b04 cmp r3, #4
800c8be: f041 8089 bne.w 800d9d4 <Display+0x7964>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c8c2: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c8c6: b2db uxtb r3, r3
800c8c8: 461a mov r2, r3
800c8ca: 4b9a ldr r3, [pc, #616] ; (800cb34 <Display+0x6ac4>)
800c8cc: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c8d0: 2303 movs r3, #3
800c8d2: 2178 movs r1, #120 ; 0x78
800c8d4: 208c movs r0, #140 ; 0x8c
800c8d6: f7f8 fb3d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE);
800c8da: 2303 movs r3, #3
800c8dc: 4a96 ldr r2, [pc, #600] ; (800cb38 <Display+0x6ac8>)
800c8de: 2178 movs r1, #120 ; 0x78
800c8e0: 2093 movs r0, #147 ; 0x93
800c8e2: f7f8 fb37 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c8e6: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c8ea: b2db uxtb r3, r3
800c8ec: 461a mov r2, r3
800c8ee: 4b91 ldr r3, [pc, #580] ; (800cb34 <Display+0x6ac4>)
800c8f0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c8f4: 2303 movs r3, #3
800c8f6: 2178 movs r1, #120 ; 0x78
800c8f8: 209a movs r0, #154 ; 0x9a
800c8fa: f7f8 fb2b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c8fe: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c902: b2db uxtb r3, r3
800c904: 461a mov r2, r3
800c906: 4b8b ldr r3, [pc, #556] ; (800cb34 <Display+0x6ac4>)
800c908: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c90c: 2303 movs r3, #3
800c90e: 2178 movs r1, #120 ; 0x78
800c910: 20a1 movs r0, #161 ; 0xa1
800c912: f7f8 fb1f bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800c916: 4b89 ldr r3, [pc, #548] ; (800cb3c <Display+0x6acc>)
800c918: 681b ldr r3, [r3, #0]
800c91a: 2b00 cmp r3, #0
800c91c: d00b beq.n 800c936 <Display+0x68c6>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c91e: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c922: b2db uxtb r3, r3
800c924: 461a mov r2, r3
800c926: 4b83 ldr r3, [pc, #524] ; (800cb34 <Display+0x6ac4>)
800c928: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c92c: 2303 movs r3, #3
800c92e: 2178 movs r1, #120 ; 0x78
800c930: 20a8 movs r0, #168 ; 0xa8
800c932: f7f8 fb0f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c936: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c93a: b2db uxtb r3, r3
800c93c: 461a mov r2, r3
800c93e: 4b7d ldr r3, [pc, #500] ; (800cb34 <Display+0x6ac4>)
800c940: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c944: 2303 movs r3, #3
800c946: 2178 movs r1, #120 ; 0x78
800c948: 20af movs r0, #175 ; 0xaf
800c94a: f7f8 fb03 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800c94e: f001 b841 b.w 800d9d4 <Display+0x7964>
if(menupos == Kike_4)
800c952: 4b7b ldr r3, [pc, #492] ; (800cb40 <Display+0x6ad0>)
800c954: 781b ldrb r3, [r3, #0]
800c956: b2db uxtb r3, r3
800c958: 2b1e cmp r3, #30
800c95a: f040 8190 bne.w 800cc7e <Display+0x6c0e>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800c95e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800c962: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800c966: f7f8 fa2f bl 8004dc8 <LCD_SetColors>
if(!ipt4)
800c96a: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c96e: b2db uxtb r3, r3
800c970: 2b00 cmp r3, #0
800c972: d142 bne.n 800c9fa <Display+0x698a>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800c974: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800c978: b2db uxtb r3, r3
800c97a: 461a mov r2, r3
800c97c: 4b6d ldr r3, [pc, #436] ; (800cb34 <Display+0x6ac4>)
800c97e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c982: 2303 movs r3, #3
800c984: 2178 movs r1, #120 ; 0x78
800c986: 208c movs r0, #140 ; 0x8c
800c988: f7f8 fae4 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800c98c: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800c990: b2db uxtb r3, r3
800c992: 461a mov r2, r3
800c994: 4b67 ldr r3, [pc, #412] ; (800cb34 <Display+0x6ac4>)
800c996: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c99a: 2303 movs r3, #3
800c99c: 2178 movs r1, #120 ; 0x78
800c99e: 2093 movs r0, #147 ; 0x93
800c9a0: f7f8 fad8 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800c9a4: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800c9a8: b2db uxtb r3, r3
800c9aa: 461a mov r2, r3
800c9ac: 4b61 ldr r3, [pc, #388] ; (800cb34 <Display+0x6ac4>)
800c9ae: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c9b2: 2303 movs r3, #3
800c9b4: 2178 movs r1, #120 ; 0x78
800c9b6: 209a movs r0, #154 ; 0x9a
800c9b8: f7f8 facc bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800c9bc: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800c9c0: b2db uxtb r3, r3
800c9c2: 461a mov r2, r3
800c9c4: 4b5b ldr r3, [pc, #364] ; (800cb34 <Display+0x6ac4>)
800c9c6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c9ca: 2303 movs r3, #3
800c9cc: 2178 movs r1, #120 ; 0x78
800c9ce: 20a1 movs r0, #161 ; 0xa1
800c9d0: f7f8 fac0 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800c9d4: 4b59 ldr r3, [pc, #356] ; (800cb3c <Display+0x6acc>)
800c9d6: 681b ldr r3, [r3, #0]
800c9d8: 2b00 cmp r3, #0
800c9da: f000 87fb beq.w 800d9d4 <Display+0x7964>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE);
800c9de: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800c9e2: b2db uxtb r3, r3
800c9e4: 461a mov r2, r3
800c9e6: 4b53 ldr r3, [pc, #332] ; (800cb34 <Display+0x6ac4>)
800c9e8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800c9ec: 2303 movs r3, #3
800c9ee: 2178 movs r1, #120 ; 0x78
800c9f0: 20a8 movs r0, #168 ; 0xa8
800c9f2: f7f8 faaf bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800c9f6: f000 bfed b.w 800d9d4 <Display+0x7964>
if(ipt4 == 1)
800c9fa: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800c9fe: b2db uxtb r3, r3
800ca00: 2b01 cmp r3, #1
800ca02: d148 bne.n 800ca96 <Display+0x6a26>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800ca04: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800ca08: b2db uxtb r3, r3
800ca0a: 461a mov r2, r3
800ca0c: 4b49 ldr r3, [pc, #292] ; (800cb34 <Display+0x6ac4>)
800ca0e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ca12: 2303 movs r3, #3
800ca14: 2178 movs r1, #120 ; 0x78
800ca16: 208c movs r0, #140 ; 0x8c
800ca18: f7f8 fa9c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800ca1c: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800ca20: b2db uxtb r3, r3
800ca22: 461a mov r2, r3
800ca24: 4b43 ldr r3, [pc, #268] ; (800cb34 <Display+0x6ac4>)
800ca26: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ca2a: 2303 movs r3, #3
800ca2c: 2178 movs r1, #120 ; 0x78
800ca2e: 2093 movs r0, #147 ; 0x93
800ca30: f7f8 fa90 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800ca34: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800ca38: b2db uxtb r3, r3
800ca3a: 461a mov r2, r3
800ca3c: 4b3d ldr r3, [pc, #244] ; (800cb34 <Display+0x6ac4>)
800ca3e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ca42: 2303 movs r3, #3
800ca44: 2178 movs r1, #120 ; 0x78
800ca46: 209a movs r0, #154 ; 0x9a
800ca48: f7f8 fa84 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800ca4c: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800ca50: b2db uxtb r3, r3
800ca52: 461a mov r2, r3
800ca54: 4b37 ldr r3, [pc, #220] ; (800cb34 <Display+0x6ac4>)
800ca56: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ca5a: 2303 movs r3, #3
800ca5c: 2178 movs r1, #120 ; 0x78
800ca5e: 20a1 movs r0, #161 ; 0xa1
800ca60: f7f8 fa78 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE);
800ca64: 2303 movs r3, #3
800ca66: 4a34 ldr r2, [pc, #208] ; (800cb38 <Display+0x6ac8>)
800ca68: 2178 movs r1, #120 ; 0x78
800ca6a: 20a8 movs r0, #168 ; 0xa8
800ca6c: f7f8 fa72 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800ca70: 4b32 ldr r3, [pc, #200] ; (800cb3c <Display+0x6acc>)
800ca72: 681b ldr r3, [r3, #0]
800ca74: 2b00 cmp r3, #0
800ca76: f000 87ad beq.w 800d9d4 <Display+0x7964>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800ca7a: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800ca7e: b2db uxtb r3, r3
800ca80: 461a mov r2, r3
800ca82: 4b2c ldr r3, [pc, #176] ; (800cb34 <Display+0x6ac4>)
800ca84: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ca88: 2303 movs r3, #3
800ca8a: 2178 movs r1, #120 ; 0x78
800ca8c: 20af movs r0, #175 ; 0xaf
800ca8e: f7f8 fa61 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800ca92: f000 bf9f b.w 800d9d4 <Display+0x7964>
if(ipt4 == 2)
800ca96: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800ca9a: b2db uxtb r3, r3
800ca9c: 2b02 cmp r3, #2
800ca9e: d151 bne.n 800cb44 <Display+0x6ad4>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800caa0: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800caa4: b2db uxtb r3, r3
800caa6: 461a mov r2, r3
800caa8: 4b22 ldr r3, [pc, #136] ; (800cb34 <Display+0x6ac4>)
800caaa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800caae: 2303 movs r3, #3
800cab0: 2178 movs r1, #120 ; 0x78
800cab2: 208c movs r0, #140 ; 0x8c
800cab4: f7f8 fa4e bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800cab8: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800cabc: b2db uxtb r3, r3
800cabe: 461a mov r2, r3
800cac0: 4b1c ldr r3, [pc, #112] ; (800cb34 <Display+0x6ac4>)
800cac2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cac6: 2303 movs r3, #3
800cac8: 2178 movs r1, #120 ; 0x78
800caca: 2093 movs r0, #147 ; 0x93
800cacc: f7f8 fa42 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800cad0: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800cad4: b2db uxtb r3, r3
800cad6: 461a mov r2, r3
800cad8: 4b16 ldr r3, [pc, #88] ; (800cb34 <Display+0x6ac4>)
800cada: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cade: 2303 movs r3, #3
800cae0: 2178 movs r1, #120 ; 0x78
800cae2: 209a movs r0, #154 ; 0x9a
800cae4: f7f8 fa36 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE);
800cae8: 2303 movs r3, #3
800caea: 4a13 ldr r2, [pc, #76] ; (800cb38 <Display+0x6ac8>)
800caec: 2178 movs r1, #120 ; 0x78
800caee: 20a1 movs r0, #161 ; 0xa1
800caf0: f7f8 fa30 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800caf4: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800caf8: b2db uxtb r3, r3
800cafa: 461a mov r2, r3
800cafc: 4b0d ldr r3, [pc, #52] ; (800cb34 <Display+0x6ac4>)
800cafe: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cb02: 2303 movs r3, #3
800cb04: 2178 movs r1, #120 ; 0x78
800cb06: 20a8 movs r0, #168 ; 0xa8
800cb08: f7f8 fa24 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800cb0c: 4b0b ldr r3, [pc, #44] ; (800cb3c <Display+0x6acc>)
800cb0e: 681b ldr r3, [r3, #0]
800cb10: 2b00 cmp r3, #0
800cb12: f000 875f beq.w 800d9d4 <Display+0x7964>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800cb16: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800cb1a: b2db uxtb r3, r3
800cb1c: 461a mov r2, r3
800cb1e: 4b05 ldr r3, [pc, #20] ; (800cb34 <Display+0x6ac4>)
800cb20: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cb24: 2303 movs r3, #3
800cb26: 2178 movs r1, #120 ; 0x78
800cb28: 20af movs r0, #175 ; 0xaf
800cb2a: f7f8 fa13 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800cb2e: f000 bf51 b.w 800d9d4 <Display+0x7964>
800cb32: bf00 nop
800cb34: 2002096c .word 0x2002096c
800cb38: 080181c8 .word 0x080181c8
800cb3c: 2006ba78 .word 0x2006ba78
800cb40: 20020010 .word 0x20020010
if(ipt4 == 3)
800cb44: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800cb48: b2db uxtb r3, r3
800cb4a: 2b03 cmp r3, #3
800cb4c: d148 bne.n 800cbe0 <Display+0x6b70>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800cb4e: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800cb52: b2db uxtb r3, r3
800cb54: 461a mov r2, r3
800cb56: 4bc4 ldr r3, [pc, #784] ; (800ce68 <Display+0x6df8>)
800cb58: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cb5c: 2303 movs r3, #3
800cb5e: 2178 movs r1, #120 ; 0x78
800cb60: 208c movs r0, #140 ; 0x8c
800cb62: f7f8 f9f7 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800cb66: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800cb6a: b2db uxtb r3, r3
800cb6c: 461a mov r2, r3
800cb6e: 4bbe ldr r3, [pc, #760] ; (800ce68 <Display+0x6df8>)
800cb70: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cb74: 2303 movs r3, #3
800cb76: 2178 movs r1, #120 ; 0x78
800cb78: 2093 movs r0, #147 ; 0x93
800cb7a: f7f8 f9eb bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE);
800cb7e: 2303 movs r3, #3
800cb80: 4aba ldr r2, [pc, #744] ; (800ce6c <Display+0x6dfc>)
800cb82: 2178 movs r1, #120 ; 0x78
800cb84: 209a movs r0, #154 ; 0x9a
800cb86: f7f8 f9e5 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800cb8a: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800cb8e: b2db uxtb r3, r3
800cb90: 461a mov r2, r3
800cb92: 4bb5 ldr r3, [pc, #724] ; (800ce68 <Display+0x6df8>)
800cb94: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cb98: 2303 movs r3, #3
800cb9a: 2178 movs r1, #120 ; 0x78
800cb9c: 20a1 movs r0, #161 ; 0xa1
800cb9e: f7f8 f9d9 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800cba2: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800cba6: b2db uxtb r3, r3
800cba8: 461a mov r2, r3
800cbaa: 4baf ldr r3, [pc, #700] ; (800ce68 <Display+0x6df8>)
800cbac: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cbb0: 2303 movs r3, #3
800cbb2: 2178 movs r1, #120 ; 0x78
800cbb4: 20a8 movs r0, #168 ; 0xa8
800cbb6: f7f8 f9cd bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800cbba: 4bad ldr r3, [pc, #692] ; (800ce70 <Display+0x6e00>)
800cbbc: 681b ldr r3, [r3, #0]
800cbbe: 2b00 cmp r3, #0
800cbc0: f000 8708 beq.w 800d9d4 <Display+0x7964>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800cbc4: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800cbc8: b2db uxtb r3, r3
800cbca: 461a mov r2, r3
800cbcc: 4ba6 ldr r3, [pc, #664] ; (800ce68 <Display+0x6df8>)
800cbce: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cbd2: 2303 movs r3, #3
800cbd4: 2178 movs r1, #120 ; 0x78
800cbd6: 20af movs r0, #175 ; 0xaf
800cbd8: f7f8 f9bc bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800cbdc: f000 befa b.w 800d9d4 <Display+0x7964>
if(ipt4 == 4)
800cbe0: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800cbe4: b2db uxtb r3, r3
800cbe6: 2b04 cmp r3, #4
800cbe8: f040 86f4 bne.w 800d9d4 <Display+0x7964>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800cbec: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800cbf0: b2db uxtb r3, r3
800cbf2: 461a mov r2, r3
800cbf4: 4b9c ldr r3, [pc, #624] ; (800ce68 <Display+0x6df8>)
800cbf6: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cbfa: 2303 movs r3, #3
800cbfc: 2178 movs r1, #120 ; 0x78
800cbfe: 208c movs r0, #140 ; 0x8c
800cc00: f7f8 f9a8 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE);
800cc04: 2303 movs r3, #3
800cc06: 4a99 ldr r2, [pc, #612] ; (800ce6c <Display+0x6dfc>)
800cc08: 2178 movs r1, #120 ; 0x78
800cc0a: 2093 movs r0, #147 ; 0x93
800cc0c: f7f8 f9a2 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE);
800cc10: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800cc14: b2db uxtb r3, r3
800cc16: 461a mov r2, r3
800cc18: 4b93 ldr r3, [pc, #588] ; (800ce68 <Display+0x6df8>)
800cc1a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cc1e: 2303 movs r3, #3
800cc20: 2178 movs r1, #120 ; 0x78
800cc22: 209a movs r0, #154 ; 0x9a
800cc24: f7f8 f996 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800cc28: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800cc2c: b2db uxtb r3, r3
800cc2e: 461a mov r2, r3
800cc30: 4b8d ldr r3, [pc, #564] ; (800ce68 <Display+0x6df8>)
800cc32: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cc36: 2303 movs r3, #3
800cc38: 2178 movs r1, #120 ; 0x78
800cc3a: 20a1 movs r0, #161 ; 0xa1
800cc3c: f7f8 f98a bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800cc40: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800cc44: b2db uxtb r3, r3
800cc46: 461a mov r2, r3
800cc48: 4b87 ldr r3, [pc, #540] ; (800ce68 <Display+0x6df8>)
800cc4a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cc4e: 2303 movs r3, #3
800cc50: 2178 movs r1, #120 ; 0x78
800cc52: 20a8 movs r0, #168 ; 0xa8
800cc54: f7f8 f97e bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800cc58: 4b85 ldr r3, [pc, #532] ; (800ce70 <Display+0x6e00>)
800cc5a: 681b ldr r3, [r3, #0]
800cc5c: 2b00 cmp r3, #0
800cc5e: f000 86b9 beq.w 800d9d4 <Display+0x7964>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800cc62: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800cc66: b2db uxtb r3, r3
800cc68: 461a mov r2, r3
800cc6a: 4b7f ldr r3, [pc, #508] ; (800ce68 <Display+0x6df8>)
800cc6c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cc70: 2303 movs r3, #3
800cc72: 2178 movs r1, #120 ; 0x78
800cc74: 20af movs r0, #175 ; 0xaf
800cc76: f7f8 f96d bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800cc7a: f000 beab b.w 800d9d4 <Display+0x7964>
if(menupos == Kpt_4)
800cc7e: 4b7d ldr r3, [pc, #500] ; (800ce74 <Display+0x6e04>)
800cc80: 781b ldrb r3, [r3, #0]
800cc82: b2db uxtb r3, r3
800cc84: 2b1f cmp r3, #31
800cc86: f040 86a5 bne.w 800d9d4 <Display+0x7964>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800cc8a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800cc8e: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800cc92: f7f8 f899 bl 8004dc8 <LCD_SetColors>
if(!ipt4)
800cc96: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800cc9a: b2db uxtb r3, r3
800cc9c: 2b00 cmp r3, #0
800cc9e: d148 bne.n 800cd32 <Display+0x6cc2>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800cca0: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800cca4: b2db uxtb r3, r3
800cca6: 461a mov r2, r3
800cca8: 4b6f ldr r3, [pc, #444] ; (800ce68 <Display+0x6df8>)
800ccaa: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ccae: 2303 movs r3, #3
800ccb0: 2178 movs r1, #120 ; 0x78
800ccb2: 208c movs r0, #140 ; 0x8c
800ccb4: f7f8 f94e bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800ccb8: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800ccbc: b2db uxtb r3, r3
800ccbe: 461a mov r2, r3
800ccc0: 4b69 ldr r3, [pc, #420] ; (800ce68 <Display+0x6df8>)
800ccc2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ccc6: 2303 movs r3, #3
800ccc8: 2178 movs r1, #120 ; 0x78
800ccca: 2093 movs r0, #147 ; 0x93
800cccc: f7f8 f942 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800ccd0: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800ccd4: b2db uxtb r3, r3
800ccd6: 461a mov r2, r3
800ccd8: 4b63 ldr r3, [pc, #396] ; (800ce68 <Display+0x6df8>)
800ccda: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ccde: 2303 movs r3, #3
800cce0: 2178 movs r1, #120 ; 0x78
800cce2: 209a movs r0, #154 ; 0x9a
800cce4: f7f8 f936 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800cce8: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800ccec: b2db uxtb r3, r3
800ccee: 461a mov r2, r3
800ccf0: 4b5d ldr r3, [pc, #372] ; (800ce68 <Display+0x6df8>)
800ccf2: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ccf6: 2303 movs r3, #3
800ccf8: 2178 movs r1, #120 ; 0x78
800ccfa: 20a1 movs r0, #161 ; 0xa1
800ccfc: f7f8 f92a bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[iee4], LEFT_MODE);
800cd00: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800cd04: b2db uxtb r3, r3
800cd06: 461a mov r2, r3
800cd08: 4b57 ldr r3, [pc, #348] ; (800ce68 <Display+0x6df8>)
800cd0a: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cd0e: 2303 movs r3, #3
800cd10: 2178 movs r1, #120 ; 0x78
800cd12: 20a8 movs r0, #168 ; 0xa8
800cd14: f7f8 f91e bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800cd18: 4b55 ldr r3, [pc, #340] ; (800ce70 <Display+0x6e00>)
800cd1a: 681b ldr r3, [r3, #0]
800cd1c: 2b00 cmp r3, #0
800cd1e: f000 8659 beq.w 800d9d4 <Display+0x7964>
BSP_LCD_DisplayStringAt(140+35, 120, ".", LEFT_MODE);
800cd22: 2303 movs r3, #3
800cd24: 4a51 ldr r2, [pc, #324] ; (800ce6c <Display+0x6dfc>)
800cd26: 2178 movs r1, #120 ; 0x78
800cd28: 20af movs r0, #175 ; 0xaf
800cd2a: f7f8 f913 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800cd2e: f000 be51 b.w 800d9d4 <Display+0x7964>
if(ipt4 == 1)
800cd32: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800cd36: b2db uxtb r3, r3
800cd38: 2b01 cmp r3, #1
800cd3a: d147 bne.n 800cdcc <Display+0x6d5c>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800cd3c: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800cd40: b2db uxtb r3, r3
800cd42: 461a mov r2, r3
800cd44: 4b48 ldr r3, [pc, #288] ; (800ce68 <Display+0x6df8>)
800cd46: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cd4a: 2303 movs r3, #3
800cd4c: 2178 movs r1, #120 ; 0x78
800cd4e: 208c movs r0, #140 ; 0x8c
800cd50: f7f8 f900 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800cd54: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800cd58: b2db uxtb r3, r3
800cd5a: 461a mov r2, r3
800cd5c: 4b42 ldr r3, [pc, #264] ; (800ce68 <Display+0x6df8>)
800cd5e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cd62: 2303 movs r3, #3
800cd64: 2178 movs r1, #120 ; 0x78
800cd66: 2093 movs r0, #147 ; 0x93
800cd68: f7f8 f8f4 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800cd6c: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800cd70: b2db uxtb r3, r3
800cd72: 461a mov r2, r3
800cd74: 4b3c ldr r3, [pc, #240] ; (800ce68 <Display+0x6df8>)
800cd76: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cd7a: 2303 movs r3, #3
800cd7c: 2178 movs r1, #120 ; 0x78
800cd7e: 209a movs r0, #154 ; 0x9a
800cd80: f7f8 f8e8 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ied4], LEFT_MODE);
800cd84: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800cd88: b2db uxtb r3, r3
800cd8a: 461a mov r2, r3
800cd8c: 4b36 ldr r3, [pc, #216] ; (800ce68 <Display+0x6df8>)
800cd8e: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cd92: 2303 movs r3, #3
800cd94: 2178 movs r1, #120 ; 0x78
800cd96: 20a1 movs r0, #161 ; 0xa1
800cd98: f7f8 f8dc bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800cd9c: 4b34 ldr r3, [pc, #208] ; (800ce70 <Display+0x6e00>)
800cd9e: 681b ldr r3, [r3, #0]
800cda0: 2b00 cmp r3, #0
800cda2: d005 beq.n 800cdb0 <Display+0x6d40>
BSP_LCD_DisplayStringAt(140+28, 120, ".", LEFT_MODE);
800cda4: 2303 movs r3, #3
800cda6: 4a31 ldr r2, [pc, #196] ; (800ce6c <Display+0x6dfc>)
800cda8: 2178 movs r1, #120 ; 0x78
800cdaa: 20a8 movs r0, #168 ; 0xa8
800cdac: f7f8 f8d2 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800cdb0: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800cdb4: b2db uxtb r3, r3
800cdb6: 461a mov r2, r3
800cdb8: 4b2b ldr r3, [pc, #172] ; (800ce68 <Display+0x6df8>)
800cdba: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cdbe: 2303 movs r3, #3
800cdc0: 2178 movs r1, #120 ; 0x78
800cdc2: 20af movs r0, #175 ; 0xaf
800cdc4: f7f8 f8c6 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800cdc8: f000 be04 b.w 800d9d4 <Display+0x7964>
if(ipt4 == 2)
800cdcc: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800cdd0: b2db uxtb r3, r3
800cdd2: 2b02 cmp r3, #2
800cdd4: d150 bne.n 800ce78 <Display+0x6e08>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800cdd6: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800cdda: b2db uxtb r3, r3
800cddc: 461a mov r2, r3
800cdde: 4b22 ldr r3, [pc, #136] ; (800ce68 <Display+0x6df8>)
800cde0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cde4: 2303 movs r3, #3
800cde6: 2178 movs r1, #120 ; 0x78
800cde8: 208c movs r0, #140 ; 0x8c
800cdea: f7f8 f8b3 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800cdee: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800cdf2: b2db uxtb r3, r3
800cdf4: 461a mov r2, r3
800cdf6: 4b1c ldr r3, [pc, #112] ; (800ce68 <Display+0x6df8>)
800cdf8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cdfc: 2303 movs r3, #3
800cdfe: 2178 movs r1, #120 ; 0x78
800ce00: 2093 movs r0, #147 ; 0x93
800ce02: f7f8 f8a7 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[ies4], LEFT_MODE);
800ce06: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800ce0a: b2db uxtb r3, r3
800ce0c: 461a mov r2, r3
800ce0e: 4b16 ldr r3, [pc, #88] ; (800ce68 <Display+0x6df8>)
800ce10: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ce14: 2303 movs r3, #3
800ce16: 2178 movs r1, #120 ; 0x78
800ce18: 209a movs r0, #154 ; 0x9a
800ce1a: f7f8 f89b bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800ce1e: 4b14 ldr r3, [pc, #80] ; (800ce70 <Display+0x6e00>)
800ce20: 681b ldr r3, [r3, #0]
800ce22: 2b00 cmp r3, #0
800ce24: d005 beq.n 800ce32 <Display+0x6dc2>
BSP_LCD_DisplayStringAt(140+21, 120, ".", LEFT_MODE);
800ce26: 2303 movs r3, #3
800ce28: 4a10 ldr r2, [pc, #64] ; (800ce6c <Display+0x6dfc>)
800ce2a: 2178 movs r1, #120 ; 0x78
800ce2c: 20a1 movs r0, #161 ; 0xa1
800ce2e: f7f8 f891 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800ce32: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800ce36: b2db uxtb r3, r3
800ce38: 461a mov r2, r3
800ce3a: 4b0b ldr r3, [pc, #44] ; (800ce68 <Display+0x6df8>)
800ce3c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ce40: 2303 movs r3, #3
800ce42: 2178 movs r1, #120 ; 0x78
800ce44: 20a8 movs r0, #168 ; 0xa8
800ce46: f7f8 f885 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800ce4a: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800ce4e: b2db uxtb r3, r3
800ce50: 461a mov r2, r3
800ce52: 4b05 ldr r3, [pc, #20] ; (800ce68 <Display+0x6df8>)
800ce54: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ce58: 2303 movs r3, #3
800ce5a: 2178 movs r1, #120 ; 0x78
800ce5c: 20af movs r0, #175 ; 0xaf
800ce5e: f7f8 f879 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800ce62: f000 bdb7 b.w 800d9d4 <Display+0x7964>
800ce66: bf00 nop
800ce68: 2002096c .word 0x2002096c
800ce6c: 080181c8 .word 0x080181c8
800ce70: 2006ba78 .word 0x2006ba78
800ce74: 20020010 .word 0x20020010
if(ipt4 == 3)
800ce78: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800ce7c: b2db uxtb r3, r3
800ce7e: 2b03 cmp r3, #3
800ce80: d147 bne.n 800cf12 <Display+0x6ea2>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800ce82: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800ce86: b2db uxtb r3, r3
800ce88: 461a mov r2, r3
800ce8a: 4bc9 ldr r3, [pc, #804] ; (800d1b0 <Display+0x7140>)
800ce8c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ce90: 2303 movs r3, #3
800ce92: 2178 movs r1, #120 ; 0x78
800ce94: 208c movs r0, #140 ; 0x8c
800ce96: f7f8 f85d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+7, 120, (char *) pNUMS[iet4], LEFT_MODE);
800ce9a: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800ce9e: b2db uxtb r3, r3
800cea0: 461a mov r2, r3
800cea2: 4bc3 ldr r3, [pc, #780] ; (800d1b0 <Display+0x7140>)
800cea4: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cea8: 2303 movs r3, #3
800ceaa: 2178 movs r1, #120 ; 0x78
800ceac: 2093 movs r0, #147 ; 0x93
800ceae: f7f8 f851 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800ceb2: 4bc0 ldr r3, [pc, #768] ; (800d1b4 <Display+0x7144>)
800ceb4: 681b ldr r3, [r3, #0]
800ceb6: 2b00 cmp r3, #0
800ceb8: d005 beq.n 800cec6 <Display+0x6e56>
BSP_LCD_DisplayStringAt(140+14, 120, ".", LEFT_MODE);
800ceba: 2303 movs r3, #3
800cebc: 4abe ldr r2, [pc, #760] ; (800d1b8 <Display+0x7148>)
800cebe: 2178 movs r1, #120 ; 0x78
800cec0: 209a movs r0, #154 ; 0x9a
800cec2: f7f8 f847 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800cec6: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800ceca: b2db uxtb r3, r3
800cecc: 461a mov r2, r3
800cece: 4bb8 ldr r3, [pc, #736] ; (800d1b0 <Display+0x7140>)
800ced0: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ced4: 2303 movs r3, #3
800ced6: 2178 movs r1, #120 ; 0x78
800ced8: 20a1 movs r0, #161 ; 0xa1
800ceda: f7f8 f83b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800cede: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800cee2: b2db uxtb r3, r3
800cee4: 461a mov r2, r3
800cee6: 4bb2 ldr r3, [pc, #712] ; (800d1b0 <Display+0x7140>)
800cee8: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800ceec: 2303 movs r3, #3
800ceee: 2178 movs r1, #120 ; 0x78
800cef0: 20a8 movs r0, #168 ; 0xa8
800cef2: f7f8 f82f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800cef6: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800cefa: b2db uxtb r3, r3
800cefc: 461a mov r2, r3
800cefe: 4bac ldr r3, [pc, #688] ; (800d1b0 <Display+0x7140>)
800cf00: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cf04: 2303 movs r3, #3
800cf06: 2178 movs r1, #120 ; 0x78
800cf08: 20af movs r0, #175 ; 0xaf
800cf0a: f7f8 f823 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800cf0e: f000 bd61 b.w 800d9d4 <Display+0x7964>
if(ipt4 == 4)
800cf12: f897 3300 ldrb.w r3, [r7, #768] ; 0x300
800cf16: b2db uxtb r3, r3
800cf18: 2b04 cmp r3, #4
800cf1a: f040 855b bne.w 800d9d4 <Display+0x7964>
BSP_LCD_DisplayStringAt(140, 120, (char *) pNUMS[idt4], LEFT_MODE);
800cf1e: f897 3307 ldrb.w r3, [r7, #775] ; 0x307
800cf22: b2db uxtb r3, r3
800cf24: 461a mov r2, r3
800cf26: 4ba2 ldr r3, [pc, #648] ; (800d1b0 <Display+0x7140>)
800cf28: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cf2c: 2303 movs r3, #3
800cf2e: 2178 movs r1, #120 ; 0x78
800cf30: 208c movs r0, #140 ; 0x8c
800cf32: f7f8 f80f bl 8004f54 <BSP_LCD_DisplayStringAt>
if(blk)
800cf36: 4b9f ldr r3, [pc, #636] ; (800d1b4 <Display+0x7144>)
800cf38: 681b ldr r3, [r3, #0]
800cf3a: 2b00 cmp r3, #0
800cf3c: d005 beq.n 800cf4a <Display+0x6eda>
BSP_LCD_DisplayStringAt(140+7, 120, ".", LEFT_MODE);
800cf3e: 2303 movs r3, #3
800cf40: 4a9d ldr r2, [pc, #628] ; (800d1b8 <Display+0x7148>)
800cf42: 2178 movs r1, #120 ; 0x78
800cf44: 2093 movs r0, #147 ; 0x93
800cf46: f7f8 f805 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+14, 120, (char *) pNUMS[iet4], LEFT_MODE);
800cf4a: f897 3306 ldrb.w r3, [r7, #774] ; 0x306
800cf4e: b2db uxtb r3, r3
800cf50: 461a mov r2, r3
800cf52: 4b97 ldr r3, [pc, #604] ; (800d1b0 <Display+0x7140>)
800cf54: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cf58: 2303 movs r3, #3
800cf5a: 2178 movs r1, #120 ; 0x78
800cf5c: 209a movs r0, #154 ; 0x9a
800cf5e: f7f7 fff9 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+21, 120, (char *) pNUMS[ies4], LEFT_MODE);
800cf62: f897 3305 ldrb.w r3, [r7, #773] ; 0x305
800cf66: b2db uxtb r3, r3
800cf68: 461a mov r2, r3
800cf6a: 4b91 ldr r3, [pc, #580] ; (800d1b0 <Display+0x7140>)
800cf6c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cf70: 2303 movs r3, #3
800cf72: 2178 movs r1, #120 ; 0x78
800cf74: 20a1 movs r0, #161 ; 0xa1
800cf76: f7f7 ffed bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+28, 120, (char *) pNUMS[ied4], LEFT_MODE);
800cf7a: f897 3304 ldrb.w r3, [r7, #772] ; 0x304
800cf7e: b2db uxtb r3, r3
800cf80: 461a mov r2, r3
800cf82: 4b8b ldr r3, [pc, #556] ; (800d1b0 <Display+0x7140>)
800cf84: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cf88: 2303 movs r3, #3
800cf8a: 2178 movs r1, #120 ; 0x78
800cf8c: 20a8 movs r0, #168 ; 0xa8
800cf8e: f7f7 ffe1 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(140+35, 120, (char *) pNUMS[iee4], LEFT_MODE);
800cf92: f897 3303 ldrb.w r3, [r7, #771] ; 0x303
800cf96: b2db uxtb r3, r3
800cf98: 461a mov r2, r3
800cf9a: 4b85 ldr r3, [pc, #532] ; (800d1b0 <Display+0x7140>)
800cf9c: f853 2022 ldr.w r2, [r3, r2, lsl #2]
800cfa0: 2303 movs r3, #3
800cfa2: 2178 movs r1, #120 ; 0x78
800cfa4: 20af movs r0, #175 ; 0xaf
800cfa6: f7f7 ffd5 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800cfaa: f000 bd13 b.w 800d9d4 <Display+0x7964>
if(menupos == Kikdt_1)
800cfae: bf00 nop
800cfb0: f000 bd10 b.w 800d9d4 <Display+0x7964>
if(menupos == Kikdt_2)
800cfb4: bf00 nop
800cfb6: f000 bd0d b.w 800d9d4 <Display+0x7964>
if(menupos == Kikdt_3)
800cfba: bf00 nop
break;
800cfbc: f000 bd0a b.w 800d9d4 <Display+0x7964>
case MAIN:
BSP_LCD_SetFont(&Font12);
800cfc0: 487e ldr r0, [pc, #504] ; (800d1bc <Display+0x714c>)
800cfc2: f7f7 ff3d bl 8004e40 <BSP_LCD_SetFont>
if(CNT_CHANNELS < 5)
800cfc6: 4b7e ldr r3, [pc, #504] ; (800d1c0 <Display+0x7150>)
800cfc8: 681b ldr r3, [r3, #0]
800cfca: 2b04 cmp r3, #4
800cfcc: f200 8504 bhi.w 800d9d8 <Display+0x7968>
{
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800cfd0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800cfd4: f04f 30ff mov.w r0, #4294967295
800cfd8: f7f7 fef6 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillRect(0, 0, 158, 24);
800cfdc: 2318 movs r3, #24
800cfde: 229e movs r2, #158 ; 0x9e
800cfe0: 2100 movs r1, #0
800cfe2: 2000 movs r0, #0
800cfe4: f7f8 fab2 bl 800554c <BSP_LCD_FillRect>
BSP_LCD_FillRect(0, 120, 158, 24);
800cfe8: 2318 movs r3, #24
800cfea: 229e movs r2, #158 ; 0x9e
800cfec: 2178 movs r1, #120 ; 0x78
800cfee: 2000 movs r0, #0
800cff0: f7f8 faac bl 800554c <BSP_LCD_FillRect>
BSP_LCD_FillRect(161, 0, 158, 24);
800cff4: 2318 movs r3, #24
800cff6: 229e movs r2, #158 ; 0x9e
800cff8: 2100 movs r1, #0
800cffa: 20a1 movs r0, #161 ; 0xa1
800cffc: f7f8 faa6 bl 800554c <BSP_LCD_FillRect>
BSP_LCD_FillRect(161, 120, 158, 24);
800d000: 2318 movs r3, #24
800d002: 229e movs r2, #158 ; 0x9e
800d004: 2178 movs r1, #120 ; 0x78
800d006: 20a1 movs r0, #161 ; 0xa1
800d008: f7f8 faa0 bl 800554c <BSP_LCD_FillRect>
BSP_LCD_DrawRect(0, 0, 318, 238);
800d00c: 23ee movs r3, #238 ; 0xee
800d00e: f44f 729f mov.w r2, #318 ; 0x13e
800d012: 2100 movs r1, #0
800d014: 2000 movs r0, #0
800d016: f7f8 f911 bl 800523c <BSP_LCD_DrawRect>
BSP_LCD_DrawVLine(159, 0, 239);
800d01a: 22ef movs r2, #239 ; 0xef
800d01c: 2100 movs r1, #0
800d01e: 209f movs r0, #159 ; 0x9f
800d020: f7f8 f8aa bl 8005178 <BSP_LCD_DrawVLine>
// 1-2 //
if(pardata.LANG == RUS)
800d024: 4b67 ldr r3, [pc, #412] ; (800d1c4 <Display+0x7154>)
800d026: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800d02a: b29b uxth r3, r3
800d02c: 2b00 cmp r3, #0
800d02e: f040 80bb bne.w 800d1a8 <Display+0x7138>
{
for(i = 0; i < 2; i++)
800d032: 2300 movs r3, #0
800d034: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d038: e045 b.n 800d0c6 <Display+0x7056>
{
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800d03a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d03e: 4862 ldr r0, [pc, #392] ; (800d1c8 <Display+0x7158>)
800d040: f7f7 fec2 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(4, 27 + 120*i, "<22><><C2><D5>:", LEFT_MODE);
800d044: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d048: b29b uxth r3, r3
800d04a: 461a mov r2, r3
800d04c: 0112 lsls r2, r2, #4
800d04e: 1ad3 subs r3, r2, r3
800d050: 00db lsls r3, r3, #3
800d052: b29b uxth r3, r3
800d054: 331b adds r3, #27
800d056: b299 uxth r1, r3
800d058: 2303 movs r3, #3
800d05a: 4a5c ldr r2, [pc, #368] ; (800d1cc <Display+0x715c>)
800d05c: 2004 movs r0, #4
800d05e: f7f7 ff79 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(3, 46+6 + 120*i, "<22><><D4>:", LEFT_MODE);
800d062: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d066: b29b uxth r3, r3
800d068: 461a mov r2, r3
800d06a: 0112 lsls r2, r2, #4
800d06c: 1ad3 subs r3, r2, r3
800d06e: 00db lsls r3, r3, #3
800d070: b29b uxth r3, r3
800d072: 3334 adds r3, #52 ; 0x34
800d074: b299 uxth r1, r3
800d076: 2303 movs r3, #3
800d078: 4a55 ldr r2, [pc, #340] ; (800d1d0 <Display+0x7160>)
800d07a: 2003 movs r0, #3
800d07c: f7f7 ff6a bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(3, 65+6 + 120*i, "<22><><D4>:", LEFT_MODE);
800d080: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d084: b29b uxth r3, r3
800d086: 461a mov r2, r3
800d088: 0112 lsls r2, r2, #4
800d08a: 1ad3 subs r3, r2, r3
800d08c: 00db lsls r3, r3, #3
800d08e: b29b uxth r3, r3
800d090: 3347 adds r3, #71 ; 0x47
800d092: b299 uxth r1, r3
800d094: 2303 movs r3, #3
800d096: 4a4f ldr r2, [pc, #316] ; (800d1d4 <Display+0x7164>)
800d098: 2003 movs r0, #3
800d09a: f7f7 ff5b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(4, 84+6 + 120*i, "<22><><C2><DB><D5>:", LEFT_MODE);
800d09e: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d0a2: b29b uxth r3, r3
800d0a4: 461a mov r2, r3
800d0a6: 0112 lsls r2, r2, #4
800d0a8: 1ad3 subs r3, r2, r3
800d0aa: 00db lsls r3, r3, #3
800d0ac: b29b uxth r3, r3
800d0ae: 335a adds r3, #90 ; 0x5a
800d0b0: b299 uxth r1, r3
800d0b2: 2303 movs r3, #3
800d0b4: 4a48 ldr r2, [pc, #288] ; (800d1d8 <Display+0x7168>)
800d0b6: 2004 movs r0, #4
800d0b8: f7f7 ff4c bl 8004f54 <BSP_LCD_DisplayStringAt>
for(i = 0; i < 2; i++)
800d0bc: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d0c0: 3301 adds r3, #1
800d0c2: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d0c6: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d0ca: 2b01 cmp r3, #1
800d0cc: d9b5 bls.n 800d03a <Display+0x6fca>
}
// 3-4 //
for(i = 0; i < 2; i++)
800d0ce: 2300 movs r3, #0
800d0d0: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d0d4: e045 b.n 800d162 <Display+0x70f2>
{
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800d0d6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d0da: 483b ldr r0, [pc, #236] ; (800d1c8 <Display+0x7158>)
800d0dc: f7f7 fe74 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(164, 27 + 120*i, "<22><><C2><D5>:", LEFT_MODE);
800d0e0: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d0e4: b29b uxth r3, r3
800d0e6: 461a mov r2, r3
800d0e8: 0112 lsls r2, r2, #4
800d0ea: 1ad3 subs r3, r2, r3
800d0ec: 00db lsls r3, r3, #3
800d0ee: b29b uxth r3, r3
800d0f0: 331b adds r3, #27
800d0f2: b299 uxth r1, r3
800d0f4: 2303 movs r3, #3
800d0f6: 4a35 ldr r2, [pc, #212] ; (800d1cc <Display+0x715c>)
800d0f8: 20a4 movs r0, #164 ; 0xa4
800d0fa: f7f7 ff2b bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(163, 46+6 + 120*i, "<22><><D4>:", LEFT_MODE);
800d0fe: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d102: b29b uxth r3, r3
800d104: 461a mov r2, r3
800d106: 0112 lsls r2, r2, #4
800d108: 1ad3 subs r3, r2, r3
800d10a: 00db lsls r3, r3, #3
800d10c: b29b uxth r3, r3
800d10e: 3334 adds r3, #52 ; 0x34
800d110: b299 uxth r1, r3
800d112: 2303 movs r3, #3
800d114: 4a2e ldr r2, [pc, #184] ; (800d1d0 <Display+0x7160>)
800d116: 20a3 movs r0, #163 ; 0xa3
800d118: f7f7 ff1c bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(163, 65+6 + 120*i, "<22><><D4>:", LEFT_MODE);
800d11c: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d120: b29b uxth r3, r3
800d122: 461a mov r2, r3
800d124: 0112 lsls r2, r2, #4
800d126: 1ad3 subs r3, r2, r3
800d128: 00db lsls r3, r3, #3
800d12a: b29b uxth r3, r3
800d12c: 3347 adds r3, #71 ; 0x47
800d12e: b299 uxth r1, r3
800d130: 2303 movs r3, #3
800d132: 4a28 ldr r2, [pc, #160] ; (800d1d4 <Display+0x7164>)
800d134: 20a3 movs r0, #163 ; 0xa3
800d136: f7f7 ff0d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(164, 84+6 + 120*i, "<22><><C2><DB><D5>:", LEFT_MODE);
800d13a: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d13e: b29b uxth r3, r3
800d140: 461a mov r2, r3
800d142: 0112 lsls r2, r2, #4
800d144: 1ad3 subs r3, r2, r3
800d146: 00db lsls r3, r3, #3
800d148: b29b uxth r3, r3
800d14a: 335a adds r3, #90 ; 0x5a
800d14c: b299 uxth r1, r3
800d14e: 2303 movs r3, #3
800d150: 4a21 ldr r2, [pc, #132] ; (800d1d8 <Display+0x7168>)
800d152: 20a4 movs r0, #164 ; 0xa4
800d154: f7f7 fefe bl 8004f54 <BSP_LCD_DisplayStringAt>
for(i = 0; i < 2; i++)
800d158: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d15c: 3301 adds r3, #1
800d15e: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d162: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d166: 2b01 cmp r3, #1
800d168: d9b5 bls.n 800d0d6 <Display+0x7066>
}
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800d16a: f04f 31ff mov.w r1, #4294967295
800d16e: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800d172: f7f7 fe29 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(79, 8, "<22><><CA><C0><CD> 1", CENTER_MODE);
800d176: 2301 movs r3, #1
800d178: 4a18 ldr r2, [pc, #96] ; (800d1dc <Display+0x716c>)
800d17a: 2108 movs r1, #8
800d17c: 204f movs r0, #79 ; 0x4f
800d17e: f7f7 fee9 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(79, 128, "<22><><CA><C0><CD> 2", CENTER_MODE);
800d182: 2301 movs r3, #1
800d184: 4a16 ldr r2, [pc, #88] ; (800d1e0 <Display+0x7170>)
800d186: 2180 movs r1, #128 ; 0x80
800d188: 204f movs r0, #79 ; 0x4f
800d18a: f7f7 fee3 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(239, 8, "<22><><CA><C0><CD> 3", CENTER_MODE);
800d18e: 2301 movs r3, #1
800d190: 4a14 ldr r2, [pc, #80] ; (800d1e4 <Display+0x7174>)
800d192: 2108 movs r1, #8
800d194: 20ef movs r0, #239 ; 0xef
800d196: f7f7 fedd bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(239, 128, "<22><><CA><C0><CD> 4", CENTER_MODE);
800d19a: 2301 movs r3, #1
800d19c: 4a12 ldr r2, [pc, #72] ; (800d1e8 <Display+0x7178>)
800d19e: 2180 movs r1, #128 ; 0x80
800d1a0: 20ef movs r0, #239 ; 0xef
800d1a2: f7f7 fed7 bl 8004f54 <BSP_LCD_DisplayStringAt>
800d1a6: e0d7 b.n 800d358 <Display+0x72e8>
}
else
{
for(i = 0; i < 2; i++)
800d1a8: 2300 movs r3, #0
800d1aa: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d1ae: e063 b.n 800d278 <Display+0x7208>
800d1b0: 2002096c .word 0x2002096c
800d1b4: 2006ba78 .word 0x2006ba78
800d1b8: 080181c8 .word 0x080181c8
800d1bc: 20020000 .word 0x20020000
800d1c0: 2006ba6c .word 0x2006ba6c
800d1c4: 2006bca8 .word 0x2006bca8
800d1c8: ffd3d3d3 .word 0xffd3d3d3
800d1cc: 080181cc .word 0x080181cc
800d1d0: 080181d4 .word 0x080181d4
800d1d4: 080181dc .word 0x080181dc
800d1d8: 080181e4 .word 0x080181e4
800d1dc: 080181ec .word 0x080181ec
800d1e0: 080181f4 .word 0x080181f4
800d1e4: 080181fc .word 0x080181fc
800d1e8: 08018204 .word 0x08018204
{
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800d1ec: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d1f0: 48c6 ldr r0, [pc, #792] ; (800d50c <Display+0x749c>)
800d1f2: f7f7 fde9 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(4, 27 + 120*i, "INPUT:", LEFT_MODE);
800d1f6: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d1fa: b29b uxth r3, r3
800d1fc: 461a mov r2, r3
800d1fe: 0112 lsls r2, r2, #4
800d200: 1ad3 subs r3, r2, r3
800d202: 00db lsls r3, r3, #3
800d204: b29b uxth r3, r3
800d206: 331b adds r3, #27
800d208: b299 uxth r1, r3
800d20a: 2303 movs r3, #3
800d20c: 4ac0 ldr r2, [pc, #768] ; (800d510 <Display+0x74a0>)
800d20e: 2004 movs r0, #4
800d210: f7f7 fea0 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(3, 46+6 + 120*i, "HPF:", LEFT_MODE);
800d214: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d218: b29b uxth r3, r3
800d21a: 461a mov r2, r3
800d21c: 0112 lsls r2, r2, #4
800d21e: 1ad3 subs r3, r2, r3
800d220: 00db lsls r3, r3, #3
800d222: b29b uxth r3, r3
800d224: 3334 adds r3, #52 ; 0x34
800d226: b299 uxth r1, r3
800d228: 2303 movs r3, #3
800d22a: 4aba ldr r2, [pc, #744] ; (800d514 <Display+0x74a4>)
800d22c: 2003 movs r0, #3
800d22e: f7f7 fe91 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(3, 65+6 + 120*i, "LPF:", LEFT_MODE);
800d232: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d236: b29b uxth r3, r3
800d238: 461a mov r2, r3
800d23a: 0112 lsls r2, r2, #4
800d23c: 1ad3 subs r3, r2, r3
800d23e: 00db lsls r3, r3, #3
800d240: b29b uxth r3, r3
800d242: 3347 adds r3, #71 ; 0x47
800d244: b299 uxth r1, r3
800d246: 2303 movs r3, #3
800d248: 4ab3 ldr r2, [pc, #716] ; (800d518 <Display+0x74a8>)
800d24a: 2003 movs r0, #3
800d24c: f7f7 fe82 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(4, 84+6 + 120*i, "OUT:", LEFT_MODE);
800d250: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d254: b29b uxth r3, r3
800d256: 461a mov r2, r3
800d258: 0112 lsls r2, r2, #4
800d25a: 1ad3 subs r3, r2, r3
800d25c: 00db lsls r3, r3, #3
800d25e: b29b uxth r3, r3
800d260: 335a adds r3, #90 ; 0x5a
800d262: b299 uxth r1, r3
800d264: 2303 movs r3, #3
800d266: 4aad ldr r2, [pc, #692] ; (800d51c <Display+0x74ac>)
800d268: 2004 movs r0, #4
800d26a: f7f7 fe73 bl 8004f54 <BSP_LCD_DisplayStringAt>
for(i = 0; i < 2; i++)
800d26e: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d272: 3301 adds r3, #1
800d274: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d278: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d27c: 2b01 cmp r3, #1
800d27e: d9b5 bls.n 800d1ec <Display+0x717c>
}
// 3-4 //
for(i = 0; i < 2; i++)
800d280: 2300 movs r3, #0
800d282: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d286: e045 b.n 800d314 <Display+0x72a4>
{
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800d288: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d28c: 489f ldr r0, [pc, #636] ; (800d50c <Display+0x749c>)
800d28e: f7f7 fd9b bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(164, 27 + 120*i, "INPUT:", LEFT_MODE);
800d292: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d296: b29b uxth r3, r3
800d298: 461a mov r2, r3
800d29a: 0112 lsls r2, r2, #4
800d29c: 1ad3 subs r3, r2, r3
800d29e: 00db lsls r3, r3, #3
800d2a0: b29b uxth r3, r3
800d2a2: 331b adds r3, #27
800d2a4: b299 uxth r1, r3
800d2a6: 2303 movs r3, #3
800d2a8: 4a99 ldr r2, [pc, #612] ; (800d510 <Display+0x74a0>)
800d2aa: 20a4 movs r0, #164 ; 0xa4
800d2ac: f7f7 fe52 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(163, 46+6 + 120*i, "HPF:", LEFT_MODE);
800d2b0: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d2b4: b29b uxth r3, r3
800d2b6: 461a mov r2, r3
800d2b8: 0112 lsls r2, r2, #4
800d2ba: 1ad3 subs r3, r2, r3
800d2bc: 00db lsls r3, r3, #3
800d2be: b29b uxth r3, r3
800d2c0: 3334 adds r3, #52 ; 0x34
800d2c2: b299 uxth r1, r3
800d2c4: 2303 movs r3, #3
800d2c6: 4a93 ldr r2, [pc, #588] ; (800d514 <Display+0x74a4>)
800d2c8: 20a3 movs r0, #163 ; 0xa3
800d2ca: f7f7 fe43 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(163, 65+6 + 120*i, "LPF:", LEFT_MODE);
800d2ce: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d2d2: b29b uxth r3, r3
800d2d4: 461a mov r2, r3
800d2d6: 0112 lsls r2, r2, #4
800d2d8: 1ad3 subs r3, r2, r3
800d2da: 00db lsls r3, r3, #3
800d2dc: b29b uxth r3, r3
800d2de: 3347 adds r3, #71 ; 0x47
800d2e0: b299 uxth r1, r3
800d2e2: 2303 movs r3, #3
800d2e4: 4a8c ldr r2, [pc, #560] ; (800d518 <Display+0x74a8>)
800d2e6: 20a3 movs r0, #163 ; 0xa3
800d2e8: f7f7 fe34 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(164, 84+6 + 120*i, "OUT::", LEFT_MODE);
800d2ec: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d2f0: b29b uxth r3, r3
800d2f2: 461a mov r2, r3
800d2f4: 0112 lsls r2, r2, #4
800d2f6: 1ad3 subs r3, r2, r3
800d2f8: 00db lsls r3, r3, #3
800d2fa: b29b uxth r3, r3
800d2fc: 335a adds r3, #90 ; 0x5a
800d2fe: b299 uxth r1, r3
800d300: 2303 movs r3, #3
800d302: 4a87 ldr r2, [pc, #540] ; (800d520 <Display+0x74b0>)
800d304: 20a4 movs r0, #164 ; 0xa4
800d306: f7f7 fe25 bl 8004f54 <BSP_LCD_DisplayStringAt>
for(i = 0; i < 2; i++)
800d30a: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d30e: 3301 adds r3, #1
800d310: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d314: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d318: 2b01 cmp r3, #1
800d31a: d9b5 bls.n 800d288 <Display+0x7218>
}
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800d31c: f04f 31ff mov.w r1, #4294967295
800d320: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800d324: f7f7 fd50 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(79, 8, "CHANNEL 1", CENTER_MODE);
800d328: 2301 movs r3, #1
800d32a: 4a7e ldr r2, [pc, #504] ; (800d524 <Display+0x74b4>)
800d32c: 2108 movs r1, #8
800d32e: 204f movs r0, #79 ; 0x4f
800d330: f7f7 fe10 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(79, 128, "CHANNEL 2", CENTER_MODE);
800d334: 2301 movs r3, #1
800d336: 4a7c ldr r2, [pc, #496] ; (800d528 <Display+0x74b8>)
800d338: 2180 movs r1, #128 ; 0x80
800d33a: 204f movs r0, #79 ; 0x4f
800d33c: f7f7 fe0a bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(239, 8, "CHANNEL 3", CENTER_MODE);
800d340: 2301 movs r3, #1
800d342: 4a7a ldr r2, [pc, #488] ; (800d52c <Display+0x74bc>)
800d344: 2108 movs r1, #8
800d346: 20ef movs r0, #239 ; 0xef
800d348: f7f7 fe04 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(239, 128, "CHANNEL 4", CENTER_MODE);
800d34c: 2301 movs r3, #1
800d34e: 4a78 ldr r2, [pc, #480] ; (800d530 <Display+0x74c0>)
800d350: 2180 movs r1, #128 ; 0x80
800d352: 20ef movs r0, #239 ; 0xef
800d354: f7f7 fdfe bl 8004f54 <BSP_LCD_DisplayStringAt>
}
for(i = 0; i < 4; i++)
800d358: 2300 movs r3, #0
800d35a: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d35e: e018 b.n 800d392 <Display+0x7322>
{
if(MASK_CHANNELS & (1 << i)) {
800d360: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d364: 2201 movs r2, #1
800d366: fa02 f303 lsl.w r3, r2, r3
800d36a: 461a mov r2, r3
800d36c: 4b71 ldr r3, [pc, #452] ; (800d534 <Display+0x74c4>)
800d36e: 681b ldr r3, [r3, #0]
800d370: 4013 ands r3, r2
800d372: 2b00 cmp r3, #0
800d374: d008 beq.n 800d388 <Display+0x7318>
DrawChannel_4(i, blk);
800d376: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d37a: b2da uxtb r2, r3
800d37c: 4b6e ldr r3, [pc, #440] ; (800d538 <Display+0x74c8>)
800d37e: 681b ldr r3, [r3, #0]
800d380: 4619 mov r1, r3
800d382: 4610 mov r0, r2
800d384: f000 fea4 bl 800e0d0 <DrawChannel_4>
for(i = 0; i < 4; i++)
800d388: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d38c: 3301 adds r3, #1
800d38e: f8c7 3330 str.w r3, [r7, #816] ; 0x330
800d392: f8d7 3330 ldr.w r3, [r7, #816] ; 0x330
800d396: 2b03 cmp r3, #3
800d398: d9e2 bls.n 800d360 <Display+0x72f0>
}
else
{
}
break;
800d39a: e31d b.n 800d9d8 <Display+0x7968>
case CALIBR_00:
BSP_LCD_SetFont(&Font12);
800d39c: 4867 ldr r0, [pc, #412] ; (800d53c <Display+0x74cc>)
800d39e: f7f7 fd4f bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d3a2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d3a6: f06f 00ff mvn.w r0, #255 ; 0xff
800d3aa: f7f7 fd0d bl 8004dc8 <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);
800d3ae: 2301 movs r3, #1
800d3b0: 4a63 ldr r2, [pc, #396] ; (800d540 <Display+0x74d0>)
800d3b2: 2118 movs r1, #24
800d3b4: 20a0 movs r0, #160 ; 0xa0
800d3b6: f7f7 fdcd bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos != Ch1)
800d3ba: 4b62 ldr r3, [pc, #392] ; (800d544 <Display+0x74d4>)
800d3bc: 781b ldrb r3, [r3, #0]
800d3be: b2db uxtb r3, r3
800d3c0: 2b00 cmp r3, #0
800d3c2: d006 beq.n 800d3d2 <Display+0x7362>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800d3c4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d3c8: f04f 30ff mov.w r0, #4294967295
800d3cc: f7f7 fcfc bl 8004dc8 <LCD_SetColors>
800d3d0: e005 b.n 800d3de <Display+0x736e>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800d3d2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d3d6: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800d3da: f7f7 fcf5 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 48+64, "<22><><CA><C0><CD> 1", CENTER_MODE);
800d3de: 2301 movs r3, #1
800d3e0: 4a59 ldr r2, [pc, #356] ; (800d548 <Display+0x74d8>)
800d3e2: 2170 movs r1, #112 ; 0x70
800d3e4: 20a0 movs r0, #160 ; 0xa0
800d3e6: f7f7 fdb5 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos != Ch2)
800d3ea: 4b56 ldr r3, [pc, #344] ; (800d544 <Display+0x74d4>)
800d3ec: 781b ldrb r3, [r3, #0]
800d3ee: b2db uxtb r3, r3
800d3f0: 2b01 cmp r3, #1
800d3f2: d006 beq.n 800d402 <Display+0x7392>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800d3f4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d3f8: f04f 30ff mov.w r0, #4294967295
800d3fc: f7f7 fce4 bl 8004dc8 <LCD_SetColors>
800d400: e005 b.n 800d40e <Display+0x739e>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800d402: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d406: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800d40a: f7f7 fcdd bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 72+64, "<22><><CA><C0><CD> 2", CENTER_MODE);
800d40e: 2301 movs r3, #1
800d410: 4a4e ldr r2, [pc, #312] ; (800d54c <Display+0x74dc>)
800d412: 2188 movs r1, #136 ; 0x88
800d414: 20a0 movs r0, #160 ; 0xa0
800d416: f7f7 fd9d bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos != Ch3)
800d41a: 4b4a ldr r3, [pc, #296] ; (800d544 <Display+0x74d4>)
800d41c: 781b ldrb r3, [r3, #0]
800d41e: b2db uxtb r3, r3
800d420: 2b02 cmp r3, #2
800d422: d006 beq.n 800d432 <Display+0x73c2>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800d424: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d428: f04f 30ff mov.w r0, #4294967295
800d42c: f7f7 fccc bl 8004dc8 <LCD_SetColors>
800d430: e005 b.n 800d43e <Display+0x73ce>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800d432: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d436: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800d43a: f7f7 fcc5 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 96+64, "<22><><CA><C0><CD> 3", CENTER_MODE);
800d43e: 2301 movs r3, #1
800d440: 4a43 ldr r2, [pc, #268] ; (800d550 <Display+0x74e0>)
800d442: 21a0 movs r1, #160 ; 0xa0
800d444: 20a0 movs r0, #160 ; 0xa0
800d446: f7f7 fd85 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos != Ch4)
800d44a: 4b3e ldr r3, [pc, #248] ; (800d544 <Display+0x74d4>)
800d44c: 781b ldrb r3, [r3, #0]
800d44e: b2db uxtb r3, r3
800d450: 2b03 cmp r3, #3
800d452: d006 beq.n 800d462 <Display+0x73f2>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800d454: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d458: f04f 30ff mov.w r0, #4294967295
800d45c: f7f7 fcb4 bl 8004dc8 <LCD_SetColors>
800d460: e005 b.n 800d46e <Display+0x73fe>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800d462: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d466: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800d46a: f7f7 fcad bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 120+64, "<22><><CA><C0><CD> 4", CENTER_MODE);
800d46e: 2301 movs r3, #1
800d470: 4a38 ldr r2, [pc, #224] ; (800d554 <Display+0x74e4>)
800d472: 21b8 movs r1, #184 ; 0xb8
800d474: 20a0 movs r0, #160 ; 0xa0
800d476: f7f7 fd6d bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos != Ch5)
800d47a: 4b32 ldr r3, [pc, #200] ; (800d544 <Display+0x74d4>)
800d47c: 781b ldrb r3, [r3, #0]
800d47e: b2db uxtb r3, r3
800d480: 2b04 cmp r3, #4
800d482: d006 beq.n 800d492 <Display+0x7422>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800d484: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d488: f04f 30ff mov.w r0, #4294967295
800d48c: f7f7 fc9c bl 8004dc8 <LCD_SetColors>
800d490: e005 b.n 800d49e <Display+0x742e>
else LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800d492: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d496: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800d49a: f7f7 fc95 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 144+64, "<22><><C2><DB><D5>", CENTER_MODE);
800d49e: 2301 movs r3, #1
800d4a0: 4a2d ldr r2, [pc, #180] ; (800d558 <Display+0x74e8>)
800d4a2: 21d0 movs r1, #208 ; 0xd0
800d4a4: 20a0 movs r0, #160 ; 0xa0
800d4a6: f7f7 fd55 bl 8004f54 <BSP_LCD_DisplayStringAt>
break;
800d4aa: e296 b.n 800d9da <Display+0x796a>
case CALIBR_0: // [CHARGE x1] + KU_1
BSP_LCD_SetFont(&Font12);
800d4ac: 4823 ldr r0, [pc, #140] ; (800d53c <Display+0x74cc>)
800d4ae: f7f7 fcc7 bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d4b2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d4b6: f06f 00ff mvn.w r0, #255 ; 0xff
800d4ba: f7f7 fc85 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x0.1]:", CENTER_MODE);
800d4be: 2301 movs r3, #1
800d4c0: 4a26 ldr r2, [pc, #152] ; (800d55c <Display+0x74ec>)
800d4c2: 210a movs r1, #10
800d4c4: 20a0 movs r0, #160 ; 0xa0
800d4c6: f7f7 fd45 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5000<30><30>", CENTER_MODE);
800d4ca: 2301 movs r3, #1
800d4cc: 4a24 ldr r2, [pc, #144] ; (800d560 <Display+0x74f0>)
800d4ce: 2118 movs r1, #24
800d4d0: 20a0 movs r0, #160 ; 0xa0
800d4d2: f7f7 fd3f bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d4d6: f001 fe8b bl 800f1f0 <DrawButtons>
break;
800d4da: e27e b.n 800d9da <Display+0x796a>
case CALIBR_1: // CHARGE x1 + [KU_2]
BSP_LCD_SetFont(&Font12);
800d4dc: 4817 ldr r0, [pc, #92] ; (800d53c <Display+0x74cc>)
800d4de: f7f7 fcaf bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d4e2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d4e6: f06f 00ff mvn.w r0, #255 ; 0xff
800d4ea: f7f7 fc6d bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x0.2]:", CENTER_MODE);
800d4ee: 2301 movs r3, #1
800d4f0: 4a1c ldr r2, [pc, #112] ; (800d564 <Display+0x74f4>)
800d4f2: 210a movs r1, #10
800d4f4: 20a0 movs r0, #160 ; 0xa0
800d4f6: f7f7 fd2d bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5000<30><30>", CENTER_MODE);
800d4fa: 2301 movs r3, #1
800d4fc: 4a18 ldr r2, [pc, #96] ; (800d560 <Display+0x74f0>)
800d4fe: 2118 movs r1, #24
800d500: 20a0 movs r0, #160 ; 0xa0
800d502: f7f7 fd27 bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d506: f001 fe73 bl 800f1f0 <DrawButtons>
break;
800d50a: e266 b.n 800d9da <Display+0x796a>
800d50c: ffd3d3d3 .word 0xffd3d3d3
800d510: 0801820c .word 0x0801820c
800d514: 08018214 .word 0x08018214
800d518: 0801821c .word 0x0801821c
800d51c: 08018224 .word 0x08018224
800d520: 0801822c .word 0x0801822c
800d524: 08018234 .word 0x08018234
800d528: 08018240 .word 0x08018240
800d52c: 0801824c .word 0x0801824c
800d530: 08018258 .word 0x08018258
800d534: 2002002c .word 0x2002002c
800d538: 2006ba78 .word 0x2006ba78
800d53c: 20020000 .word 0x20020000
800d540: 08018264 .word 0x08018264
800d544: 20020010 .word 0x20020010
800d548: 080181ec .word 0x080181ec
800d54c: 080181f4 .word 0x080181f4
800d550: 080181fc .word 0x080181fc
800d554: 08018204 .word 0x08018204
800d558: 08018284 .word 0x08018284
800d55c: 0801828c .word 0x0801828c
800d560: 080182a4 .word 0x080182a4
800d564: 080182bc .word 0x080182bc
case CALIBR_2: // CHARGE x1 + [KU_5]
BSP_LCD_SetFont(&Font12);
800d568: 48d7 ldr r0, [pc, #860] ; (800d8c8 <Display+0x7858>)
800d56a: f7f7 fc69 bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d56e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d572: f06f 00ff mvn.w r0, #255 ; 0xff
800d576: f7f7 fc27 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x0.5]:", CENTER_MODE);
800d57a: 2301 movs r3, #1
800d57c: 4ad3 ldr r2, [pc, #844] ; (800d8cc <Display+0x785c>)
800d57e: 210a movs r1, #10
800d580: 20a0 movs r0, #160 ; 0xa0
800d582: f7f7 fce7 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5000<30><30>", CENTER_MODE);
800d586: 2301 movs r3, #1
800d588: 4ad1 ldr r2, [pc, #836] ; (800d8d0 <Display+0x7860>)
800d58a: 2118 movs r1, #24
800d58c: 20a0 movs r0, #160 ; 0xa0
800d58e: f7f7 fce1 bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d592: f001 fe2d bl 800f1f0 <DrawButtons>
break;
800d596: e220 b.n 800d9da <Display+0x796a>
case CALIBR_3: // CHARGE x1 + [KU_10]
BSP_LCD_SetFont(&Font12);
800d598: 48cb ldr r0, [pc, #812] ; (800d8c8 <Display+0x7858>)
800d59a: f7f7 fc51 bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d59e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d5a2: f06f 00ff mvn.w r0, #255 ; 0xff
800d5a6: f7f7 fc0f bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x1]:", CENTER_MODE);
800d5aa: 2301 movs r3, #1
800d5ac: 4ac9 ldr r2, [pc, #804] ; (800d8d4 <Display+0x7864>)
800d5ae: 210a movs r1, #10
800d5b0: 20a0 movs r0, #160 ; 0xa0
800d5b2: f7f7 fccf bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5000<30><30>", CENTER_MODE);
800d5b6: 2301 movs r3, #1
800d5b8: 4ac5 ldr r2, [pc, #788] ; (800d8d0 <Display+0x7860>)
800d5ba: 2118 movs r1, #24
800d5bc: 20a0 movs r0, #160 ; 0xa0
800d5be: f7f7 fcc9 bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d5c2: f001 fe15 bl 800f1f0 <DrawButtons>
break;
800d5c6: e208 b.n 800d9da <Display+0x796a>
case CALIBR_4: // CHARGE x1 + [KU_x10]
BSP_LCD_SetFont(&Font12);
800d5c8: 48bf ldr r0, [pc, #764] ; (800d8c8 <Display+0x7858>)
800d5ca: f7f7 fc39 bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d5ce: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d5d2: f06f 00ff mvn.w r0, #255 ; 0xff
800d5d6: f7f7 fbf7 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x2]:", CENTER_MODE);
800d5da: 2301 movs r3, #1
800d5dc: 4abe ldr r2, [pc, #760] ; (800d8d8 <Display+0x7868>)
800d5de: 210a movs r1, #10
800d5e0: 20a0 movs r0, #160 ; 0xa0
800d5e2: f7f7 fcb7 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 2500<30><30>", CENTER_MODE);
800d5e6: 2301 movs r3, #1
800d5e8: 4abc ldr r2, [pc, #752] ; (800d8dc <Display+0x786c>)
800d5ea: 2118 movs r1, #24
800d5ec: 20a0 movs r0, #160 ; 0xa0
800d5ee: f7f7 fcb1 bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d5f2: f001 fdfd bl 800f1f0 <DrawButtons>
break;
800d5f6: e1f0 b.n 800d9da <Display+0x796a>
case CALIBR_5: // [CHARGE x10] + KU_1
BSP_LCD_SetFont(&Font12);
800d5f8: 48b3 ldr r0, [pc, #716] ; (800d8c8 <Display+0x7858>)
800d5fa: f7f7 fc21 bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d5fe: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d602: f06f 00ff mvn.w r0, #255 ; 0xff
800d606: f7f7 fbdf bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x5]:", CENTER_MODE);
800d60a: 2301 movs r3, #1
800d60c: 4ab4 ldr r2, [pc, #720] ; (800d8e0 <Display+0x7870>)
800d60e: 210a movs r1, #10
800d610: 20a0 movs r0, #160 ; 0xa0
800d612: f7f7 fc9f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 1000<30><30>", CENTER_MODE);
800d616: 2301 movs r3, #1
800d618: 4ab2 ldr r2, [pc, #712] ; (800d8e4 <Display+0x7874>)
800d61a: 2118 movs r1, #24
800d61c: 20a0 movs r0, #160 ; 0xa0
800d61e: f7f7 fc99 bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d622: f001 fde5 bl 800f1f0 <DrawButtons>
break;
800d626: e1d8 b.n 800d9da <Display+0x796a>
case CALIBR_6: // [CHARGE x0.1] + KU_1
BSP_LCD_SetFont(&Font12);
800d628: 48a7 ldr r0, [pc, #668] ; (800d8c8 <Display+0x7858>)
800d62a: f7f7 fc09 bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d62e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d632: f06f 00ff mvn.w r0, #255 ; 0xff
800d636: f7f7 fbc7 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x10]:", CENTER_MODE);
800d63a: 2301 movs r3, #1
800d63c: 4aaa ldr r2, [pc, #680] ; (800d8e8 <Display+0x7878>)
800d63e: 210a movs r1, #10
800d640: 20a0 movs r0, #160 ; 0xa0
800d642: f7f7 fc87 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 500<30><30>", CENTER_MODE);
800d646: 2301 movs r3, #1
800d648: 4aa8 ldr r2, [pc, #672] ; (800d8ec <Display+0x787c>)
800d64a: 2118 movs r1, #24
800d64c: 20a0 movs r0, #160 ; 0xa0
800d64e: f7f7 fc81 bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d652: f001 fdcd bl 800f1f0 <DrawButtons>
break;
800d656: e1c0 b.n 800d9da <Display+0x796a>
case CALIBR_7: // [ICP x1] + KU_1
BSP_LCD_SetFont(&Font12);
800d658: 489b ldr r0, [pc, #620] ; (800d8c8 <Display+0x7858>)
800d65a: f7f7 fbf1 bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d65e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d662: f06f 00ff mvn.w r0, #255 ; 0xff
800d666: f7f7 fbaf bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x20]:", CENTER_MODE);
800d66a: 2301 movs r3, #1
800d66c: 4aa0 ldr r2, [pc, #640] ; (800d8f0 <Display+0x7880>)
800d66e: 210a movs r1, #10
800d670: 20a0 movs r0, #160 ; 0xa0
800d672: f7f7 fc6f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 250<35><30>", CENTER_MODE);
800d676: 2301 movs r3, #1
800d678: 4a9e ldr r2, [pc, #632] ; (800d8f4 <Display+0x7884>)
800d67a: 2118 movs r1, #24
800d67c: 20a0 movs r0, #160 ; 0xa0
800d67e: f7f7 fc69 bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d682: f001 fdb5 bl 800f1f0 <DrawButtons>
break;
800d686: e1a8 b.n 800d9da <Display+0x796a>
case CALIBR_8: // [ICP x10] + KU_1
BSP_LCD_SetFont(&Font12);
800d688: 488f ldr r0, [pc, #572] ; (800d8c8 <Display+0x7858>)
800d68a: f7f7 fbd9 bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d68e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d692: f06f 00ff mvn.w r0, #255 ; 0xff
800d696: f7f7 fb97 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x50]:", CENTER_MODE);
800d69a: 2301 movs r3, #1
800d69c: 4a96 ldr r2, [pc, #600] ; (800d8f8 <Display+0x7888>)
800d69e: 210a movs r1, #10
800d6a0: 20a0 movs r0, #160 ; 0xa0
800d6a2: f7f7 fc57 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 100<30><30>", CENTER_MODE);
800d6a6: 2301 movs r3, #1
800d6a8: 4a94 ldr r2, [pc, #592] ; (800d8fc <Display+0x788c>)
800d6aa: 2118 movs r1, #24
800d6ac: 20a0 movs r0, #160 ; 0xa0
800d6ae: f7f7 fc51 bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d6b2: f001 fd9d bl 800f1f0 <DrawButtons>
break;
800d6b6: e190 b.n 800d9da <Display+0x796a>
case CALIBR_9: // [CHARGE x10 + KU_2 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d6b8: 4883 ldr r0, [pc, #524] ; (800d8c8 <Display+0x7858>)
800d6ba: f7f7 fbc1 bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d6be: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d6c2: f06f 00ff mvn.w r0, #255 ; 0xff
800d6c6: f7f7 fb7f bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x100]:", CENTER_MODE);
800d6ca: 2301 movs r3, #1
800d6cc: 4a8c ldr r2, [pc, #560] ; (800d900 <Display+0x7890>)
800d6ce: 210a movs r1, #10
800d6d0: 20a0 movs r0, #160 ; 0xa0
800d6d2: f7f7 fc3f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 50<35><30>", CENTER_MODE);
800d6d6: 2301 movs r3, #1
800d6d8: 4a8a ldr r2, [pc, #552] ; (800d904 <Display+0x7894>)
800d6da: 2118 movs r1, #24
800d6dc: 20a0 movs r0, #160 ; 0xa0
800d6de: f7f7 fc39 bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d6e2: f001 fd85 bl 800f1f0 <DrawButtons>
break;
800d6e6: e178 b.n 800d9da <Display+0x796a>
case CALIBR_10: // [CHARGE x10 + KU_5 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d6e8: 4877 ldr r0, [pc, #476] ; (800d8c8 <Display+0x7858>)
800d6ea: f7f7 fba9 bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d6ee: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d6f2: f06f 00ff mvn.w r0, #255 ; 0xff
800d6f6: f7f7 fb67 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x200]:", CENTER_MODE);
800d6fa: 2301 movs r3, #1
800d6fc: 4a82 ldr r2, [pc, #520] ; (800d908 <Display+0x7898>)
800d6fe: 210a movs r1, #10
800d700: 20a0 movs r0, #160 ; 0xa0
800d702: f7f7 fc27 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 25<32><35>", CENTER_MODE);
800d706: 2301 movs r3, #1
800d708: 4a80 ldr r2, [pc, #512] ; (800d90c <Display+0x789c>)
800d70a: 2118 movs r1, #24
800d70c: 20a0 movs r0, #160 ; 0xa0
800d70e: f7f7 fc21 bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d712: f001 fd6d bl 800f1f0 <DrawButtons>
break;
800d716: e160 b.n 800d9da <Display+0x796a>
case CALIBR_11: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d718: 486b ldr r0, [pc, #428] ; (800d8c8 <Display+0x7858>)
800d71a: f7f7 fb91 bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d71e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d722: f06f 00ff mvn.w r0, #255 ; 0xff
800d726: f7f7 fb4f bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x500]:", CENTER_MODE);
800d72a: 2301 movs r3, #1
800d72c: 4a78 ldr r2, [pc, #480] ; (800d910 <Display+0x78a0>)
800d72e: 210a movs r1, #10
800d730: 20a0 movs r0, #160 ; 0xa0
800d732: f7f7 fc0f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 10<31><30>", CENTER_MODE);
800d736: 2301 movs r3, #1
800d738: 4a76 ldr r2, [pc, #472] ; (800d914 <Display+0x78a4>)
800d73a: 2118 movs r1, #24
800d73c: 20a0 movs r0, #160 ; 0xa0
800d73e: f7f7 fc09 bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d742: f001 fd55 bl 800f1f0 <DrawButtons>
break;
800d746: e148 b.n 800d9da <Display+0x796a>
case CALIBR_12: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d748: 485f ldr r0, [pc, #380] ; (800d8c8 <Display+0x7858>)
800d74a: f7f7 fb79 bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d74e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d752: f06f 00ff mvn.w r0, #255 ; 0xff
800d756: f7f7 fb37 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [<5B><><C7><C0><D0>x1000]:", CENTER_MODE);
800d75a: 2301 movs r3, #1
800d75c: 4a6e ldr r2, [pc, #440] ; (800d918 <Display+0x78a8>)
800d75e: 210a movs r1, #10
800d760: 20a0 movs r0, #160 ; 0xa0
800d762: f7f7 fbf7 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5<><35>", CENTER_MODE);
800d766: 2301 movs r3, #1
800d768: 4a6c ldr r2, [pc, #432] ; (800d91c <Display+0x78ac>)
800d76a: 2118 movs r1, #24
800d76c: 20a0 movs r0, #160 ; 0xa0
800d76e: f7f7 fbf1 bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d772: f001 fd3d bl 800f1f0 <DrawButtons>
break;
800d776: e130 b.n 800d9da <Display+0x796a>
case CALIBR_13: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d778: 4853 ldr r0, [pc, #332] ; (800d8c8 <Display+0x7858>)
800d77a: f7f7 fb61 bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d77e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d782: f06f 00ff mvn.w r0, #255 ; 0xff
800d786: f7f7 fb1f bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx1]:", CENTER_MODE);
800d78a: 2301 movs r3, #1
800d78c: 4a64 ldr r2, [pc, #400] ; (800d920 <Display+0x78b0>)
800d78e: 210a movs r1, #10
800d790: 20a0 movs r0, #160 ; 0xa0
800d792: f7f7 fbdf bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5000<30><30>", CENTER_MODE);
800d796: 2301 movs r3, #1
800d798: 4a4d ldr r2, [pc, #308] ; (800d8d0 <Display+0x7860>)
800d79a: 2118 movs r1, #24
800d79c: 20a0 movs r0, #160 ; 0xa0
800d79e: f7f7 fbd9 bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d7a2: f001 fd25 bl 800f1f0 <DrawButtons>
break;
800d7a6: e118 b.n 800d9da <Display+0x796a>
case CALIBR_14: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d7a8: 4847 ldr r0, [pc, #284] ; (800d8c8 <Display+0x7858>)
800d7aa: f7f7 fb49 bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d7ae: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d7b2: f06f 00ff mvn.w r0, #255 ; 0xff
800d7b6: f7f7 fb07 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx2]:", CENTER_MODE);
800d7ba: 2301 movs r3, #1
800d7bc: 4a59 ldr r2, [pc, #356] ; (800d924 <Display+0x78b4>)
800d7be: 210a movs r1, #10
800d7c0: 20a0 movs r0, #160 ; 0xa0
800d7c2: f7f7 fbc7 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 2500<30><30>", CENTER_MODE);
800d7c6: 2301 movs r3, #1
800d7c8: 4a44 ldr r2, [pc, #272] ; (800d8dc <Display+0x786c>)
800d7ca: 2118 movs r1, #24
800d7cc: 20a0 movs r0, #160 ; 0xa0
800d7ce: f7f7 fbc1 bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d7d2: f001 fd0d bl 800f1f0 <DrawButtons>
break;
800d7d6: e100 b.n 800d9da <Display+0x796a>
case CALIBR_15: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d7d8: 483b ldr r0, [pc, #236] ; (800d8c8 <Display+0x7858>)
800d7da: f7f7 fb31 bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d7de: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d7e2: f06f 00ff mvn.w r0, #255 ; 0xff
800d7e6: f7f7 faef bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx5]:", CENTER_MODE);
800d7ea: 2301 movs r3, #1
800d7ec: 4a4e ldr r2, [pc, #312] ; (800d928 <Display+0x78b8>)
800d7ee: 210a movs r1, #10
800d7f0: 20a0 movs r0, #160 ; 0xa0
800d7f2: f7f7 fbaf bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 1000<30><30>", CENTER_MODE);
800d7f6: 2301 movs r3, #1
800d7f8: 4a3a ldr r2, [pc, #232] ; (800d8e4 <Display+0x7874>)
800d7fa: 2118 movs r1, #24
800d7fc: 20a0 movs r0, #160 ; 0xa0
800d7fe: f7f7 fba9 bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d802: f001 fcf5 bl 800f1f0 <DrawButtons>
break;
800d806: e0e8 b.n 800d9da <Display+0x796a>
case CALIBR_16: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d808: 482f ldr r0, [pc, #188] ; (800d8c8 <Display+0x7858>)
800d80a: f7f7 fb19 bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d80e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d812: f06f 00ff mvn.w r0, #255 ; 0xff
800d816: f7f7 fad7 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx10]:", CENTER_MODE);
800d81a: 2301 movs r3, #1
800d81c: 4a43 ldr r2, [pc, #268] ; (800d92c <Display+0x78bc>)
800d81e: 210a movs r1, #10
800d820: 20a0 movs r0, #160 ; 0xa0
800d822: f7f7 fb97 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 500<30><30>", CENTER_MODE);
800d826: 2301 movs r3, #1
800d828: 4a30 ldr r2, [pc, #192] ; (800d8ec <Display+0x787c>)
800d82a: 2118 movs r1, #24
800d82c: 20a0 movs r0, #160 ; 0xa0
800d82e: f7f7 fb91 bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d832: f001 fcdd bl 800f1f0 <DrawButtons>
break;
800d836: e0d0 b.n 800d9da <Display+0x796a>
case CALIBR_17: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d838: 4823 ldr r0, [pc, #140] ; (800d8c8 <Display+0x7858>)
800d83a: f7f7 fb01 bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d83e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d842: f06f 00ff mvn.w r0, #255 ; 0xff
800d846: f7f7 fabf bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx20]:", CENTER_MODE);
800d84a: 2301 movs r3, #1
800d84c: 4a38 ldr r2, [pc, #224] ; (800d930 <Display+0x78c0>)
800d84e: 210a movs r1, #10
800d850: 20a0 movs r0, #160 ; 0xa0
800d852: f7f7 fb7f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 250<35><30>", CENTER_MODE);
800d856: 2301 movs r3, #1
800d858: 4a26 ldr r2, [pc, #152] ; (800d8f4 <Display+0x7884>)
800d85a: 2118 movs r1, #24
800d85c: 20a0 movs r0, #160 ; 0xa0
800d85e: f7f7 fb79 bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d862: f001 fcc5 bl 800f1f0 <DrawButtons>
break;
800d866: e0b8 b.n 800d9da <Display+0x796a>
case CALIBR_18: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d868: 4817 ldr r0, [pc, #92] ; (800d8c8 <Display+0x7858>)
800d86a: f7f7 fae9 bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d86e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d872: f06f 00ff mvn.w r0, #255 ; 0xff
800d876: f7f7 faa7 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx50]:", CENTER_MODE);
800d87a: 2301 movs r3, #1
800d87c: 4a2d ldr r2, [pc, #180] ; (800d934 <Display+0x78c4>)
800d87e: 210a movs r1, #10
800d880: 20a0 movs r0, #160 ; 0xa0
800d882: f7f7 fb67 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 100<30><30>", CENTER_MODE);
800d886: 2301 movs r3, #1
800d888: 4a1c ldr r2, [pc, #112] ; (800d8fc <Display+0x788c>)
800d88a: 2118 movs r1, #24
800d88c: 20a0 movs r0, #160 ; 0xa0
800d88e: f7f7 fb61 bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d892: f001 fcad bl 800f1f0 <DrawButtons>
break;
800d896: e0a0 b.n 800d9da <Display+0x796a>
case CALIBR_19: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d898: 480b ldr r0, [pc, #44] ; (800d8c8 <Display+0x7858>)
800d89a: f7f7 fad1 bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d89e: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d8a2: f06f 00ff mvn.w r0, #255 ; 0xff
800d8a6: f7f7 fa8f bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx100]:", CENTER_MODE);
800d8aa: 2301 movs r3, #1
800d8ac: 4a22 ldr r2, [pc, #136] ; (800d938 <Display+0x78c8>)
800d8ae: 210a movs r1, #10
800d8b0: 20a0 movs r0, #160 ; 0xa0
800d8b2: f7f7 fb4f bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 50<35><30>", CENTER_MODE);
800d8b6: 2301 movs r3, #1
800d8b8: 4a12 ldr r2, [pc, #72] ; (800d904 <Display+0x7894>)
800d8ba: 2118 movs r1, #24
800d8bc: 20a0 movs r0, #160 ; 0xa0
800d8be: f7f7 fb49 bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d8c2: f001 fc95 bl 800f1f0 <DrawButtons>
break;
800d8c6: e088 b.n 800d9da <Display+0x796a>
800d8c8: 20020000 .word 0x20020000
800d8cc: 080182d4 .word 0x080182d4
800d8d0: 080182a4 .word 0x080182a4
800d8d4: 080182ec .word 0x080182ec
800d8d8: 08018304 .word 0x08018304
800d8dc: 0801831c .word 0x0801831c
800d8e0: 08018334 .word 0x08018334
800d8e4: 0801834c .word 0x0801834c
800d8e8: 08018364 .word 0x08018364
800d8ec: 0801837c .word 0x0801837c
800d8f0: 08018394 .word 0x08018394
800d8f4: 080183ac .word 0x080183ac
800d8f8: 080183c4 .word 0x080183c4
800d8fc: 080183dc .word 0x080183dc
800d900: 080183f4 .word 0x080183f4
800d904: 0801840c .word 0x0801840c
800d908: 08018424 .word 0x08018424
800d90c: 0801843c .word 0x0801843c
800d910: 08018454 .word 0x08018454
800d914: 0801846c .word 0x0801846c
800d918: 08018484 .word 0x08018484
800d91c: 0801849c .word 0x0801849c
800d920: 080184b4 .word 0x080184b4
800d924: 080184c8 .word 0x080184c8
800d928: 080184dc .word 0x080184dc
800d92c: 080184f0 .word 0x080184f0
800d930: 08018508 .word 0x08018508
800d934: 08018520 .word 0x08018520
800d938: 08018538 .word 0x08018538
case CALIBR_20: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d93c: 482e ldr r0, [pc, #184] ; (800d9f8 <Display+0x7988>)
800d93e: f7f7 fa7f bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d942: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d946: f06f 00ff mvn.w r0, #255 ; 0xff
800d94a: f7f7 fa3d bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx200]:", CENTER_MODE);
800d94e: 2301 movs r3, #1
800d950: 4a2a ldr r2, [pc, #168] ; (800d9fc <Display+0x798c>)
800d952: 210a movs r1, #10
800d954: 20a0 movs r0, #160 ; 0xa0
800d956: f7f7 fafd bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 25<32><35>", CENTER_MODE);
800d95a: 2301 movs r3, #1
800d95c: 4a28 ldr r2, [pc, #160] ; (800da00 <Display+0x7990>)
800d95e: 2118 movs r1, #24
800d960: 20a0 movs r0, #160 ; 0xa0
800d962: f7f7 faf7 bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d966: f001 fc43 bl 800f1f0 <DrawButtons>
break;
800d96a: e036 b.n 800d9da <Display+0x796a>
case CALIBR_21: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d96c: 4822 ldr r0, [pc, #136] ; (800d9f8 <Display+0x7988>)
800d96e: f7f7 fa67 bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d972: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d976: f06f 00ff mvn.w r0, #255 ; 0xff
800d97a: f7f7 fa25 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx500]:", CENTER_MODE);
800d97e: 2301 movs r3, #1
800d980: 4a20 ldr r2, [pc, #128] ; (800da04 <Display+0x7994>)
800d982: 210a movs r1, #10
800d984: 20a0 movs r0, #160 ; 0xa0
800d986: f7f7 fae5 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 10<31><30>", CENTER_MODE);
800d98a: 2301 movs r3, #1
800d98c: 4a1e ldr r2, [pc, #120] ; (800da08 <Display+0x7998>)
800d98e: 2118 movs r1, #24
800d990: 20a0 movs r0, #160 ; 0xa0
800d992: f7f7 fadf bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d996: f001 fc2b bl 800f1f0 <DrawButtons>
break;
800d99a: e01e b.n 800d9da <Display+0x796a>
case CALIBR_22: // [CHARGE x10 + KU_10 + KU_x10]
BSP_LCD_SetFont(&Font12);
800d99c: 4816 ldr r0, [pc, #88] ; (800d9f8 <Display+0x7988>)
800d99e: f7f7 fa4f bl 8004e40 <BSP_LCD_SetFont>
LCD_SetColors(LCD_COLOR_YELLOW, LCD_COLOR_BLACK);
800d9a2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800d9a6: f06f 00ff mvn.w r0, #255 ; 0xff
800d9aa: f7f7 fa0d bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 10, "<22><><CA><EE>e<F0><65><EA><F6> [IEPEx1000]:", CENTER_MODE);
800d9ae: 2301 movs r3, #1
800d9b0: 4a16 ldr r2, [pc, #88] ; (800da0c <Display+0x799c>)
800d9b2: 210a movs r1, #10
800d9b4: 20a0 movs r0, #160 ; 0xa0
800d9b6: f7f7 facd bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(160, 24, "<22><><D3><F1><F2><E0><ED><EE><E2><E8> Uin = 5<><35>", CENTER_MODE);
800d9ba: 2301 movs r3, #1
800d9bc: 4a14 ldr r2, [pc, #80] ; (800da10 <Display+0x79a0>)
800d9be: 2118 movs r1, #24
800d9c0: 20a0 movs r0, #160 ; 0xa0
800d9c2: f7f7 fac7 bl 8004f54 <BSP_LCD_DisplayStringAt>
DrawButtons();
800d9c6: f001 fc13 bl 800f1f0 <DrawButtons>
break;
800d9ca: e006 b.n 800d9da <Display+0x796a>
break;
800d9cc: bf00 nop
800d9ce: e004 b.n 800d9da <Display+0x796a>
break;
800d9d0: bf00 nop
800d9d2: e002 b.n 800d9da <Display+0x796a>
break;
800d9d4: bf00 nop
800d9d6: e000 b.n 800d9da <Display+0x796a>
break;
800d9d8: bf00 nop
Redrawing = false;
800d9da: 4b0e ldr r3, [pc, #56] ; (800da14 <Display+0x79a4>)
800d9dc: 2200 movs r2, #0
800d9de: 701a strb r2, [r3, #0]
RefreshScreen = true;
800d9e0: 4b0d ldr r3, [pc, #52] ; (800da18 <Display+0x79a8>)
800d9e2: 2201 movs r2, #1
800d9e4: 701a strb r2, [r3, #0]
HAL_LTDC_ProgramLineEvent(&hLtdcHandler, 0);
800d9e6: 2100 movs r1, #0
800d9e8: 480c ldr r0, [pc, #48] ; (800da1c <Display+0x79ac>)
800d9ea: f005 fb27 bl 801303c <HAL_LTDC_ProgramLineEvent>
//**************************************************************************************************************
//**************************************************************************************************************
}
800d9ee: bf00 nop
800d9f0: f507 7752 add.w r7, r7, #840 ; 0x348
800d9f4: 46bd mov sp, r7
800d9f6: bd80 pop {r7, pc}
800d9f8: 20020000 .word 0x20020000
800d9fc: 08018550 .word 0x08018550
800da00: 0801843c .word 0x0801843c
800da04: 08018568 .word 0x08018568
800da08: 0801846c .word 0x0801846c
800da0c: 08018580 .word 0x08018580
800da10: 0801849c .word 0x0801849c
800da14: 2006ba74 .word 0x2006ba74
800da18: 2006ba60 .word 0x2006ba60
800da1c: 2006c174 .word 0x2006c174
0800da20 <DrawMySpinner>:
void DrawMySpinner(uint16_t x, uint16_t y) //
{
800da20: b580 push {r7, lr}
800da22: b082 sub sp, #8
800da24: af00 add r7, sp, #0
800da26: 4603 mov r3, r0
800da28: 460a mov r2, r1
800da2a: 80fb strh r3, [r7, #6]
800da2c: 4613 mov r3, r2
800da2e: 80bb strh r3, [r7, #4]
static uint32_t rotate = 0;
switch(rotate)
800da30: 4b98 ldr r3, [pc, #608] ; (800dc94 <DrawMySpinner+0x274>)
800da32: 681b ldr r3, [r3, #0]
800da34: 2b07 cmp r3, #7
800da36: f200 8311 bhi.w 800e05c <DrawMySpinner+0x63c>
800da3a: a201 add r2, pc, #4 ; (adr r2, 800da40 <DrawMySpinner+0x20>)
800da3c: f852 f023 ldr.w pc, [r2, r3, lsl #2]
800da40: 0800da61 .word 0x0800da61
800da44: 0800db1d .word 0x0800db1d
800da48: 0800dbd9 .word 0x0800dbd9
800da4c: 0800dca5 .word 0x0800dca5
800da50: 0800dd61 .word 0x0800dd61
800da54: 0800de1d .word 0x0800de1d
800da58: 0800ded9 .word 0x0800ded9
800da5c: 0800dfa1 .word 0x0800dfa1
{
case 0:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800da60: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800da64: f04f 30ff mov.w r0, #4294967295
800da68: f7f7 f9ae bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800da6c: 88bb ldrh r3, [r7, #4]
800da6e: 330a adds r3, #10
800da70: b299 uxth r1, r3
800da72: 88fb ldrh r3, [r7, #6]
800da74: 2203 movs r2, #3
800da76: 4618 mov r0, r3
800da78: f7f7 fde2 bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800da7c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800da80: 4885 ldr r0, [pc, #532] ; (800dc98 <DrawMySpinner+0x278>)
800da82: f7f7 f9a1 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800da86: 88fb ldrh r3, [r7, #6]
800da88: 3307 adds r3, #7
800da8a: b298 uxth r0, r3
800da8c: 88bb ldrh r3, [r7, #4]
800da8e: 3307 adds r3, #7
800da90: b29b uxth r3, r3
800da92: 2203 movs r2, #3
800da94: 4619 mov r1, r3
800da96: f7f7 fdd3 bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800da9a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800da9e: 487f ldr r0, [pc, #508] ; (800dc9c <DrawMySpinner+0x27c>)
800daa0: f7f7 f992 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800daa4: 88fb ldrh r3, [r7, #6]
800daa6: 330a adds r3, #10
800daa8: b29b uxth r3, r3
800daaa: 88b9 ldrh r1, [r7, #4]
800daac: 2203 movs r2, #3
800daae: 4618 mov r0, r3
800dab0: f7f7 fdc6 bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800dab4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dab8: 4879 ldr r0, [pc, #484] ; (800dca0 <DrawMySpinner+0x280>)
800daba: f7f7 f985 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800dabe: 88fb ldrh r3, [r7, #6]
800dac0: 3b07 subs r3, #7
800dac2: b298 uxth r0, r3
800dac4: 88bb ldrh r3, [r7, #4]
800dac6: 3307 adds r3, #7
800dac8: b29b uxth r3, r3
800daca: 2203 movs r2, #3
800dacc: 4619 mov r1, r3
800dace: f7f7 fdb7 bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800dad2: 88fb ldrh r3, [r7, #6]
800dad4: 3b0a subs r3, #10
800dad6: b29b uxth r3, r3
800dad8: 88b9 ldrh r1, [r7, #4]
800dada: 2203 movs r2, #3
800dadc: 4618 mov r0, r3
800dade: f7f7 fdaf bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800dae2: 88fb ldrh r3, [r7, #6]
800dae4: 3b07 subs r3, #7
800dae6: b298 uxth r0, r3
800dae8: 88bb ldrh r3, [r7, #4]
800daea: 3b07 subs r3, #7
800daec: b29b uxth r3, r3
800daee: 2203 movs r2, #3
800daf0: 4619 mov r1, r3
800daf2: f7f7 fda5 bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800daf6: 88bb ldrh r3, [r7, #4]
800daf8: 3b0a subs r3, #10
800dafa: b299 uxth r1, r3
800dafc: 88fb ldrh r3, [r7, #6]
800dafe: 2203 movs r2, #3
800db00: 4618 mov r0, r3
800db02: f7f7 fd9d bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800db06: 88fb ldrh r3, [r7, #6]
800db08: 3307 adds r3, #7
800db0a: b298 uxth r0, r3
800db0c: 88bb ldrh r3, [r7, #4]
800db0e: 3b07 subs r3, #7
800db10: b29b uxth r3, r3
800db12: 2203 movs r2, #3
800db14: 4619 mov r1, r3
800db16: f7f7 fd93 bl 8005640 <BSP_LCD_FillCircle>
break;
800db1a: e29f b.n 800e05c <DrawMySpinner+0x63c>
case 1:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800db1c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800db20: f04f 30ff mov.w r0, #4294967295
800db24: f7f7 f950 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800db28: 88fb ldrh r3, [r7, #6]
800db2a: 3b07 subs r3, #7
800db2c: b298 uxth r0, r3
800db2e: 88bb ldrh r3, [r7, #4]
800db30: 3307 adds r3, #7
800db32: b29b uxth r3, r3
800db34: 2203 movs r2, #3
800db36: 4619 mov r1, r3
800db38: f7f7 fd82 bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800db3c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800db40: 4855 ldr r0, [pc, #340] ; (800dc98 <DrawMySpinner+0x278>)
800db42: f7f7 f941 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800db46: 88bb ldrh r3, [r7, #4]
800db48: 330a adds r3, #10
800db4a: b299 uxth r1, r3
800db4c: 88fb ldrh r3, [r7, #6]
800db4e: 2203 movs r2, #3
800db50: 4618 mov r0, r3
800db52: f7f7 fd75 bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800db56: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800db5a: 4850 ldr r0, [pc, #320] ; (800dc9c <DrawMySpinner+0x27c>)
800db5c: f7f7 f934 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800db60: 88fb ldrh r3, [r7, #6]
800db62: 3307 adds r3, #7
800db64: b298 uxth r0, r3
800db66: 88bb ldrh r3, [r7, #4]
800db68: 3307 adds r3, #7
800db6a: b29b uxth r3, r3
800db6c: 2203 movs r2, #3
800db6e: 4619 mov r1, r3
800db70: f7f7 fd66 bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800db74: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800db78: 4849 ldr r0, [pc, #292] ; (800dca0 <DrawMySpinner+0x280>)
800db7a: f7f7 f925 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800db7e: 88fb ldrh r3, [r7, #6]
800db80: 3b0a subs r3, #10
800db82: b29b uxth r3, r3
800db84: 88b9 ldrh r1, [r7, #4]
800db86: 2203 movs r2, #3
800db88: 4618 mov r0, r3
800db8a: f7f7 fd59 bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800db8e: 88fb ldrh r3, [r7, #6]
800db90: 3b07 subs r3, #7
800db92: b298 uxth r0, r3
800db94: 88bb ldrh r3, [r7, #4]
800db96: 3b07 subs r3, #7
800db98: b29b uxth r3, r3
800db9a: 2203 movs r2, #3
800db9c: 4619 mov r1, r3
800db9e: f7f7 fd4f bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800dba2: 88bb ldrh r3, [r7, #4]
800dba4: 3b0a subs r3, #10
800dba6: b299 uxth r1, r3
800dba8: 88fb ldrh r3, [r7, #6]
800dbaa: 2203 movs r2, #3
800dbac: 4618 mov r0, r3
800dbae: f7f7 fd47 bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800dbb2: 88fb ldrh r3, [r7, #6]
800dbb4: 3307 adds r3, #7
800dbb6: b298 uxth r0, r3
800dbb8: 88bb ldrh r3, [r7, #4]
800dbba: 3b07 subs r3, #7
800dbbc: b29b uxth r3, r3
800dbbe: 2203 movs r2, #3
800dbc0: 4619 mov r1, r3
800dbc2: f7f7 fd3d bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800dbc6: 88fb ldrh r3, [r7, #6]
800dbc8: 330a adds r3, #10
800dbca: b29b uxth r3, r3
800dbcc: 88b9 ldrh r1, [r7, #4]
800dbce: 2203 movs r2, #3
800dbd0: 4618 mov r0, r3
800dbd2: f7f7 fd35 bl 8005640 <BSP_LCD_FillCircle>
break;
800dbd6: e241 b.n 800e05c <DrawMySpinner+0x63c>
case 2:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800dbd8: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dbdc: f04f 30ff mov.w r0, #4294967295
800dbe0: f7f7 f8f2 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800dbe4: 88fb ldrh r3, [r7, #6]
800dbe6: 3b0a subs r3, #10
800dbe8: b29b uxth r3, r3
800dbea: 88b9 ldrh r1, [r7, #4]
800dbec: 2203 movs r2, #3
800dbee: 4618 mov r0, r3
800dbf0: f7f7 fd26 bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800dbf4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dbf8: 4827 ldr r0, [pc, #156] ; (800dc98 <DrawMySpinner+0x278>)
800dbfa: f7f7 f8e5 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800dbfe: 88fb ldrh r3, [r7, #6]
800dc00: 3b07 subs r3, #7
800dc02: b298 uxth r0, r3
800dc04: 88bb ldrh r3, [r7, #4]
800dc06: 3307 adds r3, #7
800dc08: b29b uxth r3, r3
800dc0a: 2203 movs r2, #3
800dc0c: 4619 mov r1, r3
800dc0e: f7f7 fd17 bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800dc12: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dc16: 4821 ldr r0, [pc, #132] ; (800dc9c <DrawMySpinner+0x27c>)
800dc18: f7f7 f8d6 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800dc1c: 88bb ldrh r3, [r7, #4]
800dc1e: 330a adds r3, #10
800dc20: b299 uxth r1, r3
800dc22: 88fb ldrh r3, [r7, #6]
800dc24: 2203 movs r2, #3
800dc26: 4618 mov r0, r3
800dc28: f7f7 fd0a bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800dc2c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dc30: 481b ldr r0, [pc, #108] ; (800dca0 <DrawMySpinner+0x280>)
800dc32: f7f7 f8c9 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800dc36: 88fb ldrh r3, [r7, #6]
800dc38: 3b07 subs r3, #7
800dc3a: b298 uxth r0, r3
800dc3c: 88bb ldrh r3, [r7, #4]
800dc3e: 3b07 subs r3, #7
800dc40: b29b uxth r3, r3
800dc42: 2203 movs r2, #3
800dc44: 4619 mov r1, r3
800dc46: f7f7 fcfb bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800dc4a: 88bb ldrh r3, [r7, #4]
800dc4c: 3b0a subs r3, #10
800dc4e: b299 uxth r1, r3
800dc50: 88fb ldrh r3, [r7, #6]
800dc52: 2203 movs r2, #3
800dc54: 4618 mov r0, r3
800dc56: f7f7 fcf3 bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800dc5a: 88fb ldrh r3, [r7, #6]
800dc5c: 3307 adds r3, #7
800dc5e: b298 uxth r0, r3
800dc60: 88bb ldrh r3, [r7, #4]
800dc62: 3b07 subs r3, #7
800dc64: b29b uxth r3, r3
800dc66: 2203 movs r2, #3
800dc68: 4619 mov r1, r3
800dc6a: f7f7 fce9 bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800dc6e: 88fb ldrh r3, [r7, #6]
800dc70: 330a adds r3, #10
800dc72: b29b uxth r3, r3
800dc74: 88b9 ldrh r1, [r7, #4]
800dc76: 2203 movs r2, #3
800dc78: 4618 mov r0, r3
800dc7a: f7f7 fce1 bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800dc7e: 88fb ldrh r3, [r7, #6]
800dc80: 3307 adds r3, #7
800dc82: b298 uxth r0, r3
800dc84: 88bb ldrh r3, [r7, #4]
800dc86: 3307 adds r3, #7
800dc88: b29b uxth r3, r3
800dc8a: 2203 movs r2, #3
800dc8c: 4619 mov r1, r3
800dc8e: f7f7 fcd7 bl 8005640 <BSP_LCD_FillCircle>
break;
800dc92: e1e3 b.n 800e05c <DrawMySpinner+0x63c>
800dc94: 2006ba80 .word 0x2006ba80
800dc98: ffd3d3d3 .word 0xffd3d3d3
800dc9c: ff808080 .word 0xff808080
800dca0: ff404040 .word 0xff404040
case 3:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800dca4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dca8: f04f 30ff mov.w r0, #4294967295
800dcac: f7f7 f88c bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800dcb0: 88fb ldrh r3, [r7, #6]
800dcb2: 3b07 subs r3, #7
800dcb4: b298 uxth r0, r3
800dcb6: 88bb ldrh r3, [r7, #4]
800dcb8: 3b07 subs r3, #7
800dcba: b29b uxth r3, r3
800dcbc: 2203 movs r2, #3
800dcbe: 4619 mov r1, r3
800dcc0: f7f7 fcbe bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800dcc4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dcc8: 48b2 ldr r0, [pc, #712] ; (800df94 <DrawMySpinner+0x574>)
800dcca: f7f7 f87d bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800dcce: 88fb ldrh r3, [r7, #6]
800dcd0: 3b0a subs r3, #10
800dcd2: b29b uxth r3, r3
800dcd4: 88b9 ldrh r1, [r7, #4]
800dcd6: 2203 movs r2, #3
800dcd8: 4618 mov r0, r3
800dcda: f7f7 fcb1 bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800dcde: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dce2: 48ad ldr r0, [pc, #692] ; (800df98 <DrawMySpinner+0x578>)
800dce4: f7f7 f870 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800dce8: 88fb ldrh r3, [r7, #6]
800dcea: 3b07 subs r3, #7
800dcec: b298 uxth r0, r3
800dcee: 88bb ldrh r3, [r7, #4]
800dcf0: 3307 adds r3, #7
800dcf2: b29b uxth r3, r3
800dcf4: 2203 movs r2, #3
800dcf6: 4619 mov r1, r3
800dcf8: f7f7 fca2 bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800dcfc: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dd00: 48a6 ldr r0, [pc, #664] ; (800df9c <DrawMySpinner+0x57c>)
800dd02: f7f7 f861 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800dd06: 88bb ldrh r3, [r7, #4]
800dd08: 3b0a subs r3, #10
800dd0a: b299 uxth r1, r3
800dd0c: 88fb ldrh r3, [r7, #6]
800dd0e: 2203 movs r2, #3
800dd10: 4618 mov r0, r3
800dd12: f7f7 fc95 bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800dd16: 88fb ldrh r3, [r7, #6]
800dd18: 3307 adds r3, #7
800dd1a: b298 uxth r0, r3
800dd1c: 88bb ldrh r3, [r7, #4]
800dd1e: 3b07 subs r3, #7
800dd20: b29b uxth r3, r3
800dd22: 2203 movs r2, #3
800dd24: 4619 mov r1, r3
800dd26: f7f7 fc8b bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800dd2a: 88fb ldrh r3, [r7, #6]
800dd2c: 330a adds r3, #10
800dd2e: b29b uxth r3, r3
800dd30: 88b9 ldrh r1, [r7, #4]
800dd32: 2203 movs r2, #3
800dd34: 4618 mov r0, r3
800dd36: f7f7 fc83 bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800dd3a: 88fb ldrh r3, [r7, #6]
800dd3c: 3307 adds r3, #7
800dd3e: b298 uxth r0, r3
800dd40: 88bb ldrh r3, [r7, #4]
800dd42: 3307 adds r3, #7
800dd44: b29b uxth r3, r3
800dd46: 2203 movs r2, #3
800dd48: 4619 mov r1, r3
800dd4a: f7f7 fc79 bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800dd4e: 88bb ldrh r3, [r7, #4]
800dd50: 330a adds r3, #10
800dd52: b299 uxth r1, r3
800dd54: 88fb ldrh r3, [r7, #6]
800dd56: 2203 movs r2, #3
800dd58: 4618 mov r0, r3
800dd5a: f7f7 fc71 bl 8005640 <BSP_LCD_FillCircle>
break;
800dd5e: e17d b.n 800e05c <DrawMySpinner+0x63c>
case 4:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800dd60: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dd64: f04f 30ff mov.w r0, #4294967295
800dd68: f7f7 f82e bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800dd6c: 88bb ldrh r3, [r7, #4]
800dd6e: 3b0a subs r3, #10
800dd70: b299 uxth r1, r3
800dd72: 88fb ldrh r3, [r7, #6]
800dd74: 2203 movs r2, #3
800dd76: 4618 mov r0, r3
800dd78: f7f7 fc62 bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800dd7c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dd80: 4884 ldr r0, [pc, #528] ; (800df94 <DrawMySpinner+0x574>)
800dd82: f7f7 f821 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800dd86: 88fb ldrh r3, [r7, #6]
800dd88: 3b07 subs r3, #7
800dd8a: b298 uxth r0, r3
800dd8c: 88bb ldrh r3, [r7, #4]
800dd8e: 3b07 subs r3, #7
800dd90: b29b uxth r3, r3
800dd92: 2203 movs r2, #3
800dd94: 4619 mov r1, r3
800dd96: f7f7 fc53 bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800dd9a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dd9e: 487e ldr r0, [pc, #504] ; (800df98 <DrawMySpinner+0x578>)
800dda0: f7f7 f812 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800dda4: 88fb ldrh r3, [r7, #6]
800dda6: 3b0a subs r3, #10
800dda8: b29b uxth r3, r3
800ddaa: 88b9 ldrh r1, [r7, #4]
800ddac: 2203 movs r2, #3
800ddae: 4618 mov r0, r3
800ddb0: f7f7 fc46 bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800ddb4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800ddb8: 4878 ldr r0, [pc, #480] ; (800df9c <DrawMySpinner+0x57c>)
800ddba: f7f7 f805 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800ddbe: 88fb ldrh r3, [r7, #6]
800ddc0: 3307 adds r3, #7
800ddc2: b298 uxth r0, r3
800ddc4: 88bb ldrh r3, [r7, #4]
800ddc6: 3b07 subs r3, #7
800ddc8: b29b uxth r3, r3
800ddca: 2203 movs r2, #3
800ddcc: 4619 mov r1, r3
800ddce: f7f7 fc37 bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800ddd2: 88fb ldrh r3, [r7, #6]
800ddd4: 330a adds r3, #10
800ddd6: b29b uxth r3, r3
800ddd8: 88b9 ldrh r1, [r7, #4]
800ddda: 2203 movs r2, #3
800dddc: 4618 mov r0, r3
800ddde: f7f7 fc2f bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800dde2: 88fb ldrh r3, [r7, #6]
800dde4: 3307 adds r3, #7
800dde6: b298 uxth r0, r3
800dde8: 88bb ldrh r3, [r7, #4]
800ddea: 3307 adds r3, #7
800ddec: b29b uxth r3, r3
800ddee: 2203 movs r2, #3
800ddf0: 4619 mov r1, r3
800ddf2: f7f7 fc25 bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800ddf6: 88bb ldrh r3, [r7, #4]
800ddf8: 330a adds r3, #10
800ddfa: b299 uxth r1, r3
800ddfc: 88fb ldrh r3, [r7, #6]
800ddfe: 2203 movs r2, #3
800de00: 4618 mov r0, r3
800de02: f7f7 fc1d bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800de06: 88fb ldrh r3, [r7, #6]
800de08: 3b07 subs r3, #7
800de0a: b298 uxth r0, r3
800de0c: 88bb ldrh r3, [r7, #4]
800de0e: 3307 adds r3, #7
800de10: b29b uxth r3, r3
800de12: 2203 movs r2, #3
800de14: 4619 mov r1, r3
800de16: f7f7 fc13 bl 8005640 <BSP_LCD_FillCircle>
break;
800de1a: e11f b.n 800e05c <DrawMySpinner+0x63c>
case 5:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800de1c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800de20: f04f 30ff mov.w r0, #4294967295
800de24: f7f6 ffd0 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800de28: 88fb ldrh r3, [r7, #6]
800de2a: 3307 adds r3, #7
800de2c: b298 uxth r0, r3
800de2e: 88bb ldrh r3, [r7, #4]
800de30: 3b07 subs r3, #7
800de32: b29b uxth r3, r3
800de34: 2203 movs r2, #3
800de36: 4619 mov r1, r3
800de38: f7f7 fc02 bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800de3c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800de40: 4854 ldr r0, [pc, #336] ; (800df94 <DrawMySpinner+0x574>)
800de42: f7f6 ffc1 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800de46: 88bb ldrh r3, [r7, #4]
800de48: 3b0a subs r3, #10
800de4a: b299 uxth r1, r3
800de4c: 88fb ldrh r3, [r7, #6]
800de4e: 2203 movs r2, #3
800de50: 4618 mov r0, r3
800de52: f7f7 fbf5 bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800de56: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800de5a: 484f ldr r0, [pc, #316] ; (800df98 <DrawMySpinner+0x578>)
800de5c: f7f6 ffb4 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800de60: 88fb ldrh r3, [r7, #6]
800de62: 3b07 subs r3, #7
800de64: b298 uxth r0, r3
800de66: 88bb ldrh r3, [r7, #4]
800de68: 3b07 subs r3, #7
800de6a: b29b uxth r3, r3
800de6c: 2203 movs r2, #3
800de6e: 4619 mov r1, r3
800de70: f7f7 fbe6 bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800de74: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800de78: 4848 ldr r0, [pc, #288] ; (800df9c <DrawMySpinner+0x57c>)
800de7a: f7f6 ffa5 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800de7e: 88fb ldrh r3, [r7, #6]
800de80: 330a adds r3, #10
800de82: b29b uxth r3, r3
800de84: 88b9 ldrh r1, [r7, #4]
800de86: 2203 movs r2, #3
800de88: 4618 mov r0, r3
800de8a: f7f7 fbd9 bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800de8e: 88fb ldrh r3, [r7, #6]
800de90: 3307 adds r3, #7
800de92: b298 uxth r0, r3
800de94: 88bb ldrh r3, [r7, #4]
800de96: 3307 adds r3, #7
800de98: b29b uxth r3, r3
800de9a: 2203 movs r2, #3
800de9c: 4619 mov r1, r3
800de9e: f7f7 fbcf bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800dea2: 88bb ldrh r3, [r7, #4]
800dea4: 330a adds r3, #10
800dea6: b299 uxth r1, r3
800dea8: 88fb ldrh r3, [r7, #6]
800deaa: 2203 movs r2, #3
800deac: 4618 mov r0, r3
800deae: f7f7 fbc7 bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800deb2: 88fb ldrh r3, [r7, #6]
800deb4: 3b07 subs r3, #7
800deb6: b298 uxth r0, r3
800deb8: 88bb ldrh r3, [r7, #4]
800deba: 3307 adds r3, #7
800debc: b29b uxth r3, r3
800debe: 2203 movs r2, #3
800dec0: 4619 mov r1, r3
800dec2: f7f7 fbbd bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800dec6: 88fb ldrh r3, [r7, #6]
800dec8: 3b0a subs r3, #10
800deca: b29b uxth r3, r3
800decc: 88b9 ldrh r1, [r7, #4]
800dece: 2203 movs r2, #3
800ded0: 4618 mov r0, r3
800ded2: f7f7 fbb5 bl 8005640 <BSP_LCD_FillCircle>
break;
800ded6: e0c1 b.n 800e05c <DrawMySpinner+0x63c>
case 6:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800ded8: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dedc: f04f 30ff mov.w r0, #4294967295
800dee0: f7f6 ff72 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800dee4: 88fb ldrh r3, [r7, #6]
800dee6: 330a adds r3, #10
800dee8: b29b uxth r3, r3
800deea: 88b9 ldrh r1, [r7, #4]
800deec: 2203 movs r2, #3
800deee: 4618 mov r0, r3
800def0: f7f7 fba6 bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800def4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800def8: 4826 ldr r0, [pc, #152] ; (800df94 <DrawMySpinner+0x574>)
800defa: f7f6 ff65 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800defe: 88fb ldrh r3, [r7, #6]
800df00: 3307 adds r3, #7
800df02: b298 uxth r0, r3
800df04: 88bb ldrh r3, [r7, #4]
800df06: 3b07 subs r3, #7
800df08: b29b uxth r3, r3
800df0a: 2203 movs r2, #3
800df0c: 4619 mov r1, r3
800df0e: f7f7 fb97 bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800df12: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800df16: 4820 ldr r0, [pc, #128] ; (800df98 <DrawMySpinner+0x578>)
800df18: f7f6 ff56 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800df1c: 88bb ldrh r3, [r7, #4]
800df1e: 3b0a subs r3, #10
800df20: b299 uxth r1, r3
800df22: 88fb ldrh r3, [r7, #6]
800df24: 2203 movs r2, #3
800df26: 4618 mov r0, r3
800df28: f7f7 fb8a bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800df2c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800df30: 481a ldr r0, [pc, #104] ; (800df9c <DrawMySpinner+0x57c>)
800df32: f7f6 ff49 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800df36: 88fb ldrh r3, [r7, #6]
800df38: 3307 adds r3, #7
800df3a: b298 uxth r0, r3
800df3c: 88bb ldrh r3, [r7, #4]
800df3e: 3307 adds r3, #7
800df40: b29b uxth r3, r3
800df42: 2203 movs r2, #3
800df44: 4619 mov r1, r3
800df46: f7f7 fb7b bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800df4a: 88bb ldrh r3, [r7, #4]
800df4c: 330a adds r3, #10
800df4e: b299 uxth r1, r3
800df50: 88fb ldrh r3, [r7, #6]
800df52: 2203 movs r2, #3
800df54: 4618 mov r0, r3
800df56: f7f7 fb73 bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800df5a: 88fb ldrh r3, [r7, #6]
800df5c: 3b07 subs r3, #7
800df5e: b298 uxth r0, r3
800df60: 88bb ldrh r3, [r7, #4]
800df62: 3307 adds r3, #7
800df64: b29b uxth r3, r3
800df66: 2203 movs r2, #3
800df68: 4619 mov r1, r3
800df6a: f7f7 fb69 bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800df6e: 88fb ldrh r3, [r7, #6]
800df70: 3b0a subs r3, #10
800df72: b29b uxth r3, r3
800df74: 88b9 ldrh r1, [r7, #4]
800df76: 2203 movs r2, #3
800df78: 4618 mov r0, r3
800df7a: f7f7 fb61 bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800df7e: 88fb ldrh r3, [r7, #6]
800df80: 3b07 subs r3, #7
800df82: b298 uxth r0, r3
800df84: 88bb ldrh r3, [r7, #4]
800df86: 3b07 subs r3, #7
800df88: b29b uxth r3, r3
800df8a: 2203 movs r2, #3
800df8c: 4619 mov r1, r3
800df8e: f7f7 fb57 bl 8005640 <BSP_LCD_FillCircle>
break;
800df92: e063 b.n 800e05c <DrawMySpinner+0x63c>
800df94: ffd3d3d3 .word 0xffd3d3d3
800df98: ff808080 .word 0xff808080
800df9c: ff404040 .word 0xff404040
case 7:
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800dfa0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dfa4: f04f 30ff mov.w r0, #4294967295
800dfa8: f7f6 ff0e bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y + 7, 3);//1
800dfac: 88fb ldrh r3, [r7, #6]
800dfae: 3307 adds r3, #7
800dfb0: b298 uxth r0, r3
800dfb2: 88bb ldrh r3, [r7, #4]
800dfb4: 3307 adds r3, #7
800dfb6: b29b uxth r3, r3
800dfb8: 2203 movs r2, #3
800dfba: 4619 mov r1, r3
800dfbc: f7f7 fb40 bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_LIGHTGRAY, LCD_COLOR_BLACK);
800dfc0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dfc4: 482d ldr r0, [pc, #180] ; (800e07c <DrawMySpinner+0x65c>)
800dfc6: f7f6 feff bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 10, y + 0, 3);//0
800dfca: 88fb ldrh r3, [r7, #6]
800dfcc: 330a adds r3, #10
800dfce: b29b uxth r3, r3
800dfd0: 88b9 ldrh r1, [r7, #4]
800dfd2: 2203 movs r2, #3
800dfd4: 4618 mov r0, r3
800dfd6: f7f7 fb33 bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800dfda: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dfde: 4828 ldr r0, [pc, #160] ; (800e080 <DrawMySpinner+0x660>)
800dfe0: f7f6 fef2 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 7, y - 7, 3);//7
800dfe4: 88fb ldrh r3, [r7, #6]
800dfe6: 3307 adds r3, #7
800dfe8: b298 uxth r0, r3
800dfea: 88bb ldrh r3, [r7, #4]
800dfec: 3b07 subs r3, #7
800dfee: b29b uxth r3, r3
800dff0: 2203 movs r2, #3
800dff2: 4619 mov r1, r3
800dff4: f7f7 fb24 bl 8005640 <BSP_LCD_FillCircle>
LCD_SetColors(LCD_COLOR_DARKGRAY, LCD_COLOR_BLACK);
800dff8: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800dffc: 4821 ldr r0, [pc, #132] ; (800e084 <DrawMySpinner+0x664>)
800dffe: f7f6 fee3 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillCircle(x + 0, y + 10, 3);//2
800e002: 88bb ldrh r3, [r7, #4]
800e004: 330a adds r3, #10
800e006: b299 uxth r1, r3
800e008: 88fb ldrh r3, [r7, #6]
800e00a: 2203 movs r2, #3
800e00c: 4618 mov r0, r3
800e00e: f7f7 fb17 bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y + 7, 3);//3
800e012: 88fb ldrh r3, [r7, #6]
800e014: 3b07 subs r3, #7
800e016: b298 uxth r0, r3
800e018: 88bb ldrh r3, [r7, #4]
800e01a: 3307 adds r3, #7
800e01c: b29b uxth r3, r3
800e01e: 2203 movs r2, #3
800e020: 4619 mov r1, r3
800e022: f7f7 fb0d bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 10, y + 0, 3);//4
800e026: 88fb ldrh r3, [r7, #6]
800e028: 3b0a subs r3, #10
800e02a: b29b uxth r3, r3
800e02c: 88b9 ldrh r1, [r7, #4]
800e02e: 2203 movs r2, #3
800e030: 4618 mov r0, r3
800e032: f7f7 fb05 bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x - 7, y - 7, 3);//5
800e036: 88fb ldrh r3, [r7, #6]
800e038: 3b07 subs r3, #7
800e03a: b298 uxth r0, r3
800e03c: 88bb ldrh r3, [r7, #4]
800e03e: 3b07 subs r3, #7
800e040: b29b uxth r3, r3
800e042: 2203 movs r2, #3
800e044: 4619 mov r1, r3
800e046: f7f7 fafb bl 8005640 <BSP_LCD_FillCircle>
BSP_LCD_FillCircle(x + 0, y - 10, 3);//6
800e04a: 88bb ldrh r3, [r7, #4]
800e04c: 3b0a subs r3, #10
800e04e: b299 uxth r1, r3
800e050: 88fb ldrh r3, [r7, #6]
800e052: 2203 movs r2, #3
800e054: 4618 mov r0, r3
800e056: f7f7 faf3 bl 8005640 <BSP_LCD_FillCircle>
break;
800e05a: bf00 nop
}
rotate++;
800e05c: 4b0a ldr r3, [pc, #40] ; (800e088 <DrawMySpinner+0x668>)
800e05e: 681b ldr r3, [r3, #0]
800e060: 3301 adds r3, #1
800e062: 4a09 ldr r2, [pc, #36] ; (800e088 <DrawMySpinner+0x668>)
800e064: 6013 str r3, [r2, #0]
if(rotate >= 8)
800e066: 4b08 ldr r3, [pc, #32] ; (800e088 <DrawMySpinner+0x668>)
800e068: 681b ldr r3, [r3, #0]
800e06a: 2b07 cmp r3, #7
800e06c: d902 bls.n 800e074 <DrawMySpinner+0x654>
rotate = 0;
800e06e: 4b06 ldr r3, [pc, #24] ; (800e088 <DrawMySpinner+0x668>)
800e070: 2200 movs r2, #0
800e072: 601a str r2, [r3, #0]
}
800e074: bf00 nop
800e076: 3708 adds r7, #8
800e078: 46bd mov sp, r7
800e07a: bd80 pop {r7, pc}
800e07c: ffd3d3d3 .word 0xffd3d3d3
800e080: ff808080 .word 0xff808080
800e084: ff404040 .word 0xff404040
800e088: 2006ba80 .word 0x2006ba80
0800e08c <DrawSpinner>:
void DrawSpinner(uint16_t x, uint16_t y)
{
800e08c: b580 push {r7, lr}
800e08e: b082 sub sp, #8
800e090: af00 add r7, sp, #0
800e092: 4603 mov r3, r0
800e094: 460a mov r2, r1
800e096: 80fb strh r3, [r7, #6]
800e098: 4613 mov r3, r2
800e09a: 80bb strh r3, [r7, #4]
//if(!clbr)
//{
spinner++;
800e09c: 4b0b ldr r3, [pc, #44] ; (800e0cc <DrawSpinner+0x40>)
800e09e: 781b ldrb r3, [r3, #0]
800e0a0: 3301 adds r3, #1
800e0a2: b2da uxtb r2, r3
800e0a4: 4b09 ldr r3, [pc, #36] ; (800e0cc <DrawSpinner+0x40>)
800e0a6: 701a strb r2, [r3, #0]
if(spinner >= 10)
800e0a8: 4b08 ldr r3, [pc, #32] ; (800e0cc <DrawSpinner+0x40>)
800e0aa: 781b ldrb r3, [r3, #0]
800e0ac: 2b09 cmp r3, #9
800e0ae: d902 bls.n 800e0b6 <DrawSpinner+0x2a>
spinner = 0;
800e0b0: 4b06 ldr r3, [pc, #24] ; (800e0cc <DrawSpinner+0x40>)
800e0b2: 2200 movs r2, #0
800e0b4: 701a strb r2, [r3, #0]
DrawMySpinner(x, y);
800e0b6: 88ba ldrh r2, [r7, #4]
800e0b8: 88fb ldrh r3, [r7, #6]
800e0ba: 4611 mov r1, r2
800e0bc: 4618 mov r0, r3
800e0be: f7ff fcaf bl 800da20 <DrawMySpinner>
//}
}
800e0c2: bf00 nop
800e0c4: 3708 adds r7, #8
800e0c6: 46bd mov sp, r7
800e0c8: bd80 pop {r7, pc}
800e0ca: bf00 nop
800e0cc: 2006ba75 .word 0x2006ba75
0800e0d0 <DrawChannel_4>:
}
void DrawChannel_4(uint8_t ch, uint32_t blk)
{
800e0d0: b5b0 push {r4, r5, r7, lr}
800e0d2: b08e sub sp, #56 ; 0x38
800e0d4: af00 add r7, sp, #0
800e0d6: 4603 mov r3, r0
800e0d8: 6039 str r1, [r7, #0]
800e0da: 71fb strb r3, [r7, #7]
char *p8;
if(pardata.amplif[ch].SENS <= 0.0f) {
800e0dc: 79fb ldrb r3, [r7, #7]
800e0de: 4ac1 ldr r2, [pc, #772] ; (800e3e4 <DrawChannel_4+0x314>)
800e0e0: 015b lsls r3, r3, #5
800e0e2: 4413 add r3, r2
800e0e4: 3318 adds r3, #24
800e0e6: edd3 7a00 vldr s15, [r3]
800e0ea: eef5 7ac0 vcmpe.f32 s15, #0.0
800e0ee: eef1 fa10 vmrs APSR_nzcv, fpscr
800e0f2: d80a bhi.n 800e10a <DrawChannel_4+0x3a>
pardata.amplif[ch].SENS = 1.0f;
800e0f4: 79fb ldrb r3, [r7, #7]
800e0f6: 4abb ldr r2, [pc, #748] ; (800e3e4 <DrawChannel_4+0x314>)
800e0f8: 015b lsls r3, r3, #5
800e0fa: 4413 add r3, r2
800e0fc: 3318 adds r3, #24
800e0fe: f04f 527e mov.w r2, #1065353216 ; 0x3f800000
800e102: 601a str r2, [r3, #0]
s = 10000;
800e104: f242 7310 movw r3, #10000 ; 0x2710
800e108: 637b str r3, [r7, #52] ; 0x34
}
if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10.0f) {
800e10a: 4bb7 ldr r3, [pc, #732] ; (800e3e8 <DrawChannel_4+0x318>)
800e10c: 681b ldr r3, [r3, #0]
800e10e: 4ab5 ldr r2, [pc, #724] ; (800e3e4 <DrawChannel_4+0x314>)
800e110: 015b lsls r3, r3, #5
800e112: 4413 add r3, r2
800e114: 3318 adds r3, #24
800e116: edd3 7a00 vldr s15, [r3]
800e11a: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800e11e: eef4 7ac7 vcmpe.f32 s15, s14
800e122: eef1 fa10 vmrs APSR_nzcv, fpscr
800e126: d517 bpl.n 800e158 <DrawChannel_4+0x88>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10000.0f) + 0.5f);
800e128: 4baf ldr r3, [pc, #700] ; (800e3e8 <DrawChannel_4+0x318>)
800e12a: 681b ldr r3, [r3, #0]
800e12c: 4aad ldr r2, [pc, #692] ; (800e3e4 <DrawChannel_4+0x314>)
800e12e: 015b lsls r3, r3, #5
800e130: 4413 add r3, r2
800e132: 3318 adds r3, #24
800e134: edd3 7a00 vldr s15, [r3]
800e138: ed9f 7aac vldr s14, [pc, #688] ; 800e3ec <DrawChannel_4+0x31c>
800e13c: ee67 7a87 vmul.f32 s15, s15, s14
800e140: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800e144: ee77 7a87 vadd.f32 s15, s15, s14
800e148: eefc 7ae7 vcvt.u32.f32 s15, s15
800e14c: ee17 3a90 vmov r3, s15
800e150: 637b str r3, [r7, #52] ; 0x34
ipt = 4;
800e152: 2304 movs r3, #4
800e154: 62bb str r3, [r7, #40] ; 0x28
800e156: e0b2 b.n 800e2be <DrawChannel_4+0x1ee>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100.0f) {
800e158: 4ba3 ldr r3, [pc, #652] ; (800e3e8 <DrawChannel_4+0x318>)
800e15a: 681b ldr r3, [r3, #0]
800e15c: 4aa1 ldr r2, [pc, #644] ; (800e3e4 <DrawChannel_4+0x314>)
800e15e: 015b lsls r3, r3, #5
800e160: 4413 add r3, r2
800e162: 3318 adds r3, #24
800e164: edd3 7a00 vldr s15, [r3]
800e168: ed9f 7aa1 vldr s14, [pc, #644] ; 800e3f0 <DrawChannel_4+0x320>
800e16c: eef4 7ac7 vcmpe.f32 s15, s14
800e170: eef1 fa10 vmrs APSR_nzcv, fpscr
800e174: d517 bpl.n 800e1a6 <DrawChannel_4+0xd6>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 1000.0f) + 0.5f);
800e176: 4b9c ldr r3, [pc, #624] ; (800e3e8 <DrawChannel_4+0x318>)
800e178: 681b ldr r3, [r3, #0]
800e17a: 4a9a ldr r2, [pc, #616] ; (800e3e4 <DrawChannel_4+0x314>)
800e17c: 015b lsls r3, r3, #5
800e17e: 4413 add r3, r2
800e180: 3318 adds r3, #24
800e182: edd3 7a00 vldr s15, [r3]
800e186: ed9f 7a9b vldr s14, [pc, #620] ; 800e3f4 <DrawChannel_4+0x324>
800e18a: ee67 7a87 vmul.f32 s15, s15, s14
800e18e: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800e192: ee77 7a87 vadd.f32 s15, s15, s14
800e196: eefc 7ae7 vcvt.u32.f32 s15, s15
800e19a: ee17 3a90 vmov r3, s15
800e19e: 637b str r3, [r7, #52] ; 0x34
ipt = 3;
800e1a0: 2303 movs r3, #3
800e1a2: 62bb str r3, [r7, #40] ; 0x28
800e1a4: e08b b.n 800e2be <DrawChannel_4+0x1ee>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 1000.0f) {
800e1a6: 4b90 ldr r3, [pc, #576] ; (800e3e8 <DrawChannel_4+0x318>)
800e1a8: 681b ldr r3, [r3, #0]
800e1aa: 4a8e ldr r2, [pc, #568] ; (800e3e4 <DrawChannel_4+0x314>)
800e1ac: 015b lsls r3, r3, #5
800e1ae: 4413 add r3, r2
800e1b0: 3318 adds r3, #24
800e1b2: edd3 7a00 vldr s15, [r3]
800e1b6: ed9f 7a8f vldr s14, [pc, #572] ; 800e3f4 <DrawChannel_4+0x324>
800e1ba: eef4 7ac7 vcmpe.f32 s15, s14
800e1be: eef1 fa10 vmrs APSR_nzcv, fpscr
800e1c2: d517 bpl.n 800e1f4 <DrawChannel_4+0x124>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 100.0f) + 0.5f);
800e1c4: 4b88 ldr r3, [pc, #544] ; (800e3e8 <DrawChannel_4+0x318>)
800e1c6: 681b ldr r3, [r3, #0]
800e1c8: 4a86 ldr r2, [pc, #536] ; (800e3e4 <DrawChannel_4+0x314>)
800e1ca: 015b lsls r3, r3, #5
800e1cc: 4413 add r3, r2
800e1ce: 3318 adds r3, #24
800e1d0: edd3 7a00 vldr s15, [r3]
800e1d4: ed9f 7a86 vldr s14, [pc, #536] ; 800e3f0 <DrawChannel_4+0x320>
800e1d8: ee67 7a87 vmul.f32 s15, s15, s14
800e1dc: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800e1e0: ee77 7a87 vadd.f32 s15, s15, s14
800e1e4: eefc 7ae7 vcvt.u32.f32 s15, s15
800e1e8: ee17 3a90 vmov r3, s15
800e1ec: 637b str r3, [r7, #52] ; 0x34
ipt = 2;
800e1ee: 2302 movs r3, #2
800e1f0: 62bb str r3, [r7, #40] ; 0x28
800e1f2: e064 b.n 800e2be <DrawChannel_4+0x1ee>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 10000.0f) {
800e1f4: 4b7c ldr r3, [pc, #496] ; (800e3e8 <DrawChannel_4+0x318>)
800e1f6: 681b ldr r3, [r3, #0]
800e1f8: 4a7a ldr r2, [pc, #488] ; (800e3e4 <DrawChannel_4+0x314>)
800e1fa: 015b lsls r3, r3, #5
800e1fc: 4413 add r3, r2
800e1fe: 3318 adds r3, #24
800e200: edd3 7a00 vldr s15, [r3]
800e204: ed9f 7a79 vldr s14, [pc, #484] ; 800e3ec <DrawChannel_4+0x31c>
800e208: eef4 7ac7 vcmpe.f32 s15, s14
800e20c: eef1 fa10 vmrs APSR_nzcv, fpscr
800e210: d517 bpl.n 800e242 <DrawChannel_4+0x172>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS * 10.0f) + 0.5f);
800e212: 4b75 ldr r3, [pc, #468] ; (800e3e8 <DrawChannel_4+0x318>)
800e214: 681b ldr r3, [r3, #0]
800e216: 4a73 ldr r2, [pc, #460] ; (800e3e4 <DrawChannel_4+0x314>)
800e218: 015b lsls r3, r3, #5
800e21a: 4413 add r3, r2
800e21c: 3318 adds r3, #24
800e21e: edd3 7a00 vldr s15, [r3]
800e222: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800e226: ee67 7a87 vmul.f32 s15, s15, s14
800e22a: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800e22e: ee77 7a87 vadd.f32 s15, s15, s14
800e232: eefc 7ae7 vcvt.u32.f32 s15, s15
800e236: ee17 3a90 vmov r3, s15
800e23a: 637b str r3, [r7, #52] ; 0x34
ipt = 1;
800e23c: 2301 movs r3, #1
800e23e: 62bb str r3, [r7, #40] ; 0x28
800e240: e03d b.n 800e2be <DrawChannel_4+0x1ee>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS < 100000.0f) {
800e242: 4b69 ldr r3, [pc, #420] ; (800e3e8 <DrawChannel_4+0x318>)
800e244: 681b ldr r3, [r3, #0]
800e246: 4a67 ldr r2, [pc, #412] ; (800e3e4 <DrawChannel_4+0x314>)
800e248: 015b lsls r3, r3, #5
800e24a: 4413 add r3, r2
800e24c: 3318 adds r3, #24
800e24e: edd3 7a00 vldr s15, [r3]
800e252: ed9f 7a69 vldr s14, [pc, #420] ; 800e3f8 <DrawChannel_4+0x328>
800e256: eef4 7ac7 vcmpe.f32 s15, s14
800e25a: eef1 fa10 vmrs APSR_nzcv, fpscr
800e25e: d513 bpl.n 800e288 <DrawChannel_4+0x1b8>
s = (uint32_t) ((pardata.amplif[ACTIVE_CHANNEL].SENS) + 0.5f);
800e260: 4b61 ldr r3, [pc, #388] ; (800e3e8 <DrawChannel_4+0x318>)
800e262: 681b ldr r3, [r3, #0]
800e264: 4a5f ldr r2, [pc, #380] ; (800e3e4 <DrawChannel_4+0x314>)
800e266: 015b lsls r3, r3, #5
800e268: 4413 add r3, r2
800e26a: 3318 adds r3, #24
800e26c: edd3 7a00 vldr s15, [r3]
800e270: eeb6 7a00 vmov.f32 s14, #96 ; 0x3f000000 0.5
800e274: ee77 7a87 vadd.f32 s15, s15, s14
800e278: eefc 7ae7 vcvt.u32.f32 s15, s15
800e27c: ee17 3a90 vmov r3, s15
800e280: 637b str r3, [r7, #52] ; 0x34
ipt = 0;
800e282: 2300 movs r3, #0
800e284: 62bb str r3, [r7, #40] ; 0x28
800e286: e01a b.n 800e2be <DrawChannel_4+0x1ee>
}
else if(pardata.amplif[ACTIVE_CHANNEL].SENS >= 100000.0f) {
800e288: 4b57 ldr r3, [pc, #348] ; (800e3e8 <DrawChannel_4+0x318>)
800e28a: 681b ldr r3, [r3, #0]
800e28c: 4a55 ldr r2, [pc, #340] ; (800e3e4 <DrawChannel_4+0x314>)
800e28e: 015b lsls r3, r3, #5
800e290: 4413 add r3, r2
800e292: 3318 adds r3, #24
800e294: edd3 7a00 vldr s15, [r3]
800e298: ed9f 7a57 vldr s14, [pc, #348] ; 800e3f8 <DrawChannel_4+0x328>
800e29c: eef4 7ac7 vcmpe.f32 s15, s14
800e2a0: eef1 fa10 vmrs APSR_nzcv, fpscr
800e2a4: db0b blt.n 800e2be <DrawChannel_4+0x1ee>
pardata.amplif[ACTIVE_CHANNEL].SENS = 99999.0f;
800e2a6: 4b50 ldr r3, [pc, #320] ; (800e3e8 <DrawChannel_4+0x318>)
800e2a8: 681b ldr r3, [r3, #0]
800e2aa: 4a4e ldr r2, [pc, #312] ; (800e3e4 <DrawChannel_4+0x314>)
800e2ac: 015b lsls r3, r3, #5
800e2ae: 4413 add r3, r2
800e2b0: 3318 adds r3, #24
800e2b2: 4a52 ldr r2, [pc, #328] ; (800e3fc <DrawChannel_4+0x32c>)
800e2b4: 601a str r2, [r3, #0]
s = 99999;
800e2b6: 4b52 ldr r3, [pc, #328] ; (800e400 <DrawChannel_4+0x330>)
800e2b8: 637b str r3, [r7, #52] ; 0x34
ipt = 0;
800e2ba: 2300 movs r3, #0
800e2bc: 62bb str r3, [r7, #40] ; 0x28
}
ikdt = (s / 10000);
800e2be: 6b7b ldr r3, [r7, #52] ; 0x34
800e2c0: 4a50 ldr r2, [pc, #320] ; (800e404 <DrawChannel_4+0x334>)
800e2c2: fba2 2303 umull r2, r3, r2, r3
800e2c6: 0b5b lsrs r3, r3, #13
800e2c8: 627b str r3, [r7, #36] ; 0x24
ikt = (s % 10000 / 1000);
800e2ca: 6b7a ldr r2, [r7, #52] ; 0x34
800e2cc: 4b4d ldr r3, [pc, #308] ; (800e404 <DrawChannel_4+0x334>)
800e2ce: fba3 1302 umull r1, r3, r3, r2
800e2d2: 0b5b lsrs r3, r3, #13
800e2d4: f242 7110 movw r1, #10000 ; 0x2710
800e2d8: fb01 f303 mul.w r3, r1, r3
800e2dc: 1ad3 subs r3, r2, r3
800e2de: 4a4a ldr r2, [pc, #296] ; (800e408 <DrawChannel_4+0x338>)
800e2e0: fba2 2303 umull r2, r3, r2, r3
800e2e4: 099b lsrs r3, r3, #6
800e2e6: 623b str r3, [r7, #32]
iks = (s % 10000 % 1000 / 100);
800e2e8: 6b7a ldr r2, [r7, #52] ; 0x34
800e2ea: 4b46 ldr r3, [pc, #280] ; (800e404 <DrawChannel_4+0x334>)
800e2ec: fba3 1302 umull r1, r3, r3, r2
800e2f0: 0b5b lsrs r3, r3, #13
800e2f2: f242 7110 movw r1, #10000 ; 0x2710
800e2f6: fb01 f303 mul.w r3, r1, r3
800e2fa: 1ad3 subs r3, r2, r3
800e2fc: 4a42 ldr r2, [pc, #264] ; (800e408 <DrawChannel_4+0x338>)
800e2fe: fba2 1203 umull r1, r2, r2, r3
800e302: 0992 lsrs r2, r2, #6
800e304: f44f 717a mov.w r1, #1000 ; 0x3e8
800e308: fb01 f202 mul.w r2, r1, r2
800e30c: 1a9a subs r2, r3, r2
800e30e: 4b3f ldr r3, [pc, #252] ; (800e40c <DrawChannel_4+0x33c>)
800e310: fba3 2302 umull r2, r3, r3, r2
800e314: 095b lsrs r3, r3, #5
800e316: 61fb str r3, [r7, #28]
ikd = (s % 10000 % 1000 % 100 / 10);
800e318: 6b7b ldr r3, [r7, #52] ; 0x34
800e31a: 4a3a ldr r2, [pc, #232] ; (800e404 <DrawChannel_4+0x334>)
800e31c: fba2 1203 umull r1, r2, r2, r3
800e320: 0b52 lsrs r2, r2, #13
800e322: f242 7110 movw r1, #10000 ; 0x2710
800e326: fb01 f202 mul.w r2, r1, r2
800e32a: 1a9a subs r2, r3, r2
800e32c: 4b36 ldr r3, [pc, #216] ; (800e408 <DrawChannel_4+0x338>)
800e32e: fba3 1302 umull r1, r3, r3, r2
800e332: 099b lsrs r3, r3, #6
800e334: f44f 717a mov.w r1, #1000 ; 0x3e8
800e338: fb01 f303 mul.w r3, r1, r3
800e33c: 1ad3 subs r3, r2, r3
800e33e: 4a33 ldr r2, [pc, #204] ; (800e40c <DrawChannel_4+0x33c>)
800e340: fba2 1203 umull r1, r2, r2, r3
800e344: 0952 lsrs r2, r2, #5
800e346: 2164 movs r1, #100 ; 0x64
800e348: fb01 f202 mul.w r2, r1, r2
800e34c: 1a9a subs r2, r3, r2
800e34e: 4b30 ldr r3, [pc, #192] ; (800e410 <DrawChannel_4+0x340>)
800e350: fba3 2302 umull r2, r3, r3, r2
800e354: 08db lsrs r3, r3, #3
800e356: 61bb str r3, [r7, #24]
ike = (s % 10000 % 1000 % 100 % 10);
800e358: 6b7b ldr r3, [r7, #52] ; 0x34
800e35a: 4a2a ldr r2, [pc, #168] ; (800e404 <DrawChannel_4+0x334>)
800e35c: fba2 1203 umull r1, r2, r2, r3
800e360: 0b52 lsrs r2, r2, #13
800e362: f242 7110 movw r1, #10000 ; 0x2710
800e366: fb01 f202 mul.w r2, r1, r2
800e36a: 1a9a subs r2, r3, r2
800e36c: 4b26 ldr r3, [pc, #152] ; (800e408 <DrawChannel_4+0x338>)
800e36e: fba3 1302 umull r1, r3, r3, r2
800e372: 099b lsrs r3, r3, #6
800e374: f44f 717a mov.w r1, #1000 ; 0x3e8
800e378: fb01 f303 mul.w r3, r1, r3
800e37c: 1ad3 subs r3, r2, r3
800e37e: 4a23 ldr r2, [pc, #140] ; (800e40c <DrawChannel_4+0x33c>)
800e380: fba2 1203 umull r1, r2, r2, r3
800e384: 0952 lsrs r2, r2, #5
800e386: 2164 movs r1, #100 ; 0x64
800e388: fb01 f202 mul.w r2, r1, r2
800e38c: 1a9a subs r2, r3, r2
800e38e: 4b20 ldr r3, [pc, #128] ; (800e410 <DrawChannel_4+0x340>)
800e390: fba3 1302 umull r1, r3, r3, r2
800e394: 08d9 lsrs r1, r3, #3
800e396: 460b mov r3, r1
800e398: 009b lsls r3, r3, #2
800e39a: 440b add r3, r1
800e39c: 005b lsls r3, r3, #1
800e39e: 1ad3 subs r3, r2, r3
800e3a0: 617b str r3, [r7, #20]
p8 = str;
800e3a2: f107 0308 add.w r3, r7, #8
800e3a6: 62fb str r3, [r7, #44] ; 0x2c
if(pardata.amplif[ch].SENS < 10.0f) {
800e3a8: 79fb ldrb r3, [r7, #7]
800e3aa: 4a0e ldr r2, [pc, #56] ; (800e3e4 <DrawChannel_4+0x314>)
800e3ac: 015b lsls r3, r3, #5
800e3ae: 4413 add r3, r2
800e3b0: 3318 adds r3, #24
800e3b2: edd3 7a00 vldr s15, [r3]
800e3b6: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800e3ba: eef4 7ac7 vcmpe.f32 s15, s14
800e3be: eef1 fa10 vmrs APSR_nzcv, fpscr
800e3c2: d527 bpl.n 800e414 <DrawChannel_4+0x344>
p8 = FloatToASCII(pardata.amplif[ch].SENS, -4);
800e3c4: 79fb ldrb r3, [r7, #7]
800e3c6: 4a07 ldr r2, [pc, #28] ; (800e3e4 <DrawChannel_4+0x314>)
800e3c8: 015b lsls r3, r3, #5
800e3ca: 4413 add r3, r2
800e3cc: 3318 adds r3, #24
800e3ce: edd3 7a00 vldr s15, [r3]
800e3d2: f06f 0003 mvn.w r0, #3
800e3d6: eeb0 0a67 vmov.f32 s0, s15
800e3da: f001 f861 bl 800f4a0 <FloatToASCII>
800e3de: 62f8 str r0, [r7, #44] ; 0x2c
800e3e0: e08a b.n 800e4f8 <DrawChannel_4+0x428>
800e3e2: bf00 nop
800e3e4: 2006bca8 .word 0x2006bca8
800e3e8: 2006ba68 .word 0x2006ba68
800e3ec: 461c4000 .word 0x461c4000
800e3f0: 42c80000 .word 0x42c80000
800e3f4: 447a0000 .word 0x447a0000
800e3f8: 47c35000 .word 0x47c35000
800e3fc: 47c34f80 .word 0x47c34f80
800e400: 0001869f .word 0x0001869f
800e404: d1b71759 .word 0xd1b71759
800e408: 10624dd3 .word 0x10624dd3
800e40c: 51eb851f .word 0x51eb851f
800e410: cccccccd .word 0xcccccccd
}
else if(pardata.amplif[ch].SENS < 100.0f) {
800e414: 79fb ldrb r3, [r7, #7]
800e416: 4abf ldr r2, [pc, #764] ; (800e714 <DrawChannel_4+0x644>)
800e418: 015b lsls r3, r3, #5
800e41a: 4413 add r3, r2
800e41c: 3318 adds r3, #24
800e41e: edd3 7a00 vldr s15, [r3]
800e422: ed9f 7abd vldr s14, [pc, #756] ; 800e718 <DrawChannel_4+0x648>
800e426: eef4 7ac7 vcmpe.f32 s15, s14
800e42a: eef1 fa10 vmrs APSR_nzcv, fpscr
800e42e: d50e bpl.n 800e44e <DrawChannel_4+0x37e>
p8 = FloatToASCII(pardata.amplif[ch].SENS, -3);
800e430: 79fb ldrb r3, [r7, #7]
800e432: 4ab8 ldr r2, [pc, #736] ; (800e714 <DrawChannel_4+0x644>)
800e434: 015b lsls r3, r3, #5
800e436: 4413 add r3, r2
800e438: 3318 adds r3, #24
800e43a: edd3 7a00 vldr s15, [r3]
800e43e: f06f 0002 mvn.w r0, #2
800e442: eeb0 0a67 vmov.f32 s0, s15
800e446: f001 f82b bl 800f4a0 <FloatToASCII>
800e44a: 62f8 str r0, [r7, #44] ; 0x2c
800e44c: e054 b.n 800e4f8 <DrawChannel_4+0x428>
}
else if(pardata.amplif[ch].SENS < 1000.0f) {
800e44e: 79fb ldrb r3, [r7, #7]
800e450: 4ab0 ldr r2, [pc, #704] ; (800e714 <DrawChannel_4+0x644>)
800e452: 015b lsls r3, r3, #5
800e454: 4413 add r3, r2
800e456: 3318 adds r3, #24
800e458: edd3 7a00 vldr s15, [r3]
800e45c: ed9f 7aaf vldr s14, [pc, #700] ; 800e71c <DrawChannel_4+0x64c>
800e460: eef4 7ac7 vcmpe.f32 s15, s14
800e464: eef1 fa10 vmrs APSR_nzcv, fpscr
800e468: d50e bpl.n 800e488 <DrawChannel_4+0x3b8>
p8 = FloatToASCII(pardata.amplif[ch].SENS, -2);
800e46a: 79fb ldrb r3, [r7, #7]
800e46c: 4aa9 ldr r2, [pc, #676] ; (800e714 <DrawChannel_4+0x644>)
800e46e: 015b lsls r3, r3, #5
800e470: 4413 add r3, r2
800e472: 3318 adds r3, #24
800e474: edd3 7a00 vldr s15, [r3]
800e478: f06f 0001 mvn.w r0, #1
800e47c: eeb0 0a67 vmov.f32 s0, s15
800e480: f001 f80e bl 800f4a0 <FloatToASCII>
800e484: 62f8 str r0, [r7, #44] ; 0x2c
800e486: e037 b.n 800e4f8 <DrawChannel_4+0x428>
}
else if(pardata.amplif[ch].SENS < 10000.0f) {
800e488: 79fb ldrb r3, [r7, #7]
800e48a: 4aa2 ldr r2, [pc, #648] ; (800e714 <DrawChannel_4+0x644>)
800e48c: 015b lsls r3, r3, #5
800e48e: 4413 add r3, r2
800e490: 3318 adds r3, #24
800e492: edd3 7a00 vldr s15, [r3]
800e496: ed9f 7aa2 vldr s14, [pc, #648] ; 800e720 <DrawChannel_4+0x650>
800e49a: eef4 7ac7 vcmpe.f32 s15, s14
800e49e: eef1 fa10 vmrs APSR_nzcv, fpscr
800e4a2: d50e bpl.n 800e4c2 <DrawChannel_4+0x3f2>
p8 = FloatToASCII(pardata.amplif[ch].SENS, -1);
800e4a4: 79fb ldrb r3, [r7, #7]
800e4a6: 4a9b ldr r2, [pc, #620] ; (800e714 <DrawChannel_4+0x644>)
800e4a8: 015b lsls r3, r3, #5
800e4aa: 4413 add r3, r2
800e4ac: 3318 adds r3, #24
800e4ae: edd3 7a00 vldr s15, [r3]
800e4b2: f04f 30ff mov.w r0, #4294967295
800e4b6: eeb0 0a67 vmov.f32 s0, s15
800e4ba: f000 fff1 bl 800f4a0 <FloatToASCII>
800e4be: 62f8 str r0, [r7, #44] ; 0x2c
800e4c0: e01a b.n 800e4f8 <DrawChannel_4+0x428>
}
else if(pardata.amplif[ch].SENS < 100000.0f) {
800e4c2: 79fb ldrb r3, [r7, #7]
800e4c4: 4a93 ldr r2, [pc, #588] ; (800e714 <DrawChannel_4+0x644>)
800e4c6: 015b lsls r3, r3, #5
800e4c8: 4413 add r3, r2
800e4ca: 3318 adds r3, #24
800e4cc: edd3 7a00 vldr s15, [r3]
800e4d0: ed9f 7a94 vldr s14, [pc, #592] ; 800e724 <DrawChannel_4+0x654>
800e4d4: eef4 7ac7 vcmpe.f32 s15, s14
800e4d8: eef1 fa10 vmrs APSR_nzcv, fpscr
800e4dc: d50c bpl.n 800e4f8 <DrawChannel_4+0x428>
p8 = FloatToASCII(pardata.amplif[ch].SENS, 0);
800e4de: 79fb ldrb r3, [r7, #7]
800e4e0: 4a8c ldr r2, [pc, #560] ; (800e714 <DrawChannel_4+0x644>)
800e4e2: 015b lsls r3, r3, #5
800e4e4: 4413 add r3, r2
800e4e6: 3318 adds r3, #24
800e4e8: edd3 7a00 vldr s15, [r3]
800e4ec: 2000 movs r0, #0
800e4ee: eeb0 0a67 vmov.f32 s0, s15
800e4f2: f000 ffd5 bl 800f4a0 <FloatToASCII>
800e4f6: 62f8 str r0, [r7, #44] ; 0x2c
}
strcpy((void *) str, (void *) p8);
800e4f8: f107 0308 add.w r3, r7, #8
800e4fc: 6af9 ldr r1, [r7, #44] ; 0x2c
800e4fe: 4618 mov r0, r3
800e500: f007 fff3 bl 80164ea <strcpy>
//////////////////////////////////////////////////////////////////////////////////////
if((pardata.amplif[ch].SENS >= 0.0010f)&&(pardata.amplif[ch].SENS < 0.001f)) //0.001
800e504: 79fb ldrb r3, [r7, #7]
800e506: 4a83 ldr r2, [pc, #524] ; (800e714 <DrawChannel_4+0x644>)
800e508: 015b lsls r3, r3, #5
800e50a: 4413 add r3, r2
800e50c: 3318 adds r3, #24
800e50e: edd3 7a00 vldr s15, [r3]
800e512: ed9f 7a85 vldr s14, [pc, #532] ; 800e728 <DrawChannel_4+0x658>
800e516: eef4 7ac7 vcmpe.f32 s15, s14
800e51a: eef1 fa10 vmrs APSR_nzcv, fpscr
800e51e: db16 blt.n 800e54e <DrawChannel_4+0x47e>
800e520: 79fb ldrb r3, [r7, #7]
800e522: 4a7c ldr r2, [pc, #496] ; (800e714 <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 7a7e vldr s14, [pc, #504] ; 800e728 <DrawChannel_4+0x658>
800e532: eef4 7ac7 vcmpe.f32 s15, s14
800e536: eef1 fa10 vmrs APSR_nzcv, fpscr
800e53a: d508 bpl.n 800e54e <DrawChannel_4+0x47e>
{
out = pardata.amplif[ch].IKU;
800e53c: 79fb ldrb r3, [r7, #7]
800e53e: 4a75 ldr r2, [pc, #468] ; (800e714 <DrawChannel_4+0x644>)
800e540: 015b lsls r3, r3, #5
800e542: 4413 add r3, r2
800e544: 3306 adds r3, #6
800e546: 881b ldrh r3, [r3, #0]
800e548: b29b uxth r3, r3
800e54a: 633b str r3, [r7, #48] ; 0x30
800e54c: e13d b.n 800e7ca <DrawChannel_4+0x6fa>
}
else
if((pardata.amplif[ch].SENS >= 0.0010f)&&(pardata.amplif[ch].SENS < 0.010f)) //0.001
800e54e: 79fb ldrb r3, [r7, #7]
800e550: 4a70 ldr r2, [pc, #448] ; (800e714 <DrawChannel_4+0x644>)
800e552: 015b lsls r3, r3, #5
800e554: 4413 add r3, r2
800e556: 3318 adds r3, #24
800e558: edd3 7a00 vldr s15, [r3]
800e55c: ed9f 7a72 vldr s14, [pc, #456] ; 800e728 <DrawChannel_4+0x658>
800e560: eef4 7ac7 vcmpe.f32 s15, s14
800e564: eef1 fa10 vmrs APSR_nzcv, fpscr
800e568: db16 blt.n 800e598 <DrawChannel_4+0x4c8>
800e56a: 79fb ldrb r3, [r7, #7]
800e56c: 4a69 ldr r2, [pc, #420] ; (800e714 <DrawChannel_4+0x644>)
800e56e: 015b lsls r3, r3, #5
800e570: 4413 add r3, r2
800e572: 3318 adds r3, #24
800e574: edd3 7a00 vldr s15, [r3]
800e578: ed9f 7a6c vldr s14, [pc, #432] ; 800e72c <DrawChannel_4+0x65c>
800e57c: eef4 7ac7 vcmpe.f32 s15, s14
800e580: eef1 fa10 vmrs APSR_nzcv, fpscr
800e584: d508 bpl.n 800e598 <DrawChannel_4+0x4c8>
{
out = pardata.amplif[ch].IKU;
800e586: 79fb ldrb r3, [r7, #7]
800e588: 4a62 ldr r2, [pc, #392] ; (800e714 <DrawChannel_4+0x644>)
800e58a: 015b lsls r3, r3, #5
800e58c: 4413 add r3, r2
800e58e: 3306 adds r3, #6
800e590: 881b ldrh r3, [r3, #0]
800e592: b29b uxth r3, r3
800e594: 633b str r3, [r7, #48] ; 0x30
800e596: e118 b.n 800e7ca <DrawChannel_4+0x6fa>
}
else
if((pardata.amplif[ch].SENS>=0.01f)&&(pardata.amplif[ch].SENS<0.1f)) //0.002
800e598: 79fb ldrb r3, [r7, #7]
800e59a: 4a5e ldr r2, [pc, #376] ; (800e714 <DrawChannel_4+0x644>)
800e59c: 015b lsls r3, r3, #5
800e59e: 4413 add r3, r2
800e5a0: 3318 adds r3, #24
800e5a2: edd3 7a00 vldr s15, [r3]
800e5a6: ed9f 7a61 vldr s14, [pc, #388] ; 800e72c <DrawChannel_4+0x65c>
800e5aa: eef4 7ac7 vcmpe.f32 s15, s14
800e5ae: eef1 fa10 vmrs APSR_nzcv, fpscr
800e5b2: db17 blt.n 800e5e4 <DrawChannel_4+0x514>
800e5b4: 79fb ldrb r3, [r7, #7]
800e5b6: 4a57 ldr r2, [pc, #348] ; (800e714 <DrawChannel_4+0x644>)
800e5b8: 015b lsls r3, r3, #5
800e5ba: 4413 add r3, r2
800e5bc: 3318 adds r3, #24
800e5be: edd3 7a00 vldr s15, [r3]
800e5c2: ed9f 7a5b vldr s14, [pc, #364] ; 800e730 <DrawChannel_4+0x660>
800e5c6: eef4 7ac7 vcmpe.f32 s15, s14
800e5ca: eef1 fa10 vmrs APSR_nzcv, fpscr
800e5ce: d509 bpl.n 800e5e4 <DrawChannel_4+0x514>
{
out = pardata.amplif[ch].IKU +3;
800e5d0: 79fb ldrb r3, [r7, #7]
800e5d2: 4a50 ldr r2, [pc, #320] ; (800e714 <DrawChannel_4+0x644>)
800e5d4: 015b lsls r3, r3, #5
800e5d6: 4413 add r3, r2
800e5d8: 3306 adds r3, #6
800e5da: 881b ldrh r3, [r3, #0]
800e5dc: b29b uxth r3, r3
800e5de: 3303 adds r3, #3
800e5e0: 633b str r3, [r7, #48] ; 0x30
800e5e2: e0f2 b.n 800e7ca <DrawChannel_4+0x6fa>
}
else
if((pardata.amplif[ch].SENS>=0.1f)&&(pardata.amplif[ch].SENS<1.0f)) //0.005
800e5e4: 79fb ldrb r3, [r7, #7]
800e5e6: 4a4b ldr r2, [pc, #300] ; (800e714 <DrawChannel_4+0x644>)
800e5e8: 015b lsls r3, r3, #5
800e5ea: 4413 add r3, r2
800e5ec: 3318 adds r3, #24
800e5ee: edd3 7a00 vldr s15, [r3]
800e5f2: ed9f 7a4f vldr s14, [pc, #316] ; 800e730 <DrawChannel_4+0x660>
800e5f6: eef4 7ac7 vcmpe.f32 s15, s14
800e5fa: eef1 fa10 vmrs APSR_nzcv, fpscr
800e5fe: db17 blt.n 800e630 <DrawChannel_4+0x560>
800e600: 79fb ldrb r3, [r7, #7]
800e602: 4a44 ldr r2, [pc, #272] ; (800e714 <DrawChannel_4+0x644>)
800e604: 015b lsls r3, r3, #5
800e606: 4413 add r3, r2
800e608: 3318 adds r3, #24
800e60a: edd3 7a00 vldr s15, [r3]
800e60e: eeb7 7a00 vmov.f32 s14, #112 ; 0x3f800000 1.0
800e612: eef4 7ac7 vcmpe.f32 s15, s14
800e616: eef1 fa10 vmrs APSR_nzcv, fpscr
800e61a: d509 bpl.n 800e630 <DrawChannel_4+0x560>
{
out = pardata.amplif[ch].IKU + 6;
800e61c: 79fb ldrb r3, [r7, #7]
800e61e: 4a3d ldr r2, [pc, #244] ; (800e714 <DrawChannel_4+0x644>)
800e620: 015b lsls r3, r3, #5
800e622: 4413 add r3, r2
800e624: 3306 adds r3, #6
800e626: 881b ldrh r3, [r3, #0]
800e628: b29b uxth r3, r3
800e62a: 3306 adds r3, #6
800e62c: 633b str r3, [r7, #48] ; 0x30
800e62e: e0cc b.n 800e7ca <DrawChannel_4+0x6fa>
}
else
if((pardata.amplif[ch].SENS>=1.0f)&&(pardata.amplif[ch].SENS<10.0f)) //0.01
800e630: 79fb ldrb r3, [r7, #7]
800e632: 4a38 ldr r2, [pc, #224] ; (800e714 <DrawChannel_4+0x644>)
800e634: 015b lsls r3, r3, #5
800e636: 4413 add r3, r2
800e638: 3318 adds r3, #24
800e63a: edd3 7a00 vldr s15, [r3]
800e63e: eeb7 7a00 vmov.f32 s14, #112 ; 0x3f800000 1.0
800e642: eef4 7ac7 vcmpe.f32 s15, s14
800e646: eef1 fa10 vmrs APSR_nzcv, fpscr
800e64a: db17 blt.n 800e67c <DrawChannel_4+0x5ac>
800e64c: 79fb ldrb r3, [r7, #7]
800e64e: 4a31 ldr r2, [pc, #196] ; (800e714 <DrawChannel_4+0x644>)
800e650: 015b lsls r3, r3, #5
800e652: 4413 add r3, r2
800e654: 3318 adds r3, #24
800e656: edd3 7a00 vldr s15, [r3]
800e65a: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800e65e: eef4 7ac7 vcmpe.f32 s15, s14
800e662: eef1 fa10 vmrs APSR_nzcv, fpscr
800e666: d509 bpl.n 800e67c <DrawChannel_4+0x5ac>
{
out = pardata.amplif[ch].IKU + 9;
800e668: 79fb ldrb r3, [r7, #7]
800e66a: 4a2a ldr r2, [pc, #168] ; (800e714 <DrawChannel_4+0x644>)
800e66c: 015b lsls r3, r3, #5
800e66e: 4413 add r3, r2
800e670: 3306 adds r3, #6
800e672: 881b ldrh r3, [r3, #0]
800e674: b29b uxth r3, r3
800e676: 3309 adds r3, #9
800e678: 633b str r3, [r7, #48] ; 0x30
800e67a: e0a6 b.n 800e7ca <DrawChannel_4+0x6fa>
}
else
if((pardata.amplif[ch].SENS>=10.0f)&&(pardata.amplif[ch].SENS<100.0f)) //0.02
800e67c: 79fb ldrb r3, [r7, #7]
800e67e: 4a25 ldr r2, [pc, #148] ; (800e714 <DrawChannel_4+0x644>)
800e680: 015b lsls r3, r3, #5
800e682: 4413 add r3, r2
800e684: 3318 adds r3, #24
800e686: edd3 7a00 vldr s15, [r3]
800e68a: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800e68e: eef4 7ac7 vcmpe.f32 s15, s14
800e692: eef1 fa10 vmrs APSR_nzcv, fpscr
800e696: db17 blt.n 800e6c8 <DrawChannel_4+0x5f8>
800e698: 79fb ldrb r3, [r7, #7]
800e69a: 4a1e ldr r2, [pc, #120] ; (800e714 <DrawChannel_4+0x644>)
800e69c: 015b lsls r3, r3, #5
800e69e: 4413 add r3, r2
800e6a0: 3318 adds r3, #24
800e6a2: edd3 7a00 vldr s15, [r3]
800e6a6: ed9f 7a1c vldr s14, [pc, #112] ; 800e718 <DrawChannel_4+0x648>
800e6aa: eef4 7ac7 vcmpe.f32 s15, s14
800e6ae: eef1 fa10 vmrs APSR_nzcv, fpscr
800e6b2: d509 bpl.n 800e6c8 <DrawChannel_4+0x5f8>
{
out = pardata.amplif[ch].IKU + 12;
800e6b4: 79fb ldrb r3, [r7, #7]
800e6b6: 4a17 ldr r2, [pc, #92] ; (800e714 <DrawChannel_4+0x644>)
800e6b8: 015b lsls r3, r3, #5
800e6ba: 4413 add r3, r2
800e6bc: 3306 adds r3, #6
800e6be: 881b ldrh r3, [r3, #0]
800e6c0: b29b uxth r3, r3
800e6c2: 330c adds r3, #12
800e6c4: 633b str r3, [r7, #48] ; 0x30
800e6c6: e080 b.n 800e7ca <DrawChannel_4+0x6fa>
}
else
if((pardata.amplif[ch].SENS>=100.0f)&&(pardata.amplif[ch].SENS<1000.0f)) //0.05
800e6c8: 79fb ldrb r3, [r7, #7]
800e6ca: 4a12 ldr r2, [pc, #72] ; (800e714 <DrawChannel_4+0x644>)
800e6cc: 015b lsls r3, r3, #5
800e6ce: 4413 add r3, r2
800e6d0: 3318 adds r3, #24
800e6d2: edd3 7a00 vldr s15, [r3]
800e6d6: ed9f 7a10 vldr s14, [pc, #64] ; 800e718 <DrawChannel_4+0x648>
800e6da: eef4 7ac7 vcmpe.f32 s15, s14
800e6de: eef1 fa10 vmrs APSR_nzcv, fpscr
800e6e2: db27 blt.n 800e734 <DrawChannel_4+0x664>
800e6e4: 79fb ldrb r3, [r7, #7]
800e6e6: 4a0b ldr r2, [pc, #44] ; (800e714 <DrawChannel_4+0x644>)
800e6e8: 015b lsls r3, r3, #5
800e6ea: 4413 add r3, r2
800e6ec: 3318 adds r3, #24
800e6ee: edd3 7a00 vldr s15, [r3]
800e6f2: ed9f 7a0a vldr s14, [pc, #40] ; 800e71c <DrawChannel_4+0x64c>
800e6f6: eef4 7ac7 vcmpe.f32 s15, s14
800e6fa: eef1 fa10 vmrs APSR_nzcv, fpscr
800e6fe: d519 bpl.n 800e734 <DrawChannel_4+0x664>
{
out = pardata.amplif[ch].IKU + 15;
800e700: 79fb ldrb r3, [r7, #7]
800e702: 4a04 ldr r2, [pc, #16] ; (800e714 <DrawChannel_4+0x644>)
800e704: 015b lsls r3, r3, #5
800e706: 4413 add r3, r2
800e708: 3306 adds r3, #6
800e70a: 881b ldrh r3, [r3, #0]
800e70c: b29b uxth r3, r3
800e70e: 330f adds r3, #15
800e710: 633b str r3, [r7, #48] ; 0x30
800e712: e05a b.n 800e7ca <DrawChannel_4+0x6fa>
800e714: 2006bca8 .word 0x2006bca8
800e718: 42c80000 .word 0x42c80000
800e71c: 447a0000 .word 0x447a0000
800e720: 461c4000 .word 0x461c4000
800e724: 47c35000 .word 0x47c35000
800e728: 3a83126f .word 0x3a83126f
800e72c: 3c23d70a .word 0x3c23d70a
800e730: 3dcccccd .word 0x3dcccccd
}
else
if((pardata.amplif[ch].SENS >= 1000.0f)&&(pardata.amplif[ch].SENS<10000.0f)) //0.1
800e734: 79fb ldrb r3, [r7, #7]
800e736: 4ab8 ldr r2, [pc, #736] ; (800ea18 <DrawChannel_4+0x948>)
800e738: 015b lsls r3, r3, #5
800e73a: 4413 add r3, r2
800e73c: 3318 adds r3, #24
800e73e: edd3 7a00 vldr s15, [r3]
800e742: ed9f 7ab6 vldr s14, [pc, #728] ; 800ea1c <DrawChannel_4+0x94c>
800e746: eef4 7ac7 vcmpe.f32 s15, s14
800e74a: eef1 fa10 vmrs APSR_nzcv, fpscr
800e74e: db17 blt.n 800e780 <DrawChannel_4+0x6b0>
800e750: 79fb ldrb r3, [r7, #7]
800e752: 4ab1 ldr r2, [pc, #708] ; (800ea18 <DrawChannel_4+0x948>)
800e754: 015b lsls r3, r3, #5
800e756: 4413 add r3, r2
800e758: 3318 adds r3, #24
800e75a: edd3 7a00 vldr s15, [r3]
800e75e: ed9f 7ab0 vldr s14, [pc, #704] ; 800ea20 <DrawChannel_4+0x950>
800e762: eef4 7ac7 vcmpe.f32 s15, s14
800e766: eef1 fa10 vmrs APSR_nzcv, fpscr
800e76a: d509 bpl.n 800e780 <DrawChannel_4+0x6b0>
{
out = pardata.amplif[ch].IKU + 18;
800e76c: 79fb ldrb r3, [r7, #7]
800e76e: 4aaa ldr r2, [pc, #680] ; (800ea18 <DrawChannel_4+0x948>)
800e770: 015b lsls r3, r3, #5
800e772: 4413 add r3, r2
800e774: 3306 adds r3, #6
800e776: 881b ldrh r3, [r3, #0]
800e778: b29b uxth r3, r3
800e77a: 3312 adds r3, #18
800e77c: 633b str r3, [r7, #48] ; 0x30
800e77e: e024 b.n 800e7ca <DrawChannel_4+0x6fa>
}
else
if((pardata.amplif[ch].SENS >= 10000.0f)&&(pardata.amplif[ch].SENS < 100000.0f)) //0.2
800e780: 79fb ldrb r3, [r7, #7]
800e782: 4aa5 ldr r2, [pc, #660] ; (800ea18 <DrawChannel_4+0x948>)
800e784: 015b lsls r3, r3, #5
800e786: 4413 add r3, r2
800e788: 3318 adds r3, #24
800e78a: edd3 7a00 vldr s15, [r3]
800e78e: ed9f 7aa4 vldr s14, [pc, #656] ; 800ea20 <DrawChannel_4+0x950>
800e792: eef4 7ac7 vcmpe.f32 s15, s14
800e796: eef1 fa10 vmrs APSR_nzcv, fpscr
800e79a: db16 blt.n 800e7ca <DrawChannel_4+0x6fa>
800e79c: 79fb ldrb r3, [r7, #7]
800e79e: 4a9e ldr r2, [pc, #632] ; (800ea18 <DrawChannel_4+0x948>)
800e7a0: 015b lsls r3, r3, #5
800e7a2: 4413 add r3, r2
800e7a4: 3318 adds r3, #24
800e7a6: edd3 7a00 vldr s15, [r3]
800e7aa: ed9f 7a9e vldr s14, [pc, #632] ; 800ea24 <DrawChannel_4+0x954>
800e7ae: eef4 7ac7 vcmpe.f32 s15, s14
800e7b2: eef1 fa10 vmrs APSR_nzcv, fpscr
800e7b6: d508 bpl.n 800e7ca <DrawChannel_4+0x6fa>
{
out = pardata.amplif[ch].IKU + 21;
800e7b8: 79fb ldrb r3, [r7, #7]
800e7ba: 4a97 ldr r2, [pc, #604] ; (800ea18 <DrawChannel_4+0x948>)
800e7bc: 015b lsls r3, r3, #5
800e7be: 4413 add r3, r2
800e7c0: 3306 adds r3, #6
800e7c2: 881b ldrh r3, [r3, #0]
800e7c4: b29b uxth r3, r3
800e7c6: 3315 adds r3, #21
800e7c8: 633b str r3, [r7, #48] ; 0x30
}
LCD_SetColors(LCD_COLOR_ORANGE, LCD_COLOR_BLACK);
800e7ca: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e7ce: 4896 ldr r0, [pc, #600] ; (800ea28 <DrawChannel_4+0x958>)
800e7d0: f7f6 fafa bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_INPUT_4[ch], str, LEFT_MODE);
800e7d4: 79fb ldrb r3, [r7, #7]
800e7d6: 4a95 ldr r2, [pc, #596] ; (800ea2c <DrawChannel_4+0x95c>)
800e7d8: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800e7dc: 3305 adds r3, #5
800e7de: b298 uxth r0, r3
800e7e0: 79fb ldrb r3, [r7, #7]
800e7e2: 4a93 ldr r2, [pc, #588] ; (800ea30 <DrawChannel_4+0x960>)
800e7e4: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800e7e8: f107 0208 add.w r2, r7, #8
800e7ec: 2303 movs r3, #3
800e7ee: f7f6 fbb1 bl 8004f54 <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);
800e7f2: 79fb ldrb r3, [r7, #7]
800e7f4: 4a8d ldr r2, [pc, #564] ; (800ea2c <DrawChannel_4+0x95c>)
800e7f6: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800e7fa: 3332 adds r3, #50 ; 0x32
800e7fc: b298 uxth r0, r3
800e7fe: 79fb ldrb r3, [r7, #7]
800e800: 4a8b ldr r2, [pc, #556] ; (800ea30 <DrawChannel_4+0x960>)
800e802: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800e806: 4b84 ldr r3, [pc, #528] ; (800ea18 <DrawChannel_4+0x948>)
800e808: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800e80c: b29b uxth r3, r3
800e80e: 461d mov r5, r3
800e810: 79fb ldrb r3, [r7, #7]
800e812: 4a81 ldr r2, [pc, #516] ; (800ea18 <DrawChannel_4+0x948>)
800e814: 015b lsls r3, r3, #5
800e816: 4413 add r3, r2
800e818: 3312 adds r3, #18
800e81a: 881b ldrh r3, [r3, #0]
800e81c: b29b uxth r3, r3
800e81e: 005b lsls r3, r3, #1
800e820: 79fa ldrb r2, [r7, #7]
800e822: 497d ldr r1, [pc, #500] ; (800ea18 <DrawChannel_4+0x948>)
800e824: 0152 lsls r2, r2, #5
800e826: 440a add r2, r1
800e828: 8812 ldrh r2, [r2, #0]
800e82a: b292 uxth r2, r2
800e82c: 4413 add r3, r2
800e82e: 4981 ldr r1, [pc, #516] ; (800ea34 <DrawChannel_4+0x964>)
800e830: 012a lsls r2, r5, #4
800e832: 4413 add r3, r2
800e834: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800e838: 2303 movs r3, #3
800e83a: 4621 mov r1, r4
800e83c: f7f6 fb8a bl 8004f54 <BSP_LCD_DisplayStringAt>
//////////////////////////////////////////////////////////////////////////////////////////////
LCD_SetColors(LCD_COLOR_DARKCYAN, LCD_COLOR_BLACK);
800e840: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e844: 487c ldr r0, [pc, #496] ; (800ea38 <DrawChannel_4+0x968>)
800e846: f7f6 fabf bl 8004dc8 <LCD_SetColors>
if(ch < Ch3)
800e84a: 79fb ldrb r3, [r7, #7]
800e84c: 2b01 cmp r3, #1
800e84e: d81f bhi.n 800e890 <DrawChannel_4+0x7c0>
{
if(pardata.amplif[ch].IIN == CHARGE)
800e850: 79fb ldrb r3, [r7, #7]
800e852: 4a71 ldr r2, [pc, #452] ; (800ea18 <DrawChannel_4+0x948>)
800e854: 015b lsls r3, r3, #5
800e856: 4413 add r3, r2
800e858: 881b ldrh r3, [r3, #0]
800e85a: b29b uxth r3, r3
800e85c: 2b00 cmp r3, #0
800e85e: d10b bne.n 800e878 <DrawChannel_4+0x7a8>
BSP_LCD_DisplayStringAt(155, YPOS_KN_4[ch] + 3, "PE", RIGHT_MODE);
800e860: 79fb ldrb r3, [r7, #7]
800e862: 4a76 ldr r2, [pc, #472] ; (800ea3c <DrawChannel_4+0x96c>)
800e864: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800e868: 3303 adds r3, #3
800e86a: b299 uxth r1, r3
800e86c: 2302 movs r3, #2
800e86e: 4a74 ldr r2, [pc, #464] ; (800ea40 <DrawChannel_4+0x970>)
800e870: 209b movs r0, #155 ; 0x9b
800e872: f7f6 fb6f bl 8004f54 <BSP_LCD_DisplayStringAt>
800e876: e02c b.n 800e8d2 <DrawChannel_4+0x802>
else BSP_LCD_DisplayStringAt(155, YPOS_KN_4[ch] + 3, "IEPE", RIGHT_MODE);
800e878: 79fb ldrb r3, [r7, #7]
800e87a: 4a70 ldr r2, [pc, #448] ; (800ea3c <DrawChannel_4+0x96c>)
800e87c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800e880: 3303 adds r3, #3
800e882: b299 uxth r1, r3
800e884: 2302 movs r3, #2
800e886: 4a6f ldr r2, [pc, #444] ; (800ea44 <DrawChannel_4+0x974>)
800e888: 209b movs r0, #155 ; 0x9b
800e88a: f7f6 fb63 bl 8004f54 <BSP_LCD_DisplayStringAt>
800e88e: e020 b.n 800e8d2 <DrawChannel_4+0x802>
}
else
{
if(pardata.amplif[ch].IIN == CHARGE)
800e890: 79fb ldrb r3, [r7, #7]
800e892: 4a61 ldr r2, [pc, #388] ; (800ea18 <DrawChannel_4+0x948>)
800e894: 015b lsls r3, r3, #5
800e896: 4413 add r3, r2
800e898: 881b ldrh r3, [r3, #0]
800e89a: b29b uxth r3, r3
800e89c: 2b00 cmp r3, #0
800e89e: d10c bne.n 800e8ba <DrawChannel_4+0x7ea>
BSP_LCD_DisplayStringAt(155 + 160, YPOS_KN_4[ch] + 3, "PE", RIGHT_MODE);
800e8a0: 79fb ldrb r3, [r7, #7]
800e8a2: 4a66 ldr r2, [pc, #408] ; (800ea3c <DrawChannel_4+0x96c>)
800e8a4: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800e8a8: 3303 adds r3, #3
800e8aa: b299 uxth r1, r3
800e8ac: 2302 movs r3, #2
800e8ae: 4a64 ldr r2, [pc, #400] ; (800ea40 <DrawChannel_4+0x970>)
800e8b0: f240 103b movw r0, #315 ; 0x13b
800e8b4: f7f6 fb4e bl 8004f54 <BSP_LCD_DisplayStringAt>
800e8b8: e00b b.n 800e8d2 <DrawChannel_4+0x802>
else BSP_LCD_DisplayStringAt(155 + 160, YPOS_KN_4[ch] + 3, "IEPE", RIGHT_MODE);
800e8ba: 79fb ldrb r3, [r7, #7]
800e8bc: 4a5f ldr r2, [pc, #380] ; (800ea3c <DrawChannel_4+0x96c>)
800e8be: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800e8c2: 3303 adds r3, #3
800e8c4: b299 uxth r1, r3
800e8c6: 2302 movs r3, #2
800e8c8: 4a5e ldr r2, [pc, #376] ; (800ea44 <DrawChannel_4+0x974>)
800e8ca: f240 103b movw r0, #315 ; 0x13b
800e8ce: f7f6 fb41 bl 8004f54 <BSP_LCD_DisplayStringAt>
}
if(menupos == Hp)
800e8d2: 4b5d ldr r3, [pc, #372] ; (800ea48 <DrawChannel_4+0x978>)
800e8d4: 781b ldrb r3, [r3, #0]
800e8d6: b2db uxtb r3, r3
800e8d8: 2b00 cmp r3, #0
800e8da: f040 8176 bne.w 800ebca <DrawChannel_4+0xafa>
{
if(ACTIVE_CHANNEL == ch)
800e8de: 79fa ldrb r2, [r7, #7]
800e8e0: 4b5a ldr r3, [pc, #360] ; (800ea4c <DrawChannel_4+0x97c>)
800e8e2: 681b ldr r3, [r3, #0]
800e8e4: 429a cmp r2, r3
800e8e6: f040 80e8 bne.w 800eaba <DrawChannel_4+0x9ea>
{
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800e8ea: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e8ee: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800e8f2: f7f6 fa69 bl 8004dc8 <LCD_SetColors>
if(focused)
800e8f6: 4b56 ldr r3, [pc, #344] ; (800ea50 <DrawChannel_4+0x980>)
800e8f8: 781b ldrb r3, [r3, #0]
800e8fa: b2db uxtb r3, r3
800e8fc: 2b00 cmp r3, #0
800e8fe: d023 beq.n 800e948 <DrawChannel_4+0x878>
{
if(blk)
800e900: 683b ldr r3, [r7, #0]
800e902: 2b00 cmp r3, #0
800e904: d040 beq.n 800e988 <DrawChannel_4+0x8b8>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800e906: 79fb ldrb r3, [r7, #7]
800e908: 4a52 ldr r2, [pc, #328] ; (800ea54 <DrawChannel_4+0x984>)
800e90a: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800e90e: 79fb ldrb r3, [r7, #7]
800e910: 4a51 ldr r2, [pc, #324] ; (800ea58 <DrawChannel_4+0x988>)
800e912: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800e916: 4b40 ldr r3, [pc, #256] ; (800ea18 <DrawChannel_4+0x948>)
800e918: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800e91c: b29b uxth r3, r3
800e91e: 4619 mov r1, r3
800e920: 79fb ldrb r3, [r7, #7]
800e922: 4a3d ldr r2, [pc, #244] ; (800ea18 <DrawChannel_4+0x948>)
800e924: 015b lsls r3, r3, #5
800e926: 4413 add r3, r2
800e928: 3302 adds r3, #2
800e92a: 881b ldrh r3, [r3, #0]
800e92c: b29b uxth r3, r3
800e92e: 461d mov r5, r3
800e930: 4a4a ldr r2, [pc, #296] ; (800ea5c <DrawChannel_4+0x98c>)
800e932: 460b mov r3, r1
800e934: 009b lsls r3, r3, #2
800e936: 440b add r3, r1
800e938: 442b add r3, r5
800e93a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800e93e: 2303 movs r3, #3
800e940: 4621 mov r1, r4
800e942: f7f6 fb07 bl 8004f54 <BSP_LCD_DisplayStringAt>
800e946: e01f b.n 800e988 <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);
800e948: 79fb ldrb r3, [r7, #7]
800e94a: 4a42 ldr r2, [pc, #264] ; (800ea54 <DrawChannel_4+0x984>)
800e94c: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800e950: 79fb ldrb r3, [r7, #7]
800e952: 4a41 ldr r2, [pc, #260] ; (800ea58 <DrawChannel_4+0x988>)
800e954: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800e958: 4b2f ldr r3, [pc, #188] ; (800ea18 <DrawChannel_4+0x948>)
800e95a: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800e95e: b29b uxth r3, r3
800e960: 4619 mov r1, r3
800e962: 79fb ldrb r3, [r7, #7]
800e964: 4a2c ldr r2, [pc, #176] ; (800ea18 <DrawChannel_4+0x948>)
800e966: 015b lsls r3, r3, #5
800e968: 4413 add r3, r2
800e96a: 3302 adds r3, #2
800e96c: 881b ldrh r3, [r3, #0]
800e96e: b29b uxth r3, r3
800e970: 461d mov r5, r3
800e972: 4a3a ldr r2, [pc, #232] ; (800ea5c <DrawChannel_4+0x98c>)
800e974: 460b mov r3, r1
800e976: 009b lsls r3, r3, #2
800e978: 440b add r3, r1
800e97a: 442b add r3, r5
800e97c: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800e980: 2303 movs r3, #3
800e982: 4621 mov r1, r4
800e984: f7f6 fae6 bl 8004f54 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800e988: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800e98c: 4834 ldr r0, [pc, #208] ; (800ea60 <DrawChannel_4+0x990>)
800e98e: f7f6 fa1b bl 8004dc8 <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);
800e992: 79fb ldrb r3, [r7, #7]
800e994: 4a33 ldr r2, [pc, #204] ; (800ea64 <DrawChannel_4+0x994>)
800e996: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800e99a: 79fb ldrb r3, [r7, #7]
800e99c: 4a32 ldr r2, [pc, #200] ; (800ea68 <DrawChannel_4+0x998>)
800e99e: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800e9a2: 4b1d ldr r3, [pc, #116] ; (800ea18 <DrawChannel_4+0x948>)
800e9a4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800e9a8: b29b uxth r3, r3
800e9aa: 461d mov r5, r3
800e9ac: 79fb ldrb r3, [r7, #7]
800e9ae: 4a1a ldr r2, [pc, #104] ; (800ea18 <DrawChannel_4+0x948>)
800e9b0: 015b lsls r3, r3, #5
800e9b2: 4413 add r3, r2
800e9b4: 3304 adds r3, #4
800e9b6: 881b ldrh r3, [r3, #0]
800e9b8: b29b uxth r3, r3
800e9ba: 461c mov r4, r3
800e9bc: 4a2b ldr r2, [pc, #172] ; (800ea6c <DrawChannel_4+0x99c>)
800e9be: 00eb lsls r3, r5, #3
800e9c0: 4423 add r3, r4
800e9c2: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800e9c6: 2303 movs r3, #3
800e9c8: f7f6 fac4 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(pardata.LANG == RUS)
800e9cc: 4b12 ldr r3, [pc, #72] ; (800ea18 <DrawChannel_4+0x948>)
800e9ce: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800e9d2: b29b uxth r3, r3
800e9d4: 2b00 cmp r3, #0
800e9d6: d14f bne.n 800ea78 <DrawChannel_4+0x9a8>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800e9d8: 79fb ldrb r3, [r7, #7]
800e9da: 4a14 ldr r2, [pc, #80] ; (800ea2c <DrawChannel_4+0x95c>)
800e9dc: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800e9e0: 3305 adds r3, #5
800e9e2: b298 uxth r0, r3
800e9e4: 79fb ldrb r3, [r7, #7]
800e9e6: 4a22 ldr r2, [pc, #136] ; (800ea70 <DrawChannel_4+0x9a0>)
800e9e8: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800e9ec: 79fb ldrb r3, [r7, #7]
800e9ee: 4a0a ldr r2, [pc, #40] ; (800ea18 <DrawChannel_4+0x948>)
800e9f0: 015b lsls r3, r3, #5
800e9f2: 4413 add r3, r2
800e9f4: 3312 adds r3, #18
800e9f6: 881b ldrh r3, [r3, #0]
800e9f8: b29b uxth r3, r3
800e9fa: 461a mov r2, r3
800e9fc: 491d ldr r1, [pc, #116] ; (800ea74 <DrawChannel_4+0x9a4>)
800e9fe: 4613 mov r3, r2
800ea00: 015b lsls r3, r3, #5
800ea02: 4413 add r3, r2
800ea04: 6b3a ldr r2, [r7, #48] ; 0x30
800ea06: 4413 add r3, r2
800ea08: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800ea0c: 2303 movs r3, #3
800ea0e: 4621 mov r1, r4
800ea10: f7f6 faa0 bl 8004f54 <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);
}
}
}
800ea14: e3cf b.n 800f1b6 <DrawChannel_4+0x10e6>
800ea16: bf00 nop
800ea18: 2006bca8 .word 0x2006bca8
800ea1c: 447a0000 .word 0x447a0000
800ea20: 461c4000 .word 0x461c4000
800ea24: 47c35000 .word 0x47c35000
800ea28: ffffa500 .word 0xffffa500
800ea2c: 0801ae10 .word 0x0801ae10
800ea30: 0801ae18 .word 0x0801ae18
800ea34: 200200bc .word 0x200200bc
800ea38: ff008080 .word 0xff008080
800ea3c: 0801ae48 .word 0x0801ae48
800ea40: 0801815c .word 0x0801815c
800ea44: 08018160 .word 0x08018160
800ea48: 20020010 .word 0x20020010
800ea4c: 2006ba68 .word 0x2006ba68
800ea50: 200209e4 .word 0x200209e4
800ea54: 0801ae20 .word 0x0801ae20
800ea58: 0801ae28 .word 0x0801ae28
800ea5c: 20020054 .word 0x20020054
800ea60: ffd8aa57 .word 0xffd8aa57
800ea64: 0801ae30 .word 0x0801ae30
800ea68: 0801ae38 .word 0x0801ae38
800ea6c: 2002007c .word 0x2002007c
800ea70: 0801ae40 .word 0x0801ae40
800ea74: 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);
800ea78: 79fb ldrb r3, [r7, #7]
800ea7a: 4ab4 ldr r2, [pc, #720] ; (800ed4c <DrawChannel_4+0xc7c>)
800ea7c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ea80: 3b09 subs r3, #9
800ea82: b298 uxth r0, r3
800ea84: 79fb ldrb r3, [r7, #7]
800ea86: 4ab2 ldr r2, [pc, #712] ; (800ed50 <DrawChannel_4+0xc80>)
800ea88: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ea8c: 79fb ldrb r3, [r7, #7]
800ea8e: 4ab1 ldr r2, [pc, #708] ; (800ed54 <DrawChannel_4+0xc84>)
800ea90: 015b lsls r3, r3, #5
800ea92: 4413 add r3, r2
800ea94: 3312 adds r3, #18
800ea96: 881b ldrh r3, [r3, #0]
800ea98: b29b uxth r3, r3
800ea9a: 461a mov r2, r3
800ea9c: 49ae ldr r1, [pc, #696] ; (800ed58 <DrawChannel_4+0xc88>)
800ea9e: 4613 mov r3, r2
800eaa0: 009b lsls r3, r3, #2
800eaa2: 4413 add r3, r2
800eaa4: 009a lsls r2, r3, #2
800eaa6: 4413 add r3, r2
800eaa8: 6b3a ldr r2, [r7, #48] ; 0x30
800eaaa: 4413 add r3, r2
800eaac: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800eab0: 2303 movs r3, #3
800eab2: 4621 mov r1, r4
800eab4: f7f6 fa4e bl 8004f54 <BSP_LCD_DisplayStringAt>
}
800eab8: e37d b.n 800f1b6 <DrawChannel_4+0x10e6>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800eaba: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800eabe: 48a7 ldr r0, [pc, #668] ; (800ed5c <DrawChannel_4+0xc8c>)
800eac0: f7f6 f982 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800eac4: 79fb ldrb r3, [r7, #7]
800eac6: 4aa6 ldr r2, [pc, #664] ; (800ed60 <DrawChannel_4+0xc90>)
800eac8: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800eacc: 79fb ldrb r3, [r7, #7]
800eace: 4aa5 ldr r2, [pc, #660] ; (800ed64 <DrawChannel_4+0xc94>)
800ead0: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ead4: 4b9f ldr r3, [pc, #636] ; (800ed54 <DrawChannel_4+0xc84>)
800ead6: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800eada: b29b uxth r3, r3
800eadc: 4619 mov r1, r3
800eade: 79fb ldrb r3, [r7, #7]
800eae0: 4a9c ldr r2, [pc, #624] ; (800ed54 <DrawChannel_4+0xc84>)
800eae2: 015b lsls r3, r3, #5
800eae4: 4413 add r3, r2
800eae6: 3302 adds r3, #2
800eae8: 881b ldrh r3, [r3, #0]
800eaea: b29b uxth r3, r3
800eaec: 461d mov r5, r3
800eaee: 4a9e ldr r2, [pc, #632] ; (800ed68 <DrawChannel_4+0xc98>)
800eaf0: 460b mov r3, r1
800eaf2: 009b lsls r3, r3, #2
800eaf4: 440b add r3, r1
800eaf6: 442b add r3, r5
800eaf8: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800eafc: 2303 movs r3, #3
800eafe: 4621 mov r1, r4
800eb00: f7f6 fa28 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800eb04: 79fb ldrb r3, [r7, #7]
800eb06: 4a99 ldr r2, [pc, #612] ; (800ed6c <DrawChannel_4+0xc9c>)
800eb08: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800eb0c: 79fb ldrb r3, [r7, #7]
800eb0e: 4a98 ldr r2, [pc, #608] ; (800ed70 <DrawChannel_4+0xca0>)
800eb10: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800eb14: 4b8f ldr r3, [pc, #572] ; (800ed54 <DrawChannel_4+0xc84>)
800eb16: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800eb1a: b29b uxth r3, r3
800eb1c: 461d mov r5, r3
800eb1e: 79fb ldrb r3, [r7, #7]
800eb20: 4a8c ldr r2, [pc, #560] ; (800ed54 <DrawChannel_4+0xc84>)
800eb22: 015b lsls r3, r3, #5
800eb24: 4413 add r3, r2
800eb26: 3304 adds r3, #4
800eb28: 881b ldrh r3, [r3, #0]
800eb2a: b29b uxth r3, r3
800eb2c: 461c mov r4, r3
800eb2e: 4a91 ldr r2, [pc, #580] ; (800ed74 <DrawChannel_4+0xca4>)
800eb30: 00eb lsls r3, r5, #3
800eb32: 4423 add r3, r4
800eb34: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800eb38: 2303 movs r3, #3
800eb3a: f7f6 fa0b bl 8004f54 <BSP_LCD_DisplayStringAt>
if(pardata.LANG == RUS)
800eb3e: 4b85 ldr r3, [pc, #532] ; (800ed54 <DrawChannel_4+0xc84>)
800eb40: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800eb44: b29b uxth r3, r3
800eb46: 2b00 cmp r3, #0
800eb48: d11e bne.n 800eb88 <DrawChannel_4+0xab8>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800eb4a: 79fb ldrb r3, [r7, #7]
800eb4c: 4a7f ldr r2, [pc, #508] ; (800ed4c <DrawChannel_4+0xc7c>)
800eb4e: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800eb52: 3305 adds r3, #5
800eb54: b298 uxth r0, r3
800eb56: 79fb ldrb r3, [r7, #7]
800eb58: 4a7d ldr r2, [pc, #500] ; (800ed50 <DrawChannel_4+0xc80>)
800eb5a: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800eb5e: 79fb ldrb r3, [r7, #7]
800eb60: 4a7c ldr r2, [pc, #496] ; (800ed54 <DrawChannel_4+0xc84>)
800eb62: 015b lsls r3, r3, #5
800eb64: 4413 add r3, r2
800eb66: 3312 adds r3, #18
800eb68: 881b ldrh r3, [r3, #0]
800eb6a: b29b uxth r3, r3
800eb6c: 461a mov r2, r3
800eb6e: 4982 ldr r1, [pc, #520] ; (800ed78 <DrawChannel_4+0xca8>)
800eb70: 4613 mov r3, r2
800eb72: 015b lsls r3, r3, #5
800eb74: 4413 add r3, r2
800eb76: 6b3a ldr r2, [r7, #48] ; 0x30
800eb78: 4413 add r3, r2
800eb7a: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800eb7e: 2303 movs r3, #3
800eb80: 4621 mov r1, r4
800eb82: f7f6 f9e7 bl 8004f54 <BSP_LCD_DisplayStringAt>
}
800eb86: e316 b.n 800f1b6 <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);
800eb88: 79fb ldrb r3, [r7, #7]
800eb8a: 4a70 ldr r2, [pc, #448] ; (800ed4c <DrawChannel_4+0xc7c>)
800eb8c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800eb90: 3b09 subs r3, #9
800eb92: b298 uxth r0, r3
800eb94: 79fb ldrb r3, [r7, #7]
800eb96: 4a6e ldr r2, [pc, #440] ; (800ed50 <DrawChannel_4+0xc80>)
800eb98: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800eb9c: 79fb ldrb r3, [r7, #7]
800eb9e: 4a6d ldr r2, [pc, #436] ; (800ed54 <DrawChannel_4+0xc84>)
800eba0: 015b lsls r3, r3, #5
800eba2: 4413 add r3, r2
800eba4: 3312 adds r3, #18
800eba6: 881b ldrh r3, [r3, #0]
800eba8: b29b uxth r3, r3
800ebaa: 461a mov r2, r3
800ebac: 496a ldr r1, [pc, #424] ; (800ed58 <DrawChannel_4+0xc88>)
800ebae: 4613 mov r3, r2
800ebb0: 009b lsls r3, r3, #2
800ebb2: 4413 add r3, r2
800ebb4: 009a lsls r2, r3, #2
800ebb6: 4413 add r3, r2
800ebb8: 6b3a ldr r2, [r7, #48] ; 0x30
800ebba: 4413 add r3, r2
800ebbc: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800ebc0: 2303 movs r3, #3
800ebc2: 4621 mov r1, r4
800ebc4: f7f6 f9c6 bl 8004f54 <BSP_LCD_DisplayStringAt>
}
800ebc8: e2f5 b.n 800f1b6 <DrawChannel_4+0x10e6>
if(menupos == Lp)
800ebca: 4b6c ldr r3, [pc, #432] ; (800ed7c <DrawChannel_4+0xcac>)
800ebcc: 781b ldrb r3, [r3, #0]
800ebce: b2db uxtb r3, r3
800ebd0: 2b01 cmp r3, #1
800ebd2: f040 8161 bne.w 800ee98 <DrawChannel_4+0xdc8>
if(ACTIVE_CHANNEL == ch)
800ebd6: 79fa ldrb r2, [r7, #7]
800ebd8: 4b69 ldr r3, [pc, #420] ; (800ed80 <DrawChannel_4+0xcb0>)
800ebda: 681b ldr r3, [r3, #0]
800ebdc: 429a cmp r2, r3
800ebde: f040 80d3 bne.w 800ed88 <DrawChannel_4+0xcb8>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800ebe2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800ebe6: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800ebea: f7f6 f8ed bl 8004dc8 <LCD_SetColors>
if(focused)
800ebee: 4b65 ldr r3, [pc, #404] ; (800ed84 <DrawChannel_4+0xcb4>)
800ebf0: 781b ldrb r3, [r3, #0]
800ebf2: b2db uxtb r3, r3
800ebf4: 2b00 cmp r3, #0
800ebf6: d020 beq.n 800ec3a <DrawChannel_4+0xb6a>
if(blk)
800ebf8: 683b ldr r3, [r7, #0]
800ebfa: 2b00 cmp r3, #0
800ebfc: d03a beq.n 800ec74 <DrawChannel_4+0xba4>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800ebfe: 79fb ldrb r3, [r7, #7]
800ec00: 4a5a ldr r2, [pc, #360] ; (800ed6c <DrawChannel_4+0xc9c>)
800ec02: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800ec06: 79fb ldrb r3, [r7, #7]
800ec08: 4a59 ldr r2, [pc, #356] ; (800ed70 <DrawChannel_4+0xca0>)
800ec0a: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800ec0e: 4b51 ldr r3, [pc, #324] ; (800ed54 <DrawChannel_4+0xc84>)
800ec10: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ec14: b29b uxth r3, r3
800ec16: 461d mov r5, r3
800ec18: 79fb ldrb r3, [r7, #7]
800ec1a: 4a4e ldr r2, [pc, #312] ; (800ed54 <DrawChannel_4+0xc84>)
800ec1c: 015b lsls r3, r3, #5
800ec1e: 4413 add r3, r2
800ec20: 3304 adds r3, #4
800ec22: 881b ldrh r3, [r3, #0]
800ec24: b29b uxth r3, r3
800ec26: 461c mov r4, r3
800ec28: 4a52 ldr r2, [pc, #328] ; (800ed74 <DrawChannel_4+0xca4>)
800ec2a: 00eb lsls r3, r5, #3
800ec2c: 4423 add r3, r4
800ec2e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800ec32: 2303 movs r3, #3
800ec34: f7f6 f98e bl 8004f54 <BSP_LCD_DisplayStringAt>
800ec38: e01c b.n 800ec74 <DrawChannel_4+0xba4>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800ec3a: 79fb ldrb r3, [r7, #7]
800ec3c: 4a4b ldr r2, [pc, #300] ; (800ed6c <DrawChannel_4+0xc9c>)
800ec3e: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800ec42: 79fb ldrb r3, [r7, #7]
800ec44: 4a4a ldr r2, [pc, #296] ; (800ed70 <DrawChannel_4+0xca0>)
800ec46: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800ec4a: 4b42 ldr r3, [pc, #264] ; (800ed54 <DrawChannel_4+0xc84>)
800ec4c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ec50: b29b uxth r3, r3
800ec52: 461d mov r5, r3
800ec54: 79fb ldrb r3, [r7, #7]
800ec56: 4a3f ldr r2, [pc, #252] ; (800ed54 <DrawChannel_4+0xc84>)
800ec58: 015b lsls r3, r3, #5
800ec5a: 4413 add r3, r2
800ec5c: 3304 adds r3, #4
800ec5e: 881b ldrh r3, [r3, #0]
800ec60: b29b uxth r3, r3
800ec62: 461c mov r4, r3
800ec64: 4a43 ldr r2, [pc, #268] ; (800ed74 <DrawChannel_4+0xca4>)
800ec66: 00eb lsls r3, r5, #3
800ec68: 4423 add r3, r4
800ec6a: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800ec6e: 2303 movs r3, #3
800ec70: f7f6 f970 bl 8004f54 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800ec74: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800ec78: 4838 ldr r0, [pc, #224] ; (800ed5c <DrawChannel_4+0xc8c>)
800ec7a: f7f6 f8a5 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800ec7e: 79fb ldrb r3, [r7, #7]
800ec80: 4a37 ldr r2, [pc, #220] ; (800ed60 <DrawChannel_4+0xc90>)
800ec82: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800ec86: 79fb ldrb r3, [r7, #7]
800ec88: 4a36 ldr r2, [pc, #216] ; (800ed64 <DrawChannel_4+0xc94>)
800ec8a: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ec8e: 4b31 ldr r3, [pc, #196] ; (800ed54 <DrawChannel_4+0xc84>)
800ec90: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ec94: b29b uxth r3, r3
800ec96: 4619 mov r1, r3
800ec98: 79fb ldrb r3, [r7, #7]
800ec9a: 4a2e ldr r2, [pc, #184] ; (800ed54 <DrawChannel_4+0xc84>)
800ec9c: 015b lsls r3, r3, #5
800ec9e: 4413 add r3, r2
800eca0: 3302 adds r3, #2
800eca2: 881b ldrh r3, [r3, #0]
800eca4: b29b uxth r3, r3
800eca6: 461d mov r5, r3
800eca8: 4a2f ldr r2, [pc, #188] ; (800ed68 <DrawChannel_4+0xc98>)
800ecaa: 460b mov r3, r1
800ecac: 009b lsls r3, r3, #2
800ecae: 440b add r3, r1
800ecb0: 442b add r3, r5
800ecb2: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800ecb6: 2303 movs r3, #3
800ecb8: 4621 mov r1, r4
800ecba: f7f6 f94b bl 8004f54 <BSP_LCD_DisplayStringAt>
if(pardata.LANG == RUS)
800ecbe: 4b25 ldr r3, [pc, #148] ; (800ed54 <DrawChannel_4+0xc84>)
800ecc0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ecc4: b29b uxth r3, r3
800ecc6: 2b00 cmp r3, #0
800ecc8: d11e bne.n 800ed08 <DrawChannel_4+0xc38>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800ecca: 79fb ldrb r3, [r7, #7]
800eccc: 4a1f ldr r2, [pc, #124] ; (800ed4c <DrawChannel_4+0xc7c>)
800ecce: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ecd2: 3305 adds r3, #5
800ecd4: b298 uxth r0, r3
800ecd6: 79fb ldrb r3, [r7, #7]
800ecd8: 4a1d ldr r2, [pc, #116] ; (800ed50 <DrawChannel_4+0xc80>)
800ecda: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ecde: 79fb ldrb r3, [r7, #7]
800ece0: 4a1c ldr r2, [pc, #112] ; (800ed54 <DrawChannel_4+0xc84>)
800ece2: 015b lsls r3, r3, #5
800ece4: 4413 add r3, r2
800ece6: 3312 adds r3, #18
800ece8: 881b ldrh r3, [r3, #0]
800ecea: b29b uxth r3, r3
800ecec: 461a mov r2, r3
800ecee: 4922 ldr r1, [pc, #136] ; (800ed78 <DrawChannel_4+0xca8>)
800ecf0: 4613 mov r3, r2
800ecf2: 015b lsls r3, r3, #5
800ecf4: 4413 add r3, r2
800ecf6: 6b3a ldr r2, [r7, #48] ; 0x30
800ecf8: 4413 add r3, r2
800ecfa: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800ecfe: 2303 movs r3, #3
800ed00: 4621 mov r1, r4
800ed02: f7f6 f927 bl 8004f54 <BSP_LCD_DisplayStringAt>
}
800ed06: e256 b.n 800f1b6 <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);
800ed08: 79fb ldrb r3, [r7, #7]
800ed0a: 4a10 ldr r2, [pc, #64] ; (800ed4c <DrawChannel_4+0xc7c>)
800ed0c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ed10: 3b09 subs r3, #9
800ed12: b298 uxth r0, r3
800ed14: 79fb ldrb r3, [r7, #7]
800ed16: 4a0e ldr r2, [pc, #56] ; (800ed50 <DrawChannel_4+0xc80>)
800ed18: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ed1c: 79fb ldrb r3, [r7, #7]
800ed1e: 4a0d ldr r2, [pc, #52] ; (800ed54 <DrawChannel_4+0xc84>)
800ed20: 015b lsls r3, r3, #5
800ed22: 4413 add r3, r2
800ed24: 3312 adds r3, #18
800ed26: 881b ldrh r3, [r3, #0]
800ed28: b29b uxth r3, r3
800ed2a: 461a mov r2, r3
800ed2c: 490a ldr r1, [pc, #40] ; (800ed58 <DrawChannel_4+0xc88>)
800ed2e: 4613 mov r3, r2
800ed30: 009b lsls r3, r3, #2
800ed32: 4413 add r3, r2
800ed34: 009a lsls r2, r3, #2
800ed36: 4413 add r3, r2
800ed38: 6b3a ldr r2, [r7, #48] ; 0x30
800ed3a: 4413 add r3, r2
800ed3c: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800ed40: 2303 movs r3, #3
800ed42: 4621 mov r1, r4
800ed44: f7f6 f906 bl 8004f54 <BSP_LCD_DisplayStringAt>
}
800ed48: e235 b.n 800f1b6 <DrawChannel_4+0x10e6>
800ed4a: bf00 nop
800ed4c: 0801ae10 .word 0x0801ae10
800ed50: 0801ae40 .word 0x0801ae40
800ed54: 2006bca8 .word 0x2006bca8
800ed58: 200205e0 .word 0x200205e0
800ed5c: ffd8aa57 .word 0xffd8aa57
800ed60: 0801ae20 .word 0x0801ae20
800ed64: 0801ae28 .word 0x0801ae28
800ed68: 20020054 .word 0x20020054
800ed6c: 0801ae30 .word 0x0801ae30
800ed70: 0801ae38 .word 0x0801ae38
800ed74: 2002007c .word 0x2002007c
800ed78: 2002013c .word 0x2002013c
800ed7c: 20020010 .word 0x20020010
800ed80: 2006ba68 .word 0x2006ba68
800ed84: 200209e4 .word 0x200209e4
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800ed88: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800ed8c: 48b7 ldr r0, [pc, #732] ; (800f06c <DrawChannel_4+0xf9c>)
800ed8e: f7f6 f81b bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800ed92: 79fb ldrb r3, [r7, #7]
800ed94: 4ab6 ldr r2, [pc, #728] ; (800f070 <DrawChannel_4+0xfa0>)
800ed96: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800ed9a: 79fb ldrb r3, [r7, #7]
800ed9c: 4ab5 ldr r2, [pc, #724] ; (800f074 <DrawChannel_4+0xfa4>)
800ed9e: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800eda2: 4bb5 ldr r3, [pc, #724] ; (800f078 <DrawChannel_4+0xfa8>)
800eda4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800eda8: b29b uxth r3, r3
800edaa: 4619 mov r1, r3
800edac: 79fb ldrb r3, [r7, #7]
800edae: 4ab2 ldr r2, [pc, #712] ; (800f078 <DrawChannel_4+0xfa8>)
800edb0: 015b lsls r3, r3, #5
800edb2: 4413 add r3, r2
800edb4: 3302 adds r3, #2
800edb6: 881b ldrh r3, [r3, #0]
800edb8: b29b uxth r3, r3
800edba: 461d mov r5, r3
800edbc: 4aaf ldr r2, [pc, #700] ; (800f07c <DrawChannel_4+0xfac>)
800edbe: 460b mov r3, r1
800edc0: 009b lsls r3, r3, #2
800edc2: 440b add r3, r1
800edc4: 442b add r3, r5
800edc6: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800edca: 2303 movs r3, #3
800edcc: 4621 mov r1, r4
800edce: f7f6 f8c1 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800edd2: 79fb ldrb r3, [r7, #7]
800edd4: 4aaa ldr r2, [pc, #680] ; (800f080 <DrawChannel_4+0xfb0>)
800edd6: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800edda: 79fb ldrb r3, [r7, #7]
800eddc: 4aa9 ldr r2, [pc, #676] ; (800f084 <DrawChannel_4+0xfb4>)
800edde: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800ede2: 4ba5 ldr r3, [pc, #660] ; (800f078 <DrawChannel_4+0xfa8>)
800ede4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ede8: b29b uxth r3, r3
800edea: 461d mov r5, r3
800edec: 79fb ldrb r3, [r7, #7]
800edee: 4aa2 ldr r2, [pc, #648] ; (800f078 <DrawChannel_4+0xfa8>)
800edf0: 015b lsls r3, r3, #5
800edf2: 4413 add r3, r2
800edf4: 3304 adds r3, #4
800edf6: 881b ldrh r3, [r3, #0]
800edf8: b29b uxth r3, r3
800edfa: 461c mov r4, r3
800edfc: 4aa2 ldr r2, [pc, #648] ; (800f088 <DrawChannel_4+0xfb8>)
800edfe: 00eb lsls r3, r5, #3
800ee00: 4423 add r3, r4
800ee02: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800ee06: 2303 movs r3, #3
800ee08: f7f6 f8a4 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(pardata.LANG == RUS)
800ee0c: 4b9a ldr r3, [pc, #616] ; (800f078 <DrawChannel_4+0xfa8>)
800ee0e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ee12: b29b uxth r3, r3
800ee14: 2b00 cmp r3, #0
800ee16: d11e bne.n 800ee56 <DrawChannel_4+0xd86>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800ee18: 79fb ldrb r3, [r7, #7]
800ee1a: 4a9c ldr r2, [pc, #624] ; (800f08c <DrawChannel_4+0xfbc>)
800ee1c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ee20: 3305 adds r3, #5
800ee22: b298 uxth r0, r3
800ee24: 79fb ldrb r3, [r7, #7]
800ee26: 4a9a ldr r2, [pc, #616] ; (800f090 <DrawChannel_4+0xfc0>)
800ee28: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ee2c: 79fb ldrb r3, [r7, #7]
800ee2e: 4a92 ldr r2, [pc, #584] ; (800f078 <DrawChannel_4+0xfa8>)
800ee30: 015b lsls r3, r3, #5
800ee32: 4413 add r3, r2
800ee34: 3312 adds r3, #18
800ee36: 881b ldrh r3, [r3, #0]
800ee38: b29b uxth r3, r3
800ee3a: 461a mov r2, r3
800ee3c: 4995 ldr r1, [pc, #596] ; (800f094 <DrawChannel_4+0xfc4>)
800ee3e: 4613 mov r3, r2
800ee40: 015b lsls r3, r3, #5
800ee42: 4413 add r3, r2
800ee44: 6b3a ldr r2, [r7, #48] ; 0x30
800ee46: 4413 add r3, r2
800ee48: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800ee4c: 2303 movs r3, #3
800ee4e: 4621 mov r1, r4
800ee50: f7f6 f880 bl 8004f54 <BSP_LCD_DisplayStringAt>
}
800ee54: e1af b.n 800f1b6 <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);
800ee56: 79fb ldrb r3, [r7, #7]
800ee58: 4a8c ldr r2, [pc, #560] ; (800f08c <DrawChannel_4+0xfbc>)
800ee5a: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ee5e: 3b09 subs r3, #9
800ee60: b298 uxth r0, r3
800ee62: 79fb ldrb r3, [r7, #7]
800ee64: 4a8a ldr r2, [pc, #552] ; (800f090 <DrawChannel_4+0xfc0>)
800ee66: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ee6a: 79fb ldrb r3, [r7, #7]
800ee6c: 4a82 ldr r2, [pc, #520] ; (800f078 <DrawChannel_4+0xfa8>)
800ee6e: 015b lsls r3, r3, #5
800ee70: 4413 add r3, r2
800ee72: 3312 adds r3, #18
800ee74: 881b ldrh r3, [r3, #0]
800ee76: b29b uxth r3, r3
800ee78: 461a mov r2, r3
800ee7a: 4987 ldr r1, [pc, #540] ; (800f098 <DrawChannel_4+0xfc8>)
800ee7c: 4613 mov r3, r2
800ee7e: 009b lsls r3, r3, #2
800ee80: 4413 add r3, r2
800ee82: 009a lsls r2, r3, #2
800ee84: 4413 add r3, r2
800ee86: 6b3a ldr r2, [r7, #48] ; 0x30
800ee88: 4413 add r3, r2
800ee8a: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800ee8e: 2303 movs r3, #3
800ee90: 4621 mov r1, r4
800ee92: f7f6 f85f bl 8004f54 <BSP_LCD_DisplayStringAt>
}
800ee96: e18e b.n 800f1b6 <DrawChannel_4+0x10e6>
if(menupos == Out)
800ee98: 4b80 ldr r3, [pc, #512] ; (800f09c <DrawChannel_4+0xfcc>)
800ee9a: 781b ldrb r3, [r3, #0]
800ee9c: b2db uxtb r3, r3
800ee9e: 2b02 cmp r3, #2
800eea0: f040 8189 bne.w 800f1b6 <DrawChannel_4+0x10e6>
if(ACTIVE_CHANNEL == ch)
800eea4: 79fa ldrb r2, [r7, #7]
800eea6: 4b7e ldr r3, [pc, #504] ; (800f0a0 <DrawChannel_4+0xfd0>)
800eea8: 681b ldr r3, [r3, #0]
800eeaa: 429a cmp r2, r3
800eeac: f040 80fc bne.w 800f0a8 <DrawChannel_4+0xfd8>
LCD_SetColors(LCD_COLOR_GREEN, LCD_COLOR_BLACK);
800eeb0: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800eeb4: f04f 20ff mov.w r0, #4278255360 ; 0xff00ff00
800eeb8: f7f5 ff86 bl 8004dc8 <LCD_SetColors>
if(focused)
800eebc: 4b79 ldr r3, [pc, #484] ; (800f0a4 <DrawChannel_4+0xfd4>)
800eebe: 781b ldrb r3, [r3, #0]
800eec0: b2db uxtb r3, r3
800eec2: 2b00 cmp r3, #0
800eec4: d049 beq.n 800ef5a <DrawChannel_4+0xe8a>
if(blk)
800eec6: 683b ldr r3, [r7, #0]
800eec8: 2b00 cmp r3, #0
800eeca: f000 808b beq.w 800efe4 <DrawChannel_4+0xf14>
if(pardata.LANG == RUS)
800eece: 4b6a ldr r3, [pc, #424] ; (800f078 <DrawChannel_4+0xfa8>)
800eed0: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800eed4: b29b uxth r3, r3
800eed6: 2b00 cmp r3, #0
800eed8: d11e bne.n 800ef18 <DrawChannel_4+0xe48>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800eeda: 79fb ldrb r3, [r7, #7]
800eedc: 4a6b ldr r2, [pc, #428] ; (800f08c <DrawChannel_4+0xfbc>)
800eede: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800eee2: 3305 adds r3, #5
800eee4: b298 uxth r0, r3
800eee6: 79fb ldrb r3, [r7, #7]
800eee8: 4a69 ldr r2, [pc, #420] ; (800f090 <DrawChannel_4+0xfc0>)
800eeea: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800eeee: 79fb ldrb r3, [r7, #7]
800eef0: 4a61 ldr r2, [pc, #388] ; (800f078 <DrawChannel_4+0xfa8>)
800eef2: 015b lsls r3, r3, #5
800eef4: 4413 add r3, r2
800eef6: 3312 adds r3, #18
800eef8: 881b ldrh r3, [r3, #0]
800eefa: b29b uxth r3, r3
800eefc: 461a mov r2, r3
800eefe: 4965 ldr r1, [pc, #404] ; (800f094 <DrawChannel_4+0xfc4>)
800ef00: 4613 mov r3, r2
800ef02: 015b lsls r3, r3, #5
800ef04: 4413 add r3, r2
800ef06: 6b3a ldr r2, [r7, #48] ; 0x30
800ef08: 4413 add r3, r2
800ef0a: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800ef0e: 2303 movs r3, #3
800ef10: 4621 mov r1, r4
800ef12: f7f6 f81f bl 8004f54 <BSP_LCD_DisplayStringAt>
800ef16: e065 b.n 800efe4 <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);
800ef18: 79fb ldrb r3, [r7, #7]
800ef1a: 4a5c ldr r2, [pc, #368] ; (800f08c <DrawChannel_4+0xfbc>)
800ef1c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ef20: 3b09 subs r3, #9
800ef22: b298 uxth r0, r3
800ef24: 79fb ldrb r3, [r7, #7]
800ef26: 4a5a ldr r2, [pc, #360] ; (800f090 <DrawChannel_4+0xfc0>)
800ef28: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ef2c: 79fb ldrb r3, [r7, #7]
800ef2e: 4a52 ldr r2, [pc, #328] ; (800f078 <DrawChannel_4+0xfa8>)
800ef30: 015b lsls r3, r3, #5
800ef32: 4413 add r3, r2
800ef34: 3312 adds r3, #18
800ef36: 881b ldrh r3, [r3, #0]
800ef38: b29b uxth r3, r3
800ef3a: 461a mov r2, r3
800ef3c: 4956 ldr r1, [pc, #344] ; (800f098 <DrawChannel_4+0xfc8>)
800ef3e: 4613 mov r3, r2
800ef40: 009b lsls r3, r3, #2
800ef42: 4413 add r3, r2
800ef44: 009a lsls r2, r3, #2
800ef46: 4413 add r3, r2
800ef48: 6b3a ldr r2, [r7, #48] ; 0x30
800ef4a: 4413 add r3, r2
800ef4c: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800ef50: 2303 movs r3, #3
800ef52: 4621 mov r1, r4
800ef54: f7f5 fffe bl 8004f54 <BSP_LCD_DisplayStringAt>
800ef58: e044 b.n 800efe4 <DrawChannel_4+0xf14>
if(pardata.LANG == RUS)
800ef5a: 4b47 ldr r3, [pc, #284] ; (800f078 <DrawChannel_4+0xfa8>)
800ef5c: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800ef60: b29b uxth r3, r3
800ef62: 2b00 cmp r3, #0
800ef64: d11e bne.n 800efa4 <DrawChannel_4+0xed4>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800ef66: 79fb ldrb r3, [r7, #7]
800ef68: 4a48 ldr r2, [pc, #288] ; (800f08c <DrawChannel_4+0xfbc>)
800ef6a: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800ef6e: 3305 adds r3, #5
800ef70: b298 uxth r0, r3
800ef72: 79fb ldrb r3, [r7, #7]
800ef74: 4a46 ldr r2, [pc, #280] ; (800f090 <DrawChannel_4+0xfc0>)
800ef76: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800ef7a: 79fb ldrb r3, [r7, #7]
800ef7c: 4a3e ldr r2, [pc, #248] ; (800f078 <DrawChannel_4+0xfa8>)
800ef7e: 015b lsls r3, r3, #5
800ef80: 4413 add r3, r2
800ef82: 3312 adds r3, #18
800ef84: 881b ldrh r3, [r3, #0]
800ef86: b29b uxth r3, r3
800ef88: 461a mov r2, r3
800ef8a: 4942 ldr r1, [pc, #264] ; (800f094 <DrawChannel_4+0xfc4>)
800ef8c: 4613 mov r3, r2
800ef8e: 015b lsls r3, r3, #5
800ef90: 4413 add r3, r2
800ef92: 6b3a ldr r2, [r7, #48] ; 0x30
800ef94: 4413 add r3, r2
800ef96: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800ef9a: 2303 movs r3, #3
800ef9c: 4621 mov r1, r4
800ef9e: f7f5 ffd9 bl 8004f54 <BSP_LCD_DisplayStringAt>
800efa2: e01f b.n 800efe4 <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);
800efa4: 79fb ldrb r3, [r7, #7]
800efa6: 4a39 ldr r2, [pc, #228] ; (800f08c <DrawChannel_4+0xfbc>)
800efa8: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800efac: 3b09 subs r3, #9
800efae: b298 uxth r0, r3
800efb0: 79fb ldrb r3, [r7, #7]
800efb2: 4a37 ldr r2, [pc, #220] ; (800f090 <DrawChannel_4+0xfc0>)
800efb4: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800efb8: 79fb ldrb r3, [r7, #7]
800efba: 4a2f ldr r2, [pc, #188] ; (800f078 <DrawChannel_4+0xfa8>)
800efbc: 015b lsls r3, r3, #5
800efbe: 4413 add r3, r2
800efc0: 3312 adds r3, #18
800efc2: 881b ldrh r3, [r3, #0]
800efc4: b29b uxth r3, r3
800efc6: 461a mov r2, r3
800efc8: 4933 ldr r1, [pc, #204] ; (800f098 <DrawChannel_4+0xfc8>)
800efca: 4613 mov r3, r2
800efcc: 009b lsls r3, r3, #2
800efce: 4413 add r3, r2
800efd0: 009a lsls r2, r3, #2
800efd2: 4413 add r3, r2
800efd4: 6b3a ldr r2, [r7, #48] ; 0x30
800efd6: 4413 add r3, r2
800efd8: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800efdc: 2303 movs r3, #3
800efde: 4621 mov r1, r4
800efe0: f7f5 ffb8 bl 8004f54 <BSP_LCD_DisplayStringAt>
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800efe4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800efe8: 4820 ldr r0, [pc, #128] ; (800f06c <DrawChannel_4+0xf9c>)
800efea: f7f5 feed bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800efee: 79fb ldrb r3, [r7, #7]
800eff0: 4a1f ldr r2, [pc, #124] ; (800f070 <DrawChannel_4+0xfa0>)
800eff2: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800eff6: 79fb ldrb r3, [r7, #7]
800eff8: 4a1e ldr r2, [pc, #120] ; (800f074 <DrawChannel_4+0xfa4>)
800effa: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800effe: 4b1e ldr r3, [pc, #120] ; (800f078 <DrawChannel_4+0xfa8>)
800f000: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f004: b29b uxth r3, r3
800f006: 4619 mov r1, r3
800f008: 79fb ldrb r3, [r7, #7]
800f00a: 4a1b ldr r2, [pc, #108] ; (800f078 <DrawChannel_4+0xfa8>)
800f00c: 015b lsls r3, r3, #5
800f00e: 4413 add r3, r2
800f010: 3302 adds r3, #2
800f012: 881b ldrh r3, [r3, #0]
800f014: b29b uxth r3, r3
800f016: 461d mov r5, r3
800f018: 4a18 ldr r2, [pc, #96] ; (800f07c <DrawChannel_4+0xfac>)
800f01a: 460b mov r3, r1
800f01c: 009b lsls r3, r3, #2
800f01e: 440b add r3, r1
800f020: 442b add r3, r5
800f022: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800f026: 2303 movs r3, #3
800f028: 4621 mov r1, r4
800f02a: f7f5 ff93 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800f02e: 79fb ldrb r3, [r7, #7]
800f030: 4a13 ldr r2, [pc, #76] ; (800f080 <DrawChannel_4+0xfb0>)
800f032: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800f036: 79fb ldrb r3, [r7, #7]
800f038: 4a12 ldr r2, [pc, #72] ; (800f084 <DrawChannel_4+0xfb4>)
800f03a: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800f03e: 4b0e ldr r3, [pc, #56] ; (800f078 <DrawChannel_4+0xfa8>)
800f040: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f044: b29b uxth r3, r3
800f046: 461d mov r5, r3
800f048: 79fb ldrb r3, [r7, #7]
800f04a: 4a0b ldr r2, [pc, #44] ; (800f078 <DrawChannel_4+0xfa8>)
800f04c: 015b lsls r3, r3, #5
800f04e: 4413 add r3, r2
800f050: 3304 adds r3, #4
800f052: 881b ldrh r3, [r3, #0]
800f054: b29b uxth r3, r3
800f056: 461c mov r4, r3
800f058: 4a0b ldr r2, [pc, #44] ; (800f088 <DrawChannel_4+0xfb8>)
800f05a: 00eb lsls r3, r5, #3
800f05c: 4423 add r3, r4
800f05e: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800f062: 2303 movs r3, #3
800f064: f7f5 ff76 bl 8004f54 <BSP_LCD_DisplayStringAt>
}
800f068: e0a5 b.n 800f1b6 <DrawChannel_4+0x10e6>
800f06a: bf00 nop
800f06c: ffd8aa57 .word 0xffd8aa57
800f070: 0801ae20 .word 0x0801ae20
800f074: 0801ae28 .word 0x0801ae28
800f078: 2006bca8 .word 0x2006bca8
800f07c: 20020054 .word 0x20020054
800f080: 0801ae30 .word 0x0801ae30
800f084: 0801ae38 .word 0x0801ae38
800f088: 2002007c .word 0x2002007c
800f08c: 0801ae10 .word 0x0801ae10
800f090: 0801ae40 .word 0x0801ae40
800f094: 2002013c .word 0x2002013c
800f098: 200205e0 .word 0x200205e0
800f09c: 20020010 .word 0x20020010
800f0a0: 2006ba68 .word 0x2006ba68
800f0a4: 200209e4 .word 0x200209e4
LCD_SetColors(LCD_COLOR_MY_YELLOW, LCD_COLOR_BLACK);
800f0a8: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f0ac: 4844 ldr r0, [pc, #272] ; (800f1c0 <DrawChannel_4+0x10f0>)
800f0ae: f7f5 fe8b bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(XPOS_HP_4[ch], YPOS_HP_4[ch], (char *) pHP[pardata.LANG][pardata.amplif[ch].IFV], LEFT_MODE);
800f0b2: 79fb ldrb r3, [r7, #7]
800f0b4: 4a43 ldr r2, [pc, #268] ; (800f1c4 <DrawChannel_4+0x10f4>)
800f0b6: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800f0ba: 79fb ldrb r3, [r7, #7]
800f0bc: 4a42 ldr r2, [pc, #264] ; (800f1c8 <DrawChannel_4+0x10f8>)
800f0be: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f0c2: 4b42 ldr r3, [pc, #264] ; (800f1cc <DrawChannel_4+0x10fc>)
800f0c4: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f0c8: b29b uxth r3, r3
800f0ca: 4619 mov r1, r3
800f0cc: 79fb ldrb r3, [r7, #7]
800f0ce: 4a3f ldr r2, [pc, #252] ; (800f1cc <DrawChannel_4+0x10fc>)
800f0d0: 015b lsls r3, r3, #5
800f0d2: 4413 add r3, r2
800f0d4: 3302 adds r3, #2
800f0d6: 881b ldrh r3, [r3, #0]
800f0d8: b29b uxth r3, r3
800f0da: 461d mov r5, r3
800f0dc: 4a3c ldr r2, [pc, #240] ; (800f1d0 <DrawChannel_4+0x1100>)
800f0de: 460b mov r3, r1
800f0e0: 009b lsls r3, r3, #2
800f0e2: 440b add r3, r1
800f0e4: 442b add r3, r5
800f0e6: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800f0ea: 2303 movs r3, #3
800f0ec: 4621 mov r1, r4
800f0ee: f7f5 ff31 bl 8004f54 <BSP_LCD_DisplayStringAt>
BSP_LCD_DisplayStringAt(XPOS_LP_4[ch], YPOS_LP_4[ch], (char *) pLP[pardata.LANG][pardata.amplif[ch].IFN], LEFT_MODE);
800f0f2: 79fb ldrb r3, [r7, #7]
800f0f4: 4a37 ldr r2, [pc, #220] ; (800f1d4 <DrawChannel_4+0x1104>)
800f0f6: f832 0013 ldrh.w r0, [r2, r3, lsl #1]
800f0fa: 79fb ldrb r3, [r7, #7]
800f0fc: 4a36 ldr r2, [pc, #216] ; (800f1d8 <DrawChannel_4+0x1108>)
800f0fe: f832 1013 ldrh.w r1, [r2, r3, lsl #1]
800f102: 4b32 ldr r3, [pc, #200] ; (800f1cc <DrawChannel_4+0x10fc>)
800f104: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f108: b29b uxth r3, r3
800f10a: 461d mov r5, r3
800f10c: 79fb ldrb r3, [r7, #7]
800f10e: 4a2f ldr r2, [pc, #188] ; (800f1cc <DrawChannel_4+0x10fc>)
800f110: 015b lsls r3, r3, #5
800f112: 4413 add r3, r2
800f114: 3304 adds r3, #4
800f116: 881b ldrh r3, [r3, #0]
800f118: b29b uxth r3, r3
800f11a: 461c mov r4, r3
800f11c: 4a2f ldr r2, [pc, #188] ; (800f1dc <DrawChannel_4+0x110c>)
800f11e: 00eb lsls r3, r5, #3
800f120: 4423 add r3, r4
800f122: f852 2023 ldr.w r2, [r2, r3, lsl #2]
800f126: 2303 movs r3, #3
800f128: f7f5 ff14 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(pardata.LANG == RUS)
800f12c: 4b27 ldr r3, [pc, #156] ; (800f1cc <DrawChannel_4+0x10fc>)
800f12e: f8b3 3206 ldrh.w r3, [r3, #518] ; 0x206
800f132: b29b uxth r3, r3
800f134: 2b00 cmp r3, #0
800f136: d11e bne.n 800f176 <DrawChannel_4+0x10a6>
BSP_LCD_DisplayStringAt(XPOS_INPUT_4[ch] + 5, YPOS_KM_4[ch], (char *) pOUT[pardata.amplif[ch].VAL][out], LEFT_MODE);
800f138: 79fb ldrb r3, [r7, #7]
800f13a: 4a29 ldr r2, [pc, #164] ; (800f1e0 <DrawChannel_4+0x1110>)
800f13c: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800f140: 3305 adds r3, #5
800f142: b298 uxth r0, r3
800f144: 79fb ldrb r3, [r7, #7]
800f146: 4a27 ldr r2, [pc, #156] ; (800f1e4 <DrawChannel_4+0x1114>)
800f148: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f14c: 79fb ldrb r3, [r7, #7]
800f14e: 4a1f ldr r2, [pc, #124] ; (800f1cc <DrawChannel_4+0x10fc>)
800f150: 015b lsls r3, r3, #5
800f152: 4413 add r3, r2
800f154: 3312 adds r3, #18
800f156: 881b ldrh r3, [r3, #0]
800f158: b29b uxth r3, r3
800f15a: 461a mov r2, r3
800f15c: 4922 ldr r1, [pc, #136] ; (800f1e8 <DrawChannel_4+0x1118>)
800f15e: 4613 mov r3, r2
800f160: 015b lsls r3, r3, #5
800f162: 4413 add r3, r2
800f164: 6b3a ldr r2, [r7, #48] ; 0x30
800f166: 4413 add r3, r2
800f168: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800f16c: 2303 movs r3, #3
800f16e: 4621 mov r1, r4
800f170: f7f5 fef0 bl 8004f54 <BSP_LCD_DisplayStringAt>
}
800f174: e01f b.n 800f1b6 <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);
800f176: 79fb ldrb r3, [r7, #7]
800f178: 4a19 ldr r2, [pc, #100] ; (800f1e0 <DrawChannel_4+0x1110>)
800f17a: f832 3013 ldrh.w r3, [r2, r3, lsl #1]
800f17e: 3b09 subs r3, #9
800f180: b298 uxth r0, r3
800f182: 79fb ldrb r3, [r7, #7]
800f184: 4a17 ldr r2, [pc, #92] ; (800f1e4 <DrawChannel_4+0x1114>)
800f186: f832 4013 ldrh.w r4, [r2, r3, lsl #1]
800f18a: 79fb ldrb r3, [r7, #7]
800f18c: 4a0f ldr r2, [pc, #60] ; (800f1cc <DrawChannel_4+0x10fc>)
800f18e: 015b lsls r3, r3, #5
800f190: 4413 add r3, r2
800f192: 3312 adds r3, #18
800f194: 881b ldrh r3, [r3, #0]
800f196: b29b uxth r3, r3
800f198: 461a mov r2, r3
800f19a: 4914 ldr r1, [pc, #80] ; (800f1ec <DrawChannel_4+0x111c>)
800f19c: 4613 mov r3, r2
800f19e: 009b lsls r3, r3, #2
800f1a0: 4413 add r3, r2
800f1a2: 009a lsls r2, r3, #2
800f1a4: 4413 add r3, r2
800f1a6: 6b3a ldr r2, [r7, #48] ; 0x30
800f1a8: 4413 add r3, r2
800f1aa: f851 2023 ldr.w r2, [r1, r3, lsl #2]
800f1ae: 2303 movs r3, #3
800f1b0: 4621 mov r1, r4
800f1b2: f7f5 fecf bl 8004f54 <BSP_LCD_DisplayStringAt>
}
800f1b6: bf00 nop
800f1b8: 3738 adds r7, #56 ; 0x38
800f1ba: 46bd mov sp, r7
800f1bc: bdb0 pop {r4, r5, r7, pc}
800f1be: bf00 nop
800f1c0: ffd8aa57 .word 0xffd8aa57
800f1c4: 0801ae20 .word 0x0801ae20
800f1c8: 0801ae28 .word 0x0801ae28
800f1cc: 2006bca8 .word 0x2006bca8
800f1d0: 20020054 .word 0x20020054
800f1d4: 0801ae30 .word 0x0801ae30
800f1d8: 0801ae38 .word 0x0801ae38
800f1dc: 2002007c .word 0x2002007c
800f1e0: 0801ae10 .word 0x0801ae10
800f1e4: 0801ae40 .word 0x0801ae40
800f1e8: 2002013c .word 0x2002013c
800f1ec: 200205e0 .word 0x200205e0
0800f1f0 <DrawButtons>:
void DrawButtons(void)
{
800f1f0: b580 push {r7, lr}
800f1f2: af00 add r7, sp, #0
if(menupos == Set100)
800f1f4: 4ba1 ldr r3, [pc, #644] ; (800f47c <DrawButtons+0x28c>)
800f1f6: 781b ldrb r3, [r3, #0]
800f1f8: b2db uxtb r3, r3
800f1fa: 2b00 cmp r3, #0
800f1fc: d106 bne.n 800f20c <DrawButtons+0x1c>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800f1fe: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f202: f04f 30ff mov.w r0, #4294967295
800f206: f7f5 fddf bl 8004dc8 <LCD_SetColors>
800f20a: e004 b.n 800f216 <DrawButtons+0x26>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800f20c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f210: 489b ldr r0, [pc, #620] ; (800f480 <DrawButtons+0x290>)
800f212: f7f5 fdd9 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillRect(120, 40, 80, 20); //+100
800f216: 2314 movs r3, #20
800f218: 2250 movs r2, #80 ; 0x50
800f21a: 2128 movs r1, #40 ; 0x28
800f21c: 2078 movs r0, #120 ; 0x78
800f21e: f7f6 f995 bl 800554c <BSP_LCD_FillRect>
if(menupos == Set_100)
800f222: 4b96 ldr r3, [pc, #600] ; (800f47c <DrawButtons+0x28c>)
800f224: 781b ldrb r3, [r3, #0]
800f226: b2db uxtb r3, r3
800f228: 2b01 cmp r3, #1
800f22a: d106 bne.n 800f23a <DrawButtons+0x4a>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800f22c: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f230: f04f 30ff mov.w r0, #4294967295
800f234: f7f5 fdc8 bl 8004dc8 <LCD_SetColors>
800f238: e004 b.n 800f244 <DrawButtons+0x54>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800f23a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f23e: 4890 ldr r0, [pc, #576] ; (800f480 <DrawButtons+0x290>)
800f240: f7f5 fdc2 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillRect(120, 65, 80, 20); //-100
800f244: 2314 movs r3, #20
800f246: 2250 movs r2, #80 ; 0x50
800f248: 2141 movs r1, #65 ; 0x41
800f24a: 2078 movs r0, #120 ; 0x78
800f24c: f7f6 f97e bl 800554c <BSP_LCD_FillRect>
if(menupos == Set10)
800f250: 4b8a ldr r3, [pc, #552] ; (800f47c <DrawButtons+0x28c>)
800f252: 781b ldrb r3, [r3, #0]
800f254: b2db uxtb r3, r3
800f256: 2b02 cmp r3, #2
800f258: d106 bne.n 800f268 <DrawButtons+0x78>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800f25a: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f25e: f04f 30ff mov.w r0, #4294967295
800f262: f7f5 fdb1 bl 8004dc8 <LCD_SetColors>
800f266: e004 b.n 800f272 <DrawButtons+0x82>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800f268: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f26c: 4884 ldr r0, [pc, #528] ; (800f480 <DrawButtons+0x290>)
800f26e: f7f5 fdab bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillRect(120, 90, 80, 20); //+10
800f272: 2314 movs r3, #20
800f274: 2250 movs r2, #80 ; 0x50
800f276: 215a movs r1, #90 ; 0x5a
800f278: 2078 movs r0, #120 ; 0x78
800f27a: f7f6 f967 bl 800554c <BSP_LCD_FillRect>
if(menupos == Set_10)
800f27e: 4b7f ldr r3, [pc, #508] ; (800f47c <DrawButtons+0x28c>)
800f280: 781b ldrb r3, [r3, #0]
800f282: b2db uxtb r3, r3
800f284: 2b03 cmp r3, #3
800f286: d106 bne.n 800f296 <DrawButtons+0xa6>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800f288: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f28c: f04f 30ff mov.w r0, #4294967295
800f290: f7f5 fd9a bl 8004dc8 <LCD_SetColors>
800f294: e004 b.n 800f2a0 <DrawButtons+0xb0>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800f296: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f29a: 4879 ldr r0, [pc, #484] ; (800f480 <DrawButtons+0x290>)
800f29c: f7f5 fd94 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillRect(120, 115, 80, 20); //-10
800f2a0: 2314 movs r3, #20
800f2a2: 2250 movs r2, #80 ; 0x50
800f2a4: 2173 movs r1, #115 ; 0x73
800f2a6: 2078 movs r0, #120 ; 0x78
800f2a8: f7f6 f950 bl 800554c <BSP_LCD_FillRect>
if(menupos == Set1)
800f2ac: 4b73 ldr r3, [pc, #460] ; (800f47c <DrawButtons+0x28c>)
800f2ae: 781b ldrb r3, [r3, #0]
800f2b0: b2db uxtb r3, r3
800f2b2: 2b04 cmp r3, #4
800f2b4: d106 bne.n 800f2c4 <DrawButtons+0xd4>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800f2b6: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f2ba: f04f 30ff mov.w r0, #4294967295
800f2be: f7f5 fd83 bl 8004dc8 <LCD_SetColors>
800f2c2: e004 b.n 800f2ce <DrawButtons+0xde>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800f2c4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f2c8: 486d ldr r0, [pc, #436] ; (800f480 <DrawButtons+0x290>)
800f2ca: f7f5 fd7d bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillRect(120, 140, 80, 20); //+1
800f2ce: 2314 movs r3, #20
800f2d0: 2250 movs r2, #80 ; 0x50
800f2d2: 218c movs r1, #140 ; 0x8c
800f2d4: 2078 movs r0, #120 ; 0x78
800f2d6: f7f6 f939 bl 800554c <BSP_LCD_FillRect>
if(menupos == Set_1)
800f2da: 4b68 ldr r3, [pc, #416] ; (800f47c <DrawButtons+0x28c>)
800f2dc: 781b ldrb r3, [r3, #0]
800f2de: b2db uxtb r3, r3
800f2e0: 2b05 cmp r3, #5
800f2e2: d106 bne.n 800f2f2 <DrawButtons+0x102>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800f2e4: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f2e8: f04f 30ff mov.w r0, #4294967295
800f2ec: f7f5 fd6c bl 8004dc8 <LCD_SetColors>
800f2f0: e004 b.n 800f2fc <DrawButtons+0x10c>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800f2f2: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f2f6: 4862 ldr r0, [pc, #392] ; (800f480 <DrawButtons+0x290>)
800f2f8: f7f5 fd66 bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillRect(120, 165, 80, 20); //-1
800f2fc: 2314 movs r3, #20
800f2fe: 2250 movs r2, #80 ; 0x50
800f300: 21a5 movs r1, #165 ; 0xa5
800f302: 2078 movs r0, #120 ; 0x78
800f304: f7f6 f922 bl 800554c <BSP_LCD_FillRect>
if(menupos == Next)
800f308: 4b5c ldr r3, [pc, #368] ; (800f47c <DrawButtons+0x28c>)
800f30a: 781b ldrb r3, [r3, #0]
800f30c: b2db uxtb r3, r3
800f30e: 2b06 cmp r3, #6
800f310: d106 bne.n 800f320 <DrawButtons+0x130>
LCD_SetColors(LCD_COLOR_WHITE, LCD_COLOR_BLACK);
800f312: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f316: f04f 30ff mov.w r0, #4294967295
800f31a: f7f5 fd55 bl 8004dc8 <LCD_SetColors>
800f31e: e004 b.n 800f32a <DrawButtons+0x13a>
else LCD_SetColors(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
800f320: f04f 417f mov.w r1, #4278190080 ; 0xff000000
800f324: 4856 ldr r0, [pc, #344] ; (800f480 <DrawButtons+0x290>)
800f326: f7f5 fd4f bl 8004dc8 <LCD_SetColors>
BSP_LCD_FillRect(120, 190, 80, 20); //Next
800f32a: 2314 movs r3, #20
800f32c: 2250 movs r2, #80 ; 0x50
800f32e: 21be movs r1, #190 ; 0xbe
800f330: 2078 movs r0, #120 ; 0x78
800f332: f7f6 f90b bl 800554c <BSP_LCD_FillRect>
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
if(menupos == Set100)
800f336: 4b51 ldr r3, [pc, #324] ; (800f47c <DrawButtons+0x28c>)
800f338: 781b ldrb r3, [r3, #0]
800f33a: b2db uxtb r3, r3
800f33c: 2b00 cmp r3, #0
800f33e: d106 bne.n 800f34e <DrawButtons+0x15e>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800f340: f04f 31ff mov.w r1, #4294967295
800f344: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f348: f7f5 fd3e bl 8004dc8 <LCD_SetColors>
800f34c: e004 b.n 800f358 <DrawButtons+0x168>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800f34e: 494c ldr r1, [pc, #304] ; (800f480 <DrawButtons+0x290>)
800f350: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f354: f7f5 fd38 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 40+5, "+100", CENTER_MODE);
800f358: 2301 movs r3, #1
800f35a: 4a4a ldr r2, [pc, #296] ; (800f484 <DrawButtons+0x294>)
800f35c: 212d movs r1, #45 ; 0x2d
800f35e: 20a0 movs r0, #160 ; 0xa0
800f360: f7f5 fdf8 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Set_100)
800f364: 4b45 ldr r3, [pc, #276] ; (800f47c <DrawButtons+0x28c>)
800f366: 781b ldrb r3, [r3, #0]
800f368: b2db uxtb r3, r3
800f36a: 2b01 cmp r3, #1
800f36c: d106 bne.n 800f37c <DrawButtons+0x18c>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800f36e: f04f 31ff mov.w r1, #4294967295
800f372: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f376: f7f5 fd27 bl 8004dc8 <LCD_SetColors>
800f37a: e004 b.n 800f386 <DrawButtons+0x196>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800f37c: 4940 ldr r1, [pc, #256] ; (800f480 <DrawButtons+0x290>)
800f37e: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f382: f7f5 fd21 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 65+5, "-100", CENTER_MODE);
800f386: 2301 movs r3, #1
800f388: 4a3f ldr r2, [pc, #252] ; (800f488 <DrawButtons+0x298>)
800f38a: 2146 movs r1, #70 ; 0x46
800f38c: 20a0 movs r0, #160 ; 0xa0
800f38e: f7f5 fde1 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Set10)
800f392: 4b3a ldr r3, [pc, #232] ; (800f47c <DrawButtons+0x28c>)
800f394: 781b ldrb r3, [r3, #0]
800f396: b2db uxtb r3, r3
800f398: 2b02 cmp r3, #2
800f39a: d106 bne.n 800f3aa <DrawButtons+0x1ba>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800f39c: f04f 31ff mov.w r1, #4294967295
800f3a0: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f3a4: f7f5 fd10 bl 8004dc8 <LCD_SetColors>
800f3a8: e004 b.n 800f3b4 <DrawButtons+0x1c4>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800f3aa: 4935 ldr r1, [pc, #212] ; (800f480 <DrawButtons+0x290>)
800f3ac: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f3b0: f7f5 fd0a bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 90+5, "+10", CENTER_MODE);
800f3b4: 2301 movs r3, #1
800f3b6: 4a35 ldr r2, [pc, #212] ; (800f48c <DrawButtons+0x29c>)
800f3b8: 215f movs r1, #95 ; 0x5f
800f3ba: 20a0 movs r0, #160 ; 0xa0
800f3bc: f7f5 fdca bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Set_10)
800f3c0: 4b2e ldr r3, [pc, #184] ; (800f47c <DrawButtons+0x28c>)
800f3c2: 781b ldrb r3, [r3, #0]
800f3c4: b2db uxtb r3, r3
800f3c6: 2b03 cmp r3, #3
800f3c8: d106 bne.n 800f3d8 <DrawButtons+0x1e8>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800f3ca: f04f 31ff mov.w r1, #4294967295
800f3ce: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f3d2: f7f5 fcf9 bl 8004dc8 <LCD_SetColors>
800f3d6: e004 b.n 800f3e2 <DrawButtons+0x1f2>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800f3d8: 4929 ldr r1, [pc, #164] ; (800f480 <DrawButtons+0x290>)
800f3da: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f3de: f7f5 fcf3 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 115+5, "-10", CENTER_MODE);
800f3e2: 2301 movs r3, #1
800f3e4: 4a2a ldr r2, [pc, #168] ; (800f490 <DrawButtons+0x2a0>)
800f3e6: 2178 movs r1, #120 ; 0x78
800f3e8: 20a0 movs r0, #160 ; 0xa0
800f3ea: f7f5 fdb3 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Set1)
800f3ee: 4b23 ldr r3, [pc, #140] ; (800f47c <DrawButtons+0x28c>)
800f3f0: 781b ldrb r3, [r3, #0]
800f3f2: b2db uxtb r3, r3
800f3f4: 2b04 cmp r3, #4
800f3f6: d106 bne.n 800f406 <DrawButtons+0x216>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800f3f8: f04f 31ff mov.w r1, #4294967295
800f3fc: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f400: f7f5 fce2 bl 8004dc8 <LCD_SetColors>
800f404: e004 b.n 800f410 <DrawButtons+0x220>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800f406: 491e ldr r1, [pc, #120] ; (800f480 <DrawButtons+0x290>)
800f408: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f40c: f7f5 fcdc bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 140+5, "+1", CENTER_MODE);
800f410: 2301 movs r3, #1
800f412: 4a20 ldr r2, [pc, #128] ; (800f494 <DrawButtons+0x2a4>)
800f414: 2191 movs r1, #145 ; 0x91
800f416: 20a0 movs r0, #160 ; 0xa0
800f418: f7f5 fd9c bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Set_1)
800f41c: 4b17 ldr r3, [pc, #92] ; (800f47c <DrawButtons+0x28c>)
800f41e: 781b ldrb r3, [r3, #0]
800f420: b2db uxtb r3, r3
800f422: 2b05 cmp r3, #5
800f424: d106 bne.n 800f434 <DrawButtons+0x244>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800f426: f04f 31ff mov.w r1, #4294967295
800f42a: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f42e: f7f5 fccb bl 8004dc8 <LCD_SetColors>
800f432: e004 b.n 800f43e <DrawButtons+0x24e>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800f434: 4912 ldr r1, [pc, #72] ; (800f480 <DrawButtons+0x290>)
800f436: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f43a: f7f5 fcc5 bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 165+5, "-1", CENTER_MODE);
800f43e: 2301 movs r3, #1
800f440: 4a15 ldr r2, [pc, #84] ; (800f498 <DrawButtons+0x2a8>)
800f442: 21aa movs r1, #170 ; 0xaa
800f444: 20a0 movs r0, #160 ; 0xa0
800f446: f7f5 fd85 bl 8004f54 <BSP_LCD_DisplayStringAt>
if(menupos == Next)
800f44a: 4b0c ldr r3, [pc, #48] ; (800f47c <DrawButtons+0x28c>)
800f44c: 781b ldrb r3, [r3, #0]
800f44e: b2db uxtb r3, r3
800f450: 2b06 cmp r3, #6
800f452: d106 bne.n 800f462 <DrawButtons+0x272>
LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_WHITE);
800f454: f04f 31ff mov.w r1, #4294967295
800f458: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f45c: f7f5 fcb4 bl 8004dc8 <LCD_SetColors>
800f460: e004 b.n 800f46c <DrawButtons+0x27c>
else LCD_SetColors(LCD_COLOR_BLACK, LCD_COLOR_GRAY);
800f462: 4907 ldr r1, [pc, #28] ; (800f480 <DrawButtons+0x290>)
800f464: f04f 407f mov.w r0, #4278190080 ; 0xff000000
800f468: f7f5 fcae bl 8004dc8 <LCD_SetColors>
BSP_LCD_DisplayStringAt(160, 190+5, "<22><><C4><E0><EB>", CENTER_MODE);
800f46c: 2301 movs r3, #1
800f46e: 4a0b ldr r2, [pc, #44] ; (800f49c <DrawButtons+0x2ac>)
800f470: 21c3 movs r1, #195 ; 0xc3
800f472: 20a0 movs r0, #160 ; 0xa0
800f474: f7f5 fd6e bl 8004f54 <BSP_LCD_DisplayStringAt>
}
800f478: bf00 nop
800f47a: bd80 pop {r7, pc}
800f47c: 20020010 .word 0x20020010
800f480: ff808080 .word 0xff808080
800f484: 08018598 .word 0x08018598
800f488: 080185a0 .word 0x080185a0
800f48c: 080185a8 .word 0x080185a8
800f490: 080185ac .word 0x080185ac
800f494: 080185b0 .word 0x080185b0
800f498: 080185b4 .word 0x080185b4
800f49c: 080185b8 .word 0x080185b8
0800f4a0 <FloatToASCII>:
char * FloatToASCII(float32_t Val, int32_t RoundTo)
{
800f4a0: b580 push {r7, lr}
800f4a2: b098 sub sp, #96 ; 0x60
800f4a4: af00 add r7, sp, #0
800f4a6: ed87 0a01 vstr s0, [r7, #4]
800f4aa: 6038 str r0, [r7, #0]
uint8_t idx = 0;
800f4ac: 2300 movs r3, #0
800f4ae: f887 305f strb.w r3, [r7, #95] ; 0x5f
int32_t i;
float32_t value, F, I;
uint32_t rnd = 0;
800f4b2: 2300 movs r3, #0
800f4b4: 653b str r3, [r7, #80] ; 0x50
uint32_t Tmp32 = 0;
800f4b6: 2300 movs r3, #0
800f4b8: 63fb str r3, [r7, #60] ; 0x3c
uint32_t Int32 = 0;
800f4ba: 2300 movs r3, #0
800f4bc: 64fb str r3, [r7, #76] ; 0x4c
uint32_t Frac32 = 0;
800f4be: 2300 movs r3, #0
800f4c0: 64bb str r3, [r7, #72] ; 0x48
uint32_t _I32 = 0;
800f4c2: 2300 movs r3, #0
800f4c4: 63bb str r3, [r7, #56] ; 0x38
uint32_t _F32 = 0;
800f4c6: 2300 movs r3, #0
800f4c8: 637b str r3, [r7, #52] ; 0x34
uint32_t d = 0, dd = 0;
800f4ca: 2300 movs r3, #0
800f4cc: 647b str r3, [r7, #68] ; 0x44
800f4ce: 2300 movs r3, #0
800f4d0: 643b str r3, [r7, #64] ; 0x40
char tmparray[32];
volatile bool minus = false;
800f4d2: 2300 movs r3, #0
800f4d4: 72fb strb r3, [r7, #11]
memset(tmparray, 0, 32);
800f4d6: f107 030c add.w r3, r7, #12
800f4da: 2220 movs r2, #32
800f4dc: 2100 movs r1, #0
800f4de: 4618 mov r0, r3
800f4e0: f006 fffb bl 80164da <memset>
memset(pString, 0, 16);
800f4e4: 2210 movs r2, #16
800f4e6: 2100 movs r1, #0
800f4e8: 48b7 ldr r0, [pc, #732] ; (800f7c8 <FloatToASCII+0x328>)
800f4ea: f006 fff6 bl 80164da <memset>
value = Val;
800f4ee: 687b ldr r3, [r7, #4]
800f4f0: 633b str r3, [r7, #48] ; 0x30
if(value < 0)
800f4f2: edd7 7a0c vldr s15, [r7, #48] ; 0x30
800f4f6: eef5 7ac0 vcmpe.f32 s15, #0.0
800f4fa: eef1 fa10 vmrs APSR_nzcv, fpscr
800f4fe: d501 bpl.n 800f504 <FloatToASCII+0x64>
minus = true;
800f500: 2301 movs r3, #1
800f502: 72fb strb r3, [r7, #11]
if(Val > 99999.0)
800f504: edd7 7a01 vldr s15, [r7, #4]
800f508: ed9f 7ab0 vldr s14, [pc, #704] ; 800f7cc <FloatToASCII+0x32c>
800f50c: eef4 7ac7 vcmpe.f32 s15, s14
800f510: eef1 fa10 vmrs APSR_nzcv, fpscr
800f514: dd30 ble.n 800f578 <FloatToASCII+0xd8>
{
if(Val < 0)
800f516: edd7 7a01 vldr s15, [r7, #4]
800f51a: eef5 7ac0 vcmpe.f32 s15, #0.0
800f51e: eef1 fa10 vmrs APSR_nzcv, fpscr
800f522: d515 bpl.n 800f550 <FloatToASCII+0xb0>
{
pString[0] = '1';
800f524: 4ba8 ldr r3, [pc, #672] ; (800f7c8 <FloatToASCII+0x328>)
800f526: 2231 movs r2, #49 ; 0x31
800f528: 701a strb r2, [r3, #0]
pString[1] = '.';
800f52a: 4ba7 ldr r3, [pc, #668] ; (800f7c8 <FloatToASCII+0x328>)
800f52c: 222e movs r2, #46 ; 0x2e
800f52e: 705a strb r2, [r3, #1]
pString[2] = '0';
800f530: 4ba5 ldr r3, [pc, #660] ; (800f7c8 <FloatToASCII+0x328>)
800f532: 2230 movs r2, #48 ; 0x30
800f534: 709a strb r2, [r3, #2]
pString[3] = '0';
800f536: 4ba4 ldr r3, [pc, #656] ; (800f7c8 <FloatToASCII+0x328>)
800f538: 2230 movs r2, #48 ; 0x30
800f53a: 70da strb r2, [r3, #3]
pString[4] = '0';
800f53c: 4ba2 ldr r3, [pc, #648] ; (800f7c8 <FloatToASCII+0x328>)
800f53e: 2230 movs r2, #48 ; 0x30
800f540: 711a strb r2, [r3, #4]
pString[5] = '0';
800f542: 4ba1 ldr r3, [pc, #644] ; (800f7c8 <FloatToASCII+0x328>)
800f544: 2230 movs r2, #48 ; 0x30
800f546: 715a strb r2, [r3, #5]
pString[6] = '\0';
800f548: 4b9f ldr r3, [pc, #636] ; (800f7c8 <FloatToASCII+0x328>)
800f54a: 2200 movs r2, #0
800f54c: 719a strb r2, [r3, #6]
800f54e: e011 b.n 800f574 <FloatToASCII+0xd4>
}
else
{
pString[0] = '9';
800f550: 4b9d ldr r3, [pc, #628] ; (800f7c8 <FloatToASCII+0x328>)
800f552: 2239 movs r2, #57 ; 0x39
800f554: 701a strb r2, [r3, #0]
pString[1] = '9';
800f556: 4b9c ldr r3, [pc, #624] ; (800f7c8 <FloatToASCII+0x328>)
800f558: 2239 movs r2, #57 ; 0x39
800f55a: 705a strb r2, [r3, #1]
pString[2] = '9';
800f55c: 4b9a ldr r3, [pc, #616] ; (800f7c8 <FloatToASCII+0x328>)
800f55e: 2239 movs r2, #57 ; 0x39
800f560: 709a strb r2, [r3, #2]
pString[3] = '9';
800f562: 4b99 ldr r3, [pc, #612] ; (800f7c8 <FloatToASCII+0x328>)
800f564: 2239 movs r2, #57 ; 0x39
800f566: 70da strb r2, [r3, #3]
pString[4] = '9';
800f568: 4b97 ldr r3, [pc, #604] ; (800f7c8 <FloatToASCII+0x328>)
800f56a: 2239 movs r2, #57 ; 0x39
800f56c: 711a strb r2, [r3, #4]
pString[5] = '\0';
800f56e: 4b96 ldr r3, [pc, #600] ; (800f7c8 <FloatToASCII+0x328>)
800f570: 2200 movs r2, #0
800f572: 715a strb r2, [r3, #5]
}
return pString;
800f574: 4b94 ldr r3, [pc, #592] ; (800f7c8 <FloatToASCII+0x328>)
800f576: e168 b.n 800f84a <FloatToASCII+0x3aa>
}
value = ABS(Val);
800f578: edd7 7a01 vldr s15, [r7, #4]
800f57c: eef5 7ac0 vcmpe.f32 s15, #0.0
800f580: eef1 fa10 vmrs APSR_nzcv, fpscr
800f584: dd02 ble.n 800f58c <FloatToASCII+0xec>
800f586: edd7 7a01 vldr s15, [r7, #4]
800f58a: e003 b.n 800f594 <FloatToASCII+0xf4>
800f58c: edd7 7a01 vldr s15, [r7, #4]
800f590: eef1 7a67 vneg.f32 s15, s15
800f594: edc7 7a0c vstr s15, [r7, #48] ; 0x30
rnd = ABS(RoundTo);
800f598: 683b ldr r3, [r7, #0]
800f59a: 2b00 cmp r3, #0
800f59c: bfb8 it lt
800f59e: 425b neglt r3, r3
800f5a0: 653b str r3, [r7, #80] ; 0x50
if(RoundTo < 0)
800f5a2: 683b ldr r3, [r7, #0]
800f5a4: 2b00 cmp r3, #0
800f5a6: da47 bge.n 800f638 <FloatToASCII+0x198>
{
F = modff(value, &I);
800f5a8: f107 032c add.w r3, r7, #44 ; 0x2c
800f5ac: 4618 mov r0, r3
800f5ae: ed97 0a0c vldr s0, [r7, #48] ; 0x30
800f5b2: f006 ff15 bl 80163e0 <modff>
800f5b6: ed87 0a15 vstr s0, [r7, #84] ; 0x54
while(rnd)
800f5ba: e00d b.n 800f5d8 <FloatToASCII+0x138>
{
F *= 10.0f;
800f5bc: edd7 7a15 vldr s15, [r7, #84] ; 0x54
800f5c0: eeb2 7a04 vmov.f32 s14, #36 ; 0x41200000 10.0
800f5c4: ee67 7a87 vmul.f32 s15, s15, s14
800f5c8: edc7 7a15 vstr s15, [r7, #84] ; 0x54
rnd--;
800f5cc: 6d3b ldr r3, [r7, #80] ; 0x50
800f5ce: 3b01 subs r3, #1
800f5d0: 653b str r3, [r7, #80] ; 0x50
d++;
800f5d2: 6c7b ldr r3, [r7, #68] ; 0x44
800f5d4: 3301 adds r3, #1
800f5d6: 647b str r3, [r7, #68] ; 0x44
while(rnd)
800f5d8: 6d3b ldr r3, [r7, #80] ; 0x50
800f5da: 2b00 cmp r3, #0
800f5dc: d1ee bne.n 800f5bc <FloatToASCII+0x11c>
}
F = roundf(F);
800f5de: ed97 0a15 vldr s0, [r7, #84] ; 0x54
800f5e2: f006 ff25 bl 8016430 <roundf>
800f5e6: ed87 0a15 vstr s0, [r7, #84] ; 0x54
dd = 1;
800f5ea: 2301 movs r3, #1
800f5ec: 643b str r3, [r7, #64] ; 0x40
for(i = 0; i < d; i++)
800f5ee: 2300 movs r3, #0
800f5f0: 65bb str r3, [r7, #88] ; 0x58
800f5f2: e008 b.n 800f606 <FloatToASCII+0x166>
dd *= 10;
800f5f4: 6c3a ldr r2, [r7, #64] ; 0x40
800f5f6: 4613 mov r3, r2
800f5f8: 009b lsls r3, r3, #2
800f5fa: 4413 add r3, r2
800f5fc: 005b lsls r3, r3, #1
800f5fe: 643b str r3, [r7, #64] ; 0x40
for(i = 0; i < d; i++)
800f600: 6dbb ldr r3, [r7, #88] ; 0x58
800f602: 3301 adds r3, #1
800f604: 65bb str r3, [r7, #88] ; 0x58
800f606: 6dba ldr r2, [r7, #88] ; 0x58
800f608: 6c7b ldr r3, [r7, #68] ; 0x44
800f60a: 429a cmp r2, r3
800f60c: d3f2 bcc.n 800f5f4 <FloatToASCII+0x154>
if((uint32_t) F == dd)
800f60e: edd7 7a15 vldr s15, [r7, #84] ; 0x54
800f612: eefc 7ae7 vcvt.u32.f32 s15, s15
800f616: ee17 2a90 vmov r2, s15
800f61a: 6c3b ldr r3, [r7, #64] ; 0x40
800f61c: 429a cmp r2, r3
800f61e: d116 bne.n 800f64e <FloatToASCII+0x1ae>
{
F = 0;
800f620: f04f 0300 mov.w r3, #0
800f624: 657b str r3, [r7, #84] ; 0x54
I += 1;
800f626: edd7 7a0b vldr s15, [r7, #44] ; 0x2c
800f62a: eeb7 7a00 vmov.f32 s14, #112 ; 0x3f800000 1.0
800f62e: ee77 7a87 vadd.f32 s15, s15, s14
800f632: edc7 7a0b vstr s15, [r7, #44] ; 0x2c
800f636: e00a b.n 800f64e <FloatToASCII+0x1ae>
}
}
else
{
I = roundf(value);
800f638: ed97 0a0c vldr s0, [r7, #48] ; 0x30
800f63c: f006 fef8 bl 8016430 <roundf>
800f640: eef0 7a40 vmov.f32 s15, s0
800f644: edc7 7a0b vstr s15, [r7, #44] ; 0x2c
F = 0.0f;
800f648: f04f 0300 mov.w r3, #0
800f64c: 657b str r3, [r7, #84] ; 0x54
}
Int32 = (uint32_t) I;
800f64e: edd7 7a0b vldr s15, [r7, #44] ; 0x2c
800f652: eefc 7ae7 vcvt.u32.f32 s15, s15
800f656: ee17 3a90 vmov r3, s15
800f65a: 64fb str r3, [r7, #76] ; 0x4c
Frac32 = (uint32_t) F;
800f65c: edd7 7a15 vldr s15, [r7, #84] ; 0x54
800f660: eefc 7ae7 vcvt.u32.f32 s15, s15
800f664: ee17 3a90 vmov r3, s15
800f668: 64bb str r3, [r7, #72] ; 0x48
_I32 = Int32;
800f66a: 6cfb ldr r3, [r7, #76] ; 0x4c
800f66c: 63bb str r3, [r7, #56] ; 0x38
_F32 = Frac32;
800f66e: 6cbb ldr r3, [r7, #72] ; 0x48
800f670: 637b str r3, [r7, #52] ; 0x34
idx = 0;
800f672: 2300 movs r3, #0
800f674: f887 305f strb.w r3, [r7, #95] ; 0x5f
tmparray[idx++] = '\0';
800f678: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800f67c: 1c5a adds r2, r3, #1
800f67e: f887 205f strb.w r2, [r7, #95] ; 0x5f
800f682: f107 0260 add.w r2, r7, #96 ; 0x60
800f686: 4413 add r3, r2
800f688: 2200 movs r2, #0
800f68a: f803 2c54 strb.w r2, [r3, #-84]
if((Int32 == 0) && (Frac32 == 0))
800f68e: 6cfb ldr r3, [r7, #76] ; 0x4c
800f690: 2b00 cmp r3, #0
800f692: d135 bne.n 800f700 <FloatToASCII+0x260>
800f694: 6cbb ldr r3, [r7, #72] ; 0x48
800f696: 2b00 cmp r3, #0
800f698: d132 bne.n 800f700 <FloatToASCII+0x260>
{
if(RoundTo < 0)
800f69a: 683b ldr r3, [r7, #0]
800f69c: 2b00 cmp r3, #0
800f69e: da23 bge.n 800f6e8 <FloatToASCII+0x248>
{
for(i = 0; i < ABS(RoundTo); i++)
800f6a0: 2300 movs r3, #0
800f6a2: 65bb str r3, [r7, #88] ; 0x58
800f6a4: e00d b.n 800f6c2 <FloatToASCII+0x222>
tmparray[idx++] = '0';
800f6a6: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800f6aa: 1c5a adds r2, r3, #1
800f6ac: f887 205f strb.w r2, [r7, #95] ; 0x5f
800f6b0: f107 0260 add.w r2, r7, #96 ; 0x60
800f6b4: 4413 add r3, r2
800f6b6: 2230 movs r2, #48 ; 0x30
800f6b8: f803 2c54 strb.w r2, [r3, #-84]
for(i = 0; i < ABS(RoundTo); i++)
800f6bc: 6dbb ldr r3, [r7, #88] ; 0x58
800f6be: 3301 adds r3, #1
800f6c0: 65bb str r3, [r7, #88] ; 0x58
800f6c2: 683b ldr r3, [r7, #0]
800f6c4: ea83 72e3 eor.w r2, r3, r3, asr #31
800f6c8: eba2 72e3 sub.w r2, r2, r3, asr #31
800f6cc: 6dbb ldr r3, [r7, #88] ; 0x58
800f6ce: 429a cmp r2, r3
800f6d0: dce9 bgt.n 800f6a6 <FloatToASCII+0x206>
tmparray[idx++] = '.';
800f6d2: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800f6d6: 1c5a adds r2, r3, #1
800f6d8: f887 205f strb.w r2, [r7, #95] ; 0x5f
800f6dc: f107 0260 add.w r2, r7, #96 ; 0x60
800f6e0: 4413 add r3, r2
800f6e2: 222e movs r2, #46 ; 0x2e
800f6e4: f803 2c54 strb.w r2, [r3, #-84]
}
tmparray[idx++] = '0';
800f6e8: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800f6ec: 1c5a adds r2, r3, #1
800f6ee: f887 205f strb.w r2, [r7, #95] ; 0x5f
800f6f2: f107 0260 add.w r2, r7, #96 ; 0x60
800f6f6: 4413 add r3, r2
800f6f8: 2230 movs r2, #48 ; 0x30
800f6fa: f803 2c54 strb.w r2, [r3, #-84]
800f6fe: e089 b.n 800f814 <FloatToASCII+0x374>
}
else
{
if(RoundTo < 0)
800f700: 683b ldr r3, [r7, #0]
800f702: 2b00 cmp r3, #0
800f704: da38 bge.n 800f778 <FloatToASCII+0x2d8>
{
for(i = 0; i < ABS(RoundTo); i++)
800f706: 2300 movs r3, #0
800f708: 65bb str r3, [r7, #88] ; 0x58
800f70a: e022 b.n 800f752 <FloatToASCII+0x2b2>
{
Tmp32 = Frac32;
800f70c: 6cbb ldr r3, [r7, #72] ; 0x48
800f70e: 63fb str r3, [r7, #60] ; 0x3c
Frac32 /= 10;
800f710: 6cbb ldr r3, [r7, #72] ; 0x48
800f712: 4a2f ldr r2, [pc, #188] ; (800f7d0 <FloatToASCII+0x330>)
800f714: fba2 2303 umull r2, r3, r2, r3
800f718: 08db lsrs r3, r3, #3
800f71a: 64bb str r3, [r7, #72] ; 0x48
Tmp32 = Tmp32 - Frac32 * 10;
800f71c: 6cba ldr r2, [r7, #72] ; 0x48
800f71e: 4613 mov r3, r2
800f720: 009b lsls r3, r3, #2
800f722: 4413 add r3, r2
800f724: 005b lsls r3, r3, #1
800f726: 461a mov r2, r3
800f728: 6bfb ldr r3, [r7, #60] ; 0x3c
800f72a: 1a9b subs r3, r3, r2
800f72c: 63fb str r3, [r7, #60] ; 0x3c
tmparray[idx++] = '0' + Tmp32;
800f72e: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800f732: 1c5a adds r2, r3, #1
800f734: f887 205f strb.w r2, [r7, #95] ; 0x5f
800f738: 4619 mov r1, r3
800f73a: 6bfb ldr r3, [r7, #60] ; 0x3c
800f73c: b2db uxtb r3, r3
800f73e: 3330 adds r3, #48 ; 0x30
800f740: b2da uxtb r2, r3
800f742: f107 0360 add.w r3, r7, #96 ; 0x60
800f746: 440b add r3, r1
800f748: f803 2c54 strb.w r2, [r3, #-84]
for(i = 0; i < ABS(RoundTo); i++)
800f74c: 6dbb ldr r3, [r7, #88] ; 0x58
800f74e: 3301 adds r3, #1
800f750: 65bb str r3, [r7, #88] ; 0x58
800f752: 683b ldr r3, [r7, #0]
800f754: ea83 72e3 eor.w r2, r3, r3, asr #31
800f758: eba2 72e3 sub.w r2, r2, r3, asr #31
800f75c: 6dbb ldr r3, [r7, #88] ; 0x58
800f75e: 429a cmp r2, r3
800f760: dcd4 bgt.n 800f70c <FloatToASCII+0x26c>
}
tmparray[idx++] = '.';
800f762: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800f766: 1c5a adds r2, r3, #1
800f768: f887 205f strb.w r2, [r7, #95] ; 0x5f
800f76c: f107 0260 add.w r2, r7, #96 ; 0x60
800f770: 4413 add r3, r2
800f772: 222e movs r2, #46 ; 0x2e
800f774: f803 2c54 strb.w r2, [r3, #-84]
}
if(Int32 != 0)
800f778: 6cfb ldr r3, [r7, #76] ; 0x4c
800f77a: 2b00 cmp r3, #0
800f77c: d02a beq.n 800f7d4 <FloatToASCII+0x334>
{
while(Int32)
800f77e: e01f b.n 800f7c0 <FloatToASCII+0x320>
{
Tmp32 = Int32;
800f780: 6cfb ldr r3, [r7, #76] ; 0x4c
800f782: 63fb str r3, [r7, #60] ; 0x3c
Int32 /= 10;
800f784: 6cfb ldr r3, [r7, #76] ; 0x4c
800f786: 4a12 ldr r2, [pc, #72] ; (800f7d0 <FloatToASCII+0x330>)
800f788: fba2 2303 umull r2, r3, r2, r3
800f78c: 08db lsrs r3, r3, #3
800f78e: 64fb str r3, [r7, #76] ; 0x4c
Tmp32 = Tmp32 - Int32 * 10;
800f790: 6cfa ldr r2, [r7, #76] ; 0x4c
800f792: 4613 mov r3, r2
800f794: 009b lsls r3, r3, #2
800f796: 4413 add r3, r2
800f798: 005b lsls r3, r3, #1
800f79a: 461a mov r2, r3
800f79c: 6bfb ldr r3, [r7, #60] ; 0x3c
800f79e: 1a9b subs r3, r3, r2
800f7a0: 63fb str r3, [r7, #60] ; 0x3c
tmparray[idx++] = '0' + Tmp32;
800f7a2: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800f7a6: 1c5a adds r2, r3, #1
800f7a8: f887 205f strb.w r2, [r7, #95] ; 0x5f
800f7ac: 4619 mov r1, r3
800f7ae: 6bfb ldr r3, [r7, #60] ; 0x3c
800f7b0: b2db uxtb r3, r3
800f7b2: 3330 adds r3, #48 ; 0x30
800f7b4: b2da uxtb r2, r3
800f7b6: f107 0360 add.w r3, r7, #96 ; 0x60
800f7ba: 440b add r3, r1
800f7bc: f803 2c54 strb.w r2, [r3, #-84]
while(Int32)
800f7c0: 6cfb ldr r3, [r7, #76] ; 0x4c
800f7c2: 2b00 cmp r3, #0
800f7c4: d1dc bne.n 800f780 <FloatToASCII+0x2e0>
800f7c6: e010 b.n 800f7ea <FloatToASCII+0x34a>
800f7c8: 2006c24c .word 0x2006c24c
800f7cc: 47c34f80 .word 0x47c34f80
800f7d0: cccccccd .word 0xcccccccd
}
}
else
tmparray[idx++] = '0';
800f7d4: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800f7d8: 1c5a adds r2, r3, #1
800f7da: f887 205f strb.w r2, [r7, #95] ; 0x5f
800f7de: f107 0260 add.w r2, r7, #96 ; 0x60
800f7e2: 4413 add r3, r2
800f7e4: 2230 movs r2, #48 ; 0x30
800f7e6: f803 2c54 strb.w r2, [r3, #-84]
if(minus)
800f7ea: 7afb ldrb r3, [r7, #11]
800f7ec: b2db uxtb r3, r3
800f7ee: 2b00 cmp r3, #0
800f7f0: d010 beq.n 800f814 <FloatToASCII+0x374>
{
if((_I32 != 0) || (_F32 != 0))
800f7f2: 6bbb ldr r3, [r7, #56] ; 0x38
800f7f4: 2b00 cmp r3, #0
800f7f6: d102 bne.n 800f7fe <FloatToASCII+0x35e>
800f7f8: 6b7b ldr r3, [r7, #52] ; 0x34
800f7fa: 2b00 cmp r3, #0
800f7fc: d00a beq.n 800f814 <FloatToASCII+0x374>
tmparray[idx++] = '-';
800f7fe: f897 305f ldrb.w r3, [r7, #95] ; 0x5f
800f802: 1c5a adds r2, r3, #1
800f804: f887 205f strb.w r2, [r7, #95] ; 0x5f
800f808: f107 0260 add.w r2, r7, #96 ; 0x60
800f80c: 4413 add r3, r2
800f80e: 222d movs r2, #45 ; 0x2d
800f810: f803 2c54 strb.w r2, [r3, #-84]
}
}
for(i = 0; i < idx; i++)
800f814: 2300 movs r3, #0
800f816: 65bb str r3, [r7, #88] ; 0x58
800f818: e011 b.n 800f83e <FloatToASCII+0x39e>
pString[i] = tmparray[idx - i - 1];
800f81a: f897 205f ldrb.w r2, [r7, #95] ; 0x5f
800f81e: 6dbb ldr r3, [r7, #88] ; 0x58
800f820: 1ad3 subs r3, r2, r3
800f822: 3b01 subs r3, #1
800f824: f107 0260 add.w r2, r7, #96 ; 0x60
800f828: 4413 add r3, r2
800f82a: f813 1c54 ldrb.w r1, [r3, #-84]
800f82e: 4a09 ldr r2, [pc, #36] ; (800f854 <FloatToASCII+0x3b4>)
800f830: 6dbb ldr r3, [r7, #88] ; 0x58
800f832: 4413 add r3, r2
800f834: 460a mov r2, r1
800f836: 701a strb r2, [r3, #0]
for(i = 0; i < idx; i++)
800f838: 6dbb ldr r3, [r7, #88] ; 0x58
800f83a: 3301 adds r3, #1
800f83c: 65bb str r3, [r7, #88] ; 0x58
800f83e: f897 205f ldrb.w r2, [r7, #95] ; 0x5f
800f842: 6dbb ldr r3, [r7, #88] ; 0x58
800f844: 429a cmp r2, r3
800f846: dce8 bgt.n 800f81a <FloatToASCII+0x37a>
return pString;
800f848: 4b02 ldr r3, [pc, #8] ; (800f854 <FloatToASCII+0x3b4>)
}
800f84a: 4618 mov r0, r3
800f84c: 3760 adds r7, #96 ; 0x60
800f84e: 46bd mov sp, r7
800f850: bd80 pop {r7, pc}
800f852: bf00 nop
800f854: 2006c24c .word 0x2006c24c
0800f858 <HAL_MspInit>:
/* USER CODE END 0 */
/**
* Initializes the Global MSP.
*/
void HAL_MspInit(void)
{
800f858: b480 push {r7}
800f85a: b083 sub sp, #12
800f85c: af00 add r7, sp, #0
/* USER CODE BEGIN MspInit 0 */
/* USER CODE END MspInit 0 */
__HAL_RCC_PWR_CLK_ENABLE();
800f85e: 4a0f ldr r2, [pc, #60] ; (800f89c <HAL_MspInit+0x44>)
800f860: 4b0e ldr r3, [pc, #56] ; (800f89c <HAL_MspInit+0x44>)
800f862: 6c1b ldr r3, [r3, #64] ; 0x40
800f864: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
800f868: 6413 str r3, [r2, #64] ; 0x40
800f86a: 4b0c ldr r3, [pc, #48] ; (800f89c <HAL_MspInit+0x44>)
800f86c: 6c1b ldr r3, [r3, #64] ; 0x40
800f86e: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
800f872: 607b str r3, [r7, #4]
800f874: 687b ldr r3, [r7, #4]
__HAL_RCC_SYSCFG_CLK_ENABLE();
800f876: 4a09 ldr r2, [pc, #36] ; (800f89c <HAL_MspInit+0x44>)
800f878: 4b08 ldr r3, [pc, #32] ; (800f89c <HAL_MspInit+0x44>)
800f87a: 6c5b ldr r3, [r3, #68] ; 0x44
800f87c: f443 4380 orr.w r3, r3, #16384 ; 0x4000
800f880: 6453 str r3, [r2, #68] ; 0x44
800f882: 4b06 ldr r3, [pc, #24] ; (800f89c <HAL_MspInit+0x44>)
800f884: 6c5b ldr r3, [r3, #68] ; 0x44
800f886: f403 4380 and.w r3, r3, #16384 ; 0x4000
800f88a: 603b str r3, [r7, #0]
800f88c: 683b ldr r3, [r7, #0]
/* System interrupt init*/
/* USER CODE BEGIN MspInit 1 */
/* USER CODE END MspInit 1 */
}
800f88e: bf00 nop
800f890: 370c adds r7, #12
800f892: 46bd mov sp, r7
800f894: f85d 7b04 ldr.w r7, [sp], #4
800f898: 4770 bx lr
800f89a: bf00 nop
800f89c: 40023800 .word 0x40023800
0800f8a0 <NMI_Handler>:
/******************************************************************************/
/**
* @brief This function handles Non maskable interrupt.
*/
void NMI_Handler(void)
{
800f8a0: b480 push {r7}
800f8a2: 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)
800f8a4: e7fe b.n 800f8a4 <NMI_Handler+0x4>
0800f8a6 <HardFault_Handler>:
/**
* @brief This function handles Hard fault interrupt.
*/
void HardFault_Handler(void)
{
800f8a6: b480 push {r7}
800f8a8: af00 add r7, sp, #0
/* USER CODE BEGIN HardFault_IRQn 0 */
/* USER CODE END HardFault_IRQn 0 */
while (1)
800f8aa: e7fe b.n 800f8aa <HardFault_Handler+0x4>
0800f8ac <MemManage_Handler>:
/**
* @brief This function handles Memory management fault.
*/
void MemManage_Handler(void)
{
800f8ac: b480 push {r7}
800f8ae: af00 add r7, sp, #0
/* USER CODE BEGIN MemoryManagement_IRQn 0 */
/* USER CODE END MemoryManagement_IRQn 0 */
while (1)
800f8b0: e7fe b.n 800f8b0 <MemManage_Handler+0x4>
0800f8b2 <BusFault_Handler>:
/**
* @brief This function handles Pre-fetch fault, memory access fault.
*/
void BusFault_Handler(void)
{
800f8b2: b480 push {r7}
800f8b4: af00 add r7, sp, #0
/* USER CODE BEGIN BusFault_IRQn 0 */
/* USER CODE END BusFault_IRQn 0 */
while (1)
800f8b6: e7fe b.n 800f8b6 <BusFault_Handler+0x4>
0800f8b8 <UsageFault_Handler>:
/**
* @brief This function handles Undefined instruction or illegal state.
*/
void UsageFault_Handler(void)
{
800f8b8: b480 push {r7}
800f8ba: af00 add r7, sp, #0
/* USER CODE BEGIN UsageFault_IRQn 0 */
/* USER CODE END UsageFault_IRQn 0 */
while (1)
800f8bc: e7fe b.n 800f8bc <UsageFault_Handler+0x4>
0800f8be <SVC_Handler>:
/**
* @brief This function handles System service call via SWI instruction.
*/
void SVC_Handler(void)
{
800f8be: b480 push {r7}
800f8c0: af00 add r7, sp, #0
/* USER CODE END SVCall_IRQn 0 */
/* USER CODE BEGIN SVCall_IRQn 1 */
/* USER CODE END SVCall_IRQn 1 */
}
800f8c2: bf00 nop
800f8c4: 46bd mov sp, r7
800f8c6: f85d 7b04 ldr.w r7, [sp], #4
800f8ca: 4770 bx lr
0800f8cc <DebugMon_Handler>:
/**
* @brief This function handles Debug monitor.
*/
void DebugMon_Handler(void)
{
800f8cc: b480 push {r7}
800f8ce: af00 add r7, sp, #0
/* USER CODE END DebugMonitor_IRQn 0 */
/* USER CODE BEGIN DebugMonitor_IRQn 1 */
/* USER CODE END DebugMonitor_IRQn 1 */
}
800f8d0: bf00 nop
800f8d2: 46bd mov sp, r7
800f8d4: f85d 7b04 ldr.w r7, [sp], #4
800f8d8: 4770 bx lr
0800f8da <PendSV_Handler>:
/**
* @brief This function handles Pendable request for system service.
*/
void PendSV_Handler(void)
{
800f8da: b480 push {r7}
800f8dc: af00 add r7, sp, #0
/* USER CODE END PendSV_IRQn 0 */
/* USER CODE BEGIN PendSV_IRQn 1 */
/* USER CODE END PendSV_IRQn 1 */
}
800f8de: bf00 nop
800f8e0: 46bd mov sp, r7
800f8e2: f85d 7b04 ldr.w r7, [sp], #4
800f8e6: 4770 bx lr
0800f8e8 <SysTick_Handler>:
/**
* @brief This function handles System tick timer.
*/
void SysTick_Handler(void)
{
800f8e8: b580 push {r7, lr}
800f8ea: af00 add r7, sp, #0
/* USER CODE BEGIN SysTick_IRQn 0 */
/* USER CODE END SysTick_IRQn 0 */
HAL_IncTick();
800f8ec: f001 fe62 bl 80115b4 <HAL_IncTick>
/* USER CODE BEGIN SysTick_IRQn 1 */
/* USER CODE END SysTick_IRQn 1 */
}
800f8f0: bf00 nop
800f8f2: bd80 pop {r7, pc}
0800f8f4 <EXTI2_IRQHandler>:
/**
* @brief This function handles EXTI line2 interrupt.
*/
void EXTI2_IRQHandler(void)
{
800f8f4: b580 push {r7, lr}
800f8f6: af00 add r7, sp, #0
/* USER CODE BEGIN EXTI2_IRQn 0 */
/* USER CODE END EXTI2_IRQn 0 */
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_2);
800f8f8: 2004 movs r0, #4
800f8fa: f003 f9c1 bl 8012c80 <HAL_GPIO_EXTI_IRQHandler>
/* USER CODE BEGIN EXTI2_IRQn 1 */
/* USER CODE END EXTI2_IRQn 1 */
}
800f8fe: bf00 nop
800f900: bd80 pop {r7, pc}
0800f902 <EXTI3_IRQHandler>:
/**
* @brief This function handles EXTI line3 interrupt.
*/
void EXTI3_IRQHandler(void)
{
800f902: b580 push {r7, lr}
800f904: af00 add r7, sp, #0
/* USER CODE BEGIN EXTI3_IRQn 0 */
/* USER CODE END EXTI3_IRQn 0 */
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_3);
800f906: 2008 movs r0, #8
800f908: f003 f9ba bl 8012c80 <HAL_GPIO_EXTI_IRQHandler>
/* USER CODE BEGIN EXTI3_IRQn 1 */
/* USER CODE END EXTI3_IRQn 1 */
}
800f90c: bf00 nop
800f90e: bd80 pop {r7, pc}
0800f910 <TIM7_IRQHandler>:
/**
* @brief This function handles TIM7 global interrupt.
*/
void TIM7_IRQHandler(void)
{
800f910: b580 push {r7, lr}
800f912: af00 add r7, sp, #0
/* USER CODE BEGIN TIM7_IRQn 0 */
/* USER CODE END TIM7_IRQn 0 */
HAL_TIM_IRQHandler(&htim7);
800f914: 4802 ldr r0, [pc, #8] ; (800f920 <TIM7_IRQHandler+0x10>)
800f916: f004 ff15 bl 8014744 <HAL_TIM_IRQHandler>
/* USER CODE BEGIN TIM7_IRQn 1 */
/* USER CODE END TIM7_IRQn 1 */
}
800f91a: bf00 nop
800f91c: bd80 pop {r7, pc}
800f91e: bf00 nop
800f920: 2006c3e8 .word 0x2006c3e8
0800f924 <DMA2_Stream1_IRQHandler>:
* @brief This function handles DMA2 stream3 global interrupt.
*/
void DMA2_Stream1_IRQHandler(void)
{
800f924: b580 push {r7, lr}
800f926: af00 add r7, sp, #0
/* USER CODE BEGIN DMA2_Stream3_IRQn 0 */
/* USER CODE END DMA2_Stream3_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_adc3);
800f928: 4802 ldr r0, [pc, #8] ; (800f934 <DMA2_Stream1_IRQHandler+0x10>)
800f92a: f002 f857 bl 80119dc <HAL_DMA_IRQHandler>
/* USER CODE BEGIN DMA2_Stream3_IRQn 1 */
/* USER CODE END DMA2_Stream3_IRQn 1 */
}
800f92e: bf00 nop
800f930: bd80 pop {r7, pc}
800f932: bf00 nop
800f934: 2006bae0 .word 0x2006bae0
0800f938 <DMA2_Stream4_IRQHandler>:
/**
* @brief This function handles DMA2 stream4 global interrupt.
*/
void DMA2_Stream4_IRQHandler(void)
{
800f938: b580 push {r7, lr}
800f93a: af00 add r7, sp, #0
/* USER CODE BEGIN DMA2_Stream4_IRQn 0 */
/* USER CODE END DMA2_Stream4_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_adc1);
800f93c: 4802 ldr r0, [pc, #8] ; (800f948 <DMA2_Stream4_IRQHandler+0x10>)
800f93e: f002 f84d bl 80119dc <HAL_DMA_IRQHandler>
/* USER CODE BEGIN DMA2_Stream4_IRQn 1 */
/* USER CODE END DMA2_Stream4_IRQn 1 */
}
800f942: bf00 nop
800f944: bd80 pop {r7, pc}
800f946: bf00 nop
800f948: 2006bbd0 .word 0x2006bbd0
0800f94c <LTDC_IRQHandler>:
/**
* @brief This function handles LTDC global interrupt.
*/
void LTDC_IRQHandler(void)
{
800f94c: b580 push {r7, lr}
800f94e: af00 add r7, sp, #0
/* USER CODE BEGIN LTDC_IRQn 0 */
/* USER CODE END LTDC_IRQn 0 */
HAL_LTDC_IRQHandler(&hLtdcHandler);
800f950: 4802 ldr r0, [pc, #8] ; (800f95c <LTDC_IRQHandler+0x10>)
800f952: f003 fa7d bl 8012e50 <HAL_LTDC_IRQHandler>
/* USER CODE BEGIN LTDC_IRQn 1 */
/* USER CODE END LTDC_IRQn 1 */
}
800f956: bf00 nop
800f958: bd80 pop {r7, pc}
800f95a: bf00 nop
800f95c: 2006c174 .word 0x2006c174
0800f960 <LTDC_ER_IRQHandler>:
/**
* @brief This function handles LTDC global error interrupt.
*/
void LTDC_ER_IRQHandler(void)
{
800f960: b580 push {r7, lr}
800f962: af00 add r7, sp, #0
/* USER CODE BEGIN LTDC_ER_IRQn 0 */
/* USER CODE END LTDC_ER_IRQn 0 */
HAL_LTDC_IRQHandler(&hLtdcHandler);
800f964: 4802 ldr r0, [pc, #8] ; (800f970 <LTDC_ER_IRQHandler+0x10>)
800f966: f003 fa73 bl 8012e50 <HAL_LTDC_IRQHandler>
/* USER CODE BEGIN LTDC_ER_IRQn 1 */
/* USER CODE END LTDC_ER_IRQn 1 */
}
800f96a: bf00 nop
800f96c: bd80 pop {r7, pc}
800f96e: bf00 nop
800f970: 2006c174 .word 0x2006c174
0800f974 <SystemInit>:
* SystemFrequency variable.
* @param None
* @retval None
*/
void SystemInit(void)
{
800f974: b480 push {r7}
800f976: 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 */
800f978: 4a06 ldr r2, [pc, #24] ; (800f994 <SystemInit+0x20>)
800f97a: 4b06 ldr r3, [pc, #24] ; (800f994 <SystemInit+0x20>)
800f97c: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
800f980: f443 0370 orr.w r3, r3, #15728640 ; 0xf00000
800f984: 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 */
}
800f988: bf00 nop
800f98a: 46bd mov sp, r7
800f98c: f85d 7b04 ldr.w r7, [sp], #4
800f990: 4770 bx lr
800f992: bf00 nop
800f994: e000ed00 .word 0xe000ed00
0800f998 <MX_TIM7_Init>:
}
/* TIM7 init function */
void MX_TIM7_Init(void)
{
800f998: b580 push {r7, lr}
800f99a: b084 sub sp, #16
800f99c: af00 add r7, sp, #0
TIM_MasterConfigTypeDef sMasterConfig;
htim7.Instance = TIM7;
800f99e: 4b16 ldr r3, [pc, #88] ; (800f9f8 <MX_TIM7_Init+0x60>)
800f9a0: 4a16 ldr r2, [pc, #88] ; (800f9fc <MX_TIM7_Init+0x64>)
800f9a2: 601a str r2, [r3, #0]
htim7.Init.Prescaler = (10 - 1);
800f9a4: 4b14 ldr r3, [pc, #80] ; (800f9f8 <MX_TIM7_Init+0x60>)
800f9a6: 2209 movs r2, #9
800f9a8: 605a str r2, [r3, #4]
htim7.Init.CounterMode = TIM_COUNTERMODE_UP;
800f9aa: 4b13 ldr r3, [pc, #76] ; (800f9f8 <MX_TIM7_Init+0x60>)
800f9ac: 2200 movs r2, #0
800f9ae: 609a str r2, [r3, #8]
htim7.Init.Period = (54000 - 1);
800f9b0: 4b11 ldr r3, [pc, #68] ; (800f9f8 <MX_TIM7_Init+0x60>)
800f9b2: f24d 22ef movw r2, #53999 ; 0xd2ef
800f9b6: 60da str r2, [r3, #12]
htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
800f9b8: 4b0f ldr r3, [pc, #60] ; (800f9f8 <MX_TIM7_Init+0x60>)
800f9ba: 2200 movs r2, #0
800f9bc: 619a str r2, [r3, #24]
if(HAL_TIM_Base_Init(&htim7) != HAL_OK) {
800f9be: 480e ldr r0, [pc, #56] ; (800f9f8 <MX_TIM7_Init+0x60>)
800f9c0: f004 fdf0 bl 80145a4 <HAL_TIM_Base_Init>
800f9c4: 4603 mov r3, r0
800f9c6: 2b00 cmp r3, #0
800f9c8: d001 beq.n 800f9ce <MX_TIM7_Init+0x36>
Error_Handler();
800f9ca: f7f6 fa4b bl 8005e64 <Error_Handler>
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
800f9ce: 2300 movs r3, #0
800f9d0: 607b str r3, [r7, #4]
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
800f9d2: 2300 movs r3, #0
800f9d4: 60fb str r3, [r7, #12]
if (HAL_TIMEx_MasterConfigSynchronization(&htim7, &sMasterConfig) != HAL_OK) {
800f9d6: 1d3b adds r3, r7, #4
800f9d8: 4619 mov r1, r3
800f9da: 4807 ldr r0, [pc, #28] ; (800f9f8 <MX_TIM7_Init+0x60>)
800f9dc: f005 f89a bl 8014b14 <HAL_TIMEx_MasterConfigSynchronization>
800f9e0: 4603 mov r3, r0
800f9e2: 2b00 cmp r3, #0
800f9e4: d001 beq.n 800f9ea <MX_TIM7_Init+0x52>
Error_Handler();
800f9e6: f7f6 fa3d bl 8005e64 <Error_Handler>
}
HAL_TIM_Base_Start_IT(&htim7);
800f9ea: 4803 ldr r0, [pc, #12] ; (800f9f8 <MX_TIM7_Init+0x60>)
800f9ec: f004 fe32 bl 8014654 <HAL_TIM_Base_Start_IT>
}
800f9f0: bf00 nop
800f9f2: 3710 adds r7, #16
800f9f4: 46bd mov sp, r7
800f9f6: bd80 pop {r7, pc}
800f9f8: 2006c3e8 .word 0x2006c3e8
800f9fc: 40001400 .word 0x40001400
0800fa00 <HAL_TIM_Base_MspInit>:
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
{
800fa00: b580 push {r7, lr}
800fa02: b086 sub sp, #24
800fa04: af00 add r7, sp, #0
800fa06: 6078 str r0, [r7, #4]
if(tim_baseHandle->Instance == TIM1)
800fa08: 687b ldr r3, [r7, #4]
800fa0a: 681b ldr r3, [r3, #0]
800fa0c: 4a1f ldr r2, [pc, #124] ; (800fa8c <HAL_TIM_Base_MspInit+0x8c>)
800fa0e: 4293 cmp r3, r2
800fa10: d10c bne.n 800fa2c <HAL_TIM_Base_MspInit+0x2c>
{
__HAL_RCC_TIM1_CLK_ENABLE();
800fa12: 4a1f ldr r2, [pc, #124] ; (800fa90 <HAL_TIM_Base_MspInit+0x90>)
800fa14: 4b1e ldr r3, [pc, #120] ; (800fa90 <HAL_TIM_Base_MspInit+0x90>)
800fa16: 6c5b ldr r3, [r3, #68] ; 0x44
800fa18: f043 0301 orr.w r3, r3, #1
800fa1c: 6453 str r3, [r2, #68] ; 0x44
800fa1e: 4b1c ldr r3, [pc, #112] ; (800fa90 <HAL_TIM_Base_MspInit+0x90>)
800fa20: 6c5b ldr r3, [r3, #68] ; 0x44
800fa22: f003 0301 and.w r3, r3, #1
800fa26: 617b str r3, [r7, #20]
800fa28: 697b ldr r3, [r7, #20]
{
__HAL_RCC_TIM7_CLK_ENABLE();
HAL_NVIC_SetPriority(TIM7_IRQn, 3, 0);
HAL_NVIC_EnableIRQ(TIM7_IRQn);
}
}
800fa2a: e02a b.n 800fa82 <HAL_TIM_Base_MspInit+0x82>
if(tim_baseHandle->Instance == TIM5)
800fa2c: 687b ldr r3, [r7, #4]
800fa2e: 681b ldr r3, [r3, #0]
800fa30: 4a18 ldr r2, [pc, #96] ; (800fa94 <HAL_TIM_Base_MspInit+0x94>)
800fa32: 4293 cmp r3, r2
800fa34: d10c bne.n 800fa50 <HAL_TIM_Base_MspInit+0x50>
__HAL_RCC_TIM5_CLK_ENABLE();
800fa36: 4a16 ldr r2, [pc, #88] ; (800fa90 <HAL_TIM_Base_MspInit+0x90>)
800fa38: 4b15 ldr r3, [pc, #84] ; (800fa90 <HAL_TIM_Base_MspInit+0x90>)
800fa3a: 6c1b ldr r3, [r3, #64] ; 0x40
800fa3c: f043 0308 orr.w r3, r3, #8
800fa40: 6413 str r3, [r2, #64] ; 0x40
800fa42: 4b13 ldr r3, [pc, #76] ; (800fa90 <HAL_TIM_Base_MspInit+0x90>)
800fa44: 6c1b ldr r3, [r3, #64] ; 0x40
800fa46: f003 0308 and.w r3, r3, #8
800fa4a: 613b str r3, [r7, #16]
800fa4c: 693b ldr r3, [r7, #16]
}
800fa4e: e018 b.n 800fa82 <HAL_TIM_Base_MspInit+0x82>
if(tim_baseHandle->Instance == TIM7)
800fa50: 687b ldr r3, [r7, #4]
800fa52: 681b ldr r3, [r3, #0]
800fa54: 4a10 ldr r2, [pc, #64] ; (800fa98 <HAL_TIM_Base_MspInit+0x98>)
800fa56: 4293 cmp r3, r2
800fa58: d113 bne.n 800fa82 <HAL_TIM_Base_MspInit+0x82>
__HAL_RCC_TIM7_CLK_ENABLE();
800fa5a: 4a0d ldr r2, [pc, #52] ; (800fa90 <HAL_TIM_Base_MspInit+0x90>)
800fa5c: 4b0c ldr r3, [pc, #48] ; (800fa90 <HAL_TIM_Base_MspInit+0x90>)
800fa5e: 6c1b ldr r3, [r3, #64] ; 0x40
800fa60: f043 0320 orr.w r3, r3, #32
800fa64: 6413 str r3, [r2, #64] ; 0x40
800fa66: 4b0a ldr r3, [pc, #40] ; (800fa90 <HAL_TIM_Base_MspInit+0x90>)
800fa68: 6c1b ldr r3, [r3, #64] ; 0x40
800fa6a: f003 0320 and.w r3, r3, #32
800fa6e: 60fb str r3, [r7, #12]
800fa70: 68fb ldr r3, [r7, #12]
HAL_NVIC_SetPriority(TIM7_IRQn, 3, 0);
800fa72: 2200 movs r2, #0
800fa74: 2103 movs r1, #3
800fa76: 2037 movs r0, #55 ; 0x37
800fa78: f001 fed9 bl 801182e <HAL_NVIC_SetPriority>
HAL_NVIC_EnableIRQ(TIM7_IRQn);
800fa7c: 2037 movs r0, #55 ; 0x37
800fa7e: f001 fef2 bl 8011866 <HAL_NVIC_EnableIRQ>
}
800fa82: bf00 nop
800fa84: 3718 adds r7, #24
800fa86: 46bd mov sp, r7
800fa88: bd80 pop {r7, pc}
800fa8a: bf00 nop
800fa8c: 40010000 .word 0x40010000
800fa90: 40023800 .word 0x40023800
800fa94: 40000c00 .word 0x40000c00
800fa98: 40001400 .word 0x40001400
0800fa9c <HAL_TIM_PeriodElapsedCallback>:
__IO uint32_t maxtime = 0;
/* USER CODE BEGIN 1 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
800fa9c: b580 push {r7, lr}
800fa9e: b084 sub sp, #16
800faa0: af00 add r7, sp, #0
800faa2: 6078 str r0, [r7, #4]
__IO uint16_t Data32, i;
switch((uint32_t) htim->Instance)
800faa4: 687b ldr r3, [r7, #4]
800faa6: 681b ldr r3, [r3, #0]
800faa8: 461a mov r2, r3
800faaa: 4b3c ldr r3, [pc, #240] ; (800fb9c <HAL_TIM_PeriodElapsedCallback+0x100>)
800faac: 429a cmp r2, r3
800faae: d000 beq.n 800fab2 <HAL_TIM_PeriodElapsedCallback+0x16>
if(repeat)
repeat--;
break;
}
}
800fab0: e070 b.n 800fb94 <HAL_TIM_PeriodElapsedCallback+0xf8>
__HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE);
800fab2: 687b ldr r3, [r7, #4]
800fab4: 681b ldr r3, [r3, #0]
800fab6: f06f 0201 mvn.w r2, #1
800faba: 611a str r2, [r3, #16]
if((--timerAsk) == 0)
800fabc: 4b38 ldr r3, [pc, #224] ; (800fba0 <HAL_TIM_PeriodElapsedCallback+0x104>)
800fabe: 881b ldrh r3, [r3, #0]
800fac0: b29b uxth r3, r3
800fac2: 3b01 subs r3, #1
800fac4: b29b uxth r3, r3
800fac6: 4a36 ldr r2, [pc, #216] ; (800fba0 <HAL_TIM_PeriodElapsedCallback+0x104>)
800fac8: 4619 mov r1, r3
800faca: 8011 strh r1, [r2, #0]
800facc: 2b00 cmp r3, #0
800face: d105 bne.n 800fadc <HAL_TIM_PeriodElapsedCallback+0x40>
timerAsk = msec1900;
800fad0: 4b33 ldr r3, [pc, #204] ; (800fba0 <HAL_TIM_PeriodElapsedCallback+0x104>)
800fad2: 22be movs r2, #190 ; 0xbe
800fad4: 801a strh r2, [r3, #0]
FlagAsk = true;
800fad6: 4b33 ldr r3, [pc, #204] ; (800fba4 <HAL_TIM_PeriodElapsedCallback+0x108>)
800fad8: 2201 movs r2, #1
800fada: 701a strb r2, [r3, #0]
if(timerKeys)
800fadc: 4b32 ldr r3, [pc, #200] ; (800fba8 <HAL_TIM_PeriodElapsedCallback+0x10c>)
800fade: 881b ldrh r3, [r3, #0]
800fae0: b29b uxth r3, r3
800fae2: 2b00 cmp r3, #0
800fae4: d007 beq.n 800faf6 <HAL_TIM_PeriodElapsedCallback+0x5a>
timerKeys--;
800fae6: 4b30 ldr r3, [pc, #192] ; (800fba8 <HAL_TIM_PeriodElapsedCallback+0x10c>)
800fae8: 881b ldrh r3, [r3, #0]
800faea: b29b uxth r3, r3
800faec: 3b01 subs r3, #1
800faee: b29a uxth r2, r3
800faf0: 4b2d ldr r3, [pc, #180] ; (800fba8 <HAL_TIM_PeriodElapsedCallback+0x10c>)
800faf2: 801a strh r2, [r3, #0]
800faf4: e00b b.n 800fb0e <HAL_TIM_PeriodElapsedCallback+0x72>
timerKeys = 2;
800faf6: 4b2c ldr r3, [pc, #176] ; (800fba8 <HAL_TIM_PeriodElapsedCallback+0x10c>)
800faf8: 2202 movs r2, #2
800fafa: 801a strh r2, [r3, #0]
if(!KEY_STATE)
800fafc: 4b2b ldr r3, [pc, #172] ; (800fbac <HAL_TIM_PeriodElapsedCallback+0x110>)
800fafe: 681b ldr r3, [r3, #0]
800fb00: 2b00 cmp r3, #0
800fb02: d104 bne.n 800fb0e <HAL_TIM_PeriodElapsedCallback+0x72>
KEY_STATE = kbhit();
800fb04: f7f0 ffca bl 8000a9c <kbhit>
800fb08: 4602 mov r2, r0
800fb0a: 4b28 ldr r3, [pc, #160] ; (800fbac <HAL_TIM_PeriodElapsedCallback+0x110>)
800fb0c: 601a str r2, [r3, #0]
if(timerRefreshScreen)
800fb0e: 4b28 ldr r3, [pc, #160] ; (800fbb0 <HAL_TIM_PeriodElapsedCallback+0x114>)
800fb10: 881b ldrh r3, [r3, #0]
800fb12: b29b uxth r3, r3
800fb14: 2b00 cmp r3, #0
800fb16: d007 beq.n 800fb28 <HAL_TIM_PeriodElapsedCallback+0x8c>
timerRefreshScreen--;
800fb18: 4b25 ldr r3, [pc, #148] ; (800fbb0 <HAL_TIM_PeriodElapsedCallback+0x114>)
800fb1a: 881b ldrh r3, [r3, #0]
800fb1c: b29b uxth r3, r3
800fb1e: 3b01 subs r3, #1
800fb20: b29a uxth r2, r3
800fb22: 4b23 ldr r3, [pc, #140] ; (800fbb0 <HAL_TIM_PeriodElapsedCallback+0x114>)
800fb24: 801a strh r2, [r3, #0]
800fb26: e028 b.n 800fb7a <HAL_TIM_PeriodElapsedCallback+0xde>
timerRefreshScreen = MSEC_REFRESH[0];
800fb28: 220a movs r2, #10
800fb2a: 4b21 ldr r3, [pc, #132] ; (800fbb0 <HAL_TIM_PeriodElapsedCallback+0x114>)
800fb2c: 801a strh r2, [r3, #0]
Cursorblink ^= 1;
800fb2e: 4b21 ldr r3, [pc, #132] ; (800fbb4 <HAL_TIM_PeriodElapsedCallback+0x118>)
800fb30: 781b ldrb r3, [r3, #0]
800fb32: b2db uxtb r3, r3
800fb34: f083 0301 eor.w r3, r3, #1
800fb38: b2da uxtb r2, r3
800fb3a: 4b1e ldr r3, [pc, #120] ; (800fbb4 <HAL_TIM_PeriodElapsedCallback+0x118>)
800fb3c: 701a strb r2, [r3, #0]
if(cntblink)
800fb3e: 4b1e ldr r3, [pc, #120] ; (800fbb8 <HAL_TIM_PeriodElapsedCallback+0x11c>)
800fb40: 881b ldrh r3, [r3, #0]
800fb42: b29b uxth r3, r3
800fb44: 2b00 cmp r3, #0
800fb46: d007 beq.n 800fb58 <HAL_TIM_PeriodElapsedCallback+0xbc>
cntblink--;
800fb48: 4b1b ldr r3, [pc, #108] ; (800fbb8 <HAL_TIM_PeriodElapsedCallback+0x11c>)
800fb4a: 881b ldrh r3, [r3, #0]
800fb4c: b29b uxth r3, r3
800fb4e: 3b01 subs r3, #1
800fb50: b29a uxth r2, r3
800fb52: 4b19 ldr r3, [pc, #100] ; (800fbb8 <HAL_TIM_PeriodElapsedCallback+0x11c>)
800fb54: 801a strh r2, [r3, #0]
800fb56: e00d b.n 800fb74 <HAL_TIM_PeriodElapsedCallback+0xd8>
cntblink = 2;
800fb58: 4b17 ldr r3, [pc, #92] ; (800fbb8 <HAL_TIM_PeriodElapsedCallback+0x11c>)
800fb5a: 2202 movs r2, #2
800fb5c: 801a strh r2, [r3, #0]
blink ^= 1;
800fb5e: 4b17 ldr r3, [pc, #92] ; (800fbbc <HAL_TIM_PeriodElapsedCallback+0x120>)
800fb60: 781b ldrb r3, [r3, #0]
800fb62: b2db uxtb r3, r3
800fb64: f083 0301 eor.w r3, r3, #1
800fb68: b2da uxtb r2, r3
800fb6a: 4b14 ldr r3, [pc, #80] ; (800fbbc <HAL_TIM_PeriodElapsedCallback+0x120>)
800fb6c: 701a strb r2, [r3, #0]
cntBat = 1;
800fb6e: 4b14 ldr r3, [pc, #80] ; (800fbc0 <HAL_TIM_PeriodElapsedCallback+0x124>)
800fb70: 2201 movs r2, #1
800fb72: 701a strb r2, [r3, #0]
screen = true;
800fb74: 4b13 ldr r3, [pc, #76] ; (800fbc4 <HAL_TIM_PeriodElapsedCallback+0x128>)
800fb76: 2201 movs r2, #1
800fb78: 701a strb r2, [r3, #0]
if(repeat)
800fb7a: 4b13 ldr r3, [pc, #76] ; (800fbc8 <HAL_TIM_PeriodElapsedCallback+0x12c>)
800fb7c: 881b ldrh r3, [r3, #0]
800fb7e: b29b uxth r3, r3
800fb80: 2b00 cmp r3, #0
800fb82: d006 beq.n 800fb92 <HAL_TIM_PeriodElapsedCallback+0xf6>
repeat--;
800fb84: 4b10 ldr r3, [pc, #64] ; (800fbc8 <HAL_TIM_PeriodElapsedCallback+0x12c>)
800fb86: 881b ldrh r3, [r3, #0]
800fb88: b29b uxth r3, r3
800fb8a: 3b01 subs r3, #1
800fb8c: b29a uxth r2, r3
800fb8e: 4b0e ldr r3, [pc, #56] ; (800fbc8 <HAL_TIM_PeriodElapsedCallback+0x12c>)
800fb90: 801a strh r2, [r3, #0]
break;
800fb92: bf00 nop
}
800fb94: bf00 nop
800fb96: 3710 adds r7, #16
800fb98: 46bd mov sp, r7
800fb9a: bd80 pop {r7, pc}
800fb9c: 40001400 .word 0x40001400
800fba0: 2002099e .word 0x2002099e
800fba4: 2006ba87 .word 0x2006ba87
800fba8: 2002099a .word 0x2002099a
800fbac: 200209e0 .word 0x200209e0
800fbb0: 2002099c .word 0x2002099c
800fbb4: 2006ba85 .word 0x2006ba85
800fbb8: 20020998 .word 0x20020998
800fbbc: 2006ba84 .word 0x2006ba84
800fbc0: 2006ba86 .word 0x2006ba86
800fbc4: 20020030 .word 0x20020030
800fbc8: 200209da .word 0x200209da
0800fbcc <MX_UART7_Init>:
void MX_UART7_Init(void)
{
800fbcc: b580 push {r7, lr}
800fbce: af00 add r7, sp, #0
huart7.Instance = UART7;
800fbd0: 4b47 ldr r3, [pc, #284] ; (800fcf0 <MX_UART7_Init+0x124>)
800fbd2: 4a48 ldr r2, [pc, #288] ; (800fcf4 <MX_UART7_Init+0x128>)
800fbd4: 601a str r2, [r3, #0]
huart7.Init.BaudRate = BAUDRATE[pardata.BAUD];
800fbd6: 4b48 ldr r3, [pc, #288] ; (800fcf8 <MX_UART7_Init+0x12c>)
800fbd8: f8b3 3202 ldrh.w r3, [r3, #514] ; 0x202
800fbdc: b29b uxth r3, r3
800fbde: 461a mov r2, r3
800fbe0: 4b46 ldr r3, [pc, #280] ; (800fcfc <MX_UART7_Init+0x130>)
800fbe2: f853 3022 ldr.w r3, [r3, r2, lsl #2]
800fbe6: 4a42 ldr r2, [pc, #264] ; (800fcf0 <MX_UART7_Init+0x124>)
800fbe8: 6053 str r3, [r2, #4]
switch(pardata.INFB)
800fbea: 4b43 ldr r3, [pc, #268] ; (800fcf8 <MX_UART7_Init+0x12c>)
800fbec: f8b3 3204 ldrh.w r3, [r3, #516] ; 0x204
800fbf0: b29b uxth r3, r3
800fbf2: 2b01 cmp r3, #1
800fbf4: d00a beq.n 800fc0c <MX_UART7_Init+0x40>
800fbf6: 2b02 cmp r3, #2
800fbf8: d011 beq.n 800fc1e <MX_UART7_Init+0x52>
800fbfa: 2b00 cmp r3, #0
800fbfc: d118 bne.n 800fc30 <MX_UART7_Init+0x64>
{
case 0: //NONE
huart7.Init.WordLength = UART_WORDLENGTH_8B;
800fbfe: 4b3c ldr r3, [pc, #240] ; (800fcf0 <MX_UART7_Init+0x124>)
800fc00: 2200 movs r2, #0
800fc02: 609a str r2, [r3, #8]
huart7.Init.Parity = UART_PARITY_NONE;
800fc04: 4b3a ldr r3, [pc, #232] ; (800fcf0 <MX_UART7_Init+0x124>)
800fc06: 2200 movs r2, #0
800fc08: 611a str r2, [r3, #16]
break;
800fc0a: e011 b.n 800fc30 <MX_UART7_Init+0x64>
case 1: //ODD
huart7.Init.WordLength = UART_WORDLENGTH_9B;
800fc0c: 4b38 ldr r3, [pc, #224] ; (800fcf0 <MX_UART7_Init+0x124>)
800fc0e: f44f 5280 mov.w r2, #4096 ; 0x1000
800fc12: 609a str r2, [r3, #8]
huart7.Init.Parity = UART_PARITY_ODD;
800fc14: 4b36 ldr r3, [pc, #216] ; (800fcf0 <MX_UART7_Init+0x124>)
800fc16: f44f 62c0 mov.w r2, #1536 ; 0x600
800fc1a: 611a str r2, [r3, #16]
break;
800fc1c: e008 b.n 800fc30 <MX_UART7_Init+0x64>
case 2: //EVEN
huart7.Init.WordLength = UART_WORDLENGTH_9B;
800fc1e: 4b34 ldr r3, [pc, #208] ; (800fcf0 <MX_UART7_Init+0x124>)
800fc20: f44f 5280 mov.w r2, #4096 ; 0x1000
800fc24: 609a str r2, [r3, #8]
huart7.Init.Parity = UART_PARITY_EVEN;
800fc26: 4b32 ldr r3, [pc, #200] ; (800fcf0 <MX_UART7_Init+0x124>)
800fc28: f44f 6280 mov.w r2, #1024 ; 0x400
800fc2c: 611a str r2, [r3, #16]
break;
800fc2e: bf00 nop
}
huart7.Init.StopBits = UART_STOPBITS_1;
800fc30: 4b2f ldr r3, [pc, #188] ; (800fcf0 <MX_UART7_Init+0x124>)
800fc32: 2200 movs r2, #0
800fc34: 60da str r2, [r3, #12]
huart7.Init.Mode = UART_MODE_TX_RX;
800fc36: 4b2e ldr r3, [pc, #184] ; (800fcf0 <MX_UART7_Init+0x124>)
800fc38: 220c movs r2, #12
800fc3a: 615a str r2, [r3, #20]
huart7.Init.HwFlowCtl = UART_HWCONTROL_NONE;
800fc3c: 4b2c ldr r3, [pc, #176] ; (800fcf0 <MX_UART7_Init+0x124>)
800fc3e: 2200 movs r2, #0
800fc40: 619a str r2, [r3, #24]
if(pardata.BAUD < 9)
800fc42: 4b2d ldr r3, [pc, #180] ; (800fcf8 <MX_UART7_Init+0x12c>)
800fc44: f8b3 3202 ldrh.w r3, [r3, #514] ; 0x202
800fc48: b29b uxth r3, r3
800fc4a: 2b08 cmp r3, #8
800fc4c: d803 bhi.n 800fc56 <MX_UART7_Init+0x8a>
huart7.Init.OverSampling = UART_OVERSAMPLING_16;
800fc4e: 4b28 ldr r3, [pc, #160] ; (800fcf0 <MX_UART7_Init+0x124>)
800fc50: 2200 movs r2, #0
800fc52: 61da str r2, [r3, #28]
800fc54: e003 b.n 800fc5e <MX_UART7_Init+0x92>
else huart7.Init.OverSampling = UART_OVERSAMPLING_8;
800fc56: 4b26 ldr r3, [pc, #152] ; (800fcf0 <MX_UART7_Init+0x124>)
800fc58: f44f 4200 mov.w r2, #32768 ; 0x8000
800fc5c: 61da str r2, [r3, #28]
huart7.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
800fc5e: 4b24 ldr r3, [pc, #144] ; (800fcf0 <MX_UART7_Init+0x124>)
800fc60: 2200 movs r2, #0
800fc62: 621a str r2, [r3, #32]
huart7.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_SWAP_INIT;
800fc64: 4b22 ldr r3, [pc, #136] ; (800fcf0 <MX_UART7_Init+0x124>)
800fc66: 2208 movs r2, #8
800fc68: 625a str r2, [r3, #36] ; 0x24
huart7.AdvancedInit.Swap = UART_ADVFEATURE_SWAP_ENABLE;
800fc6a: 4b21 ldr r3, [pc, #132] ; (800fcf0 <MX_UART7_Init+0x124>)
800fc6c: f44f 4200 mov.w r2, #32768 ; 0x8000
800fc70: 635a str r2, [r3, #52] ; 0x34
if(HAL_UART_Init(&huart7) != HAL_OK) {
800fc72: 481f ldr r0, [pc, #124] ; (800fcf0 <MX_UART7_Init+0x124>)
800fc74: f004 fffa bl 8014c6c <HAL_UART_Init>
800fc78: 4603 mov r3, r0
800fc7a: 2b00 cmp r3, #0
800fc7c: d001 beq.n 800fc82 <MX_UART7_Init+0xb6>
Error_Handler();
800fc7e: f7f6 f8f1 bl 8005e64 <Error_Handler>
}
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
800fc82: 4b1b ldr r3, [pc, #108] ; (800fcf0 <MX_UART7_Init+0x124>)
800fc84: 681b ldr r3, [r3, #0]
800fc86: 69db ldr r3, [r3, #28]
800fc88: f003 0308 and.w r3, r3, #8
800fc8c: 2b08 cmp r3, #8
800fc8e: d103 bne.n 800fc98 <MX_UART7_Init+0xcc>
__HAL_UART_CLEAR_OREFLAG(&huart7);
800fc90: 4b17 ldr r3, [pc, #92] ; (800fcf0 <MX_UART7_Init+0x124>)
800fc92: 681b ldr r3, [r3, #0]
800fc94: 2208 movs r2, #8
800fc96: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
800fc98: 4b15 ldr r3, [pc, #84] ; (800fcf0 <MX_UART7_Init+0x124>)
800fc9a: 681b ldr r3, [r3, #0]
800fc9c: 69db ldr r3, [r3, #28]
800fc9e: f003 0301 and.w r3, r3, #1
800fca2: 2b01 cmp r3, #1
800fca4: d103 bne.n 800fcae <MX_UART7_Init+0xe2>
__HAL_UART_CLEAR_PEFLAG(&huart7);
800fca6: 4b12 ldr r3, [pc, #72] ; (800fcf0 <MX_UART7_Init+0x124>)
800fca8: 681b ldr r3, [r3, #0]
800fcaa: 2201 movs r2, #1
800fcac: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
800fcae: 4b10 ldr r3, [pc, #64] ; (800fcf0 <MX_UART7_Init+0x124>)
800fcb0: 681b ldr r3, [r3, #0]
800fcb2: 69db ldr r3, [r3, #28]
800fcb4: f003 0302 and.w r3, r3, #2
800fcb8: 2b02 cmp r3, #2
800fcba: d103 bne.n 800fcc4 <MX_UART7_Init+0xf8>
__HAL_UART_CLEAR_FEFLAG(&huart7);
800fcbc: 4b0c ldr r3, [pc, #48] ; (800fcf0 <MX_UART7_Init+0x124>)
800fcbe: 681b ldr r3, [r3, #0]
800fcc0: 2202 movs r2, #2
800fcc2: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
800fcc4: 4b0a ldr r3, [pc, #40] ; (800fcf0 <MX_UART7_Init+0x124>)
800fcc6: 681b ldr r3, [r3, #0]
800fcc8: 69db ldr r3, [r3, #28]
800fcca: f003 0304 and.w r3, r3, #4
800fcce: 2b04 cmp r3, #4
800fcd0: d103 bne.n 800fcda <MX_UART7_Init+0x10e>
__HAL_UART_CLEAR_NEFLAG(&huart7);
800fcd2: 4b07 ldr r3, [pc, #28] ; (800fcf0 <MX_UART7_Init+0x124>)
800fcd4: 681b ldr r3, [r3, #0]
800fcd6: 2204 movs r2, #4
800fcd8: 621a str r2, [r3, #32]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800fcda: 2200 movs r2, #0
800fcdc: f44f 7100 mov.w r1, #512 ; 0x200
800fce0: 4807 ldr r0, [pc, #28] ; (800fd00 <MX_UART7_Init+0x134>)
800fce2: f002 ffb3 bl 8012c4c <HAL_GPIO_WritePin>
HAL_Delay(1);
800fce6: 2001 movs r0, #1
800fce8: f001 fc84 bl 80115f4 <HAL_Delay>
//SET_BIT(huart7.Instance->CR1, /*USART_CR1_RXNEIE |*/ USART_CR1_PEIE);
}
800fcec: bf00 nop
800fcee: bd80 pop {r7, pc}
800fcf0: 2006c434 .word 0x2006c434
800fcf4: 40007800 .word 0x40007800
800fcf8: 2006bca8 .word 0x2006bca8
800fcfc: 0801b068 .word 0x0801b068
800fd00: 40021400 .word 0x40021400
0800fd04 <HAL_UART_MspInit>:
HAL_NVIC_DisableIRQ(UART7_IRQn);
}
void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
{
800fd04: b580 push {r7, lr}
800fd06: b08a sub sp, #40 ; 0x28
800fd08: af00 add r7, sp, #0
800fd0a: 6078 str r0, [r7, #4]
GPIO_InitTypeDef GPIO_InitStruct = {0};
800fd0c: f107 0314 add.w r3, r7, #20
800fd10: 2200 movs r2, #0
800fd12: 601a str r2, [r3, #0]
800fd14: 605a str r2, [r3, #4]
800fd16: 609a str r2, [r3, #8]
800fd18: 60da str r2, [r3, #12]
800fd1a: 611a str r2, [r3, #16]
if(uartHandle->Instance==UART7)
800fd1c: 687b ldr r3, [r7, #4]
800fd1e: 681b ldr r3, [r3, #0]
800fd20: 4a1b ldr r2, [pc, #108] ; (800fd90 <HAL_UART_MspInit+0x8c>)
800fd22: 4293 cmp r3, r2
800fd24: d12f bne.n 800fd86 <HAL_UART_MspInit+0x82>
{
__HAL_RCC_UART7_CLK_ENABLE();
800fd26: 4a1b ldr r2, [pc, #108] ; (800fd94 <HAL_UART_MspInit+0x90>)
800fd28: 4b1a ldr r3, [pc, #104] ; (800fd94 <HAL_UART_MspInit+0x90>)
800fd2a: 6c1b ldr r3, [r3, #64] ; 0x40
800fd2c: f043 4380 orr.w r3, r3, #1073741824 ; 0x40000000
800fd30: 6413 str r3, [r2, #64] ; 0x40
800fd32: 4b18 ldr r3, [pc, #96] ; (800fd94 <HAL_UART_MspInit+0x90>)
800fd34: 6c1b ldr r3, [r3, #64] ; 0x40
800fd36: f003 4380 and.w r3, r3, #1073741824 ; 0x40000000
800fd3a: 613b str r3, [r7, #16]
800fd3c: 693b ldr r3, [r7, #16]
__HAL_RCC_GPIOF_CLK_ENABLE();
800fd3e: 4a15 ldr r2, [pc, #84] ; (800fd94 <HAL_UART_MspInit+0x90>)
800fd40: 4b14 ldr r3, [pc, #80] ; (800fd94 <HAL_UART_MspInit+0x90>)
800fd42: 6b1b ldr r3, [r3, #48] ; 0x30
800fd44: f043 0320 orr.w r3, r3, #32
800fd48: 6313 str r3, [r2, #48] ; 0x30
800fd4a: 4b12 ldr r3, [pc, #72] ; (800fd94 <HAL_UART_MspInit+0x90>)
800fd4c: 6b1b ldr r3, [r3, #48] ; 0x30
800fd4e: f003 0320 and.w r3, r3, #32
800fd52: 60fb str r3, [r7, #12]
800fd54: 68fb ldr r3, [r7, #12]
/**UART7 GPIO Configuration
PF6 ------> UART7_RX
PF7 ------> UART7_TX
*/
GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
800fd56: 23c0 movs r3, #192 ; 0xc0
800fd58: 617b str r3, [r7, #20]
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
800fd5a: 2302 movs r3, #2
800fd5c: 61bb str r3, [r7, #24]
GPIO_InitStruct.Pull = GPIO_NOPULL;
800fd5e: 2300 movs r3, #0
800fd60: 61fb str r3, [r7, #28]
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
800fd62: 2303 movs r3, #3
800fd64: 623b str r3, [r7, #32]
GPIO_InitStruct.Alternate = GPIO_AF8_UART7;
800fd66: 2308 movs r3, #8
800fd68: 627b str r3, [r7, #36] ; 0x24
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
800fd6a: f107 0314 add.w r3, r7, #20
800fd6e: 4619 mov r1, r3
800fd70: 4809 ldr r0, [pc, #36] ; (800fd98 <HAL_UART_MspInit+0x94>)
800fd72: f002 fda9 bl 80128c8 <HAL_GPIO_Init>
/* UART7 interrupt Init */
HAL_NVIC_SetPriority(UART7_IRQn, 10, 0);
800fd76: 2200 movs r2, #0
800fd78: 210a movs r1, #10
800fd7a: 2052 movs r0, #82 ; 0x52
800fd7c: f001 fd57 bl 801182e <HAL_NVIC_SetPriority>
HAL_NVIC_EnableIRQ(UART7_IRQn);
800fd80: 2052 movs r0, #82 ; 0x52
800fd82: f001 fd70 bl 8011866 <HAL_NVIC_EnableIRQ>
}
}
800fd86: bf00 nop
800fd88: 3728 adds r7, #40 ; 0x28
800fd8a: 46bd mov sp, r7
800fd8c: bd80 pop {r7, pc}
800fd8e: bf00 nop
800fd90: 40007800 .word 0x40007800
800fd94: 40023800 .word 0x40023800
800fd98: 40021400 .word 0x40021400
0800fd9c <UART7_IRQHandler>:
}
}
void UART7_IRQHandler(void)
{
800fd9c: b580 push {r7, lr}
800fd9e: af00 add r7, sp, #0
if((__HAL_UART_GET_IT_SOURCE(&huart7, UART_IT_RXNE)) && (__HAL_UART_GET_FLAG(&huart7, UART_FLAG_RXNE)))
800fda0: 4b26 ldr r3, [pc, #152] ; (800fe3c <UART7_IRQHandler+0xa0>)
800fda2: 681b ldr r3, [r3, #0]
800fda4: 681b ldr r3, [r3, #0]
800fda6: f003 0320 and.w r3, r3, #32
800fdaa: 2b00 cmp r3, #0
800fdac: d00a beq.n 800fdc4 <UART7_IRQHandler+0x28>
800fdae: 4b23 ldr r3, [pc, #140] ; (800fe3c <UART7_IRQHandler+0xa0>)
800fdb0: 681b ldr r3, [r3, #0]
800fdb2: 69db ldr r3, [r3, #28]
800fdb4: f003 0320 and.w r3, r3, #32
800fdb8: 2b20 cmp r3, #32
800fdba: d103 bne.n 800fdc4 <UART7_IRQHandler+0x28>
{
HAL_UART_RxCpltCallback(&huart7);
800fdbc: 481f ldr r0, [pc, #124] ; (800fe3c <UART7_IRQHandler+0xa0>)
800fdbe: f000 f8ad bl 800ff1c <HAL_UART_RxCpltCallback>
800fdc2: e002 b.n 800fdca <UART7_IRQHandler+0x2e>
}
else
{
HAL_UART_IRQHandler(&huart7);
800fdc4: 481d ldr r0, [pc, #116] ; (800fe3c <UART7_IRQHandler+0xa0>)
800fdc6: f005 fa03 bl 80151d0 <HAL_UART_IRQHandler>
}
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
800fdca: 4b1c ldr r3, [pc, #112] ; (800fe3c <UART7_IRQHandler+0xa0>)
800fdcc: 681b ldr r3, [r3, #0]
800fdce: 69db ldr r3, [r3, #28]
800fdd0: f003 0308 and.w r3, r3, #8
800fdd4: 2b08 cmp r3, #8
800fdd6: d103 bne.n 800fde0 <UART7_IRQHandler+0x44>
__HAL_UART_CLEAR_OREFLAG(&huart7);
800fdd8: 4b18 ldr r3, [pc, #96] ; (800fe3c <UART7_IRQHandler+0xa0>)
800fdda: 681b ldr r3, [r3, #0]
800fddc: 2208 movs r2, #8
800fdde: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
800fde0: 4b16 ldr r3, [pc, #88] ; (800fe3c <UART7_IRQHandler+0xa0>)
800fde2: 681b ldr r3, [r3, #0]
800fde4: 69db ldr r3, [r3, #28]
800fde6: f003 0301 and.w r3, r3, #1
800fdea: 2b01 cmp r3, #1
800fdec: d103 bne.n 800fdf6 <UART7_IRQHandler+0x5a>
__HAL_UART_CLEAR_PEFLAG(&huart7);
800fdee: 4b13 ldr r3, [pc, #76] ; (800fe3c <UART7_IRQHandler+0xa0>)
800fdf0: 681b ldr r3, [r3, #0]
800fdf2: 2201 movs r2, #1
800fdf4: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
800fdf6: 4b11 ldr r3, [pc, #68] ; (800fe3c <UART7_IRQHandler+0xa0>)
800fdf8: 681b ldr r3, [r3, #0]
800fdfa: 69db ldr r3, [r3, #28]
800fdfc: f003 0302 and.w r3, r3, #2
800fe00: 2b02 cmp r3, #2
800fe02: d103 bne.n 800fe0c <UART7_IRQHandler+0x70>
__HAL_UART_CLEAR_FEFLAG(&huart7);
800fe04: 4b0d ldr r3, [pc, #52] ; (800fe3c <UART7_IRQHandler+0xa0>)
800fe06: 681b ldr r3, [r3, #0]
800fe08: 2202 movs r2, #2
800fe0a: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
800fe0c: 4b0b ldr r3, [pc, #44] ; (800fe3c <UART7_IRQHandler+0xa0>)
800fe0e: 681b ldr r3, [r3, #0]
800fe10: 69db ldr r3, [r3, #28]
800fe12: f003 0304 and.w r3, r3, #4
800fe16: 2b04 cmp r3, #4
800fe18: d103 bne.n 800fe22 <UART7_IRQHandler+0x86>
__HAL_UART_CLEAR_NEFLAG(&huart7);
800fe1a: 4b08 ldr r3, [pc, #32] ; (800fe3c <UART7_IRQHandler+0xa0>)
800fe1c: 681b ldr r3, [r3, #0]
800fe1e: 2204 movs r2, #4
800fe20: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_IDLE))
800fe22: 4b06 ldr r3, [pc, #24] ; (800fe3c <UART7_IRQHandler+0xa0>)
800fe24: 681b ldr r3, [r3, #0]
800fe26: 69db ldr r3, [r3, #28]
800fe28: f003 0310 and.w r3, r3, #16
800fe2c: 2b10 cmp r3, #16
800fe2e: d103 bne.n 800fe38 <UART7_IRQHandler+0x9c>
__HAL_UART_CLEAR_IDLEFLAG(&huart7);
800fe30: 4b02 ldr r3, [pc, #8] ; (800fe3c <UART7_IRQHandler+0xa0>)
800fe32: 681b ldr r3, [r3, #0]
800fe34: 2210 movs r2, #16
800fe36: 621a str r2, [r3, #32]
}
800fe38: bf00 nop
800fe3a: bd80 pop {r7, pc}
800fe3c: 2006c434 .word 0x2006c434
0800fe40 <Crc16>:
uint16_t Crc16(uint16_t len)
{
800fe40: b480 push {r7}
800fe42: b085 sub sp, #20
800fe44: af00 add r7, sp, #0
800fe46: 4603 mov r3, r0
800fe48: 80fb strh r3, [r7, #6]
uint16_t i;
uint16_t crc = 0xFFFF;
800fe4a: f64f 73ff movw r3, #65535 ; 0xffff
800fe4e: 81bb strh r3, [r7, #12]
for(i = 0; i < len; i++) {
800fe50: 2300 movs r3, #0
800fe52: 81fb strh r3, [r7, #14]
800fe54: e010 b.n 800fe78 <Crc16+0x38>
crc = (crc >> 8) ^ Crc16Table[(crc & 0xFF) ^ iobuf[i]];
800fe56: 89bb ldrh r3, [r7, #12]
800fe58: 0a1b lsrs r3, r3, #8
800fe5a: b29a uxth r2, r3
800fe5c: 89bb ldrh r3, [r7, #12]
800fe5e: b2db uxtb r3, r3
800fe60: 89f9 ldrh r1, [r7, #14]
800fe62: 480b ldr r0, [pc, #44] ; (800fe90 <Crc16+0x50>)
800fe64: 5c41 ldrb r1, [r0, r1]
800fe66: 404b eors r3, r1
800fe68: 490a ldr r1, [pc, #40] ; (800fe94 <Crc16+0x54>)
800fe6a: f831 3013 ldrh.w r3, [r1, r3, lsl #1]
800fe6e: 4053 eors r3, r2
800fe70: 81bb strh r3, [r7, #12]
for(i = 0; i < len; i++) {
800fe72: 89fb ldrh r3, [r7, #14]
800fe74: 3301 adds r3, #1
800fe76: 81fb strh r3, [r7, #14]
800fe78: 89fa ldrh r2, [r7, #14]
800fe7a: 88fb ldrh r3, [r7, #6]
800fe7c: 429a cmp r2, r3
800fe7e: d3ea bcc.n 800fe56 <Crc16+0x16>
}
return crc;
800fe80: 89bb ldrh r3, [r7, #12]
}
800fe82: 4618 mov r0, r3
800fe84: 3714 adds r7, #20
800fe86: 46bd mov sp, r7
800fe88: f85d 7b04 ldr.w r7, [sp], #4
800fe8c: 4770 bx lr
800fe8e: bf00 nop
800fe90: 2006c5c4 .word 0x2006c5c4
800fe94: 0801ae68 .word 0x0801ae68
0800fe98 <Crc16_RX>:
uint16_t Crc16_RX(uint16_t len)
{
800fe98: b480 push {r7}
800fe9a: b085 sub sp, #20
800fe9c: af00 add r7, sp, #0
800fe9e: 4603 mov r3, r0
800fea0: 80fb strh r3, [r7, #6]
uint16_t i;
uint16_t crc = 0xFFFF;
800fea2: f64f 73ff movw r3, #65535 ; 0xffff
800fea6: 81bb strh r3, [r7, #12]
for(i = 0; i < len; i++) {
800fea8: 2300 movs r3, #0
800feaa: 81fb strh r3, [r7, #14]
800feac: e010 b.n 800fed0 <Crc16_RX+0x38>
crc = (crc >> 8) ^ Crc16Table[(crc & 0xFF) ^ rx[i]];
800feae: 89bb ldrh r3, [r7, #12]
800feb0: 0a1b lsrs r3, r3, #8
800feb2: b29a uxth r2, r3
800feb4: 89bb ldrh r3, [r7, #12]
800feb6: b2db uxtb r3, r3
800feb8: 89f9 ldrh r1, [r7, #14]
800feba: 480b ldr r0, [pc, #44] ; (800fee8 <Crc16_RX+0x50>)
800febc: 5c41 ldrb r1, [r0, r1]
800febe: 404b eors r3, r1
800fec0: 490a ldr r1, [pc, #40] ; (800feec <Crc16_RX+0x54>)
800fec2: f831 3013 ldrh.w r3, [r1, r3, lsl #1]
800fec6: 4053 eors r3, r2
800fec8: 81bb strh r3, [r7, #12]
for(i = 0; i < len; i++) {
800feca: 89fb ldrh r3, [r7, #14]
800fecc: 3301 adds r3, #1
800fece: 81fb strh r3, [r7, #14]
800fed0: 89fa ldrh r2, [r7, #14]
800fed2: 88fb ldrh r3, [r7, #6]
800fed4: 429a cmp r2, r3
800fed6: d3ea bcc.n 800feae <Crc16_RX+0x16>
}
return crc;
800fed8: 89bb ldrh r3, [r7, #12]
}
800feda: 4618 mov r0, r3
800fedc: 3714 adds r7, #20
800fede: 46bd mov sp, r7
800fee0: f85d 7b04 ldr.w r7, [sp], #4
800fee4: 4770 bx lr
800fee6: bf00 nop
800fee8: 2006c4bc .word 0x2006c4bc
800feec: 0801ae68 .word 0x0801ae68
0800fef0 <HAL_UART_TxCpltCallback>:
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
{
800fef0: b580 push {r7, lr}
800fef2: b082 sub sp, #8
800fef4: af00 add r7, sp, #0
800fef6: 6078 str r0, [r7, #4]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800fef8: 2200 movs r2, #0
800fefa: f44f 7100 mov.w r1, #512 ; 0x200
800fefe: 4805 ldr r0, [pc, #20] ; (800ff14 <HAL_UART_TxCpltCallback+0x24>)
800ff00: f002 fea4 bl 8012c4c <HAL_GPIO_WritePin>
TX_OK = true;
800ff04: 4b04 ldr r3, [pc, #16] ; (800ff18 <HAL_UART_TxCpltCallback+0x28>)
800ff06: 2201 movs r2, #1
800ff08: 701a strb r2, [r3, #0]
}
800ff0a: bf00 nop
800ff0c: 3708 adds r7, #8
800ff0e: 46bd mov sp, r7
800ff10: bd80 pop {r7, pc}
800ff12: bf00 nop
800ff14: 40021400 .word 0x40021400
800ff18: 2006ba92 .word 0x2006ba92
0800ff1c <HAL_UART_RxCpltCallback>:
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
800ff1c: b480 push {r7}
800ff1e: b083 sub sp, #12
800ff20: af00 add r7, sp, #0
800ff22: 6078 str r0, [r7, #4]
RX_OK = true;
800ff24: 4b04 ldr r3, [pc, #16] ; (800ff38 <HAL_UART_RxCpltCallback+0x1c>)
800ff26: 2201 movs r2, #1
800ff28: 701a strb r2, [r3, #0]
}
800ff2a: bf00 nop
800ff2c: 370c adds r7, #12
800ff2e: 46bd mov sp, r7
800ff30: f85d 7b04 ldr.w r7, [sp], #4
800ff34: 4770 bx lr
800ff36: bf00 nop
800ff38: 2006ba93 .word 0x2006ba93
0800ff3c <HAL_UART_ErrorCallback>:
void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)
{
800ff3c: b580 push {r7, lr}
800ff3e: b082 sub sp, #8
800ff40: af00 add r7, sp, #0
800ff42: 6078 str r0, [r7, #4]
RX_OK = TX_OK = false;
800ff44: 2100 movs r1, #0
800ff46: 4b0b ldr r3, [pc, #44] ; (800ff74 <HAL_UART_ErrorCallback+0x38>)
800ff48: 460a mov r2, r1
800ff4a: 701a strb r2, [r3, #0]
800ff4c: 4b0a ldr r3, [pc, #40] ; (800ff78 <HAL_UART_ErrorCallback+0x3c>)
800ff4e: 460a mov r2, r1
800ff50: 701a strb r2, [r3, #0]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
800ff52: 2200 movs r2, #0
800ff54: f44f 7100 mov.w r1, #512 ; 0x200
800ff58: 4808 ldr r0, [pc, #32] ; (800ff7c <HAL_UART_ErrorCallback+0x40>)
800ff5a: f002 fe77 bl 8012c4c <HAL_GPIO_WritePin>
HAL_UART_Abort_IT(&huart7);
800ff5e: 4808 ldr r0, [pc, #32] ; (800ff80 <HAL_UART_ErrorCallback+0x44>)
800ff60: f005 f810 bl 8014f84 <HAL_UART_Abort_IT>
UART_ERROR = true;
800ff64: 4b07 ldr r3, [pc, #28] ; (800ff84 <HAL_UART_ErrorCallback+0x48>)
800ff66: 2201 movs r2, #1
800ff68: 701a strb r2, [r3, #0]
}
800ff6a: bf00 nop
800ff6c: 3708 adds r7, #8
800ff6e: 46bd mov sp, r7
800ff70: bd80 pop {r7, pc}
800ff72: bf00 nop
800ff74: 2006ba92 .word 0x2006ba92
800ff78: 2006ba93 .word 0x2006ba93
800ff7c: 40021400 .word 0x40021400
800ff80: 2006c434 .word 0x2006c434
800ff84: 2006ba91 .word 0x2006ba91
0800ff88 <ReadIP>:
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
int8_t ReadIP(void)
{
800ff88: b580 push {r7, lr}
800ff8a: b084 sub sp, #16
800ff8c: af00 add r7, sp, #0
int8_t res = -1;
800ff8e: 23ff movs r3, #255 ; 0xff
800ff90: 73fb strb r3, [r7, #15]
uint16_t i, len = 0, cnt = 0;
800ff92: 2300 movs r3, #0
800ff94: 81bb strh r3, [r7, #12]
800ff96: 2300 movs r3, #0
800ff98: 817b strh r3, [r7, #10]
uint16_t crc;
__IO uint32_t timeout;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
800ff9a: 4b82 ldr r3, [pc, #520] ; (80101a4 <ReadIP+0x21c>)
800ff9c: 681b ldr r3, [r3, #0]
800ff9e: 69db ldr r3, [r3, #28]
800ffa0: f003 0308 and.w r3, r3, #8
800ffa4: 2b08 cmp r3, #8
800ffa6: d103 bne.n 800ffb0 <ReadIP+0x28>
__HAL_UART_CLEAR_OREFLAG(&huart7);
800ffa8: 4b7e ldr r3, [pc, #504] ; (80101a4 <ReadIP+0x21c>)
800ffaa: 681b ldr r3, [r3, #0]
800ffac: 2208 movs r2, #8
800ffae: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
800ffb0: 4b7c ldr r3, [pc, #496] ; (80101a4 <ReadIP+0x21c>)
800ffb2: 681b ldr r3, [r3, #0]
800ffb4: 69db ldr r3, [r3, #28]
800ffb6: f003 0301 and.w r3, r3, #1
800ffba: 2b01 cmp r3, #1
800ffbc: d103 bne.n 800ffc6 <ReadIP+0x3e>
__HAL_UART_CLEAR_PEFLAG(&huart7);
800ffbe: 4b79 ldr r3, [pc, #484] ; (80101a4 <ReadIP+0x21c>)
800ffc0: 681b ldr r3, [r3, #0]
800ffc2: 2201 movs r2, #1
800ffc4: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
800ffc6: 4b77 ldr r3, [pc, #476] ; (80101a4 <ReadIP+0x21c>)
800ffc8: 681b ldr r3, [r3, #0]
800ffca: 69db ldr r3, [r3, #28]
800ffcc: f003 0302 and.w r3, r3, #2
800ffd0: 2b02 cmp r3, #2
800ffd2: d103 bne.n 800ffdc <ReadIP+0x54>
__HAL_UART_CLEAR_FEFLAG(&huart7);
800ffd4: 4b73 ldr r3, [pc, #460] ; (80101a4 <ReadIP+0x21c>)
800ffd6: 681b ldr r3, [r3, #0]
800ffd8: 2202 movs r2, #2
800ffda: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
800ffdc: 4b71 ldr r3, [pc, #452] ; (80101a4 <ReadIP+0x21c>)
800ffde: 681b ldr r3, [r3, #0]
800ffe0: 69db ldr r3, [r3, #28]
800ffe2: f003 0304 and.w r3, r3, #4
800ffe6: 2b04 cmp r3, #4
800ffe8: d103 bne.n 800fff2 <ReadIP+0x6a>
__HAL_UART_CLEAR_NEFLAG(&huart7);
800ffea: 4b6e ldr r3, [pc, #440] ; (80101a4 <ReadIP+0x21c>)
800ffec: 681b ldr r3, [r3, #0]
800ffee: 2204 movs r2, #4
800fff0: 621a str r2, [r3, #32]
HAL_Delay(20);
800fff2: 2014 movs r0, #20
800fff4: f001 fafe bl 80115f4 <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
800fff8: 2200 movs r2, #0
800fffa: 4b6b ldr r3, [pc, #428] ; (80101a8 <ReadIP+0x220>)
800fffc: 4611 mov r1, r2
800fffe: 7019 strb r1, [r3, #0]
8010000: 4b6a ldr r3, [pc, #424] ; (80101ac <ReadIP+0x224>)
8010002: 4611 mov r1, r2
8010004: 7019 strb r1, [r3, #0]
8010006: 4b6a ldr r3, [pc, #424] ; (80101b0 <ReadIP+0x228>)
8010008: 701a strb r2, [r3, #0]
len = 0;
801000a: 2300 movs r3, #0
801000c: 81bb strh r3, [r7, #12]
memset((void *) &rx, 0, sizeof(rx));
801000e: f44f 7280 mov.w r2, #256 ; 0x100
8010012: 2100 movs r1, #0
8010014: 4867 ldr r0, [pc, #412] ; (80101b4 <ReadIP+0x22c>)
8010016: f006 fa60 bl 80164da <memset>
iobuf[len++] = 17;
801001a: 89bb ldrh r3, [r7, #12]
801001c: 1c5a adds r2, r3, #1
801001e: 81ba strh r2, [r7, #12]
8010020: 461a mov r2, r3
8010022: 4b65 ldr r3, [pc, #404] ; (80101b8 <ReadIP+0x230>)
8010024: 2111 movs r1, #17
8010026: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x03;
8010028: 89bb ldrh r3, [r7, #12]
801002a: 1c5a adds r2, r3, #1
801002c: 81ba strh r2, [r7, #12]
801002e: 461a mov r2, r3
8010030: 4b61 ldr r3, [pc, #388] ; (80101b8 <ReadIP+0x230>)
8010032: 2103 movs r1, #3
8010034: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(4001);
8010036: 89bb ldrh r3, [r7, #12]
8010038: 1c5a adds r2, r3, #1
801003a: 81ba strh r2, [r7, #12]
801003c: 461a mov r2, r3
801003e: 4b5e ldr r3, [pc, #376] ; (80101b8 <ReadIP+0x230>)
8010040: 210f movs r1, #15
8010042: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(4001);
8010044: 89bb ldrh r3, [r7, #12]
8010046: 1c5a adds r2, r3, #1
8010048: 81ba strh r2, [r7, #12]
801004a: 461a mov r2, r3
801004c: 4b5a ldr r3, [pc, #360] ; (80101b8 <ReadIP+0x230>)
801004e: 21a1 movs r1, #161 ; 0xa1
8010050: 5499 strb r1, [r3, r2]
iobuf[len++] = 0; //
8010052: 89bb ldrh r3, [r7, #12]
8010054: 1c5a adds r2, r3, #1
8010056: 81ba strh r2, [r7, #12]
8010058: 461a mov r2, r3
801005a: 4b57 ldr r3, [pc, #348] ; (80101b8 <ReadIP+0x230>)
801005c: 2100 movs r1, #0
801005e: 5499 strb r1, [r3, r2]
iobuf[len++] = 2; //
8010060: 89bb ldrh r3, [r7, #12]
8010062: 1c5a adds r2, r3, #1
8010064: 81ba strh r2, [r7, #12]
8010066: 461a mov r2, r3
8010068: 4b53 ldr r3, [pc, #332] ; (80101b8 <ReadIP+0x230>)
801006a: 2102 movs r1, #2
801006c: 5499 strb r1, [r3, r2]
crc = Crc16(len);
801006e: 89bb ldrh r3, [r7, #12]
8010070: 4618 mov r0, r3
8010072: f7ff fee5 bl 800fe40 <Crc16>
8010076: 4603 mov r3, r0
8010078: 813b strh r3, [r7, #8]
iobuf[len++] = LO(crc);
801007a: 89bb ldrh r3, [r7, #12]
801007c: 1c5a adds r2, r3, #1
801007e: 81ba strh r2, [r7, #12]
8010080: 461a mov r2, r3
8010082: 893b ldrh r3, [r7, #8]
8010084: b2d9 uxtb r1, r3
8010086: 4b4c ldr r3, [pc, #304] ; (80101b8 <ReadIP+0x230>)
8010088: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
801008a: 89bb ldrh r3, [r7, #12]
801008c: 1c5a adds r2, r3, #1
801008e: 81ba strh r2, [r7, #12]
8010090: 461a mov r2, r3
8010092: 893b ldrh r3, [r7, #8]
8010094: 0a1b lsrs r3, r3, #8
8010096: b29b uxth r3, r3
8010098: b2d9 uxtb r1, r3
801009a: 4b47 ldr r3, [pc, #284] ; (80101b8 <ReadIP+0x230>)
801009c: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
801009e: f001 fa9d bl 80115dc <HAL_GetTick>
80100a2: 4603 mov r3, r0
80100a4: 607b str r3, [r7, #4]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
80100a6: 2201 movs r2, #1
80100a8: f44f 7100 mov.w r1, #512 ; 0x200
80100ac: 4843 ldr r0, [pc, #268] ; (80101bc <ReadIP+0x234>)
80100ae: f002 fdcd bl 8012c4c <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
80100b2: 89bb ldrh r3, [r7, #12]
80100b4: 461a mov r2, r3
80100b6: 4940 ldr r1, [pc, #256] ; (80101b8 <ReadIP+0x230>)
80100b8: 483a ldr r0, [pc, #232] ; (80101a4 <ReadIP+0x21c>)
80100ba: f004 fef5 bl 8014ea8 <HAL_UART_Transmit_IT>
80100be: 4603 mov r3, r0
80100c0: 2b00 cmp r3, #0
80100c2: d168 bne.n 8010196 <ReadIP+0x20e>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 50));
80100c4: bf00 nop
80100c6: 4b3a ldr r3, [pc, #232] ; (80101b0 <ReadIP+0x228>)
80100c8: 781b ldrb r3, [r3, #0]
80100ca: b2db uxtb r3, r3
80100cc: f083 0301 eor.w r3, r3, #1
80100d0: b2db uxtb r3, r3
80100d2: 2b00 cmp r3, #0
80100d4: d006 beq.n 80100e4 <ReadIP+0x15c>
80100d6: f001 fa81 bl 80115dc <HAL_GetTick>
80100da: 4602 mov r2, r0
80100dc: 687b ldr r3, [r7, #4]
80100de: 1ad3 subs r3, r2, r3
80100e0: 2b31 cmp r3, #49 ; 0x31
80100e2: d9f0 bls.n 80100c6 <ReadIP+0x13e>
if(!TX_OK)
80100e4: 4b32 ldr r3, [pc, #200] ; (80101b0 <ReadIP+0x228>)
80100e6: 781b ldrb r3, [r3, #0]
80100e8: b2db uxtb r3, r3
80100ea: f083 0301 eor.w r3, r3, #1
80100ee: b2db uxtb r3, r3
80100f0: 2b00 cmp r3, #0
80100f2: d00b beq.n 801010c <ReadIP+0x184>
{
HAL_UART_Abort_IT(&huart7);
80100f4: 482b ldr r0, [pc, #172] ; (80101a4 <ReadIP+0x21c>)
80100f6: f004 ff45 bl 8014f84 <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
80100fa: 2200 movs r2, #0
80100fc: f44f 7100 mov.w r1, #512 ; 0x200
8010100: 482e ldr r0, [pc, #184] ; (80101bc <ReadIP+0x234>)
8010102: f002 fda3 bl 8012c4c <HAL_GPIO_WritePin>
return (-1);
8010106: f04f 33ff mov.w r3, #4294967295
801010a: e046 b.n 801019a <ReadIP+0x212>
}
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: 482a ldr r0, [pc, #168] ; (80101bc <ReadIP+0x234>)
8010114: f002 fd9a bl 8012c4c <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
8010118: 2364 movs r3, #100 ; 0x64
801011a: 2201 movs r2, #1
801011c: 4925 ldr r1, [pc, #148] ; (80101b4 <ReadIP+0x22c>)
801011e: 4821 ldr r0, [pc, #132] ; (80101a4 <ReadIP+0x21c>)
8010120: f004 fdf2 bl 8014d08 <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 9, 100) == HAL_OK)
8010124: 2364 movs r3, #100 ; 0x64
8010126: 2209 movs r2, #9
8010128: 4922 ldr r1, [pc, #136] ; (80101b4 <ReadIP+0x22c>)
801012a: 481e ldr r0, [pc, #120] ; (80101a4 <ReadIP+0x21c>)
801012c: f004 fdec bl 8014d08 <HAL_UART_Receive>
8010130: 4603 mov r3, r0
8010132: 2b00 cmp r3, #0
8010134: d126 bne.n 8010184 <ReadIP+0x1fc>
{
crc = (uint16_t) ((rx[8]) << 8 | rx[7]);
8010136: 4b1f ldr r3, [pc, #124] ; (80101b4 <ReadIP+0x22c>)
8010138: 7a1b ldrb r3, [r3, #8]
801013a: 021b lsls r3, r3, #8
801013c: b21a sxth r2, r3
801013e: 4b1d ldr r3, [pc, #116] ; (80101b4 <ReadIP+0x22c>)
8010140: 79db ldrb r3, [r3, #7]
8010142: b21b sxth r3, r3
8010144: 4313 orrs r3, r2
8010146: b21b sxth r3, r3
8010148: 813b strh r3, [r7, #8]
if(crc == Crc16_RX(7))
801014a: 2007 movs r0, #7
801014c: f7ff fea4 bl 800fe98 <Crc16_RX>
8010150: 4603 mov r3, r0
8010152: 461a mov r2, r3
8010154: 893b ldrh r3, [r7, #8]
8010156: 4293 cmp r3, r2
8010158: d111 bne.n 801017e <ReadIP+0x1f6>
{
ip[0] = rx[3];
801015a: 4b16 ldr r3, [pc, #88] ; (80101b4 <ReadIP+0x22c>)
801015c: 78da ldrb r2, [r3, #3]
801015e: 4b18 ldr r3, [pc, #96] ; (80101c0 <ReadIP+0x238>)
8010160: 701a strb r2, [r3, #0]
ip[1] = rx[4];
8010162: 4b14 ldr r3, [pc, #80] ; (80101b4 <ReadIP+0x22c>)
8010164: 791a ldrb r2, [r3, #4]
8010166: 4b16 ldr r3, [pc, #88] ; (80101c0 <ReadIP+0x238>)
8010168: 705a strb r2, [r3, #1]
ip[2] = rx[5];
801016a: 4b12 ldr r3, [pc, #72] ; (80101b4 <ReadIP+0x22c>)
801016c: 795a ldrb r2, [r3, #5]
801016e: 4b14 ldr r3, [pc, #80] ; (80101c0 <ReadIP+0x238>)
8010170: 709a strb r2, [r3, #2]
ip[3] = rx[6];
8010172: 4b10 ldr r3, [pc, #64] ; (80101b4 <ReadIP+0x22c>)
8010174: 799a ldrb r2, [r3, #6]
8010176: 4b12 ldr r3, [pc, #72] ; (80101c0 <ReadIP+0x238>)
8010178: 70da strb r2, [r3, #3]
return 0;
801017a: 2300 movs r3, #0
801017c: e00d b.n 801019a <ReadIP+0x212>
}
else
{
return (-1);
801017e: f04f 33ff mov.w r3, #4294967295
8010182: e00a b.n 801019a <ReadIP+0x212>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010184: 2200 movs r2, #0
8010186: f44f 7100 mov.w r1, #512 ; 0x200
801018a: 480c ldr r0, [pc, #48] ; (80101bc <ReadIP+0x234>)
801018c: f002 fd5e bl 8012c4c <HAL_GPIO_WritePin>
return (-1);
8010190: f04f 33ff mov.w r3, #4294967295
8010194: e001 b.n 801019a <ReadIP+0x212>
}
}
return res;
8010196: f997 300f ldrsb.w r3, [r7, #15]
}
801019a: 4618 mov r0, r3
801019c: 3710 adds r7, #16
801019e: 46bd mov sp, r7
80101a0: bd80 pop {r7, pc}
80101a2: bf00 nop
80101a4: 2006c434 .word 0x2006c434
80101a8: 2006ba91 .word 0x2006ba91
80101ac: 2006ba93 .word 0x2006ba93
80101b0: 2006ba92 .word 0x2006ba92
80101b4: 2006c4bc .word 0x2006c4bc
80101b8: 2006c5c4 .word 0x2006c5c4
80101bc: 40021400 .word 0x40021400
80101c0: 2006ba8c .word 0x2006ba8c
080101c4 <ReadChannel>:
int8_t ReadChannel(uint8_t ch)
{
80101c4: b580 push {r7, lr}
80101c6: b086 sub sp, #24
80101c8: af00 add r7, sp, #0
80101ca: 4603 mov r3, r0
80101cc: 71fb strb r3, [r7, #7]
int8_t res = -1;
80101ce: 23ff movs r3, #255 ; 0xff
80101d0: 75fb strb r3, [r7, #23]
uint16_t i, len = 0, cnt = 0;
80101d2: 2300 movs r3, #0
80101d4: 82bb strh r3, [r7, #20]
80101d6: 2300 movs r3, #0
80101d8: 827b strh r3, [r7, #18]
uint16_t crc;
__IO uint32_t timeout;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
80101da: 4b5e ldr r3, [pc, #376] ; (8010354 <ReadChannel+0x190>)
80101dc: 681b ldr r3, [r3, #0]
80101de: 69db ldr r3, [r3, #28]
80101e0: f003 0308 and.w r3, r3, #8
80101e4: 2b08 cmp r3, #8
80101e6: d103 bne.n 80101f0 <ReadChannel+0x2c>
__HAL_UART_CLEAR_OREFLAG(&huart7);
80101e8: 4b5a ldr r3, [pc, #360] ; (8010354 <ReadChannel+0x190>)
80101ea: 681b ldr r3, [r3, #0]
80101ec: 2208 movs r2, #8
80101ee: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
80101f0: 4b58 ldr r3, [pc, #352] ; (8010354 <ReadChannel+0x190>)
80101f2: 681b ldr r3, [r3, #0]
80101f4: 69db ldr r3, [r3, #28]
80101f6: f003 0301 and.w r3, r3, #1
80101fa: 2b01 cmp r3, #1
80101fc: d103 bne.n 8010206 <ReadChannel+0x42>
__HAL_UART_CLEAR_PEFLAG(&huart7);
80101fe: 4b55 ldr r3, [pc, #340] ; (8010354 <ReadChannel+0x190>)
8010200: 681b ldr r3, [r3, #0]
8010202: 2201 movs r2, #1
8010204: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
8010206: 4b53 ldr r3, [pc, #332] ; (8010354 <ReadChannel+0x190>)
8010208: 681b ldr r3, [r3, #0]
801020a: 69db ldr r3, [r3, #28]
801020c: f003 0302 and.w r3, r3, #2
8010210: 2b02 cmp r3, #2
8010212: d103 bne.n 801021c <ReadChannel+0x58>
__HAL_UART_CLEAR_FEFLAG(&huart7);
8010214: 4b4f ldr r3, [pc, #316] ; (8010354 <ReadChannel+0x190>)
8010216: 681b ldr r3, [r3, #0]
8010218: 2202 movs r2, #2
801021a: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
801021c: 4b4d ldr r3, [pc, #308] ; (8010354 <ReadChannel+0x190>)
801021e: 681b ldr r3, [r3, #0]
8010220: 69db ldr r3, [r3, #28]
8010222: f003 0304 and.w r3, r3, #4
8010226: 2b04 cmp r3, #4
8010228: d103 bne.n 8010232 <ReadChannel+0x6e>
__HAL_UART_CLEAR_NEFLAG(&huart7);
801022a: 4b4a ldr r3, [pc, #296] ; (8010354 <ReadChannel+0x190>)
801022c: 681b ldr r3, [r3, #0]
801022e: 2204 movs r2, #4
8010230: 621a str r2, [r3, #32]
HAL_Delay(20);
8010232: 2014 movs r0, #20
8010234: f001 f9de bl 80115f4 <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
8010238: 2200 movs r2, #0
801023a: 4b47 ldr r3, [pc, #284] ; (8010358 <ReadChannel+0x194>)
801023c: 4611 mov r1, r2
801023e: 7019 strb r1, [r3, #0]
8010240: 4b46 ldr r3, [pc, #280] ; (801035c <ReadChannel+0x198>)
8010242: 4611 mov r1, r2
8010244: 7019 strb r1, [r3, #0]
8010246: 4b46 ldr r3, [pc, #280] ; (8010360 <ReadChannel+0x19c>)
8010248: 701a strb r2, [r3, #0]
len = 0;
801024a: 2300 movs r3, #0
801024c: 82bb strh r3, [r7, #20]
memset((void *) &rx, 0, sizeof(rx));
801024e: f44f 7280 mov.w r2, #256 ; 0x100
8010252: 2100 movs r1, #0
8010254: 4843 ldr r0, [pc, #268] ; (8010364 <ReadChannel+0x1a0>)
8010256: f006 f940 bl 80164da <memset>
iobuf[len++] = ch + 1;
801025a: 8abb ldrh r3, [r7, #20]
801025c: 1c5a adds r2, r3, #1
801025e: 82ba strh r2, [r7, #20]
8010260: 461a mov r2, r3
8010262: 79fb ldrb r3, [r7, #7]
8010264: 3301 adds r3, #1
8010266: b2d9 uxtb r1, r3
8010268: 4b3f ldr r3, [pc, #252] ; (8010368 <ReadChannel+0x1a4>)
801026a: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x03;
801026c: 8abb ldrh r3, [r7, #20]
801026e: 1c5a adds r2, r3, #1
8010270: 82ba strh r2, [r7, #20]
8010272: 461a mov r2, r3
8010274: 4b3c ldr r3, [pc, #240] ; (8010368 <ReadChannel+0x1a4>)
8010276: 2103 movs r1, #3
8010278: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(5001);
801027a: 8abb ldrh r3, [r7, #20]
801027c: 1c5a adds r2, r3, #1
801027e: 82ba strh r2, [r7, #20]
8010280: 461a mov r2, r3
8010282: 4b39 ldr r3, [pc, #228] ; (8010368 <ReadChannel+0x1a4>)
8010284: 2113 movs r1, #19
8010286: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(5001);
8010288: 8abb ldrh r3, [r7, #20]
801028a: 1c5a adds r2, r3, #1
801028c: 82ba strh r2, [r7, #20]
801028e: 461a mov r2, r3
8010290: 4b35 ldr r3, [pc, #212] ; (8010368 <ReadChannel+0x1a4>)
8010292: 2189 movs r1, #137 ; 0x89
8010294: 5499 strb r1, [r3, r2]
iobuf[len++] = 0; //
8010296: 8abb ldrh r3, [r7, #20]
8010298: 1c5a adds r2, r3, #1
801029a: 82ba strh r2, [r7, #20]
801029c: 461a mov r2, r3
801029e: 4b32 ldr r3, [pc, #200] ; (8010368 <ReadChannel+0x1a4>)
80102a0: 2100 movs r1, #0
80102a2: 5499 strb r1, [r3, r2]
iobuf[len++] = 10; // IIN,IFV,IFN,IKU,IKE,IKD,IKS
80102a4: 8abb ldrh r3, [r7, #20]
80102a6: 1c5a adds r2, r3, #1
80102a8: 82ba strh r2, [r7, #20]
80102aa: 461a mov r2, r3
80102ac: 4b2e ldr r3, [pc, #184] ; (8010368 <ReadChannel+0x1a4>)
80102ae: 210a movs r1, #10
80102b0: 5499 strb r1, [r3, r2]
crc = Crc16(len);
80102b2: 8abb ldrh r3, [r7, #20]
80102b4: 4618 mov r0, r3
80102b6: f7ff fdc3 bl 800fe40 <Crc16>
80102ba: 4603 mov r3, r0
80102bc: 823b strh r3, [r7, #16]
iobuf[len++] = LO(crc);
80102be: 8abb ldrh r3, [r7, #20]
80102c0: 1c5a adds r2, r3, #1
80102c2: 82ba strh r2, [r7, #20]
80102c4: 461a mov r2, r3
80102c6: 8a3b ldrh r3, [r7, #16]
80102c8: b2d9 uxtb r1, r3
80102ca: 4b27 ldr r3, [pc, #156] ; (8010368 <ReadChannel+0x1a4>)
80102cc: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
80102ce: 8abb ldrh r3, [r7, #20]
80102d0: 1c5a adds r2, r3, #1
80102d2: 82ba strh r2, [r7, #20]
80102d4: 461a mov r2, r3
80102d6: 8a3b ldrh r3, [r7, #16]
80102d8: 0a1b lsrs r3, r3, #8
80102da: b29b uxth r3, r3
80102dc: b2d9 uxtb r1, r3
80102de: 4b22 ldr r3, [pc, #136] ; (8010368 <ReadChannel+0x1a4>)
80102e0: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
80102e2: f001 f97b bl 80115dc <HAL_GetTick>
80102e6: 4603 mov r3, r0
80102e8: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
80102ea: 2201 movs r2, #1
80102ec: f44f 7100 mov.w r1, #512 ; 0x200
80102f0: 481e ldr r0, [pc, #120] ; (801036c <ReadChannel+0x1a8>)
80102f2: f002 fcab bl 8012c4c <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
80102f6: 8abb ldrh r3, [r7, #20]
80102f8: 461a mov r2, r3
80102fa: 491b ldr r1, [pc, #108] ; (8010368 <ReadChannel+0x1a4>)
80102fc: 4815 ldr r0, [pc, #84] ; (8010354 <ReadChannel+0x190>)
80102fe: f004 fdd3 bl 8014ea8 <HAL_UART_Transmit_IT>
8010302: 4603 mov r3, r0
8010304: 2b00 cmp r3, #0
8010306: f040 8113 bne.w 8010530 <ReadChannel+0x36c>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 50));
801030a: bf00 nop
801030c: 4b14 ldr r3, [pc, #80] ; (8010360 <ReadChannel+0x19c>)
801030e: 781b ldrb r3, [r3, #0]
8010310: b2db uxtb r3, r3
8010312: f083 0301 eor.w r3, r3, #1
8010316: b2db uxtb r3, r3
8010318: 2b00 cmp r3, #0
801031a: d006 beq.n 801032a <ReadChannel+0x166>
801031c: f001 f95e bl 80115dc <HAL_GetTick>
8010320: 4602 mov r2, r0
8010322: 68fb ldr r3, [r7, #12]
8010324: 1ad3 subs r3, r2, r3
8010326: 2b31 cmp r3, #49 ; 0x31
8010328: d9f0 bls.n 801030c <ReadChannel+0x148>
if(!TX_OK)
801032a: 4b0d ldr r3, [pc, #52] ; (8010360 <ReadChannel+0x19c>)
801032c: 781b ldrb r3, [r3, #0]
801032e: b2db uxtb r3, r3
8010330: f083 0301 eor.w r3, r3, #1
8010334: b2db uxtb r3, r3
8010336: 2b00 cmp r3, #0
8010338: d01a beq.n 8010370 <ReadChannel+0x1ac>
{
HAL_UART_Abort_IT(&huart7);
801033a: 4806 ldr r0, [pc, #24] ; (8010354 <ReadChannel+0x190>)
801033c: f004 fe22 bl 8014f84 <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010340: 2200 movs r2, #0
8010342: f44f 7100 mov.w r1, #512 ; 0x200
8010346: 4809 ldr r0, [pc, #36] ; (801036c <ReadChannel+0x1a8>)
8010348: f002 fc80 bl 8012c4c <HAL_GPIO_WritePin>
return (-1);
801034c: f04f 33ff mov.w r3, #4294967295
8010350: e0f0 b.n 8010534 <ReadChannel+0x370>
8010352: bf00 nop
8010354: 2006c434 .word 0x2006c434
8010358: 2006ba91 .word 0x2006ba91
801035c: 2006ba93 .word 0x2006ba93
8010360: 2006ba92 .word 0x2006ba92
8010364: 2006c4bc .word 0x2006c4bc
8010368: 2006c5c4 .word 0x2006c5c4
801036c: 40021400 .word 0x40021400
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010370: 2200 movs r2, #0
8010372: f44f 7100 mov.w r1, #512 ; 0x200
8010376: 4871 ldr r0, [pc, #452] ; (801053c <ReadChannel+0x378>)
8010378: f002 fc68 bl 8012c4c <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
801037c: 2364 movs r3, #100 ; 0x64
801037e: 2201 movs r2, #1
8010380: 496f ldr r1, [pc, #444] ; (8010540 <ReadChannel+0x37c>)
8010382: 4870 ldr r0, [pc, #448] ; (8010544 <ReadChannel+0x380>)
8010384: f004 fcc0 bl 8014d08 <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 25, 100) == HAL_OK)
8010388: 2364 movs r3, #100 ; 0x64
801038a: 2219 movs r2, #25
801038c: 496c ldr r1, [pc, #432] ; (8010540 <ReadChannel+0x37c>)
801038e: 486d ldr r0, [pc, #436] ; (8010544 <ReadChannel+0x380>)
8010390: f004 fcba bl 8014d08 <HAL_UART_Receive>
8010394: 4603 mov r3, r0
8010396: 2b00 cmp r3, #0
8010398: f040 80c1 bne.w 801051e <ReadChannel+0x35a>
{
crc = (uint16_t) ((rx[24]) << 8 | rx[23]);
801039c: 4b68 ldr r3, [pc, #416] ; (8010540 <ReadChannel+0x37c>)
801039e: 7e1b ldrb r3, [r3, #24]
80103a0: 021b lsls r3, r3, #8
80103a2: b21a sxth r2, r3
80103a4: 4b66 ldr r3, [pc, #408] ; (8010540 <ReadChannel+0x37c>)
80103a6: 7ddb ldrb r3, [r3, #23]
80103a8: b21b sxth r3, r3
80103aa: 4313 orrs r3, r2
80103ac: b21b sxth r3, r3
80103ae: 823b strh r3, [r7, #16]
if(crc == Crc16_RX(23))
80103b0: 2017 movs r0, #23
80103b2: f7ff fd71 bl 800fe98 <Crc16_RX>
80103b6: 4603 mov r3, r0
80103b8: 461a mov r2, r3
80103ba: 8a3b ldrh r3, [r7, #16]
80103bc: 4293 cmp r3, r2
80103be: f040 80ab bne.w 8010518 <ReadChannel+0x354>
{
pardata.amplif[ch].IIN = (uint16_t) ((rx[3]) << 8 | rx[4]);
80103c2: 79fb ldrb r3, [r7, #7]
80103c4: 4a5e ldr r2, [pc, #376] ; (8010540 <ReadChannel+0x37c>)
80103c6: 78d2 ldrb r2, [r2, #3]
80103c8: 0212 lsls r2, r2, #8
80103ca: b211 sxth r1, r2
80103cc: 4a5c ldr r2, [pc, #368] ; (8010540 <ReadChannel+0x37c>)
80103ce: 7912 ldrb r2, [r2, #4]
80103d0: b212 sxth r2, r2
80103d2: 430a orrs r2, r1
80103d4: b212 sxth r2, r2
80103d6: b291 uxth r1, r2
80103d8: 4a5b ldr r2, [pc, #364] ; (8010548 <ReadChannel+0x384>)
80103da: 015b lsls r3, r3, #5
80103dc: 4413 add r3, r2
80103de: 460a mov r2, r1
80103e0: 801a strh r2, [r3, #0]
pardata.amplif[ch].IFV = (uint16_t) ((rx[5]) << 8 | rx[6]);
80103e2: 79fb ldrb r3, [r7, #7]
80103e4: 4a56 ldr r2, [pc, #344] ; (8010540 <ReadChannel+0x37c>)
80103e6: 7952 ldrb r2, [r2, #5]
80103e8: 0212 lsls r2, r2, #8
80103ea: b211 sxth r1, r2
80103ec: 4a54 ldr r2, [pc, #336] ; (8010540 <ReadChannel+0x37c>)
80103ee: 7992 ldrb r2, [r2, #6]
80103f0: b212 sxth r2, r2
80103f2: 430a orrs r2, r1
80103f4: b212 sxth r2, r2
80103f6: b291 uxth r1, r2
80103f8: 4a53 ldr r2, [pc, #332] ; (8010548 <ReadChannel+0x384>)
80103fa: 015b lsls r3, r3, #5
80103fc: 4413 add r3, r2
80103fe: 3302 adds r3, #2
8010400: 460a mov r2, r1
8010402: 801a strh r2, [r3, #0]
pardata.amplif[ch].IFN = (uint16_t) ((rx[7]) << 8 | rx[8]);
8010404: 79fb ldrb r3, [r7, #7]
8010406: 4a4e ldr r2, [pc, #312] ; (8010540 <ReadChannel+0x37c>)
8010408: 79d2 ldrb r2, [r2, #7]
801040a: 0212 lsls r2, r2, #8
801040c: b211 sxth r1, r2
801040e: 4a4c ldr r2, [pc, #304] ; (8010540 <ReadChannel+0x37c>)
8010410: 7a12 ldrb r2, [r2, #8]
8010412: b212 sxth r2, r2
8010414: 430a orrs r2, r1
8010416: b212 sxth r2, r2
8010418: b291 uxth r1, r2
801041a: 4a4b ldr r2, [pc, #300] ; (8010548 <ReadChannel+0x384>)
801041c: 015b lsls r3, r3, #5
801041e: 4413 add r3, r2
8010420: 3304 adds r3, #4
8010422: 460a mov r2, r1
8010424: 801a strh r2, [r3, #0]
pardata.amplif[ch].IKU = (uint16_t) ((rx[9]) << 8 | rx[10]);
8010426: 79fb ldrb r3, [r7, #7]
8010428: 4a45 ldr r2, [pc, #276] ; (8010540 <ReadChannel+0x37c>)
801042a: 7a52 ldrb r2, [r2, #9]
801042c: 0212 lsls r2, r2, #8
801042e: b211 sxth r1, r2
8010430: 4a43 ldr r2, [pc, #268] ; (8010540 <ReadChannel+0x37c>)
8010432: 7a92 ldrb r2, [r2, #10]
8010434: b212 sxth r2, r2
8010436: 430a orrs r2, r1
8010438: b212 sxth r2, r2
801043a: b291 uxth r1, r2
801043c: 4a42 ldr r2, [pc, #264] ; (8010548 <ReadChannel+0x384>)
801043e: 015b lsls r3, r3, #5
8010440: 4413 add r3, r2
8010442: 3306 adds r3, #6
8010444: 460a mov r2, r1
8010446: 801a strh r2, [r3, #0]
pardata.amplif[ch].IKE = (uint16_t) ((rx[11]) << 8 | rx[12]);
8010448: 79fb ldrb r3, [r7, #7]
801044a: 4a3d ldr r2, [pc, #244] ; (8010540 <ReadChannel+0x37c>)
801044c: 7ad2 ldrb r2, [r2, #11]
801044e: 0212 lsls r2, r2, #8
8010450: b211 sxth r1, r2
8010452: 4a3b ldr r2, [pc, #236] ; (8010540 <ReadChannel+0x37c>)
8010454: 7b12 ldrb r2, [r2, #12]
8010456: b212 sxth r2, r2
8010458: 430a orrs r2, r1
801045a: b212 sxth r2, r2
801045c: b291 uxth r1, r2
801045e: 4a3a ldr r2, [pc, #232] ; (8010548 <ReadChannel+0x384>)
8010460: 015b lsls r3, r3, #5
8010462: 4413 add r3, r2
8010464: 3308 adds r3, #8
8010466: 460a mov r2, r1
8010468: 801a strh r2, [r3, #0]
pardata.amplif[ch].IKD = (uint16_t) ((rx[13]) << 8 | rx[14]);
801046a: 79fb ldrb r3, [r7, #7]
801046c: 4a34 ldr r2, [pc, #208] ; (8010540 <ReadChannel+0x37c>)
801046e: 7b52 ldrb r2, [r2, #13]
8010470: 0212 lsls r2, r2, #8
8010472: b211 sxth r1, r2
8010474: 4a32 ldr r2, [pc, #200] ; (8010540 <ReadChannel+0x37c>)
8010476: 7b92 ldrb r2, [r2, #14]
8010478: b212 sxth r2, r2
801047a: 430a orrs r2, r1
801047c: b212 sxth r2, r2
801047e: b291 uxth r1, r2
8010480: 4a31 ldr r2, [pc, #196] ; (8010548 <ReadChannel+0x384>)
8010482: 015b lsls r3, r3, #5
8010484: 4413 add r3, r2
8010486: 330a adds r3, #10
8010488: 460a mov r2, r1
801048a: 801a strh r2, [r3, #0]
pardata.amplif[ch].IKS = (uint16_t) ((rx[15]) << 8 | rx[16]);
801048c: 79fb ldrb r3, [r7, #7]
801048e: 4a2c ldr r2, [pc, #176] ; (8010540 <ReadChannel+0x37c>)
8010490: 7bd2 ldrb r2, [r2, #15]
8010492: 0212 lsls r2, r2, #8
8010494: b211 sxth r1, r2
8010496: 4a2a ldr r2, [pc, #168] ; (8010540 <ReadChannel+0x37c>)
8010498: 7c12 ldrb r2, [r2, #16]
801049a: b212 sxth r2, r2
801049c: 430a orrs r2, r1
801049e: b212 sxth r2, r2
80104a0: b291 uxth r1, r2
80104a2: 4a29 ldr r2, [pc, #164] ; (8010548 <ReadChannel+0x384>)
80104a4: 015b lsls r3, r3, #5
80104a6: 4413 add r3, r2
80104a8: 330c adds r3, #12
80104aa: 460a mov r2, r1
80104ac: 801a strh r2, [r3, #0]
pardata.amplif[ch].IPZ = (uint16_t) ((rx[17]) << 8 | rx[18]);
80104ae: 79fb ldrb r3, [r7, #7]
80104b0: 4a23 ldr r2, [pc, #140] ; (8010540 <ReadChannel+0x37c>)
80104b2: 7c52 ldrb r2, [r2, #17]
80104b4: 0212 lsls r2, r2, #8
80104b6: b211 sxth r1, r2
80104b8: 4a21 ldr r2, [pc, #132] ; (8010540 <ReadChannel+0x37c>)
80104ba: 7c92 ldrb r2, [r2, #18]
80104bc: b212 sxth r2, r2
80104be: 430a orrs r2, r1
80104c0: b212 sxth r2, r2
80104c2: b291 uxth r1, r2
80104c4: 4a20 ldr r2, [pc, #128] ; (8010548 <ReadChannel+0x384>)
80104c6: 015b lsls r3, r3, #5
80104c8: 4413 add r3, r2
80104ca: 330e adds r3, #14
80104cc: 460a mov r2, r1
80104ce: 801a strh r2, [r3, #0]
pardata.amplif[ch].OPZ = (uint16_t) ((rx[19]) << 8 | rx[20]);
80104d0: 79fb ldrb r3, [r7, #7]
80104d2: 4a1b ldr r2, [pc, #108] ; (8010540 <ReadChannel+0x37c>)
80104d4: 7cd2 ldrb r2, [r2, #19]
80104d6: 0212 lsls r2, r2, #8
80104d8: b211 sxth r1, r2
80104da: 4a19 ldr r2, [pc, #100] ; (8010540 <ReadChannel+0x37c>)
80104dc: 7d12 ldrb r2, [r2, #20]
80104de: b212 sxth r2, r2
80104e0: 430a orrs r2, r1
80104e2: b212 sxth r2, r2
80104e4: b291 uxth r1, r2
80104e6: 4a18 ldr r2, [pc, #96] ; (8010548 <ReadChannel+0x384>)
80104e8: 015b lsls r3, r3, #5
80104ea: 4413 add r3, r2
80104ec: 3310 adds r3, #16
80104ee: 460a mov r2, r1
80104f0: 801a strh r2, [r3, #0]
pardata.amplif[ch].VAL = (uint16_t) ((rx[21]) << 8 | rx[22]);
80104f2: 79fb ldrb r3, [r7, #7]
80104f4: 4a12 ldr r2, [pc, #72] ; (8010540 <ReadChannel+0x37c>)
80104f6: 7d52 ldrb r2, [r2, #21]
80104f8: 0212 lsls r2, r2, #8
80104fa: b211 sxth r1, r2
80104fc: 4a10 ldr r2, [pc, #64] ; (8010540 <ReadChannel+0x37c>)
80104fe: 7d92 ldrb r2, [r2, #22]
8010500: b212 sxth r2, r2
8010502: 430a orrs r2, r1
8010504: b212 sxth r2, r2
8010506: b291 uxth r1, r2
8010508: 4a0f ldr r2, [pc, #60] ; (8010548 <ReadChannel+0x384>)
801050a: 015b lsls r3, r3, #5
801050c: 4413 add r3, r2
801050e: 3312 adds r3, #18
8010510: 460a mov r2, r1
8010512: 801a strh r2, [r3, #0]
return 0;
8010514: 2300 movs r3, #0
8010516: e00d b.n 8010534 <ReadChannel+0x370>
}
else
{
return (-1);
8010518: f04f 33ff mov.w r3, #4294967295
801051c: e00a b.n 8010534 <ReadChannel+0x370>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
801051e: 2200 movs r2, #0
8010520: f44f 7100 mov.w r1, #512 ; 0x200
8010524: 4805 ldr r0, [pc, #20] ; (801053c <ReadChannel+0x378>)
8010526: f002 fb91 bl 8012c4c <HAL_GPIO_WritePin>
return (-1);
801052a: f04f 33ff mov.w r3, #4294967295
801052e: e001 b.n 8010534 <ReadChannel+0x370>
}
}
return res;
8010530: f997 3017 ldrsb.w r3, [r7, #23]
}
8010534: 4618 mov r0, r3
8010536: 3718 adds r7, #24
8010538: 46bd mov sp, r7
801053a: bd80 pop {r7, pc}
801053c: 40021400 .word 0x40021400
8010540: 2006c4bc .word 0x2006c4bc
8010544: 2006c434 .word 0x2006c434
8010548: 2006bca8 .word 0x2006bca8
0801054c <WriteChannel>:
int8_t WriteChannel(uint8_t ch)
{
801054c: b580 push {r7, lr}
801054e: b086 sub sp, #24
8010550: af00 add r7, sp, #0
8010552: 4603 mov r3, r0
8010554: 71fb strb r3, [r7, #7]
int8_t res = -1;
8010556: 23ff movs r3, #255 ; 0xff
8010558: 75fb strb r3, [r7, #23]
uint16_t i, len = 0;
801055a: 2300 movs r3, #0
801055c: 82bb strh r3, [r7, #20]
uint16_t crc;
__IO uint32_t timeout;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
801055e: 4ba8 ldr r3, [pc, #672] ; (8010800 <WriteChannel+0x2b4>)
8010560: 681b ldr r3, [r3, #0]
8010562: 69db ldr r3, [r3, #28]
8010564: f003 0308 and.w r3, r3, #8
8010568: 2b08 cmp r3, #8
801056a: d103 bne.n 8010574 <WriteChannel+0x28>
__HAL_UART_CLEAR_OREFLAG(&huart7);
801056c: 4ba4 ldr r3, [pc, #656] ; (8010800 <WriteChannel+0x2b4>)
801056e: 681b ldr r3, [r3, #0]
8010570: 2208 movs r2, #8
8010572: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
8010574: 4ba2 ldr r3, [pc, #648] ; (8010800 <WriteChannel+0x2b4>)
8010576: 681b ldr r3, [r3, #0]
8010578: 69db ldr r3, [r3, #28]
801057a: f003 0301 and.w r3, r3, #1
801057e: 2b01 cmp r3, #1
8010580: d103 bne.n 801058a <WriteChannel+0x3e>
__HAL_UART_CLEAR_PEFLAG(&huart7);
8010582: 4b9f ldr r3, [pc, #636] ; (8010800 <WriteChannel+0x2b4>)
8010584: 681b ldr r3, [r3, #0]
8010586: 2201 movs r2, #1
8010588: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
801058a: 4b9d ldr r3, [pc, #628] ; (8010800 <WriteChannel+0x2b4>)
801058c: 681b ldr r3, [r3, #0]
801058e: 69db ldr r3, [r3, #28]
8010590: f003 0302 and.w r3, r3, #2
8010594: 2b02 cmp r3, #2
8010596: d103 bne.n 80105a0 <WriteChannel+0x54>
__HAL_UART_CLEAR_FEFLAG(&huart7);
8010598: 4b99 ldr r3, [pc, #612] ; (8010800 <WriteChannel+0x2b4>)
801059a: 681b ldr r3, [r3, #0]
801059c: 2202 movs r2, #2
801059e: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
80105a0: 4b97 ldr r3, [pc, #604] ; (8010800 <WriteChannel+0x2b4>)
80105a2: 681b ldr r3, [r3, #0]
80105a4: 69db ldr r3, [r3, #28]
80105a6: f003 0304 and.w r3, r3, #4
80105aa: 2b04 cmp r3, #4
80105ac: d103 bne.n 80105b6 <WriteChannel+0x6a>
__HAL_UART_CLEAR_NEFLAG(&huart7);
80105ae: 4b94 ldr r3, [pc, #592] ; (8010800 <WriteChannel+0x2b4>)
80105b0: 681b ldr r3, [r3, #0]
80105b2: 2204 movs r2, #4
80105b4: 621a str r2, [r3, #32]
HAL_Delay(20);
80105b6: 2014 movs r0, #20
80105b8: f001 f81c bl 80115f4 <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
80105bc: 2200 movs r2, #0
80105be: 4b91 ldr r3, [pc, #580] ; (8010804 <WriteChannel+0x2b8>)
80105c0: 4611 mov r1, r2
80105c2: 7019 strb r1, [r3, #0]
80105c4: 4b90 ldr r3, [pc, #576] ; (8010808 <WriteChannel+0x2bc>)
80105c6: 4611 mov r1, r2
80105c8: 7019 strb r1, [r3, #0]
80105ca: 4b90 ldr r3, [pc, #576] ; (801080c <WriteChannel+0x2c0>)
80105cc: 701a strb r2, [r3, #0]
len = 0;
80105ce: 2300 movs r3, #0
80105d0: 82bb strh r3, [r7, #20]
memset((void *) &rx, 0, sizeof(rx));
80105d2: f44f 7280 mov.w r2, #256 ; 0x100
80105d6: 2100 movs r1, #0
80105d8: 488d ldr r0, [pc, #564] ; (8010810 <WriteChannel+0x2c4>)
80105da: f005 ff7e bl 80164da <memset>
iobuf[len++] = ch + 1;
80105de: 8abb ldrh r3, [r7, #20]
80105e0: 1c5a adds r2, r3, #1
80105e2: 82ba strh r2, [r7, #20]
80105e4: 461a mov r2, r3
80105e6: 79fb ldrb r3, [r7, #7]
80105e8: 3301 adds r3, #1
80105ea: b2d9 uxtb r1, r3
80105ec: 4b89 ldr r3, [pc, #548] ; (8010814 <WriteChannel+0x2c8>)
80105ee: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x10;
80105f0: 8abb ldrh r3, [r7, #20]
80105f2: 1c5a adds r2, r3, #1
80105f4: 82ba strh r2, [r7, #20]
80105f6: 461a mov r2, r3
80105f8: 4b86 ldr r3, [pc, #536] ; (8010814 <WriteChannel+0x2c8>)
80105fa: 2110 movs r1, #16
80105fc: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(5001);
80105fe: 8abb ldrh r3, [r7, #20]
8010600: 1c5a adds r2, r3, #1
8010602: 82ba strh r2, [r7, #20]
8010604: 461a mov r2, r3
8010606: 4b83 ldr r3, [pc, #524] ; (8010814 <WriteChannel+0x2c8>)
8010608: 2113 movs r1, #19
801060a: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(5001);
801060c: 8abb ldrh r3, [r7, #20]
801060e: 1c5a adds r2, r3, #1
8010610: 82ba strh r2, [r7, #20]
8010612: 461a mov r2, r3
8010614: 4b7f ldr r3, [pc, #508] ; (8010814 <WriteChannel+0x2c8>)
8010616: 2189 movs r1, #137 ; 0x89
8010618: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
801061a: 8abb ldrh r3, [r7, #20]
801061c: 1c5a adds r2, r3, #1
801061e: 82ba strh r2, [r7, #20]
8010620: 461a mov r2, r3
8010622: 4b7c ldr r3, [pc, #496] ; (8010814 <WriteChannel+0x2c8>)
8010624: 2100 movs r1, #0
8010626: 5499 strb r1, [r3, r2]
iobuf[len++] = 10;
8010628: 8abb ldrh r3, [r7, #20]
801062a: 1c5a adds r2, r3, #1
801062c: 82ba strh r2, [r7, #20]
801062e: 461a mov r2, r3
8010630: 4b78 ldr r3, [pc, #480] ; (8010814 <WriteChannel+0x2c8>)
8010632: 210a movs r1, #10
8010634: 5499 strb r1, [r3, r2]
iobuf[len++] = 20;
8010636: 8abb ldrh r3, [r7, #20]
8010638: 1c5a adds r2, r3, #1
801063a: 82ba strh r2, [r7, #20]
801063c: 461a mov r2, r3
801063e: 4b75 ldr r3, [pc, #468] ; (8010814 <WriteChannel+0x2c8>)
8010640: 2114 movs r1, #20
8010642: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
8010644: 8abb ldrh r3, [r7, #20]
8010646: 1c5a adds r2, r3, #1
8010648: 82ba strh r2, [r7, #20]
801064a: 461a mov r2, r3
801064c: 4b71 ldr r3, [pc, #452] ; (8010814 <WriteChannel+0x2c8>)
801064e: 2100 movs r1, #0
8010650: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IIN;
8010652: 8abb ldrh r3, [r7, #20]
8010654: 1c5a adds r2, r3, #1
8010656: 82ba strh r2, [r7, #20]
8010658: 4619 mov r1, r3
801065a: 79fb ldrb r3, [r7, #7]
801065c: 4a6e ldr r2, [pc, #440] ; (8010818 <WriteChannel+0x2cc>)
801065e: 015b lsls r3, r3, #5
8010660: 4413 add r3, r2
8010662: 881b ldrh r3, [r3, #0]
8010664: b29b uxth r3, r3
8010666: b2da uxtb r2, r3
8010668: 4b6a ldr r3, [pc, #424] ; (8010814 <WriteChannel+0x2c8>)
801066a: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
801066c: 8abb ldrh r3, [r7, #20]
801066e: 1c5a adds r2, r3, #1
8010670: 82ba strh r2, [r7, #20]
8010672: 461a mov r2, r3
8010674: 4b67 ldr r3, [pc, #412] ; (8010814 <WriteChannel+0x2c8>)
8010676: 2100 movs r1, #0
8010678: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IFV;
801067a: 8abb ldrh r3, [r7, #20]
801067c: 1c5a adds r2, r3, #1
801067e: 82ba strh r2, [r7, #20]
8010680: 4619 mov r1, r3
8010682: 79fb ldrb r3, [r7, #7]
8010684: 4a64 ldr r2, [pc, #400] ; (8010818 <WriteChannel+0x2cc>)
8010686: 015b lsls r3, r3, #5
8010688: 4413 add r3, r2
801068a: 3302 adds r3, #2
801068c: 881b ldrh r3, [r3, #0]
801068e: b29b uxth r3, r3
8010690: b2da uxtb r2, r3
8010692: 4b60 ldr r3, [pc, #384] ; (8010814 <WriteChannel+0x2c8>)
8010694: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
8010696: 8abb ldrh r3, [r7, #20]
8010698: 1c5a adds r2, r3, #1
801069a: 82ba strh r2, [r7, #20]
801069c: 461a mov r2, r3
801069e: 4b5d ldr r3, [pc, #372] ; (8010814 <WriteChannel+0x2c8>)
80106a0: 2100 movs r1, #0
80106a2: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IFN;
80106a4: 8abb ldrh r3, [r7, #20]
80106a6: 1c5a adds r2, r3, #1
80106a8: 82ba strh r2, [r7, #20]
80106aa: 4619 mov r1, r3
80106ac: 79fb ldrb r3, [r7, #7]
80106ae: 4a5a ldr r2, [pc, #360] ; (8010818 <WriteChannel+0x2cc>)
80106b0: 015b lsls r3, r3, #5
80106b2: 4413 add r3, r2
80106b4: 3304 adds r3, #4
80106b6: 881b ldrh r3, [r3, #0]
80106b8: b29b uxth r3, r3
80106ba: b2da uxtb r2, r3
80106bc: 4b55 ldr r3, [pc, #340] ; (8010814 <WriteChannel+0x2c8>)
80106be: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
80106c0: 8abb ldrh r3, [r7, #20]
80106c2: 1c5a adds r2, r3, #1
80106c4: 82ba strh r2, [r7, #20]
80106c6: 461a mov r2, r3
80106c8: 4b52 ldr r3, [pc, #328] ; (8010814 <WriteChannel+0x2c8>)
80106ca: 2100 movs r1, #0
80106cc: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IKU;
80106ce: 8abb ldrh r3, [r7, #20]
80106d0: 1c5a adds r2, r3, #1
80106d2: 82ba strh r2, [r7, #20]
80106d4: 4619 mov r1, r3
80106d6: 79fb ldrb r3, [r7, #7]
80106d8: 4a4f ldr r2, [pc, #316] ; (8010818 <WriteChannel+0x2cc>)
80106da: 015b lsls r3, r3, #5
80106dc: 4413 add r3, r2
80106de: 3306 adds r3, #6
80106e0: 881b ldrh r3, [r3, #0]
80106e2: b29b uxth r3, r3
80106e4: b2da uxtb r2, r3
80106e6: 4b4b ldr r3, [pc, #300] ; (8010814 <WriteChannel+0x2c8>)
80106e8: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
80106ea: 8abb ldrh r3, [r7, #20]
80106ec: 1c5a adds r2, r3, #1
80106ee: 82ba strh r2, [r7, #20]
80106f0: 461a mov r2, r3
80106f2: 4b48 ldr r3, [pc, #288] ; (8010814 <WriteChannel+0x2c8>)
80106f4: 2100 movs r1, #0
80106f6: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IKE;
80106f8: 8abb ldrh r3, [r7, #20]
80106fa: 1c5a adds r2, r3, #1
80106fc: 82ba strh r2, [r7, #20]
80106fe: 4619 mov r1, r3
8010700: 79fb ldrb r3, [r7, #7]
8010702: 4a45 ldr r2, [pc, #276] ; (8010818 <WriteChannel+0x2cc>)
8010704: 015b lsls r3, r3, #5
8010706: 4413 add r3, r2
8010708: 3308 adds r3, #8
801070a: 881b ldrh r3, [r3, #0]
801070c: b29b uxth r3, r3
801070e: b2da uxtb r2, r3
8010710: 4b40 ldr r3, [pc, #256] ; (8010814 <WriteChannel+0x2c8>)
8010712: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
8010714: 8abb ldrh r3, [r7, #20]
8010716: 1c5a adds r2, r3, #1
8010718: 82ba strh r2, [r7, #20]
801071a: 461a mov r2, r3
801071c: 4b3d ldr r3, [pc, #244] ; (8010814 <WriteChannel+0x2c8>)
801071e: 2100 movs r1, #0
8010720: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IKD;
8010722: 8abb ldrh r3, [r7, #20]
8010724: 1c5a adds r2, r3, #1
8010726: 82ba strh r2, [r7, #20]
8010728: 4619 mov r1, r3
801072a: 79fb ldrb r3, [r7, #7]
801072c: 4a3a ldr r2, [pc, #232] ; (8010818 <WriteChannel+0x2cc>)
801072e: 015b lsls r3, r3, #5
8010730: 4413 add r3, r2
8010732: 330a adds r3, #10
8010734: 881b ldrh r3, [r3, #0]
8010736: b29b uxth r3, r3
8010738: b2da uxtb r2, r3
801073a: 4b36 ldr r3, [pc, #216] ; (8010814 <WriteChannel+0x2c8>)
801073c: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
801073e: 8abb ldrh r3, [r7, #20]
8010740: 1c5a adds r2, r3, #1
8010742: 82ba strh r2, [r7, #20]
8010744: 461a mov r2, r3
8010746: 4b33 ldr r3, [pc, #204] ; (8010814 <WriteChannel+0x2c8>)
8010748: 2100 movs r1, #0
801074a: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IKS;
801074c: 8abb ldrh r3, [r7, #20]
801074e: 1c5a adds r2, r3, #1
8010750: 82ba strh r2, [r7, #20]
8010752: 4619 mov r1, r3
8010754: 79fb ldrb r3, [r7, #7]
8010756: 4a30 ldr r2, [pc, #192] ; (8010818 <WriteChannel+0x2cc>)
8010758: 015b lsls r3, r3, #5
801075a: 4413 add r3, r2
801075c: 330c adds r3, #12
801075e: 881b ldrh r3, [r3, #0]
8010760: b29b uxth r3, r3
8010762: b2da uxtb r2, r3
8010764: 4b2b ldr r3, [pc, #172] ; (8010814 <WriteChannel+0x2c8>)
8010766: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
8010768: 8abb ldrh r3, [r7, #20]
801076a: 1c5a adds r2, r3, #1
801076c: 82ba strh r2, [r7, #20]
801076e: 461a mov r2, r3
8010770: 4b28 ldr r3, [pc, #160] ; (8010814 <WriteChannel+0x2c8>)
8010772: 2100 movs r1, #0
8010774: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].IPZ;
8010776: 8abb ldrh r3, [r7, #20]
8010778: 1c5a adds r2, r3, #1
801077a: 82ba strh r2, [r7, #20]
801077c: 4619 mov r1, r3
801077e: 79fb ldrb r3, [r7, #7]
8010780: 4a25 ldr r2, [pc, #148] ; (8010818 <WriteChannel+0x2cc>)
8010782: 015b lsls r3, r3, #5
8010784: 4413 add r3, r2
8010786: 330e adds r3, #14
8010788: 881b ldrh r3, [r3, #0]
801078a: b29b uxth r3, r3
801078c: b2da uxtb r2, r3
801078e: 4b21 ldr r3, [pc, #132] ; (8010814 <WriteChannel+0x2c8>)
8010790: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
8010792: 8abb ldrh r3, [r7, #20]
8010794: 1c5a adds r2, r3, #1
8010796: 82ba strh r2, [r7, #20]
8010798: 461a mov r2, r3
801079a: 4b1e ldr r3, [pc, #120] ; (8010814 <WriteChannel+0x2c8>)
801079c: 2100 movs r1, #0
801079e: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].OPZ;
80107a0: 8abb ldrh r3, [r7, #20]
80107a2: 1c5a adds r2, r3, #1
80107a4: 82ba strh r2, [r7, #20]
80107a6: 4619 mov r1, r3
80107a8: 79fb ldrb r3, [r7, #7]
80107aa: 4a1b ldr r2, [pc, #108] ; (8010818 <WriteChannel+0x2cc>)
80107ac: 015b lsls r3, r3, #5
80107ae: 4413 add r3, r2
80107b0: 3310 adds r3, #16
80107b2: 881b ldrh r3, [r3, #0]
80107b4: b29b uxth r3, r3
80107b6: b2da uxtb r2, r3
80107b8: 4b16 ldr r3, [pc, #88] ; (8010814 <WriteChannel+0x2c8>)
80107ba: 545a strb r2, [r3, r1]
iobuf[len++] = 0;
80107bc: 8abb ldrh r3, [r7, #20]
80107be: 1c5a adds r2, r3, #1
80107c0: 82ba strh r2, [r7, #20]
80107c2: 461a mov r2, r3
80107c4: 4b13 ldr r3, [pc, #76] ; (8010814 <WriteChannel+0x2c8>)
80107c6: 2100 movs r1, #0
80107c8: 5499 strb r1, [r3, r2]
iobuf[len++] = pardata.amplif[ch].VAL;
80107ca: 8abb ldrh r3, [r7, #20]
80107cc: 1c5a adds r2, r3, #1
80107ce: 82ba strh r2, [r7, #20]
80107d0: 4619 mov r1, r3
80107d2: 79fb ldrb r3, [r7, #7]
80107d4: 4a10 ldr r2, [pc, #64] ; (8010818 <WriteChannel+0x2cc>)
80107d6: 015b lsls r3, r3, #5
80107d8: 4413 add r3, r2
80107da: 3312 adds r3, #18
80107dc: 881b ldrh r3, [r3, #0]
80107de: b29b uxth r3, r3
80107e0: b2da uxtb r2, r3
80107e2: 4b0c ldr r3, [pc, #48] ; (8010814 <WriteChannel+0x2c8>)
80107e4: 545a strb r2, [r3, r1]
crc = Crc16(len);
80107e6: 8abb ldrh r3, [r7, #20]
80107e8: 4618 mov r0, r3
80107ea: f7ff fb29 bl 800fe40 <Crc16>
80107ee: 4603 mov r3, r0
80107f0: 827b strh r3, [r7, #18]
iobuf[len++] = LO(crc);
80107f2: 8abb ldrh r3, [r7, #20]
80107f4: 1c5a adds r2, r3, #1
80107f6: 82ba strh r2, [r7, #20]
80107f8: 461a mov r2, r3
80107fa: 8a7b ldrh r3, [r7, #18]
80107fc: b2d9 uxtb r1, r3
80107fe: e00d b.n 801081c <WriteChannel+0x2d0>
8010800: 2006c434 .word 0x2006c434
8010804: 2006ba91 .word 0x2006ba91
8010808: 2006ba93 .word 0x2006ba93
801080c: 2006ba92 .word 0x2006ba92
8010810: 2006c4bc .word 0x2006c4bc
8010814: 2006c5c4 .word 0x2006c5c4
8010818: 2006bca8 .word 0x2006bca8
801081c: 4b44 ldr r3, [pc, #272] ; (8010930 <WriteChannel+0x3e4>)
801081e: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
8010820: 8abb ldrh r3, [r7, #20]
8010822: 1c5a adds r2, r3, #1
8010824: 82ba strh r2, [r7, #20]
8010826: 461a mov r2, r3
8010828: 8a7b ldrh r3, [r7, #18]
801082a: 0a1b lsrs r3, r3, #8
801082c: b29b uxth r3, r3
801082e: b2d9 uxtb r1, r3
8010830: 4b3f ldr r3, [pc, #252] ; (8010930 <WriteChannel+0x3e4>)
8010832: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
8010834: f000 fed2 bl 80115dc <HAL_GetTick>
8010838: 4603 mov r3, r0
801083a: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
801083c: 2201 movs r2, #1
801083e: f44f 7100 mov.w r1, #512 ; 0x200
8010842: 483c ldr r0, [pc, #240] ; (8010934 <WriteChannel+0x3e8>)
8010844: f002 fa02 bl 8012c4c <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
8010848: 8abb ldrh r3, [r7, #20]
801084a: 461a mov r2, r3
801084c: 4938 ldr r1, [pc, #224] ; (8010930 <WriteChannel+0x3e4>)
801084e: 483a ldr r0, [pc, #232] ; (8010938 <WriteChannel+0x3ec>)
8010850: f004 fb2a bl 8014ea8 <HAL_UART_Transmit_IT>
8010854: 4603 mov r3, r0
8010856: 2b00 cmp r3, #0
8010858: d163 bne.n 8010922 <WriteChannel+0x3d6>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 200));
801085a: bf00 nop
801085c: 4b37 ldr r3, [pc, #220] ; (801093c <WriteChannel+0x3f0>)
801085e: 781b ldrb r3, [r3, #0]
8010860: b2db uxtb r3, r3
8010862: f083 0301 eor.w r3, r3, #1
8010866: b2db uxtb r3, r3
8010868: 2b00 cmp r3, #0
801086a: d006 beq.n 801087a <WriteChannel+0x32e>
801086c: f000 feb6 bl 80115dc <HAL_GetTick>
8010870: 4602 mov r2, r0
8010872: 68fb ldr r3, [r7, #12]
8010874: 1ad3 subs r3, r2, r3
8010876: 2bc7 cmp r3, #199 ; 0xc7
8010878: d9f0 bls.n 801085c <WriteChannel+0x310>
if(!TX_OK)
801087a: 4b30 ldr r3, [pc, #192] ; (801093c <WriteChannel+0x3f0>)
801087c: 781b ldrb r3, [r3, #0]
801087e: b2db uxtb r3, r3
8010880: f083 0301 eor.w r3, r3, #1
8010884: b2db uxtb r3, r3
8010886: 2b00 cmp r3, #0
8010888: d00b beq.n 80108a2 <WriteChannel+0x356>
{
HAL_UART_Abort_IT(&huart7);
801088a: 482b ldr r0, [pc, #172] ; (8010938 <WriteChannel+0x3ec>)
801088c: f004 fb7a bl 8014f84 <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010890: 2200 movs r2, #0
8010892: f44f 7100 mov.w r1, #512 ; 0x200
8010896: 4827 ldr r0, [pc, #156] ; (8010934 <WriteChannel+0x3e8>)
8010898: f002 f9d8 bl 8012c4c <HAL_GPIO_WritePin>
return (-1);
801089c: f04f 33ff mov.w r3, #4294967295
80108a0: e041 b.n 8010926 <WriteChannel+0x3da>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
80108a2: 2200 movs r2, #0
80108a4: f44f 7100 mov.w r1, #512 ; 0x200
80108a8: 4822 ldr r0, [pc, #136] ; (8010934 <WriteChannel+0x3e8>)
80108aa: f002 f9cf bl 8012c4c <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
80108ae: 2364 movs r3, #100 ; 0x64
80108b0: 2201 movs r2, #1
80108b2: 4923 ldr r1, [pc, #140] ; (8010940 <WriteChannel+0x3f4>)
80108b4: 4820 ldr r0, [pc, #128] ; (8010938 <WriteChannel+0x3ec>)
80108b6: f004 fa27 bl 8014d08 <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK)
80108ba: f44f 73fa mov.w r3, #500 ; 0x1f4
80108be: 2208 movs r2, #8
80108c0: 491f ldr r1, [pc, #124] ; (8010940 <WriteChannel+0x3f4>)
80108c2: 481d ldr r0, [pc, #116] ; (8010938 <WriteChannel+0x3ec>)
80108c4: f004 fa20 bl 8014d08 <HAL_UART_Receive>
80108c8: 4603 mov r3, r0
80108ca: 2b00 cmp r3, #0
80108cc: d120 bne.n 8010910 <WriteChannel+0x3c4>
{
crc = (uint16_t) ((rx[7]) << 8 | rx[6]);
80108ce: 4b1c ldr r3, [pc, #112] ; (8010940 <WriteChannel+0x3f4>)
80108d0: 79db ldrb r3, [r3, #7]
80108d2: 021b lsls r3, r3, #8
80108d4: b21a sxth r2, r3
80108d6: 4b1a ldr r3, [pc, #104] ; (8010940 <WriteChannel+0x3f4>)
80108d8: 799b ldrb r3, [r3, #6]
80108da: b21b sxth r3, r3
80108dc: 4313 orrs r3, r2
80108de: b21b sxth r3, r3
80108e0: 827b strh r3, [r7, #18]
if(crc == Crc16_RX(6))
80108e2: 2006 movs r0, #6
80108e4: f7ff fad8 bl 800fe98 <Crc16_RX>
80108e8: 4603 mov r3, r0
80108ea: 461a mov r2, r3
80108ec: 8a7b ldrh r3, [r7, #18]
80108ee: 4293 cmp r3, r2
80108f0: d10b bne.n 801090a <WriteChannel+0x3be>
{
if(rx[0] == (ch + 1))
80108f2: 4b13 ldr r3, [pc, #76] ; (8010940 <WriteChannel+0x3f4>)
80108f4: 781b ldrb r3, [r3, #0]
80108f6: 461a mov r2, r3
80108f8: 79fb ldrb r3, [r7, #7]
80108fa: 3301 adds r3, #1
80108fc: 429a cmp r2, r3
80108fe: d101 bne.n 8010904 <WriteChannel+0x3b8>
return 0;
8010900: 2300 movs r3, #0
8010902: e010 b.n 8010926 <WriteChannel+0x3da>
else return (-1);
8010904: f04f 33ff mov.w r3, #4294967295
8010908: e00d b.n 8010926 <WriteChannel+0x3da>
}
else
{
return (-1);
801090a: f04f 33ff mov.w r3, #4294967295
801090e: e00a b.n 8010926 <WriteChannel+0x3da>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010910: 2200 movs r2, #0
8010912: f44f 7100 mov.w r1, #512 ; 0x200
8010916: 4807 ldr r0, [pc, #28] ; (8010934 <WriteChannel+0x3e8>)
8010918: f002 f998 bl 8012c4c <HAL_GPIO_WritePin>
return (-1);
801091c: f04f 33ff mov.w r3, #4294967295
8010920: e001 b.n 8010926 <WriteChannel+0x3da>
}
}
return res;
8010922: f997 3017 ldrsb.w r3, [r7, #23]
}
8010926: 4618 mov r0, r3
8010928: 3718 adds r7, #24
801092a: 46bd mov sp, r7
801092c: bd80 pop {r7, pc}
801092e: bf00 nop
8010930: 2006c5c4 .word 0x2006c5c4
8010934: 40021400 .word 0x40021400
8010938: 2006c434 .word 0x2006c434
801093c: 2006ba92 .word 0x2006ba92
8010940: 2006c4bc .word 0x2006c4bc
08010944 <ReadChannelSens>:
int8_t ReadChannelSens(uint8_t ch)
{
8010944: b580 push {r7, lr}
8010946: b086 sub sp, #24
8010948: af00 add r7, sp, #0
801094a: 4603 mov r3, r0
801094c: 71fb strb r3, [r7, #7]
int8_t res = -1;
801094e: 23ff movs r3, #255 ; 0xff
8010950: 75fb strb r3, [r7, #23]
uint16_t i, len = 0, cnt = 0;
8010952: 2300 movs r3, #0
8010954: 82bb strh r3, [r7, #20]
8010956: 2300 movs r3, #0
8010958: 827b strh r3, [r7, #18]
uint16_t crc;
__IO uint32_t timeout;
sfloat f;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
801095a: 4b8a ldr r3, [pc, #552] ; (8010b84 <ReadChannelSens+0x240>)
801095c: 681b ldr r3, [r3, #0]
801095e: 69db ldr r3, [r3, #28]
8010960: f003 0308 and.w r3, r3, #8
8010964: 2b08 cmp r3, #8
8010966: d103 bne.n 8010970 <ReadChannelSens+0x2c>
__HAL_UART_CLEAR_OREFLAG(&huart7);
8010968: 4b86 ldr r3, [pc, #536] ; (8010b84 <ReadChannelSens+0x240>)
801096a: 681b ldr r3, [r3, #0]
801096c: 2208 movs r2, #8
801096e: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
8010970: 4b84 ldr r3, [pc, #528] ; (8010b84 <ReadChannelSens+0x240>)
8010972: 681b ldr r3, [r3, #0]
8010974: 69db ldr r3, [r3, #28]
8010976: f003 0301 and.w r3, r3, #1
801097a: 2b01 cmp r3, #1
801097c: d103 bne.n 8010986 <ReadChannelSens+0x42>
__HAL_UART_CLEAR_PEFLAG(&huart7);
801097e: 4b81 ldr r3, [pc, #516] ; (8010b84 <ReadChannelSens+0x240>)
8010980: 681b ldr r3, [r3, #0]
8010982: 2201 movs r2, #1
8010984: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
8010986: 4b7f ldr r3, [pc, #508] ; (8010b84 <ReadChannelSens+0x240>)
8010988: 681b ldr r3, [r3, #0]
801098a: 69db ldr r3, [r3, #28]
801098c: f003 0302 and.w r3, r3, #2
8010990: 2b02 cmp r3, #2
8010992: d103 bne.n 801099c <ReadChannelSens+0x58>
__HAL_UART_CLEAR_FEFLAG(&huart7);
8010994: 4b7b ldr r3, [pc, #492] ; (8010b84 <ReadChannelSens+0x240>)
8010996: 681b ldr r3, [r3, #0]
8010998: 2202 movs r2, #2
801099a: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
801099c: 4b79 ldr r3, [pc, #484] ; (8010b84 <ReadChannelSens+0x240>)
801099e: 681b ldr r3, [r3, #0]
80109a0: 69db ldr r3, [r3, #28]
80109a2: f003 0304 and.w r3, r3, #4
80109a6: 2b04 cmp r3, #4
80109a8: d103 bne.n 80109b2 <ReadChannelSens+0x6e>
__HAL_UART_CLEAR_NEFLAG(&huart7);
80109aa: 4b76 ldr r3, [pc, #472] ; (8010b84 <ReadChannelSens+0x240>)
80109ac: 681b ldr r3, [r3, #0]
80109ae: 2204 movs r2, #4
80109b0: 621a str r2, [r3, #32]
HAL_Delay(20);
80109b2: 2014 movs r0, #20
80109b4: f000 fe1e bl 80115f4 <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
80109b8: 2200 movs r2, #0
80109ba: 4b73 ldr r3, [pc, #460] ; (8010b88 <ReadChannelSens+0x244>)
80109bc: 4611 mov r1, r2
80109be: 7019 strb r1, [r3, #0]
80109c0: 4b72 ldr r3, [pc, #456] ; (8010b8c <ReadChannelSens+0x248>)
80109c2: 4611 mov r1, r2
80109c4: 7019 strb r1, [r3, #0]
80109c6: 4b72 ldr r3, [pc, #456] ; (8010b90 <ReadChannelSens+0x24c>)
80109c8: 701a strb r2, [r3, #0]
len = 0;
80109ca: 2300 movs r3, #0
80109cc: 82bb strh r3, [r7, #20]
memset((void *) &rx, 0, sizeof(rx));
80109ce: f44f 7280 mov.w r2, #256 ; 0x100
80109d2: 2100 movs r1, #0
80109d4: 486f ldr r0, [pc, #444] ; (8010b94 <ReadChannelSens+0x250>)
80109d6: f005 fd80 bl 80164da <memset>
iobuf[len++] = ch + 1;
80109da: 8abb ldrh r3, [r7, #20]
80109dc: 1c5a adds r2, r3, #1
80109de: 82ba strh r2, [r7, #20]
80109e0: 461a mov r2, r3
80109e2: 79fb ldrb r3, [r7, #7]
80109e4: 3301 adds r3, #1
80109e6: b2d9 uxtb r1, r3
80109e8: 4b6b ldr r3, [pc, #428] ; (8010b98 <ReadChannelSens+0x254>)
80109ea: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x03;
80109ec: 8abb ldrh r3, [r7, #20]
80109ee: 1c5a adds r2, r3, #1
80109f0: 82ba strh r2, [r7, #20]
80109f2: 461a mov r2, r3
80109f4: 4b68 ldr r3, [pc, #416] ; (8010b98 <ReadChannelSens+0x254>)
80109f6: 2103 movs r1, #3
80109f8: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(7502);
80109fa: 8abb ldrh r3, [r7, #20]
80109fc: 1c5a adds r2, r3, #1
80109fe: 82ba strh r2, [r7, #20]
8010a00: 461a mov r2, r3
8010a02: 4b65 ldr r3, [pc, #404] ; (8010b98 <ReadChannelSens+0x254>)
8010a04: 211d movs r1, #29
8010a06: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(7502);
8010a08: 8abb ldrh r3, [r7, #20]
8010a0a: 1c5a adds r2, r3, #1
8010a0c: 82ba strh r2, [r7, #20]
8010a0e: 461a mov r2, r3
8010a10: 4b61 ldr r3, [pc, #388] ; (8010b98 <ReadChannelSens+0x254>)
8010a12: 214e movs r1, #78 ; 0x4e
8010a14: 5499 strb r1, [r3, r2]
iobuf[len++] = 0; //
8010a16: 8abb ldrh r3, [r7, #20]
8010a18: 1c5a adds r2, r3, #1
8010a1a: 82ba strh r2, [r7, #20]
8010a1c: 461a mov r2, r3
8010a1e: 4b5e ldr r3, [pc, #376] ; (8010b98 <ReadChannelSens+0x254>)
8010a20: 2100 movs r1, #0
8010a22: 5499 strb r1, [r3, r2]
iobuf[len++] = 1; // SENS
8010a24: 8abb ldrh r3, [r7, #20]
8010a26: 1c5a adds r2, r3, #1
8010a28: 82ba strh r2, [r7, #20]
8010a2a: 461a mov r2, r3
8010a2c: 4b5a ldr r3, [pc, #360] ; (8010b98 <ReadChannelSens+0x254>)
8010a2e: 2101 movs r1, #1
8010a30: 5499 strb r1, [r3, r2]
crc = Crc16(len);
8010a32: 8abb ldrh r3, [r7, #20]
8010a34: 4618 mov r0, r3
8010a36: f7ff fa03 bl 800fe40 <Crc16>
8010a3a: 4603 mov r3, r0
8010a3c: 823b strh r3, [r7, #16]
iobuf[len++] = LO(crc);
8010a3e: 8abb ldrh r3, [r7, #20]
8010a40: 1c5a adds r2, r3, #1
8010a42: 82ba strh r2, [r7, #20]
8010a44: 461a mov r2, r3
8010a46: 8a3b ldrh r3, [r7, #16]
8010a48: b2d9 uxtb r1, r3
8010a4a: 4b53 ldr r3, [pc, #332] ; (8010b98 <ReadChannelSens+0x254>)
8010a4c: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
8010a4e: 8abb ldrh r3, [r7, #20]
8010a50: 1c5a adds r2, r3, #1
8010a52: 82ba strh r2, [r7, #20]
8010a54: 461a mov r2, r3
8010a56: 8a3b ldrh r3, [r7, #16]
8010a58: 0a1b lsrs r3, r3, #8
8010a5a: b29b uxth r3, r3
8010a5c: b2d9 uxtb r1, r3
8010a5e: 4b4e ldr r3, [pc, #312] ; (8010b98 <ReadChannelSens+0x254>)
8010a60: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
8010a62: f000 fdbb bl 80115dc <HAL_GetTick>
8010a66: 4603 mov r3, r0
8010a68: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
8010a6a: 2201 movs r2, #1
8010a6c: f44f 7100 mov.w r1, #512 ; 0x200
8010a70: 484a ldr r0, [pc, #296] ; (8010b9c <ReadChannelSens+0x258>)
8010a72: f002 f8eb bl 8012c4c <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
8010a76: 8abb ldrh r3, [r7, #20]
8010a78: 461a mov r2, r3
8010a7a: 4947 ldr r1, [pc, #284] ; (8010b98 <ReadChannelSens+0x254>)
8010a7c: 4841 ldr r0, [pc, #260] ; (8010b84 <ReadChannelSens+0x240>)
8010a7e: f004 fa13 bl 8014ea8 <HAL_UART_Transmit_IT>
8010a82: 4603 mov r3, r0
8010a84: 2b00 cmp r3, #0
8010a86: d177 bne.n 8010b78 <ReadChannelSens+0x234>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 50));
8010a88: bf00 nop
8010a8a: 4b41 ldr r3, [pc, #260] ; (8010b90 <ReadChannelSens+0x24c>)
8010a8c: 781b ldrb r3, [r3, #0]
8010a8e: b2db uxtb r3, r3
8010a90: f083 0301 eor.w r3, r3, #1
8010a94: b2db uxtb r3, r3
8010a96: 2b00 cmp r3, #0
8010a98: d006 beq.n 8010aa8 <ReadChannelSens+0x164>
8010a9a: f000 fd9f bl 80115dc <HAL_GetTick>
8010a9e: 4602 mov r2, r0
8010aa0: 68fb ldr r3, [r7, #12]
8010aa2: 1ad3 subs r3, r2, r3
8010aa4: 2b31 cmp r3, #49 ; 0x31
8010aa6: d9f0 bls.n 8010a8a <ReadChannelSens+0x146>
if(!TX_OK)
8010aa8: 4b39 ldr r3, [pc, #228] ; (8010b90 <ReadChannelSens+0x24c>)
8010aaa: 781b ldrb r3, [r3, #0]
8010aac: b2db uxtb r3, r3
8010aae: f083 0301 eor.w r3, r3, #1
8010ab2: b2db uxtb r3, r3
8010ab4: 2b00 cmp r3, #0
8010ab6: d00b beq.n 8010ad0 <ReadChannelSens+0x18c>
{
HAL_UART_Abort_IT(&huart7);
8010ab8: 4832 ldr r0, [pc, #200] ; (8010b84 <ReadChannelSens+0x240>)
8010aba: f004 fa63 bl 8014f84 <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010abe: 2200 movs r2, #0
8010ac0: f44f 7100 mov.w r1, #512 ; 0x200
8010ac4: 4835 ldr r0, [pc, #212] ; (8010b9c <ReadChannelSens+0x258>)
8010ac6: f002 f8c1 bl 8012c4c <HAL_GPIO_WritePin>
return (-1);
8010aca: f04f 33ff mov.w r3, #4294967295
8010ace: e055 b.n 8010b7c <ReadChannelSens+0x238>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010ad0: 2200 movs r2, #0
8010ad2: f44f 7100 mov.w r1, #512 ; 0x200
8010ad6: 4831 ldr r0, [pc, #196] ; (8010b9c <ReadChannelSens+0x258>)
8010ad8: f002 f8b8 bl 8012c4c <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
8010adc: 2364 movs r3, #100 ; 0x64
8010ade: 2201 movs r2, #1
8010ae0: 492c ldr r1, [pc, #176] ; (8010b94 <ReadChannelSens+0x250>)
8010ae2: 4828 ldr r0, [pc, #160] ; (8010b84 <ReadChannelSens+0x240>)
8010ae4: f004 f910 bl 8014d08 <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 9, 100) == HAL_OK)
8010ae8: 2364 movs r3, #100 ; 0x64
8010aea: 2209 movs r2, #9
8010aec: 4929 ldr r1, [pc, #164] ; (8010b94 <ReadChannelSens+0x250>)
8010aee: 4825 ldr r0, [pc, #148] ; (8010b84 <ReadChannelSens+0x240>)
8010af0: f004 f90a bl 8014d08 <HAL_UART_Receive>
8010af4: 4603 mov r3, r0
8010af6: 2b00 cmp r3, #0
8010af8: d135 bne.n 8010b66 <ReadChannelSens+0x222>
{
crc = (uint16_t) ((rx[8]) << 8 | rx[7]);
8010afa: 4b26 ldr r3, [pc, #152] ; (8010b94 <ReadChannelSens+0x250>)
8010afc: 7a1b ldrb r3, [r3, #8]
8010afe: 021b lsls r3, r3, #8
8010b00: b21a sxth r2, r3
8010b02: 4b24 ldr r3, [pc, #144] ; (8010b94 <ReadChannelSens+0x250>)
8010b04: 79db ldrb r3, [r3, #7]
8010b06: b21b sxth r3, r3
8010b08: 4313 orrs r3, r2
8010b0a: b21b sxth r3, r3
8010b0c: 823b strh r3, [r7, #16]
if(crc == Crc16_RX(7))
8010b0e: 2007 movs r0, #7
8010b10: f7ff f9c2 bl 800fe98 <Crc16_RX>
8010b14: 4603 mov r3, r0
8010b16: 461a mov r2, r3
8010b18: 8a3b ldrh r3, [r7, #16]
8010b1a: 4293 cmp r3, r2
8010b1c: d120 bne.n 8010b60 <ReadChannelSens+0x21c>
{
f.ch[3] = rx[3];
8010b1e: 4b1d ldr r3, [pc, #116] ; (8010b94 <ReadChannelSens+0x250>)
8010b20: 78db ldrb r3, [r3, #3]
8010b22: 72fb strb r3, [r7, #11]
f.ch[2] = rx[4];
8010b24: 4b1b ldr r3, [pc, #108] ; (8010b94 <ReadChannelSens+0x250>)
8010b26: 791b ldrb r3, [r3, #4]
8010b28: 72bb strb r3, [r7, #10]
f.ch[1] = rx[5];
8010b2a: 4b1a ldr r3, [pc, #104] ; (8010b94 <ReadChannelSens+0x250>)
8010b2c: 795b ldrb r3, [r3, #5]
8010b2e: 727b strb r3, [r7, #9]
f.ch[0] = rx[6];
8010b30: 4b18 ldr r3, [pc, #96] ; (8010b94 <ReadChannelSens+0x250>)
8010b32: 799b ldrb r3, [r3, #6]
8010b34: 723b strb r3, [r7, #8]
if(f.fl < 0.0001f) {
8010b36: edd7 7a02 vldr s15, [r7, #8]
8010b3a: ed9f 7a19 vldr s14, [pc, #100] ; 8010ba0 <ReadChannelSens+0x25c>
8010b3e: eef4 7ac7 vcmpe.f32 s15, s14
8010b42: eef1 fa10 vmrs APSR_nzcv, fpscr
8010b46: d502 bpl.n 8010b4e <ReadChannelSens+0x20a>
return (-1);
8010b48: f04f 33ff mov.w r3, #4294967295
8010b4c: e016 b.n 8010b7c <ReadChannelSens+0x238>
}
else
{
pardata.amplif[ch].SENS = f.fl;
8010b4e: 79fb ldrb r3, [r7, #7]
8010b50: 68ba ldr r2, [r7, #8]
8010b52: 4914 ldr r1, [pc, #80] ; (8010ba4 <ReadChannelSens+0x260>)
8010b54: 015b lsls r3, r3, #5
8010b56: 440b add r3, r1
8010b58: 3318 adds r3, #24
8010b5a: 601a str r2, [r3, #0]
}
return 0;
8010b5c: 2300 movs r3, #0
8010b5e: e00d b.n 8010b7c <ReadChannelSens+0x238>
}
else
{
return (-1);
8010b60: f04f 33ff mov.w r3, #4294967295
8010b64: e00a b.n 8010b7c <ReadChannelSens+0x238>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010b66: 2200 movs r2, #0
8010b68: f44f 7100 mov.w r1, #512 ; 0x200
8010b6c: 480b ldr r0, [pc, #44] ; (8010b9c <ReadChannelSens+0x258>)
8010b6e: f002 f86d bl 8012c4c <HAL_GPIO_WritePin>
return (-1);
8010b72: f04f 33ff mov.w r3, #4294967295
8010b76: e001 b.n 8010b7c <ReadChannelSens+0x238>
}
}
return res;
8010b78: f997 3017 ldrsb.w r3, [r7, #23]
}
8010b7c: 4618 mov r0, r3
8010b7e: 3718 adds r7, #24
8010b80: 46bd mov sp, r7
8010b82: bd80 pop {r7, pc}
8010b84: 2006c434 .word 0x2006c434
8010b88: 2006ba91 .word 0x2006ba91
8010b8c: 2006ba93 .word 0x2006ba93
8010b90: 2006ba92 .word 0x2006ba92
8010b94: 2006c4bc .word 0x2006c4bc
8010b98: 2006c5c4 .word 0x2006c5c4
8010b9c: 40021400 .word 0x40021400
8010ba0: 38d1b717 .word 0x38d1b717
8010ba4: 2006bca8 .word 0x2006bca8
08010ba8 <WriteChannelSens>:
int8_t WriteChannelSens(uint8_t ch)
{
8010ba8: b580 push {r7, lr}
8010baa: b086 sub sp, #24
8010bac: af00 add r7, sp, #0
8010bae: 4603 mov r3, r0
8010bb0: 71fb strb r3, [r7, #7]
int8_t res = -1;
8010bb2: 23ff movs r3, #255 ; 0xff
8010bb4: 75fb strb r3, [r7, #23]
uint16_t i, len = 0;
8010bb6: 2300 movs r3, #0
8010bb8: 82bb strh r3, [r7, #20]
uint16_t crc;
__IO uint32_t timeout;
sfloat f;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
8010bba: 4b95 ldr r3, [pc, #596] ; (8010e10 <WriteChannelSens+0x268>)
8010bbc: 681b ldr r3, [r3, #0]
8010bbe: 69db ldr r3, [r3, #28]
8010bc0: f003 0308 and.w r3, r3, #8
8010bc4: 2b08 cmp r3, #8
8010bc6: d103 bne.n 8010bd0 <WriteChannelSens+0x28>
__HAL_UART_CLEAR_OREFLAG(&huart7);
8010bc8: 4b91 ldr r3, [pc, #580] ; (8010e10 <WriteChannelSens+0x268>)
8010bca: 681b ldr r3, [r3, #0]
8010bcc: 2208 movs r2, #8
8010bce: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
8010bd0: 4b8f ldr r3, [pc, #572] ; (8010e10 <WriteChannelSens+0x268>)
8010bd2: 681b ldr r3, [r3, #0]
8010bd4: 69db ldr r3, [r3, #28]
8010bd6: f003 0301 and.w r3, r3, #1
8010bda: 2b01 cmp r3, #1
8010bdc: d103 bne.n 8010be6 <WriteChannelSens+0x3e>
__HAL_UART_CLEAR_PEFLAG(&huart7);
8010bde: 4b8c ldr r3, [pc, #560] ; (8010e10 <WriteChannelSens+0x268>)
8010be0: 681b ldr r3, [r3, #0]
8010be2: 2201 movs r2, #1
8010be4: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
8010be6: 4b8a ldr r3, [pc, #552] ; (8010e10 <WriteChannelSens+0x268>)
8010be8: 681b ldr r3, [r3, #0]
8010bea: 69db ldr r3, [r3, #28]
8010bec: f003 0302 and.w r3, r3, #2
8010bf0: 2b02 cmp r3, #2
8010bf2: d103 bne.n 8010bfc <WriteChannelSens+0x54>
__HAL_UART_CLEAR_FEFLAG(&huart7);
8010bf4: 4b86 ldr r3, [pc, #536] ; (8010e10 <WriteChannelSens+0x268>)
8010bf6: 681b ldr r3, [r3, #0]
8010bf8: 2202 movs r2, #2
8010bfa: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
8010bfc: 4b84 ldr r3, [pc, #528] ; (8010e10 <WriteChannelSens+0x268>)
8010bfe: 681b ldr r3, [r3, #0]
8010c00: 69db ldr r3, [r3, #28]
8010c02: f003 0304 and.w r3, r3, #4
8010c06: 2b04 cmp r3, #4
8010c08: d103 bne.n 8010c12 <WriteChannelSens+0x6a>
__HAL_UART_CLEAR_NEFLAG(&huart7);
8010c0a: 4b81 ldr r3, [pc, #516] ; (8010e10 <WriteChannelSens+0x268>)
8010c0c: 681b ldr r3, [r3, #0]
8010c0e: 2204 movs r2, #4
8010c10: 621a str r2, [r3, #32]
HAL_Delay(20);
8010c12: 2014 movs r0, #20
8010c14: f000 fcee bl 80115f4 <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
8010c18: 2200 movs r2, #0
8010c1a: 4b7e ldr r3, [pc, #504] ; (8010e14 <WriteChannelSens+0x26c>)
8010c1c: 4611 mov r1, r2
8010c1e: 7019 strb r1, [r3, #0]
8010c20: 4b7d ldr r3, [pc, #500] ; (8010e18 <WriteChannelSens+0x270>)
8010c22: 4611 mov r1, r2
8010c24: 7019 strb r1, [r3, #0]
8010c26: 4b7d ldr r3, [pc, #500] ; (8010e1c <WriteChannelSens+0x274>)
8010c28: 701a strb r2, [r3, #0]
len = 0;
8010c2a: 2300 movs r3, #0
8010c2c: 82bb strh r3, [r7, #20]
memset((void *) &rx, 0, sizeof(rx));
8010c2e: f44f 7280 mov.w r2, #256 ; 0x100
8010c32: 2100 movs r1, #0
8010c34: 487a ldr r0, [pc, #488] ; (8010e20 <WriteChannelSens+0x278>)
8010c36: f005 fc50 bl 80164da <memset>
iobuf[len++] = ch + 1;
8010c3a: 8abb ldrh r3, [r7, #20]
8010c3c: 1c5a adds r2, r3, #1
8010c3e: 82ba strh r2, [r7, #20]
8010c40: 461a mov r2, r3
8010c42: 79fb ldrb r3, [r7, #7]
8010c44: 3301 adds r3, #1
8010c46: b2d9 uxtb r1, r3
8010c48: 4b76 ldr r3, [pc, #472] ; (8010e24 <WriteChannelSens+0x27c>)
8010c4a: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x10;
8010c4c: 8abb ldrh r3, [r7, #20]
8010c4e: 1c5a adds r2, r3, #1
8010c50: 82ba strh r2, [r7, #20]
8010c52: 461a mov r2, r3
8010c54: 4b73 ldr r3, [pc, #460] ; (8010e24 <WriteChannelSens+0x27c>)
8010c56: 2110 movs r1, #16
8010c58: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(7502);
8010c5a: 8abb ldrh r3, [r7, #20]
8010c5c: 1c5a adds r2, r3, #1
8010c5e: 82ba strh r2, [r7, #20]
8010c60: 461a mov r2, r3
8010c62: 4b70 ldr r3, [pc, #448] ; (8010e24 <WriteChannelSens+0x27c>)
8010c64: 211d movs r1, #29
8010c66: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(7502);
8010c68: 8abb ldrh r3, [r7, #20]
8010c6a: 1c5a adds r2, r3, #1
8010c6c: 82ba strh r2, [r7, #20]
8010c6e: 461a mov r2, r3
8010c70: 4b6c ldr r3, [pc, #432] ; (8010e24 <WriteChannelSens+0x27c>)
8010c72: 214e movs r1, #78 ; 0x4e
8010c74: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
8010c76: 8abb ldrh r3, [r7, #20]
8010c78: 1c5a adds r2, r3, #1
8010c7a: 82ba strh r2, [r7, #20]
8010c7c: 461a mov r2, r3
8010c7e: 4b69 ldr r3, [pc, #420] ; (8010e24 <WriteChannelSens+0x27c>)
8010c80: 2100 movs r1, #0
8010c82: 5499 strb r1, [r3, r2]
iobuf[len++] = 1;
8010c84: 8abb ldrh r3, [r7, #20]
8010c86: 1c5a adds r2, r3, #1
8010c88: 82ba strh r2, [r7, #20]
8010c8a: 461a mov r2, r3
8010c8c: 4b65 ldr r3, [pc, #404] ; (8010e24 <WriteChannelSens+0x27c>)
8010c8e: 2101 movs r1, #1
8010c90: 5499 strb r1, [r3, r2]
iobuf[len++] = 4;
8010c92: 8abb ldrh r3, [r7, #20]
8010c94: 1c5a adds r2, r3, #1
8010c96: 82ba strh r2, [r7, #20]
8010c98: 461a mov r2, r3
8010c9a: 4b62 ldr r3, [pc, #392] ; (8010e24 <WriteChannelSens+0x27c>)
8010c9c: 2104 movs r1, #4
8010c9e: 5499 strb r1, [r3, r2]
f.fl = pardata.amplif[ch].SENS;
8010ca0: 79fb ldrb r3, [r7, #7]
8010ca2: 4a61 ldr r2, [pc, #388] ; (8010e28 <WriteChannelSens+0x280>)
8010ca4: 015b lsls r3, r3, #5
8010ca6: 4413 add r3, r2
8010ca8: 3318 adds r3, #24
8010caa: 681b ldr r3, [r3, #0]
8010cac: 60bb str r3, [r7, #8]
iobuf[len++] = f.ch[3];
8010cae: 8abb ldrh r3, [r7, #20]
8010cb0: 1c5a adds r2, r3, #1
8010cb2: 82ba strh r2, [r7, #20]
8010cb4: 461a mov r2, r3
8010cb6: 7af9 ldrb r1, [r7, #11]
8010cb8: 4b5a ldr r3, [pc, #360] ; (8010e24 <WriteChannelSens+0x27c>)
8010cba: 5499 strb r1, [r3, r2]
iobuf[len++] = f.ch[2];
8010cbc: 8abb ldrh r3, [r7, #20]
8010cbe: 1c5a adds r2, r3, #1
8010cc0: 82ba strh r2, [r7, #20]
8010cc2: 461a mov r2, r3
8010cc4: 7ab9 ldrb r1, [r7, #10]
8010cc6: 4b57 ldr r3, [pc, #348] ; (8010e24 <WriteChannelSens+0x27c>)
8010cc8: 5499 strb r1, [r3, r2]
iobuf[len++] = f.ch[1];
8010cca: 8abb ldrh r3, [r7, #20]
8010ccc: 1c5a adds r2, r3, #1
8010cce: 82ba strh r2, [r7, #20]
8010cd0: 461a mov r2, r3
8010cd2: 7a79 ldrb r1, [r7, #9]
8010cd4: 4b53 ldr r3, [pc, #332] ; (8010e24 <WriteChannelSens+0x27c>)
8010cd6: 5499 strb r1, [r3, r2]
iobuf[len++] = f.ch[0];
8010cd8: 8abb ldrh r3, [r7, #20]
8010cda: 1c5a adds r2, r3, #1
8010cdc: 82ba strh r2, [r7, #20]
8010cde: 461a mov r2, r3
8010ce0: 7a39 ldrb r1, [r7, #8]
8010ce2: 4b50 ldr r3, [pc, #320] ; (8010e24 <WriteChannelSens+0x27c>)
8010ce4: 5499 strb r1, [r3, r2]
crc = Crc16(len);
8010ce6: 8abb ldrh r3, [r7, #20]
8010ce8: 4618 mov r0, r3
8010cea: f7ff f8a9 bl 800fe40 <Crc16>
8010cee: 4603 mov r3, r0
8010cf0: 827b strh r3, [r7, #18]
iobuf[len++] = LO(crc);
8010cf2: 8abb ldrh r3, [r7, #20]
8010cf4: 1c5a adds r2, r3, #1
8010cf6: 82ba strh r2, [r7, #20]
8010cf8: 461a mov r2, r3
8010cfa: 8a7b ldrh r3, [r7, #18]
8010cfc: b2d9 uxtb r1, r3
8010cfe: 4b49 ldr r3, [pc, #292] ; (8010e24 <WriteChannelSens+0x27c>)
8010d00: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
8010d02: 8abb ldrh r3, [r7, #20]
8010d04: 1c5a adds r2, r3, #1
8010d06: 82ba strh r2, [r7, #20]
8010d08: 461a mov r2, r3
8010d0a: 8a7b ldrh r3, [r7, #18]
8010d0c: 0a1b lsrs r3, r3, #8
8010d0e: b29b uxth r3, r3
8010d10: b2d9 uxtb r1, r3
8010d12: 4b44 ldr r3, [pc, #272] ; (8010e24 <WriteChannelSens+0x27c>)
8010d14: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
8010d16: f000 fc61 bl 80115dc <HAL_GetTick>
8010d1a: 4603 mov r3, r0
8010d1c: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
8010d1e: 2201 movs r2, #1
8010d20: f44f 7100 mov.w r1, #512 ; 0x200
8010d24: 4841 ldr r0, [pc, #260] ; (8010e2c <WriteChannelSens+0x284>)
8010d26: f001 ff91 bl 8012c4c <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
8010d2a: 8abb ldrh r3, [r7, #20]
8010d2c: 461a mov r2, r3
8010d2e: 493d ldr r1, [pc, #244] ; (8010e24 <WriteChannelSens+0x27c>)
8010d30: 4837 ldr r0, [pc, #220] ; (8010e10 <WriteChannelSens+0x268>)
8010d32: f004 f8b9 bl 8014ea8 <HAL_UART_Transmit_IT>
8010d36: 4603 mov r3, r0
8010d38: 2b00 cmp r3, #0
8010d3a: d163 bne.n 8010e04 <WriteChannelSens+0x25c>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 200));
8010d3c: bf00 nop
8010d3e: 4b37 ldr r3, [pc, #220] ; (8010e1c <WriteChannelSens+0x274>)
8010d40: 781b ldrb r3, [r3, #0]
8010d42: b2db uxtb r3, r3
8010d44: f083 0301 eor.w r3, r3, #1
8010d48: b2db uxtb r3, r3
8010d4a: 2b00 cmp r3, #0
8010d4c: d006 beq.n 8010d5c <WriteChannelSens+0x1b4>
8010d4e: f000 fc45 bl 80115dc <HAL_GetTick>
8010d52: 4602 mov r2, r0
8010d54: 68fb ldr r3, [r7, #12]
8010d56: 1ad3 subs r3, r2, r3
8010d58: 2bc7 cmp r3, #199 ; 0xc7
8010d5a: d9f0 bls.n 8010d3e <WriteChannelSens+0x196>
if(!TX_OK)
8010d5c: 4b2f ldr r3, [pc, #188] ; (8010e1c <WriteChannelSens+0x274>)
8010d5e: 781b ldrb r3, [r3, #0]
8010d60: b2db uxtb r3, r3
8010d62: f083 0301 eor.w r3, r3, #1
8010d66: b2db uxtb r3, r3
8010d68: 2b00 cmp r3, #0
8010d6a: d00b beq.n 8010d84 <WriteChannelSens+0x1dc>
{
HAL_UART_Abort_IT(&huart7);
8010d6c: 4828 ldr r0, [pc, #160] ; (8010e10 <WriteChannelSens+0x268>)
8010d6e: f004 f909 bl 8014f84 <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010d72: 2200 movs r2, #0
8010d74: f44f 7100 mov.w r1, #512 ; 0x200
8010d78: 482c ldr r0, [pc, #176] ; (8010e2c <WriteChannelSens+0x284>)
8010d7a: f001 ff67 bl 8012c4c <HAL_GPIO_WritePin>
return (-1);
8010d7e: f04f 33ff mov.w r3, #4294967295
8010d82: e041 b.n 8010e08 <WriteChannelSens+0x260>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010d84: 2200 movs r2, #0
8010d86: f44f 7100 mov.w r1, #512 ; 0x200
8010d8a: 4828 ldr r0, [pc, #160] ; (8010e2c <WriteChannelSens+0x284>)
8010d8c: f001 ff5e bl 8012c4c <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
8010d90: 2364 movs r3, #100 ; 0x64
8010d92: 2201 movs r2, #1
8010d94: 4922 ldr r1, [pc, #136] ; (8010e20 <WriteChannelSens+0x278>)
8010d96: 481e ldr r0, [pc, #120] ; (8010e10 <WriteChannelSens+0x268>)
8010d98: f003 ffb6 bl 8014d08 <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK)
8010d9c: f44f 73fa mov.w r3, #500 ; 0x1f4
8010da0: 2208 movs r2, #8
8010da2: 491f ldr r1, [pc, #124] ; (8010e20 <WriteChannelSens+0x278>)
8010da4: 481a ldr r0, [pc, #104] ; (8010e10 <WriteChannelSens+0x268>)
8010da6: f003 ffaf bl 8014d08 <HAL_UART_Receive>
8010daa: 4603 mov r3, r0
8010dac: 2b00 cmp r3, #0
8010dae: d120 bne.n 8010df2 <WriteChannelSens+0x24a>
{
crc = (uint16_t) ((rx[7]) << 8 | rx[6]);
8010db0: 4b1b ldr r3, [pc, #108] ; (8010e20 <WriteChannelSens+0x278>)
8010db2: 79db ldrb r3, [r3, #7]
8010db4: 021b lsls r3, r3, #8
8010db6: b21a sxth r2, r3
8010db8: 4b19 ldr r3, [pc, #100] ; (8010e20 <WriteChannelSens+0x278>)
8010dba: 799b ldrb r3, [r3, #6]
8010dbc: b21b sxth r3, r3
8010dbe: 4313 orrs r3, r2
8010dc0: b21b sxth r3, r3
8010dc2: 827b strh r3, [r7, #18]
if(crc == Crc16_RX(6))
8010dc4: 2006 movs r0, #6
8010dc6: f7ff f867 bl 800fe98 <Crc16_RX>
8010dca: 4603 mov r3, r0
8010dcc: 461a mov r2, r3
8010dce: 8a7b ldrh r3, [r7, #18]
8010dd0: 4293 cmp r3, r2
8010dd2: d10b bne.n 8010dec <WriteChannelSens+0x244>
{
if(rx[0] == (ch + 1))
8010dd4: 4b12 ldr r3, [pc, #72] ; (8010e20 <WriteChannelSens+0x278>)
8010dd6: 781b ldrb r3, [r3, #0]
8010dd8: 461a mov r2, r3
8010dda: 79fb ldrb r3, [r7, #7]
8010ddc: 3301 adds r3, #1
8010dde: 429a cmp r2, r3
8010de0: d101 bne.n 8010de6 <WriteChannelSens+0x23e>
return 0;
8010de2: 2300 movs r3, #0
8010de4: e010 b.n 8010e08 <WriteChannelSens+0x260>
else return (-1);
8010de6: f04f 33ff mov.w r3, #4294967295
8010dea: e00d b.n 8010e08 <WriteChannelSens+0x260>
}
else
{
return (-1);
8010dec: f04f 33ff mov.w r3, #4294967295
8010df0: e00a b.n 8010e08 <WriteChannelSens+0x260>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010df2: 2200 movs r2, #0
8010df4: f44f 7100 mov.w r1, #512 ; 0x200
8010df8: 480c ldr r0, [pc, #48] ; (8010e2c <WriteChannelSens+0x284>)
8010dfa: f001 ff27 bl 8012c4c <HAL_GPIO_WritePin>
return (-1);
8010dfe: f04f 33ff mov.w r3, #4294967295
8010e02: e001 b.n 8010e08 <WriteChannelSens+0x260>
}
}
return res;
8010e04: f997 3017 ldrsb.w r3, [r7, #23]
}
8010e08: 4618 mov r0, r3
8010e0a: 3718 adds r7, #24
8010e0c: 46bd mov sp, r7
8010e0e: bd80 pop {r7, pc}
8010e10: 2006c434 .word 0x2006c434
8010e14: 2006ba91 .word 0x2006ba91
8010e18: 2006ba93 .word 0x2006ba93
8010e1c: 2006ba92 .word 0x2006ba92
8010e20: 2006c4bc .word 0x2006c4bc
8010e24: 2006c5c4 .word 0x2006c5c4
8010e28: 2006bca8 .word 0x2006bca8
8010e2c: 40021400 .word 0x40021400
08010e30 <Calibr>:
int8_t Calibr(uint8_t ch, uint8_t on)
{
8010e30: b580 push {r7, lr}
8010e32: b086 sub sp, #24
8010e34: af00 add r7, sp, #0
8010e36: 4603 mov r3, r0
8010e38: 460a mov r2, r1
8010e3a: 71fb strb r3, [r7, #7]
8010e3c: 4613 mov r3, r2
8010e3e: 71bb strb r3, [r7, #6]
int8_t res = -1;
8010e40: 23ff movs r3, #255 ; 0xff
8010e42: 757b strb r3, [r7, #21]
uint16_t i, len = 0;
8010e44: 2300 movs r3, #0
8010e46: 82fb strh r3, [r7, #22]
uint16_t crc;
uint16_t reg;
__IO uint32_t timeout;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
8010e48: 4b92 ldr r3, [pc, #584] ; (8011094 <Calibr+0x264>)
8010e4a: 681b ldr r3, [r3, #0]
8010e4c: 69db ldr r3, [r3, #28]
8010e4e: f003 0308 and.w r3, r3, #8
8010e52: 2b08 cmp r3, #8
8010e54: d103 bne.n 8010e5e <Calibr+0x2e>
__HAL_UART_CLEAR_OREFLAG(&huart7);
8010e56: 4b8f ldr r3, [pc, #572] ; (8011094 <Calibr+0x264>)
8010e58: 681b ldr r3, [r3, #0]
8010e5a: 2208 movs r2, #8
8010e5c: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
8010e5e: 4b8d ldr r3, [pc, #564] ; (8011094 <Calibr+0x264>)
8010e60: 681b ldr r3, [r3, #0]
8010e62: 69db ldr r3, [r3, #28]
8010e64: f003 0301 and.w r3, r3, #1
8010e68: 2b01 cmp r3, #1
8010e6a: d103 bne.n 8010e74 <Calibr+0x44>
__HAL_UART_CLEAR_PEFLAG(&huart7);
8010e6c: 4b89 ldr r3, [pc, #548] ; (8011094 <Calibr+0x264>)
8010e6e: 681b ldr r3, [r3, #0]
8010e70: 2201 movs r2, #1
8010e72: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
8010e74: 4b87 ldr r3, [pc, #540] ; (8011094 <Calibr+0x264>)
8010e76: 681b ldr r3, [r3, #0]
8010e78: 69db ldr r3, [r3, #28]
8010e7a: f003 0302 and.w r3, r3, #2
8010e7e: 2b02 cmp r3, #2
8010e80: d103 bne.n 8010e8a <Calibr+0x5a>
__HAL_UART_CLEAR_FEFLAG(&huart7);
8010e82: 4b84 ldr r3, [pc, #528] ; (8011094 <Calibr+0x264>)
8010e84: 681b ldr r3, [r3, #0]
8010e86: 2202 movs r2, #2
8010e88: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
8010e8a: 4b82 ldr r3, [pc, #520] ; (8011094 <Calibr+0x264>)
8010e8c: 681b ldr r3, [r3, #0]
8010e8e: 69db ldr r3, [r3, #28]
8010e90: f003 0304 and.w r3, r3, #4
8010e94: 2b04 cmp r3, #4
8010e96: d103 bne.n 8010ea0 <Calibr+0x70>
__HAL_UART_CLEAR_NEFLAG(&huart7);
8010e98: 4b7e ldr r3, [pc, #504] ; (8011094 <Calibr+0x264>)
8010e9a: 681b ldr r3, [r3, #0]
8010e9c: 2204 movs r2, #4
8010e9e: 621a str r2, [r3, #32]
HAL_Delay(20);
8010ea0: 2014 movs r0, #20
8010ea2: f000 fba7 bl 80115f4 <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
8010ea6: 2200 movs r2, #0
8010ea8: 4b7b ldr r3, [pc, #492] ; (8011098 <Calibr+0x268>)
8010eaa: 4611 mov r1, r2
8010eac: 7019 strb r1, [r3, #0]
8010eae: 4b7b ldr r3, [pc, #492] ; (801109c <Calibr+0x26c>)
8010eb0: 4611 mov r1, r2
8010eb2: 7019 strb r1, [r3, #0]
8010eb4: 4b7a ldr r3, [pc, #488] ; (80110a0 <Calibr+0x270>)
8010eb6: 701a strb r2, [r3, #0]
len = 0;
8010eb8: 2300 movs r3, #0
8010eba: 82fb strh r3, [r7, #22]
memset((void *) &rx, 0, sizeof(rx));
8010ebc: f44f 7280 mov.w r2, #256 ; 0x100
8010ec0: 2100 movs r1, #0
8010ec2: 4878 ldr r0, [pc, #480] ; (80110a4 <Calibr+0x274>)
8010ec4: f005 fb09 bl 80164da <memset>
iobuf[len++] = ch + 1;
8010ec8: 8afb ldrh r3, [r7, #22]
8010eca: 1c5a adds r2, r3, #1
8010ecc: 82fa strh r2, [r7, #22]
8010ece: 461a mov r2, r3
8010ed0: 79fb ldrb r3, [r7, #7]
8010ed2: 3301 adds r3, #1
8010ed4: b2d9 uxtb r1, r3
8010ed6: 4b74 ldr r3, [pc, #464] ; (80110a8 <Calibr+0x278>)
8010ed8: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x10;
8010eda: 8afb ldrh r3, [r7, #22]
8010edc: 1c5a adds r2, r3, #1
8010ede: 82fa strh r2, [r7, #22]
8010ee0: 461a mov r2, r3
8010ee2: 4b71 ldr r3, [pc, #452] ; (80110a8 <Calibr+0x278>)
8010ee4: 2110 movs r1, #16
8010ee6: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(3000);
8010ee8: 8afb ldrh r3, [r7, #22]
8010eea: 1c5a adds r2, r3, #1
8010eec: 82fa strh r2, [r7, #22]
8010eee: 461a mov r2, r3
8010ef0: 4b6d ldr r3, [pc, #436] ; (80110a8 <Calibr+0x278>)
8010ef2: 210b movs r1, #11
8010ef4: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(3000);
8010ef6: 8afb ldrh r3, [r7, #22]
8010ef8: 1c5a adds r2, r3, #1
8010efa: 82fa strh r2, [r7, #22]
8010efc: 461a mov r2, r3
8010efe: 4b6a ldr r3, [pc, #424] ; (80110a8 <Calibr+0x278>)
8010f00: 21b8 movs r1, #184 ; 0xb8
8010f02: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
8010f04: 8afb ldrh r3, [r7, #22]
8010f06: 1c5a adds r2, r3, #1
8010f08: 82fa strh r2, [r7, #22]
8010f0a: 461a mov r2, r3
8010f0c: 4b66 ldr r3, [pc, #408] ; (80110a8 <Calibr+0x278>)
8010f0e: 2100 movs r1, #0
8010f10: 5499 strb r1, [r3, r2]
iobuf[len++] = 1;
8010f12: 8afb ldrh r3, [r7, #22]
8010f14: 1c5a adds r2, r3, #1
8010f16: 82fa strh r2, [r7, #22]
8010f18: 461a mov r2, r3
8010f1a: 4b63 ldr r3, [pc, #396] ; (80110a8 <Calibr+0x278>)
8010f1c: 2101 movs r1, #1
8010f1e: 5499 strb r1, [r3, r2]
iobuf[len++] = 2;
8010f20: 8afb ldrh r3, [r7, #22]
8010f22: 1c5a adds r2, r3, #1
8010f24: 82fa strh r2, [r7, #22]
8010f26: 461a mov r2, r3
8010f28: 4b5f ldr r3, [pc, #380] ; (80110a8 <Calibr+0x278>)
8010f2a: 2102 movs r1, #2
8010f2c: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
8010f2e: 8afb ldrh r3, [r7, #22]
8010f30: 1c5a adds r2, r3, #1
8010f32: 82fa strh r2, [r7, #22]
8010f34: 461a mov r2, r3
8010f36: 4b5c ldr r3, [pc, #368] ; (80110a8 <Calibr+0x278>)
8010f38: 2100 movs r1, #0
8010f3a: 5499 strb r1, [r3, r2]
if(on)
8010f3c: 79bb ldrb r3, [r7, #6]
8010f3e: 2b00 cmp r3, #0
8010f40: d00b beq.n 8010f5a <Calibr+0x12a>
iobuf[len++] = menu - 1;
8010f42: 8afb ldrh r3, [r7, #22]
8010f44: 1c5a adds r2, r3, #1
8010f46: 82fa strh r2, [r7, #22]
8010f48: 461a mov r2, r3
8010f4a: 4b58 ldr r3, [pc, #352] ; (80110ac <Calibr+0x27c>)
8010f4c: 781b ldrb r3, [r3, #0]
8010f4e: b2db uxtb r3, r3
8010f50: 3b01 subs r3, #1
8010f52: b2d9 uxtb r1, r3
8010f54: 4b54 ldr r3, [pc, #336] ; (80110a8 <Calibr+0x278>)
8010f56: 5499 strb r1, [r3, r2]
8010f58: e006 b.n 8010f68 <Calibr+0x138>
else iobuf[len++] = 0;
8010f5a: 8afb ldrh r3, [r7, #22]
8010f5c: 1c5a adds r2, r3, #1
8010f5e: 82fa strh r2, [r7, #22]
8010f60: 461a mov r2, r3
8010f62: 4b51 ldr r3, [pc, #324] ; (80110a8 <Calibr+0x278>)
8010f64: 2100 movs r1, #0
8010f66: 5499 strb r1, [r3, r2]
crc = Crc16(len);
8010f68: 8afb ldrh r3, [r7, #22]
8010f6a: 4618 mov r0, r3
8010f6c: f7fe ff68 bl 800fe40 <Crc16>
8010f70: 4603 mov r3, r0
8010f72: 827b strh r3, [r7, #18]
iobuf[len++] = LO(crc);
8010f74: 8afb ldrh r3, [r7, #22]
8010f76: 1c5a adds r2, r3, #1
8010f78: 82fa strh r2, [r7, #22]
8010f7a: 461a mov r2, r3
8010f7c: 8a7b ldrh r3, [r7, #18]
8010f7e: b2d9 uxtb r1, r3
8010f80: 4b49 ldr r3, [pc, #292] ; (80110a8 <Calibr+0x278>)
8010f82: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
8010f84: 8afb ldrh r3, [r7, #22]
8010f86: 1c5a adds r2, r3, #1
8010f88: 82fa strh r2, [r7, #22]
8010f8a: 461a mov r2, r3
8010f8c: 8a7b ldrh r3, [r7, #18]
8010f8e: 0a1b lsrs r3, r3, #8
8010f90: b29b uxth r3, r3
8010f92: b2d9 uxtb r1, r3
8010f94: 4b44 ldr r3, [pc, #272] ; (80110a8 <Calibr+0x278>)
8010f96: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
8010f98: f000 fb20 bl 80115dc <HAL_GetTick>
8010f9c: 4603 mov r3, r0
8010f9e: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
8010fa0: 2201 movs r2, #1
8010fa2: f44f 7100 mov.w r1, #512 ; 0x200
8010fa6: 4842 ldr r0, [pc, #264] ; (80110b0 <Calibr+0x280>)
8010fa8: f001 fe50 bl 8012c4c <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
8010fac: 8afb ldrh r3, [r7, #22]
8010fae: 461a mov r2, r3
8010fb0: 493d ldr r1, [pc, #244] ; (80110a8 <Calibr+0x278>)
8010fb2: 4838 ldr r0, [pc, #224] ; (8011094 <Calibr+0x264>)
8010fb4: f003 ff78 bl 8014ea8 <HAL_UART_Transmit_IT>
8010fb8: 4603 mov r3, r0
8010fba: 2b00 cmp r3, #0
8010fbc: d163 bne.n 8011086 <Calibr+0x256>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 200));
8010fbe: bf00 nop
8010fc0: 4b37 ldr r3, [pc, #220] ; (80110a0 <Calibr+0x270>)
8010fc2: 781b ldrb r3, [r3, #0]
8010fc4: b2db uxtb r3, r3
8010fc6: f083 0301 eor.w r3, r3, #1
8010fca: b2db uxtb r3, r3
8010fcc: 2b00 cmp r3, #0
8010fce: d006 beq.n 8010fde <Calibr+0x1ae>
8010fd0: f000 fb04 bl 80115dc <HAL_GetTick>
8010fd4: 4602 mov r2, r0
8010fd6: 68fb ldr r3, [r7, #12]
8010fd8: 1ad3 subs r3, r2, r3
8010fda: 2bc7 cmp r3, #199 ; 0xc7
8010fdc: d9f0 bls.n 8010fc0 <Calibr+0x190>
if(!TX_OK)
8010fde: 4b30 ldr r3, [pc, #192] ; (80110a0 <Calibr+0x270>)
8010fe0: 781b ldrb r3, [r3, #0]
8010fe2: b2db uxtb r3, r3
8010fe4: f083 0301 eor.w r3, r3, #1
8010fe8: b2db uxtb r3, r3
8010fea: 2b00 cmp r3, #0
8010fec: d00b beq.n 8011006 <Calibr+0x1d6>
{
HAL_UART_Abort_IT(&huart7);
8010fee: 4829 ldr r0, [pc, #164] ; (8011094 <Calibr+0x264>)
8010ff0: f003 ffc8 bl 8014f84 <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8010ff4: 2200 movs r2, #0
8010ff6: f44f 7100 mov.w r1, #512 ; 0x200
8010ffa: 482d ldr r0, [pc, #180] ; (80110b0 <Calibr+0x280>)
8010ffc: f001 fe26 bl 8012c4c <HAL_GPIO_WritePin>
return (-1);
8011000: f04f 33ff mov.w r3, #4294967295
8011004: e041 b.n 801108a <Calibr+0x25a>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8011006: 2200 movs r2, #0
8011008: f44f 7100 mov.w r1, #512 ; 0x200
801100c: 4828 ldr r0, [pc, #160] ; (80110b0 <Calibr+0x280>)
801100e: f001 fe1d bl 8012c4c <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
8011012: 2364 movs r3, #100 ; 0x64
8011014: 2201 movs r2, #1
8011016: 4923 ldr r1, [pc, #140] ; (80110a4 <Calibr+0x274>)
8011018: 481e ldr r0, [pc, #120] ; (8011094 <Calibr+0x264>)
801101a: f003 fe75 bl 8014d08 <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK)
801101e: f44f 73fa mov.w r3, #500 ; 0x1f4
8011022: 2208 movs r2, #8
8011024: 491f ldr r1, [pc, #124] ; (80110a4 <Calibr+0x274>)
8011026: 481b ldr r0, [pc, #108] ; (8011094 <Calibr+0x264>)
8011028: f003 fe6e bl 8014d08 <HAL_UART_Receive>
801102c: 4603 mov r3, r0
801102e: 2b00 cmp r3, #0
8011030: d120 bne.n 8011074 <Calibr+0x244>
{
crc = (uint16_t) ((rx[7]) << 8 | rx[6]);
8011032: 4b1c ldr r3, [pc, #112] ; (80110a4 <Calibr+0x274>)
8011034: 79db ldrb r3, [r3, #7]
8011036: 021b lsls r3, r3, #8
8011038: b21a sxth r2, r3
801103a: 4b1a ldr r3, [pc, #104] ; (80110a4 <Calibr+0x274>)
801103c: 799b ldrb r3, [r3, #6]
801103e: b21b sxth r3, r3
8011040: 4313 orrs r3, r2
8011042: b21b sxth r3, r3
8011044: 827b strh r3, [r7, #18]
if(crc == Crc16_RX(6))
8011046: 2006 movs r0, #6
8011048: f7fe ff26 bl 800fe98 <Crc16_RX>
801104c: 4603 mov r3, r0
801104e: 461a mov r2, r3
8011050: 8a7b ldrh r3, [r7, #18]
8011052: 4293 cmp r3, r2
8011054: d10b bne.n 801106e <Calibr+0x23e>
{
if(rx[0] == (ch + 1))
8011056: 4b13 ldr r3, [pc, #76] ; (80110a4 <Calibr+0x274>)
8011058: 781b ldrb r3, [r3, #0]
801105a: 461a mov r2, r3
801105c: 79fb ldrb r3, [r7, #7]
801105e: 3301 adds r3, #1
8011060: 429a cmp r2, r3
8011062: d101 bne.n 8011068 <Calibr+0x238>
return 0;
8011064: 2300 movs r3, #0
8011066: e010 b.n 801108a <Calibr+0x25a>
else return (-1);
8011068: f04f 33ff mov.w r3, #4294967295
801106c: e00d b.n 801108a <Calibr+0x25a>
}
else
{
return (-1);
801106e: f04f 33ff mov.w r3, #4294967295
8011072: e00a b.n 801108a <Calibr+0x25a>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8011074: 2200 movs r2, #0
8011076: f44f 7100 mov.w r1, #512 ; 0x200
801107a: 480d ldr r0, [pc, #52] ; (80110b0 <Calibr+0x280>)
801107c: f001 fde6 bl 8012c4c <HAL_GPIO_WritePin>
return (-1);
8011080: f04f 33ff mov.w r3, #4294967295
8011084: e001 b.n 801108a <Calibr+0x25a>
}
}
return res;
8011086: f997 3015 ldrsb.w r3, [r7, #21]
}
801108a: 4618 mov r0, r3
801108c: 3718 adds r7, #24
801108e: 46bd mov sp, r7
8011090: bd80 pop {r7, pc}
8011092: bf00 nop
8011094: 2006c434 .word 0x2006c434
8011098: 2006ba91 .word 0x2006ba91
801109c: 2006ba93 .word 0x2006ba93
80110a0: 2006ba92 .word 0x2006ba92
80110a4: 2006c4bc .word 0x2006c4bc
80110a8: 2006c5c4 .word 0x2006c5c4
80110ac: 200209d9 .word 0x200209d9
80110b0: 40021400 .word 0x40021400
080110b4 <WriteCorr>:
int8_t WriteCorr(uint8_t ch, uint8_t fasecor, uint8_t up)
{
80110b4: b580 push {r7, lr}
80110b6: b086 sub sp, #24
80110b8: af00 add r7, sp, #0
80110ba: 4603 mov r3, r0
80110bc: 71fb strb r3, [r7, #7]
80110be: 460b mov r3, r1
80110c0: 71bb strb r3, [r7, #6]
80110c2: 4613 mov r3, r2
80110c4: 717b strb r3, [r7, #5]
int8_t res = -1;
80110c6: 23ff movs r3, #255 ; 0xff
80110c8: 75fb strb r3, [r7, #23]
uint16_t i, len = 0;
80110ca: 2300 movs r3, #0
80110cc: 82bb strh r3, [r7, #20]
uint16_t crc;
uint16_t reg;
__IO uint32_t timeout;
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_ORE))
80110ce: 4b8e ldr r3, [pc, #568] ; (8011308 <WriteCorr+0x254>)
80110d0: 681b ldr r3, [r3, #0]
80110d2: 69db ldr r3, [r3, #28]
80110d4: f003 0308 and.w r3, r3, #8
80110d8: 2b08 cmp r3, #8
80110da: d103 bne.n 80110e4 <WriteCorr+0x30>
__HAL_UART_CLEAR_OREFLAG(&huart7);
80110dc: 4b8a ldr r3, [pc, #552] ; (8011308 <WriteCorr+0x254>)
80110de: 681b ldr r3, [r3, #0]
80110e0: 2208 movs r2, #8
80110e2: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_PE))
80110e4: 4b88 ldr r3, [pc, #544] ; (8011308 <WriteCorr+0x254>)
80110e6: 681b ldr r3, [r3, #0]
80110e8: 69db ldr r3, [r3, #28]
80110ea: f003 0301 and.w r3, r3, #1
80110ee: 2b01 cmp r3, #1
80110f0: d103 bne.n 80110fa <WriteCorr+0x46>
__HAL_UART_CLEAR_PEFLAG(&huart7);
80110f2: 4b85 ldr r3, [pc, #532] ; (8011308 <WriteCorr+0x254>)
80110f4: 681b ldr r3, [r3, #0]
80110f6: 2201 movs r2, #1
80110f8: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_FE))
80110fa: 4b83 ldr r3, [pc, #524] ; (8011308 <WriteCorr+0x254>)
80110fc: 681b ldr r3, [r3, #0]
80110fe: 69db ldr r3, [r3, #28]
8011100: f003 0302 and.w r3, r3, #2
8011104: 2b02 cmp r3, #2
8011106: d103 bne.n 8011110 <WriteCorr+0x5c>
__HAL_UART_CLEAR_FEFLAG(&huart7);
8011108: 4b7f ldr r3, [pc, #508] ; (8011308 <WriteCorr+0x254>)
801110a: 681b ldr r3, [r3, #0]
801110c: 2202 movs r2, #2
801110e: 621a str r2, [r3, #32]
if(__HAL_UART_GET_FLAG(&huart7, UART_FLAG_NE))
8011110: 4b7d ldr r3, [pc, #500] ; (8011308 <WriteCorr+0x254>)
8011112: 681b ldr r3, [r3, #0]
8011114: 69db ldr r3, [r3, #28]
8011116: f003 0304 and.w r3, r3, #4
801111a: 2b04 cmp r3, #4
801111c: d103 bne.n 8011126 <WriteCorr+0x72>
__HAL_UART_CLEAR_NEFLAG(&huart7);
801111e: 4b7a ldr r3, [pc, #488] ; (8011308 <WriteCorr+0x254>)
8011120: 681b ldr r3, [r3, #0]
8011122: 2204 movs r2, #4
8011124: 621a str r2, [r3, #32]
HAL_Delay(20);
8011126: 2014 movs r0, #20
8011128: f000 fa64 bl 80115f4 <HAL_Delay>
TX_OK = RX_OK = UART_ERROR = false;
801112c: 2200 movs r2, #0
801112e: 4b77 ldr r3, [pc, #476] ; (801130c <WriteCorr+0x258>)
8011130: 4611 mov r1, r2
8011132: 7019 strb r1, [r3, #0]
8011134: 4b76 ldr r3, [pc, #472] ; (8011310 <WriteCorr+0x25c>)
8011136: 4611 mov r1, r2
8011138: 7019 strb r1, [r3, #0]
801113a: 4b76 ldr r3, [pc, #472] ; (8011314 <WriteCorr+0x260>)
801113c: 701a strb r2, [r3, #0]
len = 0;
801113e: 2300 movs r3, #0
8011140: 82bb strh r3, [r7, #20]
memset((void *) &rx, 0, sizeof(rx));
8011142: f44f 7280 mov.w r2, #256 ; 0x100
8011146: 2100 movs r1, #0
8011148: 4873 ldr r0, [pc, #460] ; (8011318 <WriteCorr+0x264>)
801114a: f005 f9c6 bl 80164da <memset>
/*if(fasecor == CALIBR_00) {
return (-1);
}*/
iobuf[len++] = ch + 1;
801114e: 8abb ldrh r3, [r7, #20]
8011150: 1c5a adds r2, r3, #1
8011152: 82ba strh r2, [r7, #20]
8011154: 461a mov r2, r3
8011156: 79fb ldrb r3, [r7, #7]
8011158: 3301 adds r3, #1
801115a: b2d9 uxtb r1, r3
801115c: 4b6f ldr r3, [pc, #444] ; (801131c <WriteCorr+0x268>)
801115e: 5499 strb r1, [r3, r2]
iobuf[len++] = 0x10;
8011160: 8abb ldrh r3, [r7, #20]
8011162: 1c5a adds r2, r3, #1
8011164: 82ba strh r2, [r7, #20]
8011166: 461a mov r2, r3
8011168: 4b6c ldr r3, [pc, #432] ; (801131c <WriteCorr+0x268>)
801116a: 2110 movs r1, #16
801116c: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(fasecor + 3001);
801116e: 8abb ldrh r3, [r7, #20]
8011170: 1c5a adds r2, r3, #1
8011172: 82ba strh r2, [r7, #20]
8011174: 461a mov r2, r3
8011176: 79bb ldrb r3, [r7, #6]
8011178: f603 33b9 addw r3, r3, #3001 ; 0xbb9
801117c: 121b asrs r3, r3, #8
801117e: b2d9 uxtb r1, r3
8011180: 4b66 ldr r3, [pc, #408] ; (801131c <WriteCorr+0x268>)
8011182: 5499 strb r1, [r3, r2]
iobuf[len++] = LO(fasecor + 3001);
8011184: 8abb ldrh r3, [r7, #20]
8011186: 1c5a adds r2, r3, #1
8011188: 82ba strh r2, [r7, #20]
801118a: 461a mov r2, r3
801118c: 79bb ldrb r3, [r7, #6]
801118e: 3b47 subs r3, #71 ; 0x47
8011190: b2d9 uxtb r1, r3
8011192: 4b62 ldr r3, [pc, #392] ; (801131c <WriteCorr+0x268>)
8011194: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
8011196: 8abb ldrh r3, [r7, #20]
8011198: 1c5a adds r2, r3, #1
801119a: 82ba strh r2, [r7, #20]
801119c: 461a mov r2, r3
801119e: 4b5f ldr r3, [pc, #380] ; (801131c <WriteCorr+0x268>)
80111a0: 2100 movs r1, #0
80111a2: 5499 strb r1, [r3, r2]
iobuf[len++] = 1;
80111a4: 8abb ldrh r3, [r7, #20]
80111a6: 1c5a adds r2, r3, #1
80111a8: 82ba strh r2, [r7, #20]
80111aa: 461a mov r2, r3
80111ac: 4b5b ldr r3, [pc, #364] ; (801131c <WriteCorr+0x268>)
80111ae: 2101 movs r1, #1
80111b0: 5499 strb r1, [r3, r2]
iobuf[len++] = 2;
80111b2: 8abb ldrh r3, [r7, #20]
80111b4: 1c5a adds r2, r3, #1
80111b6: 82ba strh r2, [r7, #20]
80111b8: 461a mov r2, r3
80111ba: 4b58 ldr r3, [pc, #352] ; (801131c <WriteCorr+0x268>)
80111bc: 2102 movs r1, #2
80111be: 5499 strb r1, [r3, r2]
iobuf[len++] = 0;
80111c0: 8abb ldrh r3, [r7, #20]
80111c2: 1c5a adds r2, r3, #1
80111c4: 82ba strh r2, [r7, #20]
80111c6: 461a mov r2, r3
80111c8: 4b54 ldr r3, [pc, #336] ; (801131c <WriteCorr+0x268>)
80111ca: 2100 movs r1, #0
80111cc: 5499 strb r1, [r3, r2]
iobuf[len++] = up;
80111ce: 8abb ldrh r3, [r7, #20]
80111d0: 1c5a adds r2, r3, #1
80111d2: 82ba strh r2, [r7, #20]
80111d4: 4619 mov r1, r3
80111d6: 4a51 ldr r2, [pc, #324] ; (801131c <WriteCorr+0x268>)
80111d8: 797b ldrb r3, [r7, #5]
80111da: 5453 strb r3, [r2, r1]
crc = Crc16(len);
80111dc: 8abb ldrh r3, [r7, #20]
80111de: 4618 mov r0, r3
80111e0: f7fe fe2e bl 800fe40 <Crc16>
80111e4: 4603 mov r3, r0
80111e6: 827b strh r3, [r7, #18]
iobuf[len++] = LO(crc);
80111e8: 8abb ldrh r3, [r7, #20]
80111ea: 1c5a adds r2, r3, #1
80111ec: 82ba strh r2, [r7, #20]
80111ee: 461a mov r2, r3
80111f0: 8a7b ldrh r3, [r7, #18]
80111f2: b2d9 uxtb r1, r3
80111f4: 4b49 ldr r3, [pc, #292] ; (801131c <WriteCorr+0x268>)
80111f6: 5499 strb r1, [r3, r2]
iobuf[len++] = HI(crc);
80111f8: 8abb ldrh r3, [r7, #20]
80111fa: 1c5a adds r2, r3, #1
80111fc: 82ba strh r2, [r7, #20]
80111fe: 461a mov r2, r3
8011200: 8a7b ldrh r3, [r7, #18]
8011202: 0a1b lsrs r3, r3, #8
8011204: b29b uxth r3, r3
8011206: b2d9 uxtb r1, r3
8011208: 4b44 ldr r3, [pc, #272] ; (801131c <WriteCorr+0x268>)
801120a: 5499 strb r1, [r3, r2]
timeout = HAL_GetTick();
801120c: f000 f9e6 bl 80115dc <HAL_GetTick>
8011210: 4603 mov r3, r0
8011212: 60fb str r3, [r7, #12]
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_SET);
8011214: 2201 movs r2, #1
8011216: f44f 7100 mov.w r1, #512 ; 0x200
801121a: 4841 ldr r0, [pc, #260] ; (8011320 <WriteCorr+0x26c>)
801121c: f001 fd16 bl 8012c4c <HAL_GPIO_WritePin>
if(HAL_UART_Transmit_IT(&huart7, iobuf, len) == HAL_OK)
8011220: 8abb ldrh r3, [r7, #20]
8011222: 461a mov r2, r3
8011224: 493d ldr r1, [pc, #244] ; (801131c <WriteCorr+0x268>)
8011226: 4838 ldr r0, [pc, #224] ; (8011308 <WriteCorr+0x254>)
8011228: f003 fe3e bl 8014ea8 <HAL_UART_Transmit_IT>
801122c: 4603 mov r3, r0
801122e: 2b00 cmp r3, #0
8011230: d163 bne.n 80112fa <WriteCorr+0x246>
{
while((!TX_OK) && (HAL_GetTick() - timeout < 200));
8011232: bf00 nop
8011234: 4b37 ldr r3, [pc, #220] ; (8011314 <WriteCorr+0x260>)
8011236: 781b ldrb r3, [r3, #0]
8011238: b2db uxtb r3, r3
801123a: f083 0301 eor.w r3, r3, #1
801123e: b2db uxtb r3, r3
8011240: 2b00 cmp r3, #0
8011242: d006 beq.n 8011252 <WriteCorr+0x19e>
8011244: f000 f9ca bl 80115dc <HAL_GetTick>
8011248: 4602 mov r2, r0
801124a: 68fb ldr r3, [r7, #12]
801124c: 1ad3 subs r3, r2, r3
801124e: 2bc7 cmp r3, #199 ; 0xc7
8011250: d9f0 bls.n 8011234 <WriteCorr+0x180>
if(!TX_OK)
8011252: 4b30 ldr r3, [pc, #192] ; (8011314 <WriteCorr+0x260>)
8011254: 781b ldrb r3, [r3, #0]
8011256: b2db uxtb r3, r3
8011258: f083 0301 eor.w r3, r3, #1
801125c: b2db uxtb r3, r3
801125e: 2b00 cmp r3, #0
8011260: d00b beq.n 801127a <WriteCorr+0x1c6>
{
HAL_UART_Abort_IT(&huart7);
8011262: 4829 ldr r0, [pc, #164] ; (8011308 <WriteCorr+0x254>)
8011264: f003 fe8e bl 8014f84 <HAL_UART_Abort_IT>
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
8011268: 2200 movs r2, #0
801126a: f44f 7100 mov.w r1, #512 ; 0x200
801126e: 482c ldr r0, [pc, #176] ; (8011320 <WriteCorr+0x26c>)
8011270: f001 fcec bl 8012c4c <HAL_GPIO_WritePin>
return (-1);
8011274: f04f 33ff mov.w r3, #4294967295
8011278: e041 b.n 80112fe <WriteCorr+0x24a>
}
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
801127a: 2200 movs r2, #0
801127c: f44f 7100 mov.w r1, #512 ; 0x200
8011280: 4827 ldr r0, [pc, #156] ; (8011320 <WriteCorr+0x26c>)
8011282: f001 fce3 bl 8012c4c <HAL_GPIO_WritePin>
HAL_UART_Receive(&huart7, rx, 1, 100); // пустой байт
8011286: 2364 movs r3, #100 ; 0x64
8011288: 2201 movs r2, #1
801128a: 4923 ldr r1, [pc, #140] ; (8011318 <WriteCorr+0x264>)
801128c: 481e ldr r0, [pc, #120] ; (8011308 <WriteCorr+0x254>)
801128e: f003 fd3b bl 8014d08 <HAL_UART_Receive>
if(HAL_UART_Receive(&huart7, rx, 8, 500) == HAL_OK)
8011292: f44f 73fa mov.w r3, #500 ; 0x1f4
8011296: 2208 movs r2, #8
8011298: 491f ldr r1, [pc, #124] ; (8011318 <WriteCorr+0x264>)
801129a: 481b ldr r0, [pc, #108] ; (8011308 <WriteCorr+0x254>)
801129c: f003 fd34 bl 8014d08 <HAL_UART_Receive>
80112a0: 4603 mov r3, r0
80112a2: 2b00 cmp r3, #0
80112a4: d120 bne.n 80112e8 <WriteCorr+0x234>
{
crc = (uint16_t) ((rx[7]) << 8 | rx[6]);
80112a6: 4b1c ldr r3, [pc, #112] ; (8011318 <WriteCorr+0x264>)
80112a8: 79db ldrb r3, [r3, #7]
80112aa: 021b lsls r3, r3, #8
80112ac: b21a sxth r2, r3
80112ae: 4b1a ldr r3, [pc, #104] ; (8011318 <WriteCorr+0x264>)
80112b0: 799b ldrb r3, [r3, #6]
80112b2: b21b sxth r3, r3
80112b4: 4313 orrs r3, r2
80112b6: b21b sxth r3, r3
80112b8: 827b strh r3, [r7, #18]
if(crc == Crc16_RX(6))
80112ba: 2006 movs r0, #6
80112bc: f7fe fdec bl 800fe98 <Crc16_RX>
80112c0: 4603 mov r3, r0
80112c2: 461a mov r2, r3
80112c4: 8a7b ldrh r3, [r7, #18]
80112c6: 4293 cmp r3, r2
80112c8: d10b bne.n 80112e2 <WriteCorr+0x22e>
{
if(rx[0] == (ch + 1))
80112ca: 4b13 ldr r3, [pc, #76] ; (8011318 <WriteCorr+0x264>)
80112cc: 781b ldrb r3, [r3, #0]
80112ce: 461a mov r2, r3
80112d0: 79fb ldrb r3, [r7, #7]
80112d2: 3301 adds r3, #1
80112d4: 429a cmp r2, r3
80112d6: d101 bne.n 80112dc <WriteCorr+0x228>
return 0;
80112d8: 2300 movs r3, #0
80112da: e010 b.n 80112fe <WriteCorr+0x24a>
else return (-1);
80112dc: f04f 33ff mov.w r3, #4294967295
80112e0: e00d b.n 80112fe <WriteCorr+0x24a>
}
else
{
return (-1);
80112e2: f04f 33ff mov.w r3, #4294967295
80112e6: e00a b.n 80112fe <WriteCorr+0x24a>
}
}
else
{
HAL_GPIO_WritePin(RE_GPIO_Port, RE_Pin, GPIO_PIN_RESET);
80112e8: 2200 movs r2, #0
80112ea: f44f 7100 mov.w r1, #512 ; 0x200
80112ee: 480c ldr r0, [pc, #48] ; (8011320 <WriteCorr+0x26c>)
80112f0: f001 fcac bl 8012c4c <HAL_GPIO_WritePin>
return (-1);
80112f4: f04f 33ff mov.w r3, #4294967295
80112f8: e001 b.n 80112fe <WriteCorr+0x24a>
}
}
return res;
80112fa: f997 3017 ldrsb.w r3, [r7, #23]
}
80112fe: 4618 mov r0, r3
8011300: 3718 adds r7, #24
8011302: 46bd mov sp, r7
8011304: bd80 pop {r7, pc}
8011306: bf00 nop
8011308: 2006c434 .word 0x2006c434
801130c: 2006ba91 .word 0x2006ba91
8011310: 2006ba93 .word 0x2006ba93
8011314: 2006ba92 .word 0x2006ba92
8011318: 2006c4bc .word 0x2006c4bc
801131c: 2006c5c4 .word 0x2006c5c4
8011320: 40021400 .word 0x40021400
08011324 <CalibrOFF>:
}
}
void CalibrOFF(void)
{
8011324: b580 push {r7, lr}
8011326: b084 sub sp, #16
8011328: af00 add r7, sp, #0
uint8_t i, ch;
uint32_t MASK_CHANNELS = 0;
801132a: 2300 movs r3, #0
801132c: 60bb str r3, [r7, #8]
uint32_t CNT_CHANNELS = 0;
801132e: 2300 movs r3, #0
8011330: 607b str r3, [r7, #4]
for(ch = 0; ch < 4; ch++)
8011332: 2300 movs r3, #0
8011334: 73bb strb r3, [r7, #14]
8011336: e01f b.n 8011378 <CalibrOFF+0x54>
{
for(i = 0; i < 3; i++)
8011338: 2300 movs r3, #0
801133a: 73fb strb r3, [r7, #15]
801133c: e016 b.n 801136c <CalibrOFF+0x48>
{
if(Calibr(ch, 0) == 0)
801133e: 7bbb ldrb r3, [r7, #14]
8011340: 2100 movs r1, #0
8011342: 4618 mov r0, r3
8011344: f7ff fd74 bl 8010e30 <Calibr>
8011348: 4603 mov r3, r0
801134a: 2b00 cmp r3, #0
801134c: d10b bne.n 8011366 <CalibrOFF+0x42>
{
MASK_CHANNELS |= (1 << ch);
801134e: 7bbb ldrb r3, [r7, #14]
8011350: 2201 movs r2, #1
8011352: fa02 f303 lsl.w r3, r2, r3
8011356: 461a mov r2, r3
8011358: 68bb ldr r3, [r7, #8]
801135a: 4313 orrs r3, r2
801135c: 60bb str r3, [r7, #8]
CNT_CHANNELS++;
801135e: 687b ldr r3, [r7, #4]
8011360: 3301 adds r3, #1
8011362: 607b str r3, [r7, #4]
break;
8011364: e005 b.n 8011372 <CalibrOFF+0x4e>
for(i = 0; i < 3; i++)
8011366: 7bfb ldrb r3, [r7, #15]
8011368: 3301 adds r3, #1
801136a: 73fb strb r3, [r7, #15]
801136c: 7bfb ldrb r3, [r7, #15]
801136e: 2b02 cmp r3, #2
8011370: d9e5 bls.n 801133e <CalibrOFF+0x1a>
for(ch = 0; ch < 4; ch++)
8011372: 7bbb ldrb r3, [r7, #14]
8011374: 3301 adds r3, #1
8011376: 73bb strb r3, [r7, #14]
8011378: 7bbb ldrb r3, [r7, #14]
801137a: 2b03 cmp r3, #3
801137c: d9dc bls.n 8011338 <CalibrOFF+0x14>
}
}
}
}
801137e: bf00 nop
8011380: 3710 adds r7, #16
8011382: 46bd mov sp, r7
8011384: bd80 pop {r7, pc}
...
08011388 <AskChannels>:
void AskChannels(void)
{
8011388: b580 push {r7, lr}
801138a: b082 sub sp, #8
801138c: af00 add r7, sp, #0
uint8_t i, ch;
ASK_COMPLETE = false;
801138e: 4b46 ldr r3, [pc, #280] ; (80114a8 <AskChannels+0x120>)
8011390: 2200 movs r2, #0
8011392: 701a strb r2, [r3, #0]
for(i = 0; i < 100; i++)
8011394: 2300 movs r3, #0
8011396: 71fb strb r3, [r7, #7]
8011398: e007 b.n 80113aa <AskChannels+0x22>
{
RedrawScreen();
801139a: f7f4 fdbb bl 8005f14 <RedrawScreen>
HAL_Delay(10);
801139e: 200a movs r0, #10
80113a0: f000 f928 bl 80115f4 <HAL_Delay>
for(i = 0; i < 100; i++)
80113a4: 79fb ldrb r3, [r7, #7]
80113a6: 3301 adds r3, #1
80113a8: 71fb strb r3, [r7, #7]
80113aa: 79fb ldrb r3, [r7, #7]
80113ac: 2b63 cmp r3, #99 ; 0x63
80113ae: d9f4 bls.n 801139a <AskChannels+0x12>
}
ip_assigned = false;
80113b0: 4b3e ldr r3, [pc, #248] ; (80114ac <AskChannels+0x124>)
80113b2: 2200 movs r2, #0
80113b4: 701a strb r2, [r3, #0]
for(i = 0; i < 2; i++)
80113b6: 2300 movs r3, #0
80113b8: 71fb strb r3, [r7, #7]
80113ba: e00e b.n 80113da <AskChannels+0x52>
{
if(ReadIP() == 0) {
80113bc: f7fe fde4 bl 800ff88 <ReadIP>
80113c0: 4603 mov r3, r0
80113c2: 2b00 cmp r3, #0
80113c4: d103 bne.n 80113ce <AskChannels+0x46>
ip_assigned = true;
80113c6: 4b39 ldr r3, [pc, #228] ; (80114ac <AskChannels+0x124>)
80113c8: 2201 movs r2, #1
80113ca: 701a strb r2, [r3, #0]
break;
80113cc: e008 b.n 80113e0 <AskChannels+0x58>
}
HAL_Delay(50);
80113ce: 2032 movs r0, #50 ; 0x32
80113d0: f000 f910 bl 80115f4 <HAL_Delay>
for(i = 0; i < 2; i++)
80113d4: 79fb ldrb r3, [r7, #7]
80113d6: 3301 adds r3, #1
80113d8: 71fb strb r3, [r7, #7]
80113da: 79fb ldrb r3, [r7, #7]
80113dc: 2b01 cmp r3, #1
80113de: d9ed bls.n 80113bc <AskChannels+0x34>
}
memset((void *) &pardata.amplif[0], 0, sizeof(AmplifData_TypeDef) * 16u);
80113e0: f44f 7200 mov.w r2, #512 ; 0x200
80113e4: 2100 movs r1, #0
80113e6: 4832 ldr r0, [pc, #200] ; (80114b0 <AskChannels+0x128>)
80113e8: f005 f877 bl 80164da <memset>
MASK_CHANNELS = CNT_CHANNELS = ACTIVE_CHANNEL = 0;
80113ec: 2300 movs r3, #0
80113ee: 4a31 ldr r2, [pc, #196] ; (80114b4 <AskChannels+0x12c>)
80113f0: 6013 str r3, [r2, #0]
80113f2: 4a31 ldr r2, [pc, #196] ; (80114b8 <AskChannels+0x130>)
80113f4: 6013 str r3, [r2, #0]
80113f6: 4a31 ldr r2, [pc, #196] ; (80114bc <AskChannels+0x134>)
80113f8: 6013 str r3, [r2, #0]
for(ch = 0; ch < 8; ch++)
80113fa: 2300 movs r3, #0
80113fc: 71bb strb r3, [r7, #6]
80113fe: e02a b.n 8011456 <AskChannels+0xce>
{
for(i = 0; i < 2; i++)
8011400: 2300 movs r3, #0
8011402: 71fb strb r3, [r7, #7]
8011404: e021 b.n 801144a <AskChannels+0xc2>
{
if(ReadChannel(ch) == 0)
8011406: 79bb ldrb r3, [r7, #6]
8011408: 4618 mov r0, r3
801140a: f7fe fedb bl 80101c4 <ReadChannel>
801140e: 4603 mov r3, r0
8011410: 2b00 cmp r3, #0
8011412: d115 bne.n 8011440 <AskChannels+0xb8>
{
RedrawScreen();
8011414: f7f4 fd7e bl 8005f14 <RedrawScreen>
MASK_CHANNELS |= (1 << ch);
8011418: 79bb ldrb r3, [r7, #6]
801141a: 2201 movs r2, #1
801141c: fa02 f303 lsl.w r3, r2, r3
8011420: 461a mov r2, r3
8011422: 4b26 ldr r3, [pc, #152] ; (80114bc <AskChannels+0x134>)
8011424: 681b ldr r3, [r3, #0]
8011426: 4313 orrs r3, r2
8011428: 4a24 ldr r2, [pc, #144] ; (80114bc <AskChannels+0x134>)
801142a: 6013 str r3, [r2, #0]
CNT_CHANNELS++;
801142c: 4b22 ldr r3, [pc, #136] ; (80114b8 <AskChannels+0x130>)
801142e: 681b ldr r3, [r3, #0]
8011430: 3301 adds r3, #1
8011432: 4a21 ldr r2, [pc, #132] ; (80114b8 <AskChannels+0x130>)
8011434: 6013 str r3, [r2, #0]
ReadChannelSens(ch);
8011436: 79bb ldrb r3, [r7, #6]
8011438: 4618 mov r0, r3
801143a: f7ff fa83 bl 8010944 <ReadChannelSens>
break;
801143e: e007 b.n 8011450 <AskChannels+0xc8>
}
else
RedrawScreen();
8011440: f7f4 fd68 bl 8005f14 <RedrawScreen>
for(i = 0; i < 2; i++)
8011444: 79fb ldrb r3, [r7, #7]
8011446: 3301 adds r3, #1
8011448: 71fb strb r3, [r7, #7]
801144a: 79fb ldrb r3, [r7, #7]
801144c: 2b01 cmp r3, #1
801144e: d9da bls.n 8011406 <AskChannels+0x7e>
for(ch = 0; ch < 8; ch++)
8011450: 79bb ldrb r3, [r7, #6]
8011452: 3301 adds r3, #1
8011454: 71bb strb r3, [r7, #6]
8011456: 79bb ldrb r3, [r7, #6]
8011458: 2b07 cmp r3, #7
801145a: d9d1 bls.n 8011400 <AskChannels+0x78>
}
}
if(CNT_CHANNELS != 0)
801145c: 4b16 ldr r3, [pc, #88] ; (80114b8 <AskChannels+0x130>)
801145e: 681b ldr r3, [r3, #0]
8011460: 2b00 cmp r3, #0
8011462: d019 beq.n 8011498 <AskChannels+0x110>
{
for(i = 0; i < 8; i++)
8011464: 2300 movs r3, #0
8011466: 71fb strb r3, [r7, #7]
8011468: e010 b.n 801148c <AskChannels+0x104>
{
if(MASK_CHANNELS & (1 << i))
801146a: 79fb ldrb r3, [r7, #7]
801146c: 2201 movs r2, #1
801146e: fa02 f303 lsl.w r3, r2, r3
8011472: 461a mov r2, r3
8011474: 4b11 ldr r3, [pc, #68] ; (80114bc <AskChannels+0x134>)
8011476: 681b ldr r3, [r3, #0]
8011478: 4013 ands r3, r2
801147a: 2b00 cmp r3, #0
801147c: d003 beq.n 8011486 <AskChannels+0xfe>
{
ACTIVE_CHANNEL = i;
801147e: 79fb ldrb r3, [r7, #7]
8011480: 4a0c ldr r2, [pc, #48] ; (80114b4 <AskChannels+0x12c>)
8011482: 6013 str r3, [r2, #0]
break;
8011484: e005 b.n 8011492 <AskChannels+0x10a>
for(i = 0; i < 8; i++)
8011486: 79fb ldrb r3, [r7, #7]
8011488: 3301 adds r3, #1
801148a: 71fb strb r3, [r7, #7]
801148c: 79fb ldrb r3, [r7, #7]
801148e: 2b07 cmp r3, #7
8011490: d9eb bls.n 801146a <AskChannels+0xe2>
}
}
ASK_COMPLETE = true;
8011492: 4b05 ldr r3, [pc, #20] ; (80114a8 <AskChannels+0x120>)
8011494: 2201 movs r2, #1
8011496: 701a strb r2, [r3, #0]
{
//Off();
}
HAL_Delay(2000);
8011498: f44f 60fa mov.w r0, #2000 ; 0x7d0
801149c: f000 f8aa bl 80115f4 <HAL_Delay>
//MASK_CHANNELS = 0xf; //TODO Удалить
//CNT_CHANNELS = 4; //TODO Удалить
}
80114a0: bf00 nop
80114a2: 3708 adds r7, #8
80114a4: 46bd mov sp, r7
80114a6: bd80 pop {r7, pc}
80114a8: 2006ba90 .word 0x2006ba90
80114ac: 2006ba94 .word 0x2006ba94
80114b0: 2006bca8 .word 0x2006bca8
80114b4: 2006ba68 .word 0x2006ba68
80114b8: 2006ba6c .word 0x2006ba6c
80114bc: 2002002c .word 0x2002002c
080114c0 <AskPeriodic>:
void AskPeriodic(void)
{
80114c0: b580 push {r7, lr}
80114c2: b082 sub sp, #8
80114c4: af00 add r7, sp, #0
uint8_t ch;
for(ch = 0; ch < 8; ch++)
80114c6: 2300 movs r3, #0
80114c8: 71fb strb r3, [r7, #7]
80114ca: e01c b.n 8011506 <AskPeriodic+0x46>
{
if(MASK_CHANNELS & (1 << ch))
80114cc: 79fb ldrb r3, [r7, #7]
80114ce: 2201 movs r2, #1
80114d0: fa02 f303 lsl.w r3, r2, r3
80114d4: 461a mov r2, r3
80114d6: 4b0f ldr r3, [pc, #60] ; (8011514 <AskPeriodic+0x54>)
80114d8: 681b ldr r3, [r3, #0]
80114da: 4013 ands r3, r2
80114dc: 2b00 cmp r3, #0
80114de: d00f beq.n 8011500 <AskPeriodic+0x40>
{
if(!focused)
80114e0: 4b0d ldr r3, [pc, #52] ; (8011518 <AskPeriodic+0x58>)
80114e2: 781b ldrb r3, [r3, #0]
80114e4: b2db uxtb r3, r3
80114e6: f083 0301 eor.w r3, r3, #1
80114ea: b2db uxtb r3, r3
80114ec: 2b00 cmp r3, #0
80114ee: d007 beq.n 8011500 <AskPeriodic+0x40>
{
ReadChannel(ch);
80114f0: 79fb ldrb r3, [r7, #7]
80114f2: 4618 mov r0, r3
80114f4: f7fe fe66 bl 80101c4 <ReadChannel>
ReadChannelSens(ch);
80114f8: 79fb ldrb r3, [r7, #7]
80114fa: 4618 mov r0, r3
80114fc: f7ff fa22 bl 8010944 <ReadChannelSens>
for(ch = 0; ch < 8; ch++)
8011500: 79fb ldrb r3, [r7, #7]
8011502: 3301 adds r3, #1
8011504: 71fb strb r3, [r7, #7]
8011506: 79fb ldrb r3, [r7, #7]
8011508: 2b07 cmp r3, #7
801150a: d9df bls.n 80114cc <AskPeriodic+0xc>
}
}
}
}
801150c: bf00 nop
801150e: 3708 adds r7, #8
8011510: 46bd mov sp, r7
8011512: bd80 pop {r7, pc}
8011514: 2002002c .word 0x2002002c
8011518: 200209e4 .word 0x200209e4
0801151c <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)
{
801151c: b580 push {r7, lr}
801151e: af00 add r7, sp, #0
/* Configure Instruction cache through ART accelerator */
#if (ART_ACCLERATOR_ENABLE != 0)
__HAL_FLASH_ART_ENABLE();
8011520: 4a0b ldr r2, [pc, #44] ; (8011550 <HAL_Init+0x34>)
8011522: 4b0b ldr r3, [pc, #44] ; (8011550 <HAL_Init+0x34>)
8011524: 681b ldr r3, [r3, #0]
8011526: f443 7300 orr.w r3, r3, #512 ; 0x200
801152a: 6013 str r3, [r2, #0]
#endif /* ART_ACCLERATOR_ENABLE */
/* Configure Flash prefetch */
#if (PREFETCH_ENABLE != 0U)
__HAL_FLASH_PREFETCH_BUFFER_ENABLE();
801152c: 4a08 ldr r2, [pc, #32] ; (8011550 <HAL_Init+0x34>)
801152e: 4b08 ldr r3, [pc, #32] ; (8011550 <HAL_Init+0x34>)
8011530: 681b ldr r3, [r3, #0]
8011532: f443 7380 orr.w r3, r3, #256 ; 0x100
8011536: 6013 str r3, [r2, #0]
#endif /* PREFETCH_ENABLE */
/* Set Interrupt Group Priority */
HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
8011538: 2003 movs r0, #3
801153a: f000 f96d bl 8011818 <HAL_NVIC_SetPriorityGrouping>
/* Use systick as time base source and configure 1ms tick (default clock after Reset is HSI) */
HAL_InitTick(TICK_INT_PRIORITY);
801153e: 2000 movs r0, #0
8011540: f000 f808 bl 8011554 <HAL_InitTick>
/* Init the low level hardware */
HAL_MspInit();
8011544: f7fe f988 bl 800f858 <HAL_MspInit>
/* Return function status */
return HAL_OK;
8011548: 2300 movs r3, #0
}
801154a: 4618 mov r0, r3
801154c: bd80 pop {r7, pc}
801154e: bf00 nop
8011550: 40023c00 .word 0x40023c00
08011554 <HAL_InitTick>:
* implementation in user file.
* @param TickPriority Tick interrupt priority.
* @retval HAL status
*/
__weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
{
8011554: b580 push {r7, lr}
8011556: b082 sub sp, #8
8011558: af00 add r7, sp, #0
801155a: 6078 str r0, [r7, #4]
/* Configure the SysTick to have interrupt in 1ms time basis*/
if (HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)) > 0U)
801155c: 4b12 ldr r3, [pc, #72] ; (80115a8 <HAL_InitTick+0x54>)
801155e: 681a ldr r2, [r3, #0]
8011560: 4b12 ldr r3, [pc, #72] ; (80115ac <HAL_InitTick+0x58>)
8011562: 781b ldrb r3, [r3, #0]
8011564: 4619 mov r1, r3
8011566: f44f 737a mov.w r3, #1000 ; 0x3e8
801156a: fbb3 f3f1 udiv r3, r3, r1
801156e: fbb2 f3f3 udiv r3, r2, r3
8011572: 4618 mov r0, r3
8011574: f000 f993 bl 801189e <HAL_SYSTICK_Config>
8011578: 4603 mov r3, r0
801157a: 2b00 cmp r3, #0
801157c: d001 beq.n 8011582 <HAL_InitTick+0x2e>
{
return HAL_ERROR;
801157e: 2301 movs r3, #1
8011580: e00e b.n 80115a0 <HAL_InitTick+0x4c>
}
/* Configure the SysTick IRQ priority */
if (TickPriority < (1UL << __NVIC_PRIO_BITS))
8011582: 687b ldr r3, [r7, #4]
8011584: 2b0f cmp r3, #15
8011586: d80a bhi.n 801159e <HAL_InitTick+0x4a>
{
HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority, 0U);
8011588: 2200 movs r2, #0
801158a: 6879 ldr r1, [r7, #4]
801158c: f04f 30ff mov.w r0, #4294967295
8011590: f000 f94d bl 801182e <HAL_NVIC_SetPriority>
uwTickPrio = TickPriority;
8011594: 4a06 ldr r2, [pc, #24] ; (80115b0 <HAL_InitTick+0x5c>)
8011596: 687b ldr r3, [r7, #4]
8011598: 6013 str r3, [r2, #0]
{
return HAL_ERROR;
}
/* Return function status */
return HAL_OK;
801159a: 2300 movs r3, #0
801159c: e000 b.n 80115a0 <HAL_InitTick+0x4c>
return HAL_ERROR;
801159e: 2301 movs r3, #1
}
80115a0: 4618 mov r0, r3
80115a2: 3708 adds r7, #8
80115a4: 46bd mov sp, r7
80115a6: bd80 pop {r7, pc}
80115a8: 20020994 .word 0x20020994
80115ac: 200209a4 .word 0x200209a4
80115b0: 200209a0 .word 0x200209a0
080115b4 <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)
{
80115b4: b480 push {r7}
80115b6: af00 add r7, sp, #0
uwTick += uwTickFreq;
80115b8: 4b06 ldr r3, [pc, #24] ; (80115d4 <HAL_IncTick+0x20>)
80115ba: 781b ldrb r3, [r3, #0]
80115bc: 461a mov r2, r3
80115be: 4b06 ldr r3, [pc, #24] ; (80115d8 <HAL_IncTick+0x24>)
80115c0: 681b ldr r3, [r3, #0]
80115c2: 4413 add r3, r2
80115c4: 4a04 ldr r2, [pc, #16] ; (80115d8 <HAL_IncTick+0x24>)
80115c6: 6013 str r3, [r2, #0]
}
80115c8: bf00 nop
80115ca: 46bd mov sp, r7
80115cc: f85d 7b04 ldr.w r7, [sp], #4
80115d0: 4770 bx lr
80115d2: bf00 nop
80115d4: 200209a4 .word 0x200209a4
80115d8: 2006c6c4 .word 0x2006c6c4
080115dc <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)
{
80115dc: b480 push {r7}
80115de: af00 add r7, sp, #0
return uwTick;
80115e0: 4b03 ldr r3, [pc, #12] ; (80115f0 <HAL_GetTick+0x14>)
80115e2: 681b ldr r3, [r3, #0]
}
80115e4: 4618 mov r0, r3
80115e6: 46bd mov sp, r7
80115e8: f85d 7b04 ldr.w r7, [sp], #4
80115ec: 4770 bx lr
80115ee: bf00 nop
80115f0: 2006c6c4 .word 0x2006c6c4
080115f4 <HAL_Delay>:
* implementations in user file.
* @param Delay specifies the delay time length, in milliseconds.
* @retval None
*/
__weak void HAL_Delay(uint32_t Delay)
{
80115f4: b580 push {r7, lr}
80115f6: b084 sub sp, #16
80115f8: af00 add r7, sp, #0
80115fa: 6078 str r0, [r7, #4]
uint32_t tickstart = HAL_GetTick();
80115fc: f7ff ffee bl 80115dc <HAL_GetTick>
8011600: 60b8 str r0, [r7, #8]
uint32_t wait = Delay;
8011602: 687b ldr r3, [r7, #4]
8011604: 60fb str r3, [r7, #12]
/* Add a freq to guarantee minimum wait */
if (wait < HAL_MAX_DELAY)
8011606: 68fb ldr r3, [r7, #12]
8011608: f1b3 3fff cmp.w r3, #4294967295
801160c: d005 beq.n 801161a <HAL_Delay+0x26>
{
wait += (uint32_t)(uwTickFreq);
801160e: 4b09 ldr r3, [pc, #36] ; (8011634 <HAL_Delay+0x40>)
8011610: 781b ldrb r3, [r3, #0]
8011612: 461a mov r2, r3
8011614: 68fb ldr r3, [r7, #12]
8011616: 4413 add r3, r2
8011618: 60fb str r3, [r7, #12]
}
while ((HAL_GetTick() - tickstart) < wait)
801161a: bf00 nop
801161c: f7ff ffde bl 80115dc <HAL_GetTick>
8011620: 4602 mov r2, r0
8011622: 68bb ldr r3, [r7, #8]
8011624: 1ad2 subs r2, r2, r3
8011626: 68fb ldr r3, [r7, #12]
8011628: 429a cmp r2, r3
801162a: d3f7 bcc.n 801161c <HAL_Delay+0x28>
{
}
}
801162c: bf00 nop
801162e: 3710 adds r7, #16
8011630: 46bd mov sp, r7
8011632: bd80 pop {r7, pc}
8011634: 200209a4 .word 0x200209a4
08011638 <__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)
{
8011638: b480 push {r7}
801163a: b085 sub sp, #20
801163c: af00 add r7, sp, #0
801163e: 6078 str r0, [r7, #4]
uint32_t reg_value;
uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
8011640: 687b ldr r3, [r7, #4]
8011642: f003 0307 and.w r3, r3, #7
8011646: 60fb str r3, [r7, #12]
reg_value = SCB->AIRCR; /* read old register configuration */
8011648: 4b0b ldr r3, [pc, #44] ; (8011678 <__NVIC_SetPriorityGrouping+0x40>)
801164a: 68db ldr r3, [r3, #12]
801164c: 60bb str r3, [r7, #8]
reg_value &= ~((uint32_t)(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk)); /* clear bits to change */
801164e: 68ba ldr r2, [r7, #8]
8011650: f64f 03ff movw r3, #63743 ; 0xf8ff
8011654: 4013 ands r3, r2
8011656: 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 */
8011658: 68fb ldr r3, [r7, #12]
801165a: 021a lsls r2, r3, #8
((uint32_t)0x5FAUL << SCB_AIRCR_VECTKEY_Pos) |
801165c: 68bb ldr r3, [r7, #8]
801165e: 431a orrs r2, r3
reg_value = (reg_value |
8011660: 4b06 ldr r3, [pc, #24] ; (801167c <__NVIC_SetPriorityGrouping+0x44>)
8011662: 4313 orrs r3, r2
8011664: 60bb str r3, [r7, #8]
SCB->AIRCR = reg_value;
8011666: 4a04 ldr r2, [pc, #16] ; (8011678 <__NVIC_SetPriorityGrouping+0x40>)
8011668: 68bb ldr r3, [r7, #8]
801166a: 60d3 str r3, [r2, #12]
}
801166c: bf00 nop
801166e: 3714 adds r7, #20
8011670: 46bd mov sp, r7
8011672: f85d 7b04 ldr.w r7, [sp], #4
8011676: 4770 bx lr
8011678: e000ed00 .word 0xe000ed00
801167c: 05fa0000 .word 0x05fa0000
08011680 <__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)
{
8011680: b480 push {r7}
8011682: af00 add r7, sp, #0
return ((uint32_t)((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos));
8011684: 4b04 ldr r3, [pc, #16] ; (8011698 <__NVIC_GetPriorityGrouping+0x18>)
8011686: 68db ldr r3, [r3, #12]
8011688: 0a1b lsrs r3, r3, #8
801168a: f003 0307 and.w r3, r3, #7
}
801168e: 4618 mov r0, r3
8011690: 46bd mov sp, r7
8011692: f85d 7b04 ldr.w r7, [sp], #4
8011696: 4770 bx lr
8011698: e000ed00 .word 0xe000ed00
0801169c <__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)
{
801169c: b480 push {r7}
801169e: b083 sub sp, #12
80116a0: af00 add r7, sp, #0
80116a2: 4603 mov r3, r0
80116a4: 71fb strb r3, [r7, #7]
if ((int32_t)(IRQn) >= 0)
80116a6: f997 3007 ldrsb.w r3, [r7, #7]
80116aa: 2b00 cmp r3, #0
80116ac: db0b blt.n 80116c6 <__NVIC_EnableIRQ+0x2a>
{
NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
80116ae: 4909 ldr r1, [pc, #36] ; (80116d4 <__NVIC_EnableIRQ+0x38>)
80116b0: f997 3007 ldrsb.w r3, [r7, #7]
80116b4: 095b lsrs r3, r3, #5
80116b6: 79fa ldrb r2, [r7, #7]
80116b8: f002 021f and.w r2, r2, #31
80116bc: 2001 movs r0, #1
80116be: fa00 f202 lsl.w r2, r0, r2
80116c2: f841 2023 str.w r2, [r1, r3, lsl #2]
}
}
80116c6: bf00 nop
80116c8: 370c adds r7, #12
80116ca: 46bd mov sp, r7
80116cc: f85d 7b04 ldr.w r7, [sp], #4
80116d0: 4770 bx lr
80116d2: bf00 nop
80116d4: e000e100 .word 0xe000e100
080116d8 <__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)
{
80116d8: b480 push {r7}
80116da: b083 sub sp, #12
80116dc: af00 add r7, sp, #0
80116de: 4603 mov r3, r0
80116e0: 71fb strb r3, [r7, #7]
if ((int32_t)(IRQn) >= 0)
80116e2: f997 3007 ldrsb.w r3, [r7, #7]
80116e6: 2b00 cmp r3, #0
80116e8: db10 blt.n 801170c <__NVIC_DisableIRQ+0x34>
{
NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
80116ea: 490b ldr r1, [pc, #44] ; (8011718 <__NVIC_DisableIRQ+0x40>)
80116ec: f997 3007 ldrsb.w r3, [r7, #7]
80116f0: 095b lsrs r3, r3, #5
80116f2: 79fa ldrb r2, [r7, #7]
80116f4: f002 021f and.w r2, r2, #31
80116f8: 2001 movs r0, #1
80116fa: fa00 f202 lsl.w r2, r0, r2
80116fe: 3320 adds r3, #32
8011700: 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");
8011704: f3bf 8f4f dsb sy
__ASM volatile ("isb 0xF":::"memory");
8011708: f3bf 8f6f isb sy
__DSB();
__ISB();
}
}
801170c: bf00 nop
801170e: 370c adds r7, #12
8011710: 46bd mov sp, r7
8011712: f85d 7b04 ldr.w r7, [sp], #4
8011716: 4770 bx lr
8011718: e000e100 .word 0xe000e100
0801171c <__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)
{
801171c: b480 push {r7}
801171e: b083 sub sp, #12
8011720: af00 add r7, sp, #0
8011722: 4603 mov r3, r0
8011724: 6039 str r1, [r7, #0]
8011726: 71fb strb r3, [r7, #7]
if ((int32_t)(IRQn) >= 0)
8011728: f997 3007 ldrsb.w r3, [r7, #7]
801172c: 2b00 cmp r3, #0
801172e: db0a blt.n 8011746 <__NVIC_SetPriority+0x2a>
{
NVIC->IP[((uint32_t)IRQn)] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
8011730: 490d ldr r1, [pc, #52] ; (8011768 <__NVIC_SetPriority+0x4c>)
8011732: f997 3007 ldrsb.w r3, [r7, #7]
8011736: 683a ldr r2, [r7, #0]
8011738: b2d2 uxtb r2, r2
801173a: 0112 lsls r2, r2, #4
801173c: b2d2 uxtb r2, r2
801173e: 440b add r3, r1
8011740: 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);
}
}
8011744: e00a b.n 801175c <__NVIC_SetPriority+0x40>
SCB->SHPR[(((uint32_t)IRQn) & 0xFUL)-4UL] = (uint8_t)((priority << (8U - __NVIC_PRIO_BITS)) & (uint32_t)0xFFUL);
8011746: 4909 ldr r1, [pc, #36] ; (801176c <__NVIC_SetPriority+0x50>)
8011748: 79fb ldrb r3, [r7, #7]
801174a: f003 030f and.w r3, r3, #15
801174e: 3b04 subs r3, #4
8011750: 683a ldr r2, [r7, #0]
8011752: b2d2 uxtb r2, r2
8011754: 0112 lsls r2, r2, #4
8011756: b2d2 uxtb r2, r2
8011758: 440b add r3, r1
801175a: 761a strb r2, [r3, #24]
}
801175c: bf00 nop
801175e: 370c adds r7, #12
8011760: 46bd mov sp, r7
8011762: f85d 7b04 ldr.w r7, [sp], #4
8011766: 4770 bx lr
8011768: e000e100 .word 0xe000e100
801176c: e000ed00 .word 0xe000ed00
08011770 <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)
{
8011770: b480 push {r7}
8011772: b089 sub sp, #36 ; 0x24
8011774: af00 add r7, sp, #0
8011776: 60f8 str r0, [r7, #12]
8011778: 60b9 str r1, [r7, #8]
801177a: 607a str r2, [r7, #4]
uint32_t PriorityGroupTmp = (PriorityGroup & (uint32_t)0x07UL); /* only values 0..7 are used */
801177c: 68fb ldr r3, [r7, #12]
801177e: f003 0307 and.w r3, r3, #7
8011782: 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);
8011784: 69fb ldr r3, [r7, #28]
8011786: f1c3 0307 rsb r3, r3, #7
801178a: 2b04 cmp r3, #4
801178c: bf28 it cs
801178e: 2304 movcs r3, #4
8011790: 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));
8011792: 69fb ldr r3, [r7, #28]
8011794: 3304 adds r3, #4
8011796: 2b06 cmp r3, #6
8011798: d902 bls.n 80117a0 <NVIC_EncodePriority+0x30>
801179a: 69fb ldr r3, [r7, #28]
801179c: 3b03 subs r3, #3
801179e: e000 b.n 80117a2 <NVIC_EncodePriority+0x32>
80117a0: 2300 movs r3, #0
80117a2: 617b str r3, [r7, #20]
return (
((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
80117a4: 2201 movs r2, #1
80117a6: 69bb ldr r3, [r7, #24]
80117a8: fa02 f303 lsl.w r3, r2, r3
80117ac: 1e5a subs r2, r3, #1
80117ae: 68bb ldr r3, [r7, #8]
80117b0: 401a ands r2, r3
80117b2: 697b ldr r3, [r7, #20]
80117b4: 409a lsls r2, r3
((SubPriority & (uint32_t)((1UL << (SubPriorityBits )) - 1UL)))
80117b6: 2101 movs r1, #1
80117b8: 697b ldr r3, [r7, #20]
80117ba: fa01 f303 lsl.w r3, r1, r3
80117be: 1e59 subs r1, r3, #1
80117c0: 687b ldr r3, [r7, #4]
80117c2: 400b ands r3, r1
((PreemptPriority & (uint32_t)((1UL << (PreemptPriorityBits)) - 1UL)) << SubPriorityBits) |
80117c4: 4313 orrs r3, r2
);
}
80117c6: 4618 mov r0, r3
80117c8: 3724 adds r7, #36 ; 0x24
80117ca: 46bd mov sp, r7
80117cc: f85d 7b04 ldr.w r7, [sp], #4
80117d0: 4770 bx lr
...
080117d4 <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)
{
80117d4: b580 push {r7, lr}
80117d6: b082 sub sp, #8
80117d8: af00 add r7, sp, #0
80117da: 6078 str r0, [r7, #4]
if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk)
80117dc: 687b ldr r3, [r7, #4]
80117de: 3b01 subs r3, #1
80117e0: f1b3 7f80 cmp.w r3, #16777216 ; 0x1000000
80117e4: d301 bcc.n 80117ea <SysTick_Config+0x16>
{
return (1UL); /* Reload value impossible */
80117e6: 2301 movs r3, #1
80117e8: e00f b.n 801180a <SysTick_Config+0x36>
}
SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */
80117ea: 4a0a ldr r2, [pc, #40] ; (8011814 <SysTick_Config+0x40>)
80117ec: 687b ldr r3, [r7, #4]
80117ee: 3b01 subs r3, #1
80117f0: 6053 str r3, [r2, #4]
NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */
80117f2: 210f movs r1, #15
80117f4: f04f 30ff mov.w r0, #4294967295
80117f8: f7ff ff90 bl 801171c <__NVIC_SetPriority>
SysTick->VAL = 0UL; /* Load the SysTick Counter Value */
80117fc: 4b05 ldr r3, [pc, #20] ; (8011814 <SysTick_Config+0x40>)
80117fe: 2200 movs r2, #0
8011800: 609a str r2, [r3, #8]
SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
8011802: 4b04 ldr r3, [pc, #16] ; (8011814 <SysTick_Config+0x40>)
8011804: 2207 movs r2, #7
8011806: 601a str r2, [r3, #0]
SysTick_CTRL_TICKINT_Msk |
SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */
return (0UL); /* Function successful */
8011808: 2300 movs r3, #0
}
801180a: 4618 mov r0, r3
801180c: 3708 adds r7, #8
801180e: 46bd mov sp, r7
8011810: bd80 pop {r7, pc}
8011812: bf00 nop
8011814: e000e010 .word 0xe000e010
08011818 <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)
{
8011818: b580 push {r7, lr}
801181a: b082 sub sp, #8
801181c: af00 add r7, sp, #0
801181e: 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);
8011820: 6878 ldr r0, [r7, #4]
8011822: f7ff ff09 bl 8011638 <__NVIC_SetPriorityGrouping>
}
8011826: bf00 nop
8011828: 3708 adds r7, #8
801182a: 46bd mov sp, r7
801182c: bd80 pop {r7, pc}
0801182e <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)
{
801182e: b580 push {r7, lr}
8011830: b086 sub sp, #24
8011832: af00 add r7, sp, #0
8011834: 4603 mov r3, r0
8011836: 60b9 str r1, [r7, #8]
8011838: 607a str r2, [r7, #4]
801183a: 73fb strb r3, [r7, #15]
uint32_t prioritygroup = 0x00;
801183c: 2300 movs r3, #0
801183e: 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();
8011840: f7ff ff1e bl 8011680 <__NVIC_GetPriorityGrouping>
8011844: 6178 str r0, [r7, #20]
NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority));
8011846: 687a ldr r2, [r7, #4]
8011848: 68b9 ldr r1, [r7, #8]
801184a: 6978 ldr r0, [r7, #20]
801184c: f7ff ff90 bl 8011770 <NVIC_EncodePriority>
8011850: 4602 mov r2, r0
8011852: f997 300f ldrsb.w r3, [r7, #15]
8011856: 4611 mov r1, r2
8011858: 4618 mov r0, r3
801185a: f7ff ff5f bl 801171c <__NVIC_SetPriority>
}
801185e: bf00 nop
8011860: 3718 adds r7, #24
8011862: 46bd mov sp, r7
8011864: bd80 pop {r7, pc}
08011866 <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)
{
8011866: b580 push {r7, lr}
8011868: b082 sub sp, #8
801186a: af00 add r7, sp, #0
801186c: 4603 mov r3, r0
801186e: 71fb strb r3, [r7, #7]
/* Check the parameters */
assert_param(IS_NVIC_DEVICE_IRQ(IRQn));
/* Enable interrupt */
NVIC_EnableIRQ(IRQn);
8011870: f997 3007 ldrsb.w r3, [r7, #7]
8011874: 4618 mov r0, r3
8011876: f7ff ff11 bl 801169c <__NVIC_EnableIRQ>
}
801187a: bf00 nop
801187c: 3708 adds r7, #8
801187e: 46bd mov sp, r7
8011880: bd80 pop {r7, pc}
08011882 <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)
{
8011882: b580 push {r7, lr}
8011884: b082 sub sp, #8
8011886: af00 add r7, sp, #0
8011888: 4603 mov r3, r0
801188a: 71fb strb r3, [r7, #7]
/* Check the parameters */
assert_param(IS_NVIC_DEVICE_IRQ(IRQn));
/* Disable interrupt */
NVIC_DisableIRQ(IRQn);
801188c: f997 3007 ldrsb.w r3, [r7, #7]
8011890: 4618 mov r0, r3
8011892: f7ff ff21 bl 80116d8 <__NVIC_DisableIRQ>
}
8011896: bf00 nop
8011898: 3708 adds r7, #8
801189a: 46bd mov sp, r7
801189c: bd80 pop {r7, pc}
0801189e <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)
{
801189e: b580 push {r7, lr}
80118a0: b082 sub sp, #8
80118a2: af00 add r7, sp, #0
80118a4: 6078 str r0, [r7, #4]
return SysTick_Config(TicksNumb);
80118a6: 6878 ldr r0, [r7, #4]
80118a8: f7ff ff94 bl 80117d4 <SysTick_Config>
80118ac: 4603 mov r3, r0
}
80118ae: 4618 mov r0, r3
80118b0: 3708 adds r7, #8
80118b2: 46bd mov sp, r7
80118b4: bd80 pop {r7, pc}
080118b6 <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)
{
80118b6: b580 push {r7, lr}
80118b8: b084 sub sp, #16
80118ba: af00 add r7, sp, #0
80118bc: 6078 str r0, [r7, #4]
/* calculate DMA base and stream number */
DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress;
80118be: 687b ldr r3, [r7, #4]
80118c0: 6d9b ldr r3, [r3, #88] ; 0x58
80118c2: 60fb str r3, [r7, #12]
uint32_t tickstart = HAL_GetTick();
80118c4: f7ff fe8a bl 80115dc <HAL_GetTick>
80118c8: 60b8 str r0, [r7, #8]
if(hdma->State != HAL_DMA_STATE_BUSY)
80118ca: 687b ldr r3, [r7, #4]
80118cc: f893 3035 ldrb.w r3, [r3, #53] ; 0x35
80118d0: b2db uxtb r3, r3
80118d2: 2b02 cmp r3, #2
80118d4: d008 beq.n 80118e8 <HAL_DMA_Abort+0x32>
{
hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER;
80118d6: 687b ldr r3, [r7, #4]
80118d8: 2280 movs r2, #128 ; 0x80
80118da: 655a str r2, [r3, #84] ; 0x54
/* Process Unlocked */
__HAL_UNLOCK(hdma);
80118dc: 687b ldr r3, [r7, #4]
80118de: 2200 movs r2, #0
80118e0: f883 2034 strb.w r2, [r3, #52] ; 0x34
return HAL_ERROR;
80118e4: 2301 movs r3, #1
80118e6: e052 b.n 801198e <HAL_DMA_Abort+0xd8>
}
else
{
/* Disable all the transfer interrupts */
hdma->Instance->CR &= ~(DMA_IT_TC | DMA_IT_TE | DMA_IT_DME);
80118e8: 687b ldr r3, [r7, #4]
80118ea: 681b ldr r3, [r3, #0]
80118ec: 687a ldr r2, [r7, #4]
80118ee: 6812 ldr r2, [r2, #0]
80118f0: 6812 ldr r2, [r2, #0]
80118f2: f022 0216 bic.w r2, r2, #22
80118f6: 601a str r2, [r3, #0]
hdma->Instance->FCR &= ~(DMA_IT_FE);
80118f8: 687b ldr r3, [r7, #4]
80118fa: 681b ldr r3, [r3, #0]
80118fc: 687a ldr r2, [r7, #4]
80118fe: 6812 ldr r2, [r2, #0]
8011900: 6952 ldr r2, [r2, #20]
8011902: f022 0280 bic.w r2, r2, #128 ; 0x80
8011906: 615a str r2, [r3, #20]
if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL))
8011908: 687b ldr r3, [r7, #4]
801190a: 6c1b ldr r3, [r3, #64] ; 0x40
801190c: 2b00 cmp r3, #0
801190e: d103 bne.n 8011918 <HAL_DMA_Abort+0x62>
8011910: 687b ldr r3, [r7, #4]
8011912: 6c9b ldr r3, [r3, #72] ; 0x48
8011914: 2b00 cmp r3, #0
8011916: d007 beq.n 8011928 <HAL_DMA_Abort+0x72>
{
hdma->Instance->CR &= ~(DMA_IT_HT);
8011918: 687b ldr r3, [r7, #4]
801191a: 681b ldr r3, [r3, #0]
801191c: 687a ldr r2, [r7, #4]
801191e: 6812 ldr r2, [r2, #0]
8011920: 6812 ldr r2, [r2, #0]
8011922: f022 0208 bic.w r2, r2, #8
8011926: 601a str r2, [r3, #0]
}
/* Disable the stream */
__HAL_DMA_DISABLE(hdma);
8011928: 687b ldr r3, [r7, #4]
801192a: 681b ldr r3, [r3, #0]
801192c: 687a ldr r2, [r7, #4]
801192e: 6812 ldr r2, [r2, #0]
8011930: 6812 ldr r2, [r2, #0]
8011932: f022 0201 bic.w r2, r2, #1
8011936: 601a str r2, [r3, #0]
/* Check if the DMA Stream is effectively disabled */
while((hdma->Instance->CR & DMA_SxCR_EN) != RESET)
8011938: e013 b.n 8011962 <HAL_DMA_Abort+0xac>
{
/* Check for the Timeout */
if((HAL_GetTick() - tickstart ) > HAL_TIMEOUT_DMA_ABORT)
801193a: f7ff fe4f bl 80115dc <HAL_GetTick>
801193e: 4602 mov r2, r0
8011940: 68bb ldr r3, [r7, #8]
8011942: 1ad3 subs r3, r2, r3
8011944: 2b05 cmp r3, #5
8011946: d90c bls.n 8011962 <HAL_DMA_Abort+0xac>
{
/* Update error code */
hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT;
8011948: 687b ldr r3, [r7, #4]
801194a: 2220 movs r2, #32
801194c: 655a str r2, [r3, #84] ; 0x54
/* Change the DMA state */
hdma->State = HAL_DMA_STATE_TIMEOUT;
801194e: 687b ldr r3, [r7, #4]
8011950: 2203 movs r2, #3
8011952: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Process Unlocked */
__HAL_UNLOCK(hdma);
8011956: 687b ldr r3, [r7, #4]
8011958: 2200 movs r2, #0
801195a: f883 2034 strb.w r2, [r3, #52] ; 0x34
return HAL_TIMEOUT;
801195e: 2303 movs r3, #3
8011960: e015 b.n 801198e <HAL_DMA_Abort+0xd8>
while((hdma->Instance->CR & DMA_SxCR_EN) != RESET)
8011962: 687b ldr r3, [r7, #4]
8011964: 681b ldr r3, [r3, #0]
8011966: 681b ldr r3, [r3, #0]
8011968: f003 0301 and.w r3, r3, #1
801196c: 2b00 cmp r3, #0
801196e: d1e4 bne.n 801193a <HAL_DMA_Abort+0x84>
}
}
/* Clear all interrupt flags at correct offset within the register */
regs->IFCR = 0x3FU << hdma->StreamIndex;
8011970: 687b ldr r3, [r7, #4]
8011972: 6ddb ldr r3, [r3, #92] ; 0x5c
8011974: 223f movs r2, #63 ; 0x3f
8011976: 409a lsls r2, r3
8011978: 68fb ldr r3, [r7, #12]
801197a: 609a str r2, [r3, #8]
/* Change the DMA state*/
hdma->State = HAL_DMA_STATE_READY;
801197c: 687b ldr r3, [r7, #4]
801197e: 2201 movs r2, #1
8011980: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Process Unlocked */
__HAL_UNLOCK(hdma);
8011984: 687b ldr r3, [r7, #4]
8011986: 2200 movs r2, #0
8011988: f883 2034 strb.w r2, [r3, #52] ; 0x34
}
return HAL_OK;
801198c: 2300 movs r3, #0
}
801198e: 4618 mov r0, r3
8011990: 3710 adds r7, #16
8011992: 46bd mov sp, r7
8011994: bd80 pop {r7, pc}
08011996 <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)
{
8011996: b480 push {r7}
8011998: b083 sub sp, #12
801199a: af00 add r7, sp, #0
801199c: 6078 str r0, [r7, #4]
if(hdma->State != HAL_DMA_STATE_BUSY)
801199e: 687b ldr r3, [r7, #4]
80119a0: f893 3035 ldrb.w r3, [r3, #53] ; 0x35
80119a4: b2db uxtb r3, r3
80119a6: 2b02 cmp r3, #2
80119a8: d004 beq.n 80119b4 <HAL_DMA_Abort_IT+0x1e>
{
hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER;
80119aa: 687b ldr r3, [r7, #4]
80119ac: 2280 movs r2, #128 ; 0x80
80119ae: 655a str r2, [r3, #84] ; 0x54
return HAL_ERROR;
80119b0: 2301 movs r3, #1
80119b2: e00c b.n 80119ce <HAL_DMA_Abort_IT+0x38>
}
else
{
/* Set Abort State */
hdma->State = HAL_DMA_STATE_ABORT;
80119b4: 687b ldr r3, [r7, #4]
80119b6: 2205 movs r2, #5
80119b8: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Disable the stream */
__HAL_DMA_DISABLE(hdma);
80119bc: 687b ldr r3, [r7, #4]
80119be: 681b ldr r3, [r3, #0]
80119c0: 687a ldr r2, [r7, #4]
80119c2: 6812 ldr r2, [r2, #0]
80119c4: 6812 ldr r2, [r2, #0]
80119c6: f022 0201 bic.w r2, r2, #1
80119ca: 601a str r2, [r3, #0]
}
return HAL_OK;
80119cc: 2300 movs r3, #0
}
80119ce: 4618 mov r0, r3
80119d0: 370c adds r7, #12
80119d2: 46bd mov sp, r7
80119d4: f85d 7b04 ldr.w r7, [sp], #4
80119d8: 4770 bx lr
...
080119dc <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)
{
80119dc: b580 push {r7, lr}
80119de: b086 sub sp, #24
80119e0: af00 add r7, sp, #0
80119e2: 6078 str r0, [r7, #4]
uint32_t tmpisr;
__IO uint32_t count = 0;
80119e4: 2300 movs r3, #0
80119e6: 60bb str r3, [r7, #8]
uint32_t timeout = SystemCoreClock / 9600;
80119e8: 4b92 ldr r3, [pc, #584] ; (8011c34 <HAL_DMA_IRQHandler+0x258>)
80119ea: 681b ldr r3, [r3, #0]
80119ec: 4a92 ldr r2, [pc, #584] ; (8011c38 <HAL_DMA_IRQHandler+0x25c>)
80119ee: fba2 2303 umull r2, r3, r2, r3
80119f2: 0a9b lsrs r3, r3, #10
80119f4: 617b str r3, [r7, #20]
/* calculate DMA base and stream number */
DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress;
80119f6: 687b ldr r3, [r7, #4]
80119f8: 6d9b ldr r3, [r3, #88] ; 0x58
80119fa: 613b str r3, [r7, #16]
tmpisr = regs->ISR;
80119fc: 693b ldr r3, [r7, #16]
80119fe: 681b ldr r3, [r3, #0]
8011a00: 60fb str r3, [r7, #12]
/* Transfer Error Interrupt management ***************************************/
if ((tmpisr & (DMA_FLAG_TEIF0_4 << hdma->StreamIndex)) != RESET)
8011a02: 687b ldr r3, [r7, #4]
8011a04: 6ddb ldr r3, [r3, #92] ; 0x5c
8011a06: 2208 movs r2, #8
8011a08: 409a lsls r2, r3
8011a0a: 68fb ldr r3, [r7, #12]
8011a0c: 4013 ands r3, r2
8011a0e: 2b00 cmp r3, #0
8011a10: d01a beq.n 8011a48 <HAL_DMA_IRQHandler+0x6c>
{
if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TE) != RESET)
8011a12: 687b ldr r3, [r7, #4]
8011a14: 681b ldr r3, [r3, #0]
8011a16: 681b ldr r3, [r3, #0]
8011a18: f003 0304 and.w r3, r3, #4
8011a1c: 2b00 cmp r3, #0
8011a1e: d013 beq.n 8011a48 <HAL_DMA_IRQHandler+0x6c>
{
/* Disable the transfer error interrupt */
hdma->Instance->CR &= ~(DMA_IT_TE);
8011a20: 687b ldr r3, [r7, #4]
8011a22: 681b ldr r3, [r3, #0]
8011a24: 687a ldr r2, [r7, #4]
8011a26: 6812 ldr r2, [r2, #0]
8011a28: 6812 ldr r2, [r2, #0]
8011a2a: f022 0204 bic.w r2, r2, #4
8011a2e: 601a str r2, [r3, #0]
/* Clear the transfer error flag */
regs->IFCR = DMA_FLAG_TEIF0_4 << hdma->StreamIndex;
8011a30: 687b ldr r3, [r7, #4]
8011a32: 6ddb ldr r3, [r3, #92] ; 0x5c
8011a34: 2208 movs r2, #8
8011a36: 409a lsls r2, r3
8011a38: 693b ldr r3, [r7, #16]
8011a3a: 609a str r2, [r3, #8]
/* Update error code */
hdma->ErrorCode |= HAL_DMA_ERROR_TE;
8011a3c: 687b ldr r3, [r7, #4]
8011a3e: 6d5b ldr r3, [r3, #84] ; 0x54
8011a40: f043 0201 orr.w r2, r3, #1
8011a44: 687b ldr r3, [r7, #4]
8011a46: 655a str r2, [r3, #84] ; 0x54
}
}
/* FIFO Error Interrupt management ******************************************/
if ((tmpisr & (DMA_FLAG_FEIF0_4 << hdma->StreamIndex)) != RESET)
8011a48: 687b ldr r3, [r7, #4]
8011a4a: 6ddb ldr r3, [r3, #92] ; 0x5c
8011a4c: 2201 movs r2, #1
8011a4e: 409a lsls r2, r3
8011a50: 68fb ldr r3, [r7, #12]
8011a52: 4013 ands r3, r2
8011a54: 2b00 cmp r3, #0
8011a56: d012 beq.n 8011a7e <HAL_DMA_IRQHandler+0xa2>
{
if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_FE) != RESET)
8011a58: 687b ldr r3, [r7, #4]
8011a5a: 681b ldr r3, [r3, #0]
8011a5c: 695b ldr r3, [r3, #20]
8011a5e: f003 0380 and.w r3, r3, #128 ; 0x80
8011a62: 2b00 cmp r3, #0
8011a64: d00b beq.n 8011a7e <HAL_DMA_IRQHandler+0xa2>
{
/* Clear the FIFO error flag */
regs->IFCR = DMA_FLAG_FEIF0_4 << hdma->StreamIndex;
8011a66: 687b ldr r3, [r7, #4]
8011a68: 6ddb ldr r3, [r3, #92] ; 0x5c
8011a6a: 2201 movs r2, #1
8011a6c: 409a lsls r2, r3
8011a6e: 693b ldr r3, [r7, #16]
8011a70: 609a str r2, [r3, #8]
/* Update error code */
hdma->ErrorCode |= HAL_DMA_ERROR_FE;
8011a72: 687b ldr r3, [r7, #4]
8011a74: 6d5b ldr r3, [r3, #84] ; 0x54
8011a76: f043 0202 orr.w r2, r3, #2
8011a7a: 687b ldr r3, [r7, #4]
8011a7c: 655a str r2, [r3, #84] ; 0x54
}
}
/* Direct Mode Error Interrupt management ***********************************/
if ((tmpisr & (DMA_FLAG_DMEIF0_4 << hdma->StreamIndex)) != RESET)
8011a7e: 687b ldr r3, [r7, #4]
8011a80: 6ddb ldr r3, [r3, #92] ; 0x5c
8011a82: 2204 movs r2, #4
8011a84: 409a lsls r2, r3
8011a86: 68fb ldr r3, [r7, #12]
8011a88: 4013 ands r3, r2
8011a8a: 2b00 cmp r3, #0
8011a8c: d012 beq.n 8011ab4 <HAL_DMA_IRQHandler+0xd8>
{
if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_DME) != RESET)
8011a8e: 687b ldr r3, [r7, #4]
8011a90: 681b ldr r3, [r3, #0]
8011a92: 681b ldr r3, [r3, #0]
8011a94: f003 0302 and.w r3, r3, #2
8011a98: 2b00 cmp r3, #0
8011a9a: d00b beq.n 8011ab4 <HAL_DMA_IRQHandler+0xd8>
{
/* Clear the direct mode error flag */
regs->IFCR = DMA_FLAG_DMEIF0_4 << hdma->StreamIndex;
8011a9c: 687b ldr r3, [r7, #4]
8011a9e: 6ddb ldr r3, [r3, #92] ; 0x5c
8011aa0: 2204 movs r2, #4
8011aa2: 409a lsls r2, r3
8011aa4: 693b ldr r3, [r7, #16]
8011aa6: 609a str r2, [r3, #8]
/* Update error code */
hdma->ErrorCode |= HAL_DMA_ERROR_DME;
8011aa8: 687b ldr r3, [r7, #4]
8011aaa: 6d5b ldr r3, [r3, #84] ; 0x54
8011aac: f043 0204 orr.w r2, r3, #4
8011ab0: 687b ldr r3, [r7, #4]
8011ab2: 655a str r2, [r3, #84] ; 0x54
}
}
/* Half Transfer Complete Interrupt management ******************************/
if ((tmpisr & (DMA_FLAG_HTIF0_4 << hdma->StreamIndex)) != RESET)
8011ab4: 687b ldr r3, [r7, #4]
8011ab6: 6ddb ldr r3, [r3, #92] ; 0x5c
8011ab8: 2210 movs r2, #16
8011aba: 409a lsls r2, r3
8011abc: 68fb ldr r3, [r7, #12]
8011abe: 4013 ands r3, r2
8011ac0: 2b00 cmp r3, #0
8011ac2: d043 beq.n 8011b4c <HAL_DMA_IRQHandler+0x170>
{
if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_HT) != RESET)
8011ac4: 687b ldr r3, [r7, #4]
8011ac6: 681b ldr r3, [r3, #0]
8011ac8: 681b ldr r3, [r3, #0]
8011aca: f003 0308 and.w r3, r3, #8
8011ace: 2b00 cmp r3, #0
8011ad0: d03c beq.n 8011b4c <HAL_DMA_IRQHandler+0x170>
{
/* Clear the half transfer complete flag */
regs->IFCR = DMA_FLAG_HTIF0_4 << hdma->StreamIndex;
8011ad2: 687b ldr r3, [r7, #4]
8011ad4: 6ddb ldr r3, [r3, #92] ; 0x5c
8011ad6: 2210 movs r2, #16
8011ad8: 409a lsls r2, r3
8011ada: 693b ldr r3, [r7, #16]
8011adc: 609a str r2, [r3, #8]
/* Multi_Buffering mode enabled */
if(((hdma->Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET)
8011ade: 687b ldr r3, [r7, #4]
8011ae0: 681b ldr r3, [r3, #0]
8011ae2: 681b ldr r3, [r3, #0]
8011ae4: f403 2380 and.w r3, r3, #262144 ; 0x40000
8011ae8: 2b00 cmp r3, #0
8011aea: d018 beq.n 8011b1e <HAL_DMA_IRQHandler+0x142>
{
/* Current memory buffer used is Memory 0 */
if((hdma->Instance->CR & DMA_SxCR_CT) == RESET)
8011aec: 687b ldr r3, [r7, #4]
8011aee: 681b ldr r3, [r3, #0]
8011af0: 681b ldr r3, [r3, #0]
8011af2: f403 2300 and.w r3, r3, #524288 ; 0x80000
8011af6: 2b00 cmp r3, #0
8011af8: d108 bne.n 8011b0c <HAL_DMA_IRQHandler+0x130>
{
if(hdma->XferHalfCpltCallback != NULL)
8011afa: 687b ldr r3, [r7, #4]
8011afc: 6c1b ldr r3, [r3, #64] ; 0x40
8011afe: 2b00 cmp r3, #0
8011b00: d024 beq.n 8011b4c <HAL_DMA_IRQHandler+0x170>
{
/* Half transfer callback */
hdma->XferHalfCpltCallback(hdma);
8011b02: 687b ldr r3, [r7, #4]
8011b04: 6c1b ldr r3, [r3, #64] ; 0x40
8011b06: 6878 ldr r0, [r7, #4]
8011b08: 4798 blx r3
8011b0a: e01f b.n 8011b4c <HAL_DMA_IRQHandler+0x170>
}
}
/* Current memory buffer used is Memory 1 */
else
{
if(hdma->XferM1HalfCpltCallback != NULL)
8011b0c: 687b ldr r3, [r7, #4]
8011b0e: 6c9b ldr r3, [r3, #72] ; 0x48
8011b10: 2b00 cmp r3, #0
8011b12: d01b beq.n 8011b4c <HAL_DMA_IRQHandler+0x170>
{
/* Half transfer callback */
hdma->XferM1HalfCpltCallback(hdma);
8011b14: 687b ldr r3, [r7, #4]
8011b16: 6c9b ldr r3, [r3, #72] ; 0x48
8011b18: 6878 ldr r0, [r7, #4]
8011b1a: 4798 blx r3
8011b1c: e016 b.n 8011b4c <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)
8011b1e: 687b ldr r3, [r7, #4]
8011b20: 681b ldr r3, [r3, #0]
8011b22: 681b ldr r3, [r3, #0]
8011b24: f403 7380 and.w r3, r3, #256 ; 0x100
8011b28: 2b00 cmp r3, #0
8011b2a: d107 bne.n 8011b3c <HAL_DMA_IRQHandler+0x160>
{
/* Disable the half transfer interrupt */
hdma->Instance->CR &= ~(DMA_IT_HT);
8011b2c: 687b ldr r3, [r7, #4]
8011b2e: 681b ldr r3, [r3, #0]
8011b30: 687a ldr r2, [r7, #4]
8011b32: 6812 ldr r2, [r2, #0]
8011b34: 6812 ldr r2, [r2, #0]
8011b36: f022 0208 bic.w r2, r2, #8
8011b3a: 601a str r2, [r3, #0]
}
if(hdma->XferHalfCpltCallback != NULL)
8011b3c: 687b ldr r3, [r7, #4]
8011b3e: 6c1b ldr r3, [r3, #64] ; 0x40
8011b40: 2b00 cmp r3, #0
8011b42: d003 beq.n 8011b4c <HAL_DMA_IRQHandler+0x170>
{
/* Half transfer callback */
hdma->XferHalfCpltCallback(hdma);
8011b44: 687b ldr r3, [r7, #4]
8011b46: 6c1b ldr r3, [r3, #64] ; 0x40
8011b48: 6878 ldr r0, [r7, #4]
8011b4a: 4798 blx r3
}
}
}
}
/* Transfer Complete Interrupt management ***********************************/
if ((tmpisr & (DMA_FLAG_TCIF0_4 << hdma->StreamIndex)) != RESET)
8011b4c: 687b ldr r3, [r7, #4]
8011b4e: 6ddb ldr r3, [r3, #92] ; 0x5c
8011b50: 2220 movs r2, #32
8011b52: 409a lsls r2, r3
8011b54: 68fb ldr r3, [r7, #12]
8011b56: 4013 ands r3, r2
8011b58: 2b00 cmp r3, #0
8011b5a: f000 808e beq.w 8011c7a <HAL_DMA_IRQHandler+0x29e>
{
if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TC) != RESET)
8011b5e: 687b ldr r3, [r7, #4]
8011b60: 681b ldr r3, [r3, #0]
8011b62: 681b ldr r3, [r3, #0]
8011b64: f003 0310 and.w r3, r3, #16
8011b68: 2b00 cmp r3, #0
8011b6a: f000 8086 beq.w 8011c7a <HAL_DMA_IRQHandler+0x29e>
{
/* Clear the transfer complete flag */
regs->IFCR = DMA_FLAG_TCIF0_4 << hdma->StreamIndex;
8011b6e: 687b ldr r3, [r7, #4]
8011b70: 6ddb ldr r3, [r3, #92] ; 0x5c
8011b72: 2220 movs r2, #32
8011b74: 409a lsls r2, r3
8011b76: 693b ldr r3, [r7, #16]
8011b78: 609a str r2, [r3, #8]
if(HAL_DMA_STATE_ABORT == hdma->State)
8011b7a: 687b ldr r3, [r7, #4]
8011b7c: f893 3035 ldrb.w r3, [r3, #53] ; 0x35
8011b80: b2db uxtb r3, r3
8011b82: 2b05 cmp r3, #5
8011b84: d136 bne.n 8011bf4 <HAL_DMA_IRQHandler+0x218>
{
/* Disable all the transfer interrupts */
hdma->Instance->CR &= ~(DMA_IT_TC | DMA_IT_TE | DMA_IT_DME);
8011b86: 687b ldr r3, [r7, #4]
8011b88: 681b ldr r3, [r3, #0]
8011b8a: 687a ldr r2, [r7, #4]
8011b8c: 6812 ldr r2, [r2, #0]
8011b8e: 6812 ldr r2, [r2, #0]
8011b90: f022 0216 bic.w r2, r2, #22
8011b94: 601a str r2, [r3, #0]
hdma->Instance->FCR &= ~(DMA_IT_FE);
8011b96: 687b ldr r3, [r7, #4]
8011b98: 681b ldr r3, [r3, #0]
8011b9a: 687a ldr r2, [r7, #4]
8011b9c: 6812 ldr r2, [r2, #0]
8011b9e: 6952 ldr r2, [r2, #20]
8011ba0: f022 0280 bic.w r2, r2, #128 ; 0x80
8011ba4: 615a str r2, [r3, #20]
if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL))
8011ba6: 687b ldr r3, [r7, #4]
8011ba8: 6c1b ldr r3, [r3, #64] ; 0x40
8011baa: 2b00 cmp r3, #0
8011bac: d103 bne.n 8011bb6 <HAL_DMA_IRQHandler+0x1da>
8011bae: 687b ldr r3, [r7, #4]
8011bb0: 6c9b ldr r3, [r3, #72] ; 0x48
8011bb2: 2b00 cmp r3, #0
8011bb4: d007 beq.n 8011bc6 <HAL_DMA_IRQHandler+0x1ea>
{
hdma->Instance->CR &= ~(DMA_IT_HT);
8011bb6: 687b ldr r3, [r7, #4]
8011bb8: 681b ldr r3, [r3, #0]
8011bba: 687a ldr r2, [r7, #4]
8011bbc: 6812 ldr r2, [r2, #0]
8011bbe: 6812 ldr r2, [r2, #0]
8011bc0: f022 0208 bic.w r2, r2, #8
8011bc4: 601a str r2, [r3, #0]
}
/* Clear all interrupt flags at correct offset within the register */
regs->IFCR = 0x3FU << hdma->StreamIndex;
8011bc6: 687b ldr r3, [r7, #4]
8011bc8: 6ddb ldr r3, [r3, #92] ; 0x5c
8011bca: 223f movs r2, #63 ; 0x3f
8011bcc: 409a lsls r2, r3
8011bce: 693b ldr r3, [r7, #16]
8011bd0: 609a str r2, [r3, #8]
/* Change the DMA state */
hdma->State = HAL_DMA_STATE_READY;
8011bd2: 687b ldr r3, [r7, #4]
8011bd4: 2201 movs r2, #1
8011bd6: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Process Unlocked */
__HAL_UNLOCK(hdma);
8011bda: 687b ldr r3, [r7, #4]
8011bdc: 2200 movs r2, #0
8011bde: f883 2034 strb.w r2, [r3, #52] ; 0x34
if(hdma->XferAbortCallback != NULL)
8011be2: 687b ldr r3, [r7, #4]
8011be4: 6d1b ldr r3, [r3, #80] ; 0x50
8011be6: 2b00 cmp r3, #0
8011be8: d07d beq.n 8011ce6 <HAL_DMA_IRQHandler+0x30a>
{
hdma->XferAbortCallback(hdma);
8011bea: 687b ldr r3, [r7, #4]
8011bec: 6d1b ldr r3, [r3, #80] ; 0x50
8011bee: 6878 ldr r0, [r7, #4]
8011bf0: 4798 blx r3
}
return;
8011bf2: e078 b.n 8011ce6 <HAL_DMA_IRQHandler+0x30a>
}
if(((hdma->Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET)
8011bf4: 687b ldr r3, [r7, #4]
8011bf6: 681b ldr r3, [r3, #0]
8011bf8: 681b ldr r3, [r3, #0]
8011bfa: f403 2380 and.w r3, r3, #262144 ; 0x40000
8011bfe: 2b00 cmp r3, #0
8011c00: d01c beq.n 8011c3c <HAL_DMA_IRQHandler+0x260>
{
/* Current memory buffer used is Memory 0 */
if((hdma->Instance->CR & DMA_SxCR_CT) == RESET)
8011c02: 687b ldr r3, [r7, #4]
8011c04: 681b ldr r3, [r3, #0]
8011c06: 681b ldr r3, [r3, #0]
8011c08: f403 2300 and.w r3, r3, #524288 ; 0x80000
8011c0c: 2b00 cmp r3, #0
8011c0e: d108 bne.n 8011c22 <HAL_DMA_IRQHandler+0x246>
{
if(hdma->XferM1CpltCallback != NULL)
8011c10: 687b ldr r3, [r7, #4]
8011c12: 6c5b ldr r3, [r3, #68] ; 0x44
8011c14: 2b00 cmp r3, #0
8011c16: d030 beq.n 8011c7a <HAL_DMA_IRQHandler+0x29e>
{
/* Transfer complete Callback for memory1 */
hdma->XferM1CpltCallback(hdma);
8011c18: 687b ldr r3, [r7, #4]
8011c1a: 6c5b ldr r3, [r3, #68] ; 0x44
8011c1c: 6878 ldr r0, [r7, #4]
8011c1e: 4798 blx r3
8011c20: e02b b.n 8011c7a <HAL_DMA_IRQHandler+0x29e>
}
}
/* Current memory buffer used is Memory 1 */
else
{
if(hdma->XferCpltCallback != NULL)
8011c22: 687b ldr r3, [r7, #4]
8011c24: 6bdb ldr r3, [r3, #60] ; 0x3c
8011c26: 2b00 cmp r3, #0
8011c28: d027 beq.n 8011c7a <HAL_DMA_IRQHandler+0x29e>
{
/* Transfer complete Callback for memory0 */
hdma->XferCpltCallback(hdma);
8011c2a: 687b ldr r3, [r7, #4]
8011c2c: 6bdb ldr r3, [r3, #60] ; 0x3c
8011c2e: 6878 ldr r0, [r7, #4]
8011c30: 4798 blx r3
8011c32: e022 b.n 8011c7a <HAL_DMA_IRQHandler+0x29e>
8011c34: 20020994 .word 0x20020994
8011c38: 1b4e81b5 .word 0x1b4e81b5
}
}
/* Disable the transfer complete interrupt if the DMA mode is not CIRCULAR */
else
{
if((hdma->Instance->CR & DMA_SxCR_CIRC) == RESET)
8011c3c: 687b ldr r3, [r7, #4]
8011c3e: 681b ldr r3, [r3, #0]
8011c40: 681b ldr r3, [r3, #0]
8011c42: f403 7380 and.w r3, r3, #256 ; 0x100
8011c46: 2b00 cmp r3, #0
8011c48: d10f bne.n 8011c6a <HAL_DMA_IRQHandler+0x28e>
{
/* Disable the transfer complete interrupt */
hdma->Instance->CR &= ~(DMA_IT_TC);
8011c4a: 687b ldr r3, [r7, #4]
8011c4c: 681b ldr r3, [r3, #0]
8011c4e: 687a ldr r2, [r7, #4]
8011c50: 6812 ldr r2, [r2, #0]
8011c52: 6812 ldr r2, [r2, #0]
8011c54: f022 0210 bic.w r2, r2, #16
8011c58: 601a str r2, [r3, #0]
/* Change the DMA state */
hdma->State = HAL_DMA_STATE_READY;
8011c5a: 687b ldr r3, [r7, #4]
8011c5c: 2201 movs r2, #1
8011c5e: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Process Unlocked */
__HAL_UNLOCK(hdma);
8011c62: 687b ldr r3, [r7, #4]
8011c64: 2200 movs r2, #0
8011c66: f883 2034 strb.w r2, [r3, #52] ; 0x34
}
if(hdma->XferCpltCallback != NULL)
8011c6a: 687b ldr r3, [r7, #4]
8011c6c: 6bdb ldr r3, [r3, #60] ; 0x3c
8011c6e: 2b00 cmp r3, #0
8011c70: d003 beq.n 8011c7a <HAL_DMA_IRQHandler+0x29e>
{
/* Transfer complete callback */
hdma->XferCpltCallback(hdma);
8011c72: 687b ldr r3, [r7, #4]
8011c74: 6bdb ldr r3, [r3, #60] ; 0x3c
8011c76: 6878 ldr r0, [r7, #4]
8011c78: 4798 blx r3
}
}
}
/* manage error case */
if(hdma->ErrorCode != HAL_DMA_ERROR_NONE)
8011c7a: 687b ldr r3, [r7, #4]
8011c7c: 6d5b ldr r3, [r3, #84] ; 0x54
8011c7e: 2b00 cmp r3, #0
8011c80: d032 beq.n 8011ce8 <HAL_DMA_IRQHandler+0x30c>
{
if((hdma->ErrorCode & HAL_DMA_ERROR_TE) != RESET)
8011c82: 687b ldr r3, [r7, #4]
8011c84: 6d5b ldr r3, [r3, #84] ; 0x54
8011c86: f003 0301 and.w r3, r3, #1
8011c8a: 2b00 cmp r3, #0
8011c8c: d022 beq.n 8011cd4 <HAL_DMA_IRQHandler+0x2f8>
{
hdma->State = HAL_DMA_STATE_ABORT;
8011c8e: 687b ldr r3, [r7, #4]
8011c90: 2205 movs r2, #5
8011c92: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Disable the stream */
__HAL_DMA_DISABLE(hdma);
8011c96: 687b ldr r3, [r7, #4]
8011c98: 681b ldr r3, [r3, #0]
8011c9a: 687a ldr r2, [r7, #4]
8011c9c: 6812 ldr r2, [r2, #0]
8011c9e: 6812 ldr r2, [r2, #0]
8011ca0: f022 0201 bic.w r2, r2, #1
8011ca4: 601a str r2, [r3, #0]
do
{
if (++count > timeout)
8011ca6: 68bb ldr r3, [r7, #8]
8011ca8: 3301 adds r3, #1
8011caa: 60bb str r3, [r7, #8]
8011cac: 697a ldr r2, [r7, #20]
8011cae: 4293 cmp r3, r2
8011cb0: d807 bhi.n 8011cc2 <HAL_DMA_IRQHandler+0x2e6>
{
break;
}
}
while((hdma->Instance->CR & DMA_SxCR_EN) != RESET);
8011cb2: 687b ldr r3, [r7, #4]
8011cb4: 681b ldr r3, [r3, #0]
8011cb6: 681b ldr r3, [r3, #0]
8011cb8: f003 0301 and.w r3, r3, #1
8011cbc: 2b00 cmp r3, #0
8011cbe: d1f2 bne.n 8011ca6 <HAL_DMA_IRQHandler+0x2ca>
8011cc0: e000 b.n 8011cc4 <HAL_DMA_IRQHandler+0x2e8>
break;
8011cc2: bf00 nop
/* Change the DMA state */
hdma->State = HAL_DMA_STATE_READY;
8011cc4: 687b ldr r3, [r7, #4]
8011cc6: 2201 movs r2, #1
8011cc8: f883 2035 strb.w r2, [r3, #53] ; 0x35
/* Process Unlocked */
__HAL_UNLOCK(hdma);
8011ccc: 687b ldr r3, [r7, #4]
8011cce: 2200 movs r2, #0
8011cd0: f883 2034 strb.w r2, [r3, #52] ; 0x34
}
if(hdma->XferErrorCallback != NULL)
8011cd4: 687b ldr r3, [r7, #4]
8011cd6: 6cdb ldr r3, [r3, #76] ; 0x4c
8011cd8: 2b00 cmp r3, #0
8011cda: d005 beq.n 8011ce8 <HAL_DMA_IRQHandler+0x30c>
{
/* Transfer error callback */
hdma->XferErrorCallback(hdma);
8011cdc: 687b ldr r3, [r7, #4]
8011cde: 6cdb ldr r3, [r3, #76] ; 0x4c
8011ce0: 6878 ldr r0, [r7, #4]
8011ce2: 4798 blx r3
8011ce4: e000 b.n 8011ce8 <HAL_DMA_IRQHandler+0x30c>
return;
8011ce6: bf00 nop
}
}
}
8011ce8: 3718 adds r7, #24
8011cea: 46bd mov sp, r7
8011cec: bd80 pop {r7, pc}
8011cee: bf00 nop
08011cf0 <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)
{
8011cf0: b580 push {r7, lr}
8011cf2: b082 sub sp, #8
8011cf4: af00 add r7, sp, #0
8011cf6: 6078 str r0, [r7, #4]
/* Check the DMA2D peripheral state */
if (hdma2d == NULL)
8011cf8: 687b ldr r3, [r7, #4]
8011cfa: 2b00 cmp r3, #0
8011cfc: d101 bne.n 8011d02 <HAL_DMA2D_Init+0x12>
{
return HAL_ERROR;
8011cfe: 2301 movs r3, #1
8011d00: e049 b.n 8011d96 <HAL_DMA2D_Init+0xa6>
/* Init the low level hardware */
hdma2d->MspInitCallback(hdma2d);
}
#else
if (hdma2d->State == HAL_DMA2D_STATE_RESET)
8011d02: 687b ldr r3, [r7, #4]
8011d04: f893 3051 ldrb.w r3, [r3, #81] ; 0x51
8011d08: b2db uxtb r3, r3
8011d0a: 2b00 cmp r3, #0
8011d0c: d106 bne.n 8011d1c <HAL_DMA2D_Init+0x2c>
{
/* Allocate lock resource and initialize it */
hdma2d->Lock = HAL_UNLOCKED;
8011d0e: 687b ldr r3, [r7, #4]
8011d10: 2200 movs r2, #0
8011d12: f883 2050 strb.w r2, [r3, #80] ; 0x50
/* Init the low level hardware */
HAL_DMA2D_MspInit(hdma2d);
8011d16: 6878 ldr r0, [r7, #4]
8011d18: f7ee fc84 bl 8000624 <HAL_DMA2D_MspInit>
}
#endif /* (USE_HAL_DMA2D_REGISTER_CALLBACKS) */
/* Change DMA2D peripheral state */
hdma2d->State = HAL_DMA2D_STATE_BUSY;
8011d1c: 687b ldr r3, [r7, #4]
8011d1e: 2202 movs r2, #2
8011d20: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* DMA2D CR register configuration -------------------------------------------*/
MODIFY_REG(hdma2d->Instance->CR, DMA2D_CR_MODE, hdma2d->Init.Mode);
8011d24: 687b ldr r3, [r7, #4]
8011d26: 681b ldr r3, [r3, #0]
8011d28: 687a ldr r2, [r7, #4]
8011d2a: 6812 ldr r2, [r2, #0]
8011d2c: 6812 ldr r2, [r2, #0]
8011d2e: f422 3140 bic.w r1, r2, #196608 ; 0x30000
8011d32: 687a ldr r2, [r7, #4]
8011d34: 6852 ldr r2, [r2, #4]
8011d36: 430a orrs r2, r1
8011d38: 601a str r2, [r3, #0]
/* DMA2D OPFCCR register configuration ---------------------------------------*/
MODIFY_REG(hdma2d->Instance->OPFCCR, DMA2D_OPFCCR_CM, hdma2d->Init.ColorMode);
8011d3a: 687b ldr r3, [r7, #4]
8011d3c: 681b ldr r3, [r3, #0]
8011d3e: 687a ldr r2, [r7, #4]
8011d40: 6812 ldr r2, [r2, #0]
8011d42: 6b52 ldr r2, [r2, #52] ; 0x34
8011d44: f022 0107 bic.w r1, r2, #7
8011d48: 687a ldr r2, [r7, #4]
8011d4a: 6892 ldr r2, [r2, #8]
8011d4c: 430a orrs r2, r1
8011d4e: 635a str r2, [r3, #52] ; 0x34
/* DMA2D OOR register configuration ------------------------------------------*/
MODIFY_REG(hdma2d->Instance->OOR, DMA2D_OOR_LO, hdma2d->Init.OutputOffset);
8011d50: 687b ldr r3, [r7, #4]
8011d52: 681a ldr r2, [r3, #0]
8011d54: 687b ldr r3, [r7, #4]
8011d56: 681b ldr r3, [r3, #0]
8011d58: 6c19 ldr r1, [r3, #64] ; 0x40
8011d5a: 4b11 ldr r3, [pc, #68] ; (8011da0 <HAL_DMA2D_Init+0xb0>)
8011d5c: 400b ands r3, r1
8011d5e: 6879 ldr r1, [r7, #4]
8011d60: 68c9 ldr r1, [r1, #12]
8011d62: 430b orrs r3, r1
8011d64: 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),
8011d66: 687b ldr r3, [r7, #4]
8011d68: 681b ldr r3, [r3, #0]
8011d6a: 687a ldr r2, [r7, #4]
8011d6c: 6812 ldr r2, [r2, #0]
8011d6e: 6b52 ldr r2, [r2, #52] ; 0x34
8011d70: f422 1140 bic.w r1, r2, #3145728 ; 0x300000
8011d74: 687a ldr r2, [r7, #4]
8011d76: 6912 ldr r2, [r2, #16]
8011d78: 0510 lsls r0, r2, #20
8011d7a: 687a ldr r2, [r7, #4]
8011d7c: 6952 ldr r2, [r2, #20]
8011d7e: 0552 lsls r2, r2, #21
8011d80: 4302 orrs r2, r0
8011d82: 430a orrs r2, r1
8011d84: 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;
8011d86: 687b ldr r3, [r7, #4]
8011d88: 2200 movs r2, #0
8011d8a: 655a str r2, [r3, #84] ; 0x54
/* Initialize the DMA2D state*/
hdma2d->State = HAL_DMA2D_STATE_READY;
8011d8c: 687b ldr r3, [r7, #4]
8011d8e: 2201 movs r2, #1
8011d90: f883 2051 strb.w r2, [r3, #81] ; 0x51
return HAL_OK;
8011d94: 2300 movs r3, #0
}
8011d96: 4618 mov r0, r3
8011d98: 3708 adds r7, #8
8011d9a: 46bd mov sp, r7
8011d9c: bd80 pop {r7, pc}
8011d9e: bf00 nop
8011da0: ffffc000 .word 0xffffc000
08011da4 <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)
{
8011da4: b580 push {r7, lr}
8011da6: b086 sub sp, #24
8011da8: af02 add r7, sp, #8
8011daa: 60f8 str r0, [r7, #12]
8011dac: 60b9 str r1, [r7, #8]
8011dae: 607a str r2, [r7, #4]
8011db0: 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);
8011db2: 68fb ldr r3, [r7, #12]
8011db4: f893 3050 ldrb.w r3, [r3, #80] ; 0x50
8011db8: 2b01 cmp r3, #1
8011dba: d101 bne.n 8011dc0 <HAL_DMA2D_Start+0x1c>
8011dbc: 2302 movs r3, #2
8011dbe: e018 b.n 8011df2 <HAL_DMA2D_Start+0x4e>
8011dc0: 68fb ldr r3, [r7, #12]
8011dc2: 2201 movs r2, #1
8011dc4: f883 2050 strb.w r2, [r3, #80] ; 0x50
/* Change DMA2D peripheral state */
hdma2d->State = HAL_DMA2D_STATE_BUSY;
8011dc8: 68fb ldr r3, [r7, #12]
8011dca: 2202 movs r2, #2
8011dcc: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Configure the source, destination address and the data size */
DMA2D_SetConfig(hdma2d, pdata, DstAddress, Width, Height);
8011dd0: 69bb ldr r3, [r7, #24]
8011dd2: 9300 str r3, [sp, #0]
8011dd4: 683b ldr r3, [r7, #0]
8011dd6: 687a ldr r2, [r7, #4]
8011dd8: 68b9 ldr r1, [r7, #8]
8011dda: 68f8 ldr r0, [r7, #12]
8011ddc: f000 f992 bl 8012104 <DMA2D_SetConfig>
/* Enable the Peripheral */
__HAL_DMA2D_ENABLE(hdma2d);
8011de0: 68fb ldr r3, [r7, #12]
8011de2: 681b ldr r3, [r3, #0]
8011de4: 68fa ldr r2, [r7, #12]
8011de6: 6812 ldr r2, [r2, #0]
8011de8: 6812 ldr r2, [r2, #0]
8011dea: f042 0201 orr.w r2, r2, #1
8011dee: 601a str r2, [r3, #0]
return HAL_OK;
8011df0: 2300 movs r3, #0
}
8011df2: 4618 mov r0, r3
8011df4: 3710 adds r7, #16
8011df6: 46bd mov sp, r7
8011df8: bd80 pop {r7, pc}
08011dfa <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)
{
8011dfa: b580 push {r7, lr}
8011dfc: b086 sub sp, #24
8011dfe: af00 add r7, sp, #0
8011e00: 6078 str r0, [r7, #4]
8011e02: 6039 str r1, [r7, #0]
uint32_t tickstart;
uint32_t layer_start;
__IO uint32_t isrflags = 0x0U;
8011e04: 2300 movs r3, #0
8011e06: 60fb str r3, [r7, #12]
/* Polling for DMA2D transfer */
if ((hdma2d->Instance->CR & DMA2D_CR_START) != 0U)
8011e08: 687b ldr r3, [r7, #4]
8011e0a: 681b ldr r3, [r3, #0]
8011e0c: 681b ldr r3, [r3, #0]
8011e0e: f003 0301 and.w r3, r3, #1
8011e12: 2b00 cmp r3, #0
8011e14: d056 beq.n 8011ec4 <HAL_DMA2D_PollForTransfer+0xca>
{
/* Get tick */
tickstart = HAL_GetTick();
8011e16: f7ff fbe1 bl 80115dc <HAL_GetTick>
8011e1a: 6178 str r0, [r7, #20]
while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_TC) == 0U)
8011e1c: e04b b.n 8011eb6 <HAL_DMA2D_PollForTransfer+0xbc>
{
isrflags = READ_REG(hdma2d->Instance->ISR);
8011e1e: 687b ldr r3, [r7, #4]
8011e20: 681b ldr r3, [r3, #0]
8011e22: 685b ldr r3, [r3, #4]
8011e24: 60fb str r3, [r7, #12]
if ((isrflags & (DMA2D_FLAG_CE | DMA2D_FLAG_TE)) != 0U)
8011e26: 68fb ldr r3, [r7, #12]
8011e28: f003 0321 and.w r3, r3, #33 ; 0x21
8011e2c: 2b00 cmp r3, #0
8011e2e: d023 beq.n 8011e78 <HAL_DMA2D_PollForTransfer+0x7e>
{
if ((isrflags & DMA2D_FLAG_CE) != 0U)
8011e30: 68fb ldr r3, [r7, #12]
8011e32: f003 0320 and.w r3, r3, #32
8011e36: 2b00 cmp r3, #0
8011e38: d005 beq.n 8011e46 <HAL_DMA2D_PollForTransfer+0x4c>
{
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_CE;
8011e3a: 687b ldr r3, [r7, #4]
8011e3c: 6d5b ldr r3, [r3, #84] ; 0x54
8011e3e: f043 0202 orr.w r2, r3, #2
8011e42: 687b ldr r3, [r7, #4]
8011e44: 655a str r2, [r3, #84] ; 0x54
}
if ((isrflags & DMA2D_FLAG_TE) != 0U)
8011e46: 68fb ldr r3, [r7, #12]
8011e48: f003 0301 and.w r3, r3, #1
8011e4c: 2b00 cmp r3, #0
8011e4e: d005 beq.n 8011e5c <HAL_DMA2D_PollForTransfer+0x62>
{
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TE;
8011e50: 687b ldr r3, [r7, #4]
8011e52: 6d5b ldr r3, [r3, #84] ; 0x54
8011e54: f043 0201 orr.w r2, r3, #1
8011e58: 687b ldr r3, [r7, #4]
8011e5a: 655a str r2, [r3, #84] ; 0x54
}
/* Clear the transfer and configuration error flags */
__HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_CE | DMA2D_FLAG_TE);
8011e5c: 687b ldr r3, [r7, #4]
8011e5e: 681b ldr r3, [r3, #0]
8011e60: 2221 movs r2, #33 ; 0x21
8011e62: 609a str r2, [r3, #8]
/* Change DMA2D state */
hdma2d->State = HAL_DMA2D_STATE_ERROR;
8011e64: 687b ldr r3, [r7, #4]
8011e66: 2204 movs r2, #4
8011e68: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
8011e6c: 687b ldr r3, [r7, #4]
8011e6e: 2200 movs r2, #0
8011e70: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_ERROR;
8011e74: 2301 movs r3, #1
8011e76: e0a5 b.n 8011fc4 <HAL_DMA2D_PollForTransfer+0x1ca>
}
/* Check for the Timeout */
if (Timeout != HAL_MAX_DELAY)
8011e78: 683b ldr r3, [r7, #0]
8011e7a: f1b3 3fff cmp.w r3, #4294967295
8011e7e: d01a beq.n 8011eb6 <HAL_DMA2D_PollForTransfer+0xbc>
{
if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
8011e80: f7ff fbac bl 80115dc <HAL_GetTick>
8011e84: 4602 mov r2, r0
8011e86: 697b ldr r3, [r7, #20]
8011e88: 1ad2 subs r2, r2, r3
8011e8a: 683b ldr r3, [r7, #0]
8011e8c: 429a cmp r2, r3
8011e8e: d802 bhi.n 8011e96 <HAL_DMA2D_PollForTransfer+0x9c>
8011e90: 683b ldr r3, [r7, #0]
8011e92: 2b00 cmp r3, #0
8011e94: d10f bne.n 8011eb6 <HAL_DMA2D_PollForTransfer+0xbc>
{
/* Update error code */
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TIMEOUT;
8011e96: 687b ldr r3, [r7, #4]
8011e98: 6d5b ldr r3, [r3, #84] ; 0x54
8011e9a: f043 0220 orr.w r2, r3, #32
8011e9e: 687b ldr r3, [r7, #4]
8011ea0: 655a str r2, [r3, #84] ; 0x54
/* Change the DMA2D state */
hdma2d->State = HAL_DMA2D_STATE_TIMEOUT;
8011ea2: 687b ldr r3, [r7, #4]
8011ea4: 2203 movs r2, #3
8011ea6: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
8011eaa: 687b ldr r3, [r7, #4]
8011eac: 2200 movs r2, #0
8011eae: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_TIMEOUT;
8011eb2: 2303 movs r3, #3
8011eb4: e086 b.n 8011fc4 <HAL_DMA2D_PollForTransfer+0x1ca>
while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_TC) == 0U)
8011eb6: 687b ldr r3, [r7, #4]
8011eb8: 681b ldr r3, [r3, #0]
8011eba: 685b ldr r3, [r3, #4]
8011ebc: f003 0302 and.w r3, r3, #2
8011ec0: 2b00 cmp r3, #0
8011ec2: d0ac beq.n 8011e1e <HAL_DMA2D_PollForTransfer+0x24>
}
}
}
}
/* Polling for CLUT loading (foreground or background) */
layer_start = hdma2d->Instance->FGPFCCR & DMA2D_FGPFCCR_START;
8011ec4: 687b ldr r3, [r7, #4]
8011ec6: 681b ldr r3, [r3, #0]
8011ec8: 69db ldr r3, [r3, #28]
8011eca: f003 0320 and.w r3, r3, #32
8011ece: 613b str r3, [r7, #16]
layer_start |= hdma2d->Instance->BGPFCCR & DMA2D_BGPFCCR_START;
8011ed0: 687b ldr r3, [r7, #4]
8011ed2: 681b ldr r3, [r3, #0]
8011ed4: 6a5b ldr r3, [r3, #36] ; 0x24
8011ed6: f003 0320 and.w r3, r3, #32
8011eda: 693a ldr r2, [r7, #16]
8011edc: 4313 orrs r3, r2
8011ede: 613b str r3, [r7, #16]
if (layer_start != 0U)
8011ee0: 693b ldr r3, [r7, #16]
8011ee2: 2b00 cmp r3, #0
8011ee4: d061 beq.n 8011faa <HAL_DMA2D_PollForTransfer+0x1b0>
{
/* Get tick */
tickstart = HAL_GetTick();
8011ee6: f7ff fb79 bl 80115dc <HAL_GetTick>
8011eea: 6178 str r0, [r7, #20]
while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_CTC) == 0U)
8011eec: e056 b.n 8011f9c <HAL_DMA2D_PollForTransfer+0x1a2>
{
isrflags = READ_REG(hdma2d->Instance->ISR);
8011eee: 687b ldr r3, [r7, #4]
8011ef0: 681b ldr r3, [r3, #0]
8011ef2: 685b ldr r3, [r3, #4]
8011ef4: 60fb str r3, [r7, #12]
if ((isrflags & (DMA2D_FLAG_CAE | DMA2D_FLAG_CE | DMA2D_FLAG_TE)) != 0U)
8011ef6: 68fb ldr r3, [r7, #12]
8011ef8: f003 0329 and.w r3, r3, #41 ; 0x29
8011efc: 2b00 cmp r3, #0
8011efe: d02e beq.n 8011f5e <HAL_DMA2D_PollForTransfer+0x164>
{
if ((isrflags & DMA2D_FLAG_CAE) != 0U)
8011f00: 68fb ldr r3, [r7, #12]
8011f02: f003 0308 and.w r3, r3, #8
8011f06: 2b00 cmp r3, #0
8011f08: d005 beq.n 8011f16 <HAL_DMA2D_PollForTransfer+0x11c>
{
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_CAE;
8011f0a: 687b ldr r3, [r7, #4]
8011f0c: 6d5b ldr r3, [r3, #84] ; 0x54
8011f0e: f043 0204 orr.w r2, r3, #4
8011f12: 687b ldr r3, [r7, #4]
8011f14: 655a str r2, [r3, #84] ; 0x54
}
if ((isrflags & DMA2D_FLAG_CE) != 0U)
8011f16: 68fb ldr r3, [r7, #12]
8011f18: f003 0320 and.w r3, r3, #32
8011f1c: 2b00 cmp r3, #0
8011f1e: d005 beq.n 8011f2c <HAL_DMA2D_PollForTransfer+0x132>
{
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_CE;
8011f20: 687b ldr r3, [r7, #4]
8011f22: 6d5b ldr r3, [r3, #84] ; 0x54
8011f24: f043 0202 orr.w r2, r3, #2
8011f28: 687b ldr r3, [r7, #4]
8011f2a: 655a str r2, [r3, #84] ; 0x54
}
if ((isrflags & DMA2D_FLAG_TE) != 0U)
8011f2c: 68fb ldr r3, [r7, #12]
8011f2e: f003 0301 and.w r3, r3, #1
8011f32: 2b00 cmp r3, #0
8011f34: d005 beq.n 8011f42 <HAL_DMA2D_PollForTransfer+0x148>
{
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TE;
8011f36: 687b ldr r3, [r7, #4]
8011f38: 6d5b ldr r3, [r3, #84] ; 0x54
8011f3a: f043 0201 orr.w r2, r3, #1
8011f3e: 687b ldr r3, [r7, #4]
8011f40: 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);
8011f42: 687b ldr r3, [r7, #4]
8011f44: 681b ldr r3, [r3, #0]
8011f46: 2229 movs r2, #41 ; 0x29
8011f48: 609a str r2, [r3, #8]
/* Change DMA2D state */
hdma2d->State = HAL_DMA2D_STATE_ERROR;
8011f4a: 687b ldr r3, [r7, #4]
8011f4c: 2204 movs r2, #4
8011f4e: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
8011f52: 687b ldr r3, [r7, #4]
8011f54: 2200 movs r2, #0
8011f56: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_ERROR;
8011f5a: 2301 movs r3, #1
8011f5c: e032 b.n 8011fc4 <HAL_DMA2D_PollForTransfer+0x1ca>
}
/* Check for the Timeout */
if (Timeout != HAL_MAX_DELAY)
8011f5e: 683b ldr r3, [r7, #0]
8011f60: f1b3 3fff cmp.w r3, #4294967295
8011f64: d01a beq.n 8011f9c <HAL_DMA2D_PollForTransfer+0x1a2>
{
if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
8011f66: f7ff fb39 bl 80115dc <HAL_GetTick>
8011f6a: 4602 mov r2, r0
8011f6c: 697b ldr r3, [r7, #20]
8011f6e: 1ad2 subs r2, r2, r3
8011f70: 683b ldr r3, [r7, #0]
8011f72: 429a cmp r2, r3
8011f74: d802 bhi.n 8011f7c <HAL_DMA2D_PollForTransfer+0x182>
8011f76: 683b ldr r3, [r7, #0]
8011f78: 2b00 cmp r3, #0
8011f7a: d10f bne.n 8011f9c <HAL_DMA2D_PollForTransfer+0x1a2>
{
/* Update error code */
hdma2d->ErrorCode |= HAL_DMA2D_ERROR_TIMEOUT;
8011f7c: 687b ldr r3, [r7, #4]
8011f7e: 6d5b ldr r3, [r3, #84] ; 0x54
8011f80: f043 0220 orr.w r2, r3, #32
8011f84: 687b ldr r3, [r7, #4]
8011f86: 655a str r2, [r3, #84] ; 0x54
/* Change the DMA2D state */
hdma2d->State = HAL_DMA2D_STATE_TIMEOUT;
8011f88: 687b ldr r3, [r7, #4]
8011f8a: 2203 movs r2, #3
8011f8c: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
8011f90: 687b ldr r3, [r7, #4]
8011f92: 2200 movs r2, #0
8011f94: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_TIMEOUT;
8011f98: 2303 movs r3, #3
8011f9a: e013 b.n 8011fc4 <HAL_DMA2D_PollForTransfer+0x1ca>
while (__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_CTC) == 0U)
8011f9c: 687b ldr r3, [r7, #4]
8011f9e: 681b ldr r3, [r3, #0]
8011fa0: 685b ldr r3, [r3, #4]
8011fa2: f003 0310 and.w r3, r3, #16
8011fa6: 2b00 cmp r3, #0
8011fa8: d0a1 beq.n 8011eee <HAL_DMA2D_PollForTransfer+0xf4>
}
}
}
/* Clear the transfer complete and CLUT loading flags */
__HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_TC | DMA2D_FLAG_CTC);
8011faa: 687b ldr r3, [r7, #4]
8011fac: 681b ldr r3, [r3, #0]
8011fae: 2212 movs r2, #18
8011fb0: 609a str r2, [r3, #8]
/* Change DMA2D state */
hdma2d->State = HAL_DMA2D_STATE_READY;
8011fb2: 687b ldr r3, [r7, #4]
8011fb4: 2201 movs r2, #1
8011fb6: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
8011fba: 687b ldr r3, [r7, #4]
8011fbc: 2200 movs r2, #0
8011fbe: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_OK;
8011fc2: 2300 movs r3, #0
}
8011fc4: 4618 mov r0, r3
8011fc6: 3718 adds r7, #24
8011fc8: 46bd mov sp, r7
8011fca: bd80 pop {r7, pc}
08011fcc <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)
{
8011fcc: b480 push {r7}
8011fce: b087 sub sp, #28
8011fd0: af00 add r7, sp, #0
8011fd2: 6078 str r0, [r7, #4]
8011fd4: 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)
8011fd6: 687b ldr r3, [r7, #4]
8011fd8: 685b ldr r3, [r3, #4]
8011fda: 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);
8011fde: 687b ldr r3, [r7, #4]
8011fe0: f893 3050 ldrb.w r3, [r3, #80] ; 0x50
8011fe4: 2b01 cmp r3, #1
8011fe6: d101 bne.n 8011fec <HAL_DMA2D_ConfigLayer+0x20>
8011fe8: 2302 movs r3, #2
8011fea: e082 b.n 80120f2 <HAL_DMA2D_ConfigLayer+0x126>
8011fec: 687b ldr r3, [r7, #4]
8011fee: 2201 movs r2, #1
8011ff0: f883 2050 strb.w r2, [r3, #80] ; 0x50
/* Change DMA2D peripheral state */
hdma2d->State = HAL_DMA2D_STATE_BUSY;
8011ff4: 687b ldr r3, [r7, #4]
8011ff6: 2202 movs r2, #2
8011ff8: f883 2051 strb.w r2, [r3, #81] ; 0x51
pLayerCfg = &hdma2d->LayerCfg[LayerIdx];
8011ffc: 683a ldr r2, [r7, #0]
8011ffe: 4613 mov r3, r2
8012000: 005b lsls r3, r3, #1
8012002: 4413 add r3, r2
8012004: 00db lsls r3, r3, #3
8012006: 3320 adds r3, #32
8012008: 687a ldr r2, [r7, #4]
801200a: 4413 add r3, r2
801200c: 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) | \
801200e: 693b ldr r3, [r7, #16]
8012010: 685a ldr r2, [r3, #4]
8012012: 693b ldr r3, [r7, #16]
8012014: 689b ldr r3, [r3, #8]
8012016: 041b lsls r3, r3, #16
8012018: 431a orrs r2, r3
(pLayerCfg->AlphaInverted << DMA2D_BGPFCCR_AI_Pos) | (pLayerCfg->RedBlueSwap << DMA2D_BGPFCCR_RBS_Pos);
801201a: 693b ldr r3, [r7, #16]
801201c: 691b ldr r3, [r3, #16]
801201e: 051b lsls r3, r3, #20
regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos) | \
8012020: 431a orrs r2, r3
(pLayerCfg->AlphaInverted << DMA2D_BGPFCCR_AI_Pos) | (pLayerCfg->RedBlueSwap << DMA2D_BGPFCCR_RBS_Pos);
8012022: 693b ldr r3, [r7, #16]
8012024: 695b ldr r3, [r3, #20]
8012026: 055b lsls r3, r3, #21
regValue = pLayerCfg->InputColorMode | (pLayerCfg->AlphaMode << DMA2D_BGPFCCR_AM_Pos) | \
8012028: 4313 orrs r3, r2
801202a: 617b str r3, [r7, #20]
regMask = (DMA2D_BGPFCCR_CM | DMA2D_BGPFCCR_AM | DMA2D_BGPFCCR_ALPHA | DMA2D_BGPFCCR_AI | DMA2D_BGPFCCR_RBS);
801202c: 4b34 ldr r3, [pc, #208] ; (8012100 <HAL_DMA2D_ConfigLayer+0x134>)
801202e: 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))
8012030: 693b ldr r3, [r7, #16]
8012032: 685b ldr r3, [r3, #4]
8012034: 2b0a cmp r3, #10
8012036: d003 beq.n 8012040 <HAL_DMA2D_ConfigLayer+0x74>
8012038: 693b ldr r3, [r7, #16]
801203a: 685b ldr r3, [r3, #4]
801203c: 2b09 cmp r3, #9
801203e: d107 bne.n 8012050 <HAL_DMA2D_ConfigLayer+0x84>
{
regValue |= (pLayerCfg->InputAlpha & DMA2D_BGPFCCR_ALPHA);
8012040: 693b ldr r3, [r7, #16]
8012042: 68db ldr r3, [r3, #12]
8012044: f003 437f and.w r3, r3, #4278190080 ; 0xff000000
8012048: 697a ldr r2, [r7, #20]
801204a: 4313 orrs r3, r2
801204c: 617b str r3, [r7, #20]
801204e: e005 b.n 801205c <HAL_DMA2D_ConfigLayer+0x90>
}
else
{
regValue |= (pLayerCfg->InputAlpha << DMA2D_BGPFCCR_ALPHA_Pos);
8012050: 693b ldr r3, [r7, #16]
8012052: 68db ldr r3, [r3, #12]
8012054: 061b lsls r3, r3, #24
8012056: 697a ldr r2, [r7, #20]
8012058: 4313 orrs r3, r2
801205a: 617b str r3, [r7, #20]
}
/* Configure the background DMA2D layer */
if (LayerIdx == DMA2D_BACKGROUND_LAYER)
801205c: 683b ldr r3, [r7, #0]
801205e: 2b00 cmp r3, #0
8012060: d11f bne.n 80120a2 <HAL_DMA2D_ConfigLayer+0xd6>
{
/* Write DMA2D BGPFCCR register */
MODIFY_REG(hdma2d->Instance->BGPFCCR, regMask, regValue);
8012062: 687b ldr r3, [r7, #4]
8012064: 681b ldr r3, [r3, #0]
8012066: 687a ldr r2, [r7, #4]
8012068: 6812 ldr r2, [r2, #0]
801206a: 6a51 ldr r1, [r2, #36] ; 0x24
801206c: 68fa ldr r2, [r7, #12]
801206e: 43d2 mvns r2, r2
8012070: 4011 ands r1, r2
8012072: 697a ldr r2, [r7, #20]
8012074: 430a orrs r2, r1
8012076: 625a str r2, [r3, #36] ; 0x24
/* DMA2D BGOR register configuration -------------------------------------*/
WRITE_REG(hdma2d->Instance->BGOR, pLayerCfg->InputOffset);
8012078: 687b ldr r3, [r7, #4]
801207a: 681b ldr r3, [r3, #0]
801207c: 693a ldr r2, [r7, #16]
801207e: 6812 ldr r2, [r2, #0]
8012080: 619a str r2, [r3, #24]
/* DMA2D BGCOLR register configuration -------------------------------------*/
if ((pLayerCfg->InputColorMode == DMA2D_INPUT_A4) || (pLayerCfg->InputColorMode == DMA2D_INPUT_A8))
8012082: 693b ldr r3, [r7, #16]
8012084: 685b ldr r3, [r3, #4]
8012086: 2b0a cmp r3, #10
8012088: d003 beq.n 8012092 <HAL_DMA2D_ConfigLayer+0xc6>
801208a: 693b ldr r3, [r7, #16]
801208c: 685b ldr r3, [r3, #4]
801208e: 2b09 cmp r3, #9
8012090: d126 bne.n 80120e0 <HAL_DMA2D_ConfigLayer+0x114>
{
WRITE_REG(hdma2d->Instance->BGCOLR, pLayerCfg->InputAlpha & (DMA2D_BGCOLR_BLUE | DMA2D_BGCOLR_GREEN | \
8012092: 687b ldr r3, [r7, #4]
8012094: 681b ldr r3, [r3, #0]
8012096: 693a ldr r2, [r7, #16]
8012098: 68d2 ldr r2, [r2, #12]
801209a: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000
801209e: 629a str r2, [r3, #40] ; 0x28
80120a0: e01e b.n 80120e0 <HAL_DMA2D_ConfigLayer+0x114>
else
{
/* Write DMA2D FGPFCCR register */
MODIFY_REG(hdma2d->Instance->FGPFCCR, regMask, regValue);
80120a2: 687b ldr r3, [r7, #4]
80120a4: 681b ldr r3, [r3, #0]
80120a6: 687a ldr r2, [r7, #4]
80120a8: 6812 ldr r2, [r2, #0]
80120aa: 69d1 ldr r1, [r2, #28]
80120ac: 68fa ldr r2, [r7, #12]
80120ae: 43d2 mvns r2, r2
80120b0: 4011 ands r1, r2
80120b2: 697a ldr r2, [r7, #20]
80120b4: 430a orrs r2, r1
80120b6: 61da str r2, [r3, #28]
/* DMA2D FGOR register configuration -------------------------------------*/
WRITE_REG(hdma2d->Instance->FGOR, pLayerCfg->InputOffset);
80120b8: 687b ldr r3, [r7, #4]
80120ba: 681b ldr r3, [r3, #0]
80120bc: 693a ldr r2, [r7, #16]
80120be: 6812 ldr r2, [r2, #0]
80120c0: 611a str r2, [r3, #16]
/* DMA2D FGCOLR register configuration -------------------------------------*/
if ((pLayerCfg->InputColorMode == DMA2D_INPUT_A4) || (pLayerCfg->InputColorMode == DMA2D_INPUT_A8))
80120c2: 693b ldr r3, [r7, #16]
80120c4: 685b ldr r3, [r3, #4]
80120c6: 2b0a cmp r3, #10
80120c8: d003 beq.n 80120d2 <HAL_DMA2D_ConfigLayer+0x106>
80120ca: 693b ldr r3, [r7, #16]
80120cc: 685b ldr r3, [r3, #4]
80120ce: 2b09 cmp r3, #9
80120d0: d106 bne.n 80120e0 <HAL_DMA2D_ConfigLayer+0x114>
{
WRITE_REG(hdma2d->Instance->FGCOLR, pLayerCfg->InputAlpha & (DMA2D_FGCOLR_BLUE | DMA2D_FGCOLR_GREEN | \
80120d2: 687b ldr r3, [r7, #4]
80120d4: 681b ldr r3, [r3, #0]
80120d6: 693a ldr r2, [r7, #16]
80120d8: 68d2 ldr r2, [r2, #12]
80120da: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000
80120de: 621a str r2, [r3, #32]
DMA2D_FGCOLR_RED));
}
}
/* Initialize the DMA2D state*/
hdma2d->State = HAL_DMA2D_STATE_READY;
80120e0: 687b ldr r3, [r7, #4]
80120e2: 2201 movs r2, #1
80120e4: f883 2051 strb.w r2, [r3, #81] ; 0x51
/* Process unlocked */
__HAL_UNLOCK(hdma2d);
80120e8: 687b ldr r3, [r7, #4]
80120ea: 2200 movs r2, #0
80120ec: f883 2050 strb.w r2, [r3, #80] ; 0x50
return HAL_OK;
80120f0: 2300 movs r3, #0
}
80120f2: 4618 mov r0, r3
80120f4: 371c adds r7, #28
80120f6: 46bd mov sp, r7
80120f8: f85d 7b04 ldr.w r7, [sp], #4
80120fc: 4770 bx lr
80120fe: bf00 nop
8012100: ff33000f .word 0xff33000f
08012104 <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)
{
8012104: b480 push {r7}
8012106: b08b sub sp, #44 ; 0x2c
8012108: af00 add r7, sp, #0
801210a: 60f8 str r0, [r7, #12]
801210c: 60b9 str r1, [r7, #8]
801210e: 607a str r2, [r7, #4]
8012110: 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)));
8012112: 68fb ldr r3, [r7, #12]
8012114: 681b ldr r3, [r3, #0]
8012116: 68fa ldr r2, [r7, #12]
8012118: 6812 ldr r2, [r2, #0]
801211a: 6c52 ldr r2, [r2, #68] ; 0x44
801211c: f002 4140 and.w r1, r2, #3221225472 ; 0xc0000000
8012120: 683a ldr r2, [r7, #0]
8012122: 0410 lsls r0, r2, #16
8012124: 6b3a ldr r2, [r7, #48] ; 0x30
8012126: 4302 orrs r2, r0
8012128: 430a orrs r2, r1
801212a: 645a str r2, [r3, #68] ; 0x44
/* Configure DMA2D destination address */
WRITE_REG(hdma2d->Instance->OMAR, DstAddress);
801212c: 68fb ldr r3, [r7, #12]
801212e: 681b ldr r3, [r3, #0]
8012130: 687a ldr r2, [r7, #4]
8012132: 63da str r2, [r3, #60] ; 0x3c
/* Register to memory DMA2D mode selected */
if (hdma2d->Init.Mode == DMA2D_R2M)
8012134: 68fb ldr r3, [r7, #12]
8012136: 685b ldr r3, [r3, #4]
8012138: f5b3 3f40 cmp.w r3, #196608 ; 0x30000
801213c: d174 bne.n 8012228 <DMA2D_SetConfig+0x124>
{
tmp1 = pdata & DMA2D_OCOLR_ALPHA_1;
801213e: 68bb ldr r3, [r7, #8]
8012140: f003 437f and.w r3, r3, #4278190080 ; 0xff000000
8012144: 623b str r3, [r7, #32]
tmp2 = pdata & DMA2D_OCOLR_RED_1;
8012146: 68bb ldr r3, [r7, #8]
8012148: f403 037f and.w r3, r3, #16711680 ; 0xff0000
801214c: 61fb str r3, [r7, #28]
tmp3 = pdata & DMA2D_OCOLR_GREEN_1;
801214e: 68bb ldr r3, [r7, #8]
8012150: f403 437f and.w r3, r3, #65280 ; 0xff00
8012154: 61bb str r3, [r7, #24]
tmp4 = pdata & DMA2D_OCOLR_BLUE_1;
8012156: 68bb ldr r3, [r7, #8]
8012158: b2db uxtb r3, r3
801215a: 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)
801215c: 68fb ldr r3, [r7, #12]
801215e: 689b ldr r3, [r3, #8]
8012160: 2b00 cmp r3, #0
8012162: d108 bne.n 8012176 <DMA2D_SetConfig+0x72>
{
tmp = (tmp3 | tmp2 | tmp1 | tmp4);
8012164: 69ba ldr r2, [r7, #24]
8012166: 69fb ldr r3, [r7, #28]
8012168: 431a orrs r2, r3
801216a: 6a3b ldr r3, [r7, #32]
801216c: 431a orrs r2, r3
801216e: 697b ldr r3, [r7, #20]
8012170: 4313 orrs r3, r2
8012172: 627b str r3, [r7, #36] ; 0x24
8012174: e053 b.n 801221e <DMA2D_SetConfig+0x11a>
}
else if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_RGB888)
8012176: 68fb ldr r3, [r7, #12]
8012178: 689b ldr r3, [r3, #8]
801217a: 2b01 cmp r3, #1
801217c: d106 bne.n 801218c <DMA2D_SetConfig+0x88>
{
tmp = (tmp3 | tmp2 | tmp4);
801217e: 69ba ldr r2, [r7, #24]
8012180: 69fb ldr r3, [r7, #28]
8012182: 431a orrs r2, r3
8012184: 697b ldr r3, [r7, #20]
8012186: 4313 orrs r3, r2
8012188: 627b str r3, [r7, #36] ; 0x24
801218a: e048 b.n 801221e <DMA2D_SetConfig+0x11a>
}
else if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_RGB565)
801218c: 68fb ldr r3, [r7, #12]
801218e: 689b ldr r3, [r3, #8]
8012190: 2b02 cmp r3, #2
8012192: d111 bne.n 80121b8 <DMA2D_SetConfig+0xb4>
{
tmp2 = (tmp2 >> 19U);
8012194: 69fb ldr r3, [r7, #28]
8012196: 0cdb lsrs r3, r3, #19
8012198: 61fb str r3, [r7, #28]
tmp3 = (tmp3 >> 10U);
801219a: 69bb ldr r3, [r7, #24]
801219c: 0a9b lsrs r3, r3, #10
801219e: 61bb str r3, [r7, #24]
tmp4 = (tmp4 >> 3U);
80121a0: 697b ldr r3, [r7, #20]
80121a2: 08db lsrs r3, r3, #3
80121a4: 617b str r3, [r7, #20]
tmp = ((tmp3 << 5U) | (tmp2 << 11U) | tmp4);
80121a6: 69bb ldr r3, [r7, #24]
80121a8: 015a lsls r2, r3, #5
80121aa: 69fb ldr r3, [r7, #28]
80121ac: 02db lsls r3, r3, #11
80121ae: 431a orrs r2, r3
80121b0: 697b ldr r3, [r7, #20]
80121b2: 4313 orrs r3, r2
80121b4: 627b str r3, [r7, #36] ; 0x24
80121b6: e032 b.n 801221e <DMA2D_SetConfig+0x11a>
}
else if (hdma2d->Init.ColorMode == DMA2D_OUTPUT_ARGB1555)
80121b8: 68fb ldr r3, [r7, #12]
80121ba: 689b ldr r3, [r3, #8]
80121bc: 2b03 cmp r3, #3
80121be: d117 bne.n 80121f0 <DMA2D_SetConfig+0xec>
{
tmp1 = (tmp1 >> 31U);
80121c0: 6a3b ldr r3, [r7, #32]
80121c2: 0fdb lsrs r3, r3, #31
80121c4: 623b str r3, [r7, #32]
tmp2 = (tmp2 >> 19U);
80121c6: 69fb ldr r3, [r7, #28]
80121c8: 0cdb lsrs r3, r3, #19
80121ca: 61fb str r3, [r7, #28]
tmp3 = (tmp3 >> 11U);
80121cc: 69bb ldr r3, [r7, #24]
80121ce: 0adb lsrs r3, r3, #11
80121d0: 61bb str r3, [r7, #24]
tmp4 = (tmp4 >> 3U);
80121d2: 697b ldr r3, [r7, #20]
80121d4: 08db lsrs r3, r3, #3
80121d6: 617b str r3, [r7, #20]
tmp = ((tmp3 << 5U) | (tmp2 << 10U) | (tmp1 << 15U) | tmp4);
80121d8: 69bb ldr r3, [r7, #24]
80121da: 015a lsls r2, r3, #5
80121dc: 69fb ldr r3, [r7, #28]
80121de: 029b lsls r3, r3, #10
80121e0: 431a orrs r2, r3
80121e2: 6a3b ldr r3, [r7, #32]
80121e4: 03db lsls r3, r3, #15
80121e6: 431a orrs r2, r3
80121e8: 697b ldr r3, [r7, #20]
80121ea: 4313 orrs r3, r2
80121ec: 627b str r3, [r7, #36] ; 0x24
80121ee: e016 b.n 801221e <DMA2D_SetConfig+0x11a>
}
else /* Dhdma2d->Init.ColorMode = DMA2D_OUTPUT_ARGB4444 */
{
tmp1 = (tmp1 >> 28U);
80121f0: 6a3b ldr r3, [r7, #32]
80121f2: 0f1b lsrs r3, r3, #28
80121f4: 623b str r3, [r7, #32]
tmp2 = (tmp2 >> 20U);
80121f6: 69fb ldr r3, [r7, #28]
80121f8: 0d1b lsrs r3, r3, #20
80121fa: 61fb str r3, [r7, #28]
tmp3 = (tmp3 >> 12U);
80121fc: 69bb ldr r3, [r7, #24]
80121fe: 0b1b lsrs r3, r3, #12
8012200: 61bb str r3, [r7, #24]
tmp4 = (tmp4 >> 4U);
8012202: 697b ldr r3, [r7, #20]
8012204: 091b lsrs r3, r3, #4
8012206: 617b str r3, [r7, #20]
tmp = ((tmp3 << 4U) | (tmp2 << 8U) | (tmp1 << 12U) | tmp4);
8012208: 69bb ldr r3, [r7, #24]
801220a: 011a lsls r2, r3, #4
801220c: 69fb ldr r3, [r7, #28]
801220e: 021b lsls r3, r3, #8
8012210: 431a orrs r2, r3
8012212: 6a3b ldr r3, [r7, #32]
8012214: 031b lsls r3, r3, #12
8012216: 431a orrs r2, r3
8012218: 697b ldr r3, [r7, #20]
801221a: 4313 orrs r3, r2
801221c: 627b str r3, [r7, #36] ; 0x24
}
/* Write to DMA2D OCOLR register */
WRITE_REG(hdma2d->Instance->OCOLR, tmp);
801221e: 68fb ldr r3, [r7, #12]
8012220: 681b ldr r3, [r3, #0]
8012222: 6a7a ldr r2, [r7, #36] ; 0x24
8012224: 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);
}
}
8012226: e003 b.n 8012230 <DMA2D_SetConfig+0x12c>
WRITE_REG(hdma2d->Instance->FGMAR, pdata);
8012228: 68fb ldr r3, [r7, #12]
801222a: 681b ldr r3, [r3, #0]
801222c: 68ba ldr r2, [r7, #8]
801222e: 60da str r2, [r3, #12]
}
8012230: bf00 nop
8012232: 372c adds r7, #44 ; 0x2c
8012234: 46bd mov sp, r7
8012236: f85d 7b04 ldr.w r7, [sp], #4
801223a: 4770 bx lr
0801223c <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)
{
801223c: b580 push {r7, lr}
801223e: b086 sub sp, #24
8012240: af00 add r7, sp, #0
8012242: 60f8 str r0, [r7, #12]
8012244: 60b9 str r1, [r7, #8]
8012246: e9c7 2300 strd r2, r3, [r7]
HAL_StatusTypeDef status = HAL_ERROR;
801224a: 2301 movs r3, #1
801224c: 75fb strb r3, [r7, #23]
/* Process Locked */
__HAL_LOCK(&pFlash);
801224e: 4b27 ldr r3, [pc, #156] ; (80122ec <HAL_FLASH_Program+0xb0>)
8012250: 7d1b ldrb r3, [r3, #20]
8012252: 2b01 cmp r3, #1
8012254: d101 bne.n 801225a <HAL_FLASH_Program+0x1e>
8012256: 2302 movs r3, #2
8012258: e043 b.n 80122e2 <HAL_FLASH_Program+0xa6>
801225a: 4b24 ldr r3, [pc, #144] ; (80122ec <HAL_FLASH_Program+0xb0>)
801225c: 2201 movs r2, #1
801225e: 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);
8012260: f24c 3050 movw r0, #50000 ; 0xc350
8012264: f000 f878 bl 8012358 <FLASH_WaitForLastOperation>
8012268: 4603 mov r3, r0
801226a: 75fb strb r3, [r7, #23]
if(status == HAL_OK)
801226c: 7dfb ldrb r3, [r7, #23]
801226e: 2b00 cmp r3, #0
8012270: d133 bne.n 80122da <HAL_FLASH_Program+0x9e>
{
switch(TypeProgram)
8012272: 68fb ldr r3, [r7, #12]
8012274: 2b03 cmp r3, #3
8012276: d823 bhi.n 80122c0 <HAL_FLASH_Program+0x84>
8012278: a201 add r2, pc, #4 ; (adr r2, 8012280 <HAL_FLASH_Program+0x44>)
801227a: f852 f023 ldr.w pc, [r2, r3, lsl #2]
801227e: bf00 nop
8012280: 08012291 .word 0x08012291
8012284: 0801229d .word 0x0801229d
8012288: 080122a9 .word 0x080122a9
801228c: 080122b5 .word 0x080122b5
{
case FLASH_TYPEPROGRAM_BYTE :
{
/*Program byte (8-bit) at a specified address.*/
FLASH_Program_Byte(Address, (uint8_t) Data);
8012290: 783b ldrb r3, [r7, #0]
8012292: 4619 mov r1, r3
8012294: 68b8 ldr r0, [r7, #8]
8012296: f000 f919 bl 80124cc <FLASH_Program_Byte>
break;
801229a: e012 b.n 80122c2 <HAL_FLASH_Program+0x86>
}
case FLASH_TYPEPROGRAM_HALFWORD :
{
/*Program halfword (16-bit) at a specified address.*/
FLASH_Program_HalfWord(Address, (uint16_t) Data);
801229c: 883b ldrh r3, [r7, #0]
801229e: 4619 mov r1, r3
80122a0: 68b8 ldr r0, [r7, #8]
80122a2: f000 f8ed bl 8012480 <FLASH_Program_HalfWord>
break;
80122a6: e00c b.n 80122c2 <HAL_FLASH_Program+0x86>
}
case FLASH_TYPEPROGRAM_WORD :
{
/*Program word (32-bit) at a specified address.*/
FLASH_Program_Word(Address, (uint32_t) Data);
80122a8: 683b ldr r3, [r7, #0]
80122aa: 4619 mov r1, r3
80122ac: 68b8 ldr r0, [r7, #8]
80122ae: f000 f8c3 bl 8012438 <FLASH_Program_Word>
break;
80122b2: e006 b.n 80122c2 <HAL_FLASH_Program+0x86>
}
case FLASH_TYPEPROGRAM_DOUBLEWORD :
{
/*Program double word (64-bit) at a specified address.*/
FLASH_Program_DoubleWord(Address, Data);
80122b4: e9d7 2300 ldrd r2, r3, [r7]
80122b8: 68b8 ldr r0, [r7, #8]
80122ba: f000 f88d bl 80123d8 <FLASH_Program_DoubleWord>
break;
80122be: e000 b.n 80122c2 <HAL_FLASH_Program+0x86>
}
default :
break;
80122c0: bf00 nop
}
/* Wait for last operation to be completed */
status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
80122c2: f24c 3050 movw r0, #50000 ; 0xc350
80122c6: f000 f847 bl 8012358 <FLASH_WaitForLastOperation>
80122ca: 4603 mov r3, r0
80122cc: 75fb strb r3, [r7, #23]
/* If the program operation is completed, disable the PG Bit */
FLASH->CR &= (~FLASH_CR_PG);
80122ce: 4a08 ldr r2, [pc, #32] ; (80122f0 <HAL_FLASH_Program+0xb4>)
80122d0: 4b07 ldr r3, [pc, #28] ; (80122f0 <HAL_FLASH_Program+0xb4>)
80122d2: 691b ldr r3, [r3, #16]
80122d4: f023 0301 bic.w r3, r3, #1
80122d8: 6113 str r3, [r2, #16]
}
/* Process Unlocked */
__HAL_UNLOCK(&pFlash);
80122da: 4b04 ldr r3, [pc, #16] ; (80122ec <HAL_FLASH_Program+0xb0>)
80122dc: 2200 movs r2, #0
80122de: 751a strb r2, [r3, #20]
return status;
80122e0: 7dfb ldrb r3, [r7, #23]
}
80122e2: 4618 mov r0, r3
80122e4: 3718 adds r7, #24
80122e6: 46bd mov sp, r7
80122e8: bd80 pop {r7, pc}
80122ea: bf00 nop
80122ec: 2006c6c8 .word 0x2006c6c8
80122f0: 40023c00 .word 0x40023c00
080122f4 <HAL_FLASH_Unlock>:
/**
* @brief Unlock the FLASH control register access
* @retval HAL Status
*/
HAL_StatusTypeDef HAL_FLASH_Unlock(void)
{
80122f4: b480 push {r7}
80122f6: b083 sub sp, #12
80122f8: af00 add r7, sp, #0
HAL_StatusTypeDef status = HAL_OK;
80122fa: 2300 movs r3, #0
80122fc: 71fb strb r3, [r7, #7]
if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
80122fe: 4b0b ldr r3, [pc, #44] ; (801232c <HAL_FLASH_Unlock+0x38>)
8012300: 691b ldr r3, [r3, #16]
8012302: 2b00 cmp r3, #0
8012304: da0b bge.n 801231e <HAL_FLASH_Unlock+0x2a>
{
/* Authorize the FLASH Registers access */
WRITE_REG(FLASH->KEYR, FLASH_KEY1);
8012306: 4b09 ldr r3, [pc, #36] ; (801232c <HAL_FLASH_Unlock+0x38>)
8012308: 4a09 ldr r2, [pc, #36] ; (8012330 <HAL_FLASH_Unlock+0x3c>)
801230a: 605a str r2, [r3, #4]
WRITE_REG(FLASH->KEYR, FLASH_KEY2);
801230c: 4b07 ldr r3, [pc, #28] ; (801232c <HAL_FLASH_Unlock+0x38>)
801230e: 4a09 ldr r2, [pc, #36] ; (8012334 <HAL_FLASH_Unlock+0x40>)
8012310: 605a str r2, [r3, #4]
/* Verify Flash is unlocked */
if(READ_BIT(FLASH->CR, FLASH_CR_LOCK) != RESET)
8012312: 4b06 ldr r3, [pc, #24] ; (801232c <HAL_FLASH_Unlock+0x38>)
8012314: 691b ldr r3, [r3, #16]
8012316: 2b00 cmp r3, #0
8012318: da01 bge.n 801231e <HAL_FLASH_Unlock+0x2a>
{
status = HAL_ERROR;
801231a: 2301 movs r3, #1
801231c: 71fb strb r3, [r7, #7]
}
}
return status;
801231e: 79fb ldrb r3, [r7, #7]
}
8012320: 4618 mov r0, r3
8012322: 370c adds r7, #12
8012324: 46bd mov sp, r7
8012326: f85d 7b04 ldr.w r7, [sp], #4
801232a: 4770 bx lr
801232c: 40023c00 .word 0x40023c00
8012330: 45670123 .word 0x45670123
8012334: cdef89ab .word 0xcdef89ab
08012338 <HAL_FLASH_Lock>:
/**
* @brief Locks the FLASH control register access
* @retval HAL Status
*/
HAL_StatusTypeDef HAL_FLASH_Lock(void)
{
8012338: b480 push {r7}
801233a: af00 add r7, sp, #0
/* Set the LOCK Bit to lock the FLASH Registers access */
FLASH->CR |= FLASH_CR_LOCK;
801233c: 4a05 ldr r2, [pc, #20] ; (8012354 <HAL_FLASH_Lock+0x1c>)
801233e: 4b05 ldr r3, [pc, #20] ; (8012354 <HAL_FLASH_Lock+0x1c>)
8012340: 691b ldr r3, [r3, #16]
8012342: f043 4300 orr.w r3, r3, #2147483648 ; 0x80000000
8012346: 6113 str r3, [r2, #16]
return HAL_OK;
8012348: 2300 movs r3, #0
}
801234a: 4618 mov r0, r3
801234c: 46bd mov sp, r7
801234e: f85d 7b04 ldr.w r7, [sp], #4
8012352: 4770 bx lr
8012354: 40023c00 .word 0x40023c00
08012358 <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)
{
8012358: b580 push {r7, lr}
801235a: b084 sub sp, #16
801235c: af00 add r7, sp, #0
801235e: 6078 str r0, [r7, #4]
uint32_t tickstart = 0;
8012360: 2300 movs r3, #0
8012362: 60fb str r3, [r7, #12]
/* Clear Error Code */
pFlash.ErrorCode = HAL_FLASH_ERROR_NONE;
8012364: 4b1a ldr r3, [pc, #104] ; (80123d0 <FLASH_WaitForLastOperation+0x78>)
8012366: 2200 movs r2, #0
8012368: 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();
801236a: f7ff f937 bl 80115dc <HAL_GetTick>
801236e: 60f8 str r0, [r7, #12]
while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY) != RESET)
8012370: e010 b.n 8012394 <FLASH_WaitForLastOperation+0x3c>
{
if(Timeout != HAL_MAX_DELAY)
8012372: 687b ldr r3, [r7, #4]
8012374: f1b3 3fff cmp.w r3, #4294967295
8012378: d00c beq.n 8012394 <FLASH_WaitForLastOperation+0x3c>
{
if((Timeout == 0)||((HAL_GetTick() - tickstart ) > Timeout))
801237a: 687b ldr r3, [r7, #4]
801237c: 2b00 cmp r3, #0
801237e: d007 beq.n 8012390 <FLASH_WaitForLastOperation+0x38>
8012380: f7ff f92c bl 80115dc <HAL_GetTick>
8012384: 4602 mov r2, r0
8012386: 68fb ldr r3, [r7, #12]
8012388: 1ad2 subs r2, r2, r3
801238a: 687b ldr r3, [r7, #4]
801238c: 429a cmp r2, r3
801238e: d901 bls.n 8012394 <FLASH_WaitForLastOperation+0x3c>
{
return HAL_TIMEOUT;
8012390: 2303 movs r3, #3
8012392: e019 b.n 80123c8 <FLASH_WaitForLastOperation+0x70>
while(__HAL_FLASH_GET_FLAG(FLASH_FLAG_BSY) != RESET)
8012394: 4b0f ldr r3, [pc, #60] ; (80123d4 <FLASH_WaitForLastOperation+0x7c>)
8012396: 68db ldr r3, [r3, #12]
8012398: f403 3380 and.w r3, r3, #65536 ; 0x10000
801239c: 2b00 cmp r3, #0
801239e: d1e8 bne.n 8012372 <FLASH_WaitForLastOperation+0x1a>
}
}
}
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_ALL_ERRORS) != RESET)
80123a0: 4b0c ldr r3, [pc, #48] ; (80123d4 <FLASH_WaitForLastOperation+0x7c>)
80123a2: 68db ldr r3, [r3, #12]
80123a4: f003 03f2 and.w r3, r3, #242 ; 0xf2
80123a8: 2b00 cmp r3, #0
80123aa: d003 beq.n 80123b4 <FLASH_WaitForLastOperation+0x5c>
{
/*Save the error code*/
FLASH_SetErrorCode();
80123ac: f000 f8b2 bl 8012514 <FLASH_SetErrorCode>
return HAL_ERROR;
80123b0: 2301 movs r3, #1
80123b2: e009 b.n 80123c8 <FLASH_WaitForLastOperation+0x70>
}
/* Check FLASH End of Operation flag */
if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP) != RESET)
80123b4: 4b07 ldr r3, [pc, #28] ; (80123d4 <FLASH_WaitForLastOperation+0x7c>)
80123b6: 68db ldr r3, [r3, #12]
80123b8: f003 0301 and.w r3, r3, #1
80123bc: 2b00 cmp r3, #0
80123be: d002 beq.n 80123c6 <FLASH_WaitForLastOperation+0x6e>
{
/* Clear FLASH End of Operation pending bit */
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
80123c0: 4b04 ldr r3, [pc, #16] ; (80123d4 <FLASH_WaitForLastOperation+0x7c>)
80123c2: 2201 movs r2, #1
80123c4: 60da str r2, [r3, #12]
}
/* If there is an error flag set */
return HAL_OK;
80123c6: 2300 movs r3, #0
}
80123c8: 4618 mov r0, r3
80123ca: 3710 adds r7, #16
80123cc: 46bd mov sp, r7
80123ce: bd80 pop {r7, pc}
80123d0: 2006c6c8 .word 0x2006c6c8
80123d4: 40023c00 .word 0x40023c00
080123d8 <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)
{
80123d8: b4f0 push {r4, r5, r6, r7}
80123da: b084 sub sp, #16
80123dc: af00 add r7, sp, #0
80123de: 60f8 str r0, [r7, #12]
80123e0: 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;
80123e4: 4a13 ldr r2, [pc, #76] ; (8012434 <FLASH_Program_DoubleWord+0x5c>)
80123e6: 4b13 ldr r3, [pc, #76] ; (8012434 <FLASH_Program_DoubleWord+0x5c>)
80123e8: 691b ldr r3, [r3, #16]
80123ea: f423 7340 bic.w r3, r3, #768 ; 0x300
80123ee: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_PSIZE_DOUBLE_WORD;
80123f0: 4a10 ldr r2, [pc, #64] ; (8012434 <FLASH_Program_DoubleWord+0x5c>)
80123f2: 4b10 ldr r3, [pc, #64] ; (8012434 <FLASH_Program_DoubleWord+0x5c>)
80123f4: 691b ldr r3, [r3, #16]
80123f6: f443 7340 orr.w r3, r3, #768 ; 0x300
80123fa: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_CR_PG;
80123fc: 4a0d ldr r2, [pc, #52] ; (8012434 <FLASH_Program_DoubleWord+0x5c>)
80123fe: 4b0d ldr r3, [pc, #52] ; (8012434 <FLASH_Program_DoubleWord+0x5c>)
8012400: 691b ldr r3, [r3, #16]
8012402: f043 0301 orr.w r3, r3, #1
8012406: 6113 str r3, [r2, #16]
/* Program first word */
*(__IO uint32_t*)Address = (uint32_t)Data;
8012408: 68fb ldr r3, [r7, #12]
801240a: 683a ldr r2, [r7, #0]
801240c: 601a str r2, [r3, #0]
801240e: 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);
8012412: 68fb ldr r3, [r7, #12]
8012414: 3304 adds r3, #4
8012416: 461a mov r2, r3
8012418: e897 0018 ldmia.w r7, {r3, r4}
801241c: 0025 movs r5, r4
801241e: 2600 movs r6, #0
8012420: 462b mov r3, r5
8012422: 6013 str r3, [r2, #0]
__ASM volatile ("dsb 0xF":::"memory");
8012424: 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();
}
8012428: bf00 nop
801242a: 3710 adds r7, #16
801242c: 46bd mov sp, r7
801242e: bcf0 pop {r4, r5, r6, r7}
8012430: 4770 bx lr
8012432: bf00 nop
8012434: 40023c00 .word 0x40023c00
08012438 <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)
{
8012438: b480 push {r7}
801243a: b083 sub sp, #12
801243c: af00 add r7, sp, #0
801243e: 6078 str r0, [r7, #4]
8012440: 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;
8012442: 4a0e ldr r2, [pc, #56] ; (801247c <FLASH_Program_Word+0x44>)
8012444: 4b0d ldr r3, [pc, #52] ; (801247c <FLASH_Program_Word+0x44>)
8012446: 691b ldr r3, [r3, #16]
8012448: f423 7340 bic.w r3, r3, #768 ; 0x300
801244c: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_PSIZE_WORD;
801244e: 4a0b ldr r2, [pc, #44] ; (801247c <FLASH_Program_Word+0x44>)
8012450: 4b0a ldr r3, [pc, #40] ; (801247c <FLASH_Program_Word+0x44>)
8012452: 691b ldr r3, [r3, #16]
8012454: f443 7300 orr.w r3, r3, #512 ; 0x200
8012458: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_CR_PG;
801245a: 4a08 ldr r2, [pc, #32] ; (801247c <FLASH_Program_Word+0x44>)
801245c: 4b07 ldr r3, [pc, #28] ; (801247c <FLASH_Program_Word+0x44>)
801245e: 691b ldr r3, [r3, #16]
8012460: f043 0301 orr.w r3, r3, #1
8012464: 6113 str r3, [r2, #16]
*(__IO uint32_t*)Address = Data;
8012466: 687b ldr r3, [r7, #4]
8012468: 683a ldr r2, [r7, #0]
801246a: 601a str r2, [r3, #0]
801246c: 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();
}
8012470: bf00 nop
8012472: 370c adds r7, #12
8012474: 46bd mov sp, r7
8012476: f85d 7b04 ldr.w r7, [sp], #4
801247a: 4770 bx lr
801247c: 40023c00 .word 0x40023c00
08012480 <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)
{
8012480: b480 push {r7}
8012482: b083 sub sp, #12
8012484: af00 add r7, sp, #0
8012486: 6078 str r0, [r7, #4]
8012488: 460b mov r3, r1
801248a: 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;
801248c: 4a0e ldr r2, [pc, #56] ; (80124c8 <FLASH_Program_HalfWord+0x48>)
801248e: 4b0e ldr r3, [pc, #56] ; (80124c8 <FLASH_Program_HalfWord+0x48>)
8012490: 691b ldr r3, [r3, #16]
8012492: f423 7340 bic.w r3, r3, #768 ; 0x300
8012496: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_PSIZE_HALF_WORD;
8012498: 4a0b ldr r2, [pc, #44] ; (80124c8 <FLASH_Program_HalfWord+0x48>)
801249a: 4b0b ldr r3, [pc, #44] ; (80124c8 <FLASH_Program_HalfWord+0x48>)
801249c: 691b ldr r3, [r3, #16]
801249e: f443 7380 orr.w r3, r3, #256 ; 0x100
80124a2: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_CR_PG;
80124a4: 4a08 ldr r2, [pc, #32] ; (80124c8 <FLASH_Program_HalfWord+0x48>)
80124a6: 4b08 ldr r3, [pc, #32] ; (80124c8 <FLASH_Program_HalfWord+0x48>)
80124a8: 691b ldr r3, [r3, #16]
80124aa: f043 0301 orr.w r3, r3, #1
80124ae: 6113 str r3, [r2, #16]
*(__IO uint16_t*)Address = Data;
80124b0: 687b ldr r3, [r7, #4]
80124b2: 887a ldrh r2, [r7, #2]
80124b4: 801a strh r2, [r3, #0]
80124b6: 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();
}
80124ba: bf00 nop
80124bc: 370c adds r7, #12
80124be: 46bd mov sp, r7
80124c0: f85d 7b04 ldr.w r7, [sp], #4
80124c4: 4770 bx lr
80124c6: bf00 nop
80124c8: 40023c00 .word 0x40023c00
080124cc <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)
{
80124cc: b480 push {r7}
80124ce: b083 sub sp, #12
80124d0: af00 add r7, sp, #0
80124d2: 6078 str r0, [r7, #4]
80124d4: 460b mov r3, r1
80124d6: 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;
80124d8: 4a0d ldr r2, [pc, #52] ; (8012510 <FLASH_Program_Byte+0x44>)
80124da: 4b0d ldr r3, [pc, #52] ; (8012510 <FLASH_Program_Byte+0x44>)
80124dc: 691b ldr r3, [r3, #16]
80124de: f423 7340 bic.w r3, r3, #768 ; 0x300
80124e2: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_PSIZE_BYTE;
80124e4: 4a0a ldr r2, [pc, #40] ; (8012510 <FLASH_Program_Byte+0x44>)
80124e6: 4b0a ldr r3, [pc, #40] ; (8012510 <FLASH_Program_Byte+0x44>)
80124e8: 691b ldr r3, [r3, #16]
80124ea: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_CR_PG;
80124ec: 4a08 ldr r2, [pc, #32] ; (8012510 <FLASH_Program_Byte+0x44>)
80124ee: 4b08 ldr r3, [pc, #32] ; (8012510 <FLASH_Program_Byte+0x44>)
80124f0: 691b ldr r3, [r3, #16]
80124f2: f043 0301 orr.w r3, r3, #1
80124f6: 6113 str r3, [r2, #16]
*(__IO uint8_t*)Address = Data;
80124f8: 687b ldr r3, [r7, #4]
80124fa: 78fa ldrb r2, [r7, #3]
80124fc: 701a strb r2, [r3, #0]
80124fe: 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();
}
8012502: bf00 nop
8012504: 370c adds r7, #12
8012506: 46bd mov sp, r7
8012508: f85d 7b04 ldr.w r7, [sp], #4
801250c: 4770 bx lr
801250e: bf00 nop
8012510: 40023c00 .word 0x40023c00
08012514 <FLASH_SetErrorCode>:
/**
* @brief Set the specific FLASH error flag.
* @retval None
*/
static void FLASH_SetErrorCode(void)
{
8012514: b480 push {r7}
8012516: af00 add r7, sp, #0
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_OPERR) != RESET)
8012518: 4b21 ldr r3, [pc, #132] ; (80125a0 <FLASH_SetErrorCode+0x8c>)
801251a: 68db ldr r3, [r3, #12]
801251c: f003 0302 and.w r3, r3, #2
8012520: 2b00 cmp r3, #0
8012522: d005 beq.n 8012530 <FLASH_SetErrorCode+0x1c>
{
pFlash.ErrorCode |= HAL_FLASH_ERROR_OPERATION;
8012524: 4b1f ldr r3, [pc, #124] ; (80125a4 <FLASH_SetErrorCode+0x90>)
8012526: 699b ldr r3, [r3, #24]
8012528: f043 0320 orr.w r3, r3, #32
801252c: 4a1d ldr r2, [pc, #116] ; (80125a4 <FLASH_SetErrorCode+0x90>)
801252e: 6193 str r3, [r2, #24]
}
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) != RESET)
8012530: 4b1b ldr r3, [pc, #108] ; (80125a0 <FLASH_SetErrorCode+0x8c>)
8012532: 68db ldr r3, [r3, #12]
8012534: f003 0310 and.w r3, r3, #16
8012538: 2b00 cmp r3, #0
801253a: d005 beq.n 8012548 <FLASH_SetErrorCode+0x34>
{
pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP;
801253c: 4b19 ldr r3, [pc, #100] ; (80125a4 <FLASH_SetErrorCode+0x90>)
801253e: 699b ldr r3, [r3, #24]
8012540: f043 0310 orr.w r3, r3, #16
8012544: 4a17 ldr r2, [pc, #92] ; (80125a4 <FLASH_SetErrorCode+0x90>)
8012546: 6193 str r3, [r2, #24]
}
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGAERR) != RESET)
8012548: 4b15 ldr r3, [pc, #84] ; (80125a0 <FLASH_SetErrorCode+0x8c>)
801254a: 68db ldr r3, [r3, #12]
801254c: f003 0320 and.w r3, r3, #32
8012550: 2b00 cmp r3, #0
8012552: d005 beq.n 8012560 <FLASH_SetErrorCode+0x4c>
{
pFlash.ErrorCode |= HAL_FLASH_ERROR_PGA;
8012554: 4b13 ldr r3, [pc, #76] ; (80125a4 <FLASH_SetErrorCode+0x90>)
8012556: 699b ldr r3, [r3, #24]
8012558: f043 0308 orr.w r3, r3, #8
801255c: 4a11 ldr r2, [pc, #68] ; (80125a4 <FLASH_SetErrorCode+0x90>)
801255e: 6193 str r3, [r2, #24]
}
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_PGPERR) != RESET)
8012560: 4b0f ldr r3, [pc, #60] ; (80125a0 <FLASH_SetErrorCode+0x8c>)
8012562: 68db ldr r3, [r3, #12]
8012564: f003 0340 and.w r3, r3, #64 ; 0x40
8012568: 2b00 cmp r3, #0
801256a: d005 beq.n 8012578 <FLASH_SetErrorCode+0x64>
{
pFlash.ErrorCode |= HAL_FLASH_ERROR_PGP;
801256c: 4b0d ldr r3, [pc, #52] ; (80125a4 <FLASH_SetErrorCode+0x90>)
801256e: 699b ldr r3, [r3, #24]
8012570: f043 0304 orr.w r3, r3, #4
8012574: 4a0b ldr r2, [pc, #44] ; (80125a4 <FLASH_SetErrorCode+0x90>)
8012576: 6193 str r3, [r2, #24]
}
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_ERSERR) != RESET)
8012578: 4b09 ldr r3, [pc, #36] ; (80125a0 <FLASH_SetErrorCode+0x8c>)
801257a: 68db ldr r3, [r3, #12]
801257c: f003 0380 and.w r3, r3, #128 ; 0x80
8012580: 2b00 cmp r3, #0
8012582: d005 beq.n 8012590 <FLASH_SetErrorCode+0x7c>
{
pFlash.ErrorCode |= HAL_FLASH_ERROR_ERS;
8012584: 4b07 ldr r3, [pc, #28] ; (80125a4 <FLASH_SetErrorCode+0x90>)
8012586: 699b ldr r3, [r3, #24]
8012588: f043 0302 orr.w r3, r3, #2
801258c: 4a05 ldr r2, [pc, #20] ; (80125a4 <FLASH_SetErrorCode+0x90>)
801258e: 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);
8012590: 4b03 ldr r3, [pc, #12] ; (80125a0 <FLASH_SetErrorCode+0x8c>)
8012592: 22f2 movs r2, #242 ; 0xf2
8012594: 60da str r2, [r3, #12]
}
8012596: bf00 nop
8012598: 46bd mov sp, r7
801259a: f85d 7b04 ldr.w r7, [sp], #4
801259e: 4770 bx lr
80125a0: 40023c00 .word 0x40023c00
80125a4: 2006c6c8 .word 0x2006c6c8
080125a8 <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)
{
80125a8: b580 push {r7, lr}
80125aa: b084 sub sp, #16
80125ac: af00 add r7, sp, #0
80125ae: 6078 str r0, [r7, #4]
80125b0: 6039 str r1, [r7, #0]
HAL_StatusTypeDef status = HAL_ERROR;
80125b2: 2301 movs r3, #1
80125b4: 73fb strb r3, [r7, #15]
uint32_t index = 0;
80125b6: 2300 movs r3, #0
80125b8: 60bb str r3, [r7, #8]
/* Process Locked */
__HAL_LOCK(&pFlash);
80125ba: 4b30 ldr r3, [pc, #192] ; (801267c <HAL_FLASHEx_Erase+0xd4>)
80125bc: 7d1b ldrb r3, [r3, #20]
80125be: 2b01 cmp r3, #1
80125c0: d101 bne.n 80125c6 <HAL_FLASHEx_Erase+0x1e>
80125c2: 2302 movs r3, #2
80125c4: e056 b.n 8012674 <HAL_FLASHEx_Erase+0xcc>
80125c6: 4b2d ldr r3, [pc, #180] ; (801267c <HAL_FLASHEx_Erase+0xd4>)
80125c8: 2201 movs r2, #1
80125ca: 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);
80125cc: f24c 3050 movw r0, #50000 ; 0xc350
80125d0: f7ff fec2 bl 8012358 <FLASH_WaitForLastOperation>
80125d4: 4603 mov r3, r0
80125d6: 73fb strb r3, [r7, #15]
if(status == HAL_OK)
80125d8: 7bfb ldrb r3, [r7, #15]
80125da: 2b00 cmp r3, #0
80125dc: d146 bne.n 801266c <HAL_FLASHEx_Erase+0xc4>
{
/*Initialization of SectorError variable*/
*SectorError = 0xFFFFFFFFU;
80125de: 683b ldr r3, [r7, #0]
80125e0: f04f 32ff mov.w r2, #4294967295
80125e4: 601a str r2, [r3, #0]
if(pEraseInit->TypeErase == FLASH_TYPEERASE_MASSERASE)
80125e6: 687b ldr r3, [r7, #4]
80125e8: 681b ldr r3, [r3, #0]
80125ea: 2b01 cmp r3, #1
80125ec: d115 bne.n 801261a <HAL_FLASHEx_Erase+0x72>
{
/*Mass erase to be done*/
#if defined (FLASH_OPTCR_nDBANK)
FLASH_MassErase((uint8_t) pEraseInit->VoltageRange, pEraseInit->Banks);
80125ee: 687b ldr r3, [r7, #4]
80125f0: 691b ldr r3, [r3, #16]
80125f2: b2da uxtb r2, r3
80125f4: 687b ldr r3, [r7, #4]
80125f6: 685b ldr r3, [r3, #4]
80125f8: 4619 mov r1, r3
80125fa: 4610 mov r0, r2
80125fc: f000 f870 bl 80126e0 <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);
8012600: f24c 3050 movw r0, #50000 ; 0xc350
8012604: f7ff fea8 bl 8012358 <FLASH_WaitForLastOperation>
8012608: 4603 mov r3, r0
801260a: 73fb strb r3, [r7, #15]
/* if the erase operation is completed, disable the MER Bit */
FLASH->CR &= (~FLASH_MER_BIT);
801260c: 491c ldr r1, [pc, #112] ; (8012680 <HAL_FLASHEx_Erase+0xd8>)
801260e: 4b1c ldr r3, [pc, #112] ; (8012680 <HAL_FLASHEx_Erase+0xd8>)
8012610: 691a ldr r2, [r3, #16]
8012612: 4b1c ldr r3, [pc, #112] ; (8012684 <HAL_FLASHEx_Erase+0xdc>)
8012614: 4013 ands r3, r2
8012616: 610b str r3, [r1, #16]
8012618: e028 b.n 801266c <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++)
801261a: 687b ldr r3, [r7, #4]
801261c: 689b ldr r3, [r3, #8]
801261e: 60bb str r3, [r7, #8]
8012620: e01c b.n 801265c <HAL_FLASHEx_Erase+0xb4>
{
FLASH_Erase_Sector(index, (uint8_t) pEraseInit->VoltageRange);
8012622: 687b ldr r3, [r7, #4]
8012624: 691b ldr r3, [r3, #16]
8012626: b2db uxtb r3, r3
8012628: 4619 mov r1, r3
801262a: 68b8 ldr r0, [r7, #8]
801262c: f000 f892 bl 8012754 <FLASH_Erase_Sector>
/* Wait for last operation to be completed */
status = FLASH_WaitForLastOperation((uint32_t)FLASH_TIMEOUT_VALUE);
8012630: f24c 3050 movw r0, #50000 ; 0xc350
8012634: f7ff fe90 bl 8012358 <FLASH_WaitForLastOperation>
8012638: 4603 mov r3, r0
801263a: 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));
801263c: 4a10 ldr r2, [pc, #64] ; (8012680 <HAL_FLASHEx_Erase+0xd8>)
801263e: 4b10 ldr r3, [pc, #64] ; (8012680 <HAL_FLASHEx_Erase+0xd8>)
8012640: 691b ldr r3, [r3, #16]
8012642: f023 03fa bic.w r3, r3, #250 ; 0xfa
8012646: 6113 str r3, [r2, #16]
if(status != HAL_OK)
8012648: 7bfb ldrb r3, [r7, #15]
801264a: 2b00 cmp r3, #0
801264c: d003 beq.n 8012656 <HAL_FLASHEx_Erase+0xae>
{
/* In case of error, stop erase procedure and return the faulty sector*/
*SectorError = index;
801264e: 683b ldr r3, [r7, #0]
8012650: 68ba ldr r2, [r7, #8]
8012652: 601a str r2, [r3, #0]
break;
8012654: e00a b.n 801266c <HAL_FLASHEx_Erase+0xc4>
for(index = pEraseInit->Sector; index < (pEraseInit->NbSectors + pEraseInit->Sector); index++)
8012656: 68bb ldr r3, [r7, #8]
8012658: 3301 adds r3, #1
801265a: 60bb str r3, [r7, #8]
801265c: 687b ldr r3, [r7, #4]
801265e: 68da ldr r2, [r3, #12]
8012660: 687b ldr r3, [r7, #4]
8012662: 689b ldr r3, [r3, #8]
8012664: 441a add r2, r3
8012666: 68bb ldr r3, [r7, #8]
8012668: 429a cmp r2, r3
801266a: d8da bhi.n 8012622 <HAL_FLASHEx_Erase+0x7a>
}
}
}
/* Process Unlocked */
__HAL_UNLOCK(&pFlash);
801266c: 4b03 ldr r3, [pc, #12] ; (801267c <HAL_FLASHEx_Erase+0xd4>)
801266e: 2200 movs r2, #0
8012670: 751a strb r2, [r3, #20]
return status;
8012672: 7bfb ldrb r3, [r7, #15]
}
8012674: 4618 mov r0, r3
8012676: 3710 adds r7, #16
8012678: 46bd mov sp, r7
801267a: bd80 pop {r7, pc}
801267c: 2006c6c8 .word 0x2006c6c8
8012680: 40023c00 .word 0x40023c00
8012684: ffff7ffb .word 0xffff7ffb
08012688 <HAL_FLASHEx_OBGetConfig>:
* contains the configuration information for the programming.
*
* @retval None
*/
void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit)
{
8012688: b580 push {r7, lr}
801268a: b082 sub sp, #8
801268c: af00 add r7, sp, #0
801268e: 6078 str r0, [r7, #4]
pOBInit->OptionType = OPTIONBYTE_WRP | OPTIONBYTE_RDP | OPTIONBYTE_USER |\
8012690: 687b ldr r3, [r7, #4]
8012692: 223f movs r2, #63 ; 0x3f
8012694: 601a str r2, [r3, #0]
OPTIONBYTE_BOR | OPTIONBYTE_BOOTADDR_0 | OPTIONBYTE_BOOTADDR_1;
/*Get WRP*/
pOBInit->WRPSector = FLASH_OB_GetWRP();
8012696: f000 f8ad bl 80127f4 <FLASH_OB_GetWRP>
801269a: 4602 mov r2, r0
801269c: 687b ldr r3, [r7, #4]
801269e: 609a str r2, [r3, #8]
/*Get RDP Level*/
pOBInit->RDPLevel = FLASH_OB_GetRDP();
80126a0: f000 f8c8 bl 8012834 <FLASH_OB_GetRDP>
80126a4: 4603 mov r3, r0
80126a6: 461a mov r2, r3
80126a8: 687b ldr r3, [r7, #4]
80126aa: 60da str r2, [r3, #12]
/*Get USER*/
pOBInit->USERConfig = FLASH_OB_GetUser();
80126ac: f000 f8b2 bl 8012814 <FLASH_OB_GetUser>
80126b0: 4602 mov r2, r0
80126b2: 687b ldr r3, [r7, #4]
80126b4: 615a str r2, [r3, #20]
/*Get BOR Level*/
pOBInit->BORLevel = FLASH_OB_GetBOR();
80126b6: f000 f8dd bl 8012874 <FLASH_OB_GetBOR>
80126ba: 4602 mov r2, r0
80126bc: 687b ldr r3, [r7, #4]
80126be: 611a str r2, [r3, #16]
/*Get Boot Address when Boot pin = 0 */
pOBInit->BootAddr0 = FLASH_OB_GetBootAddress(OPTIONBYTE_BOOTADDR_0);
80126c0: 2010 movs r0, #16
80126c2: f000 f8e5 bl 8012890 <FLASH_OB_GetBootAddress>
80126c6: 4602 mov r2, r0
80126c8: 687b ldr r3, [r7, #4]
80126ca: 619a str r2, [r3, #24]
/*Get Boot Address when Boot pin = 1 */
pOBInit->BootAddr1 = FLASH_OB_GetBootAddress(OPTIONBYTE_BOOTADDR_1);
80126cc: 2020 movs r0, #32
80126ce: f000 f8df bl 8012890 <FLASH_OB_GetBootAddress>
80126d2: 4602 mov r2, r0
80126d4: 687b ldr r3, [r7, #4]
80126d6: 61da str r2, [r3, #28]
pOBInit->PCROPSector = FLASH_OB_GetPCROP();
/*Get PCROP_RDP Value */
pOBInit->PCROPRdp = FLASH_OB_GetPCROPRDP();
#endif /* FLASH_OPTCR2_PCROP */
}
80126d8: bf00 nop
80126da: 3708 adds r7, #8
80126dc: 46bd mov sp, r7
80126de: bd80 pop {r7, pc}
080126e0 <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)
{
80126e0: b480 push {r7}
80126e2: b083 sub sp, #12
80126e4: af00 add r7, sp, #0
80126e6: 4603 mov r3, r0
80126e8: 6039 str r1, [r7, #0]
80126ea: 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;
80126ec: 4a18 ldr r2, [pc, #96] ; (8012750 <FLASH_MassErase+0x70>)
80126ee: 4b18 ldr r3, [pc, #96] ; (8012750 <FLASH_MassErase+0x70>)
80126f0: 691b ldr r3, [r3, #16]
80126f2: f423 7340 bic.w r3, r3, #768 ; 0x300
80126f6: 6113 str r3, [r2, #16]
if(Banks == FLASH_BANK_BOTH)
80126f8: 683b ldr r3, [r7, #0]
80126fa: 2b03 cmp r3, #3
80126fc: d107 bne.n 801270e <FLASH_MassErase+0x2e>
{
/* bank1 & bank2 will be erased*/
FLASH->CR |= FLASH_MER_BIT;
80126fe: 4914 ldr r1, [pc, #80] ; (8012750 <FLASH_MassErase+0x70>)
8012700: 4b13 ldr r3, [pc, #76] ; (8012750 <FLASH_MassErase+0x70>)
8012702: 691a ldr r2, [r3, #16]
8012704: f248 0304 movw r3, #32772 ; 0x8004
8012708: 4313 orrs r3, r2
801270a: 610b str r3, [r1, #16]
801270c: e00f b.n 801272e <FLASH_MassErase+0x4e>
}
else if(Banks == FLASH_BANK_2)
801270e: 683b ldr r3, [r7, #0]
8012710: 2b02 cmp r3, #2
8012712: d106 bne.n 8012722 <FLASH_MassErase+0x42>
{
/*Only bank2 will be erased*/
FLASH->CR |= FLASH_CR_MER2;
8012714: 4a0e ldr r2, [pc, #56] ; (8012750 <FLASH_MassErase+0x70>)
8012716: 4b0e ldr r3, [pc, #56] ; (8012750 <FLASH_MassErase+0x70>)
8012718: 691b ldr r3, [r3, #16]
801271a: f443 4300 orr.w r3, r3, #32768 ; 0x8000
801271e: 6113 str r3, [r2, #16]
8012720: e005 b.n 801272e <FLASH_MassErase+0x4e>
}
else
{
/*Only bank1 will be erased*/
FLASH->CR |= FLASH_CR_MER1;
8012722: 4a0b ldr r2, [pc, #44] ; (8012750 <FLASH_MassErase+0x70>)
8012724: 4b0a ldr r3, [pc, #40] ; (8012750 <FLASH_MassErase+0x70>)
8012726: 691b ldr r3, [r3, #16]
8012728: f043 0304 orr.w r3, r3, #4
801272c: 6113 str r3, [r2, #16]
}
FLASH->CR |= FLASH_CR_STRT | ((uint32_t)VoltageRange <<8);
801272e: 4908 ldr r1, [pc, #32] ; (8012750 <FLASH_MassErase+0x70>)
8012730: 4b07 ldr r3, [pc, #28] ; (8012750 <FLASH_MassErase+0x70>)
8012732: 691a ldr r2, [r3, #16]
8012734: 79fb ldrb r3, [r7, #7]
8012736: 021b lsls r3, r3, #8
8012738: 4313 orrs r3, r2
801273a: f443 3380 orr.w r3, r3, #65536 ; 0x10000
801273e: 610b str r3, [r1, #16]
8012740: 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();
}
8012744: bf00 nop
8012746: 370c adds r7, #12
8012748: 46bd mov sp, r7
801274a: f85d 7b04 ldr.w r7, [sp], #4
801274e: 4770 bx lr
8012750: 40023c00 .word 0x40023c00
08012754 <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)
{
8012754: b480 push {r7}
8012756: b085 sub sp, #20
8012758: af00 add r7, sp, #0
801275a: 6078 str r0, [r7, #4]
801275c: 460b mov r3, r1
801275e: 70fb strb r3, [r7, #3]
uint32_t tmp_psize = 0;
8012760: 2300 movs r3, #0
8012762: 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)
8012764: 78fb ldrb r3, [r7, #3]
8012766: 2b00 cmp r3, #0
8012768: d102 bne.n 8012770 <FLASH_Erase_Sector+0x1c>
{
tmp_psize = FLASH_PSIZE_BYTE;
801276a: 2300 movs r3, #0
801276c: 60fb str r3, [r7, #12]
801276e: e010 b.n 8012792 <FLASH_Erase_Sector+0x3e>
}
else if(VoltageRange == FLASH_VOLTAGE_RANGE_2)
8012770: 78fb ldrb r3, [r7, #3]
8012772: 2b01 cmp r3, #1
8012774: d103 bne.n 801277e <FLASH_Erase_Sector+0x2a>
{
tmp_psize = FLASH_PSIZE_HALF_WORD;
8012776: f44f 7380 mov.w r3, #256 ; 0x100
801277a: 60fb str r3, [r7, #12]
801277c: e009 b.n 8012792 <FLASH_Erase_Sector+0x3e>
}
else if(VoltageRange == FLASH_VOLTAGE_RANGE_3)
801277e: 78fb ldrb r3, [r7, #3]
8012780: 2b02 cmp r3, #2
8012782: d103 bne.n 801278c <FLASH_Erase_Sector+0x38>
{
tmp_psize = FLASH_PSIZE_WORD;
8012784: f44f 7300 mov.w r3, #512 ; 0x200
8012788: 60fb str r3, [r7, #12]
801278a: e002 b.n 8012792 <FLASH_Erase_Sector+0x3e>
}
else
{
tmp_psize = FLASH_PSIZE_DOUBLE_WORD;
801278c: f44f 7340 mov.w r3, #768 ; 0x300
8012790: 60fb str r3, [r7, #12]
}
/* Need to add offset of 4 when sector higher than FLASH_SECTOR_11 */
if(Sector > FLASH_SECTOR_11)
8012792: 687b ldr r3, [r7, #4]
8012794: 2b0b cmp r3, #11
8012796: d902 bls.n 801279e <FLASH_Erase_Sector+0x4a>
{
Sector += 4;
8012798: 687b ldr r3, [r7, #4]
801279a: 3304 adds r3, #4
801279c: 607b str r3, [r7, #4]
}
/* If the previous operation is completed, proceed to erase the sector */
FLASH->CR &= CR_PSIZE_MASK;
801279e: 4a14 ldr r2, [pc, #80] ; (80127f0 <FLASH_Erase_Sector+0x9c>)
80127a0: 4b13 ldr r3, [pc, #76] ; (80127f0 <FLASH_Erase_Sector+0x9c>)
80127a2: 691b ldr r3, [r3, #16]
80127a4: f423 7340 bic.w r3, r3, #768 ; 0x300
80127a8: 6113 str r3, [r2, #16]
FLASH->CR |= tmp_psize;
80127aa: 4911 ldr r1, [pc, #68] ; (80127f0 <FLASH_Erase_Sector+0x9c>)
80127ac: 4b10 ldr r3, [pc, #64] ; (80127f0 <FLASH_Erase_Sector+0x9c>)
80127ae: 691a ldr r2, [r3, #16]
80127b0: 68fb ldr r3, [r7, #12]
80127b2: 4313 orrs r3, r2
80127b4: 610b str r3, [r1, #16]
CLEAR_BIT(FLASH->CR, FLASH_CR_SNB);
80127b6: 4a0e ldr r2, [pc, #56] ; (80127f0 <FLASH_Erase_Sector+0x9c>)
80127b8: 4b0d ldr r3, [pc, #52] ; (80127f0 <FLASH_Erase_Sector+0x9c>)
80127ba: 691b ldr r3, [r3, #16]
80127bc: f023 03f8 bic.w r3, r3, #248 ; 0xf8
80127c0: 6113 str r3, [r2, #16]
FLASH->CR |= FLASH_CR_SER | (Sector << FLASH_CR_SNB_Pos);
80127c2: 490b ldr r1, [pc, #44] ; (80127f0 <FLASH_Erase_Sector+0x9c>)
80127c4: 4b0a ldr r3, [pc, #40] ; (80127f0 <FLASH_Erase_Sector+0x9c>)
80127c6: 691a ldr r2, [r3, #16]
80127c8: 687b ldr r3, [r7, #4]
80127ca: 00db lsls r3, r3, #3
80127cc: 4313 orrs r3, r2
80127ce: f043 0302 orr.w r3, r3, #2
80127d2: 610b str r3, [r1, #16]
FLASH->CR |= FLASH_CR_STRT;
80127d4: 4a06 ldr r2, [pc, #24] ; (80127f0 <FLASH_Erase_Sector+0x9c>)
80127d6: 4b06 ldr r3, [pc, #24] ; (80127f0 <FLASH_Erase_Sector+0x9c>)
80127d8: 691b ldr r3, [r3, #16]
80127da: f443 3380 orr.w r3, r3, #65536 ; 0x10000
80127de: 6113 str r3, [r2, #16]
80127e0: 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();
}
80127e4: bf00 nop
80127e6: 3714 adds r7, #20
80127e8: 46bd mov sp, r7
80127ea: f85d 7b04 ldr.w r7, [sp], #4
80127ee: 4770 bx lr
80127f0: 40023c00 .word 0x40023c00
080127f4 <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)
{
80127f4: b480 push {r7}
80127f6: af00 add r7, sp, #0
/* Return the FLASH write protection Register value */
return ((uint32_t)(FLASH->OPTCR & 0x0FFF0000));
80127f8: 4b04 ldr r3, [pc, #16] ; (801280c <FLASH_OB_GetWRP+0x18>)
80127fa: 695a ldr r2, [r3, #20]
80127fc: 4b04 ldr r3, [pc, #16] ; (8012810 <FLASH_OB_GetWRP+0x1c>)
80127fe: 4013 ands r3, r2
}
8012800: 4618 mov r0, r3
8012802: 46bd mov sp, r7
8012804: f85d 7b04 ldr.w r7, [sp], #4
8012808: 4770 bx lr
801280a: bf00 nop
801280c: 40023c00 .word 0x40023c00
8012810: 0fff0000 .word 0x0fff0000
08012814 <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)
{
8012814: b480 push {r7}
8012816: af00 add r7, sp, #0
/* Return the User Option Byte */
return ((uint32_t)(FLASH->OPTCR & 0xF00000F0U));
8012818: 4b04 ldr r3, [pc, #16] ; (801282c <FLASH_OB_GetUser+0x18>)
801281a: 695a ldr r2, [r3, #20]
801281c: 4b04 ldr r3, [pc, #16] ; (8012830 <FLASH_OB_GetUser+0x1c>)
801281e: 4013 ands r3, r2
}
8012820: 4618 mov r0, r3
8012822: 46bd mov sp, r7
8012824: f85d 7b04 ldr.w r7, [sp], #4
8012828: 4770 bx lr
801282a: bf00 nop
801282c: 40023c00 .word 0x40023c00
8012830: f00000f0 .word 0xf00000f0
08012834 <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)
{
8012834: b480 push {r7}
8012836: b083 sub sp, #12
8012838: af00 add r7, sp, #0
uint8_t readstatus = OB_RDP_LEVEL_0;
801283a: 23aa movs r3, #170 ; 0xaa
801283c: 71fb strb r3, [r7, #7]
if ((*(__IO uint8_t*)(OPTCR_BYTE1_ADDRESS)) == OB_RDP_LEVEL_0)
801283e: 4b0c ldr r3, [pc, #48] ; (8012870 <FLASH_OB_GetRDP+0x3c>)
8012840: 781b ldrb r3, [r3, #0]
8012842: b2db uxtb r3, r3
8012844: 2baa cmp r3, #170 ; 0xaa
8012846: d102 bne.n 801284e <FLASH_OB_GetRDP+0x1a>
{
readstatus = OB_RDP_LEVEL_0;
8012848: 23aa movs r3, #170 ; 0xaa
801284a: 71fb strb r3, [r7, #7]
801284c: e009 b.n 8012862 <FLASH_OB_GetRDP+0x2e>
}
else if ((*(__IO uint8_t*)(OPTCR_BYTE1_ADDRESS)) == OB_RDP_LEVEL_2)
801284e: 4b08 ldr r3, [pc, #32] ; (8012870 <FLASH_OB_GetRDP+0x3c>)
8012850: 781b ldrb r3, [r3, #0]
8012852: b2db uxtb r3, r3
8012854: 2bcc cmp r3, #204 ; 0xcc
8012856: d102 bne.n 801285e <FLASH_OB_GetRDP+0x2a>
{
readstatus = OB_RDP_LEVEL_2;
8012858: 23cc movs r3, #204 ; 0xcc
801285a: 71fb strb r3, [r7, #7]
801285c: e001 b.n 8012862 <FLASH_OB_GetRDP+0x2e>
}
else
{
readstatus = OB_RDP_LEVEL_1;
801285e: 2355 movs r3, #85 ; 0x55
8012860: 71fb strb r3, [r7, #7]
}
return readstatus;
8012862: 79fb ldrb r3, [r7, #7]
}
8012864: 4618 mov r0, r3
8012866: 370c adds r7, #12
8012868: 46bd mov sp, r7
801286a: f85d 7b04 ldr.w r7, [sp], #4
801286e: 4770 bx lr
8012870: 40023c15 .word 0x40023c15
08012874 <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)
{
8012874: b480 push {r7}
8012876: af00 add r7, sp, #0
/* Return the FLASH BOR level */
return ((uint32_t)(FLASH->OPTCR & 0x0C));
8012878: 4b04 ldr r3, [pc, #16] ; (801288c <FLASH_OB_GetBOR+0x18>)
801287a: 695b ldr r3, [r3, #20]
801287c: f003 030c and.w r3, r3, #12
}
8012880: 4618 mov r0, r3
8012882: 46bd mov sp, r7
8012884: f85d 7b04 ldr.w r7, [sp], #4
8012888: 4770 bx lr
801288a: bf00 nop
801288c: 40023c00 .word 0x40023c00
08012890 <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)
{
8012890: b480 push {r7}
8012892: b085 sub sp, #20
8012894: af00 add r7, sp, #0
8012896: 6078 str r0, [r7, #4]
uint32_t Address = 0;
8012898: 2300 movs r3, #0
801289a: 60fb str r3, [r7, #12]
/* Return the Boot base Address */
if(BootOption == OPTIONBYTE_BOOTADDR_0)
801289c: 687b ldr r3, [r7, #4]
801289e: 2b10 cmp r3, #16
80128a0: d104 bne.n 80128ac <FLASH_OB_GetBootAddress+0x1c>
{
Address = FLASH->OPTCR1 & FLASH_OPTCR1_BOOT_ADD0;
80128a2: 4b08 ldr r3, [pc, #32] ; (80128c4 <FLASH_OB_GetBootAddress+0x34>)
80128a4: 699b ldr r3, [r3, #24]
80128a6: b29b uxth r3, r3
80128a8: 60fb str r3, [r7, #12]
80128aa: e004 b.n 80128b6 <FLASH_OB_GetBootAddress+0x26>
}
else
{
Address = ((FLASH->OPTCR1 & FLASH_OPTCR1_BOOT_ADD1) >> 16);
80128ac: 4b05 ldr r3, [pc, #20] ; (80128c4 <FLASH_OB_GetBootAddress+0x34>)
80128ae: 699b ldr r3, [r3, #24]
80128b0: 0c1b lsrs r3, r3, #16
80128b2: b29b uxth r3, r3
80128b4: 60fb str r3, [r7, #12]
}
return Address;
80128b6: 68fb ldr r3, [r7, #12]
}
80128b8: 4618 mov r0, r3
80128ba: 3714 adds r7, #20
80128bc: 46bd mov sp, r7
80128be: f85d 7b04 ldr.w r7, [sp], #4
80128c2: 4770 bx lr
80128c4: 40023c00 .word 0x40023c00
080128c8 <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)
{
80128c8: b480 push {r7}
80128ca: b089 sub sp, #36 ; 0x24
80128cc: af00 add r7, sp, #0
80128ce: 6078 str r0, [r7, #4]
80128d0: 6039 str r1, [r7, #0]
uint32_t position = 0x00;
80128d2: 2300 movs r3, #0
80128d4: 61fb str r3, [r7, #28]
uint32_t ioposition = 0x00;
80128d6: 2300 movs r3, #0
80128d8: 617b str r3, [r7, #20]
uint32_t iocurrent = 0x00;
80128da: 2300 movs r3, #0
80128dc: 613b str r3, [r7, #16]
uint32_t temp = 0x00;
80128de: 2300 movs r3, #0
80128e0: 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++)
80128e2: 2300 movs r3, #0
80128e4: 61fb str r3, [r7, #28]
80128e6: e175 b.n 8012bd4 <HAL_GPIO_Init+0x30c>
{
/* Get the IO position */
ioposition = ((uint32_t)0x01) << position;
80128e8: 2201 movs r2, #1
80128ea: 69fb ldr r3, [r7, #28]
80128ec: fa02 f303 lsl.w r3, r2, r3
80128f0: 617b str r3, [r7, #20]
/* Get the current IO position */
iocurrent = (uint32_t)(GPIO_Init->Pin) & ioposition;
80128f2: 683b ldr r3, [r7, #0]
80128f4: 681a ldr r2, [r3, #0]
80128f6: 697b ldr r3, [r7, #20]
80128f8: 4013 ands r3, r2
80128fa: 613b str r3, [r7, #16]
if(iocurrent == ioposition)
80128fc: 693a ldr r2, [r7, #16]
80128fe: 697b ldr r3, [r7, #20]
8012900: 429a cmp r2, r3
8012902: f040 8164 bne.w 8012bce <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))
8012906: 683b ldr r3, [r7, #0]
8012908: 685b ldr r3, [r3, #4]
801290a: f003 0303 and.w r3, r3, #3
801290e: 2b01 cmp r3, #1
8012910: d005 beq.n 801291e <HAL_GPIO_Init+0x56>
8012912: 683b ldr r3, [r7, #0]
8012914: 685b ldr r3, [r3, #4]
8012916: f003 0303 and.w r3, r3, #3
801291a: 2b02 cmp r3, #2
801291c: d130 bne.n 8012980 <HAL_GPIO_Init+0xb8>
{
/* Check the Speed parameter */
assert_param(IS_GPIO_SPEED(GPIO_Init->Speed));
/* Configure the IO Speed */
temp = GPIOx->OSPEEDR;
801291e: 687b ldr r3, [r7, #4]
8012920: 689b ldr r3, [r3, #8]
8012922: 61bb str r3, [r7, #24]
temp &= ~(GPIO_OSPEEDER_OSPEEDR0 << (position * 2));
8012924: 69fb ldr r3, [r7, #28]
8012926: 005b lsls r3, r3, #1
8012928: 2203 movs r2, #3
801292a: fa02 f303 lsl.w r3, r2, r3
801292e: 43db mvns r3, r3
8012930: 69ba ldr r2, [r7, #24]
8012932: 4013 ands r3, r2
8012934: 61bb str r3, [r7, #24]
temp |= (GPIO_Init->Speed << (position * 2));
8012936: 683b ldr r3, [r7, #0]
8012938: 68da ldr r2, [r3, #12]
801293a: 69fb ldr r3, [r7, #28]
801293c: 005b lsls r3, r3, #1
801293e: fa02 f303 lsl.w r3, r2, r3
8012942: 69ba ldr r2, [r7, #24]
8012944: 4313 orrs r3, r2
8012946: 61bb str r3, [r7, #24]
GPIOx->OSPEEDR = temp;
8012948: 687b ldr r3, [r7, #4]
801294a: 69ba ldr r2, [r7, #24]
801294c: 609a str r2, [r3, #8]
/* Configure the IO Output Type */
temp = GPIOx->OTYPER;
801294e: 687b ldr r3, [r7, #4]
8012950: 685b ldr r3, [r3, #4]
8012952: 61bb str r3, [r7, #24]
temp &= ~(GPIO_OTYPER_OT_0 << position) ;
8012954: 2201 movs r2, #1
8012956: 69fb ldr r3, [r7, #28]
8012958: fa02 f303 lsl.w r3, r2, r3
801295c: 43db mvns r3, r3
801295e: 69ba ldr r2, [r7, #24]
8012960: 4013 ands r3, r2
8012962: 61bb str r3, [r7, #24]
temp |= (((GPIO_Init->Mode & OUTPUT_TYPE) >> OUTPUT_TYPE_Pos) << position);
8012964: 683b ldr r3, [r7, #0]
8012966: 685b ldr r3, [r3, #4]
8012968: 091b lsrs r3, r3, #4
801296a: f003 0201 and.w r2, r3, #1
801296e: 69fb ldr r3, [r7, #28]
8012970: fa02 f303 lsl.w r3, r2, r3
8012974: 69ba ldr r2, [r7, #24]
8012976: 4313 orrs r3, r2
8012978: 61bb str r3, [r7, #24]
GPIOx->OTYPER = temp;
801297a: 687b ldr r3, [r7, #4]
801297c: 69ba ldr r2, [r7, #24]
801297e: 605a str r2, [r3, #4]
}
if((GPIO_Init->Mode & GPIO_MODE) != MODE_ANALOG)
8012980: 683b ldr r3, [r7, #0]
8012982: 685b ldr r3, [r3, #4]
8012984: f003 0303 and.w r3, r3, #3
8012988: 2b03 cmp r3, #3
801298a: d017 beq.n 80129bc <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;
801298c: 687b ldr r3, [r7, #4]
801298e: 68db ldr r3, [r3, #12]
8012990: 61bb str r3, [r7, #24]
temp &= ~(GPIO_PUPDR_PUPDR0 << (position * 2));
8012992: 69fb ldr r3, [r7, #28]
8012994: 005b lsls r3, r3, #1
8012996: 2203 movs r2, #3
8012998: fa02 f303 lsl.w r3, r2, r3
801299c: 43db mvns r3, r3
801299e: 69ba ldr r2, [r7, #24]
80129a0: 4013 ands r3, r2
80129a2: 61bb str r3, [r7, #24]
temp |= ((GPIO_Init->Pull) << (position * 2));
80129a4: 683b ldr r3, [r7, #0]
80129a6: 689a ldr r2, [r3, #8]
80129a8: 69fb ldr r3, [r7, #28]
80129aa: 005b lsls r3, r3, #1
80129ac: fa02 f303 lsl.w r3, r2, r3
80129b0: 69ba ldr r2, [r7, #24]
80129b2: 4313 orrs r3, r2
80129b4: 61bb str r3, [r7, #24]
GPIOx->PUPDR = temp;
80129b6: 687b ldr r3, [r7, #4]
80129b8: 69ba ldr r2, [r7, #24]
80129ba: 60da str r2, [r3, #12]
}
/* In case of Alternate function mode selection */
if((GPIO_Init->Mode & GPIO_MODE) == MODE_AF)
80129bc: 683b ldr r3, [r7, #0]
80129be: 685b ldr r3, [r3, #4]
80129c0: f003 0303 and.w r3, r3, #3
80129c4: 2b02 cmp r3, #2
80129c6: d123 bne.n 8012a10 <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];
80129c8: 69fb ldr r3, [r7, #28]
80129ca: 08da lsrs r2, r3, #3
80129cc: 687b ldr r3, [r7, #4]
80129ce: 3208 adds r2, #8
80129d0: f853 3022 ldr.w r3, [r3, r2, lsl #2]
80129d4: 61bb str r3, [r7, #24]
temp &= ~((uint32_t)0xF << ((uint32_t)(position & (uint32_t)0x07) * 4)) ;
80129d6: 69fb ldr r3, [r7, #28]
80129d8: f003 0307 and.w r3, r3, #7
80129dc: 009b lsls r3, r3, #2
80129de: 220f movs r2, #15
80129e0: fa02 f303 lsl.w r3, r2, r3
80129e4: 43db mvns r3, r3
80129e6: 69ba ldr r2, [r7, #24]
80129e8: 4013 ands r3, r2
80129ea: 61bb str r3, [r7, #24]
temp |= ((uint32_t)(GPIO_Init->Alternate) << (((uint32_t)position & (uint32_t)0x07) * 4));
80129ec: 683b ldr r3, [r7, #0]
80129ee: 691a ldr r2, [r3, #16]
80129f0: 69fb ldr r3, [r7, #28]
80129f2: f003 0307 and.w r3, r3, #7
80129f6: 009b lsls r3, r3, #2
80129f8: fa02 f303 lsl.w r3, r2, r3
80129fc: 69ba ldr r2, [r7, #24]
80129fe: 4313 orrs r3, r2
8012a00: 61bb str r3, [r7, #24]
GPIOx->AFR[position >> 3] = temp;
8012a02: 69fb ldr r3, [r7, #28]
8012a04: 08da lsrs r2, r3, #3
8012a06: 687b ldr r3, [r7, #4]
8012a08: 3208 adds r2, #8
8012a0a: 69b9 ldr r1, [r7, #24]
8012a0c: f843 1022 str.w r1, [r3, r2, lsl #2]
}
/* Configure IO Direction mode (Input, Output, Alternate or Analog) */
temp = GPIOx->MODER;
8012a10: 687b ldr r3, [r7, #4]
8012a12: 681b ldr r3, [r3, #0]
8012a14: 61bb str r3, [r7, #24]
temp &= ~(GPIO_MODER_MODER0 << (position * 2));
8012a16: 69fb ldr r3, [r7, #28]
8012a18: 005b lsls r3, r3, #1
8012a1a: 2203 movs r2, #3
8012a1c: fa02 f303 lsl.w r3, r2, r3
8012a20: 43db mvns r3, r3
8012a22: 69ba ldr r2, [r7, #24]
8012a24: 4013 ands r3, r2
8012a26: 61bb str r3, [r7, #24]
temp |= ((GPIO_Init->Mode & GPIO_MODE) << (position * 2));
8012a28: 683b ldr r3, [r7, #0]
8012a2a: 685b ldr r3, [r3, #4]
8012a2c: f003 0203 and.w r2, r3, #3
8012a30: 69fb ldr r3, [r7, #28]
8012a32: 005b lsls r3, r3, #1
8012a34: fa02 f303 lsl.w r3, r2, r3
8012a38: 69ba ldr r2, [r7, #24]
8012a3a: 4313 orrs r3, r2
8012a3c: 61bb str r3, [r7, #24]
GPIOx->MODER = temp;
8012a3e: 687b ldr r3, [r7, #4]
8012a40: 69ba ldr r2, [r7, #24]
8012a42: 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)
8012a44: 683b ldr r3, [r7, #0]
8012a46: 685b ldr r3, [r3, #4]
8012a48: f403 3340 and.w r3, r3, #196608 ; 0x30000
8012a4c: 2b00 cmp r3, #0
8012a4e: f000 80be beq.w 8012bce <HAL_GPIO_Init+0x306>
{
/* Enable SYSCFG Clock */
__HAL_RCC_SYSCFG_CLK_ENABLE();
8012a52: 4a65 ldr r2, [pc, #404] ; (8012be8 <HAL_GPIO_Init+0x320>)
8012a54: 4b64 ldr r3, [pc, #400] ; (8012be8 <HAL_GPIO_Init+0x320>)
8012a56: 6c5b ldr r3, [r3, #68] ; 0x44
8012a58: f443 4380 orr.w r3, r3, #16384 ; 0x4000
8012a5c: 6453 str r3, [r2, #68] ; 0x44
8012a5e: 4b62 ldr r3, [pc, #392] ; (8012be8 <HAL_GPIO_Init+0x320>)
8012a60: 6c5b ldr r3, [r3, #68] ; 0x44
8012a62: f403 4380 and.w r3, r3, #16384 ; 0x4000
8012a66: 60fb str r3, [r7, #12]
8012a68: 68fb ldr r3, [r7, #12]
temp = SYSCFG->EXTICR[position >> 2];
8012a6a: 4a60 ldr r2, [pc, #384] ; (8012bec <HAL_GPIO_Init+0x324>)
8012a6c: 69fb ldr r3, [r7, #28]
8012a6e: 089b lsrs r3, r3, #2
8012a70: 3302 adds r3, #2
8012a72: f852 3023 ldr.w r3, [r2, r3, lsl #2]
8012a76: 61bb str r3, [r7, #24]
temp &= ~(((uint32_t)0x0F) << (4 * (position & 0x03)));
8012a78: 69fb ldr r3, [r7, #28]
8012a7a: f003 0303 and.w r3, r3, #3
8012a7e: 009b lsls r3, r3, #2
8012a80: 220f movs r2, #15
8012a82: fa02 f303 lsl.w r3, r2, r3
8012a86: 43db mvns r3, r3
8012a88: 69ba ldr r2, [r7, #24]
8012a8a: 4013 ands r3, r2
8012a8c: 61bb str r3, [r7, #24]
temp |= ((uint32_t)(GPIO_GET_INDEX(GPIOx)) << (4 * (position & 0x03)));
8012a8e: 687b ldr r3, [r7, #4]
8012a90: 4a57 ldr r2, [pc, #348] ; (8012bf0 <HAL_GPIO_Init+0x328>)
8012a92: 4293 cmp r3, r2
8012a94: d037 beq.n 8012b06 <HAL_GPIO_Init+0x23e>
8012a96: 687b ldr r3, [r7, #4]
8012a98: 4a56 ldr r2, [pc, #344] ; (8012bf4 <HAL_GPIO_Init+0x32c>)
8012a9a: 4293 cmp r3, r2
8012a9c: d031 beq.n 8012b02 <HAL_GPIO_Init+0x23a>
8012a9e: 687b ldr r3, [r7, #4]
8012aa0: 4a55 ldr r2, [pc, #340] ; (8012bf8 <HAL_GPIO_Init+0x330>)
8012aa2: 4293 cmp r3, r2
8012aa4: d02b beq.n 8012afe <HAL_GPIO_Init+0x236>
8012aa6: 687b ldr r3, [r7, #4]
8012aa8: 4a54 ldr r2, [pc, #336] ; (8012bfc <HAL_GPIO_Init+0x334>)
8012aaa: 4293 cmp r3, r2
8012aac: d025 beq.n 8012afa <HAL_GPIO_Init+0x232>
8012aae: 687b ldr r3, [r7, #4]
8012ab0: 4a53 ldr r2, [pc, #332] ; (8012c00 <HAL_GPIO_Init+0x338>)
8012ab2: 4293 cmp r3, r2
8012ab4: d01f beq.n 8012af6 <HAL_GPIO_Init+0x22e>
8012ab6: 687b ldr r3, [r7, #4]
8012ab8: 4a52 ldr r2, [pc, #328] ; (8012c04 <HAL_GPIO_Init+0x33c>)
8012aba: 4293 cmp r3, r2
8012abc: d019 beq.n 8012af2 <HAL_GPIO_Init+0x22a>
8012abe: 687b ldr r3, [r7, #4]
8012ac0: 4a51 ldr r2, [pc, #324] ; (8012c08 <HAL_GPIO_Init+0x340>)
8012ac2: 4293 cmp r3, r2
8012ac4: d013 beq.n 8012aee <HAL_GPIO_Init+0x226>
8012ac6: 687b ldr r3, [r7, #4]
8012ac8: 4a50 ldr r2, [pc, #320] ; (8012c0c <HAL_GPIO_Init+0x344>)
8012aca: 4293 cmp r3, r2
8012acc: d00d beq.n 8012aea <HAL_GPIO_Init+0x222>
8012ace: 687b ldr r3, [r7, #4]
8012ad0: 4a4f ldr r2, [pc, #316] ; (8012c10 <HAL_GPIO_Init+0x348>)
8012ad2: 4293 cmp r3, r2
8012ad4: d007 beq.n 8012ae6 <HAL_GPIO_Init+0x21e>
8012ad6: 687b ldr r3, [r7, #4]
8012ad8: 4a4e ldr r2, [pc, #312] ; (8012c14 <HAL_GPIO_Init+0x34c>)
8012ada: 4293 cmp r3, r2
8012adc: d101 bne.n 8012ae2 <HAL_GPIO_Init+0x21a>
8012ade: 2309 movs r3, #9
8012ae0: e012 b.n 8012b08 <HAL_GPIO_Init+0x240>
8012ae2: 230a movs r3, #10
8012ae4: e010 b.n 8012b08 <HAL_GPIO_Init+0x240>
8012ae6: 2308 movs r3, #8
8012ae8: e00e b.n 8012b08 <HAL_GPIO_Init+0x240>
8012aea: 2307 movs r3, #7
8012aec: e00c b.n 8012b08 <HAL_GPIO_Init+0x240>
8012aee: 2306 movs r3, #6
8012af0: e00a b.n 8012b08 <HAL_GPIO_Init+0x240>
8012af2: 2305 movs r3, #5
8012af4: e008 b.n 8012b08 <HAL_GPIO_Init+0x240>
8012af6: 2304 movs r3, #4
8012af8: e006 b.n 8012b08 <HAL_GPIO_Init+0x240>
8012afa: 2303 movs r3, #3
8012afc: e004 b.n 8012b08 <HAL_GPIO_Init+0x240>
8012afe: 2302 movs r3, #2
8012b00: e002 b.n 8012b08 <HAL_GPIO_Init+0x240>
8012b02: 2301 movs r3, #1
8012b04: e000 b.n 8012b08 <HAL_GPIO_Init+0x240>
8012b06: 2300 movs r3, #0
8012b08: 69fa ldr r2, [r7, #28]
8012b0a: f002 0203 and.w r2, r2, #3
8012b0e: 0092 lsls r2, r2, #2
8012b10: 4093 lsls r3, r2
8012b12: 69ba ldr r2, [r7, #24]
8012b14: 4313 orrs r3, r2
8012b16: 61bb str r3, [r7, #24]
SYSCFG->EXTICR[position >> 2] = temp;
8012b18: 4934 ldr r1, [pc, #208] ; (8012bec <HAL_GPIO_Init+0x324>)
8012b1a: 69fb ldr r3, [r7, #28]
8012b1c: 089b lsrs r3, r3, #2
8012b1e: 3302 adds r3, #2
8012b20: 69ba ldr r2, [r7, #24]
8012b22: f841 2023 str.w r2, [r1, r3, lsl #2]
/* Clear Rising Falling edge configuration */
temp = EXTI->RTSR;
8012b26: 4b3c ldr r3, [pc, #240] ; (8012c18 <HAL_GPIO_Init+0x350>)
8012b28: 689b ldr r3, [r3, #8]
8012b2a: 61bb str r3, [r7, #24]
temp &= ~((uint32_t)iocurrent);
8012b2c: 693b ldr r3, [r7, #16]
8012b2e: 43db mvns r3, r3
8012b30: 69ba ldr r2, [r7, #24]
8012b32: 4013 ands r3, r2
8012b34: 61bb str r3, [r7, #24]
if((GPIO_Init->Mode & TRIGGER_RISING) != 0x00u)
8012b36: 683b ldr r3, [r7, #0]
8012b38: 685b ldr r3, [r3, #4]
8012b3a: f403 1380 and.w r3, r3, #1048576 ; 0x100000
8012b3e: 2b00 cmp r3, #0
8012b40: d003 beq.n 8012b4a <HAL_GPIO_Init+0x282>
{
temp |= iocurrent;
8012b42: 69ba ldr r2, [r7, #24]
8012b44: 693b ldr r3, [r7, #16]
8012b46: 4313 orrs r3, r2
8012b48: 61bb str r3, [r7, #24]
}
EXTI->RTSR = temp;
8012b4a: 4a33 ldr r2, [pc, #204] ; (8012c18 <HAL_GPIO_Init+0x350>)
8012b4c: 69bb ldr r3, [r7, #24]
8012b4e: 6093 str r3, [r2, #8]
temp = EXTI->FTSR;
8012b50: 4b31 ldr r3, [pc, #196] ; (8012c18 <HAL_GPIO_Init+0x350>)
8012b52: 68db ldr r3, [r3, #12]
8012b54: 61bb str r3, [r7, #24]
temp &= ~((uint32_t)iocurrent);
8012b56: 693b ldr r3, [r7, #16]
8012b58: 43db mvns r3, r3
8012b5a: 69ba ldr r2, [r7, #24]
8012b5c: 4013 ands r3, r2
8012b5e: 61bb str r3, [r7, #24]
if((GPIO_Init->Mode & TRIGGER_FALLING) != 0x00u)
8012b60: 683b ldr r3, [r7, #0]
8012b62: 685b ldr r3, [r3, #4]
8012b64: f403 1300 and.w r3, r3, #2097152 ; 0x200000
8012b68: 2b00 cmp r3, #0
8012b6a: d003 beq.n 8012b74 <HAL_GPIO_Init+0x2ac>
{
temp |= iocurrent;
8012b6c: 69ba ldr r2, [r7, #24]
8012b6e: 693b ldr r3, [r7, #16]
8012b70: 4313 orrs r3, r2
8012b72: 61bb str r3, [r7, #24]
}
EXTI->FTSR = temp;
8012b74: 4a28 ldr r2, [pc, #160] ; (8012c18 <HAL_GPIO_Init+0x350>)
8012b76: 69bb ldr r3, [r7, #24]
8012b78: 60d3 str r3, [r2, #12]
temp = EXTI->EMR;
8012b7a: 4b27 ldr r3, [pc, #156] ; (8012c18 <HAL_GPIO_Init+0x350>)
8012b7c: 685b ldr r3, [r3, #4]
8012b7e: 61bb str r3, [r7, #24]
temp &= ~((uint32_t)iocurrent);
8012b80: 693b ldr r3, [r7, #16]
8012b82: 43db mvns r3, r3
8012b84: 69ba ldr r2, [r7, #24]
8012b86: 4013 ands r3, r2
8012b88: 61bb str r3, [r7, #24]
if((GPIO_Init->Mode & EXTI_EVT) != 0x00u)
8012b8a: 683b ldr r3, [r7, #0]
8012b8c: 685b ldr r3, [r3, #4]
8012b8e: f403 3300 and.w r3, r3, #131072 ; 0x20000
8012b92: 2b00 cmp r3, #0
8012b94: d003 beq.n 8012b9e <HAL_GPIO_Init+0x2d6>
{
temp |= iocurrent;
8012b96: 69ba ldr r2, [r7, #24]
8012b98: 693b ldr r3, [r7, #16]
8012b9a: 4313 orrs r3, r2
8012b9c: 61bb str r3, [r7, #24]
}
EXTI->EMR = temp;
8012b9e: 4a1e ldr r2, [pc, #120] ; (8012c18 <HAL_GPIO_Init+0x350>)
8012ba0: 69bb ldr r3, [r7, #24]
8012ba2: 6053 str r3, [r2, #4]
/* Clear EXTI line configuration */
temp = EXTI->IMR;
8012ba4: 4b1c ldr r3, [pc, #112] ; (8012c18 <HAL_GPIO_Init+0x350>)
8012ba6: 681b ldr r3, [r3, #0]
8012ba8: 61bb str r3, [r7, #24]
temp &= ~((uint32_t)iocurrent);
8012baa: 693b ldr r3, [r7, #16]
8012bac: 43db mvns r3, r3
8012bae: 69ba ldr r2, [r7, #24]
8012bb0: 4013 ands r3, r2
8012bb2: 61bb str r3, [r7, #24]
if((GPIO_Init->Mode & EXTI_IT) != 0x00u)
8012bb4: 683b ldr r3, [r7, #0]
8012bb6: 685b ldr r3, [r3, #4]
8012bb8: f403 3380 and.w r3, r3, #65536 ; 0x10000
8012bbc: 2b00 cmp r3, #0
8012bbe: d003 beq.n 8012bc8 <HAL_GPIO_Init+0x300>
{
temp |= iocurrent;
8012bc0: 69ba ldr r2, [r7, #24]
8012bc2: 693b ldr r3, [r7, #16]
8012bc4: 4313 orrs r3, r2
8012bc6: 61bb str r3, [r7, #24]
}
EXTI->IMR = temp;
8012bc8: 4a13 ldr r2, [pc, #76] ; (8012c18 <HAL_GPIO_Init+0x350>)
8012bca: 69bb ldr r3, [r7, #24]
8012bcc: 6013 str r3, [r2, #0]
for(position = 0; position < GPIO_NUMBER; position++)
8012bce: 69fb ldr r3, [r7, #28]
8012bd0: 3301 adds r3, #1
8012bd2: 61fb str r3, [r7, #28]
8012bd4: 69fb ldr r3, [r7, #28]
8012bd6: 2b0f cmp r3, #15
8012bd8: f67f ae86 bls.w 80128e8 <HAL_GPIO_Init+0x20>
}
}
}
}
8012bdc: bf00 nop
8012bde: 3724 adds r7, #36 ; 0x24
8012be0: 46bd mov sp, r7
8012be2: f85d 7b04 ldr.w r7, [sp], #4
8012be6: 4770 bx lr
8012be8: 40023800 .word 0x40023800
8012bec: 40013800 .word 0x40013800
8012bf0: 40020000 .word 0x40020000
8012bf4: 40020400 .word 0x40020400
8012bf8: 40020800 .word 0x40020800
8012bfc: 40020c00 .word 0x40020c00
8012c00: 40021000 .word 0x40021000
8012c04: 40021400 .word 0x40021400
8012c08: 40021800 .word 0x40021800
8012c0c: 40021c00 .word 0x40021c00
8012c10: 40022000 .word 0x40022000
8012c14: 40022400 .word 0x40022400
8012c18: 40013c00 .word 0x40013c00
08012c1c <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)
{
8012c1c: b480 push {r7}
8012c1e: b085 sub sp, #20
8012c20: af00 add r7, sp, #0
8012c22: 6078 str r0, [r7, #4]
8012c24: 460b mov r3, r1
8012c26: 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)
8012c28: 687b ldr r3, [r7, #4]
8012c2a: 691a ldr r2, [r3, #16]
8012c2c: 887b ldrh r3, [r7, #2]
8012c2e: 4013 ands r3, r2
8012c30: 2b00 cmp r3, #0
8012c32: d002 beq.n 8012c3a <HAL_GPIO_ReadPin+0x1e>
{
bitstatus = GPIO_PIN_SET;
8012c34: 2301 movs r3, #1
8012c36: 73fb strb r3, [r7, #15]
8012c38: e001 b.n 8012c3e <HAL_GPIO_ReadPin+0x22>
}
else
{
bitstatus = GPIO_PIN_RESET;
8012c3a: 2300 movs r3, #0
8012c3c: 73fb strb r3, [r7, #15]
}
return bitstatus;
8012c3e: 7bfb ldrb r3, [r7, #15]
}
8012c40: 4618 mov r0, r3
8012c42: 3714 adds r7, #20
8012c44: 46bd mov sp, r7
8012c46: f85d 7b04 ldr.w r7, [sp], #4
8012c4a: 4770 bx lr
08012c4c <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)
{
8012c4c: b480 push {r7}
8012c4e: b083 sub sp, #12
8012c50: af00 add r7, sp, #0
8012c52: 6078 str r0, [r7, #4]
8012c54: 460b mov r3, r1
8012c56: 807b strh r3, [r7, #2]
8012c58: 4613 mov r3, r2
8012c5a: 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)
8012c5c: 787b ldrb r3, [r7, #1]
8012c5e: 2b00 cmp r3, #0
8012c60: d003 beq.n 8012c6a <HAL_GPIO_WritePin+0x1e>
{
GPIOx->BSRR = GPIO_Pin;
8012c62: 887a ldrh r2, [r7, #2]
8012c64: 687b ldr r3, [r7, #4]
8012c66: 619a str r2, [r3, #24]
}
else
{
GPIOx->BSRR = (uint32_t)GPIO_Pin << 16;
}
}
8012c68: e003 b.n 8012c72 <HAL_GPIO_WritePin+0x26>
GPIOx->BSRR = (uint32_t)GPIO_Pin << 16;
8012c6a: 887b ldrh r3, [r7, #2]
8012c6c: 041a lsls r2, r3, #16
8012c6e: 687b ldr r3, [r7, #4]
8012c70: 619a str r2, [r3, #24]
}
8012c72: bf00 nop
8012c74: 370c adds r7, #12
8012c76: 46bd mov sp, r7
8012c78: f85d 7b04 ldr.w r7, [sp], #4
8012c7c: 4770 bx lr
...
08012c80 <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)
{
8012c80: b580 push {r7, lr}
8012c82: b082 sub sp, #8
8012c84: af00 add r7, sp, #0
8012c86: 4603 mov r3, r0
8012c88: 80fb strh r3, [r7, #6]
/* EXTI line interrupt detected */
if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != RESET)
8012c8a: 4b08 ldr r3, [pc, #32] ; (8012cac <HAL_GPIO_EXTI_IRQHandler+0x2c>)
8012c8c: 695a ldr r2, [r3, #20]
8012c8e: 88fb ldrh r3, [r7, #6]
8012c90: 4013 ands r3, r2
8012c92: 2b00 cmp r3, #0
8012c94: d006 beq.n 8012ca4 <HAL_GPIO_EXTI_IRQHandler+0x24>
{
__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
8012c96: 4a05 ldr r2, [pc, #20] ; (8012cac <HAL_GPIO_EXTI_IRQHandler+0x2c>)
8012c98: 88fb ldrh r3, [r7, #6]
8012c9a: 6153 str r3, [r2, #20]
HAL_GPIO_EXTI_Callback(GPIO_Pin);
8012c9c: 88fb ldrh r3, [r7, #6]
8012c9e: 4618 mov r0, r3
8012ca0: f7f3 f910 bl 8005ec4 <HAL_GPIO_EXTI_Callback>
}
}
8012ca4: bf00 nop
8012ca6: 3708 adds r7, #8
8012ca8: 46bd mov sp, r7
8012caa: bd80 pop {r7, pc}
8012cac: 40013c00 .word 0x40013c00
08012cb0 <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)
{
8012cb0: b580 push {r7, lr}
8012cb2: b084 sub sp, #16
8012cb4: af00 add r7, sp, #0
8012cb6: 6078 str r0, [r7, #4]
uint32_t tmp, tmp1;
/* Check the LTDC peripheral state */
if (hltdc == NULL)
8012cb8: 687b ldr r3, [r7, #4]
8012cba: 2b00 cmp r3, #0
8012cbc: d101 bne.n 8012cc2 <HAL_LTDC_Init+0x12>
{
return HAL_ERROR;
8012cbe: 2301 movs r3, #1
8012cc0: e0bf b.n 8012e42 <HAL_LTDC_Init+0x192>
}
/* Init the low level hardware */
hltdc->MspInitCallback(hltdc);
}
#else
if (hltdc->State == HAL_LTDC_STATE_RESET)
8012cc2: 687b ldr r3, [r7, #4]
8012cc4: f893 30a1 ldrb.w r3, [r3, #161] ; 0xa1
8012cc8: b2db uxtb r3, r3
8012cca: 2b00 cmp r3, #0
8012ccc: d106 bne.n 8012cdc <HAL_LTDC_Init+0x2c>
{
/* Allocate lock resource and initialize it */
hltdc->Lock = HAL_UNLOCKED;
8012cce: 687b ldr r3, [r7, #4]
8012cd0: 2200 movs r2, #0
8012cd2: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
/* Init the low level hardware */
HAL_LTDC_MspInit(hltdc);
8012cd6: 6878 ldr r0, [r7, #4]
8012cd8: f7f1 ff10 bl 8004afc <HAL_LTDC_MspInit>
}
#endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
/* Change LTDC peripheral state */
hltdc->State = HAL_LTDC_STATE_BUSY;
8012cdc: 687b ldr r3, [r7, #4]
8012cde: 2202 movs r2, #2
8012ce0: 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);
8012ce4: 687b ldr r3, [r7, #4]
8012ce6: 681b ldr r3, [r3, #0]
8012ce8: 687a ldr r2, [r7, #4]
8012cea: 6812 ldr r2, [r2, #0]
8012cec: 6992 ldr r2, [r2, #24]
8012cee: f022 4270 bic.w r2, r2, #4026531840 ; 0xf0000000
8012cf2: 619a str r2, [r3, #24]
hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \
8012cf4: 687b ldr r3, [r7, #4]
8012cf6: 681b ldr r3, [r3, #0]
8012cf8: 687a ldr r2, [r7, #4]
8012cfa: 6812 ldr r2, [r2, #0]
8012cfc: 6991 ldr r1, [r2, #24]
8012cfe: 687a ldr r2, [r7, #4]
8012d00: 6850 ldr r0, [r2, #4]
8012d02: 687a ldr r2, [r7, #4]
8012d04: 6892 ldr r2, [r2, #8]
8012d06: 4310 orrs r0, r2
hltdc->Init.DEPolarity | hltdc->Init.PCPolarity);
8012d08: 687a ldr r2, [r7, #4]
8012d0a: 68d2 ldr r2, [r2, #12]
hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \
8012d0c: 4310 orrs r0, r2
hltdc->Init.DEPolarity | hltdc->Init.PCPolarity);
8012d0e: 687a ldr r2, [r7, #4]
8012d10: 6912 ldr r2, [r2, #16]
8012d12: 4302 orrs r2, r0
hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \
8012d14: 430a orrs r2, r1
8012d16: 619a str r2, [r3, #24]
/* Set Synchronization size */
hltdc->Instance->SSCR &= ~(LTDC_SSCR_VSH | LTDC_SSCR_HSW);
8012d18: 687b ldr r3, [r7, #4]
8012d1a: 681a ldr r2, [r3, #0]
8012d1c: 687b ldr r3, [r7, #4]
8012d1e: 681b ldr r3, [r3, #0]
8012d20: 6899 ldr r1, [r3, #8]
8012d22: 4b4a ldr r3, [pc, #296] ; (8012e4c <HAL_LTDC_Init+0x19c>)
8012d24: 400b ands r3, r1
8012d26: 6093 str r3, [r2, #8]
tmp = (hltdc->Init.HorizontalSync << 16U);
8012d28: 687b ldr r3, [r7, #4]
8012d2a: 695b ldr r3, [r3, #20]
8012d2c: 041b lsls r3, r3, #16
8012d2e: 60fb str r3, [r7, #12]
hltdc->Instance->SSCR |= (tmp | hltdc->Init.VerticalSync);
8012d30: 687b ldr r3, [r7, #4]
8012d32: 681b ldr r3, [r3, #0]
8012d34: 687a ldr r2, [r7, #4]
8012d36: 6812 ldr r2, [r2, #0]
8012d38: 6891 ldr r1, [r2, #8]
8012d3a: 687a ldr r2, [r7, #4]
8012d3c: 6990 ldr r0, [r2, #24]
8012d3e: 68fa ldr r2, [r7, #12]
8012d40: 4302 orrs r2, r0
8012d42: 430a orrs r2, r1
8012d44: 609a str r2, [r3, #8]
/* Set Accumulated Back porch */
hltdc->Instance->BPCR &= ~(LTDC_BPCR_AVBP | LTDC_BPCR_AHBP);
8012d46: 687b ldr r3, [r7, #4]
8012d48: 681a ldr r2, [r3, #0]
8012d4a: 687b ldr r3, [r7, #4]
8012d4c: 681b ldr r3, [r3, #0]
8012d4e: 68d9 ldr r1, [r3, #12]
8012d50: 4b3e ldr r3, [pc, #248] ; (8012e4c <HAL_LTDC_Init+0x19c>)
8012d52: 400b ands r3, r1
8012d54: 60d3 str r3, [r2, #12]
tmp = (hltdc->Init.AccumulatedHBP << 16U);
8012d56: 687b ldr r3, [r7, #4]
8012d58: 69db ldr r3, [r3, #28]
8012d5a: 041b lsls r3, r3, #16
8012d5c: 60fb str r3, [r7, #12]
hltdc->Instance->BPCR |= (tmp | hltdc->Init.AccumulatedVBP);
8012d5e: 687b ldr r3, [r7, #4]
8012d60: 681b ldr r3, [r3, #0]
8012d62: 687a ldr r2, [r7, #4]
8012d64: 6812 ldr r2, [r2, #0]
8012d66: 68d1 ldr r1, [r2, #12]
8012d68: 687a ldr r2, [r7, #4]
8012d6a: 6a10 ldr r0, [r2, #32]
8012d6c: 68fa ldr r2, [r7, #12]
8012d6e: 4302 orrs r2, r0
8012d70: 430a orrs r2, r1
8012d72: 60da str r2, [r3, #12]
/* Set Accumulated Active Width */
hltdc->Instance->AWCR &= ~(LTDC_AWCR_AAH | LTDC_AWCR_AAW);
8012d74: 687b ldr r3, [r7, #4]
8012d76: 681a ldr r2, [r3, #0]
8012d78: 687b ldr r3, [r7, #4]
8012d7a: 681b ldr r3, [r3, #0]
8012d7c: 6919 ldr r1, [r3, #16]
8012d7e: 4b33 ldr r3, [pc, #204] ; (8012e4c <HAL_LTDC_Init+0x19c>)
8012d80: 400b ands r3, r1
8012d82: 6113 str r3, [r2, #16]
tmp = (hltdc->Init.AccumulatedActiveW << 16U);
8012d84: 687b ldr r3, [r7, #4]
8012d86: 6a5b ldr r3, [r3, #36] ; 0x24
8012d88: 041b lsls r3, r3, #16
8012d8a: 60fb str r3, [r7, #12]
hltdc->Instance->AWCR |= (tmp | hltdc->Init.AccumulatedActiveH);
8012d8c: 687b ldr r3, [r7, #4]
8012d8e: 681b ldr r3, [r3, #0]
8012d90: 687a ldr r2, [r7, #4]
8012d92: 6812 ldr r2, [r2, #0]
8012d94: 6911 ldr r1, [r2, #16]
8012d96: 687a ldr r2, [r7, #4]
8012d98: 6a90 ldr r0, [r2, #40] ; 0x28
8012d9a: 68fa ldr r2, [r7, #12]
8012d9c: 4302 orrs r2, r0
8012d9e: 430a orrs r2, r1
8012da0: 611a str r2, [r3, #16]
/* Set Total Width */
hltdc->Instance->TWCR &= ~(LTDC_TWCR_TOTALH | LTDC_TWCR_TOTALW);
8012da2: 687b ldr r3, [r7, #4]
8012da4: 681a ldr r2, [r3, #0]
8012da6: 687b ldr r3, [r7, #4]
8012da8: 681b ldr r3, [r3, #0]
8012daa: 6959 ldr r1, [r3, #20]
8012dac: 4b27 ldr r3, [pc, #156] ; (8012e4c <HAL_LTDC_Init+0x19c>)
8012dae: 400b ands r3, r1
8012db0: 6153 str r3, [r2, #20]
tmp = (hltdc->Init.TotalWidth << 16U);
8012db2: 687b ldr r3, [r7, #4]
8012db4: 6adb ldr r3, [r3, #44] ; 0x2c
8012db6: 041b lsls r3, r3, #16
8012db8: 60fb str r3, [r7, #12]
hltdc->Instance->TWCR |= (tmp | hltdc->Init.TotalHeigh);
8012dba: 687b ldr r3, [r7, #4]
8012dbc: 681b ldr r3, [r3, #0]
8012dbe: 687a ldr r2, [r7, #4]
8012dc0: 6812 ldr r2, [r2, #0]
8012dc2: 6951 ldr r1, [r2, #20]
8012dc4: 687a ldr r2, [r7, #4]
8012dc6: 6b10 ldr r0, [r2, #48] ; 0x30
8012dc8: 68fa ldr r2, [r7, #12]
8012dca: 4302 orrs r2, r0
8012dcc: 430a orrs r2, r1
8012dce: 615a str r2, [r3, #20]
/* Set the background color value */
tmp = ((uint32_t)(hltdc->Init.Backcolor.Green) << 8U);
8012dd0: 687b ldr r3, [r7, #4]
8012dd2: f893 3035 ldrb.w r3, [r3, #53] ; 0x35
8012dd6: 021b lsls r3, r3, #8
8012dd8: 60fb str r3, [r7, #12]
tmp1 = ((uint32_t)(hltdc->Init.Backcolor.Red) << 16U);
8012dda: 687b ldr r3, [r7, #4]
8012ddc: f893 3036 ldrb.w r3, [r3, #54] ; 0x36
8012de0: 041b lsls r3, r3, #16
8012de2: 60bb str r3, [r7, #8]
hltdc->Instance->BCCR &= ~(LTDC_BCCR_BCBLUE | LTDC_BCCR_BCGREEN | LTDC_BCCR_BCRED);
8012de4: 687b ldr r3, [r7, #4]
8012de6: 681b ldr r3, [r3, #0]
8012de8: 687a ldr r2, [r7, #4]
8012dea: 6812 ldr r2, [r2, #0]
8012dec: 6ad2 ldr r2, [r2, #44] ; 0x2c
8012dee: f002 427f and.w r2, r2, #4278190080 ; 0xff000000
8012df2: 62da str r2, [r3, #44] ; 0x2c
hltdc->Instance->BCCR |= (tmp1 | tmp | hltdc->Init.Backcolor.Blue);
8012df4: 687b ldr r3, [r7, #4]
8012df6: 681b ldr r3, [r3, #0]
8012df8: 687a ldr r2, [r7, #4]
8012dfa: 6812 ldr r2, [r2, #0]
8012dfc: 6ad1 ldr r1, [r2, #44] ; 0x2c
8012dfe: 68b8 ldr r0, [r7, #8]
8012e00: 68fa ldr r2, [r7, #12]
8012e02: 4302 orrs r2, r0
8012e04: 6878 ldr r0, [r7, #4]
8012e06: f890 0034 ldrb.w r0, [r0, #52] ; 0x34
8012e0a: 4302 orrs r2, r0
8012e0c: 430a orrs r2, r1
8012e0e: 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);
8012e10: 687b ldr r3, [r7, #4]
8012e12: 681b ldr r3, [r3, #0]
8012e14: 687a ldr r2, [r7, #4]
8012e16: 6812 ldr r2, [r2, #0]
8012e18: 6b52 ldr r2, [r2, #52] ; 0x34
8012e1a: f042 0206 orr.w r2, r2, #6
8012e1e: 635a str r2, [r3, #52] ; 0x34
/* Enable LTDC by setting LTDCEN bit */
__HAL_LTDC_ENABLE(hltdc);
8012e20: 687b ldr r3, [r7, #4]
8012e22: 681b ldr r3, [r3, #0]
8012e24: 687a ldr r2, [r7, #4]
8012e26: 6812 ldr r2, [r2, #0]
8012e28: 6992 ldr r2, [r2, #24]
8012e2a: f042 0201 orr.w r2, r2, #1
8012e2e: 619a str r2, [r3, #24]
/* Initialize the error code */
hltdc->ErrorCode = HAL_LTDC_ERROR_NONE;
8012e30: 687b ldr r3, [r7, #4]
8012e32: 2200 movs r2, #0
8012e34: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4
/* Initialize the LTDC state*/
hltdc->State = HAL_LTDC_STATE_READY;
8012e38: 687b ldr r3, [r7, #4]
8012e3a: 2201 movs r2, #1
8012e3c: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
return HAL_OK;
8012e40: 2300 movs r3, #0
}
8012e42: 4618 mov r0, r3
8012e44: 3710 adds r7, #16
8012e46: 46bd mov sp, r7
8012e48: bd80 pop {r7, pc}
8012e4a: bf00 nop
8012e4c: f000f800 .word 0xf000f800
08012e50 <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)
{
8012e50: b580 push {r7, lr}
8012e52: b084 sub sp, #16
8012e54: af00 add r7, sp, #0
8012e56: 6078 str r0, [r7, #4]
uint32_t isrflags = READ_REG(hltdc->Instance->ISR);
8012e58: 687b ldr r3, [r7, #4]
8012e5a: 681b ldr r3, [r3, #0]
8012e5c: 6b9b ldr r3, [r3, #56] ; 0x38
8012e5e: 60fb str r3, [r7, #12]
uint32_t itsources = READ_REG(hltdc->Instance->IER);
8012e60: 687b ldr r3, [r7, #4]
8012e62: 681b ldr r3, [r3, #0]
8012e64: 6b5b ldr r3, [r3, #52] ; 0x34
8012e66: 60bb str r3, [r7, #8]
/* Transfer Error Interrupt management ***************************************/
if (((isrflags & LTDC_ISR_TERRIF) != 0U) && ((itsources & LTDC_IER_TERRIE) != 0U))
8012e68: 68fb ldr r3, [r7, #12]
8012e6a: f003 0304 and.w r3, r3, #4
8012e6e: 2b00 cmp r3, #0
8012e70: d023 beq.n 8012eba <HAL_LTDC_IRQHandler+0x6a>
8012e72: 68bb ldr r3, [r7, #8]
8012e74: f003 0304 and.w r3, r3, #4
8012e78: 2b00 cmp r3, #0
8012e7a: d01e beq.n 8012eba <HAL_LTDC_IRQHandler+0x6a>
{
/* Disable the transfer Error interrupt */
__HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_TE);
8012e7c: 687b ldr r3, [r7, #4]
8012e7e: 681b ldr r3, [r3, #0]
8012e80: 687a ldr r2, [r7, #4]
8012e82: 6812 ldr r2, [r2, #0]
8012e84: 6b52 ldr r2, [r2, #52] ; 0x34
8012e86: f022 0204 bic.w r2, r2, #4
8012e8a: 635a str r2, [r3, #52] ; 0x34
/* Clear the transfer error flag */
__HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_TE);
8012e8c: 687b ldr r3, [r7, #4]
8012e8e: 681b ldr r3, [r3, #0]
8012e90: 2204 movs r2, #4
8012e92: 63da str r2, [r3, #60] ; 0x3c
/* Update error code */
hltdc->ErrorCode |= HAL_LTDC_ERROR_TE;
8012e94: 687b ldr r3, [r7, #4]
8012e96: f8d3 30a4 ldr.w r3, [r3, #164] ; 0xa4
8012e9a: f043 0201 orr.w r2, r3, #1
8012e9e: 687b ldr r3, [r7, #4]
8012ea0: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4
/* Change LTDC state */
hltdc->State = HAL_LTDC_STATE_ERROR;
8012ea4: 687b ldr r3, [r7, #4]
8012ea6: 2204 movs r2, #4
8012ea8: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
8012eac: 687b ldr r3, [r7, #4]
8012eae: 2200 movs r2, #0
8012eb0: 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);
8012eb4: 6878 ldr r0, [r7, #4]
8012eb6: f000 f86f bl 8012f98 <HAL_LTDC_ErrorCallback>
#endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
}
/* FIFO underrun Interrupt management ***************************************/
if (((isrflags & LTDC_ISR_FUIF) != 0U) && ((itsources & LTDC_IER_FUIE) != 0U))
8012eba: 68fb ldr r3, [r7, #12]
8012ebc: f003 0302 and.w r3, r3, #2
8012ec0: 2b00 cmp r3, #0
8012ec2: d023 beq.n 8012f0c <HAL_LTDC_IRQHandler+0xbc>
8012ec4: 68bb ldr r3, [r7, #8]
8012ec6: f003 0302 and.w r3, r3, #2
8012eca: 2b00 cmp r3, #0
8012ecc: d01e beq.n 8012f0c <HAL_LTDC_IRQHandler+0xbc>
{
/* Disable the FIFO underrun interrupt */
__HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_FU);
8012ece: 687b ldr r3, [r7, #4]
8012ed0: 681b ldr r3, [r3, #0]
8012ed2: 687a ldr r2, [r7, #4]
8012ed4: 6812 ldr r2, [r2, #0]
8012ed6: 6b52 ldr r2, [r2, #52] ; 0x34
8012ed8: f022 0202 bic.w r2, r2, #2
8012edc: 635a str r2, [r3, #52] ; 0x34
/* Clear the FIFO underrun flag */
__HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_FU);
8012ede: 687b ldr r3, [r7, #4]
8012ee0: 681b ldr r3, [r3, #0]
8012ee2: 2202 movs r2, #2
8012ee4: 63da str r2, [r3, #60] ; 0x3c
/* Update error code */
hltdc->ErrorCode |= HAL_LTDC_ERROR_FU;
8012ee6: 687b ldr r3, [r7, #4]
8012ee8: f8d3 30a4 ldr.w r3, [r3, #164] ; 0xa4
8012eec: f043 0202 orr.w r2, r3, #2
8012ef0: 687b ldr r3, [r7, #4]
8012ef2: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4
/* Change LTDC state */
hltdc->State = HAL_LTDC_STATE_ERROR;
8012ef6: 687b ldr r3, [r7, #4]
8012ef8: 2204 movs r2, #4
8012efa: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
8012efe: 687b ldr r3, [r7, #4]
8012f00: 2200 movs r2, #0
8012f02: 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);
8012f06: 6878 ldr r0, [r7, #4]
8012f08: f000 f846 bl 8012f98 <HAL_LTDC_ErrorCallback>
#endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
}
/* Line Interrupt management ************************************************/
if (((isrflags & LTDC_ISR_LIF) != 0U) && ((itsources & LTDC_IER_LIE) != 0U))
8012f0c: 68fb ldr r3, [r7, #12]
8012f0e: f003 0301 and.w r3, r3, #1
8012f12: 2b00 cmp r3, #0
8012f14: d01b beq.n 8012f4e <HAL_LTDC_IRQHandler+0xfe>
8012f16: 68bb ldr r3, [r7, #8]
8012f18: f003 0301 and.w r3, r3, #1
8012f1c: 2b00 cmp r3, #0
8012f1e: d016 beq.n 8012f4e <HAL_LTDC_IRQHandler+0xfe>
{
/* Disable the Line interrupt */
__HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_LI);
8012f20: 687b ldr r3, [r7, #4]
8012f22: 681b ldr r3, [r3, #0]
8012f24: 687a ldr r2, [r7, #4]
8012f26: 6812 ldr r2, [r2, #0]
8012f28: 6b52 ldr r2, [r2, #52] ; 0x34
8012f2a: f022 0201 bic.w r2, r2, #1
8012f2e: 635a str r2, [r3, #52] ; 0x34
/* Clear the Line interrupt flag */
__HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_LI);
8012f30: 687b ldr r3, [r7, #4]
8012f32: 681b ldr r3, [r3, #0]
8012f34: 2201 movs r2, #1
8012f36: 63da str r2, [r3, #60] ; 0x3c
/* Change LTDC state */
hltdc->State = HAL_LTDC_STATE_READY;
8012f38: 687b ldr r3, [r7, #4]
8012f3a: 2201 movs r2, #1
8012f3c: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
8012f40: 687b ldr r3, [r7, #4]
8012f42: 2200 movs r2, #0
8012f44: 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);
8012f48: 6878 ldr r0, [r7, #4]
8012f4a: f7f2 fdf1 bl 8005b30 <HAL_LTDC_LineEventCallback>
#endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
}
/* Register reload Interrupt management ***************************************/
if (((isrflags & LTDC_ISR_RRIF) != 0U) && ((itsources & LTDC_IER_RRIE) != 0U))
8012f4e: 68fb ldr r3, [r7, #12]
8012f50: f003 0308 and.w r3, r3, #8
8012f54: 2b00 cmp r3, #0
8012f56: d01b beq.n 8012f90 <HAL_LTDC_IRQHandler+0x140>
8012f58: 68bb ldr r3, [r7, #8]
8012f5a: f003 0308 and.w r3, r3, #8
8012f5e: 2b00 cmp r3, #0
8012f60: d016 beq.n 8012f90 <HAL_LTDC_IRQHandler+0x140>
{
/* Disable the register reload interrupt */
__HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_RR);
8012f62: 687b ldr r3, [r7, #4]
8012f64: 681b ldr r3, [r3, #0]
8012f66: 687a ldr r2, [r7, #4]
8012f68: 6812 ldr r2, [r2, #0]
8012f6a: 6b52 ldr r2, [r2, #52] ; 0x34
8012f6c: f022 0208 bic.w r2, r2, #8
8012f70: 635a str r2, [r3, #52] ; 0x34
/* Clear the register reload flag */
__HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_RR);
8012f72: 687b ldr r3, [r7, #4]
8012f74: 681b ldr r3, [r3, #0]
8012f76: 2208 movs r2, #8
8012f78: 63da str r2, [r3, #60] ; 0x3c
/* Change LTDC state */
hltdc->State = HAL_LTDC_STATE_READY;
8012f7a: 687b ldr r3, [r7, #4]
8012f7c: 2201 movs r2, #1
8012f7e: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
8012f82: 687b ldr r3, [r7, #4]
8012f84: 2200 movs r2, #0
8012f86: 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);
8012f8a: 6878 ldr r0, [r7, #4]
8012f8c: f000 f80e bl 8012fac <HAL_LTDC_ReloadEventCallback>
#endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
}
}
8012f90: bf00 nop
8012f92: 3710 adds r7, #16
8012f94: 46bd mov sp, r7
8012f96: bd80 pop {r7, pc}
08012f98 <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)
{
8012f98: b480 push {r7}
8012f9a: b083 sub sp, #12
8012f9c: af00 add r7, sp, #0
8012f9e: 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
*/
}
8012fa0: bf00 nop
8012fa2: 370c adds r7, #12
8012fa4: 46bd mov sp, r7
8012fa6: f85d 7b04 ldr.w r7, [sp], #4
8012faa: 4770 bx lr
08012fac <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)
{
8012fac: b480 push {r7}
8012fae: b083 sub sp, #12
8012fb0: af00 add r7, sp, #0
8012fb2: 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
*/
}
8012fb4: bf00 nop
8012fb6: 370c adds r7, #12
8012fb8: 46bd mov sp, r7
8012fba: f85d 7b04 ldr.w r7, [sp], #4
8012fbe: 4770 bx lr
08012fc0 <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)
{
8012fc0: b5b0 push {r4, r5, r7, lr}
8012fc2: b084 sub sp, #16
8012fc4: af00 add r7, sp, #0
8012fc6: 60f8 str r0, [r7, #12]
8012fc8: 60b9 str r1, [r7, #8]
8012fca: 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);
8012fcc: 68fb ldr r3, [r7, #12]
8012fce: f893 30a0 ldrb.w r3, [r3, #160] ; 0xa0
8012fd2: 2b01 cmp r3, #1
8012fd4: d101 bne.n 8012fda <HAL_LTDC_ConfigLayer+0x1a>
8012fd6: 2302 movs r3, #2
8012fd8: e02c b.n 8013034 <HAL_LTDC_ConfigLayer+0x74>
8012fda: 68fb ldr r3, [r7, #12]
8012fdc: 2201 movs r2, #1
8012fde: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
/* Change LTDC peripheral state */
hltdc->State = HAL_LTDC_STATE_BUSY;
8012fe2: 68fb ldr r3, [r7, #12]
8012fe4: 2202 movs r2, #2
8012fe6: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Copy new layer configuration into handle structure */
hltdc->LayerCfg[LayerIdx] = *pLayerCfg;
8012fea: 68fa ldr r2, [r7, #12]
8012fec: 687b ldr r3, [r7, #4]
8012fee: 2134 movs r1, #52 ; 0x34
8012ff0: fb01 f303 mul.w r3, r1, r3
8012ff4: 4413 add r3, r2
8012ff6: f103 0238 add.w r2, r3, #56 ; 0x38
8012ffa: 68bb ldr r3, [r7, #8]
8012ffc: 4614 mov r4, r2
8012ffe: 461d mov r5, r3
8013000: cd0f ldmia r5!, {r0, r1, r2, r3}
8013002: c40f stmia r4!, {r0, r1, r2, r3}
8013004: cd0f ldmia r5!, {r0, r1, r2, r3}
8013006: c40f stmia r4!, {r0, r1, r2, r3}
8013008: cd0f ldmia r5!, {r0, r1, r2, r3}
801300a: c40f stmia r4!, {r0, r1, r2, r3}
801300c: 682b ldr r3, [r5, #0]
801300e: 6023 str r3, [r4, #0]
/* Configure the LTDC Layer */
LTDC_SetConfig(hltdc, pLayerCfg, LayerIdx);
8013010: 687a ldr r2, [r7, #4]
8013012: 68b9 ldr r1, [r7, #8]
8013014: 68f8 ldr r0, [r7, #12]
8013016: f000 f879 bl 801310c <LTDC_SetConfig>
/* Set the Immediate Reload type */
hltdc->Instance->SRCR = LTDC_SRCR_IMR;
801301a: 68fb ldr r3, [r7, #12]
801301c: 681b ldr r3, [r3, #0]
801301e: 2201 movs r2, #1
8013020: 625a str r2, [r3, #36] ; 0x24
/* Initialize the LTDC state*/
hltdc->State = HAL_LTDC_STATE_READY;
8013022: 68fb ldr r3, [r7, #12]
8013024: 2201 movs r2, #1
8013026: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
801302a: 68fb ldr r3, [r7, #12]
801302c: 2200 movs r2, #0
801302e: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
return HAL_OK;
8013032: 2300 movs r3, #0
}
8013034: 4618 mov r0, r3
8013036: 3710 adds r7, #16
8013038: 46bd mov sp, r7
801303a: bdb0 pop {r4, r5, r7, pc}
0801303c <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)
{
801303c: b480 push {r7}
801303e: b083 sub sp, #12
8013040: af00 add r7, sp, #0
8013042: 6078 str r0, [r7, #4]
8013044: 6039 str r1, [r7, #0]
/* Check the parameters */
assert_param(IS_LTDC_LIPOS(Line));
/* Process locked */
__HAL_LOCK(hltdc);
8013046: 687b ldr r3, [r7, #4]
8013048: f893 30a0 ldrb.w r3, [r3, #160] ; 0xa0
801304c: 2b01 cmp r3, #1
801304e: d101 bne.n 8013054 <HAL_LTDC_ProgramLineEvent+0x18>
8013050: 2302 movs r3, #2
8013052: e023 b.n 801309c <HAL_LTDC_ProgramLineEvent+0x60>
8013054: 687b ldr r3, [r7, #4]
8013056: 2201 movs r2, #1
8013058: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
/* Change LTDC peripheral state */
hltdc->State = HAL_LTDC_STATE_BUSY;
801305c: 687b ldr r3, [r7, #4]
801305e: 2202 movs r2, #2
8013060: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Disable the Line interrupt */
__HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_LI);
8013064: 687b ldr r3, [r7, #4]
8013066: 681b ldr r3, [r3, #0]
8013068: 687a ldr r2, [r7, #4]
801306a: 6812 ldr r2, [r2, #0]
801306c: 6b52 ldr r2, [r2, #52] ; 0x34
801306e: f022 0201 bic.w r2, r2, #1
8013072: 635a str r2, [r3, #52] ; 0x34
/* Set the Line Interrupt position */
LTDC->LIPCR = (uint32_t)Line;
8013074: 4a0c ldr r2, [pc, #48] ; (80130a8 <HAL_LTDC_ProgramLineEvent+0x6c>)
8013076: 683b ldr r3, [r7, #0]
8013078: 6413 str r3, [r2, #64] ; 0x40
/* Enable the Line interrupt */
__HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_LI);
801307a: 687b ldr r3, [r7, #4]
801307c: 681b ldr r3, [r3, #0]
801307e: 687a ldr r2, [r7, #4]
8013080: 6812 ldr r2, [r2, #0]
8013082: 6b52 ldr r2, [r2, #52] ; 0x34
8013084: f042 0201 orr.w r2, r2, #1
8013088: 635a str r2, [r3, #52] ; 0x34
/* Change the LTDC state*/
hltdc->State = HAL_LTDC_STATE_READY;
801308a: 687b ldr r3, [r7, #4]
801308c: 2201 movs r2, #1
801308e: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
8013092: 687b ldr r3, [r7, #4]
8013094: 2200 movs r2, #0
8013096: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
return HAL_OK;
801309a: 2300 movs r3, #0
}
801309c: 4618 mov r0, r3
801309e: 370c adds r7, #12
80130a0: 46bd mov sp, r7
80130a2: f85d 7b04 ldr.w r7, [sp], #4
80130a6: 4770 bx lr
80130a8: 40016800 .word 0x40016800
080130ac <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)
{
80130ac: b480 push {r7}
80130ae: b083 sub sp, #12
80130b0: af00 add r7, sp, #0
80130b2: 6078 str r0, [r7, #4]
80130b4: 6039 str r1, [r7, #0]
/* Check the parameters */
assert_param(IS_LTDC_RELOAD(ReloadType));
/* Process locked */
__HAL_LOCK(hltdc);
80130b6: 687b ldr r3, [r7, #4]
80130b8: f893 30a0 ldrb.w r3, [r3, #160] ; 0xa0
80130bc: 2b01 cmp r3, #1
80130be: d101 bne.n 80130c4 <HAL_LTDC_Reload+0x18>
80130c0: 2302 movs r3, #2
80130c2: e01c b.n 80130fe <HAL_LTDC_Reload+0x52>
80130c4: 687b ldr r3, [r7, #4]
80130c6: 2201 movs r2, #1
80130c8: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
/* Change LTDC peripheral state */
hltdc->State = HAL_LTDC_STATE_BUSY;
80130cc: 687b ldr r3, [r7, #4]
80130ce: 2202 movs r2, #2
80130d0: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Enable the Reload interrupt */
__HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_RR);
80130d4: 687b ldr r3, [r7, #4]
80130d6: 681b ldr r3, [r3, #0]
80130d8: 687a ldr r2, [r7, #4]
80130da: 6812 ldr r2, [r2, #0]
80130dc: 6b52 ldr r2, [r2, #52] ; 0x34
80130de: f042 0208 orr.w r2, r2, #8
80130e2: 635a str r2, [r3, #52] ; 0x34
/* Apply Reload type */
hltdc->Instance->SRCR = ReloadType;
80130e4: 687b ldr r3, [r7, #4]
80130e6: 681b ldr r3, [r3, #0]
80130e8: 683a ldr r2, [r7, #0]
80130ea: 625a str r2, [r3, #36] ; 0x24
/* Change the LTDC state*/
hltdc->State = HAL_LTDC_STATE_READY;
80130ec: 687b ldr r3, [r7, #4]
80130ee: 2201 movs r2, #1
80130f0: f883 20a1 strb.w r2, [r3, #161] ; 0xa1
/* Process unlocked */
__HAL_UNLOCK(hltdc);
80130f4: 687b ldr r3, [r7, #4]
80130f6: 2200 movs r2, #0
80130f8: f883 20a0 strb.w r2, [r3, #160] ; 0xa0
return HAL_OK;
80130fc: 2300 movs r3, #0
}
80130fe: 4618 mov r0, r3
8013100: 370c adds r7, #12
8013102: 46bd mov sp, r7
8013104: f85d 7b04 ldr.w r7, [sp], #4
8013108: 4770 bx lr
...
0801310c <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)
{
801310c: b480 push {r7}
801310e: b089 sub sp, #36 ; 0x24
8013110: af00 add r7, sp, #0
8013112: 60f8 str r0, [r7, #12]
8013114: 60b9 str r1, [r7, #8]
8013116: 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);
8013118: 68bb ldr r3, [r7, #8]
801311a: 685a ldr r2, [r3, #4]
801311c: 68fb ldr r3, [r7, #12]
801311e: 681b ldr r3, [r3, #0]
8013120: 68db ldr r3, [r3, #12]
8013122: 0c1b lsrs r3, r3, #16
8013124: f3c3 030b ubfx r3, r3, #0, #12
8013128: 4413 add r3, r2
801312a: 041b lsls r3, r3, #16
801312c: 61fb str r3, [r7, #28]
LTDC_LAYER(hltdc, LayerIdx)->WHPCR &= ~(LTDC_LxWHPCR_WHSTPOS | LTDC_LxWHPCR_WHSPPOS);
801312e: 68fb ldr r3, [r7, #12]
8013130: 681b ldr r3, [r3, #0]
8013132: 461a mov r2, r3
8013134: 687b ldr r3, [r7, #4]
8013136: 01db lsls r3, r3, #7
8013138: 4413 add r3, r2
801313a: 3384 adds r3, #132 ; 0x84
801313c: 461a mov r2, r3
801313e: 68fb ldr r3, [r7, #12]
8013140: 681b ldr r3, [r3, #0]
8013142: 4619 mov r1, r3
8013144: 687b ldr r3, [r7, #4]
8013146: 01db lsls r3, r3, #7
8013148: 440b add r3, r1
801314a: 3384 adds r3, #132 ; 0x84
801314c: 685b ldr r3, [r3, #4]
801314e: f403 4370 and.w r3, r3, #61440 ; 0xf000
8013152: 6053 str r3, [r2, #4]
LTDC_LAYER(hltdc, LayerIdx)->WHPCR = ((pLayerCfg->WindowX0 + ((hltdc->Instance->BPCR & LTDC_BPCR_AHBP) >> 16U) + 1U) | tmp);
8013154: 68fb ldr r3, [r7, #12]
8013156: 681b ldr r3, [r3, #0]
8013158: 461a mov r2, r3
801315a: 687b ldr r3, [r7, #4]
801315c: 01db lsls r3, r3, #7
801315e: 4413 add r3, r2
8013160: 3384 adds r3, #132 ; 0x84
8013162: 4619 mov r1, r3
8013164: 68bb ldr r3, [r7, #8]
8013166: 681a ldr r2, [r3, #0]
8013168: 68fb ldr r3, [r7, #12]
801316a: 681b ldr r3, [r3, #0]
801316c: 68db ldr r3, [r3, #12]
801316e: 0c1b lsrs r3, r3, #16
8013170: f3c3 030b ubfx r3, r3, #0, #12
8013174: 4413 add r3, r2
8013176: 1c5a adds r2, r3, #1
8013178: 69fb ldr r3, [r7, #28]
801317a: 4313 orrs r3, r2
801317c: 604b str r3, [r1, #4]
/* Configure the vertical start and stop position */
tmp = ((pLayerCfg->WindowY1 + (hltdc->Instance->BPCR & LTDC_BPCR_AVBP)) << 16U);
801317e: 68bb ldr r3, [r7, #8]
8013180: 68da ldr r2, [r3, #12]
8013182: 68fb ldr r3, [r7, #12]
8013184: 681b ldr r3, [r3, #0]
8013186: 68db ldr r3, [r3, #12]
8013188: f3c3 030a ubfx r3, r3, #0, #11
801318c: 4413 add r3, r2
801318e: 041b lsls r3, r3, #16
8013190: 61fb str r3, [r7, #28]
LTDC_LAYER(hltdc, LayerIdx)->WVPCR &= ~(LTDC_LxWVPCR_WVSTPOS | LTDC_LxWVPCR_WVSPPOS);
8013192: 68fb ldr r3, [r7, #12]
8013194: 681b ldr r3, [r3, #0]
8013196: 461a mov r2, r3
8013198: 687b ldr r3, [r7, #4]
801319a: 01db lsls r3, r3, #7
801319c: 4413 add r3, r2
801319e: 3384 adds r3, #132 ; 0x84
80131a0: 461a mov r2, r3
80131a2: 68fb ldr r3, [r7, #12]
80131a4: 681b ldr r3, [r3, #0]
80131a6: 4619 mov r1, r3
80131a8: 687b ldr r3, [r7, #4]
80131aa: 01db lsls r3, r3, #7
80131ac: 440b add r3, r1
80131ae: 3384 adds r3, #132 ; 0x84
80131b0: 689b ldr r3, [r3, #8]
80131b2: f403 4370 and.w r3, r3, #61440 ; 0xf000
80131b6: 6093 str r3, [r2, #8]
LTDC_LAYER(hltdc, LayerIdx)->WVPCR = ((pLayerCfg->WindowY0 + (hltdc->Instance->BPCR & LTDC_BPCR_AVBP) + 1U) | tmp);
80131b8: 68fb ldr r3, [r7, #12]
80131ba: 681b ldr r3, [r3, #0]
80131bc: 461a mov r2, r3
80131be: 687b ldr r3, [r7, #4]
80131c0: 01db lsls r3, r3, #7
80131c2: 4413 add r3, r2
80131c4: 3384 adds r3, #132 ; 0x84
80131c6: 4619 mov r1, r3
80131c8: 68bb ldr r3, [r7, #8]
80131ca: 689a ldr r2, [r3, #8]
80131cc: 68fb ldr r3, [r7, #12]
80131ce: 681b ldr r3, [r3, #0]
80131d0: 68db ldr r3, [r3, #12]
80131d2: f3c3 030a ubfx r3, r3, #0, #11
80131d6: 4413 add r3, r2
80131d8: 1c5a adds r2, r3, #1
80131da: 69fb ldr r3, [r7, #28]
80131dc: 4313 orrs r3, r2
80131de: 608b str r3, [r1, #8]
/* Specifies the pixel format */
LTDC_LAYER(hltdc, LayerIdx)->PFCR &= ~(LTDC_LxPFCR_PF);
80131e0: 68fb ldr r3, [r7, #12]
80131e2: 681b ldr r3, [r3, #0]
80131e4: 461a mov r2, r3
80131e6: 687b ldr r3, [r7, #4]
80131e8: 01db lsls r3, r3, #7
80131ea: 4413 add r3, r2
80131ec: 3384 adds r3, #132 ; 0x84
80131ee: 461a mov r2, r3
80131f0: 68fb ldr r3, [r7, #12]
80131f2: 681b ldr r3, [r3, #0]
80131f4: 4619 mov r1, r3
80131f6: 687b ldr r3, [r7, #4]
80131f8: 01db lsls r3, r3, #7
80131fa: 440b add r3, r1
80131fc: 3384 adds r3, #132 ; 0x84
80131fe: 691b ldr r3, [r3, #16]
8013200: f023 0307 bic.w r3, r3, #7
8013204: 6113 str r3, [r2, #16]
LTDC_LAYER(hltdc, LayerIdx)->PFCR = (pLayerCfg->PixelFormat);
8013206: 68fb ldr r3, [r7, #12]
8013208: 681b ldr r3, [r3, #0]
801320a: 461a mov r2, r3
801320c: 687b ldr r3, [r7, #4]
801320e: 01db lsls r3, r3, #7
8013210: 4413 add r3, r2
8013212: 3384 adds r3, #132 ; 0x84
8013214: 461a mov r2, r3
8013216: 68bb ldr r3, [r7, #8]
8013218: 691b ldr r3, [r3, #16]
801321a: 6113 str r3, [r2, #16]
/* Configure the default color values */
tmp = ((uint32_t)(pLayerCfg->Backcolor.Green) << 8U);
801321c: 68bb ldr r3, [r7, #8]
801321e: f893 3031 ldrb.w r3, [r3, #49] ; 0x31
8013222: 021b lsls r3, r3, #8
8013224: 61fb str r3, [r7, #28]
tmp1 = ((uint32_t)(pLayerCfg->Backcolor.Red) << 16U);
8013226: 68bb ldr r3, [r7, #8]
8013228: f893 3032 ldrb.w r3, [r3, #50] ; 0x32
801322c: 041b lsls r3, r3, #16
801322e: 61bb str r3, [r7, #24]
tmp2 = (pLayerCfg->Alpha0 << 24U);
8013230: 68bb ldr r3, [r7, #8]
8013232: 699b ldr r3, [r3, #24]
8013234: 061b lsls r3, r3, #24
8013236: 617b str r3, [r7, #20]
LTDC_LAYER(hltdc, LayerIdx)->DCCR &= ~(LTDC_LxDCCR_DCBLUE | LTDC_LxDCCR_DCGREEN | LTDC_LxDCCR_DCRED | LTDC_LxDCCR_DCALPHA);
8013238: 68fb ldr r3, [r7, #12]
801323a: 681b ldr r3, [r3, #0]
801323c: 461a mov r2, r3
801323e: 687b ldr r3, [r7, #4]
8013240: 01db lsls r3, r3, #7
8013242: 4413 add r3, r2
8013244: 3384 adds r3, #132 ; 0x84
8013246: 699b ldr r3, [r3, #24]
8013248: 68fb ldr r3, [r7, #12]
801324a: 681b ldr r3, [r3, #0]
801324c: 461a mov r2, r3
801324e: 687b ldr r3, [r7, #4]
8013250: 01db lsls r3, r3, #7
8013252: 4413 add r3, r2
8013254: 3384 adds r3, #132 ; 0x84
8013256: 461a mov r2, r3
8013258: 2300 movs r3, #0
801325a: 6193 str r3, [r2, #24]
LTDC_LAYER(hltdc, LayerIdx)->DCCR = (pLayerCfg->Backcolor.Blue | tmp | tmp1 | tmp2);
801325c: 68fb ldr r3, [r7, #12]
801325e: 681b ldr r3, [r3, #0]
8013260: 461a mov r2, r3
8013262: 687b ldr r3, [r7, #4]
8013264: 01db lsls r3, r3, #7
8013266: 4413 add r3, r2
8013268: 3384 adds r3, #132 ; 0x84
801326a: 4619 mov r1, r3
801326c: 68bb ldr r3, [r7, #8]
801326e: f893 3030 ldrb.w r3, [r3, #48] ; 0x30
8013272: 461a mov r2, r3
8013274: 69fb ldr r3, [r7, #28]
8013276: 431a orrs r2, r3
8013278: 69bb ldr r3, [r7, #24]
801327a: 431a orrs r2, r3
801327c: 697b ldr r3, [r7, #20]
801327e: 4313 orrs r3, r2
8013280: 618b str r3, [r1, #24]
/* Specifies the constant alpha value */
LTDC_LAYER(hltdc, LayerIdx)->CACR &= ~(LTDC_LxCACR_CONSTA);
8013282: 68fb ldr r3, [r7, #12]
8013284: 681b ldr r3, [r3, #0]
8013286: 461a mov r2, r3
8013288: 687b ldr r3, [r7, #4]
801328a: 01db lsls r3, r3, #7
801328c: 4413 add r3, r2
801328e: 3384 adds r3, #132 ; 0x84
8013290: 461a mov r2, r3
8013292: 68fb ldr r3, [r7, #12]
8013294: 681b ldr r3, [r3, #0]
8013296: 4619 mov r1, r3
8013298: 687b ldr r3, [r7, #4]
801329a: 01db lsls r3, r3, #7
801329c: 440b add r3, r1
801329e: 3384 adds r3, #132 ; 0x84
80132a0: 695b ldr r3, [r3, #20]
80132a2: f023 03ff bic.w r3, r3, #255 ; 0xff
80132a6: 6153 str r3, [r2, #20]
LTDC_LAYER(hltdc, LayerIdx)->CACR = (pLayerCfg->Alpha);
80132a8: 68fb ldr r3, [r7, #12]
80132aa: 681b ldr r3, [r3, #0]
80132ac: 461a mov r2, r3
80132ae: 687b ldr r3, [r7, #4]
80132b0: 01db lsls r3, r3, #7
80132b2: 4413 add r3, r2
80132b4: 3384 adds r3, #132 ; 0x84
80132b6: 461a mov r2, r3
80132b8: 68bb ldr r3, [r7, #8]
80132ba: 695b ldr r3, [r3, #20]
80132bc: 6153 str r3, [r2, #20]
/* Specifies the blending factors */
LTDC_LAYER(hltdc, LayerIdx)->BFCR &= ~(LTDC_LxBFCR_BF2 | LTDC_LxBFCR_BF1);
80132be: 68fb ldr r3, [r7, #12]
80132c0: 681b ldr r3, [r3, #0]
80132c2: 461a mov r2, r3
80132c4: 687b ldr r3, [r7, #4]
80132c6: 01db lsls r3, r3, #7
80132c8: 4413 add r3, r2
80132ca: 3384 adds r3, #132 ; 0x84
80132cc: 4619 mov r1, r3
80132ce: 68fb ldr r3, [r7, #12]
80132d0: 681b ldr r3, [r3, #0]
80132d2: 461a mov r2, r3
80132d4: 687b ldr r3, [r7, #4]
80132d6: 01db lsls r3, r3, #7
80132d8: 4413 add r3, r2
80132da: 3384 adds r3, #132 ; 0x84
80132dc: 69da ldr r2, [r3, #28]
80132de: 4b5a ldr r3, [pc, #360] ; (8013448 <LTDC_SetConfig+0x33c>)
80132e0: 4013 ands r3, r2
80132e2: 61cb str r3, [r1, #28]
LTDC_LAYER(hltdc, LayerIdx)->BFCR = (pLayerCfg->BlendingFactor1 | pLayerCfg->BlendingFactor2);
80132e4: 68fb ldr r3, [r7, #12]
80132e6: 681b ldr r3, [r3, #0]
80132e8: 461a mov r2, r3
80132ea: 687b ldr r3, [r7, #4]
80132ec: 01db lsls r3, r3, #7
80132ee: 4413 add r3, r2
80132f0: 3384 adds r3, #132 ; 0x84
80132f2: 4619 mov r1, r3
80132f4: 68bb ldr r3, [r7, #8]
80132f6: 69da ldr r2, [r3, #28]
80132f8: 68bb ldr r3, [r7, #8]
80132fa: 6a1b ldr r3, [r3, #32]
80132fc: 4313 orrs r3, r2
80132fe: 61cb str r3, [r1, #28]
/* Configure the color frame buffer start address */
LTDC_LAYER(hltdc, LayerIdx)->CFBAR &= ~(LTDC_LxCFBAR_CFBADD);
8013300: 68fb ldr r3, [r7, #12]
8013302: 681b ldr r3, [r3, #0]
8013304: 461a mov r2, r3
8013306: 687b ldr r3, [r7, #4]
8013308: 01db lsls r3, r3, #7
801330a: 4413 add r3, r2
801330c: 3384 adds r3, #132 ; 0x84
801330e: 6a9b ldr r3, [r3, #40] ; 0x28
8013310: 68fb ldr r3, [r7, #12]
8013312: 681b ldr r3, [r3, #0]
8013314: 461a mov r2, r3
8013316: 687b ldr r3, [r7, #4]
8013318: 01db lsls r3, r3, #7
801331a: 4413 add r3, r2
801331c: 3384 adds r3, #132 ; 0x84
801331e: 461a mov r2, r3
8013320: 2300 movs r3, #0
8013322: 6293 str r3, [r2, #40] ; 0x28
LTDC_LAYER(hltdc, LayerIdx)->CFBAR = (pLayerCfg->FBStartAdress);
8013324: 68fb ldr r3, [r7, #12]
8013326: 681b ldr r3, [r3, #0]
8013328: 461a mov r2, r3
801332a: 687b ldr r3, [r7, #4]
801332c: 01db lsls r3, r3, #7
801332e: 4413 add r3, r2
8013330: 3384 adds r3, #132 ; 0x84
8013332: 461a mov r2, r3
8013334: 68bb ldr r3, [r7, #8]
8013336: 6a5b ldr r3, [r3, #36] ; 0x24
8013338: 6293 str r3, [r2, #40] ; 0x28
if (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB8888)
801333a: 68bb ldr r3, [r7, #8]
801333c: 691b ldr r3, [r3, #16]
801333e: 2b00 cmp r3, #0
8013340: d102 bne.n 8013348 <LTDC_SetConfig+0x23c>
{
tmp = 4U;
8013342: 2304 movs r3, #4
8013344: 61fb str r3, [r7, #28]
8013346: e01b b.n 8013380 <LTDC_SetConfig+0x274>
}
else if (pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_RGB888)
8013348: 68bb ldr r3, [r7, #8]
801334a: 691b ldr r3, [r3, #16]
801334c: 2b01 cmp r3, #1
801334e: d102 bne.n 8013356 <LTDC_SetConfig+0x24a>
{
tmp = 3U;
8013350: 2303 movs r3, #3
8013352: 61fb str r3, [r7, #28]
8013354: e014 b.n 8013380 <LTDC_SetConfig+0x274>
}
else if ((pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB4444) || \
8013356: 68bb ldr r3, [r7, #8]
8013358: 691b ldr r3, [r3, #16]
801335a: 2b04 cmp r3, #4
801335c: d00b beq.n 8013376 <LTDC_SetConfig+0x26a>
(pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_RGB565) || \
801335e: 68bb ldr r3, [r7, #8]
8013360: 691b ldr r3, [r3, #16]
else if ((pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB4444) || \
8013362: 2b02 cmp r3, #2
8013364: d007 beq.n 8013376 <LTDC_SetConfig+0x26a>
(pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB1555) || \
8013366: 68bb ldr r3, [r7, #8]
8013368: 691b ldr r3, [r3, #16]
(pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_RGB565) || \
801336a: 2b03 cmp r3, #3
801336c: d003 beq.n 8013376 <LTDC_SetConfig+0x26a>
(pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_AL88))
801336e: 68bb ldr r3, [r7, #8]
8013370: 691b ldr r3, [r3, #16]
(pLayerCfg->PixelFormat == LTDC_PIXEL_FORMAT_ARGB1555) || \
8013372: 2b07 cmp r3, #7
8013374: d102 bne.n 801337c <LTDC_SetConfig+0x270>
{
tmp = 2U;
8013376: 2302 movs r3, #2
8013378: 61fb str r3, [r7, #28]
801337a: e001 b.n 8013380 <LTDC_SetConfig+0x274>
}
else
{
tmp = 1U;
801337c: 2301 movs r3, #1
801337e: 61fb str r3, [r7, #28]
}
/* Configure the color frame buffer pitch in byte */
LTDC_LAYER(hltdc, LayerIdx)->CFBLR &= ~(LTDC_LxCFBLR_CFBLL | LTDC_LxCFBLR_CFBP);
8013380: 68fb ldr r3, [r7, #12]
8013382: 681b ldr r3, [r3, #0]
8013384: 461a mov r2, r3
8013386: 687b ldr r3, [r7, #4]
8013388: 01db lsls r3, r3, #7
801338a: 4413 add r3, r2
801338c: 3384 adds r3, #132 ; 0x84
801338e: 461a mov r2, r3
8013390: 68fb ldr r3, [r7, #12]
8013392: 681b ldr r3, [r3, #0]
8013394: 4619 mov r1, r3
8013396: 687b ldr r3, [r7, #4]
8013398: 01db lsls r3, r3, #7
801339a: 440b add r3, r1
801339c: 3384 adds r3, #132 ; 0x84
801339e: 6adb ldr r3, [r3, #44] ; 0x2c
80133a0: f003 23e0 and.w r3, r3, #3758153728 ; 0xe000e000
80133a4: 62d3 str r3, [r2, #44] ; 0x2c
LTDC_LAYER(hltdc, LayerIdx)->CFBLR = (((pLayerCfg->ImageWidth * tmp) << 16U) | (((pLayerCfg->WindowX1 - pLayerCfg->WindowX0) * tmp) + 3U));
80133a6: 68fb ldr r3, [r7, #12]
80133a8: 681b ldr r3, [r3, #0]
80133aa: 461a mov r2, r3
80133ac: 687b ldr r3, [r7, #4]
80133ae: 01db lsls r3, r3, #7
80133b0: 4413 add r3, r2
80133b2: 3384 adds r3, #132 ; 0x84
80133b4: 4618 mov r0, r3
80133b6: 68bb ldr r3, [r7, #8]
80133b8: 6a9b ldr r3, [r3, #40] ; 0x28
80133ba: 69fa ldr r2, [r7, #28]
80133bc: fb02 f303 mul.w r3, r2, r3
80133c0: 041a lsls r2, r3, #16
80133c2: 68bb ldr r3, [r7, #8]
80133c4: 6859 ldr r1, [r3, #4]
80133c6: 68bb ldr r3, [r7, #8]
80133c8: 681b ldr r3, [r3, #0]
80133ca: 1acb subs r3, r1, r3
80133cc: 69f9 ldr r1, [r7, #28]
80133ce: fb01 f303 mul.w r3, r1, r3
80133d2: 3303 adds r3, #3
80133d4: 4313 orrs r3, r2
80133d6: 62c3 str r3, [r0, #44] ; 0x2c
/* Configure the frame buffer line number */
LTDC_LAYER(hltdc, LayerIdx)->CFBLNR &= ~(LTDC_LxCFBLNR_CFBLNBR);
80133d8: 68fb ldr r3, [r7, #12]
80133da: 681b ldr r3, [r3, #0]
80133dc: 461a mov r2, r3
80133de: 687b ldr r3, [r7, #4]
80133e0: 01db lsls r3, r3, #7
80133e2: 4413 add r3, r2
80133e4: 3384 adds r3, #132 ; 0x84
80133e6: 4619 mov r1, r3
80133e8: 68fb ldr r3, [r7, #12]
80133ea: 681b ldr r3, [r3, #0]
80133ec: 461a mov r2, r3
80133ee: 687b ldr r3, [r7, #4]
80133f0: 01db lsls r3, r3, #7
80133f2: 4413 add r3, r2
80133f4: 3384 adds r3, #132 ; 0x84
80133f6: 6b1a ldr r2, [r3, #48] ; 0x30
80133f8: 4b14 ldr r3, [pc, #80] ; (801344c <LTDC_SetConfig+0x340>)
80133fa: 4013 ands r3, r2
80133fc: 630b str r3, [r1, #48] ; 0x30
LTDC_LAYER(hltdc, LayerIdx)->CFBLNR = (pLayerCfg->ImageHeight);
80133fe: 68fb ldr r3, [r7, #12]
8013400: 681b ldr r3, [r3, #0]
8013402: 461a mov r2, r3
8013404: 687b ldr r3, [r7, #4]
8013406: 01db lsls r3, r3, #7
8013408: 4413 add r3, r2
801340a: 3384 adds r3, #132 ; 0x84
801340c: 461a mov r2, r3
801340e: 68bb ldr r3, [r7, #8]
8013410: 6adb ldr r3, [r3, #44] ; 0x2c
8013412: 6313 str r3, [r2, #48] ; 0x30
/* Enable LTDC_Layer by setting LEN bit */
LTDC_LAYER(hltdc, LayerIdx)->CR |= (uint32_t)LTDC_LxCR_LEN;
8013414: 68fb ldr r3, [r7, #12]
8013416: 681b ldr r3, [r3, #0]
8013418: 461a mov r2, r3
801341a: 687b ldr r3, [r7, #4]
801341c: 01db lsls r3, r3, #7
801341e: 4413 add r3, r2
8013420: 3384 adds r3, #132 ; 0x84
8013422: 461a mov r2, r3
8013424: 68fb ldr r3, [r7, #12]
8013426: 681b ldr r3, [r3, #0]
8013428: 4619 mov r1, r3
801342a: 687b ldr r3, [r7, #4]
801342c: 01db lsls r3, r3, #7
801342e: 440b add r3, r1
8013430: 3384 adds r3, #132 ; 0x84
8013432: 681b ldr r3, [r3, #0]
8013434: f043 0301 orr.w r3, r3, #1
8013438: 6013 str r3, [r2, #0]
}
801343a: bf00 nop
801343c: 3724 adds r7, #36 ; 0x24
801343e: 46bd mov sp, r7
8013440: f85d 7b04 ldr.w r7, [sp], #4
8013444: 4770 bx lr
8013446: bf00 nop
8013448: fffff8f8 .word 0xfffff8f8
801344c: fffff800 .word 0xfffff800
08013450 <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)
{
8013450: b580 push {r7, lr}
8013452: b086 sub sp, #24
8013454: af00 add r7, sp, #0
8013456: 6078 str r0, [r7, #4]
uint32_t tickstart;
uint32_t pll_config;
FlagStatus pwrclkchanged = RESET;
8013458: 2300 movs r3, #0
801345a: 75fb strb r3, [r7, #23]
/* Check Null pointer */
if (RCC_OscInitStruct == NULL)
801345c: 687b ldr r3, [r7, #4]
801345e: 2b00 cmp r3, #0
8013460: d101 bne.n 8013466 <HAL_RCC_OscConfig+0x16>
{
return HAL_ERROR;
8013462: 2301 movs r3, #1
8013464: e29b b.n 801399e <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)
8013466: 687b ldr r3, [r7, #4]
8013468: 681b ldr r3, [r3, #0]
801346a: f003 0301 and.w r3, r3, #1
801346e: 2b00 cmp r3, #0
8013470: f000 8087 beq.w 8013582 <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)
8013474: 4b96 ldr r3, [pc, #600] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
8013476: 689b ldr r3, [r3, #8]
8013478: f003 030c and.w r3, r3, #12
801347c: 2b04 cmp r3, #4
801347e: d00c beq.n 801349a <HAL_RCC_OscConfig+0x4a>
|| ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSE)))
8013480: 4b93 ldr r3, [pc, #588] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
8013482: 689b ldr r3, [r3, #8]
8013484: f003 030c and.w r3, r3, #12
8013488: 2b08 cmp r3, #8
801348a: d112 bne.n 80134b2 <HAL_RCC_OscConfig+0x62>
801348c: 4b90 ldr r3, [pc, #576] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
801348e: 685b ldr r3, [r3, #4]
8013490: f403 0380 and.w r3, r3, #4194304 ; 0x400000
8013494: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000
8013498: d10b bne.n 80134b2 <HAL_RCC_OscConfig+0x62>
{
if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF))
801349a: 4b8d ldr r3, [pc, #564] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
801349c: 681b ldr r3, [r3, #0]
801349e: f403 3300 and.w r3, r3, #131072 ; 0x20000
80134a2: 2b00 cmp r3, #0
80134a4: d06c beq.n 8013580 <HAL_RCC_OscConfig+0x130>
80134a6: 687b ldr r3, [r7, #4]
80134a8: 685b ldr r3, [r3, #4]
80134aa: 2b00 cmp r3, #0
80134ac: d168 bne.n 8013580 <HAL_RCC_OscConfig+0x130>
{
return HAL_ERROR;
80134ae: 2301 movs r3, #1
80134b0: e275 b.n 801399e <HAL_RCC_OscConfig+0x54e>
}
}
else
{
/* Set the new HSE configuration ---------------------------------------*/
__HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->HSEState);
80134b2: 687b ldr r3, [r7, #4]
80134b4: 685b ldr r3, [r3, #4]
80134b6: f5b3 3f80 cmp.w r3, #65536 ; 0x10000
80134ba: d106 bne.n 80134ca <HAL_RCC_OscConfig+0x7a>
80134bc: 4a84 ldr r2, [pc, #528] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
80134be: 4b84 ldr r3, [pc, #528] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
80134c0: 681b ldr r3, [r3, #0]
80134c2: f443 3380 orr.w r3, r3, #65536 ; 0x10000
80134c6: 6013 str r3, [r2, #0]
80134c8: e02e b.n 8013528 <HAL_RCC_OscConfig+0xd8>
80134ca: 687b ldr r3, [r7, #4]
80134cc: 685b ldr r3, [r3, #4]
80134ce: 2b00 cmp r3, #0
80134d0: d10c bne.n 80134ec <HAL_RCC_OscConfig+0x9c>
80134d2: 4a7f ldr r2, [pc, #508] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
80134d4: 4b7e ldr r3, [pc, #504] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
80134d6: 681b ldr r3, [r3, #0]
80134d8: f423 3380 bic.w r3, r3, #65536 ; 0x10000
80134dc: 6013 str r3, [r2, #0]
80134de: 4a7c ldr r2, [pc, #496] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
80134e0: 4b7b ldr r3, [pc, #492] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
80134e2: 681b ldr r3, [r3, #0]
80134e4: f423 2380 bic.w r3, r3, #262144 ; 0x40000
80134e8: 6013 str r3, [r2, #0]
80134ea: e01d b.n 8013528 <HAL_RCC_OscConfig+0xd8>
80134ec: 687b ldr r3, [r7, #4]
80134ee: 685b ldr r3, [r3, #4]
80134f0: f5b3 2fa0 cmp.w r3, #327680 ; 0x50000
80134f4: d10c bne.n 8013510 <HAL_RCC_OscConfig+0xc0>
80134f6: 4a76 ldr r2, [pc, #472] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
80134f8: 4b75 ldr r3, [pc, #468] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
80134fa: 681b ldr r3, [r3, #0]
80134fc: f443 2380 orr.w r3, r3, #262144 ; 0x40000
8013500: 6013 str r3, [r2, #0]
8013502: 4a73 ldr r2, [pc, #460] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
8013504: 4b72 ldr r3, [pc, #456] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
8013506: 681b ldr r3, [r3, #0]
8013508: f443 3380 orr.w r3, r3, #65536 ; 0x10000
801350c: 6013 str r3, [r2, #0]
801350e: e00b b.n 8013528 <HAL_RCC_OscConfig+0xd8>
8013510: 4a6f ldr r2, [pc, #444] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
8013512: 4b6f ldr r3, [pc, #444] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
8013514: 681b ldr r3, [r3, #0]
8013516: f423 3380 bic.w r3, r3, #65536 ; 0x10000
801351a: 6013 str r3, [r2, #0]
801351c: 4a6c ldr r2, [pc, #432] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
801351e: 4b6c ldr r3, [pc, #432] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
8013520: 681b ldr r3, [r3, #0]
8013522: f423 2380 bic.w r3, r3, #262144 ; 0x40000
8013526: 6013 str r3, [r2, #0]
/* Check the HSE State */
if (RCC_OscInitStruct->HSEState != RCC_HSE_OFF)
8013528: 687b ldr r3, [r7, #4]
801352a: 685b ldr r3, [r3, #4]
801352c: 2b00 cmp r3, #0
801352e: d013 beq.n 8013558 <HAL_RCC_OscConfig+0x108>
{
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013530: f7fe f854 bl 80115dc <HAL_GetTick>
8013534: 6138 str r0, [r7, #16]
/* Wait till HSE is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET)
8013536: e008 b.n 801354a <HAL_RCC_OscConfig+0xfa>
{
if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE)
8013538: f7fe f850 bl 80115dc <HAL_GetTick>
801353c: 4602 mov r2, r0
801353e: 693b ldr r3, [r7, #16]
8013540: 1ad3 subs r3, r2, r3
8013542: 2b64 cmp r3, #100 ; 0x64
8013544: d901 bls.n 801354a <HAL_RCC_OscConfig+0xfa>
{
return HAL_TIMEOUT;
8013546: 2303 movs r3, #3
8013548: e229 b.n 801399e <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET)
801354a: 4b61 ldr r3, [pc, #388] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
801354c: 681b ldr r3, [r3, #0]
801354e: f403 3300 and.w r3, r3, #131072 ; 0x20000
8013552: 2b00 cmp r3, #0
8013554: d0f0 beq.n 8013538 <HAL_RCC_OscConfig+0xe8>
8013556: e014 b.n 8013582 <HAL_RCC_OscConfig+0x132>
}
}
else
{
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013558: f7fe f840 bl 80115dc <HAL_GetTick>
801355c: 6138 str r0, [r7, #16]
/* Wait till HSE is bypassed or disabled */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET)
801355e: e008 b.n 8013572 <HAL_RCC_OscConfig+0x122>
{
if ((HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE)
8013560: f7fe f83c bl 80115dc <HAL_GetTick>
8013564: 4602 mov r2, r0
8013566: 693b ldr r3, [r7, #16]
8013568: 1ad3 subs r3, r2, r3
801356a: 2b64 cmp r3, #100 ; 0x64
801356c: d901 bls.n 8013572 <HAL_RCC_OscConfig+0x122>
{
return HAL_TIMEOUT;
801356e: 2303 movs r3, #3
8013570: e215 b.n 801399e <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET)
8013572: 4b57 ldr r3, [pc, #348] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
8013574: 681b ldr r3, [r3, #0]
8013576: f403 3300 and.w r3, r3, #131072 ; 0x20000
801357a: 2b00 cmp r3, #0
801357c: d1f0 bne.n 8013560 <HAL_RCC_OscConfig+0x110>
801357e: e000 b.n 8013582 <HAL_RCC_OscConfig+0x132>
if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->HSEState == RCC_HSE_OFF))
8013580: bf00 nop
}
}
}
}
/*----------------------------- HSI Configuration --------------------------*/
if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI)
8013582: 687b ldr r3, [r7, #4]
8013584: 681b ldr r3, [r3, #0]
8013586: f003 0302 and.w r3, r3, #2
801358a: 2b00 cmp r3, #0
801358c: d069 beq.n 8013662 <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)
801358e: 4b50 ldr r3, [pc, #320] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
8013590: 689b ldr r3, [r3, #8]
8013592: f003 030c and.w r3, r3, #12
8013596: 2b00 cmp r3, #0
8013598: d00b beq.n 80135b2 <HAL_RCC_OscConfig+0x162>
|| ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_SYSCLKSOURCE_STATUS_PLLCLK) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSI)))
801359a: 4b4d ldr r3, [pc, #308] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
801359c: 689b ldr r3, [r3, #8]
801359e: f003 030c and.w r3, r3, #12
80135a2: 2b08 cmp r3, #8
80135a4: d11c bne.n 80135e0 <HAL_RCC_OscConfig+0x190>
80135a6: 4b4a ldr r3, [pc, #296] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
80135a8: 685b ldr r3, [r3, #4]
80135aa: f403 0380 and.w r3, r3, #4194304 ; 0x400000
80135ae: 2b00 cmp r3, #0
80135b0: d116 bne.n 80135e0 <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))
80135b2: 4b47 ldr r3, [pc, #284] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
80135b4: 681b ldr r3, [r3, #0]
80135b6: f003 0302 and.w r3, r3, #2
80135ba: 2b00 cmp r3, #0
80135bc: d005 beq.n 80135ca <HAL_RCC_OscConfig+0x17a>
80135be: 687b ldr r3, [r7, #4]
80135c0: 68db ldr r3, [r3, #12]
80135c2: 2b01 cmp r3, #1
80135c4: d001 beq.n 80135ca <HAL_RCC_OscConfig+0x17a>
{
return HAL_ERROR;
80135c6: 2301 movs r3, #1
80135c8: e1e9 b.n 801399e <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);
80135ca: 4941 ldr r1, [pc, #260] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
80135cc: 4b40 ldr r3, [pc, #256] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
80135ce: 681b ldr r3, [r3, #0]
80135d0: f023 02f8 bic.w r2, r3, #248 ; 0xf8
80135d4: 687b ldr r3, [r7, #4]
80135d6: 691b ldr r3, [r3, #16]
80135d8: 00db lsls r3, r3, #3
80135da: 4313 orrs r3, r2
80135dc: 600b str r3, [r1, #0]
if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->HSIState != RCC_HSI_ON))
80135de: e040 b.n 8013662 <HAL_RCC_OscConfig+0x212>
}
}
else
{
/* Check the HSI State */
if ((RCC_OscInitStruct->HSIState) != RCC_HSI_OFF)
80135e0: 687b ldr r3, [r7, #4]
80135e2: 68db ldr r3, [r3, #12]
80135e4: 2b00 cmp r3, #0
80135e6: d023 beq.n 8013630 <HAL_RCC_OscConfig+0x1e0>
{
/* Enable the Internal High Speed oscillator (HSI). */
__HAL_RCC_HSI_ENABLE();
80135e8: 4a39 ldr r2, [pc, #228] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
80135ea: 4b39 ldr r3, [pc, #228] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
80135ec: 681b ldr r3, [r3, #0]
80135ee: f043 0301 orr.w r3, r3, #1
80135f2: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
80135f4: f7fd fff2 bl 80115dc <HAL_GetTick>
80135f8: 6138 str r0, [r7, #16]
/* Wait till HSI is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET)
80135fa: e008 b.n 801360e <HAL_RCC_OscConfig+0x1be>
{
if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE)
80135fc: f7fd ffee bl 80115dc <HAL_GetTick>
8013600: 4602 mov r2, r0
8013602: 693b ldr r3, [r7, #16]
8013604: 1ad3 subs r3, r2, r3
8013606: 2b02 cmp r3, #2
8013608: d901 bls.n 801360e <HAL_RCC_OscConfig+0x1be>
{
return HAL_TIMEOUT;
801360a: 2303 movs r3, #3
801360c: e1c7 b.n 801399e <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET)
801360e: 4b30 ldr r3, [pc, #192] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
8013610: 681b ldr r3, [r3, #0]
8013612: f003 0302 and.w r3, r3, #2
8013616: 2b00 cmp r3, #0
8013618: d0f0 beq.n 80135fc <HAL_RCC_OscConfig+0x1ac>
}
}
/* Adjusts the Internal High Speed oscillator (HSI) calibration value.*/
__HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(RCC_OscInitStruct->HSICalibrationValue);
801361a: 492d ldr r1, [pc, #180] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
801361c: 4b2c ldr r3, [pc, #176] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
801361e: 681b ldr r3, [r3, #0]
8013620: f023 02f8 bic.w r2, r3, #248 ; 0xf8
8013624: 687b ldr r3, [r7, #4]
8013626: 691b ldr r3, [r3, #16]
8013628: 00db lsls r3, r3, #3
801362a: 4313 orrs r3, r2
801362c: 600b str r3, [r1, #0]
801362e: e018 b.n 8013662 <HAL_RCC_OscConfig+0x212>
}
else
{
/* Disable the Internal High Speed oscillator (HSI). */
__HAL_RCC_HSI_DISABLE();
8013630: 4a27 ldr r2, [pc, #156] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
8013632: 4b27 ldr r3, [pc, #156] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
8013634: 681b ldr r3, [r3, #0]
8013636: f023 0301 bic.w r3, r3, #1
801363a: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
801363c: f7fd ffce bl 80115dc <HAL_GetTick>
8013640: 6138 str r0, [r7, #16]
/* Wait till HSI is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET)
8013642: e008 b.n 8013656 <HAL_RCC_OscConfig+0x206>
{
if ((HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE)
8013644: f7fd ffca bl 80115dc <HAL_GetTick>
8013648: 4602 mov r2, r0
801364a: 693b ldr r3, [r7, #16]
801364c: 1ad3 subs r3, r2, r3
801364e: 2b02 cmp r3, #2
8013650: d901 bls.n 8013656 <HAL_RCC_OscConfig+0x206>
{
return HAL_TIMEOUT;
8013652: 2303 movs r3, #3
8013654: e1a3 b.n 801399e <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET)
8013656: 4b1e ldr r3, [pc, #120] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
8013658: 681b ldr r3, [r3, #0]
801365a: f003 0302 and.w r3, r3, #2
801365e: 2b00 cmp r3, #0
8013660: d1f0 bne.n 8013644 <HAL_RCC_OscConfig+0x1f4>
}
}
}
}
/*------------------------------ LSI Configuration -------------------------*/
if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI)
8013662: 687b ldr r3, [r7, #4]
8013664: 681b ldr r3, [r3, #0]
8013666: f003 0308 and.w r3, r3, #8
801366a: 2b00 cmp r3, #0
801366c: d038 beq.n 80136e0 <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)
801366e: 687b ldr r3, [r7, #4]
8013670: 695b ldr r3, [r3, #20]
8013672: 2b00 cmp r3, #0
8013674: d019 beq.n 80136aa <HAL_RCC_OscConfig+0x25a>
{
/* Enable the Internal Low Speed oscillator (LSI). */
__HAL_RCC_LSI_ENABLE();
8013676: 4a16 ldr r2, [pc, #88] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
8013678: 4b15 ldr r3, [pc, #84] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
801367a: 6f5b ldr r3, [r3, #116] ; 0x74
801367c: f043 0301 orr.w r3, r3, #1
8013680: 6753 str r3, [r2, #116] ; 0x74
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013682: f7fd ffab bl 80115dc <HAL_GetTick>
8013686: 6138 str r0, [r7, #16]
/* Wait till LSI is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET)
8013688: e008 b.n 801369c <HAL_RCC_OscConfig+0x24c>
{
if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE)
801368a: f7fd ffa7 bl 80115dc <HAL_GetTick>
801368e: 4602 mov r2, r0
8013690: 693b ldr r3, [r7, #16]
8013692: 1ad3 subs r3, r2, r3
8013694: 2b02 cmp r3, #2
8013696: d901 bls.n 801369c <HAL_RCC_OscConfig+0x24c>
{
return HAL_TIMEOUT;
8013698: 2303 movs r3, #3
801369a: e180 b.n 801399e <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET)
801369c: 4b0c ldr r3, [pc, #48] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
801369e: 6f5b ldr r3, [r3, #116] ; 0x74
80136a0: f003 0302 and.w r3, r3, #2
80136a4: 2b00 cmp r3, #0
80136a6: d0f0 beq.n 801368a <HAL_RCC_OscConfig+0x23a>
80136a8: e01a b.n 80136e0 <HAL_RCC_OscConfig+0x290>
}
}
else
{
/* Disable the Internal Low Speed oscillator (LSI). */
__HAL_RCC_LSI_DISABLE();
80136aa: 4a09 ldr r2, [pc, #36] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
80136ac: 4b08 ldr r3, [pc, #32] ; (80136d0 <HAL_RCC_OscConfig+0x280>)
80136ae: 6f5b ldr r3, [r3, #116] ; 0x74
80136b0: f023 0301 bic.w r3, r3, #1
80136b4: 6753 str r3, [r2, #116] ; 0x74
/* Get Start Tick*/
tickstart = HAL_GetTick();
80136b6: f7fd ff91 bl 80115dc <HAL_GetTick>
80136ba: 6138 str r0, [r7, #16]
/* Wait till LSI is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET)
80136bc: e00a b.n 80136d4 <HAL_RCC_OscConfig+0x284>
{
if ((HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE)
80136be: f7fd ff8d bl 80115dc <HAL_GetTick>
80136c2: 4602 mov r2, r0
80136c4: 693b ldr r3, [r7, #16]
80136c6: 1ad3 subs r3, r2, r3
80136c8: 2b02 cmp r3, #2
80136ca: d903 bls.n 80136d4 <HAL_RCC_OscConfig+0x284>
{
return HAL_TIMEOUT;
80136cc: 2303 movs r3, #3
80136ce: e166 b.n 801399e <HAL_RCC_OscConfig+0x54e>
80136d0: 40023800 .word 0x40023800
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET)
80136d4: 4b92 ldr r3, [pc, #584] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
80136d6: 6f5b ldr r3, [r3, #116] ; 0x74
80136d8: f003 0302 and.w r3, r3, #2
80136dc: 2b00 cmp r3, #0
80136de: d1ee bne.n 80136be <HAL_RCC_OscConfig+0x26e>
}
}
}
}
/*------------------------------ LSE Configuration -------------------------*/
if (((RCC_OscInitStruct->OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE)
80136e0: 687b ldr r3, [r7, #4]
80136e2: 681b ldr r3, [r3, #0]
80136e4: f003 0304 and.w r3, r3, #4
80136e8: 2b00 cmp r3, #0
80136ea: f000 80a4 beq.w 8013836 <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())
80136ee: 4b8c ldr r3, [pc, #560] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
80136f0: 6c1b ldr r3, [r3, #64] ; 0x40
80136f2: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
80136f6: 2b00 cmp r3, #0
80136f8: d10d bne.n 8013716 <HAL_RCC_OscConfig+0x2c6>
{
/* Enable Power Clock*/
__HAL_RCC_PWR_CLK_ENABLE();
80136fa: 4a89 ldr r2, [pc, #548] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
80136fc: 4b88 ldr r3, [pc, #544] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
80136fe: 6c1b ldr r3, [r3, #64] ; 0x40
8013700: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
8013704: 6413 str r3, [r2, #64] ; 0x40
8013706: 4b86 ldr r3, [pc, #536] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
8013708: 6c1b ldr r3, [r3, #64] ; 0x40
801370a: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
801370e: 60bb str r3, [r7, #8]
8013710: 68bb ldr r3, [r7, #8]
pwrclkchanged = SET;
8013712: 2301 movs r3, #1
8013714: 75fb strb r3, [r7, #23]
}
if (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP))
8013716: 4b83 ldr r3, [pc, #524] ; (8013924 <HAL_RCC_OscConfig+0x4d4>)
8013718: 681b ldr r3, [r3, #0]
801371a: f403 7380 and.w r3, r3, #256 ; 0x100
801371e: 2b00 cmp r3, #0
8013720: d118 bne.n 8013754 <HAL_RCC_OscConfig+0x304>
{
/* Enable write access to Backup domain */
PWR->CR1 |= PWR_CR1_DBP;
8013722: 4a80 ldr r2, [pc, #512] ; (8013924 <HAL_RCC_OscConfig+0x4d4>)
8013724: 4b7f ldr r3, [pc, #508] ; (8013924 <HAL_RCC_OscConfig+0x4d4>)
8013726: 681b ldr r3, [r3, #0]
8013728: f443 7380 orr.w r3, r3, #256 ; 0x100
801372c: 6013 str r3, [r2, #0]
/* Wait for Backup domain Write protection disable */
tickstart = HAL_GetTick();
801372e: f7fd ff55 bl 80115dc <HAL_GetTick>
8013732: 6138 str r0, [r7, #16]
while (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP))
8013734: e008 b.n 8013748 <HAL_RCC_OscConfig+0x2f8>
{
if ((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE)
8013736: f7fd ff51 bl 80115dc <HAL_GetTick>
801373a: 4602 mov r2, r0
801373c: 693b ldr r3, [r7, #16]
801373e: 1ad3 subs r3, r2, r3
8013740: 2b64 cmp r3, #100 ; 0x64
8013742: d901 bls.n 8013748 <HAL_RCC_OscConfig+0x2f8>
{
return HAL_TIMEOUT;
8013744: 2303 movs r3, #3
8013746: e12a b.n 801399e <HAL_RCC_OscConfig+0x54e>
while (HAL_IS_BIT_CLR(PWR->CR1, PWR_CR1_DBP))
8013748: 4b76 ldr r3, [pc, #472] ; (8013924 <HAL_RCC_OscConfig+0x4d4>)
801374a: 681b ldr r3, [r3, #0]
801374c: f403 7380 and.w r3, r3, #256 ; 0x100
8013750: 2b00 cmp r3, #0
8013752: d0f0 beq.n 8013736 <HAL_RCC_OscConfig+0x2e6>
}
}
}
/* Set the new LSE configuration -----------------------------------------*/
__HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->LSEState);
8013754: 687b ldr r3, [r7, #4]
8013756: 689b ldr r3, [r3, #8]
8013758: 2b01 cmp r3, #1
801375a: d106 bne.n 801376a <HAL_RCC_OscConfig+0x31a>
801375c: 4a70 ldr r2, [pc, #448] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
801375e: 4b70 ldr r3, [pc, #448] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
8013760: 6f1b ldr r3, [r3, #112] ; 0x70
8013762: f043 0301 orr.w r3, r3, #1
8013766: 6713 str r3, [r2, #112] ; 0x70
8013768: e02d b.n 80137c6 <HAL_RCC_OscConfig+0x376>
801376a: 687b ldr r3, [r7, #4]
801376c: 689b ldr r3, [r3, #8]
801376e: 2b00 cmp r3, #0
8013770: d10c bne.n 801378c <HAL_RCC_OscConfig+0x33c>
8013772: 4a6b ldr r2, [pc, #428] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
8013774: 4b6a ldr r3, [pc, #424] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
8013776: 6f1b ldr r3, [r3, #112] ; 0x70
8013778: f023 0301 bic.w r3, r3, #1
801377c: 6713 str r3, [r2, #112] ; 0x70
801377e: 4a68 ldr r2, [pc, #416] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
8013780: 4b67 ldr r3, [pc, #412] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
8013782: 6f1b ldr r3, [r3, #112] ; 0x70
8013784: f023 0304 bic.w r3, r3, #4
8013788: 6713 str r3, [r2, #112] ; 0x70
801378a: e01c b.n 80137c6 <HAL_RCC_OscConfig+0x376>
801378c: 687b ldr r3, [r7, #4]
801378e: 689b ldr r3, [r3, #8]
8013790: 2b05 cmp r3, #5
8013792: d10c bne.n 80137ae <HAL_RCC_OscConfig+0x35e>
8013794: 4a62 ldr r2, [pc, #392] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
8013796: 4b62 ldr r3, [pc, #392] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
8013798: 6f1b ldr r3, [r3, #112] ; 0x70
801379a: f043 0304 orr.w r3, r3, #4
801379e: 6713 str r3, [r2, #112] ; 0x70
80137a0: 4a5f ldr r2, [pc, #380] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
80137a2: 4b5f ldr r3, [pc, #380] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
80137a4: 6f1b ldr r3, [r3, #112] ; 0x70
80137a6: f043 0301 orr.w r3, r3, #1
80137aa: 6713 str r3, [r2, #112] ; 0x70
80137ac: e00b b.n 80137c6 <HAL_RCC_OscConfig+0x376>
80137ae: 4a5c ldr r2, [pc, #368] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
80137b0: 4b5b ldr r3, [pc, #364] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
80137b2: 6f1b ldr r3, [r3, #112] ; 0x70
80137b4: f023 0301 bic.w r3, r3, #1
80137b8: 6713 str r3, [r2, #112] ; 0x70
80137ba: 4a59 ldr r2, [pc, #356] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
80137bc: 4b58 ldr r3, [pc, #352] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
80137be: 6f1b ldr r3, [r3, #112] ; 0x70
80137c0: f023 0304 bic.w r3, r3, #4
80137c4: 6713 str r3, [r2, #112] ; 0x70
/* Check the LSE State */
if ((RCC_OscInitStruct->LSEState) != RCC_LSE_OFF)
80137c6: 687b ldr r3, [r7, #4]
80137c8: 689b ldr r3, [r3, #8]
80137ca: 2b00 cmp r3, #0
80137cc: d015 beq.n 80137fa <HAL_RCC_OscConfig+0x3aa>
{
/* Get Start Tick*/
tickstart = HAL_GetTick();
80137ce: f7fd ff05 bl 80115dc <HAL_GetTick>
80137d2: 6138 str r0, [r7, #16]
/* Wait till LSE is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET)
80137d4: e00a b.n 80137ec <HAL_RCC_OscConfig+0x39c>
{
if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE)
80137d6: f7fd ff01 bl 80115dc <HAL_GetTick>
80137da: 4602 mov r2, r0
80137dc: 693b ldr r3, [r7, #16]
80137de: 1ad3 subs r3, r2, r3
80137e0: f241 3288 movw r2, #5000 ; 0x1388
80137e4: 4293 cmp r3, r2
80137e6: d901 bls.n 80137ec <HAL_RCC_OscConfig+0x39c>
{
return HAL_TIMEOUT;
80137e8: 2303 movs r3, #3
80137ea: e0d8 b.n 801399e <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET)
80137ec: 4b4c ldr r3, [pc, #304] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
80137ee: 6f1b ldr r3, [r3, #112] ; 0x70
80137f0: f003 0302 and.w r3, r3, #2
80137f4: 2b00 cmp r3, #0
80137f6: d0ee beq.n 80137d6 <HAL_RCC_OscConfig+0x386>
80137f8: e014 b.n 8013824 <HAL_RCC_OscConfig+0x3d4>
}
}
else
{
/* Get Start Tick*/
tickstart = HAL_GetTick();
80137fa: f7fd feef bl 80115dc <HAL_GetTick>
80137fe: 6138 str r0, [r7, #16]
/* Wait till LSE is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET)
8013800: e00a b.n 8013818 <HAL_RCC_OscConfig+0x3c8>
{
if ((HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE)
8013802: f7fd feeb bl 80115dc <HAL_GetTick>
8013806: 4602 mov r2, r0
8013808: 693b ldr r3, [r7, #16]
801380a: 1ad3 subs r3, r2, r3
801380c: f241 3288 movw r2, #5000 ; 0x1388
8013810: 4293 cmp r3, r2
8013812: d901 bls.n 8013818 <HAL_RCC_OscConfig+0x3c8>
{
return HAL_TIMEOUT;
8013814: 2303 movs r3, #3
8013816: e0c2 b.n 801399e <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET)
8013818: 4b41 ldr r3, [pc, #260] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
801381a: 6f1b ldr r3, [r3, #112] ; 0x70
801381c: f003 0302 and.w r3, r3, #2
8013820: 2b00 cmp r3, #0
8013822: d1ee bne.n 8013802 <HAL_RCC_OscConfig+0x3b2>
}
}
}
/* Restore clock configuration if changed */
if (pwrclkchanged == SET)
8013824: 7dfb ldrb r3, [r7, #23]
8013826: 2b01 cmp r3, #1
8013828: d105 bne.n 8013836 <HAL_RCC_OscConfig+0x3e6>
{
__HAL_RCC_PWR_CLK_DISABLE();
801382a: 4a3d ldr r2, [pc, #244] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
801382c: 4b3c ldr r3, [pc, #240] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
801382e: 6c1b ldr r3, [r3, #64] ; 0x40
8013830: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000
8013834: 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)
8013836: 687b ldr r3, [r7, #4]
8013838: 699b ldr r3, [r3, #24]
801383a: 2b00 cmp r3, #0
801383c: f000 80ae beq.w 801399c <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)
8013840: 4b37 ldr r3, [pc, #220] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
8013842: 689b ldr r3, [r3, #8]
8013844: f003 030c and.w r3, r3, #12
8013848: 2b08 cmp r3, #8
801384a: d06d beq.n 8013928 <HAL_RCC_OscConfig+0x4d8>
{
if ((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_ON)
801384c: 687b ldr r3, [r7, #4]
801384e: 699b ldr r3, [r3, #24]
8013850: 2b02 cmp r3, #2
8013852: d14b bne.n 80138ec <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();
8013854: 4a32 ldr r2, [pc, #200] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
8013856: 4b32 ldr r3, [pc, #200] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
8013858: 681b ldr r3, [r3, #0]
801385a: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000
801385e: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013860: f7fd febc bl 80115dc <HAL_GetTick>
8013864: 6138 str r0, [r7, #16]
/* Wait till PLL is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
8013866: e008 b.n 801387a <HAL_RCC_OscConfig+0x42a>
{
if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE)
8013868: f7fd feb8 bl 80115dc <HAL_GetTick>
801386c: 4602 mov r2, r0
801386e: 693b ldr r3, [r7, #16]
8013870: 1ad3 subs r3, r2, r3
8013872: 2b02 cmp r3, #2
8013874: d901 bls.n 801387a <HAL_RCC_OscConfig+0x42a>
{
return HAL_TIMEOUT;
8013876: 2303 movs r3, #3
8013878: e091 b.n 801399e <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
801387a: 4b29 ldr r3, [pc, #164] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
801387c: 681b ldr r3, [r3, #0]
801387e: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
8013882: 2b00 cmp r3, #0
8013884: d1f0 bne.n 8013868 <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,
8013886: 4926 ldr r1, [pc, #152] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
8013888: 687b ldr r3, [r7, #4]
801388a: 69da ldr r2, [r3, #28]
801388c: 687b ldr r3, [r7, #4]
801388e: 6a1b ldr r3, [r3, #32]
8013890: 431a orrs r2, r3
8013892: 687b ldr r3, [r7, #4]
8013894: 6a5b ldr r3, [r3, #36] ; 0x24
8013896: 019b lsls r3, r3, #6
8013898: 431a orrs r2, r3
801389a: 687b ldr r3, [r7, #4]
801389c: 6a9b ldr r3, [r3, #40] ; 0x28
801389e: 085b lsrs r3, r3, #1
80138a0: 3b01 subs r3, #1
80138a2: 041b lsls r3, r3, #16
80138a4: 431a orrs r2, r3
80138a6: 687b ldr r3, [r7, #4]
80138a8: 6adb ldr r3, [r3, #44] ; 0x2c
80138aa: 061b lsls r3, r3, #24
80138ac: 431a orrs r2, r3
80138ae: 687b ldr r3, [r7, #4]
80138b0: 6b1b ldr r3, [r3, #48] ; 0x30
80138b2: 071b lsls r3, r3, #28
80138b4: 4313 orrs r3, r2
80138b6: 604b str r3, [r1, #4]
RCC_OscInitStruct->PLL.PLLP,
RCC_OscInitStruct->PLL.PLLQ);
#endif
/* Enable the main PLL. */
__HAL_RCC_PLL_ENABLE();
80138b8: 4a19 ldr r2, [pc, #100] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
80138ba: 4b19 ldr r3, [pc, #100] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
80138bc: 681b ldr r3, [r3, #0]
80138be: f043 7380 orr.w r3, r3, #16777216 ; 0x1000000
80138c2: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
80138c4: f7fd fe8a bl 80115dc <HAL_GetTick>
80138c8: 6138 str r0, [r7, #16]
/* Wait till PLL is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET)
80138ca: e008 b.n 80138de <HAL_RCC_OscConfig+0x48e>
{
if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE)
80138cc: f7fd fe86 bl 80115dc <HAL_GetTick>
80138d0: 4602 mov r2, r0
80138d2: 693b ldr r3, [r7, #16]
80138d4: 1ad3 subs r3, r2, r3
80138d6: 2b02 cmp r3, #2
80138d8: d901 bls.n 80138de <HAL_RCC_OscConfig+0x48e>
{
return HAL_TIMEOUT;
80138da: 2303 movs r3, #3
80138dc: e05f b.n 801399e <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET)
80138de: 4b10 ldr r3, [pc, #64] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
80138e0: 681b ldr r3, [r3, #0]
80138e2: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
80138e6: 2b00 cmp r3, #0
80138e8: d0f0 beq.n 80138cc <HAL_RCC_OscConfig+0x47c>
80138ea: e057 b.n 801399c <HAL_RCC_OscConfig+0x54c>
}
}
else
{
/* Disable the main PLL. */
__HAL_RCC_PLL_DISABLE();
80138ec: 4a0c ldr r2, [pc, #48] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
80138ee: 4b0c ldr r3, [pc, #48] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
80138f0: 681b ldr r3, [r3, #0]
80138f2: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000
80138f6: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
80138f8: f7fd fe70 bl 80115dc <HAL_GetTick>
80138fc: 6138 str r0, [r7, #16]
/* Wait till PLL is ready */
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
80138fe: e008 b.n 8013912 <HAL_RCC_OscConfig+0x4c2>
{
if ((HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE)
8013900: f7fd fe6c bl 80115dc <HAL_GetTick>
8013904: 4602 mov r2, r0
8013906: 693b ldr r3, [r7, #16]
8013908: 1ad3 subs r3, r2, r3
801390a: 2b02 cmp r3, #2
801390c: d901 bls.n 8013912 <HAL_RCC_OscConfig+0x4c2>
{
return HAL_TIMEOUT;
801390e: 2303 movs r3, #3
8013910: e045 b.n 801399e <HAL_RCC_OscConfig+0x54e>
while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
8013912: 4b03 ldr r3, [pc, #12] ; (8013920 <HAL_RCC_OscConfig+0x4d0>)
8013914: 681b ldr r3, [r3, #0]
8013916: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
801391a: 2b00 cmp r3, #0
801391c: d1f0 bne.n 8013900 <HAL_RCC_OscConfig+0x4b0>
801391e: e03d b.n 801399c <HAL_RCC_OscConfig+0x54c>
8013920: 40023800 .word 0x40023800
8013924: 40007000 .word 0x40007000
}
}
else
{
/* Do not return HAL_ERROR if request repeats the current configuration */
pll_config = RCC->PLLCFGR;
8013928: 4b1f ldr r3, [pc, #124] ; (80139a8 <HAL_RCC_OscConfig+0x558>)
801392a: 685b ldr r3, [r3, #4]
801392c: 60fb str r3, [r7, #12]
#if defined (RCC_PLLCFGR_PLLR)
if (((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) ||
801392e: 687b ldr r3, [r7, #4]
8013930: 699b ldr r3, [r3, #24]
8013932: 2b01 cmp r3, #1
8013934: d030 beq.n 8013998 <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) ||
8013936: 68fb ldr r3, [r7, #12]
8013938: f403 0280 and.w r2, r3, #4194304 ; 0x400000
801393c: 687b ldr r3, [r7, #4]
801393e: 69db ldr r3, [r3, #28]
if (((RCC_OscInitStruct->PLL.PLLState) == RCC_PLL_OFF) ||
8013940: 429a cmp r2, r3
8013942: d129 bne.n 8013998 <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != RCC_OscInitStruct->PLL.PLLM) ||
8013944: 68fb ldr r3, [r7, #12]
8013946: f003 023f and.w r2, r3, #63 ; 0x3f
801394a: 687b ldr r3, [r7, #4]
801394c: 6a1b ldr r3, [r3, #32]
(READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->PLL.PLLSource) ||
801394e: 429a cmp r2, r3
8013950: d122 bne.n 8013998 <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) ||
8013952: 68fa ldr r2, [r7, #12]
8013954: f647 73c0 movw r3, #32704 ; 0x7fc0
8013958: 4013 ands r3, r2
801395a: 687a ldr r2, [r7, #4]
801395c: 6a52 ldr r2, [r2, #36] ; 0x24
801395e: 0192 lsls r2, r2, #6
(READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != RCC_OscInitStruct->PLL.PLLM) ||
8013960: 4293 cmp r3, r2
8013962: d119 bne.n 8013998 <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != ((((RCC_OscInitStruct->PLL.PLLP) >> 1U) - 1U) << RCC_PLLCFGR_PLLP_Pos)) ||
8013964: 68fb ldr r3, [r7, #12]
8013966: f403 3240 and.w r2, r3, #196608 ; 0x30000
801396a: 687b ldr r3, [r7, #4]
801396c: 6a9b ldr r3, [r3, #40] ; 0x28
801396e: 085b lsrs r3, r3, #1
8013970: 3b01 subs r3, #1
8013972: 041b lsls r3, r3, #16
(READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->PLL.PLLN << RCC_PLLCFGR_PLLN_Pos)) ||
8013974: 429a cmp r2, r3
8013976: d10f bne.n 8013998 <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != (RCC_OscInitStruct->PLL.PLLQ << RCC_PLLCFGR_PLLQ_Pos)) ||
8013978: 68fb ldr r3, [r7, #12]
801397a: f003 6270 and.w r2, r3, #251658240 ; 0xf000000
801397e: 687b ldr r3, [r7, #4]
8013980: 6adb ldr r3, [r3, #44] ; 0x2c
8013982: 061b lsls r3, r3, #24
(READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != ((((RCC_OscInitStruct->PLL.PLLP) >> 1U) - 1U) << RCC_PLLCFGR_PLLP_Pos)) ||
8013984: 429a cmp r2, r3
8013986: d107 bne.n 8013998 <HAL_RCC_OscConfig+0x548>
(READ_BIT(pll_config, RCC_PLLCFGR_PLLR) != (RCC_OscInitStruct->PLL.PLLR << RCC_PLLCFGR_PLLR_Pos)))
8013988: 68fb ldr r3, [r7, #12]
801398a: f003 42e0 and.w r2, r3, #1879048192 ; 0x70000000
801398e: 687b ldr r3, [r7, #4]
8013990: 6b1b ldr r3, [r3, #48] ; 0x30
8013992: 071b lsls r3, r3, #28
(READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != (RCC_OscInitStruct->PLL.PLLQ << RCC_PLLCFGR_PLLQ_Pos)) ||
8013994: 429a cmp r2, r3
8013996: d001 beq.n 801399c <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;
8013998: 2301 movs r3, #1
801399a: e000 b.n 801399e <HAL_RCC_OscConfig+0x54e>
}
}
}
return HAL_OK;
801399c: 2300 movs r3, #0
}
801399e: 4618 mov r0, r3
80139a0: 3718 adds r7, #24
80139a2: 46bd mov sp, r7
80139a4: bd80 pop {r7, pc}
80139a6: bf00 nop
80139a8: 40023800 .word 0x40023800
080139ac <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)
{
80139ac: b580 push {r7, lr}
80139ae: b084 sub sp, #16
80139b0: af00 add r7, sp, #0
80139b2: 6078 str r0, [r7, #4]
80139b4: 6039 str r1, [r7, #0]
uint32_t tickstart = 0;
80139b6: 2300 movs r3, #0
80139b8: 60fb str r3, [r7, #12]
/* Check Null pointer */
if (RCC_ClkInitStruct == NULL)
80139ba: 687b ldr r3, [r7, #4]
80139bc: 2b00 cmp r3, #0
80139be: d101 bne.n 80139c4 <HAL_RCC_ClockConfig+0x18>
{
return HAL_ERROR;
80139c0: 2301 movs r3, #1
80139c2: e0d0 b.n 8013b66 <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())
80139c4: 4b6a ldr r3, [pc, #424] ; (8013b70 <HAL_RCC_ClockConfig+0x1c4>)
80139c6: 681b ldr r3, [r3, #0]
80139c8: f003 020f and.w r2, r3, #15
80139cc: 683b ldr r3, [r7, #0]
80139ce: 429a cmp r2, r3
80139d0: d210 bcs.n 80139f4 <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);
80139d2: 4967 ldr r1, [pc, #412] ; (8013b70 <HAL_RCC_ClockConfig+0x1c4>)
80139d4: 4b66 ldr r3, [pc, #408] ; (8013b70 <HAL_RCC_ClockConfig+0x1c4>)
80139d6: 681b ldr r3, [r3, #0]
80139d8: f023 020f bic.w r2, r3, #15
80139dc: 683b ldr r3, [r7, #0]
80139de: 4313 orrs r3, r2
80139e0: 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)
80139e2: 4b63 ldr r3, [pc, #396] ; (8013b70 <HAL_RCC_ClockConfig+0x1c4>)
80139e4: 681b ldr r3, [r3, #0]
80139e6: f003 020f and.w r2, r3, #15
80139ea: 683b ldr r3, [r7, #0]
80139ec: 429a cmp r2, r3
80139ee: d001 beq.n 80139f4 <HAL_RCC_ClockConfig+0x48>
{
return HAL_ERROR;
80139f0: 2301 movs r3, #1
80139f2: e0b8 b.n 8013b66 <HAL_RCC_ClockConfig+0x1ba>
}
}
/*-------------------------- HCLK Configuration --------------------------*/
if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK)
80139f4: 687b ldr r3, [r7, #4]
80139f6: 681b ldr r3, [r3, #0]
80139f8: f003 0302 and.w r3, r3, #2
80139fc: 2b00 cmp r3, #0
80139fe: d020 beq.n 8013a42 <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)
8013a00: 687b ldr r3, [r7, #4]
8013a02: 681b ldr r3, [r3, #0]
8013a04: f003 0304 and.w r3, r3, #4
8013a08: 2b00 cmp r3, #0
8013a0a: d005 beq.n 8013a18 <HAL_RCC_ClockConfig+0x6c>
{
MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16);
8013a0c: 4a59 ldr r2, [pc, #356] ; (8013b74 <HAL_RCC_ClockConfig+0x1c8>)
8013a0e: 4b59 ldr r3, [pc, #356] ; (8013b74 <HAL_RCC_ClockConfig+0x1c8>)
8013a10: 689b ldr r3, [r3, #8]
8013a12: f443 53e0 orr.w r3, r3, #7168 ; 0x1c00
8013a16: 6093 str r3, [r2, #8]
}
if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2)
8013a18: 687b ldr r3, [r7, #4]
8013a1a: 681b ldr r3, [r3, #0]
8013a1c: f003 0308 and.w r3, r3, #8
8013a20: 2b00 cmp r3, #0
8013a22: d005 beq.n 8013a30 <HAL_RCC_ClockConfig+0x84>
{
MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, (RCC_HCLK_DIV16 << 3));
8013a24: 4a53 ldr r2, [pc, #332] ; (8013b74 <HAL_RCC_ClockConfig+0x1c8>)
8013a26: 4b53 ldr r3, [pc, #332] ; (8013b74 <HAL_RCC_ClockConfig+0x1c8>)
8013a28: 689b ldr r3, [r3, #8]
8013a2a: f443 4360 orr.w r3, r3, #57344 ; 0xe000
8013a2e: 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);
8013a30: 4950 ldr r1, [pc, #320] ; (8013b74 <HAL_RCC_ClockConfig+0x1c8>)
8013a32: 4b50 ldr r3, [pc, #320] ; (8013b74 <HAL_RCC_ClockConfig+0x1c8>)
8013a34: 689b ldr r3, [r3, #8]
8013a36: f023 02f0 bic.w r2, r3, #240 ; 0xf0
8013a3a: 687b ldr r3, [r7, #4]
8013a3c: 689b ldr r3, [r3, #8]
8013a3e: 4313 orrs r3, r2
8013a40: 608b str r3, [r1, #8]
}
/*------------------------- SYSCLK Configuration ---------------------------*/
if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK)
8013a42: 687b ldr r3, [r7, #4]
8013a44: 681b ldr r3, [r3, #0]
8013a46: f003 0301 and.w r3, r3, #1
8013a4a: 2b00 cmp r3, #0
8013a4c: d040 beq.n 8013ad0 <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)
8013a4e: 687b ldr r3, [r7, #4]
8013a50: 685b ldr r3, [r3, #4]
8013a52: 2b01 cmp r3, #1
8013a54: d107 bne.n 8013a66 <HAL_RCC_ClockConfig+0xba>
{
/* Check the HSE ready flag */
if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET)
8013a56: 4b47 ldr r3, [pc, #284] ; (8013b74 <HAL_RCC_ClockConfig+0x1c8>)
8013a58: 681b ldr r3, [r3, #0]
8013a5a: f403 3300 and.w r3, r3, #131072 ; 0x20000
8013a5e: 2b00 cmp r3, #0
8013a60: d115 bne.n 8013a8e <HAL_RCC_ClockConfig+0xe2>
{
return HAL_ERROR;
8013a62: 2301 movs r3, #1
8013a64: e07f b.n 8013b66 <HAL_RCC_ClockConfig+0x1ba>
}
}
/* PLL is selected as System Clock Source */
else if (RCC_ClkInitStruct->SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK)
8013a66: 687b ldr r3, [r7, #4]
8013a68: 685b ldr r3, [r3, #4]
8013a6a: 2b02 cmp r3, #2
8013a6c: d107 bne.n 8013a7e <HAL_RCC_ClockConfig+0xd2>
{
/* Check the PLL ready flag */
if (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET)
8013a6e: 4b41 ldr r3, [pc, #260] ; (8013b74 <HAL_RCC_ClockConfig+0x1c8>)
8013a70: 681b ldr r3, [r3, #0]
8013a72: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
8013a76: 2b00 cmp r3, #0
8013a78: d109 bne.n 8013a8e <HAL_RCC_ClockConfig+0xe2>
{
return HAL_ERROR;
8013a7a: 2301 movs r3, #1
8013a7c: e073 b.n 8013b66 <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)
8013a7e: 4b3d ldr r3, [pc, #244] ; (8013b74 <HAL_RCC_ClockConfig+0x1c8>)
8013a80: 681b ldr r3, [r3, #0]
8013a82: f003 0302 and.w r3, r3, #2
8013a86: 2b00 cmp r3, #0
8013a88: d101 bne.n 8013a8e <HAL_RCC_ClockConfig+0xe2>
{
return HAL_ERROR;
8013a8a: 2301 movs r3, #1
8013a8c: e06b b.n 8013b66 <HAL_RCC_ClockConfig+0x1ba>
}
}
__HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->SYSCLKSource);
8013a8e: 4939 ldr r1, [pc, #228] ; (8013b74 <HAL_RCC_ClockConfig+0x1c8>)
8013a90: 4b38 ldr r3, [pc, #224] ; (8013b74 <HAL_RCC_ClockConfig+0x1c8>)
8013a92: 689b ldr r3, [r3, #8]
8013a94: f023 0203 bic.w r2, r3, #3
8013a98: 687b ldr r3, [r7, #4]
8013a9a: 685b ldr r3, [r3, #4]
8013a9c: 4313 orrs r3, r2
8013a9e: 608b str r3, [r1, #8]
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013aa0: f7fd fd9c bl 80115dc <HAL_GetTick>
8013aa4: 60f8 str r0, [r7, #12]
while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos))
8013aa6: e00a b.n 8013abe <HAL_RCC_ClockConfig+0x112>
{
if ((HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE)
8013aa8: f7fd fd98 bl 80115dc <HAL_GetTick>
8013aac: 4602 mov r2, r0
8013aae: 68fb ldr r3, [r7, #12]
8013ab0: 1ad3 subs r3, r2, r3
8013ab2: f241 3288 movw r2, #5000 ; 0x1388
8013ab6: 4293 cmp r3, r2
8013ab8: d901 bls.n 8013abe <HAL_RCC_ClockConfig+0x112>
{
return HAL_TIMEOUT;
8013aba: 2303 movs r3, #3
8013abc: e053 b.n 8013b66 <HAL_RCC_ClockConfig+0x1ba>
while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->SYSCLKSource << RCC_CFGR_SWS_Pos))
8013abe: 4b2d ldr r3, [pc, #180] ; (8013b74 <HAL_RCC_ClockConfig+0x1c8>)
8013ac0: 689b ldr r3, [r3, #8]
8013ac2: f003 020c and.w r2, r3, #12
8013ac6: 687b ldr r3, [r7, #4]
8013ac8: 685b ldr r3, [r3, #4]
8013aca: 009b lsls r3, r3, #2
8013acc: 429a cmp r2, r3
8013ace: d1eb bne.n 8013aa8 <HAL_RCC_ClockConfig+0xfc>
}
}
}
/* Decreasing the number of wait states because of lower CPU frequency */
if (FLatency < __HAL_FLASH_GET_LATENCY())
8013ad0: 4b27 ldr r3, [pc, #156] ; (8013b70 <HAL_RCC_ClockConfig+0x1c4>)
8013ad2: 681b ldr r3, [r3, #0]
8013ad4: f003 020f and.w r2, r3, #15
8013ad8: 683b ldr r3, [r7, #0]
8013ada: 429a cmp r2, r3
8013adc: d910 bls.n 8013b00 <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);
8013ade: 4924 ldr r1, [pc, #144] ; (8013b70 <HAL_RCC_ClockConfig+0x1c4>)
8013ae0: 4b23 ldr r3, [pc, #140] ; (8013b70 <HAL_RCC_ClockConfig+0x1c4>)
8013ae2: 681b ldr r3, [r3, #0]
8013ae4: f023 020f bic.w r2, r3, #15
8013ae8: 683b ldr r3, [r7, #0]
8013aea: 4313 orrs r3, r2
8013aec: 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)
8013aee: 4b20 ldr r3, [pc, #128] ; (8013b70 <HAL_RCC_ClockConfig+0x1c4>)
8013af0: 681b ldr r3, [r3, #0]
8013af2: f003 020f and.w r2, r3, #15
8013af6: 683b ldr r3, [r7, #0]
8013af8: 429a cmp r2, r3
8013afa: d001 beq.n 8013b00 <HAL_RCC_ClockConfig+0x154>
{
return HAL_ERROR;
8013afc: 2301 movs r3, #1
8013afe: e032 b.n 8013b66 <HAL_RCC_ClockConfig+0x1ba>
}
}
/*-------------------------- PCLK1 Configuration ---------------------------*/
if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1)
8013b00: 687b ldr r3, [r7, #4]
8013b02: 681b ldr r3, [r3, #0]
8013b04: f003 0304 and.w r3, r3, #4
8013b08: 2b00 cmp r3, #0
8013b0a: d008 beq.n 8013b1e <HAL_RCC_ClockConfig+0x172>
{
assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB1CLKDivider));
MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->APB1CLKDivider);
8013b0c: 4919 ldr r1, [pc, #100] ; (8013b74 <HAL_RCC_ClockConfig+0x1c8>)
8013b0e: 4b19 ldr r3, [pc, #100] ; (8013b74 <HAL_RCC_ClockConfig+0x1c8>)
8013b10: 689b ldr r3, [r3, #8]
8013b12: f423 52e0 bic.w r2, r3, #7168 ; 0x1c00
8013b16: 687b ldr r3, [r7, #4]
8013b18: 68db ldr r3, [r3, #12]
8013b1a: 4313 orrs r3, r2
8013b1c: 608b str r3, [r1, #8]
}
/*-------------------------- PCLK2 Configuration ---------------------------*/
if (((RCC_ClkInitStruct->ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2)
8013b1e: 687b ldr r3, [r7, #4]
8013b20: 681b ldr r3, [r3, #0]
8013b22: f003 0308 and.w r3, r3, #8
8013b26: 2b00 cmp r3, #0
8013b28: d009 beq.n 8013b3e <HAL_RCC_ClockConfig+0x192>
{
assert_param(IS_RCC_PCLK(RCC_ClkInitStruct->APB2CLKDivider));
MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->APB2CLKDivider) << 3));
8013b2a: 4912 ldr r1, [pc, #72] ; (8013b74 <HAL_RCC_ClockConfig+0x1c8>)
8013b2c: 4b11 ldr r3, [pc, #68] ; (8013b74 <HAL_RCC_ClockConfig+0x1c8>)
8013b2e: 689b ldr r3, [r3, #8]
8013b30: f423 4260 bic.w r2, r3, #57344 ; 0xe000
8013b34: 687b ldr r3, [r7, #4]
8013b36: 691b ldr r3, [r3, #16]
8013b38: 00db lsls r3, r3, #3
8013b3a: 4313 orrs r3, r2
8013b3c: 608b str r3, [r1, #8]
}
/* Update the SystemCoreClock global variable */
SystemCoreClock = HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos];
8013b3e: f000 f821 bl 8013b84 <HAL_RCC_GetSysClockFreq>
8013b42: 4601 mov r1, r0
8013b44: 4b0b ldr r3, [pc, #44] ; (8013b74 <HAL_RCC_ClockConfig+0x1c8>)
8013b46: 689b ldr r3, [r3, #8]
8013b48: 091b lsrs r3, r3, #4
8013b4a: f003 030f and.w r3, r3, #15
8013b4e: 4a0a ldr r2, [pc, #40] ; (8013b78 <HAL_RCC_ClockConfig+0x1cc>)
8013b50: 5cd3 ldrb r3, [r2, r3]
8013b52: fa21 f303 lsr.w r3, r1, r3
8013b56: 4a09 ldr r2, [pc, #36] ; (8013b7c <HAL_RCC_ClockConfig+0x1d0>)
8013b58: 6013 str r3, [r2, #0]
/* Configure the source of time base considering new system clocks settings*/
HAL_InitTick(uwTickPrio);
8013b5a: 4b09 ldr r3, [pc, #36] ; (8013b80 <HAL_RCC_ClockConfig+0x1d4>)
8013b5c: 681b ldr r3, [r3, #0]
8013b5e: 4618 mov r0, r3
8013b60: f7fd fcf8 bl 8011554 <HAL_InitTick>
return HAL_OK;
8013b64: 2300 movs r3, #0
}
8013b66: 4618 mov r0, r3
8013b68: 3710 adds r7, #16
8013b6a: 46bd mov sp, r7
8013b6c: bd80 pop {r7, pc}
8013b6e: bf00 nop
8013b70: 40023c00 .word 0x40023c00
8013b74: 40023800 .word 0x40023800
8013b78: 0801ae50 .word 0x0801ae50
8013b7c: 20020994 .word 0x20020994
8013b80: 200209a0 .word 0x200209a0
08013b84 <HAL_RCC_GetSysClockFreq>:
*
*
* @retval SYSCLK frequency
*/
uint32_t HAL_RCC_GetSysClockFreq(void)
{
8013b84: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
8013b88: b087 sub sp, #28
8013b8a: af00 add r7, sp, #0
uint32_t pllm = 0, pllvco = 0, pllp = 0;
8013b8c: 2200 movs r2, #0
8013b8e: 60fa str r2, [r7, #12]
8013b90: 2200 movs r2, #0
8013b92: 617a str r2, [r7, #20]
8013b94: 2200 movs r2, #0
8013b96: 60ba str r2, [r7, #8]
uint32_t sysclockfreq = 0;
8013b98: 2200 movs r2, #0
8013b9a: 613a str r2, [r7, #16]
/* Get SYSCLK source -------------------------------------------------------*/
switch (RCC->CFGR & RCC_CFGR_SWS)
8013b9c: 4a51 ldr r2, [pc, #324] ; (8013ce4 <HAL_RCC_GetSysClockFreq+0x160>)
8013b9e: 6892 ldr r2, [r2, #8]
8013ba0: f002 020c and.w r2, r2, #12
8013ba4: 2a04 cmp r2, #4
8013ba6: d007 beq.n 8013bb8 <HAL_RCC_GetSysClockFreq+0x34>
8013ba8: 2a08 cmp r2, #8
8013baa: d008 beq.n 8013bbe <HAL_RCC_GetSysClockFreq+0x3a>
8013bac: 2a00 cmp r2, #0
8013bae: f040 8090 bne.w 8013cd2 <HAL_RCC_GetSysClockFreq+0x14e>
{
case RCC_SYSCLKSOURCE_STATUS_HSI: /* HSI used as system clock source */
{
sysclockfreq = HSI_VALUE;
8013bb2: 4b4d ldr r3, [pc, #308] ; (8013ce8 <HAL_RCC_GetSysClockFreq+0x164>)
8013bb4: 613b str r3, [r7, #16]
break;
8013bb6: e08f b.n 8013cd8 <HAL_RCC_GetSysClockFreq+0x154>
}
case RCC_SYSCLKSOURCE_STATUS_HSE: /* HSE used as system clock source */
{
sysclockfreq = HSE_VALUE;
8013bb8: 4b4c ldr r3, [pc, #304] ; (8013cec <HAL_RCC_GetSysClockFreq+0x168>)
8013bba: 613b str r3, [r7, #16]
break;
8013bbc: e08c b.n 8013cd8 <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;
8013bbe: 4a49 ldr r2, [pc, #292] ; (8013ce4 <HAL_RCC_GetSysClockFreq+0x160>)
8013bc0: 6852 ldr r2, [r2, #4]
8013bc2: f002 023f and.w r2, r2, #63 ; 0x3f
8013bc6: 60fa str r2, [r7, #12]
if (__HAL_RCC_GET_PLL_OSCSOURCE() != RCC_PLLCFGR_PLLSRC_HSI)
8013bc8: 4a46 ldr r2, [pc, #280] ; (8013ce4 <HAL_RCC_GetSysClockFreq+0x160>)
8013bca: 6852 ldr r2, [r2, #4]
8013bcc: f402 0280 and.w r2, r2, #4194304 ; 0x400000
8013bd0: 2a00 cmp r2, #0
8013bd2: d023 beq.n 8013c1c <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);
8013bd4: 4b43 ldr r3, [pc, #268] ; (8013ce4 <HAL_RCC_GetSysClockFreq+0x160>)
8013bd6: 685b ldr r3, [r3, #4]
8013bd8: 099b lsrs r3, r3, #6
8013bda: f04f 0400 mov.w r4, #0
8013bde: f240 11ff movw r1, #511 ; 0x1ff
8013be2: f04f 0200 mov.w r2, #0
8013be6: ea03 0301 and.w r3, r3, r1
8013bea: ea04 0402 and.w r4, r4, r2
8013bee: 4a3f ldr r2, [pc, #252] ; (8013cec <HAL_RCC_GetSysClockFreq+0x168>)
8013bf0: fb02 f104 mul.w r1, r2, r4
8013bf4: 2200 movs r2, #0
8013bf6: fb02 f203 mul.w r2, r2, r3
8013bfa: 440a add r2, r1
8013bfc: 493b ldr r1, [pc, #236] ; (8013cec <HAL_RCC_GetSysClockFreq+0x168>)
8013bfe: fba3 0101 umull r0, r1, r3, r1
8013c02: 1853 adds r3, r2, r1
8013c04: 4619 mov r1, r3
8013c06: 68fb ldr r3, [r7, #12]
8013c08: f04f 0400 mov.w r4, #0
8013c0c: 461a mov r2, r3
8013c0e: 4623 mov r3, r4
8013c10: f7ec fb1a bl 8000248 <__aeabi_uldivmod>
8013c14: 4603 mov r3, r0
8013c16: 460c mov r4, r1
8013c18: 617b str r3, [r7, #20]
8013c1a: e04c b.n 8013cb6 <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);
8013c1c: 4a31 ldr r2, [pc, #196] ; (8013ce4 <HAL_RCC_GetSysClockFreq+0x160>)
8013c1e: 6852 ldr r2, [r2, #4]
8013c20: 0992 lsrs r2, r2, #6
8013c22: 4611 mov r1, r2
8013c24: f04f 0200 mov.w r2, #0
8013c28: f240 15ff movw r5, #511 ; 0x1ff
8013c2c: f04f 0600 mov.w r6, #0
8013c30: ea05 0501 and.w r5, r5, r1
8013c34: ea06 0602 and.w r6, r6, r2
8013c38: 4629 mov r1, r5
8013c3a: 4632 mov r2, r6
8013c3c: ea4f 1b42 mov.w fp, r2, lsl #5
8013c40: ea4b 6bd1 orr.w fp, fp, r1, lsr #27
8013c44: ea4f 1a41 mov.w sl, r1, lsl #5
8013c48: 4651 mov r1, sl
8013c4a: 465a mov r2, fp
8013c4c: 46aa mov sl, r5
8013c4e: 46b3 mov fp, r6
8013c50: 4655 mov r5, sl
8013c52: 465e mov r6, fp
8013c54: 1b4d subs r5, r1, r5
8013c56: eb62 0606 sbc.w r6, r2, r6
8013c5a: 4629 mov r1, r5
8013c5c: 4632 mov r2, r6
8013c5e: 0194 lsls r4, r2, #6
8013c60: ea44 6491 orr.w r4, r4, r1, lsr #26
8013c64: 018b lsls r3, r1, #6
8013c66: 1a5b subs r3, r3, r1
8013c68: eb64 0402 sbc.w r4, r4, r2
8013c6c: ea4f 09c4 mov.w r9, r4, lsl #3
8013c70: ea49 7953 orr.w r9, r9, r3, lsr #29
8013c74: ea4f 08c3 mov.w r8, r3, lsl #3
8013c78: 4643 mov r3, r8
8013c7a: 464c mov r4, r9
8013c7c: 4655 mov r5, sl
8013c7e: 465e mov r6, fp
8013c80: 18ed adds r5, r5, r3
8013c82: eb46 0604 adc.w r6, r6, r4
8013c86: 462b mov r3, r5
8013c88: 4634 mov r4, r6
8013c8a: 02a2 lsls r2, r4, #10
8013c8c: 607a str r2, [r7, #4]
8013c8e: 687a ldr r2, [r7, #4]
8013c90: ea42 5293 orr.w r2, r2, r3, lsr #22
8013c94: 607a str r2, [r7, #4]
8013c96: 029b lsls r3, r3, #10
8013c98: 603b str r3, [r7, #0]
8013c9a: e897 0018 ldmia.w r7, {r3, r4}
8013c9e: 4618 mov r0, r3
8013ca0: 4621 mov r1, r4
8013ca2: 68fb ldr r3, [r7, #12]
8013ca4: f04f 0400 mov.w r4, #0
8013ca8: 461a mov r2, r3
8013caa: 4623 mov r3, r4
8013cac: f7ec facc bl 8000248 <__aeabi_uldivmod>
8013cb0: 4603 mov r3, r0
8013cb2: 460c mov r4, r1
8013cb4: 617b str r3, [r7, #20]
}
pllp = ((((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >> RCC_PLLCFGR_PLLP_Pos) + 1) * 2);
8013cb6: 4b0b ldr r3, [pc, #44] ; (8013ce4 <HAL_RCC_GetSysClockFreq+0x160>)
8013cb8: 685b ldr r3, [r3, #4]
8013cba: 0c1b lsrs r3, r3, #16
8013cbc: f003 0303 and.w r3, r3, #3
8013cc0: 3301 adds r3, #1
8013cc2: 005b lsls r3, r3, #1
8013cc4: 60bb str r3, [r7, #8]
sysclockfreq = pllvco / pllp;
8013cc6: 697a ldr r2, [r7, #20]
8013cc8: 68bb ldr r3, [r7, #8]
8013cca: fbb2 f3f3 udiv r3, r2, r3
8013cce: 613b str r3, [r7, #16]
break;
8013cd0: e002 b.n 8013cd8 <HAL_RCC_GetSysClockFreq+0x154>
}
default:
{
sysclockfreq = HSI_VALUE;
8013cd2: 4b05 ldr r3, [pc, #20] ; (8013ce8 <HAL_RCC_GetSysClockFreq+0x164>)
8013cd4: 613b str r3, [r7, #16]
break;
8013cd6: bf00 nop
}
}
return sysclockfreq;
8013cd8: 693b ldr r3, [r7, #16]
}
8013cda: 4618 mov r0, r3
8013cdc: 371c adds r7, #28
8013cde: 46bd mov sp, r7
8013ce0: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
8013ce4: 40023800 .word 0x40023800
8013ce8: 00f42400 .word 0x00f42400
8013cec: 017d7840 .word 0x017d7840
08013cf0 <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)
{
8013cf0: b480 push {r7}
8013cf2: af00 add r7, sp, #0
return SystemCoreClock;
8013cf4: 4b03 ldr r3, [pc, #12] ; (8013d04 <HAL_RCC_GetHCLKFreq+0x14>)
8013cf6: 681b ldr r3, [r3, #0]
}
8013cf8: 4618 mov r0, r3
8013cfa: 46bd mov sp, r7
8013cfc: f85d 7b04 ldr.w r7, [sp], #4
8013d00: 4770 bx lr
8013d02: bf00 nop
8013d04: 20020994 .word 0x20020994
08013d08 <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)
{
8013d08: b580 push {r7, lr}
8013d0a: 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]);
8013d0c: f7ff fff0 bl 8013cf0 <HAL_RCC_GetHCLKFreq>
8013d10: 4601 mov r1, r0
8013d12: 4b05 ldr r3, [pc, #20] ; (8013d28 <HAL_RCC_GetPCLK1Freq+0x20>)
8013d14: 689b ldr r3, [r3, #8]
8013d16: 0a9b lsrs r3, r3, #10
8013d18: f003 0307 and.w r3, r3, #7
8013d1c: 4a03 ldr r2, [pc, #12] ; (8013d2c <HAL_RCC_GetPCLK1Freq+0x24>)
8013d1e: 5cd3 ldrb r3, [r2, r3]
8013d20: fa21 f303 lsr.w r3, r1, r3
}
8013d24: 4618 mov r0, r3
8013d26: bd80 pop {r7, pc}
8013d28: 40023800 .word 0x40023800
8013d2c: 0801ae60 .word 0x0801ae60
08013d30 <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)
{
8013d30: b580 push {r7, lr}
8013d32: 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]);
8013d34: f7ff ffdc bl 8013cf0 <HAL_RCC_GetHCLKFreq>
8013d38: 4601 mov r1, r0
8013d3a: 4b05 ldr r3, [pc, #20] ; (8013d50 <HAL_RCC_GetPCLK2Freq+0x20>)
8013d3c: 689b ldr r3, [r3, #8]
8013d3e: 0b5b lsrs r3, r3, #13
8013d40: f003 0307 and.w r3, r3, #7
8013d44: 4a03 ldr r2, [pc, #12] ; (8013d54 <HAL_RCC_GetPCLK2Freq+0x24>)
8013d46: 5cd3 ldrb r3, [r2, r3]
8013d48: fa21 f303 lsr.w r3, r1, r3
}
8013d4c: 4618 mov r0, r3
8013d4e: bd80 pop {r7, pc}
8013d50: 40023800 .word 0x40023800
8013d54: 0801ae60 .word 0x0801ae60
08013d58 <HAL_RCCEx_PeriphCLKConfig>:
* the backup registers) are set to their reset values.
*
* @retval HAL status
*/
HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit)
{
8013d58: b580 push {r7, lr}
8013d5a: b088 sub sp, #32
8013d5c: af00 add r7, sp, #0
8013d5e: 6078 str r0, [r7, #4]
uint32_t tickstart = 0;
8013d60: 2300 movs r3, #0
8013d62: 617b str r3, [r7, #20]
uint32_t tmpreg0 = 0;
8013d64: 2300 movs r3, #0
8013d66: 613b str r3, [r7, #16]
uint32_t tmpreg1 = 0;
8013d68: 2300 movs r3, #0
8013d6a: 60fb str r3, [r7, #12]
uint32_t plli2sused = 0;
8013d6c: 2300 movs r3, #0
8013d6e: 61fb str r3, [r7, #28]
uint32_t pllsaiused = 0;
8013d70: 2300 movs r3, #0
8013d72: 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))
8013d74: 687b ldr r3, [r7, #4]
8013d76: 681b ldr r3, [r3, #0]
8013d78: f003 0301 and.w r3, r3, #1
8013d7c: 2b00 cmp r3, #0
8013d7e: d012 beq.n 8013da6 <HAL_RCCEx_PeriphCLKConfig+0x4e>
{
/* Check the parameters */
assert_param(IS_RCC_I2SCLKSOURCE(PeriphClkInit->I2sClockSelection));
/* Configure I2S Clock source */
__HAL_RCC_I2S_CONFIG(PeriphClkInit->I2sClockSelection);
8013d80: 4a69 ldr r2, [pc, #420] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013d82: 4b69 ldr r3, [pc, #420] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013d84: 689b ldr r3, [r3, #8]
8013d86: f423 0300 bic.w r3, r3, #8388608 ; 0x800000
8013d8a: 6093 str r3, [r2, #8]
8013d8c: 4966 ldr r1, [pc, #408] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013d8e: 4b66 ldr r3, [pc, #408] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013d90: 689a ldr r2, [r3, #8]
8013d92: 687b ldr r3, [r7, #4]
8013d94: 6b5b ldr r3, [r3, #52] ; 0x34
8013d96: 4313 orrs r3, r2
8013d98: 608b str r3, [r1, #8]
/* Enable the PLLI2S when it's used as clock source for I2S */
if(PeriphClkInit->I2sClockSelection == RCC_I2SCLKSOURCE_PLLI2S)
8013d9a: 687b ldr r3, [r7, #4]
8013d9c: 6b5b ldr r3, [r3, #52] ; 0x34
8013d9e: 2b00 cmp r3, #0
8013da0: d101 bne.n 8013da6 <HAL_RCCEx_PeriphCLKConfig+0x4e>
{
plli2sused = 1;
8013da2: 2301 movs r3, #1
8013da4: 61fb str r3, [r7, #28]
}
}
/*------------------------------------ SAI1 configuration --------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == (RCC_PERIPHCLK_SAI1))
8013da6: 687b ldr r3, [r7, #4]
8013da8: 681b ldr r3, [r3, #0]
8013daa: f403 2300 and.w r3, r3, #524288 ; 0x80000
8013dae: 2b00 cmp r3, #0
8013db0: d017 beq.n 8013de2 <HAL_RCCEx_PeriphCLKConfig+0x8a>
{
/* Check the parameters */
assert_param(IS_RCC_SAI1CLKSOURCE(PeriphClkInit->Sai1ClockSelection));
/* Configure SAI1 Clock source */
__HAL_RCC_SAI1_CONFIG(PeriphClkInit->Sai1ClockSelection);
8013db2: 495d ldr r1, [pc, #372] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013db4: 4b5c ldr r3, [pc, #368] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013db6: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
8013dba: f423 1240 bic.w r2, r3, #3145728 ; 0x300000
8013dbe: 687b ldr r3, [r7, #4]
8013dc0: 6bdb ldr r3, [r3, #60] ; 0x3c
8013dc2: 4313 orrs r3, r2
8013dc4: 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)
8013dc8: 687b ldr r3, [r7, #4]
8013dca: 6bdb ldr r3, [r3, #60] ; 0x3c
8013dcc: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000
8013dd0: d101 bne.n 8013dd6 <HAL_RCCEx_PeriphCLKConfig+0x7e>
{
plli2sused = 1;
8013dd2: 2301 movs r3, #1
8013dd4: 61fb str r3, [r7, #28]
}
/* Enable the PLLSAI when it's used as clock source for SAI */
if(PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI)
8013dd6: 687b ldr r3, [r7, #4]
8013dd8: 6bdb ldr r3, [r3, #60] ; 0x3c
8013dda: 2b00 cmp r3, #0
8013ddc: d101 bne.n 8013de2 <HAL_RCCEx_PeriphCLKConfig+0x8a>
{
pllsaiused = 1;
8013dde: 2301 movs r3, #1
8013de0: 61bb str r3, [r7, #24]
}
}
/*------------------------------------ SAI2 configuration --------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == (RCC_PERIPHCLK_SAI2))
8013de2: 687b ldr r3, [r7, #4]
8013de4: 681b ldr r3, [r3, #0]
8013de6: f403 1380 and.w r3, r3, #1048576 ; 0x100000
8013dea: 2b00 cmp r3, #0
8013dec: d017 beq.n 8013e1e <HAL_RCCEx_PeriphCLKConfig+0xc6>
{
/* Check the parameters */
assert_param(IS_RCC_SAI2CLKSOURCE(PeriphClkInit->Sai2ClockSelection));
/* Configure SAI2 Clock source */
__HAL_RCC_SAI2_CONFIG(PeriphClkInit->Sai2ClockSelection);
8013dee: 494e ldr r1, [pc, #312] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013df0: 4b4d ldr r3, [pc, #308] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013df2: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
8013df6: f423 0240 bic.w r2, r3, #12582912 ; 0xc00000
8013dfa: 687b ldr r3, [r7, #4]
8013dfc: 6c1b ldr r3, [r3, #64] ; 0x40
8013dfe: 4313 orrs r3, r2
8013e00: 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)
8013e04: 687b ldr r3, [r7, #4]
8013e06: 6c1b ldr r3, [r3, #64] ; 0x40
8013e08: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000
8013e0c: d101 bne.n 8013e12 <HAL_RCCEx_PeriphCLKConfig+0xba>
{
plli2sused = 1;
8013e0e: 2301 movs r3, #1
8013e10: 61fb str r3, [r7, #28]
}
/* Enable the PLLSAI when it's used as clock source for SAI */
if(PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI)
8013e12: 687b ldr r3, [r7, #4]
8013e14: 6c1b ldr r3, [r3, #64] ; 0x40
8013e16: 2b00 cmp r3, #0
8013e18: d101 bne.n 8013e1e <HAL_RCCEx_PeriphCLKConfig+0xc6>
{
pllsaiused = 1;
8013e1a: 2301 movs r3, #1
8013e1c: 61bb str r3, [r7, #24]
}
}
/*-------------------------------------- SPDIF-RX Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SPDIFRX) == RCC_PERIPHCLK_SPDIFRX)
8013e1e: 687b ldr r3, [r7, #4]
8013e20: 681b ldr r3, [r3, #0]
8013e22: f003 7380 and.w r3, r3, #16777216 ; 0x1000000
8013e26: 2b00 cmp r3, #0
8013e28: d001 beq.n 8013e2e <HAL_RCCEx_PeriphCLKConfig+0xd6>
{
plli2sused = 1;
8013e2a: 2301 movs r3, #1
8013e2c: 61fb str r3, [r7, #28]
}
/*------------------------------------ RTC configuration --------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_RTC) == (RCC_PERIPHCLK_RTC))
8013e2e: 687b ldr r3, [r7, #4]
8013e30: 681b ldr r3, [r3, #0]
8013e32: f003 0320 and.w r3, r3, #32
8013e36: 2b00 cmp r3, #0
8013e38: f000 808b beq.w 8013f52 <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();
8013e3c: 4a3a ldr r2, [pc, #232] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013e3e: 4b3a ldr r3, [pc, #232] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013e40: 6c1b ldr r3, [r3, #64] ; 0x40
8013e42: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
8013e46: 6413 str r3, [r2, #64] ; 0x40
8013e48: 4b37 ldr r3, [pc, #220] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013e4a: 6c1b ldr r3, [r3, #64] ; 0x40
8013e4c: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
8013e50: 60bb str r3, [r7, #8]
8013e52: 68bb ldr r3, [r7, #8]
/* Enable write access to Backup domain */
PWR->CR1 |= PWR_CR1_DBP;
8013e54: 4a35 ldr r2, [pc, #212] ; (8013f2c <HAL_RCCEx_PeriphCLKConfig+0x1d4>)
8013e56: 4b35 ldr r3, [pc, #212] ; (8013f2c <HAL_RCCEx_PeriphCLKConfig+0x1d4>)
8013e58: 681b ldr r3, [r3, #0]
8013e5a: f443 7380 orr.w r3, r3, #256 ; 0x100
8013e5e: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013e60: f7fd fbbc bl 80115dc <HAL_GetTick>
8013e64: 6178 str r0, [r7, #20]
/* Wait for Backup domain Write protection disable */
while((PWR->CR1 & PWR_CR1_DBP) == RESET)
8013e66: e008 b.n 8013e7a <HAL_RCCEx_PeriphCLKConfig+0x122>
{
if((HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE)
8013e68: f7fd fbb8 bl 80115dc <HAL_GetTick>
8013e6c: 4602 mov r2, r0
8013e6e: 697b ldr r3, [r7, #20]
8013e70: 1ad3 subs r3, r2, r3
8013e72: 2b64 cmp r3, #100 ; 0x64
8013e74: d901 bls.n 8013e7a <HAL_RCCEx_PeriphCLKConfig+0x122>
{
return HAL_TIMEOUT;
8013e76: 2303 movs r3, #3
8013e78: e38d b.n 8014596 <HAL_RCCEx_PeriphCLKConfig+0x83e>
while((PWR->CR1 & PWR_CR1_DBP) == RESET)
8013e7a: 4b2c ldr r3, [pc, #176] ; (8013f2c <HAL_RCCEx_PeriphCLKConfig+0x1d4>)
8013e7c: 681b ldr r3, [r3, #0]
8013e7e: f403 7380 and.w r3, r3, #256 ; 0x100
8013e82: 2b00 cmp r3, #0
8013e84: d0f0 beq.n 8013e68 <HAL_RCCEx_PeriphCLKConfig+0x110>
}
}
/* Reset the Backup domain only if the RTC Clock source selection is modified */
tmpreg0 = (RCC->BDCR & RCC_BDCR_RTCSEL);
8013e86: 4b28 ldr r3, [pc, #160] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013e88: 6f1b ldr r3, [r3, #112] ; 0x70
8013e8a: f403 7340 and.w r3, r3, #768 ; 0x300
8013e8e: 613b str r3, [r7, #16]
if((tmpreg0 != 0x00000000U) && (tmpreg0 != (PeriphClkInit->RTCClockSelection & RCC_BDCR_RTCSEL)))
8013e90: 693b ldr r3, [r7, #16]
8013e92: 2b00 cmp r3, #0
8013e94: d035 beq.n 8013f02 <HAL_RCCEx_PeriphCLKConfig+0x1aa>
8013e96: 687b ldr r3, [r7, #4]
8013e98: 6b1b ldr r3, [r3, #48] ; 0x30
8013e9a: f403 7240 and.w r2, r3, #768 ; 0x300
8013e9e: 693b ldr r3, [r7, #16]
8013ea0: 429a cmp r2, r3
8013ea2: d02e beq.n 8013f02 <HAL_RCCEx_PeriphCLKConfig+0x1aa>
{
/* Store the content of BDCR register before the reset of Backup Domain */
tmpreg0 = (RCC->BDCR & ~(RCC_BDCR_RTCSEL));
8013ea4: 4b20 ldr r3, [pc, #128] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013ea6: 6f1b ldr r3, [r3, #112] ; 0x70
8013ea8: f423 7340 bic.w r3, r3, #768 ; 0x300
8013eac: 613b str r3, [r7, #16]
/* RTC Clock selection can be changed only if the Backup Domain is reset */
__HAL_RCC_BACKUPRESET_FORCE();
8013eae: 4a1e ldr r2, [pc, #120] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013eb0: 4b1d ldr r3, [pc, #116] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013eb2: 6f1b ldr r3, [r3, #112] ; 0x70
8013eb4: f443 3380 orr.w r3, r3, #65536 ; 0x10000
8013eb8: 6713 str r3, [r2, #112] ; 0x70
__HAL_RCC_BACKUPRESET_RELEASE();
8013eba: 4a1b ldr r2, [pc, #108] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013ebc: 4b1a ldr r3, [pc, #104] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013ebe: 6f1b ldr r3, [r3, #112] ; 0x70
8013ec0: f423 3380 bic.w r3, r3, #65536 ; 0x10000
8013ec4: 6713 str r3, [r2, #112] ; 0x70
/* Restore the Content of BDCR register */
RCC->BDCR = tmpreg0;
8013ec6: 4a18 ldr r2, [pc, #96] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013ec8: 693b ldr r3, [r7, #16]
8013eca: 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))
8013ecc: 4b16 ldr r3, [pc, #88] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013ece: 6f1b ldr r3, [r3, #112] ; 0x70
8013ed0: f003 0301 and.w r3, r3, #1
8013ed4: 2b01 cmp r3, #1
8013ed6: d114 bne.n 8013f02 <HAL_RCCEx_PeriphCLKConfig+0x1aa>
{
/* Get Start Tick*/
tickstart = HAL_GetTick();
8013ed8: f7fd fb80 bl 80115dc <HAL_GetTick>
8013edc: 6178 str r0, [r7, #20]
/* Wait till LSE is ready */
while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET)
8013ede: e00a b.n 8013ef6 <HAL_RCCEx_PeriphCLKConfig+0x19e>
{
if((HAL_GetTick() - tickstart ) > RCC_LSE_TIMEOUT_VALUE)
8013ee0: f7fd fb7c bl 80115dc <HAL_GetTick>
8013ee4: 4602 mov r2, r0
8013ee6: 697b ldr r3, [r7, #20]
8013ee8: 1ad3 subs r3, r2, r3
8013eea: f241 3288 movw r2, #5000 ; 0x1388
8013eee: 4293 cmp r3, r2
8013ef0: d901 bls.n 8013ef6 <HAL_RCCEx_PeriphCLKConfig+0x19e>
{
return HAL_TIMEOUT;
8013ef2: 2303 movs r3, #3
8013ef4: e34f b.n 8014596 <HAL_RCCEx_PeriphCLKConfig+0x83e>
while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET)
8013ef6: 4b0c ldr r3, [pc, #48] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013ef8: 6f1b ldr r3, [r3, #112] ; 0x70
8013efa: f003 0302 and.w r3, r3, #2
8013efe: 2b00 cmp r3, #0
8013f00: d0ee beq.n 8013ee0 <HAL_RCCEx_PeriphCLKConfig+0x188>
}
}
}
}
__HAL_RCC_RTC_CONFIG(PeriphClkInit->RTCClockSelection);
8013f02: 687b ldr r3, [r7, #4]
8013f04: 6b1b ldr r3, [r3, #48] ; 0x30
8013f06: f403 7340 and.w r3, r3, #768 ; 0x300
8013f0a: f5b3 7f40 cmp.w r3, #768 ; 0x300
8013f0e: d111 bne.n 8013f34 <HAL_RCCEx_PeriphCLKConfig+0x1dc>
8013f10: 4805 ldr r0, [pc, #20] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013f12: 4b05 ldr r3, [pc, #20] ; (8013f28 <HAL_RCCEx_PeriphCLKConfig+0x1d0>)
8013f14: 689b ldr r3, [r3, #8]
8013f16: f423 12f8 bic.w r2, r3, #2031616 ; 0x1f0000
8013f1a: 687b ldr r3, [r7, #4]
8013f1c: 6b19 ldr r1, [r3, #48] ; 0x30
8013f1e: 4b04 ldr r3, [pc, #16] ; (8013f30 <HAL_RCCEx_PeriphCLKConfig+0x1d8>)
8013f20: 400b ands r3, r1
8013f22: 4313 orrs r3, r2
8013f24: 6083 str r3, [r0, #8]
8013f26: e00b b.n 8013f40 <HAL_RCCEx_PeriphCLKConfig+0x1e8>
8013f28: 40023800 .word 0x40023800
8013f2c: 40007000 .word 0x40007000
8013f30: 0ffffcff .word 0x0ffffcff
8013f34: 4ab2 ldr r2, [pc, #712] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013f36: 4bb2 ldr r3, [pc, #712] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013f38: 689b ldr r3, [r3, #8]
8013f3a: f423 13f8 bic.w r3, r3, #2031616 ; 0x1f0000
8013f3e: 6093 str r3, [r2, #8]
8013f40: 49af ldr r1, [pc, #700] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013f42: 4baf ldr r3, [pc, #700] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013f44: 6f1a ldr r2, [r3, #112] ; 0x70
8013f46: 687b ldr r3, [r7, #4]
8013f48: 6b1b ldr r3, [r3, #48] ; 0x30
8013f4a: f3c3 030b ubfx r3, r3, #0, #12
8013f4e: 4313 orrs r3, r2
8013f50: 670b str r3, [r1, #112] ; 0x70
}
/*------------------------------------ TIM configuration --------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_TIM) == (RCC_PERIPHCLK_TIM))
8013f52: 687b ldr r3, [r7, #4]
8013f54: 681b ldr r3, [r3, #0]
8013f56: f003 0310 and.w r3, r3, #16
8013f5a: 2b00 cmp r3, #0
8013f5c: d010 beq.n 8013f80 <HAL_RCCEx_PeriphCLKConfig+0x228>
{
/* Check the parameters */
assert_param(IS_RCC_TIMPRES(PeriphClkInit->TIMPresSelection));
/* Configure Timer Prescaler */
__HAL_RCC_TIMCLKPRESCALER(PeriphClkInit->TIMPresSelection);
8013f5e: 4aa8 ldr r2, [pc, #672] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013f60: 4ba7 ldr r3, [pc, #668] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013f62: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
8013f66: f023 7380 bic.w r3, r3, #16777216 ; 0x1000000
8013f6a: f8c2 308c str.w r3, [r2, #140] ; 0x8c
8013f6e: 49a4 ldr r1, [pc, #656] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013f70: 4ba3 ldr r3, [pc, #652] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013f72: f8d3 208c ldr.w r2, [r3, #140] ; 0x8c
8013f76: 687b ldr r3, [r7, #4]
8013f78: 6b9b ldr r3, [r3, #56] ; 0x38
8013f7a: 4313 orrs r3, r2
8013f7c: f8c1 308c str.w r3, [r1, #140] ; 0x8c
}
/*-------------------------------------- I2C1 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C1) == RCC_PERIPHCLK_I2C1)
8013f80: 687b ldr r3, [r7, #4]
8013f82: 681b ldr r3, [r3, #0]
8013f84: f403 4380 and.w r3, r3, #16384 ; 0x4000
8013f88: 2b00 cmp r3, #0
8013f8a: d00a beq.n 8013fa2 <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);
8013f8c: 499c ldr r1, [pc, #624] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013f8e: 4b9c ldr r3, [pc, #624] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013f90: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8013f94: f423 3240 bic.w r2, r3, #196608 ; 0x30000
8013f98: 687b ldr r3, [r7, #4]
8013f9a: 6e5b ldr r3, [r3, #100] ; 0x64
8013f9c: 4313 orrs r3, r2
8013f9e: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- I2C2 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C2) == RCC_PERIPHCLK_I2C2)
8013fa2: 687b ldr r3, [r7, #4]
8013fa4: 681b ldr r3, [r3, #0]
8013fa6: f403 4300 and.w r3, r3, #32768 ; 0x8000
8013faa: 2b00 cmp r3, #0
8013fac: d00a beq.n 8013fc4 <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);
8013fae: 4994 ldr r1, [pc, #592] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013fb0: 4b93 ldr r3, [pc, #588] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013fb2: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8013fb6: f423 2240 bic.w r2, r3, #786432 ; 0xc0000
8013fba: 687b ldr r3, [r7, #4]
8013fbc: 6e9b ldr r3, [r3, #104] ; 0x68
8013fbe: 4313 orrs r3, r2
8013fc0: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- I2C3 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C3) == RCC_PERIPHCLK_I2C3)
8013fc4: 687b ldr r3, [r7, #4]
8013fc6: 681b ldr r3, [r3, #0]
8013fc8: f403 3380 and.w r3, r3, #65536 ; 0x10000
8013fcc: 2b00 cmp r3, #0
8013fce: d00a beq.n 8013fe6 <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);
8013fd0: 498b ldr r1, [pc, #556] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013fd2: 4b8b ldr r3, [pc, #556] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013fd4: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8013fd8: f423 1240 bic.w r2, r3, #3145728 ; 0x300000
8013fdc: 687b ldr r3, [r7, #4]
8013fde: 6edb ldr r3, [r3, #108] ; 0x6c
8013fe0: 4313 orrs r3, r2
8013fe2: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- I2C4 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_I2C4) == RCC_PERIPHCLK_I2C4)
8013fe6: 687b ldr r3, [r7, #4]
8013fe8: 681b ldr r3, [r3, #0]
8013fea: f403 3300 and.w r3, r3, #131072 ; 0x20000
8013fee: 2b00 cmp r3, #0
8013ff0: d00a beq.n 8014008 <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);
8013ff2: 4983 ldr r1, [pc, #524] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013ff4: 4b82 ldr r3, [pc, #520] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8013ff6: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8013ffa: f423 0240 bic.w r2, r3, #12582912 ; 0xc00000
8013ffe: 687b ldr r3, [r7, #4]
8014000: 6f1b ldr r3, [r3, #112] ; 0x70
8014002: 4313 orrs r3, r2
8014004: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- USART1 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART1) == RCC_PERIPHCLK_USART1)
8014008: 687b ldr r3, [r7, #4]
801400a: 681b ldr r3, [r3, #0]
801400c: f003 0340 and.w r3, r3, #64 ; 0x40
8014010: 2b00 cmp r3, #0
8014012: d00a beq.n 801402a <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);
8014014: 497a ldr r1, [pc, #488] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014016: 4b7a ldr r3, [pc, #488] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014018: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
801401c: f023 0203 bic.w r2, r3, #3
8014020: 687b ldr r3, [r7, #4]
8014022: 6c5b ldr r3, [r3, #68] ; 0x44
8014024: 4313 orrs r3, r2
8014026: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- USART2 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART2) == RCC_PERIPHCLK_USART2)
801402a: 687b ldr r3, [r7, #4]
801402c: 681b ldr r3, [r3, #0]
801402e: f003 0380 and.w r3, r3, #128 ; 0x80
8014032: 2b00 cmp r3, #0
8014034: d00a beq.n 801404c <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);
8014036: 4972 ldr r1, [pc, #456] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014038: 4b71 ldr r3, [pc, #452] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801403a: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
801403e: f023 020c bic.w r2, r3, #12
8014042: 687b ldr r3, [r7, #4]
8014044: 6c9b ldr r3, [r3, #72] ; 0x48
8014046: 4313 orrs r3, r2
8014048: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- USART3 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART3) == RCC_PERIPHCLK_USART3)
801404c: 687b ldr r3, [r7, #4]
801404e: 681b ldr r3, [r3, #0]
8014050: f403 7380 and.w r3, r3, #256 ; 0x100
8014054: 2b00 cmp r3, #0
8014056: d00a beq.n 801406e <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);
8014058: 4969 ldr r1, [pc, #420] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801405a: 4b69 ldr r3, [pc, #420] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801405c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8014060: f023 0230 bic.w r2, r3, #48 ; 0x30
8014064: 687b ldr r3, [r7, #4]
8014066: 6cdb ldr r3, [r3, #76] ; 0x4c
8014068: 4313 orrs r3, r2
801406a: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- UART4 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART4) == RCC_PERIPHCLK_UART4)
801406e: 687b ldr r3, [r7, #4]
8014070: 681b ldr r3, [r3, #0]
8014072: f403 7300 and.w r3, r3, #512 ; 0x200
8014076: 2b00 cmp r3, #0
8014078: d00a beq.n 8014090 <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);
801407a: 4961 ldr r1, [pc, #388] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801407c: 4b60 ldr r3, [pc, #384] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801407e: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8014082: f023 02c0 bic.w r2, r3, #192 ; 0xc0
8014086: 687b ldr r3, [r7, #4]
8014088: 6d1b ldr r3, [r3, #80] ; 0x50
801408a: 4313 orrs r3, r2
801408c: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- UART5 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART5) == RCC_PERIPHCLK_UART5)
8014090: 687b ldr r3, [r7, #4]
8014092: 681b ldr r3, [r3, #0]
8014094: f403 6380 and.w r3, r3, #1024 ; 0x400
8014098: 2b00 cmp r3, #0
801409a: d00a beq.n 80140b2 <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);
801409c: 4958 ldr r1, [pc, #352] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801409e: 4b58 ldr r3, [pc, #352] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80140a0: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80140a4: f423 7240 bic.w r2, r3, #768 ; 0x300
80140a8: 687b ldr r3, [r7, #4]
80140aa: 6d5b ldr r3, [r3, #84] ; 0x54
80140ac: 4313 orrs r3, r2
80140ae: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- USART6 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_USART6) == RCC_PERIPHCLK_USART6)
80140b2: 687b ldr r3, [r7, #4]
80140b4: 681b ldr r3, [r3, #0]
80140b6: f403 6300 and.w r3, r3, #2048 ; 0x800
80140ba: 2b00 cmp r3, #0
80140bc: d00a beq.n 80140d4 <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);
80140be: 4950 ldr r1, [pc, #320] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80140c0: 4b4f ldr r3, [pc, #316] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80140c2: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80140c6: f423 6240 bic.w r2, r3, #3072 ; 0xc00
80140ca: 687b ldr r3, [r7, #4]
80140cc: 6d9b ldr r3, [r3, #88] ; 0x58
80140ce: 4313 orrs r3, r2
80140d0: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- UART7 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART7) == RCC_PERIPHCLK_UART7)
80140d4: 687b ldr r3, [r7, #4]
80140d6: 681b ldr r3, [r3, #0]
80140d8: f403 5380 and.w r3, r3, #4096 ; 0x1000
80140dc: 2b00 cmp r3, #0
80140de: d00a beq.n 80140f6 <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);
80140e0: 4947 ldr r1, [pc, #284] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80140e2: 4b47 ldr r3, [pc, #284] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80140e4: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80140e8: f423 5240 bic.w r2, r3, #12288 ; 0x3000
80140ec: 687b ldr r3, [r7, #4]
80140ee: 6ddb ldr r3, [r3, #92] ; 0x5c
80140f0: 4313 orrs r3, r2
80140f2: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- UART8 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_UART8) == RCC_PERIPHCLK_UART8)
80140f6: 687b ldr r3, [r7, #4]
80140f8: 681b ldr r3, [r3, #0]
80140fa: f403 5300 and.w r3, r3, #8192 ; 0x2000
80140fe: 2b00 cmp r3, #0
8014100: d00a beq.n 8014118 <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);
8014102: 493f ldr r1, [pc, #252] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014104: 4b3e ldr r3, [pc, #248] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014106: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
801410a: f423 4240 bic.w r2, r3, #49152 ; 0xc000
801410e: 687b ldr r3, [r7, #4]
8014110: 6e1b ldr r3, [r3, #96] ; 0x60
8014112: 4313 orrs r3, r2
8014114: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*--------------------------------------- CEC Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CEC) == RCC_PERIPHCLK_CEC)
8014118: 687b ldr r3, [r7, #4]
801411a: 681b ldr r3, [r3, #0]
801411c: f403 0380 and.w r3, r3, #4194304 ; 0x400000
8014120: 2b00 cmp r3, #0
8014122: d00a beq.n 801413a <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);
8014124: 4936 ldr r1, [pc, #216] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014126: 4b36 ldr r3, [pc, #216] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014128: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
801412c: f023 6280 bic.w r2, r3, #67108864 ; 0x4000000
8014130: 687b ldr r3, [r7, #4]
8014132: 6f9b ldr r3, [r3, #120] ; 0x78
8014134: 4313 orrs r3, r2
8014136: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*-------------------------------------- CK48 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_CLK48) == RCC_PERIPHCLK_CLK48)
801413a: 687b ldr r3, [r7, #4]
801413c: 681b ldr r3, [r3, #0]
801413e: f403 1300 and.w r3, r3, #2097152 ; 0x200000
8014142: 2b00 cmp r3, #0
8014144: d011 beq.n 801416a <HAL_RCCEx_PeriphCLKConfig+0x412>
{
/* Check the parameters */
assert_param(IS_RCC_CLK48SOURCE(PeriphClkInit->Clk48ClockSelection));
/* Configure the CLK48 source */
__HAL_RCC_CLK48_CONFIG(PeriphClkInit->Clk48ClockSelection);
8014146: 492e ldr r1, [pc, #184] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014148: 4b2d ldr r3, [pc, #180] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801414a: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
801414e: f023 6200 bic.w r2, r3, #134217728 ; 0x8000000
8014152: 687b ldr r3, [r7, #4]
8014154: 6fdb ldr r3, [r3, #124] ; 0x7c
8014156: 4313 orrs r3, r2
8014158: 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)
801415c: 687b ldr r3, [r7, #4]
801415e: 6fdb ldr r3, [r3, #124] ; 0x7c
8014160: f1b3 6f00 cmp.w r3, #134217728 ; 0x8000000
8014164: d101 bne.n 801416a <HAL_RCCEx_PeriphCLKConfig+0x412>
{
pllsaiused = 1;
8014166: 2301 movs r3, #1
8014168: 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)
801416a: 687b ldr r3, [r7, #4]
801416c: 681b ldr r3, [r3, #0]
801416e: f003 0308 and.w r3, r3, #8
8014172: 2b00 cmp r3, #0
8014174: d001 beq.n 801417a <HAL_RCCEx_PeriphCLKConfig+0x422>
{
pllsaiused = 1;
8014176: 2301 movs r3, #1
8014178: 61bb str r3, [r7, #24]
}
#endif /* STM32F746xx || STM32F756xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx || STM32F750xx */
/*-------------------------------------- LPTIM1 Configuration -----------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPTIM1) == RCC_PERIPHCLK_LPTIM1)
801417a: 687b ldr r3, [r7, #4]
801417c: 681b ldr r3, [r3, #0]
801417e: f403 2380 and.w r3, r3, #262144 ; 0x40000
8014182: 2b00 cmp r3, #0
8014184: d00a beq.n 801419c <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);
8014186: 491e ldr r1, [pc, #120] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
8014188: 4b1d ldr r3, [pc, #116] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
801418a: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
801418e: f023 7240 bic.w r2, r3, #50331648 ; 0x3000000
8014192: 687b ldr r3, [r7, #4]
8014194: 6f5b ldr r3, [r3, #116] ; 0x74
8014196: 4313 orrs r3, r2
8014198: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*------------------------------------- SDMMC1 Configuration ------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SDMMC1) == RCC_PERIPHCLK_SDMMC1)
801419c: 687b ldr r3, [r7, #4]
801419e: 681b ldr r3, [r3, #0]
80141a0: f403 0300 and.w r3, r3, #8388608 ; 0x800000
80141a4: 2b00 cmp r3, #0
80141a6: d00b beq.n 80141c0 <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);
80141a8: 4915 ldr r1, [pc, #84] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80141aa: 4b15 ldr r3, [pc, #84] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80141ac: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80141b0: f023 5280 bic.w r2, r3, #268435456 ; 0x10000000
80141b4: 687b ldr r3, [r7, #4]
80141b6: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
80141ba: 4313 orrs r3, r2
80141bc: 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)
80141c0: 687b ldr r3, [r7, #4]
80141c2: 681b ldr r3, [r3, #0]
80141c4: f003 6380 and.w r3, r3, #67108864 ; 0x4000000
80141c8: 2b00 cmp r3, #0
80141ca: d00b beq.n 80141e4 <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);
80141cc: 490c ldr r1, [pc, #48] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80141ce: 4b0c ldr r3, [pc, #48] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80141d0: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80141d4: f023 5200 bic.w r2, r3, #536870912 ; 0x20000000
80141d8: 687b ldr r3, [r7, #4]
80141da: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
80141de: 4313 orrs r3, r2
80141e0: f8c1 3090 str.w r3, [r1, #144] ; 0x90
}
/*------------------------------------- DFSDM1 Configuration -------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_DFSDM1) == RCC_PERIPHCLK_DFSDM1)
80141e4: 687b ldr r3, [r7, #4]
80141e6: 681b ldr r3, [r3, #0]
80141e8: f003 6300 and.w r3, r3, #134217728 ; 0x8000000
80141ec: 2b00 cmp r3, #0
80141ee: d00e beq.n 801420e <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);
80141f0: 4903 ldr r1, [pc, #12] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80141f2: 4b03 ldr r3, [pc, #12] ; (8014200 <HAL_RCCEx_PeriphCLKConfig+0x4a8>)
80141f4: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
80141f8: f023 7200 bic.w r2, r3, #33554432 ; 0x2000000
80141fc: 687b ldr r3, [r7, #4]
80141fe: e001 b.n 8014204 <HAL_RCCEx_PeriphCLKConfig+0x4ac>
8014200: 40023800 .word 0x40023800
8014204: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
8014208: 4313 orrs r3, r2
801420a: f8c1 308c str.w r3, [r1, #140] ; 0x8c
}
/*------------------------------------- DFSDM AUDIO Configuration -------------------------------------*/
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_DFSDM1_AUDIO) == RCC_PERIPHCLK_DFSDM1_AUDIO)
801420e: 687b ldr r3, [r7, #4]
8014210: 681b ldr r3, [r3, #0]
8014212: f003 5380 and.w r3, r3, #268435456 ; 0x10000000
8014216: 2b00 cmp r3, #0
8014218: d00b beq.n 8014232 <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);
801421a: 4981 ldr r1, [pc, #516] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
801421c: 4b80 ldr r3, [pc, #512] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
801421e: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
8014222: f023 6280 bic.w r2, r3, #67108864 ; 0x4000000
8014226: 687b ldr r3, [r7, #4]
8014228: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
801422c: 4313 orrs r3, r2
801422e: 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))
8014232: 69fb ldr r3, [r7, #28]
8014234: 2b01 cmp r3, #1
8014236: d006 beq.n 8014246 <HAL_RCCEx_PeriphCLKConfig+0x4ee>
8014238: 687b ldr r3, [r7, #4]
801423a: 681b ldr r3, [r3, #0]
801423c: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
8014240: 2b00 cmp r3, #0
8014242: f000 80d6 beq.w 80143f2 <HAL_RCCEx_PeriphCLKConfig+0x69a>
{
/* Disable the PLLI2S */
__HAL_RCC_PLLI2S_DISABLE();
8014246: 4a76 ldr r2, [pc, #472] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014248: 4b75 ldr r3, [pc, #468] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
801424a: 681b ldr r3, [r3, #0]
801424c: f023 6380 bic.w r3, r3, #67108864 ; 0x4000000
8014250: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
8014252: f7fd f9c3 bl 80115dc <HAL_GetTick>
8014256: 6178 str r0, [r7, #20]
/* Wait till PLLI2S is disabled */
while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) != RESET)
8014258: e008 b.n 801426c <HAL_RCCEx_PeriphCLKConfig+0x514>
{
if((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE)
801425a: f7fd f9bf bl 80115dc <HAL_GetTick>
801425e: 4602 mov r2, r0
8014260: 697b ldr r3, [r7, #20]
8014262: 1ad3 subs r3, r2, r3
8014264: 2b64 cmp r3, #100 ; 0x64
8014266: d901 bls.n 801426c <HAL_RCCEx_PeriphCLKConfig+0x514>
{
/* return in case of Timeout detected */
return HAL_TIMEOUT;
8014268: 2303 movs r3, #3
801426a: e194 b.n 8014596 <HAL_RCCEx_PeriphCLKConfig+0x83e>
while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) != RESET)
801426c: 4b6c ldr r3, [pc, #432] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
801426e: 681b ldr r3, [r3, #0]
8014270: f003 6300 and.w r3, r3, #134217728 ; 0x8000000
8014274: 2b00 cmp r3, #0
8014276: d1f0 bne.n 801425a <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)))
8014278: 687b ldr r3, [r7, #4]
801427a: 681b ldr r3, [r3, #0]
801427c: f003 0301 and.w r3, r3, #1
8014280: 2b00 cmp r3, #0
8014282: d021 beq.n 80142c8 <HAL_RCCEx_PeriphCLKConfig+0x570>
8014284: 687b ldr r3, [r7, #4]
8014286: 6b5b ldr r3, [r3, #52] ; 0x34
8014288: 2b00 cmp r3, #0
801428a: d11d bne.n 80142c8 <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);
801428c: 4b64 ldr r3, [pc, #400] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
801428e: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
8014292: 0c1b lsrs r3, r3, #16
8014294: f003 0303 and.w r3, r3, #3
8014298: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SQ) >> RCC_PLLI2SCFGR_PLLI2SQ_Pos);
801429a: 4b61 ldr r3, [pc, #388] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
801429c: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
80142a0: 0e1b lsrs r3, r3, #24
80142a2: f003 030f and.w r3, r3, #15
80142a6: 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);
80142a8: 495d ldr r1, [pc, #372] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80142aa: 687b ldr r3, [r7, #4]
80142ac: 685b ldr r3, [r3, #4]
80142ae: 019a lsls r2, r3, #6
80142b0: 693b ldr r3, [r7, #16]
80142b2: 041b lsls r3, r3, #16
80142b4: 431a orrs r2, r3
80142b6: 68fb ldr r3, [r7, #12]
80142b8: 061b lsls r3, r3, #24
80142ba: 431a orrs r2, r3
80142bc: 687b ldr r3, [r7, #4]
80142be: 689b ldr r3, [r3, #8]
80142c0: 071b lsls r3, r3, #28
80142c2: 4313 orrs r3, r2
80142c4: 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)) ||
80142c8: 687b ldr r3, [r7, #4]
80142ca: 681b ldr r3, [r3, #0]
80142cc: f403 2300 and.w r3, r3, #524288 ; 0x80000
80142d0: 2b00 cmp r3, #0
80142d2: d004 beq.n 80142de <HAL_RCCEx_PeriphCLKConfig+0x586>
80142d4: 687b ldr r3, [r7, #4]
80142d6: 6bdb ldr r3, [r3, #60] ; 0x3c
80142d8: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000
80142dc: d00a beq.n 80142f4 <HAL_RCCEx_PeriphCLKConfig+0x59c>
((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S)))
80142de: 687b ldr r3, [r7, #4]
80142e0: 681b ldr r3, [r3, #0]
80142e2: f403 1380 and.w r3, r3, #1048576 ; 0x100000
if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLI2S)) ||
80142e6: 2b00 cmp r3, #0
80142e8: d02e beq.n 8014348 <HAL_RCCEx_PeriphCLKConfig+0x5f0>
((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLI2S)))
80142ea: 687b ldr r3, [r7, #4]
80142ec: 6c1b ldr r3, [r3, #64] ; 0x40
80142ee: f5b3 0f80 cmp.w r3, #4194304 ; 0x400000
80142f2: d129 bne.n 8014348 <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);
80142f4: 4b4a ldr r3, [pc, #296] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80142f6: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
80142fa: 0c1b lsrs r3, r3, #16
80142fc: f003 0303 and.w r3, r3, #3
8014300: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLI2SCFGR_PLLI2SR_Pos);
8014302: 4b47 ldr r3, [pc, #284] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014304: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
8014308: 0f1b lsrs r3, r3, #28
801430a: f003 0307 and.w r3, r3, #7
801430e: 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);
8014310: 4943 ldr r1, [pc, #268] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014312: 687b ldr r3, [r7, #4]
8014314: 685b ldr r3, [r3, #4]
8014316: 019a lsls r2, r3, #6
8014318: 693b ldr r3, [r7, #16]
801431a: 041b lsls r3, r3, #16
801431c: 431a orrs r2, r3
801431e: 687b ldr r3, [r7, #4]
8014320: 68db ldr r3, [r3, #12]
8014322: 061b lsls r3, r3, #24
8014324: 431a orrs r2, r3
8014326: 68fb ldr r3, [r7, #12]
8014328: 071b lsls r3, r3, #28
801432a: 4313 orrs r3, r2
801432c: f8c1 3084 str.w r3, [r1, #132] ; 0x84
/* SAI_CLK_x = SAI_CLK(first level)/PLLI2SDIVQ */
__HAL_RCC_PLLI2S_PLLSAICLKDIVQ_CONFIG(PeriphClkInit->PLLI2SDivQ);
8014330: 493b ldr r1, [pc, #236] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014332: 4b3b ldr r3, [pc, #236] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014334: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
8014338: f023 021f bic.w r2, r3, #31
801433c: 687b ldr r3, [r7, #4]
801433e: 6a5b ldr r3, [r3, #36] ; 0x24
8014340: 3b01 subs r3, #1
8014342: 4313 orrs r3, r2
8014344: 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)
8014348: 687b ldr r3, [r7, #4]
801434a: 681b ldr r3, [r3, #0]
801434c: f003 7380 and.w r3, r3, #16777216 ; 0x1000000
8014350: 2b00 cmp r3, #0
8014352: d01d beq.n 8014390 <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);
8014354: 4b32 ldr r3, [pc, #200] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014356: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
801435a: 0e1b lsrs r3, r3, #24
801435c: f003 030f and.w r3, r3, #15
8014360: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLI2SCFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLI2SCFGR_PLLI2SR_Pos);
8014362: 4b2f ldr r3, [pc, #188] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014364: f8d3 3084 ldr.w r3, [r3, #132] ; 0x84
8014368: 0f1b lsrs r3, r3, #28
801436a: f003 0307 and.w r3, r3, #7
801436e: 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);
8014370: 492b ldr r1, [pc, #172] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
8014372: 687b ldr r3, [r7, #4]
8014374: 685b ldr r3, [r3, #4]
8014376: 019a lsls r2, r3, #6
8014378: 687b ldr r3, [r7, #4]
801437a: 691b ldr r3, [r3, #16]
801437c: 041b lsls r3, r3, #16
801437e: 431a orrs r2, r3
8014380: 693b ldr r3, [r7, #16]
8014382: 061b lsls r3, r3, #24
8014384: 431a orrs r2, r3
8014386: 68fb ldr r3, [r7, #12]
8014388: 071b lsls r3, r3, #28
801438a: 4313 orrs r3, r2
801438c: f8c1 3084 str.w r3, [r1, #132] ; 0x84
}
/*----------------- In Case of PLLI2S is just selected -----------------*/
if((PeriphClkInit->PeriphClockSelection & RCC_PERIPHCLK_PLLI2S) == RCC_PERIPHCLK_PLLI2S)
8014390: 687b ldr r3, [r7, #4]
8014392: 681b ldr r3, [r3, #0]
8014394: f003 7300 and.w r3, r3, #33554432 ; 0x2000000
8014398: 2b00 cmp r3, #0
801439a: d011 beq.n 80143c0 <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);
801439c: 4920 ldr r1, [pc, #128] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
801439e: 687b ldr r3, [r7, #4]
80143a0: 685b ldr r3, [r3, #4]
80143a2: 019a lsls r2, r3, #6
80143a4: 687b ldr r3, [r7, #4]
80143a6: 691b ldr r3, [r3, #16]
80143a8: 041b lsls r3, r3, #16
80143aa: 431a orrs r2, r3
80143ac: 687b ldr r3, [r7, #4]
80143ae: 68db ldr r3, [r3, #12]
80143b0: 061b lsls r3, r3, #24
80143b2: 431a orrs r2, r3
80143b4: 687b ldr r3, [r7, #4]
80143b6: 689b ldr r3, [r3, #8]
80143b8: 071b lsls r3, r3, #28
80143ba: 4313 orrs r3, r2
80143bc: f8c1 3084 str.w r3, [r1, #132] ; 0x84
}
/* Enable the PLLI2S */
__HAL_RCC_PLLI2S_ENABLE();
80143c0: 4a17 ldr r2, [pc, #92] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80143c2: 4b17 ldr r3, [pc, #92] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80143c4: 681b ldr r3, [r3, #0]
80143c6: f043 6380 orr.w r3, r3, #67108864 ; 0x4000000
80143ca: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
80143cc: f7fd f906 bl 80115dc <HAL_GetTick>
80143d0: 6178 str r0, [r7, #20]
/* Wait till PLLI2S is ready */
while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) == RESET)
80143d2: e008 b.n 80143e6 <HAL_RCCEx_PeriphCLKConfig+0x68e>
{
if((HAL_GetTick() - tickstart) > PLLI2S_TIMEOUT_VALUE)
80143d4: f7fd f902 bl 80115dc <HAL_GetTick>
80143d8: 4602 mov r2, r0
80143da: 697b ldr r3, [r7, #20]
80143dc: 1ad3 subs r3, r2, r3
80143de: 2b64 cmp r3, #100 ; 0x64
80143e0: d901 bls.n 80143e6 <HAL_RCCEx_PeriphCLKConfig+0x68e>
{
/* return in case of Timeout detected */
return HAL_TIMEOUT;
80143e2: 2303 movs r3, #3
80143e4: e0d7 b.n 8014596 <HAL_RCCEx_PeriphCLKConfig+0x83e>
while(__HAL_RCC_GET_FLAG(RCC_FLAG_PLLI2SRDY) == RESET)
80143e6: 4b0e ldr r3, [pc, #56] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80143e8: 681b ldr r3, [r3, #0]
80143ea: f003 6300 and.w r3, r3, #134217728 ; 0x8000000
80143ee: 2b00 cmp r3, #0
80143f0: d0f0 beq.n 80143d4 <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)
80143f2: 69bb ldr r3, [r7, #24]
80143f4: 2b01 cmp r3, #1
80143f6: f040 80cd bne.w 8014594 <HAL_RCCEx_PeriphCLKConfig+0x83c>
{
/* Disable PLLSAI Clock */
__HAL_RCC_PLLSAI_DISABLE();
80143fa: 4a09 ldr r2, [pc, #36] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80143fc: 4b08 ldr r3, [pc, #32] ; (8014420 <HAL_RCCEx_PeriphCLKConfig+0x6c8>)
80143fe: 681b ldr r3, [r3, #0]
8014400: f023 5380 bic.w r3, r3, #268435456 ; 0x10000000
8014404: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
8014406: f7fd f8e9 bl 80115dc <HAL_GetTick>
801440a: 6178 str r0, [r7, #20]
/* Wait till PLLSAI is disabled */
while(__HAL_RCC_PLLSAI_GET_FLAG() != RESET)
801440c: e00a b.n 8014424 <HAL_RCCEx_PeriphCLKConfig+0x6cc>
{
if((HAL_GetTick() - tickstart) > PLLSAI_TIMEOUT_VALUE)
801440e: f7fd f8e5 bl 80115dc <HAL_GetTick>
8014412: 4602 mov r2, r0
8014414: 697b ldr r3, [r7, #20]
8014416: 1ad3 subs r3, r2, r3
8014418: 2b64 cmp r3, #100 ; 0x64
801441a: d903 bls.n 8014424 <HAL_RCCEx_PeriphCLKConfig+0x6cc>
{
/* return in case of Timeout detected */
return HAL_TIMEOUT;
801441c: 2303 movs r3, #3
801441e: e0ba b.n 8014596 <HAL_RCCEx_PeriphCLKConfig+0x83e>
8014420: 40023800 .word 0x40023800
while(__HAL_RCC_PLLSAI_GET_FLAG() != RESET)
8014424: 4b5e ldr r3, [pc, #376] ; (80145a0 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014426: 681b ldr r3, [r3, #0]
8014428: f003 5300 and.w r3, r3, #536870912 ; 0x20000000
801442c: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000
8014430: d0ed beq.n 801440e <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)) ||\
8014432: 687b ldr r3, [r7, #4]
8014434: 681b ldr r3, [r3, #0]
8014436: f403 2300 and.w r3, r3, #524288 ; 0x80000
801443a: 2b00 cmp r3, #0
801443c: d003 beq.n 8014446 <HAL_RCCEx_PeriphCLKConfig+0x6ee>
801443e: 687b ldr r3, [r7, #4]
8014440: 6bdb ldr r3, [r3, #60] ; 0x3c
8014442: 2b00 cmp r3, #0
8014444: d009 beq.n 801445a <HAL_RCCEx_PeriphCLKConfig+0x702>
((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI)))
8014446: 687b ldr r3, [r7, #4]
8014448: 681b ldr r3, [r3, #0]
801444a: f403 1380 and.w r3, r3, #1048576 ; 0x100000
if(((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI1) == RCC_PERIPHCLK_SAI1) && (PeriphClkInit->Sai1ClockSelection == RCC_SAI1CLKSOURCE_PLLSAI)) ||\
801444e: 2b00 cmp r3, #0
8014450: d02e beq.n 80144b0 <HAL_RCCEx_PeriphCLKConfig+0x758>
((((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_SAI2) == RCC_PERIPHCLK_SAI2) && (PeriphClkInit->Sai2ClockSelection == RCC_SAI2CLKSOURCE_PLLSAI)))
8014452: 687b ldr r3, [r7, #4]
8014454: 6c1b ldr r3, [r3, #64] ; 0x40
8014456: 2b00 cmp r3, #0
8014458: d12a bne.n 80144b0 <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);
801445a: 4b51 ldr r3, [pc, #324] ; (80145a0 <HAL_RCCEx_PeriphCLKConfig+0x848>)
801445c: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
8014460: 0c1b lsrs r3, r3, #16
8014462: f003 0303 and.w r3, r3, #3
8014466: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLI2SCFGR_PLLI2SR) >> RCC_PLLSAICFGR_PLLSAIR_Pos);
8014468: 4b4d ldr r3, [pc, #308] ; (80145a0 <HAL_RCCEx_PeriphCLKConfig+0x848>)
801446a: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
801446e: 0f1b lsrs r3, r3, #28
8014470: f003 0307 and.w r3, r3, #7
8014474: 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);
8014476: 494a ldr r1, [pc, #296] ; (80145a0 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014478: 687b ldr r3, [r7, #4]
801447a: 695b ldr r3, [r3, #20]
801447c: 019a lsls r2, r3, #6
801447e: 693b ldr r3, [r7, #16]
8014480: 041b lsls r3, r3, #16
8014482: 431a orrs r2, r3
8014484: 687b ldr r3, [r7, #4]
8014486: 699b ldr r3, [r3, #24]
8014488: 061b lsls r3, r3, #24
801448a: 431a orrs r2, r3
801448c: 68fb ldr r3, [r7, #12]
801448e: 071b lsls r3, r3, #28
8014490: 4313 orrs r3, r2
8014492: f8c1 3088 str.w r3, [r1, #136] ; 0x88
/* SAI_CLK_x = SAI_CLK(first level)/PLLSAIDIVQ */
__HAL_RCC_PLLSAI_PLLSAICLKDIVQ_CONFIG(PeriphClkInit->PLLSAIDivQ);
8014496: 4942 ldr r1, [pc, #264] ; (80145a0 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014498: 4b41 ldr r3, [pc, #260] ; (80145a0 <HAL_RCCEx_PeriphCLKConfig+0x848>)
801449a: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
801449e: f423 52f8 bic.w r2, r3, #7936 ; 0x1f00
80144a2: 687b ldr r3, [r7, #4]
80144a4: 6a9b ldr r3, [r3, #40] ; 0x28
80144a6: 3b01 subs r3, #1
80144a8: 021b lsls r3, r3, #8
80144aa: 4313 orrs r3, r2
80144ac: 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))
80144b0: 687b ldr r3, [r7, #4]
80144b2: 681b ldr r3, [r3, #0]
80144b4: f403 1300 and.w r3, r3, #2097152 ; 0x200000
80144b8: 2b00 cmp r3, #0
80144ba: d022 beq.n 8014502 <HAL_RCCEx_PeriphCLKConfig+0x7aa>
80144bc: 687b ldr r3, [r7, #4]
80144be: 6fdb ldr r3, [r3, #124] ; 0x7c
80144c0: f1b3 6f00 cmp.w r3, #134217728 ; 0x8000000
80144c4: d11d bne.n 8014502 <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);
80144c6: 4b36 ldr r3, [pc, #216] ; (80145a0 <HAL_RCCEx_PeriphCLKConfig+0x848>)
80144c8: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
80144cc: 0e1b lsrs r3, r3, #24
80144ce: f003 030f and.w r3, r3, #15
80144d2: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIR) >> RCC_PLLSAICFGR_PLLSAIR_Pos);
80144d4: 4b32 ldr r3, [pc, #200] ; (80145a0 <HAL_RCCEx_PeriphCLKConfig+0x848>)
80144d6: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
80144da: 0f1b lsrs r3, r3, #28
80144dc: f003 0307 and.w r3, r3, #7
80144e0: 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);
80144e2: 492f ldr r1, [pc, #188] ; (80145a0 <HAL_RCCEx_PeriphCLKConfig+0x848>)
80144e4: 687b ldr r3, [r7, #4]
80144e6: 695b ldr r3, [r3, #20]
80144e8: 019a lsls r2, r3, #6
80144ea: 687b ldr r3, [r7, #4]
80144ec: 6a1b ldr r3, [r3, #32]
80144ee: 041b lsls r3, r3, #16
80144f0: 431a orrs r2, r3
80144f2: 693b ldr r3, [r7, #16]
80144f4: 061b lsls r3, r3, #24
80144f6: 431a orrs r2, r3
80144f8: 68fb ldr r3, [r7, #12]
80144fa: 071b lsls r3, r3, #28
80144fc: 4313 orrs r3, r2
80144fe: 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))
8014502: 687b ldr r3, [r7, #4]
8014504: 681b ldr r3, [r3, #0]
8014506: f003 0308 and.w r3, r3, #8
801450a: 2b00 cmp r3, #0
801450c: d028 beq.n 8014560 <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);
801450e: 4b24 ldr r3, [pc, #144] ; (80145a0 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014510: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
8014514: 0e1b lsrs r3, r3, #24
8014516: f003 030f and.w r3, r3, #15
801451a: 613b str r3, [r7, #16]
tmpreg1 = ((RCC->PLLSAICFGR & RCC_PLLSAICFGR_PLLSAIP) >> RCC_PLLSAICFGR_PLLSAIP_Pos);
801451c: 4b20 ldr r3, [pc, #128] ; (80145a0 <HAL_RCCEx_PeriphCLKConfig+0x848>)
801451e: f8d3 3088 ldr.w r3, [r3, #136] ; 0x88
8014522: 0c1b lsrs r3, r3, #16
8014524: f003 0303 and.w r3, r3, #3
8014528: 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);
801452a: 491d ldr r1, [pc, #116] ; (80145a0 <HAL_RCCEx_PeriphCLKConfig+0x848>)
801452c: 687b ldr r3, [r7, #4]
801452e: 695b ldr r3, [r3, #20]
8014530: 019a lsls r2, r3, #6
8014532: 68fb ldr r3, [r7, #12]
8014534: 041b lsls r3, r3, #16
8014536: 431a orrs r2, r3
8014538: 693b ldr r3, [r7, #16]
801453a: 061b lsls r3, r3, #24
801453c: 431a orrs r2, r3
801453e: 687b ldr r3, [r7, #4]
8014540: 69db ldr r3, [r3, #28]
8014542: 071b lsls r3, r3, #28
8014544: 4313 orrs r3, r2
8014546: f8c1 3088 str.w r3, [r1, #136] ; 0x88
/* LTDC_CLK = LTDC_CLK(first level)/PLLSAIDIVR */
__HAL_RCC_PLLSAI_PLLSAICLKDIVR_CONFIG(PeriphClkInit->PLLSAIDivR);
801454a: 4915 ldr r1, [pc, #84] ; (80145a0 <HAL_RCCEx_PeriphCLKConfig+0x848>)
801454c: 4b14 ldr r3, [pc, #80] ; (80145a0 <HAL_RCCEx_PeriphCLKConfig+0x848>)
801454e: f8d3 308c ldr.w r3, [r3, #140] ; 0x8c
8014552: f423 3240 bic.w r2, r3, #196608 ; 0x30000
8014556: 687b ldr r3, [r7, #4]
8014558: 6adb ldr r3, [r3, #44] ; 0x2c
801455a: 4313 orrs r3, r2
801455c: f8c1 308c str.w r3, [r1, #140] ; 0x8c
}
#endif /* STM32F746xx || STM32F756xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx || STM32F750xx */
/* Enable PLLSAI Clock */
__HAL_RCC_PLLSAI_ENABLE();
8014560: 4a0f ldr r2, [pc, #60] ; (80145a0 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014562: 4b0f ldr r3, [pc, #60] ; (80145a0 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014564: 681b ldr r3, [r3, #0]
8014566: f043 5380 orr.w r3, r3, #268435456 ; 0x10000000
801456a: 6013 str r3, [r2, #0]
/* Get Start Tick*/
tickstart = HAL_GetTick();
801456c: f7fd f836 bl 80115dc <HAL_GetTick>
8014570: 6178 str r0, [r7, #20]
/* Wait till PLLSAI is ready */
while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET)
8014572: e008 b.n 8014586 <HAL_RCCEx_PeriphCLKConfig+0x82e>
{
if((HAL_GetTick() - tickstart) > PLLSAI_TIMEOUT_VALUE)
8014574: f7fd f832 bl 80115dc <HAL_GetTick>
8014578: 4602 mov r2, r0
801457a: 697b ldr r3, [r7, #20]
801457c: 1ad3 subs r3, r2, r3
801457e: 2b64 cmp r3, #100 ; 0x64
8014580: d901 bls.n 8014586 <HAL_RCCEx_PeriphCLKConfig+0x82e>
{
/* return in case of Timeout detected */
return HAL_TIMEOUT;
8014582: 2303 movs r3, #3
8014584: e007 b.n 8014596 <HAL_RCCEx_PeriphCLKConfig+0x83e>
while(__HAL_RCC_PLLSAI_GET_FLAG() == RESET)
8014586: 4b06 ldr r3, [pc, #24] ; (80145a0 <HAL_RCCEx_PeriphCLKConfig+0x848>)
8014588: 681b ldr r3, [r3, #0]
801458a: f003 5300 and.w r3, r3, #536870912 ; 0x20000000
801458e: f1b3 5f00 cmp.w r3, #536870912 ; 0x20000000
8014592: d1ef bne.n 8014574 <HAL_RCCEx_PeriphCLKConfig+0x81c>
}
}
}
return HAL_OK;
8014594: 2300 movs r3, #0
}
8014596: 4618 mov r0, r3
8014598: 3720 adds r7, #32
801459a: 46bd mov sp, r7
801459c: bd80 pop {r7, pc}
801459e: bf00 nop
80145a0: 40023800 .word 0x40023800
080145a4 <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)
{
80145a4: b580 push {r7, lr}
80145a6: b082 sub sp, #8
80145a8: af00 add r7, sp, #0
80145aa: 6078 str r0, [r7, #4]
/* Check the TIM handle allocation */
if (htim == NULL)
80145ac: 687b ldr r3, [r7, #4]
80145ae: 2b00 cmp r3, #0
80145b0: d101 bne.n 80145b6 <HAL_TIM_Base_Init+0x12>
{
return HAL_ERROR;
80145b2: 2301 movs r3, #1
80145b4: e049 b.n 801464a <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)
80145b6: 687b ldr r3, [r7, #4]
80145b8: f893 303d ldrb.w r3, [r3, #61] ; 0x3d
80145bc: b2db uxtb r3, r3
80145be: 2b00 cmp r3, #0
80145c0: d106 bne.n 80145d0 <HAL_TIM_Base_Init+0x2c>
{
/* Allocate lock resource and initialize it */
htim->Lock = HAL_UNLOCKED;
80145c2: 687b ldr r3, [r7, #4]
80145c4: 2200 movs r2, #0
80145c6: 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);
80145ca: 6878 ldr r0, [r7, #4]
80145cc: f7fb fa18 bl 800fa00 <HAL_TIM_Base_MspInit>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
/* Set the TIM state */
htim->State = HAL_TIM_STATE_BUSY;
80145d0: 687b ldr r3, [r7, #4]
80145d2: 2202 movs r2, #2
80145d4: f883 203d strb.w r2, [r3, #61] ; 0x3d
/* Set the Time Base configuration */
TIM_Base_SetConfig(htim->Instance, &htim->Init);
80145d8: 687b ldr r3, [r7, #4]
80145da: 681a ldr r2, [r3, #0]
80145dc: 687b ldr r3, [r7, #4]
80145de: 3304 adds r3, #4
80145e0: 4619 mov r1, r3
80145e2: 4610 mov r0, r2
80145e4: f000 f9f6 bl 80149d4 <TIM_Base_SetConfig>
/* Initialize the DMA burst operation state */
htim->DMABurstState = HAL_DMA_BURST_STATE_READY;
80145e8: 687b ldr r3, [r7, #4]
80145ea: 2201 movs r2, #1
80145ec: f883 2048 strb.w r2, [r3, #72] ; 0x48
/* Initialize the TIM channels state */
TIM_CHANNEL_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY);
80145f0: 687b ldr r3, [r7, #4]
80145f2: 2201 movs r2, #1
80145f4: f883 203e strb.w r2, [r3, #62] ; 0x3e
80145f8: 687b ldr r3, [r7, #4]
80145fa: 2201 movs r2, #1
80145fc: f883 203f strb.w r2, [r3, #63] ; 0x3f
8014600: 687b ldr r3, [r7, #4]
8014602: 2201 movs r2, #1
8014604: f883 2040 strb.w r2, [r3, #64] ; 0x40
8014608: 687b ldr r3, [r7, #4]
801460a: 2201 movs r2, #1
801460c: f883 2041 strb.w r2, [r3, #65] ; 0x41
8014610: 687b ldr r3, [r7, #4]
8014612: 2201 movs r2, #1
8014614: f883 2042 strb.w r2, [r3, #66] ; 0x42
8014618: 687b ldr r3, [r7, #4]
801461a: 2201 movs r2, #1
801461c: f883 2043 strb.w r2, [r3, #67] ; 0x43
TIM_CHANNEL_N_STATE_SET_ALL(htim, HAL_TIM_CHANNEL_STATE_READY);
8014620: 687b ldr r3, [r7, #4]
8014622: 2201 movs r2, #1
8014624: f883 2044 strb.w r2, [r3, #68] ; 0x44
8014628: 687b ldr r3, [r7, #4]
801462a: 2201 movs r2, #1
801462c: f883 2045 strb.w r2, [r3, #69] ; 0x45
8014630: 687b ldr r3, [r7, #4]
8014632: 2201 movs r2, #1
8014634: f883 2046 strb.w r2, [r3, #70] ; 0x46
8014638: 687b ldr r3, [r7, #4]
801463a: 2201 movs r2, #1
801463c: f883 2047 strb.w r2, [r3, #71] ; 0x47
/* Initialize the TIM state*/
htim->State = HAL_TIM_STATE_READY;
8014640: 687b ldr r3, [r7, #4]
8014642: 2201 movs r2, #1
8014644: f883 203d strb.w r2, [r3, #61] ; 0x3d
return HAL_OK;
8014648: 2300 movs r3, #0
}
801464a: 4618 mov r0, r3
801464c: 3708 adds r7, #8
801464e: 46bd mov sp, r7
8014650: bd80 pop {r7, pc}
...
08014654 <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)
{
8014654: b480 push {r7}
8014656: b085 sub sp, #20
8014658: af00 add r7, sp, #0
801465a: 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)
801465c: 687b ldr r3, [r7, #4]
801465e: f893 303d ldrb.w r3, [r3, #61] ; 0x3d
8014662: b2db uxtb r3, r3
8014664: 2b01 cmp r3, #1
8014666: d001 beq.n 801466c <HAL_TIM_Base_Start_IT+0x18>
{
return HAL_ERROR;
8014668: 2301 movs r3, #1
801466a: e054 b.n 8014716 <HAL_TIM_Base_Start_IT+0xc2>
}
/* Set the TIM state */
htim->State = HAL_TIM_STATE_BUSY;
801466c: 687b ldr r3, [r7, #4]
801466e: 2202 movs r2, #2
8014670: f883 203d strb.w r2, [r3, #61] ; 0x3d
/* Enable the TIM Update interrupt */
__HAL_TIM_ENABLE_IT(htim, TIM_IT_UPDATE);
8014674: 687b ldr r3, [r7, #4]
8014676: 681b ldr r3, [r3, #0]
8014678: 687a ldr r2, [r7, #4]
801467a: 6812 ldr r2, [r2, #0]
801467c: 68d2 ldr r2, [r2, #12]
801467e: f042 0201 orr.w r2, r2, #1
8014682: 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))
8014684: 687b ldr r3, [r7, #4]
8014686: 681b ldr r3, [r3, #0]
8014688: 4a26 ldr r2, [pc, #152] ; (8014724 <HAL_TIM_Base_Start_IT+0xd0>)
801468a: 4293 cmp r3, r2
801468c: d022 beq.n 80146d4 <HAL_TIM_Base_Start_IT+0x80>
801468e: 687b ldr r3, [r7, #4]
8014690: 681b ldr r3, [r3, #0]
8014692: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000
8014696: d01d beq.n 80146d4 <HAL_TIM_Base_Start_IT+0x80>
8014698: 687b ldr r3, [r7, #4]
801469a: 681b ldr r3, [r3, #0]
801469c: 4a22 ldr r2, [pc, #136] ; (8014728 <HAL_TIM_Base_Start_IT+0xd4>)
801469e: 4293 cmp r3, r2
80146a0: d018 beq.n 80146d4 <HAL_TIM_Base_Start_IT+0x80>
80146a2: 687b ldr r3, [r7, #4]
80146a4: 681b ldr r3, [r3, #0]
80146a6: 4a21 ldr r2, [pc, #132] ; (801472c <HAL_TIM_Base_Start_IT+0xd8>)
80146a8: 4293 cmp r3, r2
80146aa: d013 beq.n 80146d4 <HAL_TIM_Base_Start_IT+0x80>
80146ac: 687b ldr r3, [r7, #4]
80146ae: 681b ldr r3, [r3, #0]
80146b0: 4a1f ldr r2, [pc, #124] ; (8014730 <HAL_TIM_Base_Start_IT+0xdc>)
80146b2: 4293 cmp r3, r2
80146b4: d00e beq.n 80146d4 <HAL_TIM_Base_Start_IT+0x80>
80146b6: 687b ldr r3, [r7, #4]
80146b8: 681b ldr r3, [r3, #0]
80146ba: 4a1e ldr r2, [pc, #120] ; (8014734 <HAL_TIM_Base_Start_IT+0xe0>)
80146bc: 4293 cmp r3, r2
80146be: d009 beq.n 80146d4 <HAL_TIM_Base_Start_IT+0x80>
80146c0: 687b ldr r3, [r7, #4]
80146c2: 681b ldr r3, [r3, #0]
80146c4: 4a1c ldr r2, [pc, #112] ; (8014738 <HAL_TIM_Base_Start_IT+0xe4>)
80146c6: 4293 cmp r3, r2
80146c8: d004 beq.n 80146d4 <HAL_TIM_Base_Start_IT+0x80>
80146ca: 687b ldr r3, [r7, #4]
80146cc: 681b ldr r3, [r3, #0]
80146ce: 4a1b ldr r2, [pc, #108] ; (801473c <HAL_TIM_Base_Start_IT+0xe8>)
80146d0: 4293 cmp r3, r2
80146d2: d115 bne.n 8014700 <HAL_TIM_Base_Start_IT+0xac>
{
tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
80146d4: 687b ldr r3, [r7, #4]
80146d6: 681b ldr r3, [r3, #0]
80146d8: 689a ldr r2, [r3, #8]
80146da: 4b19 ldr r3, [pc, #100] ; (8014740 <HAL_TIM_Base_Start_IT+0xec>)
80146dc: 4013 ands r3, r2
80146de: 60fb str r3, [r7, #12]
if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
80146e0: 68fb ldr r3, [r7, #12]
80146e2: 2b06 cmp r3, #6
80146e4: d015 beq.n 8014712 <HAL_TIM_Base_Start_IT+0xbe>
80146e6: 68fb ldr r3, [r7, #12]
80146e8: f5b3 3f80 cmp.w r3, #65536 ; 0x10000
80146ec: d011 beq.n 8014712 <HAL_TIM_Base_Start_IT+0xbe>
{
__HAL_TIM_ENABLE(htim);
80146ee: 687b ldr r3, [r7, #4]
80146f0: 681b ldr r3, [r3, #0]
80146f2: 687a ldr r2, [r7, #4]
80146f4: 6812 ldr r2, [r2, #0]
80146f6: 6812 ldr r2, [r2, #0]
80146f8: f042 0201 orr.w r2, r2, #1
80146fc: 601a str r2, [r3, #0]
if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
80146fe: e008 b.n 8014712 <HAL_TIM_Base_Start_IT+0xbe>
}
}
else
{
__HAL_TIM_ENABLE(htim);
8014700: 687b ldr r3, [r7, #4]
8014702: 681b ldr r3, [r3, #0]
8014704: 687a ldr r2, [r7, #4]
8014706: 6812 ldr r2, [r2, #0]
8014708: 6812 ldr r2, [r2, #0]
801470a: f042 0201 orr.w r2, r2, #1
801470e: 601a str r2, [r3, #0]
8014710: e000 b.n 8014714 <HAL_TIM_Base_Start_IT+0xc0>
if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
8014712: bf00 nop
}
/* Return function status */
return HAL_OK;
8014714: 2300 movs r3, #0
}
8014716: 4618 mov r0, r3
8014718: 3714 adds r7, #20
801471a: 46bd mov sp, r7
801471c: f85d 7b04 ldr.w r7, [sp], #4
8014720: 4770 bx lr
8014722: bf00 nop
8014724: 40010000 .word 0x40010000
8014728: 40000400 .word 0x40000400
801472c: 40000800 .word 0x40000800
8014730: 40000c00 .word 0x40000c00
8014734: 40010400 .word 0x40010400
8014738: 40014000 .word 0x40014000
801473c: 40001800 .word 0x40001800
8014740: 00010007 .word 0x00010007
08014744 <HAL_TIM_IRQHandler>:
* @brief This function handles TIM interrupts requests.
* @param htim TIM handle
* @retval None
*/
void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim)
{
8014744: b580 push {r7, lr}
8014746: b082 sub sp, #8
8014748: af00 add r7, sp, #0
801474a: 6078 str r0, [r7, #4]
/* Capture compare 1 event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1) != RESET)
801474c: 687b ldr r3, [r7, #4]
801474e: 681b ldr r3, [r3, #0]
8014750: 691b ldr r3, [r3, #16]
8014752: f003 0302 and.w r3, r3, #2
8014756: 2b02 cmp r3, #2
8014758: d122 bne.n 80147a0 <HAL_TIM_IRQHandler+0x5c>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC1) != RESET)
801475a: 687b ldr r3, [r7, #4]
801475c: 681b ldr r3, [r3, #0]
801475e: 68db ldr r3, [r3, #12]
8014760: f003 0302 and.w r3, r3, #2
8014764: 2b02 cmp r3, #2
8014766: d11b bne.n 80147a0 <HAL_TIM_IRQHandler+0x5c>
{
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_CC1);
8014768: 687b ldr r3, [r7, #4]
801476a: 681b ldr r3, [r3, #0]
801476c: f06f 0202 mvn.w r2, #2
8014770: 611a str r2, [r3, #16]
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_1;
8014772: 687b ldr r3, [r7, #4]
8014774: 2201 movs r2, #1
8014776: 771a strb r2, [r3, #28]
/* Input capture event */
if ((htim->Instance->CCMR1 & TIM_CCMR1_CC1S) != 0x00U)
8014778: 687b ldr r3, [r7, #4]
801477a: 681b ldr r3, [r3, #0]
801477c: 699b ldr r3, [r3, #24]
801477e: f003 0303 and.w r3, r3, #3
8014782: 2b00 cmp r3, #0
8014784: d003 beq.n 801478e <HAL_TIM_IRQHandler+0x4a>
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->IC_CaptureCallback(htim);
#else
HAL_TIM_IC_CaptureCallback(htim);
8014786: 6878 ldr r0, [r7, #4]
8014788: f000 f905 bl 8014996 <HAL_TIM_IC_CaptureCallback>
801478c: e005 b.n 801479a <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);
801478e: 6878 ldr r0, [r7, #4]
8014790: f000 f8f7 bl 8014982 <HAL_TIM_OC_DelayElapsedCallback>
HAL_TIM_PWM_PulseFinishedCallback(htim);
8014794: 6878 ldr r0, [r7, #4]
8014796: f000 f908 bl 80149aa <HAL_TIM_PWM_PulseFinishedCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
801479a: 687b ldr r3, [r7, #4]
801479c: 2200 movs r2, #0
801479e: 771a strb r2, [r3, #28]
}
}
}
/* Capture compare 2 event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC2) != RESET)
80147a0: 687b ldr r3, [r7, #4]
80147a2: 681b ldr r3, [r3, #0]
80147a4: 691b ldr r3, [r3, #16]
80147a6: f003 0304 and.w r3, r3, #4
80147aa: 2b04 cmp r3, #4
80147ac: d122 bne.n 80147f4 <HAL_TIM_IRQHandler+0xb0>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC2) != RESET)
80147ae: 687b ldr r3, [r7, #4]
80147b0: 681b ldr r3, [r3, #0]
80147b2: 68db ldr r3, [r3, #12]
80147b4: f003 0304 and.w r3, r3, #4
80147b8: 2b04 cmp r3, #4
80147ba: d11b bne.n 80147f4 <HAL_TIM_IRQHandler+0xb0>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_CC2);
80147bc: 687b ldr r3, [r7, #4]
80147be: 681b ldr r3, [r3, #0]
80147c0: f06f 0204 mvn.w r2, #4
80147c4: 611a str r2, [r3, #16]
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_2;
80147c6: 687b ldr r3, [r7, #4]
80147c8: 2202 movs r2, #2
80147ca: 771a strb r2, [r3, #28]
/* Input capture event */
if ((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U)
80147cc: 687b ldr r3, [r7, #4]
80147ce: 681b ldr r3, [r3, #0]
80147d0: 699b ldr r3, [r3, #24]
80147d2: f403 7340 and.w r3, r3, #768 ; 0x300
80147d6: 2b00 cmp r3, #0
80147d8: d003 beq.n 80147e2 <HAL_TIM_IRQHandler+0x9e>
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->IC_CaptureCallback(htim);
#else
HAL_TIM_IC_CaptureCallback(htim);
80147da: 6878 ldr r0, [r7, #4]
80147dc: f000 f8db bl 8014996 <HAL_TIM_IC_CaptureCallback>
80147e0: e005 b.n 80147ee <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);
80147e2: 6878 ldr r0, [r7, #4]
80147e4: f000 f8cd bl 8014982 <HAL_TIM_OC_DelayElapsedCallback>
HAL_TIM_PWM_PulseFinishedCallback(htim);
80147e8: 6878 ldr r0, [r7, #4]
80147ea: f000 f8de bl 80149aa <HAL_TIM_PWM_PulseFinishedCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
80147ee: 687b ldr r3, [r7, #4]
80147f0: 2200 movs r2, #0
80147f2: 771a strb r2, [r3, #28]
}
}
/* Capture compare 3 event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC3) != RESET)
80147f4: 687b ldr r3, [r7, #4]
80147f6: 681b ldr r3, [r3, #0]
80147f8: 691b ldr r3, [r3, #16]
80147fa: f003 0308 and.w r3, r3, #8
80147fe: 2b08 cmp r3, #8
8014800: d122 bne.n 8014848 <HAL_TIM_IRQHandler+0x104>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC3) != RESET)
8014802: 687b ldr r3, [r7, #4]
8014804: 681b ldr r3, [r3, #0]
8014806: 68db ldr r3, [r3, #12]
8014808: f003 0308 and.w r3, r3, #8
801480c: 2b08 cmp r3, #8
801480e: d11b bne.n 8014848 <HAL_TIM_IRQHandler+0x104>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_CC3);
8014810: 687b ldr r3, [r7, #4]
8014812: 681b ldr r3, [r3, #0]
8014814: f06f 0208 mvn.w r2, #8
8014818: 611a str r2, [r3, #16]
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_3;
801481a: 687b ldr r3, [r7, #4]
801481c: 2204 movs r2, #4
801481e: 771a strb r2, [r3, #28]
/* Input capture event */
if ((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U)
8014820: 687b ldr r3, [r7, #4]
8014822: 681b ldr r3, [r3, #0]
8014824: 69db ldr r3, [r3, #28]
8014826: f003 0303 and.w r3, r3, #3
801482a: 2b00 cmp r3, #0
801482c: d003 beq.n 8014836 <HAL_TIM_IRQHandler+0xf2>
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->IC_CaptureCallback(htim);
#else
HAL_TIM_IC_CaptureCallback(htim);
801482e: 6878 ldr r0, [r7, #4]
8014830: f000 f8b1 bl 8014996 <HAL_TIM_IC_CaptureCallback>
8014834: e005 b.n 8014842 <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);
8014836: 6878 ldr r0, [r7, #4]
8014838: f000 f8a3 bl 8014982 <HAL_TIM_OC_DelayElapsedCallback>
HAL_TIM_PWM_PulseFinishedCallback(htim);
801483c: 6878 ldr r0, [r7, #4]
801483e: f000 f8b4 bl 80149aa <HAL_TIM_PWM_PulseFinishedCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
8014842: 687b ldr r3, [r7, #4]
8014844: 2200 movs r2, #0
8014846: 771a strb r2, [r3, #28]
}
}
/* Capture compare 4 event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC4) != RESET)
8014848: 687b ldr r3, [r7, #4]
801484a: 681b ldr r3, [r3, #0]
801484c: 691b ldr r3, [r3, #16]
801484e: f003 0310 and.w r3, r3, #16
8014852: 2b10 cmp r3, #16
8014854: d122 bne.n 801489c <HAL_TIM_IRQHandler+0x158>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC4) != RESET)
8014856: 687b ldr r3, [r7, #4]
8014858: 681b ldr r3, [r3, #0]
801485a: 68db ldr r3, [r3, #12]
801485c: f003 0310 and.w r3, r3, #16
8014860: 2b10 cmp r3, #16
8014862: d11b bne.n 801489c <HAL_TIM_IRQHandler+0x158>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_CC4);
8014864: 687b ldr r3, [r7, #4]
8014866: 681b ldr r3, [r3, #0]
8014868: f06f 0210 mvn.w r2, #16
801486c: 611a str r2, [r3, #16]
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_4;
801486e: 687b ldr r3, [r7, #4]
8014870: 2208 movs r2, #8
8014872: 771a strb r2, [r3, #28]
/* Input capture event */
if ((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U)
8014874: 687b ldr r3, [r7, #4]
8014876: 681b ldr r3, [r3, #0]
8014878: 69db ldr r3, [r3, #28]
801487a: f403 7340 and.w r3, r3, #768 ; 0x300
801487e: 2b00 cmp r3, #0
8014880: d003 beq.n 801488a <HAL_TIM_IRQHandler+0x146>
{
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->IC_CaptureCallback(htim);
#else
HAL_TIM_IC_CaptureCallback(htim);
8014882: 6878 ldr r0, [r7, #4]
8014884: f000 f887 bl 8014996 <HAL_TIM_IC_CaptureCallback>
8014888: e005 b.n 8014896 <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);
801488a: 6878 ldr r0, [r7, #4]
801488c: f000 f879 bl 8014982 <HAL_TIM_OC_DelayElapsedCallback>
HAL_TIM_PWM_PulseFinishedCallback(htim);
8014890: 6878 ldr r0, [r7, #4]
8014892: f000 f88a bl 80149aa <HAL_TIM_PWM_PulseFinishedCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
htim->Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
8014896: 687b ldr r3, [r7, #4]
8014898: 2200 movs r2, #0
801489a: 771a strb r2, [r3, #28]
}
}
/* TIM Update event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_UPDATE) != RESET)
801489c: 687b ldr r3, [r7, #4]
801489e: 681b ldr r3, [r3, #0]
80148a0: 691b ldr r3, [r3, #16]
80148a2: f003 0301 and.w r3, r3, #1
80148a6: 2b01 cmp r3, #1
80148a8: d10e bne.n 80148c8 <HAL_TIM_IRQHandler+0x184>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_UPDATE) != RESET)
80148aa: 687b ldr r3, [r7, #4]
80148ac: 681b ldr r3, [r3, #0]
80148ae: 68db ldr r3, [r3, #12]
80148b0: f003 0301 and.w r3, r3, #1
80148b4: 2b01 cmp r3, #1
80148b6: d107 bne.n 80148c8 <HAL_TIM_IRQHandler+0x184>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE);
80148b8: 687b ldr r3, [r7, #4]
80148ba: 681b ldr r3, [r3, #0]
80148bc: f06f 0201 mvn.w r2, #1
80148c0: 611a str r2, [r3, #16]
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->PeriodElapsedCallback(htim);
#else
HAL_TIM_PeriodElapsedCallback(htim);
80148c2: 6878 ldr r0, [r7, #4]
80148c4: f7fb f8ea bl 800fa9c <HAL_TIM_PeriodElapsedCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
/* TIM Break input event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK) != RESET)
80148c8: 687b ldr r3, [r7, #4]
80148ca: 681b ldr r3, [r3, #0]
80148cc: 691b ldr r3, [r3, #16]
80148ce: f003 0380 and.w r3, r3, #128 ; 0x80
80148d2: 2b80 cmp r3, #128 ; 0x80
80148d4: d10e bne.n 80148f4 <HAL_TIM_IRQHandler+0x1b0>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET)
80148d6: 687b ldr r3, [r7, #4]
80148d8: 681b ldr r3, [r3, #0]
80148da: 68db ldr r3, [r3, #12]
80148dc: f003 0380 and.w r3, r3, #128 ; 0x80
80148e0: 2b80 cmp r3, #128 ; 0x80
80148e2: d107 bne.n 80148f4 <HAL_TIM_IRQHandler+0x1b0>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_BREAK);
80148e4: 687b ldr r3, [r7, #4]
80148e6: 681b ldr r3, [r3, #0]
80148e8: f06f 0280 mvn.w r2, #128 ; 0x80
80148ec: 611a str r2, [r3, #16]
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->BreakCallback(htim);
#else
HAL_TIMEx_BreakCallback(htim);
80148ee: 6878 ldr r0, [r7, #4]
80148f0: f000 f9a8 bl 8014c44 <HAL_TIMEx_BreakCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
/* TIM Break2 input event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK2) != RESET)
80148f4: 687b ldr r3, [r7, #4]
80148f6: 681b ldr r3, [r3, #0]
80148f8: 691b ldr r3, [r3, #16]
80148fa: f403 7380 and.w r3, r3, #256 ; 0x100
80148fe: f5b3 7f80 cmp.w r3, #256 ; 0x100
8014902: d10e bne.n 8014922 <HAL_TIM_IRQHandler+0x1de>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET)
8014904: 687b ldr r3, [r7, #4]
8014906: 681b ldr r3, [r3, #0]
8014908: 68db ldr r3, [r3, #12]
801490a: f003 0380 and.w r3, r3, #128 ; 0x80
801490e: 2b80 cmp r3, #128 ; 0x80
8014910: d107 bne.n 8014922 <HAL_TIM_IRQHandler+0x1de>
{
__HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_BREAK2);
8014912: 687b ldr r3, [r7, #4]
8014914: 681b ldr r3, [r3, #0]
8014916: f46f 7280 mvn.w r2, #256 ; 0x100
801491a: 611a str r2, [r3, #16]
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->Break2Callback(htim);
#else
HAL_TIMEx_Break2Callback(htim);
801491c: 6878 ldr r0, [r7, #4]
801491e: f000 f99b bl 8014c58 <HAL_TIMEx_Break2Callback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
/* TIM Trigger detection event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_TRIGGER) != RESET)
8014922: 687b ldr r3, [r7, #4]
8014924: 681b ldr r3, [r3, #0]
8014926: 691b ldr r3, [r3, #16]
8014928: f003 0340 and.w r3, r3, #64 ; 0x40
801492c: 2b40 cmp r3, #64 ; 0x40
801492e: d10e bne.n 801494e <HAL_TIM_IRQHandler+0x20a>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_TRIGGER) != RESET)
8014930: 687b ldr r3, [r7, #4]
8014932: 681b ldr r3, [r3, #0]
8014934: 68db ldr r3, [r3, #12]
8014936: f003 0340 and.w r3, r3, #64 ; 0x40
801493a: 2b40 cmp r3, #64 ; 0x40
801493c: d107 bne.n 801494e <HAL_TIM_IRQHandler+0x20a>
{
__HAL_TIM_CLEAR_IT(htim, TIM_IT_TRIGGER);
801493e: 687b ldr r3, [r7, #4]
8014940: 681b ldr r3, [r3, #0]
8014942: f06f 0240 mvn.w r2, #64 ; 0x40
8014946: 611a str r2, [r3, #16]
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->TriggerCallback(htim);
#else
HAL_TIM_TriggerCallback(htim);
8014948: 6878 ldr r0, [r7, #4]
801494a: f000 f838 bl 80149be <HAL_TIM_TriggerCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
/* TIM commutation event */
if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_COM) != RESET)
801494e: 687b ldr r3, [r7, #4]
8014950: 681b ldr r3, [r3, #0]
8014952: 691b ldr r3, [r3, #16]
8014954: f003 0320 and.w r3, r3, #32
8014958: 2b20 cmp r3, #32
801495a: d10e bne.n 801497a <HAL_TIM_IRQHandler+0x236>
{
if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_COM) != RESET)
801495c: 687b ldr r3, [r7, #4]
801495e: 681b ldr r3, [r3, #0]
8014960: 68db ldr r3, [r3, #12]
8014962: f003 0320 and.w r3, r3, #32
8014966: 2b20 cmp r3, #32
8014968: d107 bne.n 801497a <HAL_TIM_IRQHandler+0x236>
{
__HAL_TIM_CLEAR_IT(htim, TIM_FLAG_COM);
801496a: 687b ldr r3, [r7, #4]
801496c: 681b ldr r3, [r3, #0]
801496e: f06f 0220 mvn.w r2, #32
8014972: 611a str r2, [r3, #16]
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
htim->CommutationCallback(htim);
#else
HAL_TIMEx_CommutCallback(htim);
8014974: 6878 ldr r0, [r7, #4]
8014976: f000 f95b bl 8014c30 <HAL_TIMEx_CommutCallback>
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
}
}
}
801497a: bf00 nop
801497c: 3708 adds r7, #8
801497e: 46bd mov sp, r7
8014980: bd80 pop {r7, pc}
08014982 <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)
{
8014982: b480 push {r7}
8014984: b083 sub sp, #12
8014986: af00 add r7, sp, #0
8014988: 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
*/
}
801498a: bf00 nop
801498c: 370c adds r7, #12
801498e: 46bd mov sp, r7
8014990: f85d 7b04 ldr.w r7, [sp], #4
8014994: 4770 bx lr
08014996 <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)
{
8014996: b480 push {r7}
8014998: b083 sub sp, #12
801499a: af00 add r7, sp, #0
801499c: 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
*/
}
801499e: bf00 nop
80149a0: 370c adds r7, #12
80149a2: 46bd mov sp, r7
80149a4: f85d 7b04 ldr.w r7, [sp], #4
80149a8: 4770 bx lr
080149aa <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)
{
80149aa: b480 push {r7}
80149ac: b083 sub sp, #12
80149ae: af00 add r7, sp, #0
80149b0: 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
*/
}
80149b2: bf00 nop
80149b4: 370c adds r7, #12
80149b6: 46bd mov sp, r7
80149b8: f85d 7b04 ldr.w r7, [sp], #4
80149bc: 4770 bx lr
080149be <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)
{
80149be: b480 push {r7}
80149c0: b083 sub sp, #12
80149c2: af00 add r7, sp, #0
80149c4: 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
*/
}
80149c6: bf00 nop
80149c8: 370c adds r7, #12
80149ca: 46bd mov sp, r7
80149cc: f85d 7b04 ldr.w r7, [sp], #4
80149d0: 4770 bx lr
...
080149d4 <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)
{
80149d4: b480 push {r7}
80149d6: b085 sub sp, #20
80149d8: af00 add r7, sp, #0
80149da: 6078 str r0, [r7, #4]
80149dc: 6039 str r1, [r7, #0]
uint32_t tmpcr1;
tmpcr1 = TIMx->CR1;
80149de: 687b ldr r3, [r7, #4]
80149e0: 681b ldr r3, [r3, #0]
80149e2: 60fb str r3, [r7, #12]
/* Set TIM Time Base Unit parameters ---------------------------------------*/
if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx))
80149e4: 687b ldr r3, [r7, #4]
80149e6: 4a40 ldr r2, [pc, #256] ; (8014ae8 <TIM_Base_SetConfig+0x114>)
80149e8: 4293 cmp r3, r2
80149ea: d013 beq.n 8014a14 <TIM_Base_SetConfig+0x40>
80149ec: 687b ldr r3, [r7, #4]
80149ee: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000
80149f2: d00f beq.n 8014a14 <TIM_Base_SetConfig+0x40>
80149f4: 687b ldr r3, [r7, #4]
80149f6: 4a3d ldr r2, [pc, #244] ; (8014aec <TIM_Base_SetConfig+0x118>)
80149f8: 4293 cmp r3, r2
80149fa: d00b beq.n 8014a14 <TIM_Base_SetConfig+0x40>
80149fc: 687b ldr r3, [r7, #4]
80149fe: 4a3c ldr r2, [pc, #240] ; (8014af0 <TIM_Base_SetConfig+0x11c>)
8014a00: 4293 cmp r3, r2
8014a02: d007 beq.n 8014a14 <TIM_Base_SetConfig+0x40>
8014a04: 687b ldr r3, [r7, #4]
8014a06: 4a3b ldr r2, [pc, #236] ; (8014af4 <TIM_Base_SetConfig+0x120>)
8014a08: 4293 cmp r3, r2
8014a0a: d003 beq.n 8014a14 <TIM_Base_SetConfig+0x40>
8014a0c: 687b ldr r3, [r7, #4]
8014a0e: 4a3a ldr r2, [pc, #232] ; (8014af8 <TIM_Base_SetConfig+0x124>)
8014a10: 4293 cmp r3, r2
8014a12: d108 bne.n 8014a26 <TIM_Base_SetConfig+0x52>
{
/* Select the Counter Mode */
tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS);
8014a14: 68fb ldr r3, [r7, #12]
8014a16: f023 0370 bic.w r3, r3, #112 ; 0x70
8014a1a: 60fb str r3, [r7, #12]
tmpcr1 |= Structure->CounterMode;
8014a1c: 683b ldr r3, [r7, #0]
8014a1e: 685b ldr r3, [r3, #4]
8014a20: 68fa ldr r2, [r7, #12]
8014a22: 4313 orrs r3, r2
8014a24: 60fb str r3, [r7, #12]
}
if (IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx))
8014a26: 687b ldr r3, [r7, #4]
8014a28: 4a2f ldr r2, [pc, #188] ; (8014ae8 <TIM_Base_SetConfig+0x114>)
8014a2a: 4293 cmp r3, r2
8014a2c: d02b beq.n 8014a86 <TIM_Base_SetConfig+0xb2>
8014a2e: 687b ldr r3, [r7, #4]
8014a30: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000
8014a34: d027 beq.n 8014a86 <TIM_Base_SetConfig+0xb2>
8014a36: 687b ldr r3, [r7, #4]
8014a38: 4a2c ldr r2, [pc, #176] ; (8014aec <TIM_Base_SetConfig+0x118>)
8014a3a: 4293 cmp r3, r2
8014a3c: d023 beq.n 8014a86 <TIM_Base_SetConfig+0xb2>
8014a3e: 687b ldr r3, [r7, #4]
8014a40: 4a2b ldr r2, [pc, #172] ; (8014af0 <TIM_Base_SetConfig+0x11c>)
8014a42: 4293 cmp r3, r2
8014a44: d01f beq.n 8014a86 <TIM_Base_SetConfig+0xb2>
8014a46: 687b ldr r3, [r7, #4]
8014a48: 4a2a ldr r2, [pc, #168] ; (8014af4 <TIM_Base_SetConfig+0x120>)
8014a4a: 4293 cmp r3, r2
8014a4c: d01b beq.n 8014a86 <TIM_Base_SetConfig+0xb2>
8014a4e: 687b ldr r3, [r7, #4]
8014a50: 4a29 ldr r2, [pc, #164] ; (8014af8 <TIM_Base_SetConfig+0x124>)
8014a52: 4293 cmp r3, r2
8014a54: d017 beq.n 8014a86 <TIM_Base_SetConfig+0xb2>
8014a56: 687b ldr r3, [r7, #4]
8014a58: 4a28 ldr r2, [pc, #160] ; (8014afc <TIM_Base_SetConfig+0x128>)
8014a5a: 4293 cmp r3, r2
8014a5c: d013 beq.n 8014a86 <TIM_Base_SetConfig+0xb2>
8014a5e: 687b ldr r3, [r7, #4]
8014a60: 4a27 ldr r2, [pc, #156] ; (8014b00 <TIM_Base_SetConfig+0x12c>)
8014a62: 4293 cmp r3, r2
8014a64: d00f beq.n 8014a86 <TIM_Base_SetConfig+0xb2>
8014a66: 687b ldr r3, [r7, #4]
8014a68: 4a26 ldr r2, [pc, #152] ; (8014b04 <TIM_Base_SetConfig+0x130>)
8014a6a: 4293 cmp r3, r2
8014a6c: d00b beq.n 8014a86 <TIM_Base_SetConfig+0xb2>
8014a6e: 687b ldr r3, [r7, #4]
8014a70: 4a25 ldr r2, [pc, #148] ; (8014b08 <TIM_Base_SetConfig+0x134>)
8014a72: 4293 cmp r3, r2
8014a74: d007 beq.n 8014a86 <TIM_Base_SetConfig+0xb2>
8014a76: 687b ldr r3, [r7, #4]
8014a78: 4a24 ldr r2, [pc, #144] ; (8014b0c <TIM_Base_SetConfig+0x138>)
8014a7a: 4293 cmp r3, r2
8014a7c: d003 beq.n 8014a86 <TIM_Base_SetConfig+0xb2>
8014a7e: 687b ldr r3, [r7, #4]
8014a80: 4a23 ldr r2, [pc, #140] ; (8014b10 <TIM_Base_SetConfig+0x13c>)
8014a82: 4293 cmp r3, r2
8014a84: d108 bne.n 8014a98 <TIM_Base_SetConfig+0xc4>
{
/* Set the clock division */
tmpcr1 &= ~TIM_CR1_CKD;
8014a86: 68fb ldr r3, [r7, #12]
8014a88: f423 7340 bic.w r3, r3, #768 ; 0x300
8014a8c: 60fb str r3, [r7, #12]
tmpcr1 |= (uint32_t)Structure->ClockDivision;
8014a8e: 683b ldr r3, [r7, #0]
8014a90: 68db ldr r3, [r3, #12]
8014a92: 68fa ldr r2, [r7, #12]
8014a94: 4313 orrs r3, r2
8014a96: 60fb str r3, [r7, #12]
}
/* Set the auto-reload preload */
MODIFY_REG(tmpcr1, TIM_CR1_ARPE, Structure->AutoReloadPreload);
8014a98: 68fb ldr r3, [r7, #12]
8014a9a: f023 0280 bic.w r2, r3, #128 ; 0x80
8014a9e: 683b ldr r3, [r7, #0]
8014aa0: 695b ldr r3, [r3, #20]
8014aa2: 4313 orrs r3, r2
8014aa4: 60fb str r3, [r7, #12]
TIMx->CR1 = tmpcr1;
8014aa6: 687b ldr r3, [r7, #4]
8014aa8: 68fa ldr r2, [r7, #12]
8014aaa: 601a str r2, [r3, #0]
/* Set the Autoreload value */
TIMx->ARR = (uint32_t)Structure->Period ;
8014aac: 683b ldr r3, [r7, #0]
8014aae: 689a ldr r2, [r3, #8]
8014ab0: 687b ldr r3, [r7, #4]
8014ab2: 62da str r2, [r3, #44] ; 0x2c
/* Set the Prescaler value */
TIMx->PSC = Structure->Prescaler;
8014ab4: 683b ldr r3, [r7, #0]
8014ab6: 681a ldr r2, [r3, #0]
8014ab8: 687b ldr r3, [r7, #4]
8014aba: 629a str r2, [r3, #40] ; 0x28
if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx))
8014abc: 687b ldr r3, [r7, #4]
8014abe: 4a0a ldr r2, [pc, #40] ; (8014ae8 <TIM_Base_SetConfig+0x114>)
8014ac0: 4293 cmp r3, r2
8014ac2: d003 beq.n 8014acc <TIM_Base_SetConfig+0xf8>
8014ac4: 687b ldr r3, [r7, #4]
8014ac6: 4a0c ldr r2, [pc, #48] ; (8014af8 <TIM_Base_SetConfig+0x124>)
8014ac8: 4293 cmp r3, r2
8014aca: d103 bne.n 8014ad4 <TIM_Base_SetConfig+0x100>
{
/* Set the Repetition Counter value */
TIMx->RCR = Structure->RepetitionCounter;
8014acc: 683b ldr r3, [r7, #0]
8014ace: 691a ldr r2, [r3, #16]
8014ad0: 687b ldr r3, [r7, #4]
8014ad2: 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;
8014ad4: 687b ldr r3, [r7, #4]
8014ad6: 2201 movs r2, #1
8014ad8: 615a str r2, [r3, #20]
}
8014ada: bf00 nop
8014adc: 3714 adds r7, #20
8014ade: 46bd mov sp, r7
8014ae0: f85d 7b04 ldr.w r7, [sp], #4
8014ae4: 4770 bx lr
8014ae6: bf00 nop
8014ae8: 40010000 .word 0x40010000
8014aec: 40000400 .word 0x40000400
8014af0: 40000800 .word 0x40000800
8014af4: 40000c00 .word 0x40000c00
8014af8: 40010400 .word 0x40010400
8014afc: 40014000 .word 0x40014000
8014b00: 40014400 .word 0x40014400
8014b04: 40014800 .word 0x40014800
8014b08: 40001800 .word 0x40001800
8014b0c: 40001c00 .word 0x40001c00
8014b10: 40002000 .word 0x40002000
08014b14 <HAL_TIMEx_MasterConfigSynchronization>:
* mode.
* @retval HAL status
*/
HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef *htim,
TIM_MasterConfigTypeDef *sMasterConfig)
{
8014b14: b480 push {r7}
8014b16: b085 sub sp, #20
8014b18: af00 add r7, sp, #0
8014b1a: 6078 str r0, [r7, #4]
8014b1c: 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);
8014b1e: 687b ldr r3, [r7, #4]
8014b20: f893 303c ldrb.w r3, [r3, #60] ; 0x3c
8014b24: 2b01 cmp r3, #1
8014b26: d101 bne.n 8014b2c <HAL_TIMEx_MasterConfigSynchronization+0x18>
8014b28: 2302 movs r3, #2
8014b2a: e06d b.n 8014c08 <HAL_TIMEx_MasterConfigSynchronization+0xf4>
8014b2c: 687b ldr r3, [r7, #4]
8014b2e: 2201 movs r2, #1
8014b30: f883 203c strb.w r2, [r3, #60] ; 0x3c
/* Change the handler state */
htim->State = HAL_TIM_STATE_BUSY;
8014b34: 687b ldr r3, [r7, #4]
8014b36: 2202 movs r2, #2
8014b38: f883 203d strb.w r2, [r3, #61] ; 0x3d
/* Get the TIMx CR2 register value */
tmpcr2 = htim->Instance->CR2;
8014b3c: 687b ldr r3, [r7, #4]
8014b3e: 681b ldr r3, [r3, #0]
8014b40: 685b ldr r3, [r3, #4]
8014b42: 60fb str r3, [r7, #12]
/* Get the TIMx SMCR register value */
tmpsmcr = htim->Instance->SMCR;
8014b44: 687b ldr r3, [r7, #4]
8014b46: 681b ldr r3, [r3, #0]
8014b48: 689b ldr r3, [r3, #8]
8014b4a: 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))
8014b4c: 687b ldr r3, [r7, #4]
8014b4e: 681b ldr r3, [r3, #0]
8014b50: 4a30 ldr r2, [pc, #192] ; (8014c14 <HAL_TIMEx_MasterConfigSynchronization+0x100>)
8014b52: 4293 cmp r3, r2
8014b54: d004 beq.n 8014b60 <HAL_TIMEx_MasterConfigSynchronization+0x4c>
8014b56: 687b ldr r3, [r7, #4]
8014b58: 681b ldr r3, [r3, #0]
8014b5a: 4a2f ldr r2, [pc, #188] ; (8014c18 <HAL_TIMEx_MasterConfigSynchronization+0x104>)
8014b5c: 4293 cmp r3, r2
8014b5e: d108 bne.n 8014b72 <HAL_TIMEx_MasterConfigSynchronization+0x5e>
{
/* Check the parameters */
assert_param(IS_TIM_TRGO2_SOURCE(sMasterConfig->MasterOutputTrigger2));
/* Clear the MMS2 bits */
tmpcr2 &= ~TIM_CR2_MMS2;
8014b60: 68fb ldr r3, [r7, #12]
8014b62: f423 0370 bic.w r3, r3, #15728640 ; 0xf00000
8014b66: 60fb str r3, [r7, #12]
/* Select the TRGO2 source*/
tmpcr2 |= sMasterConfig->MasterOutputTrigger2;
8014b68: 683b ldr r3, [r7, #0]
8014b6a: 685b ldr r3, [r3, #4]
8014b6c: 68fa ldr r2, [r7, #12]
8014b6e: 4313 orrs r3, r2
8014b70: 60fb str r3, [r7, #12]
}
/* Reset the MMS Bits */
tmpcr2 &= ~TIM_CR2_MMS;
8014b72: 68fb ldr r3, [r7, #12]
8014b74: f023 0370 bic.w r3, r3, #112 ; 0x70
8014b78: 60fb str r3, [r7, #12]
/* Select the TRGO source */
tmpcr2 |= sMasterConfig->MasterOutputTrigger;
8014b7a: 683b ldr r3, [r7, #0]
8014b7c: 681b ldr r3, [r3, #0]
8014b7e: 68fa ldr r2, [r7, #12]
8014b80: 4313 orrs r3, r2
8014b82: 60fb str r3, [r7, #12]
/* Update TIMx CR2 */
htim->Instance->CR2 = tmpcr2;
8014b84: 687b ldr r3, [r7, #4]
8014b86: 681b ldr r3, [r3, #0]
8014b88: 68fa ldr r2, [r7, #12]
8014b8a: 605a str r2, [r3, #4]
if (IS_TIM_SLAVE_INSTANCE(htim->Instance))
8014b8c: 687b ldr r3, [r7, #4]
8014b8e: 681b ldr r3, [r3, #0]
8014b90: 4a20 ldr r2, [pc, #128] ; (8014c14 <HAL_TIMEx_MasterConfigSynchronization+0x100>)
8014b92: 4293 cmp r3, r2
8014b94: d022 beq.n 8014bdc <HAL_TIMEx_MasterConfigSynchronization+0xc8>
8014b96: 687b ldr r3, [r7, #4]
8014b98: 681b ldr r3, [r3, #0]
8014b9a: f1b3 4f80 cmp.w r3, #1073741824 ; 0x40000000
8014b9e: d01d beq.n 8014bdc <HAL_TIMEx_MasterConfigSynchronization+0xc8>
8014ba0: 687b ldr r3, [r7, #4]
8014ba2: 681b ldr r3, [r3, #0]
8014ba4: 4a1d ldr r2, [pc, #116] ; (8014c1c <HAL_TIMEx_MasterConfigSynchronization+0x108>)
8014ba6: 4293 cmp r3, r2
8014ba8: d018 beq.n 8014bdc <HAL_TIMEx_MasterConfigSynchronization+0xc8>
8014baa: 687b ldr r3, [r7, #4]
8014bac: 681b ldr r3, [r3, #0]
8014bae: 4a1c ldr r2, [pc, #112] ; (8014c20 <HAL_TIMEx_MasterConfigSynchronization+0x10c>)
8014bb0: 4293 cmp r3, r2
8014bb2: d013 beq.n 8014bdc <HAL_TIMEx_MasterConfigSynchronization+0xc8>
8014bb4: 687b ldr r3, [r7, #4]
8014bb6: 681b ldr r3, [r3, #0]
8014bb8: 4a1a ldr r2, [pc, #104] ; (8014c24 <HAL_TIMEx_MasterConfigSynchronization+0x110>)
8014bba: 4293 cmp r3, r2
8014bbc: d00e beq.n 8014bdc <HAL_TIMEx_MasterConfigSynchronization+0xc8>
8014bbe: 687b ldr r3, [r7, #4]
8014bc0: 681b ldr r3, [r3, #0]
8014bc2: 4a15 ldr r2, [pc, #84] ; (8014c18 <HAL_TIMEx_MasterConfigSynchronization+0x104>)
8014bc4: 4293 cmp r3, r2
8014bc6: d009 beq.n 8014bdc <HAL_TIMEx_MasterConfigSynchronization+0xc8>
8014bc8: 687b ldr r3, [r7, #4]
8014bca: 681b ldr r3, [r3, #0]
8014bcc: 4a16 ldr r2, [pc, #88] ; (8014c28 <HAL_TIMEx_MasterConfigSynchronization+0x114>)
8014bce: 4293 cmp r3, r2
8014bd0: d004 beq.n 8014bdc <HAL_TIMEx_MasterConfigSynchronization+0xc8>
8014bd2: 687b ldr r3, [r7, #4]
8014bd4: 681b ldr r3, [r3, #0]
8014bd6: 4a15 ldr r2, [pc, #84] ; (8014c2c <HAL_TIMEx_MasterConfigSynchronization+0x118>)
8014bd8: 4293 cmp r3, r2
8014bda: d10c bne.n 8014bf6 <HAL_TIMEx_MasterConfigSynchronization+0xe2>
{
/* Reset the MSM Bit */
tmpsmcr &= ~TIM_SMCR_MSM;
8014bdc: 68bb ldr r3, [r7, #8]
8014bde: f023 0380 bic.w r3, r3, #128 ; 0x80
8014be2: 60bb str r3, [r7, #8]
/* Set master mode */
tmpsmcr |= sMasterConfig->MasterSlaveMode;
8014be4: 683b ldr r3, [r7, #0]
8014be6: 689b ldr r3, [r3, #8]
8014be8: 68ba ldr r2, [r7, #8]
8014bea: 4313 orrs r3, r2
8014bec: 60bb str r3, [r7, #8]
/* Update TIMx SMCR */
htim->Instance->SMCR = tmpsmcr;
8014bee: 687b ldr r3, [r7, #4]
8014bf0: 681b ldr r3, [r3, #0]
8014bf2: 68ba ldr r2, [r7, #8]
8014bf4: 609a str r2, [r3, #8]
}
/* Change the htim state */
htim->State = HAL_TIM_STATE_READY;
8014bf6: 687b ldr r3, [r7, #4]
8014bf8: 2201 movs r2, #1
8014bfa: f883 203d strb.w r2, [r3, #61] ; 0x3d
__HAL_UNLOCK(htim);
8014bfe: 687b ldr r3, [r7, #4]
8014c00: 2200 movs r2, #0
8014c02: f883 203c strb.w r2, [r3, #60] ; 0x3c
return HAL_OK;
8014c06: 2300 movs r3, #0
}
8014c08: 4618 mov r0, r3
8014c0a: 3714 adds r7, #20
8014c0c: 46bd mov sp, r7
8014c0e: f85d 7b04 ldr.w r7, [sp], #4
8014c12: 4770 bx lr
8014c14: 40010000 .word 0x40010000
8014c18: 40010400 .word 0x40010400
8014c1c: 40000400 .word 0x40000400
8014c20: 40000800 .word 0x40000800
8014c24: 40000c00 .word 0x40000c00
8014c28: 40014000 .word 0x40014000
8014c2c: 40001800 .word 0x40001800
08014c30 <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)
{
8014c30: b480 push {r7}
8014c32: b083 sub sp, #12
8014c34: af00 add r7, sp, #0
8014c36: 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
*/
}
8014c38: bf00 nop
8014c3a: 370c adds r7, #12
8014c3c: 46bd mov sp, r7
8014c3e: f85d 7b04 ldr.w r7, [sp], #4
8014c42: 4770 bx lr
08014c44 <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)
{
8014c44: b480 push {r7}
8014c46: b083 sub sp, #12
8014c48: af00 add r7, sp, #0
8014c4a: 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
*/
}
8014c4c: bf00 nop
8014c4e: 370c adds r7, #12
8014c50: 46bd mov sp, r7
8014c52: f85d 7b04 ldr.w r7, [sp], #4
8014c56: 4770 bx lr
08014c58 <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)
{
8014c58: b480 push {r7}
8014c5a: b083 sub sp, #12
8014c5c: af00 add r7, sp, #0
8014c5e: 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
*/
}
8014c60: bf00 nop
8014c62: 370c adds r7, #12
8014c64: 46bd mov sp, r7
8014c66: f85d 7b04 ldr.w r7, [sp], #4
8014c6a: 4770 bx lr
08014c6c <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)
{
8014c6c: b580 push {r7, lr}
8014c6e: b082 sub sp, #8
8014c70: af00 add r7, sp, #0
8014c72: 6078 str r0, [r7, #4]
/* Check the UART handle allocation */
if (huart == NULL)
8014c74: 687b ldr r3, [r7, #4]
8014c76: 2b00 cmp r3, #0
8014c78: d101 bne.n 8014c7e <HAL_UART_Init+0x12>
{
return HAL_ERROR;
8014c7a: 2301 movs r3, #1
8014c7c: e040 b.n 8014d00 <HAL_UART_Init+0x94>
{
/* Check the parameters */
assert_param(IS_UART_INSTANCE(huart->Instance));
}
if (huart->gState == HAL_UART_STATE_RESET)
8014c7e: 687b ldr r3, [r7, #4]
8014c80: 6f9b ldr r3, [r3, #120] ; 0x78
8014c82: 2b00 cmp r3, #0
8014c84: d106 bne.n 8014c94 <HAL_UART_Init+0x28>
{
/* Allocate lock resource and initialize it */
huart->Lock = HAL_UNLOCKED;
8014c86: 687b ldr r3, [r7, #4]
8014c88: 2200 movs r2, #0
8014c8a: 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);
8014c8e: 6878 ldr r0, [r7, #4]
8014c90: f7fb f838 bl 800fd04 <HAL_UART_MspInit>
#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
}
huart->gState = HAL_UART_STATE_BUSY;
8014c94: 687b ldr r3, [r7, #4]
8014c96: 2224 movs r2, #36 ; 0x24
8014c98: 679a str r2, [r3, #120] ; 0x78
__HAL_UART_DISABLE(huart);
8014c9a: 687b ldr r3, [r7, #4]
8014c9c: 681b ldr r3, [r3, #0]
8014c9e: 687a ldr r2, [r7, #4]
8014ca0: 6812 ldr r2, [r2, #0]
8014ca2: 6812 ldr r2, [r2, #0]
8014ca4: f022 0201 bic.w r2, r2, #1
8014ca8: 601a str r2, [r3, #0]
/* Set the UART Communication parameters */
if (UART_SetConfig(huart) == HAL_ERROR)
8014caa: 6878 ldr r0, [r7, #4]
8014cac: f000 fd90 bl 80157d0 <UART_SetConfig>
8014cb0: 4603 mov r3, r0
8014cb2: 2b01 cmp r3, #1
8014cb4: d101 bne.n 8014cba <HAL_UART_Init+0x4e>
{
return HAL_ERROR;
8014cb6: 2301 movs r3, #1
8014cb8: e022 b.n 8014d00 <HAL_UART_Init+0x94>
}
if (huart->AdvancedInit.AdvFeatureInit != UART_ADVFEATURE_NO_INIT)
8014cba: 687b ldr r3, [r7, #4]
8014cbc: 6a5b ldr r3, [r3, #36] ; 0x24
8014cbe: 2b00 cmp r3, #0
8014cc0: d002 beq.n 8014cc8 <HAL_UART_Init+0x5c>
{
UART_AdvFeatureConfig(huart);
8014cc2: 6878 ldr r0, [r7, #4]
8014cc4: f000 ffe4 bl 8015c90 <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));
8014cc8: 687b ldr r3, [r7, #4]
8014cca: 681b ldr r3, [r3, #0]
8014ccc: 687a ldr r2, [r7, #4]
8014cce: 6812 ldr r2, [r2, #0]
8014cd0: 6852 ldr r2, [r2, #4]
8014cd2: f422 4290 bic.w r2, r2, #18432 ; 0x4800
8014cd6: 605a str r2, [r3, #4]
CLEAR_BIT(huart->Instance->CR3, (USART_CR3_SCEN | USART_CR3_HDSEL | USART_CR3_IREN));
8014cd8: 687b ldr r3, [r7, #4]
8014cda: 681b ldr r3, [r3, #0]
8014cdc: 687a ldr r2, [r7, #4]
8014cde: 6812 ldr r2, [r2, #0]
8014ce0: 6892 ldr r2, [r2, #8]
8014ce2: f022 022a bic.w r2, r2, #42 ; 0x2a
8014ce6: 609a str r2, [r3, #8]
__HAL_UART_ENABLE(huart);
8014ce8: 687b ldr r3, [r7, #4]
8014cea: 681b ldr r3, [r3, #0]
8014cec: 687a ldr r2, [r7, #4]
8014cee: 6812 ldr r2, [r2, #0]
8014cf0: 6812 ldr r2, [r2, #0]
8014cf2: f042 0201 orr.w r2, r2, #1
8014cf6: 601a str r2, [r3, #0]
/* TEACK and/or REACK to check before moving huart->gState and huart->RxState to Ready */
return (UART_CheckIdleState(huart));
8014cf8: 6878 ldr r0, [r7, #4]
8014cfa: f001 f86b bl 8015dd4 <UART_CheckIdleState>
8014cfe: 4603 mov r3, r0
}
8014d00: 4618 mov r0, r3
8014d02: 3708 adds r7, #8
8014d04: 46bd mov sp, r7
8014d06: bd80 pop {r7, pc}
08014d08 <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)
{
8014d08: b580 push {r7, lr}
8014d0a: b08a sub sp, #40 ; 0x28
8014d0c: af02 add r7, sp, #8
8014d0e: 60f8 str r0, [r7, #12]
8014d10: 60b9 str r1, [r7, #8]
8014d12: 603b str r3, [r7, #0]
8014d14: 4613 mov r3, r2
8014d16: 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)
8014d18: 68fb ldr r3, [r7, #12]
8014d1a: 6fdb ldr r3, [r3, #124] ; 0x7c
8014d1c: 2b20 cmp r3, #32
8014d1e: f040 80be bne.w 8014e9e <HAL_UART_Receive+0x196>
{
if ((pData == NULL) || (Size == 0U))
8014d22: 68bb ldr r3, [r7, #8]
8014d24: 2b00 cmp r3, #0
8014d26: d002 beq.n 8014d2e <HAL_UART_Receive+0x26>
8014d28: 88fb ldrh r3, [r7, #6]
8014d2a: 2b00 cmp r3, #0
8014d2c: d101 bne.n 8014d32 <HAL_UART_Receive+0x2a>
{
return HAL_ERROR;
8014d2e: 2301 movs r3, #1
8014d30: e0b6 b.n 8014ea0 <HAL_UART_Receive+0x198>
}
__HAL_LOCK(huart);
8014d32: 68fb ldr r3, [r7, #12]
8014d34: f893 3074 ldrb.w r3, [r3, #116] ; 0x74
8014d38: 2b01 cmp r3, #1
8014d3a: d101 bne.n 8014d40 <HAL_UART_Receive+0x38>
8014d3c: 2302 movs r3, #2
8014d3e: e0af b.n 8014ea0 <HAL_UART_Receive+0x198>
8014d40: 68fb ldr r3, [r7, #12]
8014d42: 2201 movs r2, #1
8014d44: f883 2074 strb.w r2, [r3, #116] ; 0x74
huart->ErrorCode = HAL_UART_ERROR_NONE;
8014d48: 68fb ldr r3, [r7, #12]
8014d4a: 2200 movs r2, #0
8014d4c: f8c3 2080 str.w r2, [r3, #128] ; 0x80
huart->RxState = HAL_UART_STATE_BUSY_RX;
8014d50: 68fb ldr r3, [r7, #12]
8014d52: 2222 movs r2, #34 ; 0x22
8014d54: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
8014d56: 68fb ldr r3, [r7, #12]
8014d58: 2200 movs r2, #0
8014d5a: 661a str r2, [r3, #96] ; 0x60
/* Init tickstart for timeout management */
tickstart = HAL_GetTick();
8014d5c: f7fc fc3e bl 80115dc <HAL_GetTick>
8014d60: 6178 str r0, [r7, #20]
huart->RxXferSize = Size;
8014d62: 68fb ldr r3, [r7, #12]
8014d64: 88fa ldrh r2, [r7, #6]
8014d66: f8a3 2058 strh.w r2, [r3, #88] ; 0x58
huart->RxXferCount = Size;
8014d6a: 68fb ldr r3, [r7, #12]
8014d6c: 88fa ldrh r2, [r7, #6]
8014d6e: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
/* Computation of UART mask to apply to RDR register */
UART_MASK_COMPUTATION(huart);
8014d72: 68fb ldr r3, [r7, #12]
8014d74: 689b ldr r3, [r3, #8]
8014d76: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
8014d7a: d10e bne.n 8014d9a <HAL_UART_Receive+0x92>
8014d7c: 68fb ldr r3, [r7, #12]
8014d7e: 691b ldr r3, [r3, #16]
8014d80: 2b00 cmp r3, #0
8014d82: d105 bne.n 8014d90 <HAL_UART_Receive+0x88>
8014d84: 68fb ldr r3, [r7, #12]
8014d86: f240 12ff movw r2, #511 ; 0x1ff
8014d8a: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
8014d8e: e02d b.n 8014dec <HAL_UART_Receive+0xe4>
8014d90: 68fb ldr r3, [r7, #12]
8014d92: 22ff movs r2, #255 ; 0xff
8014d94: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
8014d98: e028 b.n 8014dec <HAL_UART_Receive+0xe4>
8014d9a: 68fb ldr r3, [r7, #12]
8014d9c: 689b ldr r3, [r3, #8]
8014d9e: 2b00 cmp r3, #0
8014da0: d10d bne.n 8014dbe <HAL_UART_Receive+0xb6>
8014da2: 68fb ldr r3, [r7, #12]
8014da4: 691b ldr r3, [r3, #16]
8014da6: 2b00 cmp r3, #0
8014da8: d104 bne.n 8014db4 <HAL_UART_Receive+0xac>
8014daa: 68fb ldr r3, [r7, #12]
8014dac: 22ff movs r2, #255 ; 0xff
8014dae: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
8014db2: e01b b.n 8014dec <HAL_UART_Receive+0xe4>
8014db4: 68fb ldr r3, [r7, #12]
8014db6: 227f movs r2, #127 ; 0x7f
8014db8: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
8014dbc: e016 b.n 8014dec <HAL_UART_Receive+0xe4>
8014dbe: 68fb ldr r3, [r7, #12]
8014dc0: 689b ldr r3, [r3, #8]
8014dc2: f1b3 5f80 cmp.w r3, #268435456 ; 0x10000000
8014dc6: d10d bne.n 8014de4 <HAL_UART_Receive+0xdc>
8014dc8: 68fb ldr r3, [r7, #12]
8014dca: 691b ldr r3, [r3, #16]
8014dcc: 2b00 cmp r3, #0
8014dce: d104 bne.n 8014dda <HAL_UART_Receive+0xd2>
8014dd0: 68fb ldr r3, [r7, #12]
8014dd2: 227f movs r2, #127 ; 0x7f
8014dd4: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
8014dd8: e008 b.n 8014dec <HAL_UART_Receive+0xe4>
8014dda: 68fb ldr r3, [r7, #12]
8014ddc: 223f movs r2, #63 ; 0x3f
8014dde: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
8014de2: e003 b.n 8014dec <HAL_UART_Receive+0xe4>
8014de4: 68fb ldr r3, [r7, #12]
8014de6: 2200 movs r2, #0
8014de8: f8a3 205c strh.w r2, [r3, #92] ; 0x5c
uhMask = huart->Mask;
8014dec: 68fb ldr r3, [r7, #12]
8014dee: f8b3 305c ldrh.w r3, [r3, #92] ; 0x5c
8014df2: 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))
8014df4: 68fb ldr r3, [r7, #12]
8014df6: 689b ldr r3, [r3, #8]
8014df8: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
8014dfc: d108 bne.n 8014e10 <HAL_UART_Receive+0x108>
8014dfe: 68fb ldr r3, [r7, #12]
8014e00: 691b ldr r3, [r3, #16]
8014e02: 2b00 cmp r3, #0
8014e04: d104 bne.n 8014e10 <HAL_UART_Receive+0x108>
{
pdata8bits = NULL;
8014e06: 2300 movs r3, #0
8014e08: 61fb str r3, [r7, #28]
pdata16bits = (uint16_t *) pData;
8014e0a: 68bb ldr r3, [r7, #8]
8014e0c: 61bb str r3, [r7, #24]
8014e0e: e003 b.n 8014e18 <HAL_UART_Receive+0x110>
}
else
{
pdata8bits = pData;
8014e10: 68bb ldr r3, [r7, #8]
8014e12: 61fb str r3, [r7, #28]
pdata16bits = NULL;
8014e14: 2300 movs r3, #0
8014e16: 61bb str r3, [r7, #24]
}
__HAL_UNLOCK(huart);
8014e18: 68fb ldr r3, [r7, #12]
8014e1a: 2200 movs r2, #0
8014e1c: f883 2074 strb.w r2, [r3, #116] ; 0x74
/* as long as data have to be received */
while (huart->RxXferCount > 0U)
8014e20: e032 b.n 8014e88 <HAL_UART_Receive+0x180>
{
if (UART_WaitOnFlagUntilTimeout(huart, UART_FLAG_RXNE, RESET, tickstart, Timeout) != HAL_OK)
8014e22: 683b ldr r3, [r7, #0]
8014e24: 9300 str r3, [sp, #0]
8014e26: 697b ldr r3, [r7, #20]
8014e28: 2200 movs r2, #0
8014e2a: 2120 movs r1, #32
8014e2c: 68f8 ldr r0, [r7, #12]
8014e2e: f001 f81a bl 8015e66 <UART_WaitOnFlagUntilTimeout>
8014e32: 4603 mov r3, r0
8014e34: 2b00 cmp r3, #0
8014e36: d001 beq.n 8014e3c <HAL_UART_Receive+0x134>
{
return HAL_TIMEOUT;
8014e38: 2303 movs r3, #3
8014e3a: e031 b.n 8014ea0 <HAL_UART_Receive+0x198>
}
if (pdata8bits == NULL)
8014e3c: 69fb ldr r3, [r7, #28]
8014e3e: 2b00 cmp r3, #0
8014e40: d10c bne.n 8014e5c <HAL_UART_Receive+0x154>
{
*pdata16bits = (uint16_t)(huart->Instance->RDR & uhMask);
8014e42: 68fb ldr r3, [r7, #12]
8014e44: 681b ldr r3, [r3, #0]
8014e46: 6a5b ldr r3, [r3, #36] ; 0x24
8014e48: b29a uxth r2, r3
8014e4a: 8a7b ldrh r3, [r7, #18]
8014e4c: 4013 ands r3, r2
8014e4e: b29a uxth r2, r3
8014e50: 69bb ldr r3, [r7, #24]
8014e52: 801a strh r2, [r3, #0]
pdata16bits++;
8014e54: 69bb ldr r3, [r7, #24]
8014e56: 3302 adds r3, #2
8014e58: 61bb str r3, [r7, #24]
8014e5a: e00c b.n 8014e76 <HAL_UART_Receive+0x16e>
}
else
{
*pdata8bits = (uint8_t)(huart->Instance->RDR & (uint8_t)uhMask);
8014e5c: 68fb ldr r3, [r7, #12]
8014e5e: 681b ldr r3, [r3, #0]
8014e60: 6a5b ldr r3, [r3, #36] ; 0x24
8014e62: b2da uxtb r2, r3
8014e64: 8a7b ldrh r3, [r7, #18]
8014e66: b2db uxtb r3, r3
8014e68: 4013 ands r3, r2
8014e6a: b2da uxtb r2, r3
8014e6c: 69fb ldr r3, [r7, #28]
8014e6e: 701a strb r2, [r3, #0]
pdata8bits++;
8014e70: 69fb ldr r3, [r7, #28]
8014e72: 3301 adds r3, #1
8014e74: 61fb str r3, [r7, #28]
}
huart->RxXferCount--;
8014e76: 68fb ldr r3, [r7, #12]
8014e78: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a
8014e7c: b29b uxth r3, r3
8014e7e: 3b01 subs r3, #1
8014e80: b29a uxth r2, r3
8014e82: 68fb ldr r3, [r7, #12]
8014e84: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
while (huart->RxXferCount > 0U)
8014e88: 68fb ldr r3, [r7, #12]
8014e8a: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a
8014e8e: b29b uxth r3, r3
8014e90: 2b00 cmp r3, #0
8014e92: d1c6 bne.n 8014e22 <HAL_UART_Receive+0x11a>
}
/* At end of Rx process, restore huart->RxState to Ready */
huart->RxState = HAL_UART_STATE_READY;
8014e94: 68fb ldr r3, [r7, #12]
8014e96: 2220 movs r2, #32
8014e98: 67da str r2, [r3, #124] ; 0x7c
return HAL_OK;
8014e9a: 2300 movs r3, #0
8014e9c: e000 b.n 8014ea0 <HAL_UART_Receive+0x198>
}
else
{
return HAL_BUSY;
8014e9e: 2302 movs r3, #2
}
}
8014ea0: 4618 mov r0, r3
8014ea2: 3720 adds r7, #32
8014ea4: 46bd mov sp, r7
8014ea6: bd80 pop {r7, pc}
08014ea8 <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)
{
8014ea8: b480 push {r7}
8014eaa: b08b sub sp, #44 ; 0x2c
8014eac: af00 add r7, sp, #0
8014eae: 60f8 str r0, [r7, #12]
8014eb0: 60b9 str r1, [r7, #8]
8014eb2: 4613 mov r3, r2
8014eb4: 80fb strh r3, [r7, #6]
/* Check that a Tx process is not already ongoing */
if (huart->gState == HAL_UART_STATE_READY)
8014eb6: 68fb ldr r3, [r7, #12]
8014eb8: 6f9b ldr r3, [r3, #120] ; 0x78
8014eba: 2b20 cmp r3, #32
8014ebc: d156 bne.n 8014f6c <HAL_UART_Transmit_IT+0xc4>
{
if ((pData == NULL) || (Size == 0U))
8014ebe: 68bb ldr r3, [r7, #8]
8014ec0: 2b00 cmp r3, #0
8014ec2: d002 beq.n 8014eca <HAL_UART_Transmit_IT+0x22>
8014ec4: 88fb ldrh r3, [r7, #6]
8014ec6: 2b00 cmp r3, #0
8014ec8: d101 bne.n 8014ece <HAL_UART_Transmit_IT+0x26>
{
return HAL_ERROR;
8014eca: 2301 movs r3, #1
8014ecc: e04f b.n 8014f6e <HAL_UART_Transmit_IT+0xc6>
}
__HAL_LOCK(huart);
8014ece: 68fb ldr r3, [r7, #12]
8014ed0: f893 3074 ldrb.w r3, [r3, #116] ; 0x74
8014ed4: 2b01 cmp r3, #1
8014ed6: d101 bne.n 8014edc <HAL_UART_Transmit_IT+0x34>
8014ed8: 2302 movs r3, #2
8014eda: e048 b.n 8014f6e <HAL_UART_Transmit_IT+0xc6>
8014edc: 68fb ldr r3, [r7, #12]
8014ede: 2201 movs r2, #1
8014ee0: f883 2074 strb.w r2, [r3, #116] ; 0x74
huart->pTxBuffPtr = pData;
8014ee4: 68fb ldr r3, [r7, #12]
8014ee6: 68ba ldr r2, [r7, #8]
8014ee8: 64da str r2, [r3, #76] ; 0x4c
huart->TxXferSize = Size;
8014eea: 68fb ldr r3, [r7, #12]
8014eec: 88fa ldrh r2, [r7, #6]
8014eee: f8a3 2050 strh.w r2, [r3, #80] ; 0x50
huart->TxXferCount = Size;
8014ef2: 68fb ldr r3, [r7, #12]
8014ef4: 88fa ldrh r2, [r7, #6]
8014ef6: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
huart->TxISR = NULL;
8014efa: 68fb ldr r3, [r7, #12]
8014efc: 2200 movs r2, #0
8014efe: 669a str r2, [r3, #104] ; 0x68
huart->ErrorCode = HAL_UART_ERROR_NONE;
8014f00: 68fb ldr r3, [r7, #12]
8014f02: 2200 movs r2, #0
8014f04: f8c3 2080 str.w r2, [r3, #128] ; 0x80
huart->gState = HAL_UART_STATE_BUSY_TX;
8014f08: 68fb ldr r3, [r7, #12]
8014f0a: 2221 movs r2, #33 ; 0x21
8014f0c: 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))
8014f0e: 68fb ldr r3, [r7, #12]
8014f10: 689b ldr r3, [r3, #8]
8014f12: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
8014f16: d107 bne.n 8014f28 <HAL_UART_Transmit_IT+0x80>
8014f18: 68fb ldr r3, [r7, #12]
8014f1a: 691b ldr r3, [r3, #16]
8014f1c: 2b00 cmp r3, #0
8014f1e: d103 bne.n 8014f28 <HAL_UART_Transmit_IT+0x80>
{
huart->TxISR = UART_TxISR_16BIT;
8014f20: 68fb ldr r3, [r7, #12]
8014f22: 4a16 ldr r2, [pc, #88] ; (8014f7c <HAL_UART_Transmit_IT+0xd4>)
8014f24: 669a str r2, [r3, #104] ; 0x68
8014f26: e002 b.n 8014f2e <HAL_UART_Transmit_IT+0x86>
}
else
{
huart->TxISR = UART_TxISR_8BIT;
8014f28: 68fb ldr r3, [r7, #12]
8014f2a: 4a15 ldr r2, [pc, #84] ; (8014f80 <HAL_UART_Transmit_IT+0xd8>)
8014f2c: 669a str r2, [r3, #104] ; 0x68
}
__HAL_UNLOCK(huart);
8014f2e: 68fb ldr r3, [r7, #12]
8014f30: 2200 movs r2, #0
8014f32: f883 2074 strb.w r2, [r3, #116] ; 0x74
/* Enable the Transmit Data Register Empty interrupt */
ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TXEIE);
8014f36: 68fb ldr r3, [r7, #12]
8014f38: 681b ldr r3, [r3, #0]
8014f3a: 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) );
8014f3c: 697b ldr r3, [r7, #20]
8014f3e: e853 3f00 ldrex r3, [r3]
8014f42: 613b str r3, [r7, #16]
return(result);
8014f44: 693b ldr r3, [r7, #16]
8014f46: f043 0380 orr.w r3, r3, #128 ; 0x80
8014f4a: 627b str r3, [r7, #36] ; 0x24
8014f4c: 68fb ldr r3, [r7, #12]
8014f4e: 681b ldr r3, [r3, #0]
8014f50: 461a mov r2, r3
8014f52: 6a7b ldr r3, [r7, #36] ; 0x24
8014f54: 623b str r3, [r7, #32]
8014f56: 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) );
8014f58: 69f9 ldr r1, [r7, #28]
8014f5a: 6a3a ldr r2, [r7, #32]
8014f5c: e841 2300 strex r3, r2, [r1]
8014f60: 61bb str r3, [r7, #24]
return(result);
8014f62: 69bb ldr r3, [r7, #24]
8014f64: 2b00 cmp r3, #0
8014f66: d1e6 bne.n 8014f36 <HAL_UART_Transmit_IT+0x8e>
return HAL_OK;
8014f68: 2300 movs r3, #0
8014f6a: e000 b.n 8014f6e <HAL_UART_Transmit_IT+0xc6>
}
else
{
return HAL_BUSY;
8014f6c: 2302 movs r3, #2
}
}
8014f6e: 4618 mov r0, r3
8014f70: 372c adds r7, #44 ; 0x2c
8014f72: 46bd mov sp, r7
8014f74: f85d 7b04 ldr.w r7, [sp], #4
8014f78: 4770 bx lr
8014f7a: bf00 nop
8014f7c: 0801627b .word 0x0801627b
8014f80: 080161c5 .word 0x080161c5
08014f84 <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)
{
8014f84: b580 push {r7, lr}
8014f86: b0a2 sub sp, #136 ; 0x88
8014f88: af00 add r7, sp, #0
8014f8a: 6078 str r0, [r7, #4]
uint32_t abortcplt = 1U;
8014f8c: 2301 movs r3, #1
8014f8e: 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));
8014f92: 687b ldr r3, [r7, #4]
8014f94: 681b ldr r3, [r3, #0]
8014f96: 663b str r3, [r7, #96] ; 0x60
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8014f98: 6e3b ldr r3, [r7, #96] ; 0x60
8014f9a: e853 3f00 ldrex r3, [r3]
8014f9e: 65fb str r3, [r7, #92] ; 0x5c
return(result);
8014fa0: 6dfb ldr r3, [r7, #92] ; 0x5c
8014fa2: f423 73f0 bic.w r3, r3, #480 ; 0x1e0
8014fa6: f8c7 3080 str.w r3, [r7, #128] ; 0x80
8014faa: 687b ldr r3, [r7, #4]
8014fac: 681b ldr r3, [r3, #0]
8014fae: 461a mov r2, r3
8014fb0: f8d7 3080 ldr.w r3, [r7, #128] ; 0x80
8014fb4: 66fb str r3, [r7, #108] ; 0x6c
8014fb6: 66ba str r2, [r7, #104] ; 0x68
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8014fb8: 6eb9 ldr r1, [r7, #104] ; 0x68
8014fba: 6efa ldr r2, [r7, #108] ; 0x6c
8014fbc: e841 2300 strex r3, r2, [r1]
8014fc0: 667b str r3, [r7, #100] ; 0x64
return(result);
8014fc2: 6e7b ldr r3, [r7, #100] ; 0x64
8014fc4: 2b00 cmp r3, #0
8014fc6: d1e4 bne.n 8014f92 <HAL_UART_Abort_IT+0xe>
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
8014fc8: 687b ldr r3, [r7, #4]
8014fca: 681b ldr r3, [r3, #0]
8014fcc: 3308 adds r3, #8
8014fce: 64fb str r3, [r7, #76] ; 0x4c
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8014fd0: 6cfb ldr r3, [r7, #76] ; 0x4c
8014fd2: e853 3f00 ldrex r3, [r3]
8014fd6: 64bb str r3, [r7, #72] ; 0x48
return(result);
8014fd8: 6cbb ldr r3, [r7, #72] ; 0x48
8014fda: f023 0301 bic.w r3, r3, #1
8014fde: 67fb str r3, [r7, #124] ; 0x7c
8014fe0: 687b ldr r3, [r7, #4]
8014fe2: 681b ldr r3, [r3, #0]
8014fe4: 3308 adds r3, #8
8014fe6: 6ffa ldr r2, [r7, #124] ; 0x7c
8014fe8: 65ba str r2, [r7, #88] ; 0x58
8014fea: 657b str r3, [r7, #84] ; 0x54
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8014fec: 6d79 ldr r1, [r7, #84] ; 0x54
8014fee: 6dba ldr r2, [r7, #88] ; 0x58
8014ff0: e841 2300 strex r3, r2, [r1]
8014ff4: 653b str r3, [r7, #80] ; 0x50
return(result);
8014ff6: 6d3b ldr r3, [r7, #80] ; 0x50
8014ff8: 2b00 cmp r3, #0
8014ffa: d1e5 bne.n 8014fc8 <HAL_UART_Abort_IT+0x44>
/* If Reception till IDLE event was ongoing, disable IDLEIE interrupt */
if (huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE)
8014ffc: 687b ldr r3, [r7, #4]
8014ffe: 6e1b ldr r3, [r3, #96] ; 0x60
8015000: 2b01 cmp r3, #1
8015002: d118 bne.n 8015036 <HAL_UART_Abort_IT+0xb2>
{
ATOMIC_CLEAR_BIT(huart->Instance->CR1, (USART_CR1_IDLEIE));
8015004: 687b ldr r3, [r7, #4]
8015006: 681b ldr r3, [r3, #0]
8015008: 63bb str r3, [r7, #56] ; 0x38
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
801500a: 6bbb ldr r3, [r7, #56] ; 0x38
801500c: e853 3f00 ldrex r3, [r3]
8015010: 637b str r3, [r7, #52] ; 0x34
return(result);
8015012: 6b7b ldr r3, [r7, #52] ; 0x34
8015014: f023 0310 bic.w r3, r3, #16
8015018: 67bb str r3, [r7, #120] ; 0x78
801501a: 687b ldr r3, [r7, #4]
801501c: 681b ldr r3, [r3, #0]
801501e: 461a mov r2, r3
8015020: 6fbb ldr r3, [r7, #120] ; 0x78
8015022: 647b str r3, [r7, #68] ; 0x44
8015024: 643a str r2, [r7, #64] ; 0x40
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015026: 6c39 ldr r1, [r7, #64] ; 0x40
8015028: 6c7a ldr r2, [r7, #68] ; 0x44
801502a: e841 2300 strex r3, r2, [r1]
801502e: 63fb str r3, [r7, #60] ; 0x3c
return(result);
8015030: 6bfb ldr r3, [r7, #60] ; 0x3c
8015032: 2b00 cmp r3, #0
8015034: d1e6 bne.n 8015004 <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)
8015036: 687b ldr r3, [r7, #4]
8015038: 6edb ldr r3, [r3, #108] ; 0x6c
801503a: 2b00 cmp r3, #0
801503c: d00f beq.n 801505e <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))
801503e: 687b ldr r3, [r7, #4]
8015040: 681b ldr r3, [r3, #0]
8015042: 689b ldr r3, [r3, #8]
8015044: f003 0380 and.w r3, r3, #128 ; 0x80
8015048: 2b80 cmp r3, #128 ; 0x80
801504a: d104 bne.n 8015056 <HAL_UART_Abort_IT+0xd2>
{
huart->hdmatx->XferAbortCallback = UART_DMATxAbortCallback;
801504c: 687b ldr r3, [r7, #4]
801504e: 6edb ldr r3, [r3, #108] ; 0x6c
8015050: 4a5d ldr r2, [pc, #372] ; (80151c8 <HAL_UART_Abort_IT+0x244>)
8015052: 651a str r2, [r3, #80] ; 0x50
8015054: e003 b.n 801505e <HAL_UART_Abort_IT+0xda>
}
else
{
huart->hdmatx->XferAbortCallback = NULL;
8015056: 687b ldr r3, [r7, #4]
8015058: 6edb ldr r3, [r3, #108] ; 0x6c
801505a: 2200 movs r2, #0
801505c: 651a str r2, [r3, #80] ; 0x50
}
}
/* DMA Rx Handle is valid */
if (huart->hdmarx != NULL)
801505e: 687b ldr r3, [r7, #4]
8015060: 6f1b ldr r3, [r3, #112] ; 0x70
8015062: 2b00 cmp r3, #0
8015064: d00f beq.n 8015086 <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))
8015066: 687b ldr r3, [r7, #4]
8015068: 681b ldr r3, [r3, #0]
801506a: 689b ldr r3, [r3, #8]
801506c: f003 0340 and.w r3, r3, #64 ; 0x40
8015070: 2b40 cmp r3, #64 ; 0x40
8015072: d104 bne.n 801507e <HAL_UART_Abort_IT+0xfa>
{
huart->hdmarx->XferAbortCallback = UART_DMARxAbortCallback;
8015074: 687b ldr r3, [r7, #4]
8015076: 6f1b ldr r3, [r3, #112] ; 0x70
8015078: 4a54 ldr r2, [pc, #336] ; (80151cc <HAL_UART_Abort_IT+0x248>)
801507a: 651a str r2, [r3, #80] ; 0x50
801507c: e003 b.n 8015086 <HAL_UART_Abort_IT+0x102>
}
else
{
huart->hdmarx->XferAbortCallback = NULL;
801507e: 687b ldr r3, [r7, #4]
8015080: 6f1b ldr r3, [r3, #112] ; 0x70
8015082: 2200 movs r2, #0
8015084: 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))
8015086: 687b ldr r3, [r7, #4]
8015088: 681b ldr r3, [r3, #0]
801508a: 689b ldr r3, [r3, #8]
801508c: f003 0380 and.w r3, r3, #128 ; 0x80
8015090: 2b80 cmp r3, #128 ; 0x80
8015092: d12d bne.n 80150f0 <HAL_UART_Abort_IT+0x16c>
{
/* Disable DMA Tx at UART level */
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAT);
8015094: 687b ldr r3, [r7, #4]
8015096: 681b ldr r3, [r3, #0]
8015098: 3308 adds r3, #8
801509a: 627b str r3, [r7, #36] ; 0x24
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
801509c: 6a7b ldr r3, [r7, #36] ; 0x24
801509e: e853 3f00 ldrex r3, [r3]
80150a2: 623b str r3, [r7, #32]
return(result);
80150a4: 6a3b ldr r3, [r7, #32]
80150a6: f023 0380 bic.w r3, r3, #128 ; 0x80
80150aa: 677b str r3, [r7, #116] ; 0x74
80150ac: 687b ldr r3, [r7, #4]
80150ae: 681b ldr r3, [r3, #0]
80150b0: 3308 adds r3, #8
80150b2: 6f7a ldr r2, [r7, #116] ; 0x74
80150b4: 633a str r2, [r7, #48] ; 0x30
80150b6: 62fb str r3, [r7, #44] ; 0x2c
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80150b8: 6af9 ldr r1, [r7, #44] ; 0x2c
80150ba: 6b3a ldr r2, [r7, #48] ; 0x30
80150bc: e841 2300 strex r3, r2, [r1]
80150c0: 62bb str r3, [r7, #40] ; 0x28
return(result);
80150c2: 6abb ldr r3, [r7, #40] ; 0x28
80150c4: 2b00 cmp r3, #0
80150c6: d1e5 bne.n 8015094 <HAL_UART_Abort_IT+0x110>
/* Abort the UART DMA Tx channel : use non blocking DMA Abort API (callback) */
if (huart->hdmatx != NULL)
80150c8: 687b ldr r3, [r7, #4]
80150ca: 6edb ldr r3, [r3, #108] ; 0x6c
80150cc: 2b00 cmp r3, #0
80150ce: d00f beq.n 80150f0 <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)
80150d0: 687b ldr r3, [r7, #4]
80150d2: 6edb ldr r3, [r3, #108] ; 0x6c
80150d4: 4618 mov r0, r3
80150d6: f7fc fc5e bl 8011996 <HAL_DMA_Abort_IT>
80150da: 4603 mov r3, r0
80150dc: 2b00 cmp r3, #0
80150de: d004 beq.n 80150ea <HAL_UART_Abort_IT+0x166>
{
huart->hdmatx->XferAbortCallback = NULL;
80150e0: 687b ldr r3, [r7, #4]
80150e2: 6edb ldr r3, [r3, #108] ; 0x6c
80150e4: 2200 movs r2, #0
80150e6: 651a str r2, [r3, #80] ; 0x50
80150e8: e002 b.n 80150f0 <HAL_UART_Abort_IT+0x16c>
}
else
{
abortcplt = 0U;
80150ea: 2300 movs r3, #0
80150ec: 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))
80150f0: 687b ldr r3, [r7, #4]
80150f2: 681b ldr r3, [r3, #0]
80150f4: 689b ldr r3, [r3, #8]
80150f6: f003 0340 and.w r3, r3, #64 ; 0x40
80150fa: 2b40 cmp r3, #64 ; 0x40
80150fc: d130 bne.n 8015160 <HAL_UART_Abort_IT+0x1dc>
{
/* Disable the UART DMA Rx request if enabled */
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
80150fe: 687b ldr r3, [r7, #4]
8015100: 681b ldr r3, [r3, #0]
8015102: 3308 adds r3, #8
8015104: 613b str r3, [r7, #16]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015106: 693b ldr r3, [r7, #16]
8015108: e853 3f00 ldrex r3, [r3]
801510c: 60fb str r3, [r7, #12]
return(result);
801510e: 68fb ldr r3, [r7, #12]
8015110: f023 0340 bic.w r3, r3, #64 ; 0x40
8015114: 673b str r3, [r7, #112] ; 0x70
8015116: 687b ldr r3, [r7, #4]
8015118: 681b ldr r3, [r3, #0]
801511a: 3308 adds r3, #8
801511c: 6f3a ldr r2, [r7, #112] ; 0x70
801511e: 61fa str r2, [r7, #28]
8015120: 61bb str r3, [r7, #24]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015122: 69b9 ldr r1, [r7, #24]
8015124: 69fa ldr r2, [r7, #28]
8015126: e841 2300 strex r3, r2, [r1]
801512a: 617b str r3, [r7, #20]
return(result);
801512c: 697b ldr r3, [r7, #20]
801512e: 2b00 cmp r3, #0
8015130: d1e5 bne.n 80150fe <HAL_UART_Abort_IT+0x17a>
/* Abort the UART DMA Rx channel : use non blocking DMA Abort API (callback) */
if (huart->hdmarx != NULL)
8015132: 687b ldr r3, [r7, #4]
8015134: 6f1b ldr r3, [r3, #112] ; 0x70
8015136: 2b00 cmp r3, #0
8015138: d012 beq.n 8015160 <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)
801513a: 687b ldr r3, [r7, #4]
801513c: 6f1b ldr r3, [r3, #112] ; 0x70
801513e: 4618 mov r0, r3
8015140: f7fc fc29 bl 8011996 <HAL_DMA_Abort_IT>
8015144: 4603 mov r3, r0
8015146: 2b00 cmp r3, #0
8015148: d007 beq.n 801515a <HAL_UART_Abort_IT+0x1d6>
{
huart->hdmarx->XferAbortCallback = NULL;
801514a: 687b ldr r3, [r7, #4]
801514c: 6f1b ldr r3, [r3, #112] ; 0x70
801514e: 2200 movs r2, #0
8015150: 651a str r2, [r3, #80] ; 0x50
abortcplt = 1U;
8015152: 2301 movs r3, #1
8015154: f8c7 3084 str.w r3, [r7, #132] ; 0x84
8015158: e002 b.n 8015160 <HAL_UART_Abort_IT+0x1dc>
}
else
{
abortcplt = 0U;
801515a: 2300 movs r3, #0
801515c: 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)
8015160: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84
8015164: 2b01 cmp r3, #1
8015166: d129 bne.n 80151bc <HAL_UART_Abort_IT+0x238>
{
/* Reset Tx and Rx transfer counters */
huart->TxXferCount = 0U;
8015168: 687b ldr r3, [r7, #4]
801516a: 2200 movs r2, #0
801516c: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
huart->RxXferCount = 0U;
8015170: 687b ldr r3, [r7, #4]
8015172: 2200 movs r2, #0
8015174: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
/* Clear ISR function pointers */
huart->RxISR = NULL;
8015178: 687b ldr r3, [r7, #4]
801517a: 2200 movs r2, #0
801517c: 665a str r2, [r3, #100] ; 0x64
huart->TxISR = NULL;
801517e: 687b ldr r3, [r7, #4]
8015180: 2200 movs r2, #0
8015182: 669a str r2, [r3, #104] ; 0x68
/* Reset errorCode */
huart->ErrorCode = HAL_UART_ERROR_NONE;
8015184: 687b ldr r3, [r7, #4]
8015186: 2200 movs r2, #0
8015188: 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);
801518c: 687b ldr r3, [r7, #4]
801518e: 681b ldr r3, [r3, #0]
8015190: 220f movs r2, #15
8015192: 621a str r2, [r3, #32]
/* Discard the received data */
__HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
8015194: 687b ldr r3, [r7, #4]
8015196: 681b ldr r3, [r3, #0]
8015198: 687a ldr r2, [r7, #4]
801519a: 6812 ldr r2, [r2, #0]
801519c: 6992 ldr r2, [r2, #24]
801519e: f042 0208 orr.w r2, r2, #8
80151a2: 619a str r2, [r3, #24]
/* Restore huart->gState and huart->RxState to Ready */
huart->gState = HAL_UART_STATE_READY;
80151a4: 687b ldr r3, [r7, #4]
80151a6: 2220 movs r2, #32
80151a8: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
80151aa: 687b ldr r3, [r7, #4]
80151ac: 2220 movs r2, #32
80151ae: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
80151b0: 687b ldr r3, [r7, #4]
80151b2: 2200 movs r2, #0
80151b4: 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);
80151b6: 6878 ldr r0, [r7, #4]
80151b8: f000 faea bl 8015790 <HAL_UART_AbortCpltCallback>
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
}
return HAL_OK;
80151bc: 2300 movs r3, #0
}
80151be: 4618 mov r0, r3
80151c0: 3788 adds r7, #136 ; 0x88
80151c2: 46bd mov sp, r7
80151c4: bd80 pop {r7, pc}
80151c6: bf00 nop
80151c8: 080160e1 .word 0x080160e1
80151cc: 0801614b .word 0x0801614b
080151d0 <HAL_UART_IRQHandler>:
* @brief Handle UART interrupt request.
* @param huart UART handle.
* @retval None
*/
void HAL_UART_IRQHandler(UART_HandleTypeDef *huart)
{
80151d0: b580 push {r7, lr}
80151d2: b0ba sub sp, #232 ; 0xe8
80151d4: af00 add r7, sp, #0
80151d6: 6078 str r0, [r7, #4]
uint32_t isrflags = READ_REG(huart->Instance->ISR);
80151d8: 687b ldr r3, [r7, #4]
80151da: 681b ldr r3, [r3, #0]
80151dc: 69db ldr r3, [r3, #28]
80151de: f8c7 30e4 str.w r3, [r7, #228] ; 0xe4
uint32_t cr1its = READ_REG(huart->Instance->CR1);
80151e2: 687b ldr r3, [r7, #4]
80151e4: 681b ldr r3, [r3, #0]
80151e6: 681b ldr r3, [r3, #0]
80151e8: f8c7 30e0 str.w r3, [r7, #224] ; 0xe0
uint32_t cr3its = READ_REG(huart->Instance->CR3);
80151ec: 687b ldr r3, [r7, #4]
80151ee: 681b ldr r3, [r3, #0]
80151f0: 689b ldr r3, [r3, #8]
80151f2: 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));
80151f6: f8d7 20e4 ldr.w r2, [r7, #228] ; 0xe4
80151fa: f640 030f movw r3, #2063 ; 0x80f
80151fe: 4013 ands r3, r2
8015200: f8c7 30d8 str.w r3, [r7, #216] ; 0xd8
if (errorflags == 0U)
8015204: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8
8015208: 2b00 cmp r3, #0
801520a: d115 bne.n 8015238 <HAL_UART_IRQHandler+0x68>
{
/* UART in mode Receiver ---------------------------------------------------*/
if (((isrflags & USART_ISR_RXNE) != 0U)
801520c: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
8015210: f003 0320 and.w r3, r3, #32
8015214: 2b00 cmp r3, #0
8015216: d00f beq.n 8015238 <HAL_UART_IRQHandler+0x68>
&& ((cr1its & USART_CR1_RXNEIE) != 0U))
8015218: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
801521c: f003 0320 and.w r3, r3, #32
8015220: 2b00 cmp r3, #0
8015222: d009 beq.n 8015238 <HAL_UART_IRQHandler+0x68>
{
if (huart->RxISR != NULL)
8015224: 687b ldr r3, [r7, #4]
8015226: 6e5b ldr r3, [r3, #100] ; 0x64
8015228: 2b00 cmp r3, #0
801522a: f000 82a5 beq.w 8015778 <HAL_UART_IRQHandler+0x5a8>
{
huart->RxISR(huart);
801522e: 687b ldr r3, [r7, #4]
8015230: 6e5b ldr r3, [r3, #100] ; 0x64
8015232: 6878 ldr r0, [r7, #4]
8015234: 4798 blx r3
}
return;
8015236: e29f b.n 8015778 <HAL_UART_IRQHandler+0x5a8>
}
}
/* If some errors occur */
if ((errorflags != 0U)
8015238: f8d7 30d8 ldr.w r3, [r7, #216] ; 0xd8
801523c: 2b00 cmp r3, #0
801523e: f000 8117 beq.w 8015470 <HAL_UART_IRQHandler+0x2a0>
&& (((cr3its & USART_CR3_EIE) != 0U)
8015242: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc
8015246: f003 0301 and.w r3, r3, #1
801524a: 2b00 cmp r3, #0
801524c: d106 bne.n 801525c <HAL_UART_IRQHandler+0x8c>
|| ((cr1its & (USART_CR1_RXNEIE | USART_CR1_PEIE | USART_CR1_RTOIE)) != 0U)))
801524e: f8d7 20e0 ldr.w r2, [r7, #224] ; 0xe0
8015252: 4b85 ldr r3, [pc, #532] ; (8015468 <HAL_UART_IRQHandler+0x298>)
8015254: 4013 ands r3, r2
8015256: 2b00 cmp r3, #0
8015258: f000 810a beq.w 8015470 <HAL_UART_IRQHandler+0x2a0>
{
/* UART parity error interrupt occurred -------------------------------------*/
if (((isrflags & USART_ISR_PE) != 0U) && ((cr1its & USART_CR1_PEIE) != 0U))
801525c: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
8015260: f003 0301 and.w r3, r3, #1
8015264: 2b00 cmp r3, #0
8015266: d011 beq.n 801528c <HAL_UART_IRQHandler+0xbc>
8015268: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
801526c: f403 7380 and.w r3, r3, #256 ; 0x100
8015270: 2b00 cmp r3, #0
8015272: d00b beq.n 801528c <HAL_UART_IRQHandler+0xbc>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_PEF);
8015274: 687b ldr r3, [r7, #4]
8015276: 681b ldr r3, [r3, #0]
8015278: 2201 movs r2, #1
801527a: 621a str r2, [r3, #32]
huart->ErrorCode |= HAL_UART_ERROR_PE;
801527c: 687b ldr r3, [r7, #4]
801527e: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
8015282: f043 0201 orr.w r2, r3, #1
8015286: 687b ldr r3, [r7, #4]
8015288: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
/* UART frame error interrupt occurred --------------------------------------*/
if (((isrflags & USART_ISR_FE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U))
801528c: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
8015290: f003 0302 and.w r3, r3, #2
8015294: 2b00 cmp r3, #0
8015296: d011 beq.n 80152bc <HAL_UART_IRQHandler+0xec>
8015298: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc
801529c: f003 0301 and.w r3, r3, #1
80152a0: 2b00 cmp r3, #0
80152a2: d00b beq.n 80152bc <HAL_UART_IRQHandler+0xec>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_FEF);
80152a4: 687b ldr r3, [r7, #4]
80152a6: 681b ldr r3, [r3, #0]
80152a8: 2202 movs r2, #2
80152aa: 621a str r2, [r3, #32]
huart->ErrorCode |= HAL_UART_ERROR_FE;
80152ac: 687b ldr r3, [r7, #4]
80152ae: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
80152b2: f043 0204 orr.w r2, r3, #4
80152b6: 687b ldr r3, [r7, #4]
80152b8: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
/* UART noise error interrupt occurred --------------------------------------*/
if (((isrflags & USART_ISR_NE) != 0U) && ((cr3its & USART_CR3_EIE) != 0U))
80152bc: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
80152c0: f003 0304 and.w r3, r3, #4
80152c4: 2b00 cmp r3, #0
80152c6: d011 beq.n 80152ec <HAL_UART_IRQHandler+0x11c>
80152c8: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc
80152cc: f003 0301 and.w r3, r3, #1
80152d0: 2b00 cmp r3, #0
80152d2: d00b beq.n 80152ec <HAL_UART_IRQHandler+0x11c>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_NEF);
80152d4: 687b ldr r3, [r7, #4]
80152d6: 681b ldr r3, [r3, #0]
80152d8: 2204 movs r2, #4
80152da: 621a str r2, [r3, #32]
huart->ErrorCode |= HAL_UART_ERROR_NE;
80152dc: 687b ldr r3, [r7, #4]
80152de: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
80152e2: f043 0202 orr.w r2, r3, #2
80152e6: 687b ldr r3, [r7, #4]
80152e8: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
/* UART Over-Run interrupt occurred -----------------------------------------*/
if (((isrflags & USART_ISR_ORE) != 0U)
80152ec: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
80152f0: f003 0308 and.w r3, r3, #8
80152f4: 2b00 cmp r3, #0
80152f6: d017 beq.n 8015328 <HAL_UART_IRQHandler+0x158>
&& (((cr1its & USART_CR1_RXNEIE) != 0U) ||
80152f8: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
80152fc: f003 0320 and.w r3, r3, #32
8015300: 2b00 cmp r3, #0
8015302: d105 bne.n 8015310 <HAL_UART_IRQHandler+0x140>
((cr3its & USART_CR3_EIE) != 0U)))
8015304: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc
8015308: f003 0301 and.w r3, r3, #1
&& (((cr1its & USART_CR1_RXNEIE) != 0U) ||
801530c: 2b00 cmp r3, #0
801530e: d00b beq.n 8015328 <HAL_UART_IRQHandler+0x158>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_OREF);
8015310: 687b ldr r3, [r7, #4]
8015312: 681b ldr r3, [r3, #0]
8015314: 2208 movs r2, #8
8015316: 621a str r2, [r3, #32]
huart->ErrorCode |= HAL_UART_ERROR_ORE;
8015318: 687b ldr r3, [r7, #4]
801531a: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
801531e: f043 0208 orr.w r2, r3, #8
8015322: 687b ldr r3, [r7, #4]
8015324: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
/* UART Receiver Timeout interrupt occurred ---------------------------------*/
if (((isrflags & USART_ISR_RTOF) != 0U) && ((cr1its & USART_CR1_RTOIE) != 0U))
8015328: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
801532c: f403 6300 and.w r3, r3, #2048 ; 0x800
8015330: 2b00 cmp r3, #0
8015332: d012 beq.n 801535a <HAL_UART_IRQHandler+0x18a>
8015334: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
8015338: f003 6380 and.w r3, r3, #67108864 ; 0x4000000
801533c: 2b00 cmp r3, #0
801533e: d00c beq.n 801535a <HAL_UART_IRQHandler+0x18a>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF);
8015340: 687b ldr r3, [r7, #4]
8015342: 681b ldr r3, [r3, #0]
8015344: f44f 6200 mov.w r2, #2048 ; 0x800
8015348: 621a str r2, [r3, #32]
huart->ErrorCode |= HAL_UART_ERROR_RTO;
801534a: 687b ldr r3, [r7, #4]
801534c: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
8015350: f043 0220 orr.w r2, r3, #32
8015354: 687b ldr r3, [r7, #4]
8015356: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
/* Call UART Error Call back function if need be ----------------------------*/
if (huart->ErrorCode != HAL_UART_ERROR_NONE)
801535a: 687b ldr r3, [r7, #4]
801535c: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
8015360: 2b00 cmp r3, #0
8015362: f000 820b beq.w 801577c <HAL_UART_IRQHandler+0x5ac>
{
/* UART in mode Receiver --------------------------------------------------*/
if (((isrflags & USART_ISR_RXNE) != 0U)
8015366: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
801536a: f003 0320 and.w r3, r3, #32
801536e: 2b00 cmp r3, #0
8015370: d00d beq.n 801538e <HAL_UART_IRQHandler+0x1be>
&& ((cr1its & USART_CR1_RXNEIE) != 0U))
8015372: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
8015376: f003 0320 and.w r3, r3, #32
801537a: 2b00 cmp r3, #0
801537c: d007 beq.n 801538e <HAL_UART_IRQHandler+0x1be>
{
if (huart->RxISR != NULL)
801537e: 687b ldr r3, [r7, #4]
8015380: 6e5b ldr r3, [r3, #100] ; 0x64
8015382: 2b00 cmp r3, #0
8015384: d003 beq.n 801538e <HAL_UART_IRQHandler+0x1be>
{
huart->RxISR(huart);
8015386: 687b ldr r3, [r7, #4]
8015388: 6e5b ldr r3, [r3, #100] ; 0x64
801538a: 6878 ldr r0, [r7, #4]
801538c: 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;
801538e: 687b ldr r3, [r7, #4]
8015390: f8d3 3080 ldr.w r3, [r3, #128] ; 0x80
8015394: f8c7 30d4 str.w r3, [r7, #212] ; 0xd4
if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) ||
8015398: 687b ldr r3, [r7, #4]
801539a: 681b ldr r3, [r3, #0]
801539c: 689b ldr r3, [r3, #8]
801539e: f003 0340 and.w r3, r3, #64 ; 0x40
80153a2: 2b40 cmp r3, #64 ; 0x40
80153a4: d005 beq.n 80153b2 <HAL_UART_IRQHandler+0x1e2>
((errorcode & (HAL_UART_ERROR_RTO | HAL_UART_ERROR_ORE)) != 0U))
80153a6: f8d7 30d4 ldr.w r3, [r7, #212] ; 0xd4
80153aa: f003 0328 and.w r3, r3, #40 ; 0x28
if ((HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR)) ||
80153ae: 2b00 cmp r3, #0
80153b0: d04f beq.n 8015452 <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);
80153b2: 6878 ldr r0, [r7, #4]
80153b4: f000 fe1b bl 8015fee <UART_EndRxTransfer>
/* Abort the UART DMA Rx channel if enabled */
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
80153b8: 687b ldr r3, [r7, #4]
80153ba: 681b ldr r3, [r3, #0]
80153bc: 689b ldr r3, [r3, #8]
80153be: f003 0340 and.w r3, r3, #64 ; 0x40
80153c2: 2b40 cmp r3, #64 ; 0x40
80153c4: d141 bne.n 801544a <HAL_UART_IRQHandler+0x27a>
{
/* Disable the UART DMA Rx request if enabled */
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_DMAR);
80153c6: 687b ldr r3, [r7, #4]
80153c8: 681b ldr r3, [r3, #0]
80153ca: 3308 adds r3, #8
80153cc: f8c7 309c str.w r3, [r7, #156] ; 0x9c
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
80153d0: f8d7 309c ldr.w r3, [r7, #156] ; 0x9c
80153d4: e853 3f00 ldrex r3, [r3]
80153d8: f8c7 3098 str.w r3, [r7, #152] ; 0x98
return(result);
80153dc: f8d7 3098 ldr.w r3, [r7, #152] ; 0x98
80153e0: f023 0340 bic.w r3, r3, #64 ; 0x40
80153e4: f8c7 30d0 str.w r3, [r7, #208] ; 0xd0
80153e8: 687b ldr r3, [r7, #4]
80153ea: 681b ldr r3, [r3, #0]
80153ec: 3308 adds r3, #8
80153ee: f8d7 20d0 ldr.w r2, [r7, #208] ; 0xd0
80153f2: f8c7 20a8 str.w r2, [r7, #168] ; 0xa8
80153f6: f8c7 30a4 str.w r3, [r7, #164] ; 0xa4
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80153fa: f8d7 10a4 ldr.w r1, [r7, #164] ; 0xa4
80153fe: f8d7 20a8 ldr.w r2, [r7, #168] ; 0xa8
8015402: e841 2300 strex r3, r2, [r1]
8015406: f8c7 30a0 str.w r3, [r7, #160] ; 0xa0
return(result);
801540a: f8d7 30a0 ldr.w r3, [r7, #160] ; 0xa0
801540e: 2b00 cmp r3, #0
8015410: d1d9 bne.n 80153c6 <HAL_UART_IRQHandler+0x1f6>
/* Abort the UART DMA Rx channel */
if (huart->hdmarx != NULL)
8015412: 687b ldr r3, [r7, #4]
8015414: 6f1b ldr r3, [r3, #112] ; 0x70
8015416: 2b00 cmp r3, #0
8015418: d013 beq.n 8015442 <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;
801541a: 687b ldr r3, [r7, #4]
801541c: 6f1b ldr r3, [r3, #112] ; 0x70
801541e: 4a13 ldr r2, [pc, #76] ; (801546c <HAL_UART_IRQHandler+0x29c>)
8015420: 651a str r2, [r3, #80] ; 0x50
/* Abort DMA RX */
if (HAL_DMA_Abort_IT(huart->hdmarx) != HAL_OK)
8015422: 687b ldr r3, [r7, #4]
8015424: 6f1b ldr r3, [r3, #112] ; 0x70
8015426: 4618 mov r0, r3
8015428: f7fc fab5 bl 8011996 <HAL_DMA_Abort_IT>
801542c: 4603 mov r3, r0
801542e: 2b00 cmp r3, #0
8015430: d017 beq.n 8015462 <HAL_UART_IRQHandler+0x292>
{
/* Call Directly huart->hdmarx->XferAbortCallback function in case of error */
huart->hdmarx->XferAbortCallback(huart->hdmarx);
8015432: 687b ldr r3, [r7, #4]
8015434: 6f1b ldr r3, [r3, #112] ; 0x70
8015436: 6d1b ldr r3, [r3, #80] ; 0x50
8015438: 687a ldr r2, [r7, #4]
801543a: 6f12 ldr r2, [r2, #112] ; 0x70
801543c: 4610 mov r0, r2
801543e: 4798 blx r3
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
8015440: e00f b.n 8015462 <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);
8015442: 6878 ldr r0, [r7, #4]
8015444: f7fa fd7a bl 800ff3c <HAL_UART_ErrorCallback>
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
8015448: e00b b.n 8015462 <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);
801544a: 6878 ldr r0, [r7, #4]
801544c: f7fa fd76 bl 800ff3c <HAL_UART_ErrorCallback>
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
8015450: e007 b.n 8015462 <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);
8015452: 6878 ldr r0, [r7, #4]
8015454: f7fa fd72 bl 800ff3c <HAL_UART_ErrorCallback>
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
huart->ErrorCode = HAL_UART_ERROR_NONE;
8015458: 687b ldr r3, [r7, #4]
801545a: 2200 movs r2, #0
801545c: f8c3 2080 str.w r2, [r3, #128] ; 0x80
}
}
return;
8015460: e18c b.n 801577c <HAL_UART_IRQHandler+0x5ac>
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
8015462: bf00 nop
return;
8015464: e18a b.n 801577c <HAL_UART_IRQHandler+0x5ac>
8015466: bf00 nop
8015468: 04000120 .word 0x04000120
801546c: 080160b5 .word 0x080160b5
} /* End if some error occurs */
/* Check current reception Mode :
If Reception till IDLE event has been selected : */
if ((huart->ReceptionType == HAL_UART_RECEPTION_TOIDLE)
8015470: 687b ldr r3, [r7, #4]
8015472: 6e1b ldr r3, [r3, #96] ; 0x60
8015474: 2b01 cmp r3, #1
8015476: f040 8144 bne.w 8015702 <HAL_UART_IRQHandler+0x532>
&& ((isrflags & USART_ISR_IDLE) != 0U)
801547a: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
801547e: f003 0310 and.w r3, r3, #16
8015482: 2b00 cmp r3, #0
8015484: f000 813d beq.w 8015702 <HAL_UART_IRQHandler+0x532>
&& ((cr1its & USART_ISR_IDLE) != 0U))
8015488: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
801548c: f003 0310 and.w r3, r3, #16
8015490: 2b00 cmp r3, #0
8015492: f000 8136 beq.w 8015702 <HAL_UART_IRQHandler+0x532>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_IDLEF);
8015496: 687b ldr r3, [r7, #4]
8015498: 681b ldr r3, [r3, #0]
801549a: 2210 movs r2, #16
801549c: 621a str r2, [r3, #32]
/* Check if DMA mode is enabled in UART */
if (HAL_IS_BIT_SET(huart->Instance->CR3, USART_CR3_DMAR))
801549e: 687b ldr r3, [r7, #4]
80154a0: 681b ldr r3, [r3, #0]
80154a2: 689b ldr r3, [r3, #8]
80154a4: f003 0340 and.w r3, r3, #64 ; 0x40
80154a8: 2b40 cmp r3, #64 ; 0x40
80154aa: f040 80b2 bne.w 8015612 <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);
80154ae: 687b ldr r3, [r7, #4]
80154b0: 6f1b ldr r3, [r3, #112] ; 0x70
80154b2: 681b ldr r3, [r3, #0]
80154b4: 685b ldr r3, [r3, #4]
80154b6: f8a7 30ce strh.w r3, [r7, #206] ; 0xce
if ((nb_remaining_rx_data > 0U)
80154ba: f8b7 30ce ldrh.w r3, [r7, #206] ; 0xce
80154be: 2b00 cmp r3, #0
80154c0: f000 815e beq.w 8015780 <HAL_UART_IRQHandler+0x5b0>
&& (nb_remaining_rx_data < huart->RxXferSize))
80154c4: 687b ldr r3, [r7, #4]
80154c6: f8b3 3058 ldrh.w r3, [r3, #88] ; 0x58
80154ca: f8b7 20ce ldrh.w r2, [r7, #206] ; 0xce
80154ce: 429a cmp r2, r3
80154d0: f080 8156 bcs.w 8015780 <HAL_UART_IRQHandler+0x5b0>
{
/* Reception is not complete */
huart->RxXferCount = nb_remaining_rx_data;
80154d4: 687b ldr r3, [r7, #4]
80154d6: f8b7 20ce ldrh.w r2, [r7, #206] ; 0xce
80154da: 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)
80154de: 687b ldr r3, [r7, #4]
80154e0: 6f1b ldr r3, [r3, #112] ; 0x70
80154e2: 69db ldr r3, [r3, #28]
80154e4: f5b3 7f80 cmp.w r3, #256 ; 0x100
80154e8: f000 8085 beq.w 80155f6 <HAL_UART_IRQHandler+0x426>
{
/* Disable PE and ERR (Frame error, noise error, overrun error) interrupts */
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_PEIE);
80154ec: 687b ldr r3, [r7, #4]
80154ee: 681b ldr r3, [r3, #0]
80154f0: f8c7 3088 str.w r3, [r7, #136] ; 0x88
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
80154f4: f8d7 3088 ldr.w r3, [r7, #136] ; 0x88
80154f8: e853 3f00 ldrex r3, [r3]
80154fc: f8c7 3084 str.w r3, [r7, #132] ; 0x84
return(result);
8015500: f8d7 3084 ldr.w r3, [r7, #132] ; 0x84
8015504: f423 7380 bic.w r3, r3, #256 ; 0x100
8015508: f8c7 30c8 str.w r3, [r7, #200] ; 0xc8
801550c: 687b ldr r3, [r7, #4]
801550e: 681b ldr r3, [r3, #0]
8015510: 461a mov r2, r3
8015512: f8d7 30c8 ldr.w r3, [r7, #200] ; 0xc8
8015516: f8c7 3094 str.w r3, [r7, #148] ; 0x94
801551a: f8c7 2090 str.w r2, [r7, #144] ; 0x90
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
801551e: f8d7 1090 ldr.w r1, [r7, #144] ; 0x90
8015522: f8d7 2094 ldr.w r2, [r7, #148] ; 0x94
8015526: e841 2300 strex r3, r2, [r1]
801552a: f8c7 308c str.w r3, [r7, #140] ; 0x8c
return(result);
801552e: f8d7 308c ldr.w r3, [r7, #140] ; 0x8c
8015532: 2b00 cmp r3, #0
8015534: d1da bne.n 80154ec <HAL_UART_IRQHandler+0x31c>
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
8015536: 687b ldr r3, [r7, #4]
8015538: 681b ldr r3, [r3, #0]
801553a: 3308 adds r3, #8
801553c: 677b str r3, [r7, #116] ; 0x74
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
801553e: 6f7b ldr r3, [r7, #116] ; 0x74
8015540: e853 3f00 ldrex r3, [r3]
8015544: 673b str r3, [r7, #112] ; 0x70
return(result);
8015546: 6f3b ldr r3, [r7, #112] ; 0x70
8015548: f023 0301 bic.w r3, r3, #1
801554c: f8c7 30c4 str.w r3, [r7, #196] ; 0xc4
8015550: 687b ldr r3, [r7, #4]
8015552: 681b ldr r3, [r3, #0]
8015554: 3308 adds r3, #8
8015556: f8d7 20c4 ldr.w r2, [r7, #196] ; 0xc4
801555a: f8c7 2080 str.w r2, [r7, #128] ; 0x80
801555e: 67fb str r3, [r7, #124] ; 0x7c
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015560: 6ff9 ldr r1, [r7, #124] ; 0x7c
8015562: f8d7 2080 ldr.w r2, [r7, #128] ; 0x80
8015566: e841 2300 strex r3, r2, [r1]
801556a: 67bb str r3, [r7, #120] ; 0x78
return(result);
801556c: 6fbb ldr r3, [r7, #120] ; 0x78
801556e: 2b00 cmp r3, #0
8015570: d1e1 bne.n 8015536 <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);
8015572: 687b ldr r3, [r7, #4]
8015574: 681b ldr r3, [r3, #0]
8015576: 3308 adds r3, #8
8015578: 663b str r3, [r7, #96] ; 0x60
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
801557a: 6e3b ldr r3, [r7, #96] ; 0x60
801557c: e853 3f00 ldrex r3, [r3]
8015580: 65fb str r3, [r7, #92] ; 0x5c
return(result);
8015582: 6dfb ldr r3, [r7, #92] ; 0x5c
8015584: f023 0340 bic.w r3, r3, #64 ; 0x40
8015588: f8c7 30c0 str.w r3, [r7, #192] ; 0xc0
801558c: 687b ldr r3, [r7, #4]
801558e: 681b ldr r3, [r3, #0]
8015590: 3308 adds r3, #8
8015592: f8d7 20c0 ldr.w r2, [r7, #192] ; 0xc0
8015596: 66fa str r2, [r7, #108] ; 0x6c
8015598: 66bb str r3, [r7, #104] ; 0x68
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
801559a: 6eb9 ldr r1, [r7, #104] ; 0x68
801559c: 6efa ldr r2, [r7, #108] ; 0x6c
801559e: e841 2300 strex r3, r2, [r1]
80155a2: 667b str r3, [r7, #100] ; 0x64
return(result);
80155a4: 6e7b ldr r3, [r7, #100] ; 0x64
80155a6: 2b00 cmp r3, #0
80155a8: d1e3 bne.n 8015572 <HAL_UART_IRQHandler+0x3a2>
/* At end of Rx process, restore huart->RxState to Ready */
huart->RxState = HAL_UART_STATE_READY;
80155aa: 687b ldr r3, [r7, #4]
80155ac: 2220 movs r2, #32
80155ae: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
80155b0: 687b ldr r3, [r7, #4]
80155b2: 2200 movs r2, #0
80155b4: 661a str r2, [r3, #96] ; 0x60
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
80155b6: 687b ldr r3, [r7, #4]
80155b8: 681b ldr r3, [r3, #0]
80155ba: 64fb str r3, [r7, #76] ; 0x4c
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
80155bc: 6cfb ldr r3, [r7, #76] ; 0x4c
80155be: e853 3f00 ldrex r3, [r3]
80155c2: 64bb str r3, [r7, #72] ; 0x48
return(result);
80155c4: 6cbb ldr r3, [r7, #72] ; 0x48
80155c6: f023 0310 bic.w r3, r3, #16
80155ca: f8c7 30bc str.w r3, [r7, #188] ; 0xbc
80155ce: 687b ldr r3, [r7, #4]
80155d0: 681b ldr r3, [r3, #0]
80155d2: 461a mov r2, r3
80155d4: f8d7 30bc ldr.w r3, [r7, #188] ; 0xbc
80155d8: 65bb str r3, [r7, #88] ; 0x58
80155da: 657a str r2, [r7, #84] ; 0x54
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80155dc: 6d79 ldr r1, [r7, #84] ; 0x54
80155de: 6dba ldr r2, [r7, #88] ; 0x58
80155e0: e841 2300 strex r3, r2, [r1]
80155e4: 653b str r3, [r7, #80] ; 0x50
return(result);
80155e6: 6d3b ldr r3, [r7, #80] ; 0x50
80155e8: 2b00 cmp r3, #0
80155ea: d1e4 bne.n 80155b6 <HAL_UART_IRQHandler+0x3e6>
/* Last bytes received, so no need as the abort is immediate */
(void)HAL_DMA_Abort(huart->hdmarx);
80155ec: 687b ldr r3, [r7, #4]
80155ee: 6f1b ldr r3, [r3, #112] ; 0x70
80155f0: 4618 mov r0, r3
80155f2: f7fc f960 bl 80118b6 <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));
80155f6: 687b ldr r3, [r7, #4]
80155f8: f8b3 2058 ldrh.w r2, [r3, #88] ; 0x58
80155fc: 687b ldr r3, [r7, #4]
80155fe: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a
8015602: b29b uxth r3, r3
8015604: 1ad3 subs r3, r2, r3
8015606: b29b uxth r3, r3
8015608: 4619 mov r1, r3
801560a: 6878 ldr r0, [r7, #4]
801560c: f000 f8ca bl 80157a4 <HAL_UARTEx_RxEventCallback>
#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
}
return;
8015610: e0b6 b.n 8015780 <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;
8015612: 687b ldr r3, [r7, #4]
8015614: f8b3 2058 ldrh.w r2, [r3, #88] ; 0x58
8015618: 687b ldr r3, [r7, #4]
801561a: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a
801561e: b29b uxth r3, r3
8015620: 1ad3 subs r3, r2, r3
8015622: f8a7 30ba strh.w r3, [r7, #186] ; 0xba
if ((huart->RxXferCount > 0U)
8015626: 687b ldr r3, [r7, #4]
8015628: f8b3 305a ldrh.w r3, [r3, #90] ; 0x5a
801562c: b29b uxth r3, r3
801562e: 2b00 cmp r3, #0
8015630: f000 80a8 beq.w 8015784 <HAL_UART_IRQHandler+0x5b4>
&& (nb_rx_data > 0U))
8015634: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba
8015638: 2b00 cmp r3, #0
801563a: f000 80a3 beq.w 8015784 <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));
801563e: 687b ldr r3, [r7, #4]
8015640: 681b ldr r3, [r3, #0]
8015642: 63bb str r3, [r7, #56] ; 0x38
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015644: 6bbb ldr r3, [r7, #56] ; 0x38
8015646: e853 3f00 ldrex r3, [r3]
801564a: 637b str r3, [r7, #52] ; 0x34
return(result);
801564c: 6b7b ldr r3, [r7, #52] ; 0x34
801564e: f423 7390 bic.w r3, r3, #288 ; 0x120
8015652: f8c7 30b4 str.w r3, [r7, #180] ; 0xb4
8015656: 687b ldr r3, [r7, #4]
8015658: 681b ldr r3, [r3, #0]
801565a: 461a mov r2, r3
801565c: f8d7 30b4 ldr.w r3, [r7, #180] ; 0xb4
8015660: 647b str r3, [r7, #68] ; 0x44
8015662: 643a str r2, [r7, #64] ; 0x40
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015664: 6c39 ldr r1, [r7, #64] ; 0x40
8015666: 6c7a ldr r2, [r7, #68] ; 0x44
8015668: e841 2300 strex r3, r2, [r1]
801566c: 63fb str r3, [r7, #60] ; 0x3c
return(result);
801566e: 6bfb ldr r3, [r7, #60] ; 0x3c
8015670: 2b00 cmp r3, #0
8015672: d1e4 bne.n 801563e <HAL_UART_IRQHandler+0x46e>
/* Disable the UART Error Interrupt: (Frame error, noise error, overrun error) */
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
8015674: 687b ldr r3, [r7, #4]
8015676: 681b ldr r3, [r3, #0]
8015678: 3308 adds r3, #8
801567a: 627b str r3, [r7, #36] ; 0x24
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
801567c: 6a7b ldr r3, [r7, #36] ; 0x24
801567e: e853 3f00 ldrex r3, [r3]
8015682: 623b str r3, [r7, #32]
return(result);
8015684: 6a3b ldr r3, [r7, #32]
8015686: f023 0301 bic.w r3, r3, #1
801568a: f8c7 30b0 str.w r3, [r7, #176] ; 0xb0
801568e: 687b ldr r3, [r7, #4]
8015690: 681b ldr r3, [r3, #0]
8015692: 3308 adds r3, #8
8015694: f8d7 20b0 ldr.w r2, [r7, #176] ; 0xb0
8015698: 633a str r2, [r7, #48] ; 0x30
801569a: 62fb str r3, [r7, #44] ; 0x2c
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
801569c: 6af9 ldr r1, [r7, #44] ; 0x2c
801569e: 6b3a ldr r2, [r7, #48] ; 0x30
80156a0: e841 2300 strex r3, r2, [r1]
80156a4: 62bb str r3, [r7, #40] ; 0x28
return(result);
80156a6: 6abb ldr r3, [r7, #40] ; 0x28
80156a8: 2b00 cmp r3, #0
80156aa: d1e3 bne.n 8015674 <HAL_UART_IRQHandler+0x4a4>
/* Rx process is completed, restore huart->RxState to Ready */
huart->RxState = HAL_UART_STATE_READY;
80156ac: 687b ldr r3, [r7, #4]
80156ae: 2220 movs r2, #32
80156b0: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
80156b2: 687b ldr r3, [r7, #4]
80156b4: 2200 movs r2, #0
80156b6: 661a str r2, [r3, #96] ; 0x60
/* Clear RxISR function pointer */
huart->RxISR = NULL;
80156b8: 687b ldr r3, [r7, #4]
80156ba: 2200 movs r2, #0
80156bc: 665a str r2, [r3, #100] ; 0x64
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
80156be: 687b ldr r3, [r7, #4]
80156c0: 681b ldr r3, [r3, #0]
80156c2: 613b str r3, [r7, #16]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
80156c4: 693b ldr r3, [r7, #16]
80156c6: e853 3f00 ldrex r3, [r3]
80156ca: 60fb str r3, [r7, #12]
return(result);
80156cc: 68fb ldr r3, [r7, #12]
80156ce: f023 0310 bic.w r3, r3, #16
80156d2: f8c7 30ac str.w r3, [r7, #172] ; 0xac
80156d6: 687b ldr r3, [r7, #4]
80156d8: 681b ldr r3, [r3, #0]
80156da: 461a mov r2, r3
80156dc: f8d7 30ac ldr.w r3, [r7, #172] ; 0xac
80156e0: 61fb str r3, [r7, #28]
80156e2: 61ba str r2, [r7, #24]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80156e4: 69b9 ldr r1, [r7, #24]
80156e6: 69fa ldr r2, [r7, #28]
80156e8: e841 2300 strex r3, r2, [r1]
80156ec: 617b str r3, [r7, #20]
return(result);
80156ee: 697b ldr r3, [r7, #20]
80156f0: 2b00 cmp r3, #0
80156f2: d1e4 bne.n 80156be <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);
80156f4: f8b7 30ba ldrh.w r3, [r7, #186] ; 0xba
80156f8: 4619 mov r1, r3
80156fa: 6878 ldr r0, [r7, #4]
80156fc: f000 f852 bl 80157a4 <HAL_UARTEx_RxEventCallback>
#endif /* (USE_HAL_UART_REGISTER_CALLBACKS) */
}
return;
8015700: e040 b.n 8015784 <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))
8015702: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
8015706: f403 1380 and.w r3, r3, #1048576 ; 0x100000
801570a: 2b00 cmp r3, #0
801570c: d00e beq.n 801572c <HAL_UART_IRQHandler+0x55c>
801570e: f8d7 30dc ldr.w r3, [r7, #220] ; 0xdc
8015712: f403 0380 and.w r3, r3, #4194304 ; 0x400000
8015716: 2b00 cmp r3, #0
8015718: d008 beq.n 801572c <HAL_UART_IRQHandler+0x55c>
{
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_WUF);
801571a: 687b ldr r3, [r7, #4]
801571c: 681b ldr r3, [r3, #0]
801571e: f44f 1280 mov.w r2, #1048576 ; 0x100000
8015722: 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);
8015724: 6878 ldr r0, [r7, #4]
8015726: f000 f849 bl 80157bc <HAL_UARTEx_WakeupCallback>
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
return;
801572a: e02e b.n 801578a <HAL_UART_IRQHandler+0x5ba>
}
#endif /* USART_CR3_WUFIE */
#endif /* USART_CR1_UESM */
/* UART in mode Transmitter ------------------------------------------------*/
if (((isrflags & USART_ISR_TXE) != 0U)
801572c: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
8015730: f003 0380 and.w r3, r3, #128 ; 0x80
8015734: 2b00 cmp r3, #0
8015736: d00e beq.n 8015756 <HAL_UART_IRQHandler+0x586>
&& ((cr1its & USART_CR1_TXEIE) != 0U))
8015738: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
801573c: f003 0380 and.w r3, r3, #128 ; 0x80
8015740: 2b00 cmp r3, #0
8015742: d008 beq.n 8015756 <HAL_UART_IRQHandler+0x586>
{
if (huart->TxISR != NULL)
8015744: 687b ldr r3, [r7, #4]
8015746: 6e9b ldr r3, [r3, #104] ; 0x68
8015748: 2b00 cmp r3, #0
801574a: d01d beq.n 8015788 <HAL_UART_IRQHandler+0x5b8>
{
huart->TxISR(huart);
801574c: 687b ldr r3, [r7, #4]
801574e: 6e9b ldr r3, [r3, #104] ; 0x68
8015750: 6878 ldr r0, [r7, #4]
8015752: 4798 blx r3
}
return;
8015754: e018 b.n 8015788 <HAL_UART_IRQHandler+0x5b8>
}
/* UART in mode Transmitter (transmission end) -----------------------------*/
if (((isrflags & USART_ISR_TC) != 0U) && ((cr1its & USART_CR1_TCIE) != 0U))
8015756: f8d7 30e4 ldr.w r3, [r7, #228] ; 0xe4
801575a: f003 0340 and.w r3, r3, #64 ; 0x40
801575e: 2b00 cmp r3, #0
8015760: d013 beq.n 801578a <HAL_UART_IRQHandler+0x5ba>
8015762: f8d7 30e0 ldr.w r3, [r7, #224] ; 0xe0
8015766: f003 0340 and.w r3, r3, #64 ; 0x40
801576a: 2b00 cmp r3, #0
801576c: d00d beq.n 801578a <HAL_UART_IRQHandler+0x5ba>
{
UART_EndTransmit_IT(huart);
801576e: 6878 ldr r0, [r7, #4]
8015770: f000 fde2 bl 8016338 <UART_EndTransmit_IT>
return;
8015774: bf00 nop
8015776: e008 b.n 801578a <HAL_UART_IRQHandler+0x5ba>
return;
8015778: bf00 nop
801577a: e006 b.n 801578a <HAL_UART_IRQHandler+0x5ba>
return;
801577c: bf00 nop
801577e: e004 b.n 801578a <HAL_UART_IRQHandler+0x5ba>
return;
8015780: bf00 nop
8015782: e002 b.n 801578a <HAL_UART_IRQHandler+0x5ba>
return;
8015784: bf00 nop
8015786: e000 b.n 801578a <HAL_UART_IRQHandler+0x5ba>
return;
8015788: bf00 nop
}
}
801578a: 37e8 adds r7, #232 ; 0xe8
801578c: 46bd mov sp, r7
801578e: bd80 pop {r7, pc}
08015790 <HAL_UART_AbortCpltCallback>:
* @brief UART Abort Complete callback.
* @param huart UART handle.
* @retval None
*/
__weak void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart)
{
8015790: b480 push {r7}
8015792: b083 sub sp, #12
8015794: af00 add r7, sp, #0
8015796: 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.
*/
}
8015798: bf00 nop
801579a: 370c adds r7, #12
801579c: 46bd mov sp, r7
801579e: f85d 7b04 ldr.w r7, [sp], #4
80157a2: 4770 bx lr
080157a4 <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)
{
80157a4: b480 push {r7}
80157a6: b083 sub sp, #12
80157a8: af00 add r7, sp, #0
80157aa: 6078 str r0, [r7, #4]
80157ac: 460b mov r3, r1
80157ae: 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.
*/
}
80157b0: bf00 nop
80157b2: 370c adds r7, #12
80157b4: 46bd mov sp, r7
80157b6: f85d 7b04 ldr.w r7, [sp], #4
80157ba: 4770 bx lr
080157bc <HAL_UARTEx_WakeupCallback>:
* @brief UART wakeup from Stop mode callback.
* @param huart UART handle.
* @retval None
*/
__weak void HAL_UARTEx_WakeupCallback(UART_HandleTypeDef *huart)
{
80157bc: b480 push {r7}
80157be: b083 sub sp, #12
80157c0: af00 add r7, sp, #0
80157c2: 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.
*/
}
80157c4: bf00 nop
80157c6: 370c adds r7, #12
80157c8: 46bd mov sp, r7
80157ca: f85d 7b04 ldr.w r7, [sp], #4
80157ce: 4770 bx lr
080157d0 <UART_SetConfig>:
* @brief Configure the UART peripheral.
* @param huart UART handle.
* @retval HAL status
*/
HAL_StatusTypeDef UART_SetConfig(UART_HandleTypeDef *huart)
{
80157d0: b580 push {r7, lr}
80157d2: b088 sub sp, #32
80157d4: af00 add r7, sp, #0
80157d6: 6078 str r0, [r7, #4]
uint32_t tmpreg;
uint16_t brrtemp;
UART_ClockSourceTypeDef clocksource;
uint32_t usartdiv;
HAL_StatusTypeDef ret = HAL_OK;
80157d8: 2300 movs r3, #0
80157da: 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 ;
80157dc: 687b ldr r3, [r7, #4]
80157de: 689a ldr r2, [r3, #8]
80157e0: 687b ldr r3, [r7, #4]
80157e2: 691b ldr r3, [r3, #16]
80157e4: 431a orrs r2, r3
80157e6: 687b ldr r3, [r7, #4]
80157e8: 695b ldr r3, [r3, #20]
80157ea: 431a orrs r2, r3
80157ec: 687b ldr r3, [r7, #4]
80157ee: 69db ldr r3, [r3, #28]
80157f0: 4313 orrs r3, r2
80157f2: 617b str r3, [r7, #20]
MODIFY_REG(huart->Instance->CR1, USART_CR1_FIELDS, tmpreg);
80157f4: 687b ldr r3, [r7, #4]
80157f6: 681a ldr r2, [r3, #0]
80157f8: 687b ldr r3, [r7, #4]
80157fa: 681b ldr r3, [r3, #0]
80157fc: 6819 ldr r1, [r3, #0]
80157fe: 4bb3 ldr r3, [pc, #716] ; (8015acc <UART_SetConfig+0x2fc>)
8015800: 400b ands r3, r1
8015802: 6979 ldr r1, [r7, #20]
8015804: 430b orrs r3, r1
8015806: 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);
8015808: 687b ldr r3, [r7, #4]
801580a: 681b ldr r3, [r3, #0]
801580c: 687a ldr r2, [r7, #4]
801580e: 6812 ldr r2, [r2, #0]
8015810: 6852 ldr r2, [r2, #4]
8015812: f422 5140 bic.w r1, r2, #12288 ; 0x3000
8015816: 687a ldr r2, [r7, #4]
8015818: 68d2 ldr r2, [r2, #12]
801581a: 430a orrs r2, r1
801581c: 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;
801581e: 687b ldr r3, [r7, #4]
8015820: 699b ldr r3, [r3, #24]
8015822: 617b str r3, [r7, #20]
tmpreg |= huart->Init.OneBitSampling;
8015824: 687b ldr r3, [r7, #4]
8015826: 6a1b ldr r3, [r3, #32]
8015828: 697a ldr r2, [r7, #20]
801582a: 4313 orrs r3, r2
801582c: 617b str r3, [r7, #20]
MODIFY_REG(huart->Instance->CR3, USART_CR3_FIELDS, tmpreg);
801582e: 687b ldr r3, [r7, #4]
8015830: 681b ldr r3, [r3, #0]
8015832: 687a ldr r2, [r7, #4]
8015834: 6812 ldr r2, [r2, #0]
8015836: 6892 ldr r2, [r2, #8]
8015838: f422 6130 bic.w r1, r2, #2816 ; 0xb00
801583c: 697a ldr r2, [r7, #20]
801583e: 430a orrs r2, r1
8015840: 609a str r2, [r3, #8]
/*-------------------------- USART BRR Configuration -----------------------*/
UART_GETCLOCKSOURCE(huart, clocksource);
8015842: 687b ldr r3, [r7, #4]
8015844: 681b ldr r3, [r3, #0]
8015846: 4aa2 ldr r2, [pc, #648] ; (8015ad0 <UART_SetConfig+0x300>)
8015848: 4293 cmp r3, r2
801584a: d121 bne.n 8015890 <UART_SetConfig+0xc0>
801584c: 4ba1 ldr r3, [pc, #644] ; (8015ad4 <UART_SetConfig+0x304>)
801584e: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8015852: f003 0303 and.w r3, r3, #3
8015856: 2b03 cmp r3, #3
8015858: d816 bhi.n 8015888 <UART_SetConfig+0xb8>
801585a: a201 add r2, pc, #4 ; (adr r2, 8015860 <UART_SetConfig+0x90>)
801585c: f852 f023 ldr.w pc, [r2, r3, lsl #2]
8015860: 08015871 .word 0x08015871
8015864: 0801587d .word 0x0801587d
8015868: 08015877 .word 0x08015877
801586c: 08015883 .word 0x08015883
8015870: 2301 movs r3, #1
8015872: 77fb strb r3, [r7, #31]
8015874: e150 b.n 8015b18 <UART_SetConfig+0x348>
8015876: 2302 movs r3, #2
8015878: 77fb strb r3, [r7, #31]
801587a: e14d b.n 8015b18 <UART_SetConfig+0x348>
801587c: 2304 movs r3, #4
801587e: 77fb strb r3, [r7, #31]
8015880: e14a b.n 8015b18 <UART_SetConfig+0x348>
8015882: 2308 movs r3, #8
8015884: 77fb strb r3, [r7, #31]
8015886: e147 b.n 8015b18 <UART_SetConfig+0x348>
8015888: 2310 movs r3, #16
801588a: 77fb strb r3, [r7, #31]
801588c: bf00 nop
801588e: e143 b.n 8015b18 <UART_SetConfig+0x348>
8015890: 687b ldr r3, [r7, #4]
8015892: 681b ldr r3, [r3, #0]
8015894: 4a90 ldr r2, [pc, #576] ; (8015ad8 <UART_SetConfig+0x308>)
8015896: 4293 cmp r3, r2
8015898: d134 bne.n 8015904 <UART_SetConfig+0x134>
801589a: 4b8e ldr r3, [pc, #568] ; (8015ad4 <UART_SetConfig+0x304>)
801589c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80158a0: f003 030c and.w r3, r3, #12
80158a4: 2b0c cmp r3, #12
80158a6: d829 bhi.n 80158fc <UART_SetConfig+0x12c>
80158a8: a201 add r2, pc, #4 ; (adr r2, 80158b0 <UART_SetConfig+0xe0>)
80158aa: f852 f023 ldr.w pc, [r2, r3, lsl #2]
80158ae: bf00 nop
80158b0: 080158e5 .word 0x080158e5
80158b4: 080158fd .word 0x080158fd
80158b8: 080158fd .word 0x080158fd
80158bc: 080158fd .word 0x080158fd
80158c0: 080158f1 .word 0x080158f1
80158c4: 080158fd .word 0x080158fd
80158c8: 080158fd .word 0x080158fd
80158cc: 080158fd .word 0x080158fd
80158d0: 080158eb .word 0x080158eb
80158d4: 080158fd .word 0x080158fd
80158d8: 080158fd .word 0x080158fd
80158dc: 080158fd .word 0x080158fd
80158e0: 080158f7 .word 0x080158f7
80158e4: 2300 movs r3, #0
80158e6: 77fb strb r3, [r7, #31]
80158e8: e116 b.n 8015b18 <UART_SetConfig+0x348>
80158ea: 2302 movs r3, #2
80158ec: 77fb strb r3, [r7, #31]
80158ee: e113 b.n 8015b18 <UART_SetConfig+0x348>
80158f0: 2304 movs r3, #4
80158f2: 77fb strb r3, [r7, #31]
80158f4: e110 b.n 8015b18 <UART_SetConfig+0x348>
80158f6: 2308 movs r3, #8
80158f8: 77fb strb r3, [r7, #31]
80158fa: e10d b.n 8015b18 <UART_SetConfig+0x348>
80158fc: 2310 movs r3, #16
80158fe: 77fb strb r3, [r7, #31]
8015900: bf00 nop
8015902: e109 b.n 8015b18 <UART_SetConfig+0x348>
8015904: 687b ldr r3, [r7, #4]
8015906: 681b ldr r3, [r3, #0]
8015908: 4a74 ldr r2, [pc, #464] ; (8015adc <UART_SetConfig+0x30c>)
801590a: 4293 cmp r3, r2
801590c: d120 bne.n 8015950 <UART_SetConfig+0x180>
801590e: 4b71 ldr r3, [pc, #452] ; (8015ad4 <UART_SetConfig+0x304>)
8015910: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8015914: f003 0330 and.w r3, r3, #48 ; 0x30
8015918: 2b10 cmp r3, #16
801591a: d00f beq.n 801593c <UART_SetConfig+0x16c>
801591c: 2b10 cmp r3, #16
801591e: d802 bhi.n 8015926 <UART_SetConfig+0x156>
8015920: 2b00 cmp r3, #0
8015922: d005 beq.n 8015930 <UART_SetConfig+0x160>
8015924: e010 b.n 8015948 <UART_SetConfig+0x178>
8015926: 2b20 cmp r3, #32
8015928: d005 beq.n 8015936 <UART_SetConfig+0x166>
801592a: 2b30 cmp r3, #48 ; 0x30
801592c: d009 beq.n 8015942 <UART_SetConfig+0x172>
801592e: e00b b.n 8015948 <UART_SetConfig+0x178>
8015930: 2300 movs r3, #0
8015932: 77fb strb r3, [r7, #31]
8015934: e0f0 b.n 8015b18 <UART_SetConfig+0x348>
8015936: 2302 movs r3, #2
8015938: 77fb strb r3, [r7, #31]
801593a: e0ed b.n 8015b18 <UART_SetConfig+0x348>
801593c: 2304 movs r3, #4
801593e: 77fb strb r3, [r7, #31]
8015940: e0ea b.n 8015b18 <UART_SetConfig+0x348>
8015942: 2308 movs r3, #8
8015944: 77fb strb r3, [r7, #31]
8015946: e0e7 b.n 8015b18 <UART_SetConfig+0x348>
8015948: 2310 movs r3, #16
801594a: 77fb strb r3, [r7, #31]
801594c: bf00 nop
801594e: e0e3 b.n 8015b18 <UART_SetConfig+0x348>
8015950: 687b ldr r3, [r7, #4]
8015952: 681b ldr r3, [r3, #0]
8015954: 4a62 ldr r2, [pc, #392] ; (8015ae0 <UART_SetConfig+0x310>)
8015956: 4293 cmp r3, r2
8015958: d120 bne.n 801599c <UART_SetConfig+0x1cc>
801595a: 4b5e ldr r3, [pc, #376] ; (8015ad4 <UART_SetConfig+0x304>)
801595c: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8015960: f003 03c0 and.w r3, r3, #192 ; 0xc0
8015964: 2b40 cmp r3, #64 ; 0x40
8015966: d00f beq.n 8015988 <UART_SetConfig+0x1b8>
8015968: 2b40 cmp r3, #64 ; 0x40
801596a: d802 bhi.n 8015972 <UART_SetConfig+0x1a2>
801596c: 2b00 cmp r3, #0
801596e: d005 beq.n 801597c <UART_SetConfig+0x1ac>
8015970: e010 b.n 8015994 <UART_SetConfig+0x1c4>
8015972: 2b80 cmp r3, #128 ; 0x80
8015974: d005 beq.n 8015982 <UART_SetConfig+0x1b2>
8015976: 2bc0 cmp r3, #192 ; 0xc0
8015978: d009 beq.n 801598e <UART_SetConfig+0x1be>
801597a: e00b b.n 8015994 <UART_SetConfig+0x1c4>
801597c: 2300 movs r3, #0
801597e: 77fb strb r3, [r7, #31]
8015980: e0ca b.n 8015b18 <UART_SetConfig+0x348>
8015982: 2302 movs r3, #2
8015984: 77fb strb r3, [r7, #31]
8015986: e0c7 b.n 8015b18 <UART_SetConfig+0x348>
8015988: 2304 movs r3, #4
801598a: 77fb strb r3, [r7, #31]
801598c: e0c4 b.n 8015b18 <UART_SetConfig+0x348>
801598e: 2308 movs r3, #8
8015990: 77fb strb r3, [r7, #31]
8015992: e0c1 b.n 8015b18 <UART_SetConfig+0x348>
8015994: 2310 movs r3, #16
8015996: 77fb strb r3, [r7, #31]
8015998: bf00 nop
801599a: e0bd b.n 8015b18 <UART_SetConfig+0x348>
801599c: 687b ldr r3, [r7, #4]
801599e: 681b ldr r3, [r3, #0]
80159a0: 4a50 ldr r2, [pc, #320] ; (8015ae4 <UART_SetConfig+0x314>)
80159a2: 4293 cmp r3, r2
80159a4: d124 bne.n 80159f0 <UART_SetConfig+0x220>
80159a6: 4b4b ldr r3, [pc, #300] ; (8015ad4 <UART_SetConfig+0x304>)
80159a8: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
80159ac: f403 7340 and.w r3, r3, #768 ; 0x300
80159b0: f5b3 7f80 cmp.w r3, #256 ; 0x100
80159b4: d012 beq.n 80159dc <UART_SetConfig+0x20c>
80159b6: f5b3 7f80 cmp.w r3, #256 ; 0x100
80159ba: d802 bhi.n 80159c2 <UART_SetConfig+0x1f2>
80159bc: 2b00 cmp r3, #0
80159be: d007 beq.n 80159d0 <UART_SetConfig+0x200>
80159c0: e012 b.n 80159e8 <UART_SetConfig+0x218>
80159c2: f5b3 7f00 cmp.w r3, #512 ; 0x200
80159c6: d006 beq.n 80159d6 <UART_SetConfig+0x206>
80159c8: f5b3 7f40 cmp.w r3, #768 ; 0x300
80159cc: d009 beq.n 80159e2 <UART_SetConfig+0x212>
80159ce: e00b b.n 80159e8 <UART_SetConfig+0x218>
80159d0: 2300 movs r3, #0
80159d2: 77fb strb r3, [r7, #31]
80159d4: e0a0 b.n 8015b18 <UART_SetConfig+0x348>
80159d6: 2302 movs r3, #2
80159d8: 77fb strb r3, [r7, #31]
80159da: e09d b.n 8015b18 <UART_SetConfig+0x348>
80159dc: 2304 movs r3, #4
80159de: 77fb strb r3, [r7, #31]
80159e0: e09a b.n 8015b18 <UART_SetConfig+0x348>
80159e2: 2308 movs r3, #8
80159e4: 77fb strb r3, [r7, #31]
80159e6: e097 b.n 8015b18 <UART_SetConfig+0x348>
80159e8: 2310 movs r3, #16
80159ea: 77fb strb r3, [r7, #31]
80159ec: bf00 nop
80159ee: e093 b.n 8015b18 <UART_SetConfig+0x348>
80159f0: 687b ldr r3, [r7, #4]
80159f2: 681b ldr r3, [r3, #0]
80159f4: 4a3c ldr r2, [pc, #240] ; (8015ae8 <UART_SetConfig+0x318>)
80159f6: 4293 cmp r3, r2
80159f8: d124 bne.n 8015a44 <UART_SetConfig+0x274>
80159fa: 4b36 ldr r3, [pc, #216] ; (8015ad4 <UART_SetConfig+0x304>)
80159fc: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8015a00: f403 6340 and.w r3, r3, #3072 ; 0xc00
8015a04: f5b3 6f80 cmp.w r3, #1024 ; 0x400
8015a08: d012 beq.n 8015a30 <UART_SetConfig+0x260>
8015a0a: f5b3 6f80 cmp.w r3, #1024 ; 0x400
8015a0e: d802 bhi.n 8015a16 <UART_SetConfig+0x246>
8015a10: 2b00 cmp r3, #0
8015a12: d007 beq.n 8015a24 <UART_SetConfig+0x254>
8015a14: e012 b.n 8015a3c <UART_SetConfig+0x26c>
8015a16: f5b3 6f00 cmp.w r3, #2048 ; 0x800
8015a1a: d006 beq.n 8015a2a <UART_SetConfig+0x25a>
8015a1c: f5b3 6f40 cmp.w r3, #3072 ; 0xc00
8015a20: d009 beq.n 8015a36 <UART_SetConfig+0x266>
8015a22: e00b b.n 8015a3c <UART_SetConfig+0x26c>
8015a24: 2301 movs r3, #1
8015a26: 77fb strb r3, [r7, #31]
8015a28: e076 b.n 8015b18 <UART_SetConfig+0x348>
8015a2a: 2302 movs r3, #2
8015a2c: 77fb strb r3, [r7, #31]
8015a2e: e073 b.n 8015b18 <UART_SetConfig+0x348>
8015a30: 2304 movs r3, #4
8015a32: 77fb strb r3, [r7, #31]
8015a34: e070 b.n 8015b18 <UART_SetConfig+0x348>
8015a36: 2308 movs r3, #8
8015a38: 77fb strb r3, [r7, #31]
8015a3a: e06d b.n 8015b18 <UART_SetConfig+0x348>
8015a3c: 2310 movs r3, #16
8015a3e: 77fb strb r3, [r7, #31]
8015a40: bf00 nop
8015a42: e069 b.n 8015b18 <UART_SetConfig+0x348>
8015a44: 687b ldr r3, [r7, #4]
8015a46: 681b ldr r3, [r3, #0]
8015a48: 4a28 ldr r2, [pc, #160] ; (8015aec <UART_SetConfig+0x31c>)
8015a4a: 4293 cmp r3, r2
8015a4c: d124 bne.n 8015a98 <UART_SetConfig+0x2c8>
8015a4e: 4b21 ldr r3, [pc, #132] ; (8015ad4 <UART_SetConfig+0x304>)
8015a50: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8015a54: f403 5340 and.w r3, r3, #12288 ; 0x3000
8015a58: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
8015a5c: d012 beq.n 8015a84 <UART_SetConfig+0x2b4>
8015a5e: f5b3 5f80 cmp.w r3, #4096 ; 0x1000
8015a62: d802 bhi.n 8015a6a <UART_SetConfig+0x29a>
8015a64: 2b00 cmp r3, #0
8015a66: d007 beq.n 8015a78 <UART_SetConfig+0x2a8>
8015a68: e012 b.n 8015a90 <UART_SetConfig+0x2c0>
8015a6a: f5b3 5f00 cmp.w r3, #8192 ; 0x2000
8015a6e: d006 beq.n 8015a7e <UART_SetConfig+0x2ae>
8015a70: f5b3 5f40 cmp.w r3, #12288 ; 0x3000
8015a74: d009 beq.n 8015a8a <UART_SetConfig+0x2ba>
8015a76: e00b b.n 8015a90 <UART_SetConfig+0x2c0>
8015a78: 2300 movs r3, #0
8015a7a: 77fb strb r3, [r7, #31]
8015a7c: e04c b.n 8015b18 <UART_SetConfig+0x348>
8015a7e: 2302 movs r3, #2
8015a80: 77fb strb r3, [r7, #31]
8015a82: e049 b.n 8015b18 <UART_SetConfig+0x348>
8015a84: 2304 movs r3, #4
8015a86: 77fb strb r3, [r7, #31]
8015a88: e046 b.n 8015b18 <UART_SetConfig+0x348>
8015a8a: 2308 movs r3, #8
8015a8c: 77fb strb r3, [r7, #31]
8015a8e: e043 b.n 8015b18 <UART_SetConfig+0x348>
8015a90: 2310 movs r3, #16
8015a92: 77fb strb r3, [r7, #31]
8015a94: bf00 nop
8015a96: e03f b.n 8015b18 <UART_SetConfig+0x348>
8015a98: 687b ldr r3, [r7, #4]
8015a9a: 681b ldr r3, [r3, #0]
8015a9c: 4a14 ldr r2, [pc, #80] ; (8015af0 <UART_SetConfig+0x320>)
8015a9e: 4293 cmp r3, r2
8015aa0: d138 bne.n 8015b14 <UART_SetConfig+0x344>
8015aa2: 4b0c ldr r3, [pc, #48] ; (8015ad4 <UART_SetConfig+0x304>)
8015aa4: f8d3 3090 ldr.w r3, [r3, #144] ; 0x90
8015aa8: f403 4340 and.w r3, r3, #49152 ; 0xc000
8015aac: f5b3 4f80 cmp.w r3, #16384 ; 0x4000
8015ab0: d026 beq.n 8015b00 <UART_SetConfig+0x330>
8015ab2: f5b3 4f80 cmp.w r3, #16384 ; 0x4000
8015ab6: d802 bhi.n 8015abe <UART_SetConfig+0x2ee>
8015ab8: 2b00 cmp r3, #0
8015aba: d01b beq.n 8015af4 <UART_SetConfig+0x324>
8015abc: e026 b.n 8015b0c <UART_SetConfig+0x33c>
8015abe: f5b3 4f00 cmp.w r3, #32768 ; 0x8000
8015ac2: d01a beq.n 8015afa <UART_SetConfig+0x32a>
8015ac4: f5b3 4f40 cmp.w r3, #49152 ; 0xc000
8015ac8: d01d beq.n 8015b06 <UART_SetConfig+0x336>
8015aca: e01f b.n 8015b0c <UART_SetConfig+0x33c>
8015acc: efff69f3 .word 0xefff69f3
8015ad0: 40011000 .word 0x40011000
8015ad4: 40023800 .word 0x40023800
8015ad8: 40004400 .word 0x40004400
8015adc: 40004800 .word 0x40004800
8015ae0: 40004c00 .word 0x40004c00
8015ae4: 40005000 .word 0x40005000
8015ae8: 40011400 .word 0x40011400
8015aec: 40007800 .word 0x40007800
8015af0: 40007c00 .word 0x40007c00
8015af4: 2300 movs r3, #0
8015af6: 77fb strb r3, [r7, #31]
8015af8: e00e b.n 8015b18 <UART_SetConfig+0x348>
8015afa: 2302 movs r3, #2
8015afc: 77fb strb r3, [r7, #31]
8015afe: e00b b.n 8015b18 <UART_SetConfig+0x348>
8015b00: 2304 movs r3, #4
8015b02: 77fb strb r3, [r7, #31]
8015b04: e008 b.n 8015b18 <UART_SetConfig+0x348>
8015b06: 2308 movs r3, #8
8015b08: 77fb strb r3, [r7, #31]
8015b0a: e005 b.n 8015b18 <UART_SetConfig+0x348>
8015b0c: 2310 movs r3, #16
8015b0e: 77fb strb r3, [r7, #31]
8015b10: bf00 nop
8015b12: e001 b.n 8015b18 <UART_SetConfig+0x348>
8015b14: 2310 movs r3, #16
8015b16: 77fb strb r3, [r7, #31]
if (huart->Init.OverSampling == UART_OVERSAMPLING_8)
8015b18: 687b ldr r3, [r7, #4]
8015b1a: 69db ldr r3, [r3, #28]
8015b1c: f5b3 4f00 cmp.w r3, #32768 ; 0x8000
8015b20: d15b bne.n 8015bda <UART_SetConfig+0x40a>
{
switch (clocksource)
8015b22: 7ffb ldrb r3, [r7, #31]
8015b24: 2b08 cmp r3, #8
8015b26: d828 bhi.n 8015b7a <UART_SetConfig+0x3aa>
8015b28: a201 add r2, pc, #4 ; (adr r2, 8015b30 <UART_SetConfig+0x360>)
8015b2a: f852 f023 ldr.w pc, [r2, r3, lsl #2]
8015b2e: bf00 nop
8015b30: 08015b55 .word 0x08015b55
8015b34: 08015b5d .word 0x08015b5d
8015b38: 08015b65 .word 0x08015b65
8015b3c: 08015b7b .word 0x08015b7b
8015b40: 08015b6b .word 0x08015b6b
8015b44: 08015b7b .word 0x08015b7b
8015b48: 08015b7b .word 0x08015b7b
8015b4c: 08015b7b .word 0x08015b7b
8015b50: 08015b73 .word 0x08015b73
{
case UART_CLOCKSOURCE_PCLK1:
pclk = HAL_RCC_GetPCLK1Freq();
8015b54: f7fe f8d8 bl 8013d08 <HAL_RCC_GetPCLK1Freq>
8015b58: 61b8 str r0, [r7, #24]
break;
8015b5a: e013 b.n 8015b84 <UART_SetConfig+0x3b4>
case UART_CLOCKSOURCE_PCLK2:
pclk = HAL_RCC_GetPCLK2Freq();
8015b5c: f7fe f8e8 bl 8013d30 <HAL_RCC_GetPCLK2Freq>
8015b60: 61b8 str r0, [r7, #24]
break;
8015b62: e00f b.n 8015b84 <UART_SetConfig+0x3b4>
case UART_CLOCKSOURCE_HSI:
pclk = (uint32_t) HSI_VALUE;
8015b64: 4b49 ldr r3, [pc, #292] ; (8015c8c <UART_SetConfig+0x4bc>)
8015b66: 61bb str r3, [r7, #24]
break;
8015b68: e00c b.n 8015b84 <UART_SetConfig+0x3b4>
case UART_CLOCKSOURCE_SYSCLK:
pclk = HAL_RCC_GetSysClockFreq();
8015b6a: f7fe f80b bl 8013b84 <HAL_RCC_GetSysClockFreq>
8015b6e: 61b8 str r0, [r7, #24]
break;
8015b70: e008 b.n 8015b84 <UART_SetConfig+0x3b4>
case UART_CLOCKSOURCE_LSE:
pclk = (uint32_t) LSE_VALUE;
8015b72: f44f 4300 mov.w r3, #32768 ; 0x8000
8015b76: 61bb str r3, [r7, #24]
break;
8015b78: e004 b.n 8015b84 <UART_SetConfig+0x3b4>
default:
pclk = 0U;
8015b7a: 2300 movs r3, #0
8015b7c: 61bb str r3, [r7, #24]
ret = HAL_ERROR;
8015b7e: 2301 movs r3, #1
8015b80: 77bb strb r3, [r7, #30]
break;
8015b82: bf00 nop
}
/* USARTDIV must be greater than or equal to 0d16 */
if (pclk != 0U)
8015b84: 69bb ldr r3, [r7, #24]
8015b86: 2b00 cmp r3, #0
8015b88: d074 beq.n 8015c74 <UART_SetConfig+0x4a4>
{
usartdiv = (uint32_t)(UART_DIV_SAMPLING8(pclk, huart->Init.BaudRate));
8015b8a: 69bb ldr r3, [r7, #24]
8015b8c: 005a lsls r2, r3, #1
8015b8e: 687b ldr r3, [r7, #4]
8015b90: 685b ldr r3, [r3, #4]
8015b92: 085b lsrs r3, r3, #1
8015b94: 441a add r2, r3
8015b96: 687b ldr r3, [r7, #4]
8015b98: 685b ldr r3, [r3, #4]
8015b9a: fbb2 f3f3 udiv r3, r2, r3
8015b9e: 613b str r3, [r7, #16]
if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX))
8015ba0: 693b ldr r3, [r7, #16]
8015ba2: 2b0f cmp r3, #15
8015ba4: d916 bls.n 8015bd4 <UART_SetConfig+0x404>
8015ba6: 693b ldr r3, [r7, #16]
8015ba8: f5b3 3f80 cmp.w r3, #65536 ; 0x10000
8015bac: d212 bcs.n 8015bd4 <UART_SetConfig+0x404>
{
brrtemp = (uint16_t)(usartdiv & 0xFFF0U);
8015bae: 693b ldr r3, [r7, #16]
8015bb0: b29b uxth r3, r3
8015bb2: f023 030f bic.w r3, r3, #15
8015bb6: 81fb strh r3, [r7, #14]
brrtemp |= (uint16_t)((usartdiv & (uint16_t)0x000FU) >> 1U);
8015bb8: 693b ldr r3, [r7, #16]
8015bba: 085b lsrs r3, r3, #1
8015bbc: b29b uxth r3, r3
8015bbe: f003 0307 and.w r3, r3, #7
8015bc2: b29a uxth r2, r3
8015bc4: 89fb ldrh r3, [r7, #14]
8015bc6: 4313 orrs r3, r2
8015bc8: 81fb strh r3, [r7, #14]
huart->Instance->BRR = brrtemp;
8015bca: 687b ldr r3, [r7, #4]
8015bcc: 681b ldr r3, [r3, #0]
8015bce: 89fa ldrh r2, [r7, #14]
8015bd0: 60da str r2, [r3, #12]
8015bd2: e04f b.n 8015c74 <UART_SetConfig+0x4a4>
}
else
{
ret = HAL_ERROR;
8015bd4: 2301 movs r3, #1
8015bd6: 77bb strb r3, [r7, #30]
8015bd8: e04c b.n 8015c74 <UART_SetConfig+0x4a4>
}
}
}
else
{
switch (clocksource)
8015bda: 7ffb ldrb r3, [r7, #31]
8015bdc: 2b08 cmp r3, #8
8015bde: d828 bhi.n 8015c32 <UART_SetConfig+0x462>
8015be0: a201 add r2, pc, #4 ; (adr r2, 8015be8 <UART_SetConfig+0x418>)
8015be2: f852 f023 ldr.w pc, [r2, r3, lsl #2]
8015be6: bf00 nop
8015be8: 08015c0d .word 0x08015c0d
8015bec: 08015c15 .word 0x08015c15
8015bf0: 08015c1d .word 0x08015c1d
8015bf4: 08015c33 .word 0x08015c33
8015bf8: 08015c23 .word 0x08015c23
8015bfc: 08015c33 .word 0x08015c33
8015c00: 08015c33 .word 0x08015c33
8015c04: 08015c33 .word 0x08015c33
8015c08: 08015c2b .word 0x08015c2b
{
case UART_CLOCKSOURCE_PCLK1:
pclk = HAL_RCC_GetPCLK1Freq();
8015c0c: f7fe f87c bl 8013d08 <HAL_RCC_GetPCLK1Freq>
8015c10: 61b8 str r0, [r7, #24]
break;
8015c12: e013 b.n 8015c3c <UART_SetConfig+0x46c>
case UART_CLOCKSOURCE_PCLK2:
pclk = HAL_RCC_GetPCLK2Freq();
8015c14: f7fe f88c bl 8013d30 <HAL_RCC_GetPCLK2Freq>
8015c18: 61b8 str r0, [r7, #24]
break;
8015c1a: e00f b.n 8015c3c <UART_SetConfig+0x46c>
case UART_CLOCKSOURCE_HSI:
pclk = (uint32_t) HSI_VALUE;
8015c1c: 4b1b ldr r3, [pc, #108] ; (8015c8c <UART_SetConfig+0x4bc>)
8015c1e: 61bb str r3, [r7, #24]
break;
8015c20: e00c b.n 8015c3c <UART_SetConfig+0x46c>
case UART_CLOCKSOURCE_SYSCLK:
pclk = HAL_RCC_GetSysClockFreq();
8015c22: f7fd ffaf bl 8013b84 <HAL_RCC_GetSysClockFreq>
8015c26: 61b8 str r0, [r7, #24]
break;
8015c28: e008 b.n 8015c3c <UART_SetConfig+0x46c>
case UART_CLOCKSOURCE_LSE:
pclk = (uint32_t) LSE_VALUE;
8015c2a: f44f 4300 mov.w r3, #32768 ; 0x8000
8015c2e: 61bb str r3, [r7, #24]
break;
8015c30: e004 b.n 8015c3c <UART_SetConfig+0x46c>
default:
pclk = 0U;
8015c32: 2300 movs r3, #0
8015c34: 61bb str r3, [r7, #24]
ret = HAL_ERROR;
8015c36: 2301 movs r3, #1
8015c38: 77bb strb r3, [r7, #30]
break;
8015c3a: bf00 nop
}
if (pclk != 0U)
8015c3c: 69bb ldr r3, [r7, #24]
8015c3e: 2b00 cmp r3, #0
8015c40: d018 beq.n 8015c74 <UART_SetConfig+0x4a4>
{
/* USARTDIV must be greater than or equal to 0d16 */
usartdiv = (uint32_t)(UART_DIV_SAMPLING16(pclk, huart->Init.BaudRate));
8015c42: 687b ldr r3, [r7, #4]
8015c44: 685b ldr r3, [r3, #4]
8015c46: 085a lsrs r2, r3, #1
8015c48: 69bb ldr r3, [r7, #24]
8015c4a: 441a add r2, r3
8015c4c: 687b ldr r3, [r7, #4]
8015c4e: 685b ldr r3, [r3, #4]
8015c50: fbb2 f3f3 udiv r3, r2, r3
8015c54: 613b str r3, [r7, #16]
if ((usartdiv >= UART_BRR_MIN) && (usartdiv <= UART_BRR_MAX))
8015c56: 693b ldr r3, [r7, #16]
8015c58: 2b0f cmp r3, #15
8015c5a: d909 bls.n 8015c70 <UART_SetConfig+0x4a0>
8015c5c: 693b ldr r3, [r7, #16]
8015c5e: f5b3 3f80 cmp.w r3, #65536 ; 0x10000
8015c62: d205 bcs.n 8015c70 <UART_SetConfig+0x4a0>
{
huart->Instance->BRR = (uint16_t)usartdiv;
8015c64: 687b ldr r3, [r7, #4]
8015c66: 681b ldr r3, [r3, #0]
8015c68: 693a ldr r2, [r7, #16]
8015c6a: b292 uxth r2, r2
8015c6c: 60da str r2, [r3, #12]
8015c6e: e001 b.n 8015c74 <UART_SetConfig+0x4a4>
}
else
{
ret = HAL_ERROR;
8015c70: 2301 movs r3, #1
8015c72: 77bb strb r3, [r7, #30]
}
}
/* Clear ISR function pointers */
huart->RxISR = NULL;
8015c74: 687b ldr r3, [r7, #4]
8015c76: 2200 movs r2, #0
8015c78: 665a str r2, [r3, #100] ; 0x64
huart->TxISR = NULL;
8015c7a: 687b ldr r3, [r7, #4]
8015c7c: 2200 movs r2, #0
8015c7e: 669a str r2, [r3, #104] ; 0x68
return ret;
8015c80: 7fbb ldrb r3, [r7, #30]
}
8015c82: 4618 mov r0, r3
8015c84: 3720 adds r7, #32
8015c86: 46bd mov sp, r7
8015c88: bd80 pop {r7, pc}
8015c8a: bf00 nop
8015c8c: 00f42400 .word 0x00f42400
08015c90 <UART_AdvFeatureConfig>:
* @brief Configure the UART peripheral advanced features.
* @param huart UART handle.
* @retval None
*/
void UART_AdvFeatureConfig(UART_HandleTypeDef *huart)
{
8015c90: b480 push {r7}
8015c92: b083 sub sp, #12
8015c94: af00 add r7, sp, #0
8015c96: 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))
8015c98: 687b ldr r3, [r7, #4]
8015c9a: 6a5b ldr r3, [r3, #36] ; 0x24
8015c9c: f003 0301 and.w r3, r3, #1
8015ca0: 2b00 cmp r3, #0
8015ca2: d00a beq.n 8015cba <UART_AdvFeatureConfig+0x2a>
{
assert_param(IS_UART_ADVFEATURE_TXINV(huart->AdvancedInit.TxPinLevelInvert));
MODIFY_REG(huart->Instance->CR2, USART_CR2_TXINV, huart->AdvancedInit.TxPinLevelInvert);
8015ca4: 687b ldr r3, [r7, #4]
8015ca6: 681b ldr r3, [r3, #0]
8015ca8: 687a ldr r2, [r7, #4]
8015caa: 6812 ldr r2, [r2, #0]
8015cac: 6852 ldr r2, [r2, #4]
8015cae: f422 3100 bic.w r1, r2, #131072 ; 0x20000
8015cb2: 687a ldr r2, [r7, #4]
8015cb4: 6a92 ldr r2, [r2, #40] ; 0x28
8015cb6: 430a orrs r2, r1
8015cb8: 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))
8015cba: 687b ldr r3, [r7, #4]
8015cbc: 6a5b ldr r3, [r3, #36] ; 0x24
8015cbe: f003 0302 and.w r3, r3, #2
8015cc2: 2b00 cmp r3, #0
8015cc4: d00a beq.n 8015cdc <UART_AdvFeatureConfig+0x4c>
{
assert_param(IS_UART_ADVFEATURE_RXINV(huart->AdvancedInit.RxPinLevelInvert));
MODIFY_REG(huart->Instance->CR2, USART_CR2_RXINV, huart->AdvancedInit.RxPinLevelInvert);
8015cc6: 687b ldr r3, [r7, #4]
8015cc8: 681b ldr r3, [r3, #0]
8015cca: 687a ldr r2, [r7, #4]
8015ccc: 6812 ldr r2, [r2, #0]
8015cce: 6852 ldr r2, [r2, #4]
8015cd0: f422 3180 bic.w r1, r2, #65536 ; 0x10000
8015cd4: 687a ldr r2, [r7, #4]
8015cd6: 6ad2 ldr r2, [r2, #44] ; 0x2c
8015cd8: 430a orrs r2, r1
8015cda: 605a str r2, [r3, #4]
}
/* if required, configure data inversion */
if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_DATAINVERT_INIT))
8015cdc: 687b ldr r3, [r7, #4]
8015cde: 6a5b ldr r3, [r3, #36] ; 0x24
8015ce0: f003 0304 and.w r3, r3, #4
8015ce4: 2b00 cmp r3, #0
8015ce6: d00a beq.n 8015cfe <UART_AdvFeatureConfig+0x6e>
{
assert_param(IS_UART_ADVFEATURE_DATAINV(huart->AdvancedInit.DataInvert));
MODIFY_REG(huart->Instance->CR2, USART_CR2_DATAINV, huart->AdvancedInit.DataInvert);
8015ce8: 687b ldr r3, [r7, #4]
8015cea: 681b ldr r3, [r3, #0]
8015cec: 687a ldr r2, [r7, #4]
8015cee: 6812 ldr r2, [r2, #0]
8015cf0: 6852 ldr r2, [r2, #4]
8015cf2: f422 2180 bic.w r1, r2, #262144 ; 0x40000
8015cf6: 687a ldr r2, [r7, #4]
8015cf8: 6b12 ldr r2, [r2, #48] ; 0x30
8015cfa: 430a orrs r2, r1
8015cfc: 605a str r2, [r3, #4]
}
/* if required, configure RX/TX pins swap */
if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_SWAP_INIT))
8015cfe: 687b ldr r3, [r7, #4]
8015d00: 6a5b ldr r3, [r3, #36] ; 0x24
8015d02: f003 0308 and.w r3, r3, #8
8015d06: 2b00 cmp r3, #0
8015d08: d00a beq.n 8015d20 <UART_AdvFeatureConfig+0x90>
{
assert_param(IS_UART_ADVFEATURE_SWAP(huart->AdvancedInit.Swap));
MODIFY_REG(huart->Instance->CR2, USART_CR2_SWAP, huart->AdvancedInit.Swap);
8015d0a: 687b ldr r3, [r7, #4]
8015d0c: 681b ldr r3, [r3, #0]
8015d0e: 687a ldr r2, [r7, #4]
8015d10: 6812 ldr r2, [r2, #0]
8015d12: 6852 ldr r2, [r2, #4]
8015d14: f422 4100 bic.w r1, r2, #32768 ; 0x8000
8015d18: 687a ldr r2, [r7, #4]
8015d1a: 6b52 ldr r2, [r2, #52] ; 0x34
8015d1c: 430a orrs r2, r1
8015d1e: 605a str r2, [r3, #4]
}
/* if required, configure RX overrun detection disabling */
if (HAL_IS_BIT_SET(huart->AdvancedInit.AdvFeatureInit, UART_ADVFEATURE_RXOVERRUNDISABLE_INIT))
8015d20: 687b ldr r3, [r7, #4]
8015d22: 6a5b ldr r3, [r3, #36] ; 0x24
8015d24: f003 0310 and.w r3, r3, #16
8015d28: 2b00 cmp r3, #0
8015d2a: d00a beq.n 8015d42 <UART_AdvFeatureConfig+0xb2>
{
assert_param(IS_UART_OVERRUN(huart->AdvancedInit.OverrunDisable));
MODIFY_REG(huart->Instance->CR3, USART_CR3_OVRDIS, huart->AdvancedInit.OverrunDisable);
8015d2c: 687b ldr r3, [r7, #4]
8015d2e: 681b ldr r3, [r3, #0]
8015d30: 687a ldr r2, [r7, #4]
8015d32: 6812 ldr r2, [r2, #0]
8015d34: 6892 ldr r2, [r2, #8]
8015d36: f422 5180 bic.w r1, r2, #4096 ; 0x1000
8015d3a: 687a ldr r2, [r7, #4]
8015d3c: 6b92 ldr r2, [r2, #56] ; 0x38
8015d3e: 430a orrs r2, r1
8015d40: 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))
8015d42: 687b ldr r3, [r7, #4]
8015d44: 6a5b ldr r3, [r3, #36] ; 0x24
8015d46: f003 0320 and.w r3, r3, #32
8015d4a: 2b00 cmp r3, #0
8015d4c: d00a beq.n 8015d64 <UART_AdvFeatureConfig+0xd4>
{
assert_param(IS_UART_ADVFEATURE_DMAONRXERROR(huart->AdvancedInit.DMADisableonRxError));
MODIFY_REG(huart->Instance->CR3, USART_CR3_DDRE, huart->AdvancedInit.DMADisableonRxError);
8015d4e: 687b ldr r3, [r7, #4]
8015d50: 681b ldr r3, [r3, #0]
8015d52: 687a ldr r2, [r7, #4]
8015d54: 6812 ldr r2, [r2, #0]
8015d56: 6892 ldr r2, [r2, #8]
8015d58: f422 5100 bic.w r1, r2, #8192 ; 0x2000
8015d5c: 687a ldr r2, [r7, #4]
8015d5e: 6bd2 ldr r2, [r2, #60] ; 0x3c
8015d60: 430a orrs r2, r1
8015d62: 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))
8015d64: 687b ldr r3, [r7, #4]
8015d66: 6a5b ldr r3, [r3, #36] ; 0x24
8015d68: f003 0340 and.w r3, r3, #64 ; 0x40
8015d6c: 2b00 cmp r3, #0
8015d6e: d01a beq.n 8015da6 <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);
8015d70: 687b ldr r3, [r7, #4]
8015d72: 681b ldr r3, [r3, #0]
8015d74: 687a ldr r2, [r7, #4]
8015d76: 6812 ldr r2, [r2, #0]
8015d78: 6852 ldr r2, [r2, #4]
8015d7a: f422 1180 bic.w r1, r2, #1048576 ; 0x100000
8015d7e: 687a ldr r2, [r7, #4]
8015d80: 6c12 ldr r2, [r2, #64] ; 0x40
8015d82: 430a orrs r2, r1
8015d84: 605a str r2, [r3, #4]
/* set auto Baudrate detection parameters if detection is enabled */
if (huart->AdvancedInit.AutoBaudRateEnable == UART_ADVFEATURE_AUTOBAUDRATE_ENABLE)
8015d86: 687b ldr r3, [r7, #4]
8015d88: 6c1b ldr r3, [r3, #64] ; 0x40
8015d8a: f5b3 1f80 cmp.w r3, #1048576 ; 0x100000
8015d8e: d10a bne.n 8015da6 <UART_AdvFeatureConfig+0x116>
{
assert_param(IS_UART_ADVFEATURE_AUTOBAUDRATEMODE(huart->AdvancedInit.AutoBaudRateMode));
MODIFY_REG(huart->Instance->CR2, USART_CR2_ABRMODE, huart->AdvancedInit.AutoBaudRateMode);
8015d90: 687b ldr r3, [r7, #4]
8015d92: 681b ldr r3, [r3, #0]
8015d94: 687a ldr r2, [r7, #4]
8015d96: 6812 ldr r2, [r2, #0]
8015d98: 6852 ldr r2, [r2, #4]
8015d9a: f422 01c0 bic.w r1, r2, #6291456 ; 0x600000
8015d9e: 687a ldr r2, [r7, #4]
8015da0: 6c52 ldr r2, [r2, #68] ; 0x44
8015da2: 430a orrs r2, r1
8015da4: 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))
8015da6: 687b ldr r3, [r7, #4]
8015da8: 6a5b ldr r3, [r3, #36] ; 0x24
8015daa: f003 0380 and.w r3, r3, #128 ; 0x80
8015dae: 2b00 cmp r3, #0
8015db0: d00a beq.n 8015dc8 <UART_AdvFeatureConfig+0x138>
{
assert_param(IS_UART_ADVFEATURE_MSBFIRST(huart->AdvancedInit.MSBFirst));
MODIFY_REG(huart->Instance->CR2, USART_CR2_MSBFIRST, huart->AdvancedInit.MSBFirst);
8015db2: 687b ldr r3, [r7, #4]
8015db4: 681b ldr r3, [r3, #0]
8015db6: 687a ldr r2, [r7, #4]
8015db8: 6812 ldr r2, [r2, #0]
8015dba: 6852 ldr r2, [r2, #4]
8015dbc: f422 2100 bic.w r1, r2, #524288 ; 0x80000
8015dc0: 687a ldr r2, [r7, #4]
8015dc2: 6c92 ldr r2, [r2, #72] ; 0x48
8015dc4: 430a orrs r2, r1
8015dc6: 605a str r2, [r3, #4]
}
}
8015dc8: bf00 nop
8015dca: 370c adds r7, #12
8015dcc: 46bd mov sp, r7
8015dce: f85d 7b04 ldr.w r7, [sp], #4
8015dd2: 4770 bx lr
08015dd4 <UART_CheckIdleState>:
* @brief Check the UART Idle State.
* @param huart UART handle.
* @retval HAL status
*/
HAL_StatusTypeDef UART_CheckIdleState(UART_HandleTypeDef *huart)
{
8015dd4: b580 push {r7, lr}
8015dd6: b086 sub sp, #24
8015dd8: af02 add r7, sp, #8
8015dda: 6078 str r0, [r7, #4]
uint32_t tickstart;
/* Initialize the UART ErrorCode */
huart->ErrorCode = HAL_UART_ERROR_NONE;
8015ddc: 687b ldr r3, [r7, #4]
8015dde: 2200 movs r2, #0
8015de0: f8c3 2080 str.w r2, [r3, #128] ; 0x80
/* Init tickstart for timeout management */
tickstart = HAL_GetTick();
8015de4: f7fb fbfa bl 80115dc <HAL_GetTick>
8015de8: 60f8 str r0, [r7, #12]
/* Check if the Transmitter is enabled */
if ((huart->Instance->CR1 & USART_CR1_TE) == USART_CR1_TE)
8015dea: 687b ldr r3, [r7, #4]
8015dec: 681b ldr r3, [r3, #0]
8015dee: 681b ldr r3, [r3, #0]
8015df0: f003 0308 and.w r3, r3, #8
8015df4: 2b08 cmp r3, #8
8015df6: d10e bne.n 8015e16 <UART_CheckIdleState+0x42>
{
/* Wait until TEACK flag is set */
if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_TEACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK)
8015df8: f06f 437e mvn.w r3, #4261412864 ; 0xfe000000
8015dfc: 9300 str r3, [sp, #0]
8015dfe: 68fb ldr r3, [r7, #12]
8015e00: 2200 movs r2, #0
8015e02: f44f 1100 mov.w r1, #2097152 ; 0x200000
8015e06: 6878 ldr r0, [r7, #4]
8015e08: f000 f82d bl 8015e66 <UART_WaitOnFlagUntilTimeout>
8015e0c: 4603 mov r3, r0
8015e0e: 2b00 cmp r3, #0
8015e10: d001 beq.n 8015e16 <UART_CheckIdleState+0x42>
{
/* Timeout occurred */
return HAL_TIMEOUT;
8015e12: 2303 movs r3, #3
8015e14: e023 b.n 8015e5e <UART_CheckIdleState+0x8a>
}
}
#if defined(USART_ISR_REACK)
/* Check if the Receiver is enabled */
if ((huart->Instance->CR1 & USART_CR1_RE) == USART_CR1_RE)
8015e16: 687b ldr r3, [r7, #4]
8015e18: 681b ldr r3, [r3, #0]
8015e1a: 681b ldr r3, [r3, #0]
8015e1c: f003 0304 and.w r3, r3, #4
8015e20: 2b04 cmp r3, #4
8015e22: d10e bne.n 8015e42 <UART_CheckIdleState+0x6e>
{
/* Wait until REACK flag is set */
if (UART_WaitOnFlagUntilTimeout(huart, USART_ISR_REACK, RESET, tickstart, HAL_UART_TIMEOUT_VALUE) != HAL_OK)
8015e24: f06f 437e mvn.w r3, #4261412864 ; 0xfe000000
8015e28: 9300 str r3, [sp, #0]
8015e2a: 68fb ldr r3, [r7, #12]
8015e2c: 2200 movs r2, #0
8015e2e: f44f 0180 mov.w r1, #4194304 ; 0x400000
8015e32: 6878 ldr r0, [r7, #4]
8015e34: f000 f817 bl 8015e66 <UART_WaitOnFlagUntilTimeout>
8015e38: 4603 mov r3, r0
8015e3a: 2b00 cmp r3, #0
8015e3c: d001 beq.n 8015e42 <UART_CheckIdleState+0x6e>
{
/* Timeout occurred */
return HAL_TIMEOUT;
8015e3e: 2303 movs r3, #3
8015e40: e00d b.n 8015e5e <UART_CheckIdleState+0x8a>
}
}
#endif
/* Initialize the UART State */
huart->gState = HAL_UART_STATE_READY;
8015e42: 687b ldr r3, [r7, #4]
8015e44: 2220 movs r2, #32
8015e46: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
8015e48: 687b ldr r3, [r7, #4]
8015e4a: 2220 movs r2, #32
8015e4c: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
8015e4e: 687b ldr r3, [r7, #4]
8015e50: 2200 movs r2, #0
8015e52: 661a str r2, [r3, #96] ; 0x60
__HAL_UNLOCK(huart);
8015e54: 687b ldr r3, [r7, #4]
8015e56: 2200 movs r2, #0
8015e58: f883 2074 strb.w r2, [r3, #116] ; 0x74
return HAL_OK;
8015e5c: 2300 movs r3, #0
}
8015e5e: 4618 mov r0, r3
8015e60: 3710 adds r7, #16
8015e62: 46bd mov sp, r7
8015e64: bd80 pop {r7, pc}
08015e66 <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)
{
8015e66: b580 push {r7, lr}
8015e68: b09c sub sp, #112 ; 0x70
8015e6a: af00 add r7, sp, #0
8015e6c: 60f8 str r0, [r7, #12]
8015e6e: 60b9 str r1, [r7, #8]
8015e70: 603b str r3, [r7, #0]
8015e72: 4613 mov r3, r2
8015e74: 71fb strb r3, [r7, #7]
/* Wait until flag is set */
while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status)
8015e76: e0a5 b.n 8015fc4 <UART_WaitOnFlagUntilTimeout+0x15e>
{
/* Check for the Timeout */
if (Timeout != HAL_MAX_DELAY)
8015e78: 6fbb ldr r3, [r7, #120] ; 0x78
8015e7a: f1b3 3fff cmp.w r3, #4294967295
8015e7e: f000 80a1 beq.w 8015fc4 <UART_WaitOnFlagUntilTimeout+0x15e>
{
if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U))
8015e82: f7fb fbab bl 80115dc <HAL_GetTick>
8015e86: 4602 mov r2, r0
8015e88: 683b ldr r3, [r7, #0]
8015e8a: 1ad2 subs r2, r2, r3
8015e8c: 6fbb ldr r3, [r7, #120] ; 0x78
8015e8e: 429a cmp r2, r3
8015e90: d802 bhi.n 8015e98 <UART_WaitOnFlagUntilTimeout+0x32>
8015e92: 6fbb ldr r3, [r7, #120] ; 0x78
8015e94: 2b00 cmp r3, #0
8015e96: d13e bne.n 8015f16 <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));
8015e98: 68fb ldr r3, [r7, #12]
8015e9a: 681b ldr r3, [r3, #0]
8015e9c: 653b str r3, [r7, #80] ; 0x50
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015e9e: 6d3b ldr r3, [r7, #80] ; 0x50
8015ea0: e853 3f00 ldrex r3, [r3]
8015ea4: 64fb str r3, [r7, #76] ; 0x4c
return(result);
8015ea6: 6cfb ldr r3, [r7, #76] ; 0x4c
8015ea8: f423 73d0 bic.w r3, r3, #416 ; 0x1a0
8015eac: 667b str r3, [r7, #100] ; 0x64
8015eae: 68fb ldr r3, [r7, #12]
8015eb0: 681b ldr r3, [r3, #0]
8015eb2: 461a mov r2, r3
8015eb4: 6e7b ldr r3, [r7, #100] ; 0x64
8015eb6: 65fb str r3, [r7, #92] ; 0x5c
8015eb8: 65ba str r2, [r7, #88] ; 0x58
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015eba: 6db9 ldr r1, [r7, #88] ; 0x58
8015ebc: 6dfa ldr r2, [r7, #92] ; 0x5c
8015ebe: e841 2300 strex r3, r2, [r1]
8015ec2: 657b str r3, [r7, #84] ; 0x54
return(result);
8015ec4: 6d7b ldr r3, [r7, #84] ; 0x54
8015ec6: 2b00 cmp r3, #0
8015ec8: d1e6 bne.n 8015e98 <UART_WaitOnFlagUntilTimeout+0x32>
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
8015eca: 68fb ldr r3, [r7, #12]
8015ecc: 681b ldr r3, [r3, #0]
8015ece: 3308 adds r3, #8
8015ed0: 63fb str r3, [r7, #60] ; 0x3c
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015ed2: 6bfb ldr r3, [r7, #60] ; 0x3c
8015ed4: e853 3f00 ldrex r3, [r3]
8015ed8: 63bb str r3, [r7, #56] ; 0x38
return(result);
8015eda: 6bbb ldr r3, [r7, #56] ; 0x38
8015edc: f023 0301 bic.w r3, r3, #1
8015ee0: 663b str r3, [r7, #96] ; 0x60
8015ee2: 68fb ldr r3, [r7, #12]
8015ee4: 681b ldr r3, [r3, #0]
8015ee6: 3308 adds r3, #8
8015ee8: 6e3a ldr r2, [r7, #96] ; 0x60
8015eea: 64ba str r2, [r7, #72] ; 0x48
8015eec: 647b str r3, [r7, #68] ; 0x44
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015eee: 6c79 ldr r1, [r7, #68] ; 0x44
8015ef0: 6cba ldr r2, [r7, #72] ; 0x48
8015ef2: e841 2300 strex r3, r2, [r1]
8015ef6: 643b str r3, [r7, #64] ; 0x40
return(result);
8015ef8: 6c3b ldr r3, [r7, #64] ; 0x40
8015efa: 2b00 cmp r3, #0
8015efc: d1e5 bne.n 8015eca <UART_WaitOnFlagUntilTimeout+0x64>
huart->gState = HAL_UART_STATE_READY;
8015efe: 68fb ldr r3, [r7, #12]
8015f00: 2220 movs r2, #32
8015f02: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
8015f04: 68fb ldr r3, [r7, #12]
8015f06: 2220 movs r2, #32
8015f08: 67da str r2, [r3, #124] ; 0x7c
__HAL_UNLOCK(huart);
8015f0a: 68fb ldr r3, [r7, #12]
8015f0c: 2200 movs r2, #0
8015f0e: f883 2074 strb.w r2, [r3, #116] ; 0x74
return HAL_TIMEOUT;
8015f12: 2303 movs r3, #3
8015f14: e067 b.n 8015fe6 <UART_WaitOnFlagUntilTimeout+0x180>
}
if (READ_BIT(huart->Instance->CR1, USART_CR1_RE) != 0U)
8015f16: 68fb ldr r3, [r7, #12]
8015f18: 681b ldr r3, [r3, #0]
8015f1a: 681b ldr r3, [r3, #0]
8015f1c: f003 0304 and.w r3, r3, #4
8015f20: 2b00 cmp r3, #0
8015f22: d04f beq.n 8015fc4 <UART_WaitOnFlagUntilTimeout+0x15e>
{
if (__HAL_UART_GET_FLAG(huart, UART_FLAG_RTOF) == SET)
8015f24: 68fb ldr r3, [r7, #12]
8015f26: 681b ldr r3, [r3, #0]
8015f28: 69db ldr r3, [r3, #28]
8015f2a: f403 6300 and.w r3, r3, #2048 ; 0x800
8015f2e: f5b3 6f00 cmp.w r3, #2048 ; 0x800
8015f32: d147 bne.n 8015fc4 <UART_WaitOnFlagUntilTimeout+0x15e>
{
/* Clear Receiver Timeout flag*/
__HAL_UART_CLEAR_FLAG(huart, UART_CLEAR_RTOF);
8015f34: 68fb ldr r3, [r7, #12]
8015f36: 681b ldr r3, [r3, #0]
8015f38: f44f 6200 mov.w r2, #2048 ; 0x800
8015f3c: 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));
8015f3e: 68fb ldr r3, [r7, #12]
8015f40: 681b ldr r3, [r3, #0]
8015f42: 62bb str r3, [r7, #40] ; 0x28
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015f44: 6abb ldr r3, [r7, #40] ; 0x28
8015f46: e853 3f00 ldrex r3, [r3]
8015f4a: 627b str r3, [r7, #36] ; 0x24
return(result);
8015f4c: 6a7b ldr r3, [r7, #36] ; 0x24
8015f4e: f423 73d0 bic.w r3, r3, #416 ; 0x1a0
8015f52: 66fb str r3, [r7, #108] ; 0x6c
8015f54: 68fb ldr r3, [r7, #12]
8015f56: 681b ldr r3, [r3, #0]
8015f58: 461a mov r2, r3
8015f5a: 6efb ldr r3, [r7, #108] ; 0x6c
8015f5c: 637b str r3, [r7, #52] ; 0x34
8015f5e: 633a str r2, [r7, #48] ; 0x30
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015f60: 6b39 ldr r1, [r7, #48] ; 0x30
8015f62: 6b7a ldr r2, [r7, #52] ; 0x34
8015f64: e841 2300 strex r3, r2, [r1]
8015f68: 62fb str r3, [r7, #44] ; 0x2c
return(result);
8015f6a: 6afb ldr r3, [r7, #44] ; 0x2c
8015f6c: 2b00 cmp r3, #0
8015f6e: d1e6 bne.n 8015f3e <UART_WaitOnFlagUntilTimeout+0xd8>
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
8015f70: 68fb ldr r3, [r7, #12]
8015f72: 681b ldr r3, [r3, #0]
8015f74: 3308 adds r3, #8
8015f76: 617b str r3, [r7, #20]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015f78: 697b ldr r3, [r7, #20]
8015f7a: e853 3f00 ldrex r3, [r3]
8015f7e: 613b str r3, [r7, #16]
return(result);
8015f80: 693b ldr r3, [r7, #16]
8015f82: f023 0301 bic.w r3, r3, #1
8015f86: 66bb str r3, [r7, #104] ; 0x68
8015f88: 68fb ldr r3, [r7, #12]
8015f8a: 681b ldr r3, [r3, #0]
8015f8c: 3308 adds r3, #8
8015f8e: 6eba ldr r2, [r7, #104] ; 0x68
8015f90: 623a str r2, [r7, #32]
8015f92: 61fb str r3, [r7, #28]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8015f94: 69f9 ldr r1, [r7, #28]
8015f96: 6a3a ldr r2, [r7, #32]
8015f98: e841 2300 strex r3, r2, [r1]
8015f9c: 61bb str r3, [r7, #24]
return(result);
8015f9e: 69bb ldr r3, [r7, #24]
8015fa0: 2b00 cmp r3, #0
8015fa2: d1e5 bne.n 8015f70 <UART_WaitOnFlagUntilTimeout+0x10a>
huart->gState = HAL_UART_STATE_READY;
8015fa4: 68fb ldr r3, [r7, #12]
8015fa6: 2220 movs r2, #32
8015fa8: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
8015faa: 68fb ldr r3, [r7, #12]
8015fac: 2220 movs r2, #32
8015fae: 67da str r2, [r3, #124] ; 0x7c
huart->ErrorCode = HAL_UART_ERROR_RTO;
8015fb0: 68fb ldr r3, [r7, #12]
8015fb2: 2220 movs r2, #32
8015fb4: f8c3 2080 str.w r2, [r3, #128] ; 0x80
/* Process Unlocked */
__HAL_UNLOCK(huart);
8015fb8: 68fb ldr r3, [r7, #12]
8015fba: 2200 movs r2, #0
8015fbc: f883 2074 strb.w r2, [r3, #116] ; 0x74
return HAL_TIMEOUT;
8015fc0: 2303 movs r3, #3
8015fc2: e010 b.n 8015fe6 <UART_WaitOnFlagUntilTimeout+0x180>
while ((__HAL_UART_GET_FLAG(huart, Flag) ? SET : RESET) == Status)
8015fc4: 68fb ldr r3, [r7, #12]
8015fc6: 681b ldr r3, [r3, #0]
8015fc8: 69da ldr r2, [r3, #28]
8015fca: 68bb ldr r3, [r7, #8]
8015fcc: 401a ands r2, r3
8015fce: 68bb ldr r3, [r7, #8]
8015fd0: 429a cmp r2, r3
8015fd2: bf0c ite eq
8015fd4: 2301 moveq r3, #1
8015fd6: 2300 movne r3, #0
8015fd8: b2db uxtb r3, r3
8015fda: 461a mov r2, r3
8015fdc: 79fb ldrb r3, [r7, #7]
8015fde: 429a cmp r2, r3
8015fe0: f43f af4a beq.w 8015e78 <UART_WaitOnFlagUntilTimeout+0x12>
}
}
}
}
return HAL_OK;
8015fe4: 2300 movs r3, #0
}
8015fe6: 4618 mov r0, r3
8015fe8: 3770 adds r7, #112 ; 0x70
8015fea: 46bd mov sp, r7
8015fec: bd80 pop {r7, pc}
08015fee <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)
{
8015fee: b480 push {r7}
8015ff0: b095 sub sp, #84 ; 0x54
8015ff2: af00 add r7, sp, #0
8015ff4: 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));
8015ff6: 687b ldr r3, [r7, #4]
8015ff8: 681b ldr r3, [r3, #0]
8015ffa: 637b str r3, [r7, #52] ; 0x34
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8015ffc: 6b7b ldr r3, [r7, #52] ; 0x34
8015ffe: e853 3f00 ldrex r3, [r3]
8016002: 633b str r3, [r7, #48] ; 0x30
return(result);
8016004: 6b3b ldr r3, [r7, #48] ; 0x30
8016006: f423 7390 bic.w r3, r3, #288 ; 0x120
801600a: 64fb str r3, [r7, #76] ; 0x4c
801600c: 687b ldr r3, [r7, #4]
801600e: 681b ldr r3, [r3, #0]
8016010: 461a mov r2, r3
8016012: 6cfb ldr r3, [r7, #76] ; 0x4c
8016014: 643b str r3, [r7, #64] ; 0x40
8016016: 63fa str r2, [r7, #60] ; 0x3c
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8016018: 6bf9 ldr r1, [r7, #60] ; 0x3c
801601a: 6c3a ldr r2, [r7, #64] ; 0x40
801601c: e841 2300 strex r3, r2, [r1]
8016020: 63bb str r3, [r7, #56] ; 0x38
return(result);
8016022: 6bbb ldr r3, [r7, #56] ; 0x38
8016024: 2b00 cmp r3, #0
8016026: d1e6 bne.n 8015ff6 <UART_EndRxTransfer+0x8>
ATOMIC_CLEAR_BIT(huart->Instance->CR3, USART_CR3_EIE);
8016028: 687b ldr r3, [r7, #4]
801602a: 681b ldr r3, [r3, #0]
801602c: 3308 adds r3, #8
801602e: 623b str r3, [r7, #32]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8016030: 6a3b ldr r3, [r7, #32]
8016032: e853 3f00 ldrex r3, [r3]
8016036: 61fb str r3, [r7, #28]
return(result);
8016038: 69fb ldr r3, [r7, #28]
801603a: f023 0301 bic.w r3, r3, #1
801603e: 64bb str r3, [r7, #72] ; 0x48
8016040: 687b ldr r3, [r7, #4]
8016042: 681b ldr r3, [r3, #0]
8016044: 3308 adds r3, #8
8016046: 6cba ldr r2, [r7, #72] ; 0x48
8016048: 62fa str r2, [r7, #44] ; 0x2c
801604a: 62bb str r3, [r7, #40] ; 0x28
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
801604c: 6ab9 ldr r1, [r7, #40] ; 0x28
801604e: 6afa ldr r2, [r7, #44] ; 0x2c
8016050: e841 2300 strex r3, r2, [r1]
8016054: 627b str r3, [r7, #36] ; 0x24
return(result);
8016056: 6a7b ldr r3, [r7, #36] ; 0x24
8016058: 2b00 cmp r3, #0
801605a: d1e5 bne.n 8016028 <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)
801605c: 687b ldr r3, [r7, #4]
801605e: 6e1b ldr r3, [r3, #96] ; 0x60
8016060: 2b01 cmp r3, #1
8016062: d118 bne.n 8016096 <UART_EndRxTransfer+0xa8>
{
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_IDLEIE);
8016064: 687b ldr r3, [r7, #4]
8016066: 681b ldr r3, [r3, #0]
8016068: 60fb str r3, [r7, #12]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
801606a: 68fb ldr r3, [r7, #12]
801606c: e853 3f00 ldrex r3, [r3]
8016070: 60bb str r3, [r7, #8]
return(result);
8016072: 68bb ldr r3, [r7, #8]
8016074: f023 0310 bic.w r3, r3, #16
8016078: 647b str r3, [r7, #68] ; 0x44
801607a: 687b ldr r3, [r7, #4]
801607c: 681b ldr r3, [r3, #0]
801607e: 461a mov r2, r3
8016080: 6c7b ldr r3, [r7, #68] ; 0x44
8016082: 61bb str r3, [r7, #24]
8016084: 617a str r2, [r7, #20]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8016086: 6979 ldr r1, [r7, #20]
8016088: 69ba ldr r2, [r7, #24]
801608a: e841 2300 strex r3, r2, [r1]
801608e: 613b str r3, [r7, #16]
return(result);
8016090: 693b ldr r3, [r7, #16]
8016092: 2b00 cmp r3, #0
8016094: d1e6 bne.n 8016064 <UART_EndRxTransfer+0x76>
}
/* At end of Rx process, restore huart->RxState to Ready */
huart->RxState = HAL_UART_STATE_READY;
8016096: 687b ldr r3, [r7, #4]
8016098: 2220 movs r2, #32
801609a: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
801609c: 687b ldr r3, [r7, #4]
801609e: 2200 movs r2, #0
80160a0: 661a str r2, [r3, #96] ; 0x60
/* Reset RxIsr function pointer */
huart->RxISR = NULL;
80160a2: 687b ldr r3, [r7, #4]
80160a4: 2200 movs r2, #0
80160a6: 665a str r2, [r3, #100] ; 0x64
}
80160a8: bf00 nop
80160aa: 3754 adds r7, #84 ; 0x54
80160ac: 46bd mov sp, r7
80160ae: f85d 7b04 ldr.w r7, [sp], #4
80160b2: 4770 bx lr
080160b4 <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)
{
80160b4: b580 push {r7, lr}
80160b6: b084 sub sp, #16
80160b8: af00 add r7, sp, #0
80160ba: 6078 str r0, [r7, #4]
UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent);
80160bc: 687b ldr r3, [r7, #4]
80160be: 6b9b ldr r3, [r3, #56] ; 0x38
80160c0: 60fb str r3, [r7, #12]
huart->RxXferCount = 0U;
80160c2: 68fb ldr r3, [r7, #12]
80160c4: 2200 movs r2, #0
80160c6: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
huart->TxXferCount = 0U;
80160ca: 68fb ldr r3, [r7, #12]
80160cc: 2200 movs r2, #0
80160ce: 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);
80160d2: 68f8 ldr r0, [r7, #12]
80160d4: f7f9 ff32 bl 800ff3c <HAL_UART_ErrorCallback>
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
}
80160d8: bf00 nop
80160da: 3710 adds r7, #16
80160dc: 46bd mov sp, r7
80160de: bd80 pop {r7, pc}
080160e0 <UART_DMATxAbortCallback>:
* Abort still ongoing for Rx DMA Handle.
* @param hdma DMA handle.
* @retval None
*/
static void UART_DMATxAbortCallback(DMA_HandleTypeDef *hdma)
{
80160e0: b580 push {r7, lr}
80160e2: b084 sub sp, #16
80160e4: af00 add r7, sp, #0
80160e6: 6078 str r0, [r7, #4]
UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent);
80160e8: 687b ldr r3, [r7, #4]
80160ea: 6b9b ldr r3, [r3, #56] ; 0x38
80160ec: 60fb str r3, [r7, #12]
huart->hdmatx->XferAbortCallback = NULL;
80160ee: 68fb ldr r3, [r7, #12]
80160f0: 6edb ldr r3, [r3, #108] ; 0x6c
80160f2: 2200 movs r2, #0
80160f4: 651a str r2, [r3, #80] ; 0x50
/* Check if an Abort process is still ongoing */
if (huart->hdmarx != NULL)
80160f6: 68fb ldr r3, [r7, #12]
80160f8: 6f1b ldr r3, [r3, #112] ; 0x70
80160fa: 2b00 cmp r3, #0
80160fc: d004 beq.n 8016108 <UART_DMATxAbortCallback+0x28>
{
if (huart->hdmarx->XferAbortCallback != NULL)
80160fe: 68fb ldr r3, [r7, #12]
8016100: 6f1b ldr r3, [r3, #112] ; 0x70
8016102: 6d1b ldr r3, [r3, #80] ; 0x50
8016104: 2b00 cmp r3, #0
8016106: d11c bne.n 8016142 <UART_DMATxAbortCallback+0x62>
return;
}
}
/* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callback */
huart->TxXferCount = 0U;
8016108: 68fb ldr r3, [r7, #12]
801610a: 2200 movs r2, #0
801610c: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
huart->RxXferCount = 0U;
8016110: 68fb ldr r3, [r7, #12]
8016112: 2200 movs r2, #0
8016114: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
/* Reset errorCode */
huart->ErrorCode = HAL_UART_ERROR_NONE;
8016118: 68fb ldr r3, [r7, #12]
801611a: 2200 movs r2, #0
801611c: 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);
8016120: 68fb ldr r3, [r7, #12]
8016122: 681b ldr r3, [r3, #0]
8016124: 220f movs r2, #15
8016126: 621a str r2, [r3, #32]
/* Restore huart->gState and huart->RxState to Ready */
huart->gState = HAL_UART_STATE_READY;
8016128: 68fb ldr r3, [r7, #12]
801612a: 2220 movs r2, #32
801612c: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
801612e: 68fb ldr r3, [r7, #12]
8016130: 2220 movs r2, #32
8016132: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
8016134: 68fb ldr r3, [r7, #12]
8016136: 2200 movs r2, #0
8016138: 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);
801613a: 68f8 ldr r0, [r7, #12]
801613c: f7ff fb28 bl 8015790 <HAL_UART_AbortCpltCallback>
8016140: e000 b.n 8016144 <UART_DMATxAbortCallback+0x64>
return;
8016142: bf00 nop
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
}
8016144: 3710 adds r7, #16
8016146: 46bd mov sp, r7
8016148: bd80 pop {r7, pc}
0801614a <UART_DMARxAbortCallback>:
* Abort still ongoing for Tx DMA Handle.
* @param hdma DMA handle.
* @retval None
*/
static void UART_DMARxAbortCallback(DMA_HandleTypeDef *hdma)
{
801614a: b580 push {r7, lr}
801614c: b084 sub sp, #16
801614e: af00 add r7, sp, #0
8016150: 6078 str r0, [r7, #4]
UART_HandleTypeDef *huart = (UART_HandleTypeDef *)(hdma->Parent);
8016152: 687b ldr r3, [r7, #4]
8016154: 6b9b ldr r3, [r3, #56] ; 0x38
8016156: 60fb str r3, [r7, #12]
huart->hdmarx->XferAbortCallback = NULL;
8016158: 68fb ldr r3, [r7, #12]
801615a: 6f1b ldr r3, [r3, #112] ; 0x70
801615c: 2200 movs r2, #0
801615e: 651a str r2, [r3, #80] ; 0x50
/* Check if an Abort process is still ongoing */
if (huart->hdmatx != NULL)
8016160: 68fb ldr r3, [r7, #12]
8016162: 6edb ldr r3, [r3, #108] ; 0x6c
8016164: 2b00 cmp r3, #0
8016166: d004 beq.n 8016172 <UART_DMARxAbortCallback+0x28>
{
if (huart->hdmatx->XferAbortCallback != NULL)
8016168: 68fb ldr r3, [r7, #12]
801616a: 6edb ldr r3, [r3, #108] ; 0x6c
801616c: 6d1b ldr r3, [r3, #80] ; 0x50
801616e: 2b00 cmp r3, #0
8016170: d124 bne.n 80161bc <UART_DMARxAbortCallback+0x72>
return;
}
}
/* No Abort process still ongoing : All DMA channels are aborted, call user Abort Complete callback */
huart->TxXferCount = 0U;
8016172: 68fb ldr r3, [r7, #12]
8016174: 2200 movs r2, #0
8016176: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
huart->RxXferCount = 0U;
801617a: 68fb ldr r3, [r7, #12]
801617c: 2200 movs r2, #0
801617e: f8a3 205a strh.w r2, [r3, #90] ; 0x5a
/* Reset errorCode */
huart->ErrorCode = HAL_UART_ERROR_NONE;
8016182: 68fb ldr r3, [r7, #12]
8016184: 2200 movs r2, #0
8016186: 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);
801618a: 68fb ldr r3, [r7, #12]
801618c: 681b ldr r3, [r3, #0]
801618e: 220f movs r2, #15
8016190: 621a str r2, [r3, #32]
/* Discard the received data */
__HAL_UART_SEND_REQ(huart, UART_RXDATA_FLUSH_REQUEST);
8016192: 68fb ldr r3, [r7, #12]
8016194: 681b ldr r3, [r3, #0]
8016196: 68fa ldr r2, [r7, #12]
8016198: 6812 ldr r2, [r2, #0]
801619a: 6992 ldr r2, [r2, #24]
801619c: f042 0208 orr.w r2, r2, #8
80161a0: 619a str r2, [r3, #24]
/* Restore huart->gState and huart->RxState to Ready */
huart->gState = HAL_UART_STATE_READY;
80161a2: 68fb ldr r3, [r7, #12]
80161a4: 2220 movs r2, #32
80161a6: 679a str r2, [r3, #120] ; 0x78
huart->RxState = HAL_UART_STATE_READY;
80161a8: 68fb ldr r3, [r7, #12]
80161aa: 2220 movs r2, #32
80161ac: 67da str r2, [r3, #124] ; 0x7c
huart->ReceptionType = HAL_UART_RECEPTION_STANDARD;
80161ae: 68fb ldr r3, [r7, #12]
80161b0: 2200 movs r2, #0
80161b2: 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);
80161b4: 68f8 ldr r0, [r7, #12]
80161b6: f7ff faeb bl 8015790 <HAL_UART_AbortCpltCallback>
80161ba: e000 b.n 80161be <UART_DMARxAbortCallback+0x74>
return;
80161bc: bf00 nop
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
}
80161be: 3710 adds r7, #16
80161c0: 46bd mov sp, r7
80161c2: bd80 pop {r7, pc}
080161c4 <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)
{
80161c4: b480 push {r7}
80161c6: b08f sub sp, #60 ; 0x3c
80161c8: af00 add r7, sp, #0
80161ca: 6078 str r0, [r7, #4]
/* Check that a Tx process is ongoing */
if (huart->gState == HAL_UART_STATE_BUSY_TX)
80161cc: 687b ldr r3, [r7, #4]
80161ce: 6f9b ldr r3, [r3, #120] ; 0x78
80161d0: 2b21 cmp r3, #33 ; 0x21
80161d2: d14c bne.n 801626e <UART_TxISR_8BIT+0xaa>
{
if (huart->TxXferCount == 0U)
80161d4: 687b ldr r3, [r7, #4]
80161d6: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
80161da: b29b uxth r3, r3
80161dc: 2b00 cmp r3, #0
80161de: d132 bne.n 8016246 <UART_TxISR_8BIT+0x82>
{
/* Disable the UART Transmit Data Register Empty Interrupt */
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE);
80161e0: 687b ldr r3, [r7, #4]
80161e2: 681b ldr r3, [r3, #0]
80161e4: 623b str r3, [r7, #32]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
80161e6: 6a3b ldr r3, [r7, #32]
80161e8: e853 3f00 ldrex r3, [r3]
80161ec: 61fb str r3, [r7, #28]
return(result);
80161ee: 69fb ldr r3, [r7, #28]
80161f0: f023 0380 bic.w r3, r3, #128 ; 0x80
80161f4: 637b str r3, [r7, #52] ; 0x34
80161f6: 687b ldr r3, [r7, #4]
80161f8: 681b ldr r3, [r3, #0]
80161fa: 461a mov r2, r3
80161fc: 6b7b ldr r3, [r7, #52] ; 0x34
80161fe: 62fb str r3, [r7, #44] ; 0x2c
8016200: 62ba str r2, [r7, #40] ; 0x28
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8016202: 6ab9 ldr r1, [r7, #40] ; 0x28
8016204: 6afa ldr r2, [r7, #44] ; 0x2c
8016206: e841 2300 strex r3, r2, [r1]
801620a: 627b str r3, [r7, #36] ; 0x24
return(result);
801620c: 6a7b ldr r3, [r7, #36] ; 0x24
801620e: 2b00 cmp r3, #0
8016210: d1e6 bne.n 80161e0 <UART_TxISR_8BIT+0x1c>
/* Enable the UART Transmit Complete Interrupt */
ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE);
8016212: 687b ldr r3, [r7, #4]
8016214: 681b ldr r3, [r3, #0]
8016216: 60fb str r3, [r7, #12]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8016218: 68fb ldr r3, [r7, #12]
801621a: e853 3f00 ldrex r3, [r3]
801621e: 60bb str r3, [r7, #8]
return(result);
8016220: 68bb ldr r3, [r7, #8]
8016222: f043 0340 orr.w r3, r3, #64 ; 0x40
8016226: 633b str r3, [r7, #48] ; 0x30
8016228: 687b ldr r3, [r7, #4]
801622a: 681b ldr r3, [r3, #0]
801622c: 461a mov r2, r3
801622e: 6b3b ldr r3, [r7, #48] ; 0x30
8016230: 61bb str r3, [r7, #24]
8016232: 617a str r2, [r7, #20]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8016234: 6979 ldr r1, [r7, #20]
8016236: 69ba ldr r2, [r7, #24]
8016238: e841 2300 strex r3, r2, [r1]
801623c: 613b str r3, [r7, #16]
return(result);
801623e: 693b ldr r3, [r7, #16]
8016240: 2b00 cmp r3, #0
8016242: d1e6 bne.n 8016212 <UART_TxISR_8BIT+0x4e>
huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF);
huart->pTxBuffPtr++;
huart->TxXferCount--;
}
}
}
8016244: e013 b.n 801626e <UART_TxISR_8BIT+0xaa>
huart->Instance->TDR = (uint8_t)(*huart->pTxBuffPtr & (uint8_t)0xFF);
8016246: 687b ldr r3, [r7, #4]
8016248: 681b ldr r3, [r3, #0]
801624a: 687a ldr r2, [r7, #4]
801624c: 6cd2 ldr r2, [r2, #76] ; 0x4c
801624e: 7812 ldrb r2, [r2, #0]
8016250: 629a str r2, [r3, #40] ; 0x28
huart->pTxBuffPtr++;
8016252: 687b ldr r3, [r7, #4]
8016254: 6cdb ldr r3, [r3, #76] ; 0x4c
8016256: 1c5a adds r2, r3, #1
8016258: 687b ldr r3, [r7, #4]
801625a: 64da str r2, [r3, #76] ; 0x4c
huart->TxXferCount--;
801625c: 687b ldr r3, [r7, #4]
801625e: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8016262: b29b uxth r3, r3
8016264: 3b01 subs r3, #1
8016266: b29a uxth r2, r3
8016268: 687b ldr r3, [r7, #4]
801626a: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
}
801626e: bf00 nop
8016270: 373c adds r7, #60 ; 0x3c
8016272: 46bd mov sp, r7
8016274: f85d 7b04 ldr.w r7, [sp], #4
8016278: 4770 bx lr
0801627a <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)
{
801627a: b480 push {r7}
801627c: b091 sub sp, #68 ; 0x44
801627e: af00 add r7, sp, #0
8016280: 6078 str r0, [r7, #4]
const uint16_t *tmp;
/* Check that a Tx process is ongoing */
if (huart->gState == HAL_UART_STATE_BUSY_TX)
8016282: 687b ldr r3, [r7, #4]
8016284: 6f9b ldr r3, [r3, #120] ; 0x78
8016286: 2b21 cmp r3, #33 ; 0x21
8016288: d150 bne.n 801632c <UART_TxISR_16BIT+0xb2>
{
if (huart->TxXferCount == 0U)
801628a: 687b ldr r3, [r7, #4]
801628c: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8016290: b29b uxth r3, r3
8016292: 2b00 cmp r3, #0
8016294: d132 bne.n 80162fc <UART_TxISR_16BIT+0x82>
{
/* Disable the UART Transmit Data Register Empty Interrupt */
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TXEIE);
8016296: 687b ldr r3, [r7, #4]
8016298: 681b ldr r3, [r3, #0]
801629a: 627b str r3, [r7, #36] ; 0x24
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
801629c: 6a7b ldr r3, [r7, #36] ; 0x24
801629e: e853 3f00 ldrex r3, [r3]
80162a2: 623b str r3, [r7, #32]
return(result);
80162a4: 6a3b ldr r3, [r7, #32]
80162a6: f023 0380 bic.w r3, r3, #128 ; 0x80
80162aa: 63fb str r3, [r7, #60] ; 0x3c
80162ac: 687b ldr r3, [r7, #4]
80162ae: 681b ldr r3, [r3, #0]
80162b0: 461a mov r2, r3
80162b2: 6bfb ldr r3, [r7, #60] ; 0x3c
80162b4: 633b str r3, [r7, #48] ; 0x30
80162b6: 62fa str r2, [r7, #44] ; 0x2c
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80162b8: 6af9 ldr r1, [r7, #44] ; 0x2c
80162ba: 6b3a ldr r2, [r7, #48] ; 0x30
80162bc: e841 2300 strex r3, r2, [r1]
80162c0: 62bb str r3, [r7, #40] ; 0x28
return(result);
80162c2: 6abb ldr r3, [r7, #40] ; 0x28
80162c4: 2b00 cmp r3, #0
80162c6: d1e6 bne.n 8016296 <UART_TxISR_16BIT+0x1c>
/* Enable the UART Transmit Complete Interrupt */
ATOMIC_SET_BIT(huart->Instance->CR1, USART_CR1_TCIE);
80162c8: 687b ldr r3, [r7, #4]
80162ca: 681b ldr r3, [r3, #0]
80162cc: 613b str r3, [r7, #16]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
80162ce: 693b ldr r3, [r7, #16]
80162d0: e853 3f00 ldrex r3, [r3]
80162d4: 60fb str r3, [r7, #12]
return(result);
80162d6: 68fb ldr r3, [r7, #12]
80162d8: f043 0340 orr.w r3, r3, #64 ; 0x40
80162dc: 63bb str r3, [r7, #56] ; 0x38
80162de: 687b ldr r3, [r7, #4]
80162e0: 681b ldr r3, [r3, #0]
80162e2: 461a mov r2, r3
80162e4: 6bbb ldr r3, [r7, #56] ; 0x38
80162e6: 61fb str r3, [r7, #28]
80162e8: 61ba str r2, [r7, #24]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
80162ea: 69b9 ldr r1, [r7, #24]
80162ec: 69fa ldr r2, [r7, #28]
80162ee: e841 2300 strex r3, r2, [r1]
80162f2: 617b str r3, [r7, #20]
return(result);
80162f4: 697b ldr r3, [r7, #20]
80162f6: 2b00 cmp r3, #0
80162f8: d1e6 bne.n 80162c8 <UART_TxISR_16BIT+0x4e>
huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL);
huart->pTxBuffPtr += 2U;
huart->TxXferCount--;
}
}
}
80162fa: e017 b.n 801632c <UART_TxISR_16BIT+0xb2>
tmp = (const uint16_t *) huart->pTxBuffPtr;
80162fc: 687b ldr r3, [r7, #4]
80162fe: 6cdb ldr r3, [r3, #76] ; 0x4c
8016300: 637b str r3, [r7, #52] ; 0x34
huart->Instance->TDR = (((uint32_t)(*tmp)) & 0x01FFUL);
8016302: 687b ldr r3, [r7, #4]
8016304: 681b ldr r3, [r3, #0]
8016306: 6b7a ldr r2, [r7, #52] ; 0x34
8016308: 8812 ldrh r2, [r2, #0]
801630a: f3c2 0208 ubfx r2, r2, #0, #9
801630e: 629a str r2, [r3, #40] ; 0x28
huart->pTxBuffPtr += 2U;
8016310: 687b ldr r3, [r7, #4]
8016312: 6cdb ldr r3, [r3, #76] ; 0x4c
8016314: 1c9a adds r2, r3, #2
8016316: 687b ldr r3, [r7, #4]
8016318: 64da str r2, [r3, #76] ; 0x4c
huart->TxXferCount--;
801631a: 687b ldr r3, [r7, #4]
801631c: f8b3 3052 ldrh.w r3, [r3, #82] ; 0x52
8016320: b29b uxth r3, r3
8016322: 3b01 subs r3, #1
8016324: b29a uxth r2, r3
8016326: 687b ldr r3, [r7, #4]
8016328: f8a3 2052 strh.w r2, [r3, #82] ; 0x52
}
801632c: bf00 nop
801632e: 3744 adds r7, #68 ; 0x44
8016330: 46bd mov sp, r7
8016332: f85d 7b04 ldr.w r7, [sp], #4
8016336: 4770 bx lr
08016338 <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)
{
8016338: b580 push {r7, lr}
801633a: b088 sub sp, #32
801633c: af00 add r7, sp, #0
801633e: 6078 str r0, [r7, #4]
/* Disable the UART Transmit Complete Interrupt */
ATOMIC_CLEAR_BIT(huart->Instance->CR1, USART_CR1_TCIE);
8016340: 687b ldr r3, [r7, #4]
8016342: 681b ldr r3, [r3, #0]
8016344: 60fb str r3, [r7, #12]
__ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) );
8016346: 68fb ldr r3, [r7, #12]
8016348: e853 3f00 ldrex r3, [r3]
801634c: 60bb str r3, [r7, #8]
return(result);
801634e: 68bb ldr r3, [r7, #8]
8016350: f023 0340 bic.w r3, r3, #64 ; 0x40
8016354: 61fb str r3, [r7, #28]
8016356: 687b ldr r3, [r7, #4]
8016358: 681b ldr r3, [r3, #0]
801635a: 461a mov r2, r3
801635c: 69fb ldr r3, [r7, #28]
801635e: 61bb str r3, [r7, #24]
8016360: 617a str r2, [r7, #20]
__ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) );
8016362: 6979 ldr r1, [r7, #20]
8016364: 69ba ldr r2, [r7, #24]
8016366: e841 2300 strex r3, r2, [r1]
801636a: 613b str r3, [r7, #16]
return(result);
801636c: 693b ldr r3, [r7, #16]
801636e: 2b00 cmp r3, #0
8016370: d1e6 bne.n 8016340 <UART_EndTransmit_IT+0x8>
/* Tx process is ended, restore huart->gState to Ready */
huart->gState = HAL_UART_STATE_READY;
8016372: 687b ldr r3, [r7, #4]
8016374: 2220 movs r2, #32
8016376: 679a str r2, [r3, #120] ; 0x78
/* Cleat TxISR function pointer */
huart->TxISR = NULL;
8016378: 687b ldr r3, [r7, #4]
801637a: 2200 movs r2, #0
801637c: 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);
801637e: 6878 ldr r0, [r7, #4]
8016380: f7f9 fdb6 bl 800fef0 <HAL_UART_TxCpltCallback>
#endif /* USE_HAL_UART_REGISTER_CALLBACKS */
}
8016384: bf00 nop
8016386: 3720 adds r7, #32
8016388: 46bd mov sp, r7
801638a: bd80 pop {r7, pc}
0801638c <Reset_Handler>:
.section .text.Reset_Handler
.weak Reset_Handler
.type Reset_Handler, %function
Reset_Handler:
ldr sp, =_estack /* set stack pointer */
801638c: f8df d034 ldr.w sp, [pc, #52] ; 80163c4 <LoopFillZerobss+0x14>
/* Copy the data segment initializers from flash to SRAM */
movs r1, #0
8016390: 2100 movs r1, #0
b LoopCopyDataInit
8016392: e003 b.n 801639c <LoopCopyDataInit>
08016394 <CopyDataInit>:
CopyDataInit:
ldr r3, =_sidata
8016394: 4b0c ldr r3, [pc, #48] ; (80163c8 <LoopFillZerobss+0x18>)
ldr r3, [r3, r1]
8016396: 585b ldr r3, [r3, r1]
str r3, [r0, r1]
8016398: 5043 str r3, [r0, r1]
adds r1, r1, #4
801639a: 3104 adds r1, #4
0801639c <LoopCopyDataInit>:
LoopCopyDataInit:
ldr r0, =_sdata
801639c: 480b ldr r0, [pc, #44] ; (80163cc <LoopFillZerobss+0x1c>)
ldr r3, =_edata
801639e: 4b0c ldr r3, [pc, #48] ; (80163d0 <LoopFillZerobss+0x20>)
adds r2, r0, r1
80163a0: 1842 adds r2, r0, r1
cmp r2, r3
80163a2: 429a cmp r2, r3
bcc CopyDataInit
80163a4: d3f6 bcc.n 8016394 <CopyDataInit>
ldr r2, =_sbss
80163a6: 4a0b ldr r2, [pc, #44] ; (80163d4 <LoopFillZerobss+0x24>)
b LoopFillZerobss
80163a8: e002 b.n 80163b0 <LoopFillZerobss>
080163aa <FillZerobss>:
/* Zero fill the bss segment. */
FillZerobss:
movs r3, #0
80163aa: 2300 movs r3, #0
str r3, [r2], #4
80163ac: f842 3b04 str.w r3, [r2], #4
080163b0 <LoopFillZerobss>:
LoopFillZerobss:
ldr r3, = _ebss
80163b0: 4b09 ldr r3, [pc, #36] ; (80163d8 <LoopFillZerobss+0x28>)
cmp r2, r3
80163b2: 429a cmp r2, r3
bcc FillZerobss
80163b4: d3f9 bcc.n 80163aa <FillZerobss>
/* Call the clock system initialization function.*/
bl SystemInit
80163b6: f7f9 fadd bl 800f974 <SystemInit>
/* Call static constructors */
bl __libc_init_array
80163ba: f000 f85f bl 801647c <__libc_init_array>
/* Call the application's entry point.*/
bl main
80163be: f7ef fbcb bl 8005b58 <main>
bx lr
80163c2: 4770 bx lr
ldr sp, =_estack /* set stack pointer */
80163c4: 20080000 .word 0x20080000
ldr r3, =_sidata
80163c8: 0802fd2c .word 0x0802fd2c
ldr r0, =_sdata
80163cc: 20020000 .word 0x20020000
ldr r3, =_edata
80163d0: 200209a8 .word 0x200209a8
ldr r2, =_sbss
80163d4: 200209a8 .word 0x200209a8
ldr r3, = _ebss
80163d8: 2006c6e4 .word 0x2006c6e4
080163dc <ADC_IRQHandler>:
* @retval None
*/
.section .text.Default_Handler,"ax",%progbits
Default_Handler:
Infinite_Loop:
b Infinite_Loop
80163dc: e7fe b.n 80163dc <ADC_IRQHandler>
...
080163e0 <modff>:
80163e0: ee10 2a10 vmov r2, s0
80163e4: f3c2 51c7 ubfx r1, r2, #23, #8
80163e8: 397f subs r1, #127 ; 0x7f
80163ea: 2916 cmp r1, #22
80163ec: b510 push {r4, lr}
80163ee: ee10 3a10 vmov r3, s0
80163f2: dc0c bgt.n 801640e <modff+0x2e>
80163f4: 2900 cmp r1, #0
80163f6: da05 bge.n 8016404 <modff+0x24>
80163f8: f002 4300 and.w r3, r2, #2147483648 ; 0x80000000
80163fc: 6003 str r3, [r0, #0]
80163fe: ee00 2a10 vmov s0, r2
8016402: bd10 pop {r4, pc}
8016404: 4c09 ldr r4, [pc, #36] ; (801642c <modff+0x4c>)
8016406: fa44 f101 asr.w r1, r4, r1
801640a: 420a tst r2, r1
801640c: d103 bne.n 8016416 <modff+0x36>
801640e: 6002 str r2, [r0, #0]
8016410: f003 4200 and.w r2, r3, #2147483648 ; 0x80000000
8016414: e7f3 b.n 80163fe <modff+0x1e>
8016416: ea22 0301 bic.w r3, r2, r1
801641a: ee07 3a10 vmov s14, r3
801641e: ee70 7a47 vsub.f32 s15, s0, s14
8016422: 6003 str r3, [r0, #0]
8016424: ee17 2a90 vmov r2, s15
8016428: e7e9 b.n 80163fe <modff+0x1e>
801642a: bf00 nop
801642c: 007fffff .word 0x007fffff
08016430 <roundf>:
8016430: ee10 0a10 vmov r0, s0
8016434: f3c0 53c7 ubfx r3, r0, #23, #8
8016438: f1a3 027f sub.w r2, r3, #127 ; 0x7f
801643c: 2a16 cmp r2, #22
801643e: dc15 bgt.n 801646c <roundf+0x3c>
8016440: 2a00 cmp r2, #0
8016442: da08 bge.n 8016456 <roundf+0x26>
8016444: 3201 adds r2, #1
8016446: f000 4300 and.w r3, r0, #2147483648 ; 0x80000000
801644a: d101 bne.n 8016450 <roundf+0x20>
801644c: f043 537e orr.w r3, r3, #1065353216 ; 0x3f800000
8016450: ee00 3a10 vmov s0, r3
8016454: 4770 bx lr
8016456: 4908 ldr r1, [pc, #32] ; (8016478 <roundf+0x48>)
8016458: 4111 asrs r1, r2
801645a: 4208 tst r0, r1
801645c: d0fa beq.n 8016454 <roundf+0x24>
801645e: f44f 0380 mov.w r3, #4194304 ; 0x400000
8016462: 4113 asrs r3, r2
8016464: 4403 add r3, r0
8016466: ea23 0301 bic.w r3, r3, r1
801646a: e7f1 b.n 8016450 <roundf+0x20>
801646c: 2a80 cmp r2, #128 ; 0x80
801646e: d1f1 bne.n 8016454 <roundf+0x24>
8016470: ee30 0a00 vadd.f32 s0, s0, s0
8016474: 4770 bx lr
8016476: bf00 nop
8016478: 007fffff .word 0x007fffff
0801647c <__libc_init_array>:
801647c: b570 push {r4, r5, r6, lr}
801647e: 4e0d ldr r6, [pc, #52] ; (80164b4 <__libc_init_array+0x38>)
8016480: 4c0d ldr r4, [pc, #52] ; (80164b8 <__libc_init_array+0x3c>)
8016482: 1ba4 subs r4, r4, r6
8016484: 10a4 asrs r4, r4, #2
8016486: 2500 movs r5, #0
8016488: 42a5 cmp r5, r4
801648a: d109 bne.n 80164a0 <__libc_init_array+0x24>
801648c: 4e0b ldr r6, [pc, #44] ; (80164bc <__libc_init_array+0x40>)
801648e: 4c0c ldr r4, [pc, #48] ; (80164c0 <__libc_init_array+0x44>)
8016490: f000 f834 bl 80164fc <_init>
8016494: 1ba4 subs r4, r4, r6
8016496: 10a4 asrs r4, r4, #2
8016498: 2500 movs r5, #0
801649a: 42a5 cmp r5, r4
801649c: d105 bne.n 80164aa <__libc_init_array+0x2e>
801649e: bd70 pop {r4, r5, r6, pc}
80164a0: f856 3025 ldr.w r3, [r6, r5, lsl #2]
80164a4: 4798 blx r3
80164a6: 3501 adds r5, #1
80164a8: e7ee b.n 8016488 <__libc_init_array+0xc>
80164aa: f856 3025 ldr.w r3, [r6, r5, lsl #2]
80164ae: 4798 blx r3
80164b0: 3501 adds r5, #1
80164b2: e7f2 b.n 801649a <__libc_init_array+0x1e>
80164b4: 0802fd24 .word 0x0802fd24
80164b8: 0802fd24 .word 0x0802fd24
80164bc: 0802fd24 .word 0x0802fd24
80164c0: 0802fd28 .word 0x0802fd28
080164c4 <memcpy>:
80164c4: b510 push {r4, lr}
80164c6: 1e43 subs r3, r0, #1
80164c8: 440a add r2, r1
80164ca: 4291 cmp r1, r2
80164cc: d100 bne.n 80164d0 <memcpy+0xc>
80164ce: bd10 pop {r4, pc}
80164d0: f811 4b01 ldrb.w r4, [r1], #1
80164d4: f803 4f01 strb.w r4, [r3, #1]!
80164d8: e7f7 b.n 80164ca <memcpy+0x6>
080164da <memset>:
80164da: 4402 add r2, r0
80164dc: 4603 mov r3, r0
80164de: 4293 cmp r3, r2
80164e0: d100 bne.n 80164e4 <memset+0xa>
80164e2: 4770 bx lr
80164e4: f803 1b01 strb.w r1, [r3], #1
80164e8: e7f9 b.n 80164de <memset+0x4>
080164ea <strcpy>:
80164ea: 4603 mov r3, r0
80164ec: f811 2b01 ldrb.w r2, [r1], #1
80164f0: f803 2b01 strb.w r2, [r3], #1
80164f4: 2a00 cmp r2, #0
80164f6: d1f9 bne.n 80164ec <strcpy+0x2>
80164f8: 4770 bx lr
...
080164fc <_init>:
80164fc: b5f8 push {r3, r4, r5, r6, r7, lr}
80164fe: bf00 nop
8016500: bcf8 pop {r3, r4, r5, r6, r7}
8016502: bc08 pop {r3}
8016504: 469e mov lr, r3
8016506: 4770 bx lr
08016508 <_fini>:
8016508: b5f8 push {r3, r4, r5, r6, r7, lr}
801650a: bf00 nop
801650c: bcf8 pop {r3, r4, r5, r6, r7}
801650e: bc08 pop {r3}
8016510: 469e mov lr, r3
8016512: 4770 bx lr